Robotic ROS 2: Odometry, Mapping, Planning, Vision Bootcamp
BAI
Curriculum
226 Lessons
Introduction
Get the Most out of the Course00:00:00
Setup
3. Install ROS 2 Jazzy on Ubuntu 24.04 – LAB00:00:00
4. Install ROS 2 Humble on Ubuntu 22.04 – LAB00:00:00
5. Configure the Development Environment – LAB00:00:00
6. Configure the Development Environment in Raspberry Pi – LAB00:00:00
7. Install ROS 2 on Raspberry Pi – LAB00:00:00
8. Getting Started with the Simulated Robot – LAB00:00:00
9. Assemble the Robot – Part 1 – LAB00:00:00
10. Assemble the Robot – Part 2 – LAB00:00:00
11. Assemble the Robot – Part 3 LAB00:00:00
Introduction to ROS 2
1. Why a Robot Operating System00:00:00
2. What is ROS 200:00:00
3. Why a NEW Robot Operating System00:00:00
4. ROS 2 Architecture00:00:00
5. Hardware Abstraction00:00:00
6. Low-Level Device Control00:00:00
7. Messaging Between Process00:00:00
8. Package Management00:00:00
9. Architecture of a ROS 2 Application00:00:00
11. Create and Activate a Worksapce – LAB11:19
12. Simple Publisher – PY00:00:00
13. Simple Publisher – C++00:00:00
14. Simple Subscriber – PY00:00:00
15. Simple Subscriber – C++00:00:00
Locomotion
1. Robot Locomotions00:00:00
2. Mobile Robots00:00:00
3. Friction Effects00:00:00
4. Robot Description00:00:00
5. URDF00:00:00
6. Create the URDF Model – LAB31:24
7. Rviz 200:00:00
8. Parameters00:00:00
9. Parameters – PY00:00:00
10. Parameters – C++00:00:00
11. ROS 2 Parameter CLI – LAB00:00:00
13. Visualize the Robot – LAB00:00:00
14. Launch Files00:00:00
15. Visualize the Robot with Launch Files – LAB00:00:00
17. Gazebo00:00:00
18. Simulate the Robot – LAB00:00:00
19. Launch the Simulation – LAB00:00:00
Control
1. ROS 2 Control00:00:00
2. Control Types00:00:00
3. ros2_control with Gazebo – LAB00:00:00
4. YAML Configuration File00:00:00
5. Configure ros2_control – LAB00:00:00
6. Launch the Controller – LAB00:00:00
7. ros2_control CLI – LAB00:00:00
Kinematics
1. Robot Kinematics00:00:00
2. Pose of a Mobile Robot00:00:00
3. Translation Vector00:00:00
4. Introduction to Turtlesim – LAB00:00:00
5. Translation Vector – PY00:00:00
6. Translation Vector – C++00:00:00
7. Rotation Matrix00:00:00
8. Rotation Matrix – PY00:00:00
9. Rotation Matrix – C++00:00:00
10. Transformation Matrix00:00:00
Differential Kinematics
1. Differential Kinematics00:00:00
2. Velocity of a Mobile Robot00:00:00
3. Linear Velocity00:00:00
4. Angular Velocity00:00:00
5. Velocity in World Frame00:00:00
6. Differential Forward Kinematics00:00:00
7. Simple Speed Controller00:00:00
8. Simple Speed Controller – PY00:00:00
9. Simple Speed Controller – C++00:00:00
10. Launch the Simple Controller – LAB00:00:00
11. Teleoperating with Joystick – LAB00:00:00
12. Using the diff_drive_controller – LAB00:00:00
TF2 Library
1. The TF2 Library00:00:00
2. Operations with Transformations00:00:00
3. Static and Dynamic Transformations00:00:00
4. Simple TF2 Static Broadcaster – PY00:00:00
5. Simple TF2 Static Broadcaster – C++00:00:00
6. Simple TF2 Broadcaster – PY00:00:00
7. Simple TF2 Broadcaster – C++00:00:00
8. ROS 2 Services00:00:00
9. Service Server – PY00:00:00
10. Service Server – C++00:00:00
11. Service Client – PY00:00:00
12. Service Client – C++00:00:00
13. Simple TF2 Listener – PY00:00:00
14. Simple TF2 Listener – C++00:00:00
15. Angle Rapresentations00:00:00
16. Euler Angles00:00:00
17. Quaternion00:00:00
18. Euler to Quaternion – PY00:00:00
19. Euler to Quaternion – C++00:00:00
20. TF2 Tools – LAB00:00:00
Odometry
1. Where is the Robot00:00:00
2. The Local Localization Challenge00:00:00
3. Wheel Odometry00:00:00
4. Differential Inverse Kinematics00:00:00
5. Differential Inverse Kinematic – PY00:00:00
6. Differential Inverse Kinematic – C++00:00:00
7. Wheel Odometry – Position00:00:00
8. Wheel Odometry – Orientation00:00:00
9. Wheel Odometry – PY00:00:00
10. Wheel Odometry – C++00:00:00
11. Publish Odometry Message – PY00:00:00
12. Publish Odometry Message – C++00:00:00
14. Broadcast Odometry Transform – PY00:00:00
15. Broadcast Odometry Transform – C++00:00:00
Probability for Robotics
1. Motivation7:10
2. Random Variables00:00:00
3. Conditional Probability00:00:00
4. Probability Distributions00:00:00
5. Gaussian Distributions00:00:00
6. Total Probability Theorem00:00:00
7. Bayes Rule00:00:00
8. Sensor Noise00:00:00
Sensor Fusion
1. Advantages of having Multiple Sensors6:28
2. Gyroscope00:00:00
3. Accelerometer and IMU00:00:00
4. Simulate IMU Sensor – LAB00:00:00
5. Gazebo ROS Bridge – LAB00:00:00
6. Kalman Filter00:00:00
7. Filter Initialization – PY00:00:00
8. Filter Initialization – C++00:00:00
9. Measurement Update00:00:00
10. Measurement Update – PY00:00:00
11. Measurement Update – C++00:00:00
12. State Prediction00:00:00
13. State Prediction – PY00:00:00
14. State Prediction – C++00:00:00
15. Localization with Kalman Filter – LAB00:00:00
16. Extended Kalman Filter (EKF)00:00:00
17. IMU Republisher – PY00:00:00
18. IMU Republisher – C++00:00:00
19. Sensor Fusion with robot_localization – LAB00:00:00
Build the Robot
1. Mechanics and Electronics00:00:00
3. Configure the Development Environment – LAB00:00:00
4. Install ROS 2 on Raspberry Pi – LAB00:00:00
5. Arduino and ROS 200:00:00
6. Publisher Node with Arduino – LAB00:00:00
7. Publisher Node with Arduino – PY00:00:00
8. Publisher Node with Arduino – C++00:00:00
9. Test Publisher Node with Arduino – LAB00:00:00
10. Subscriber Node with Arduino – LAB00:00:00
11. Subscriber Node with Arduino – PY00:00:00
12. Subscriber Node with Arduino – C++00:00:00
13. Test Subscriber Node with Arduino – LAB00:00:00
14. DC Motors with Arduino – LAB00:00:00
15. Encoders with Arduino – LAB00:00:00
16. ROS 2 Lifecycle Nodes00:00:00
17. Create a Lifecycle Node – PY00:00:00
18. Create a Lifecycle Node – C++00:00:00
19. ROS 2 Lifecycle CLI – LAB00:00:00
20. ros2_control Interface – Declaration – C++00:00:00
21. ros2_control Interface – Definition – C++00:00:00
22. ros2_control Interface – Plugin – C++00:00:00
23. ros2_control Interface – Configure – LAB00:00:00
24. Robot Control with Arduino – LAB00:00:00
25. ROS DOMAIN ID – LAB00:00:00
26. MPU6050 IMU Driver – PY00:00:00
27. MPU6050 IMU with ROS 2 – LAB00:00:00
28. Assemble the Robot – Part 1 – LAB00:00:00
29. Assemble the Robot – Part 2 – LAB00:00:00
30. Assemble the Robot – Part 3 – LAB00:00:00
31. Launch the Complete Robot – LAB00:00:00
Conclusions
1. Recap2:35
Global localization
1. Where am I00:00:00
2. Robot Localization00:00:00
3. Robotics Convention for Localization00:00:00
4. Why a Robotics Convention for Localization00:00:00
5. Gazebo Worlds and Models00:00:00
6. Give an house to the Robot – LAB00:00:00
7. Local and Global Localization00:00:00
8. Local Localization00:00:00
9. Global Localization00:00:00
10. Wheel Odometry Errors00:00:00
11. Laser Odometry Errors00:00:00
12. The Real Purpose of Global Localization00:00:00
13. Error Propagation00:00:00
14. Odometry Motion Model00:00:00
15. PYOdometry Motion ModelPY00:00:00
16. Odometry Motion Model with Noise – PY00:00:00
17. Odometry Motion Model – C++00:00:00
18. Odometry Motion Model with Noise – C++00:00:00
19. Odometry Motion Model – LAB00:00:00
Sensor for Localization and Mapping
1. What is a Map00:00:00
2. How Robots Perceive the World00:00:00
3. Sensors for Self-Driving Robots00:00:00
4. 1D Sensors – Sonar00:00:00
5. 2D Sensors – LiDAR00:00:00
6. Add a 2D LiDAR to the Robot – LAB00:00:00
7. Simulate a 2D LiDAR – LAB00:00:00
8. 3D Sensors – RGBD Cameras and 3D LiDAR00:00:00
9. Speed and Separation Monitoring00:00:00
10. twist_mux00:00:00
11. Twist Relay – PY00:00:00
12. Twist Relay – C++00:00:00
13. Configure twist_mux – LAB00:00:00
14. Use twist_mux – LAB00:00:00
15. Safety StopPY00:00:00
16. Safety Stop – C++00:00:00
17. Safety Stop – LAB00:00:00
18. ROS 2 Actions00:00:00
19. Create an Action Server – PY00:00:00
20. Create an Action Server – C++00:00:00
21. Create an Action Server – LAB00:00:00
22. Create an Action Client – PY00:00:00
23. Create an Action Client – C++00:00:00
24. Create an Action Client – LAB00:00:00
25. Speed and Separation Monitoring – PY00:00:00
26. Speed and Separation Monitoring – C++00:00:00
27. Speed and Separation Monitoring – LAB00:00:00
28. Display Markers in RViz – PY00:00:00
29. Display Markers in RViz – C++00:00:00
30. Display Markers in RViz – LAB00:00:00
Map Representation
1. Map Representation00:00:00
2. Topological Maps00:00:00
3. OccupancyGrid00:00:00
4. Octomap and Voxel Grids00:00:00
5. Introduction to Nav200:00:00
6. ROS 2 Lifecycle Nodes00:00:00
7. Create a Lifecycle Node – PY00:00:00
8. Create a Lifecycle Node – C++00:00:00
9. ROS 2 Lifecycle CLI – LAB00:00:00
10. Nav2 map_server00:00:00
11. Nav2 map_server – LAB00:00:00
12. Quality of Service00:00:00
13. Multi QoS Publisher – PY00:00:00
14. Multi QoS Publisher – C++00:00:00
15. Multi QoS Publisher – LAB00:00:00