KroNton Robotics Academy
equalizerDifficulty: AdvancedcodeLanguage: ros2_control - MCU - Diffdrive scheduleTraining Hours: 20h 0m

AMR Hardware and Control

From Bare Parts to a Moving Mobile Robot

AMRrobot hardwaredifferential driveKinematicsOdometryESP32ArduinoPlatformIO
scheduleComing Soon
scheduleComing Soon
AMR Hardware and Control

Course Overview

Software alone does not make a robot. This course takes you to the physical side of autonomous mobile robots, where mechanics, electronics, math, and embedded code meet. You start from the design and the bill of materials, then assemble the robot body, motors, and wheels step by step.

You won't just read about circuits and equations. You will wire the power circuit from the battery to the motor driver, connect encoders, IMU, and driver signals to an Arduino or an ESP32, and learn how velocity commands from ROS2 turn into left and right wheel speeds, and how encoder counts turn back into odometry.

Whether you come from a software background and want to touch real hardware, or you are an electronics enthusiast moving into robotics, this course bridges the gap between the two worlds and prepares your robot for higher-level ROS2 software.

What You'll Learn

  • Designing a differential drive robot in CAD around real component sizes, and checking that the motors can carry the robot and its payload

  • Reading the bill of materials: laser-cut parts, screws and spacers, motors, brackets, wheels, casters, and battery choices

  • Mechanical assembly of the motors, brackets, couplers, and wheels on the robot body

  • Planning the power circuit, then distributing battery power through auxiliary points to the motor driver and DC converters safely

  • Wiring the signal circuit with Arduino or ESP32: motor driver direction and PWM pins, encoders on interrupt pins, and the IMU over I2C

  • Assembling the ESP32 signal circuit on a breakout board, and mounting the IMU with the correct orientation

  • From the unicycle model to the differential drive model: forward kinematics from left and right wheel velocities to the robot's linear and angular velocity, and inverse kinematics from a velocity command back to wheel velocities

  • How encoders and counts per revolution give wheel speeds, and how to integrate them over time to compute odometry

  • What PlatformIO is, installing it in VS Code, the project structure, platformio.ini, building, uploading, and the serial monitor

  • Porting the same firmware from an ESP32 to an Arduino Mega with multiple build environments

  • Setting up a Cytron motor driver and testing motor speed and direction safely with the wheels lifted

  • Designing a text-based serial protocol to send wheel commands from a computer to the MCU, with motor ID, sign, and padded values

Curriculum Explorer8 Sections • 36 Lessons • Training Hours: 20h 0m

hardware Requirements

  • Solid understanding of ROS2 basics

  • Basic understanding of programming concepts in C++‎

  • Basic math such as trigonometry is helpful for the kinematics part

  • An ESP32 or Arduino board, a motor driver, and DC motors with encoders to follow along on hardware

  • Basic electronics knowledge is helpful but not required

Your Instructor

Kyrillos Fekry

Kyrillos Fekry

Senior Robotics Software Engineer

"Senior Robotics Software Engineer and Systems Architect with over Five years of experience leading the design, architecture, and production deployment of autonomous mobile robot platforms. Demonstrated ability to remotely lead cross-functional engineering teams, architect scalable robot software systems—from behavior engines and navigation stacks to CI/CD pipelines and mass-production workflows."

Robotics Engineering

8 Courses454 Students
verified_user

Certificate of Completion

Official industry-recognized credential upon finishing.

WhatsApp