Comprehensive, working examples demonstrating RobotLib in real-world robotics applications.
Examples are organized by complexity and feedback requirements:
Perfect for beginners - Direct motor/servo control without sensors
- simple_motor.cpp - Basic motor control (open-loop)
- simple_servo.cpp - Hobby servo control (gripper, pan/tilt, arms)
- simple_differential_drive.cpp - Basic robot driving (no odometry)
Use when: Testing hardware, simple timed movements, no encoders available
Compile: g++ -std=c++11 -I.. 01_basics/simple_motor.cpp -o simple_motor
Intermediate - Closed-loop control using sensor feedback
- servo_with_position_feedback.cpp - Servo with PID and position sensing
- drive_with_odometry.cpp - Robot navigation with wheel encoders
Use when: You have encoders, need accurate positioning, autonomous navigation
Compile: g++ -std=c++11 -I.. 02_with_feedback/servo_with_position_feedback.cpp -o servo_feedback
Intermediate - Real robot implementations
- 01_differential_drive_robot.cpp - Complete tank-style robot
- 03_line_following_robot.cpp - Line-following with sensor array
- 06_omnidirectional_robot.cpp - Mecanum wheel robot
- 10_swerve_drive.cpp - Advanced swerve drive system
Use when: Building a complete robot, need full system integration
Compile: g++ -std=c++11 -I.. 03_full_systems/01_differential_drive_robot.cpp -o diff_drive
Intermediate to Advanced - Specific control algorithms
- 02_pid_tuning_guide.cpp - PID controller tuning
- 05_sensor_fusion_imu.cpp - IMU sensor fusion (Kalman, complementary)
- 07_motor_control_encoders.cpp - Feedforward + feedback motor control
- 12_mpc_trajectory_tracking.cpp - Model predictive control
Use when: Learning control theory, optimizing performance
Compile: g++ -std=c++11 -I.. 04_algorithms/02_pid_tuning_guide.cpp -o pid_tune
Advanced - Complex robotics concepts
- 04_robot_arm_kinematics.cpp - Forward/inverse kinematics, Jacobian
- 11_3d_quadcopter_navigation.cpp - 3D navigation, quaternions, EKF, pathfinding
Use when: Building manipulators, drones, complex systems
Compile: g++ -std=c++11 -I.. 05_advanced/04_robot_arm_kinematics.cpp -o arm_kin
Beginner to Intermediate - Beautiful chainable API
- 08_hello_units.cpp - Gentle introduction to type-safe units
- 09_battery_management.cpp - Battery monitoring and power management
- 13_fluent_api_demo.cpp - Complete fluent API demonstration
Use when: Want easy-to-read code, teaching, rapid prototyping
Compile: g++ -std=c++11 -I.. 06_fluent_api/08_hello_units.cpp -o hello
- Start with
06_fluent_api/08_hello_units.cpp- Learn the basics - Try
01_basics/simple_servo.cpp- Control a servo - Move to
01_basics/simple_differential_drive.cpp- Drive a robot
02_with_feedback/servo_with_position_feedback.cpp- Closed-loop control02_with_feedback/drive_with_odometry.cpp- Track position03_full_systems/01_differential_drive_robot.cpp- Complete robot
04_algorithms/02_pid_tuning_guide.cpp- Master PID04_algorithms/07_motor_control_encoders.cpp- Feedforward control04_algorithms/05_sensor_fusion_imu.cpp- Sensor fusion04_algorithms/12_mpc_trajectory_tracking.cpp- Optimal control
01_basics/simple_servo.cpp- Basic servo control02_with_feedback/servo_with_position_feedback.cpp- Add feedback05_advanced/04_robot_arm_kinematics.cpp- Full kinematics
→ 01_basics/simple_motor.cpp
→ 01_basics/simple_servo.cpp
→ 01_basics/simple_differential_drive.cpp
→ 02_with_feedback/drive_with_odometry.cpp
→ Start with 03_full_systems/01_differential_drive_robot.cpp
→ 04_algorithms/02_pid_tuning_guide.cpp
→ 05_advanced/04_robot_arm_kinematics.cpp
→ 06_fluent_api/13_fluent_api_demo.cpp
| Feature | Basic | With Feedback |
|---|---|---|
| Encoders needed | ❌ No | ✅ Yes |
| Position accuracy | ✅ High | |
| Code complexity | ✅ Simple | |
| Cost | ✅ Lower | 💰 Higher |
| Use case | Testing, simple robots | Precision, autonomous |
| Control loop | Open-loop | Closed-loop |
Happy Robot Building! 🤖