0% found this document useful (0 votes)
7 views4 pages

ROS 2 Drone Development Course

The document outlines a comprehensive 12-week training program focused on robotics, covering foundational skills in Linux and ROS 2, PX4 setup, missions and sensors, computer vision, and advanced autonomy. Each week consists of specific daily tasks, mini-projects, and practical applications, leading to a final project that involves either object tracking or waypoint flight with obstacle avoidance. The program emphasizes hands-on learning and integration of various technologies, including Gazebo, MAVROS, and OpenCV.

Uploaded by

Kaung Htet San
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as ODT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
7 views4 pages

ROS 2 Drone Development Course

The document outlines a comprehensive 12-week training program focused on robotics, covering foundational skills in Linux and ROS 2, PX4 setup, missions and sensors, computer vision, and advanced autonomy. Each week consists of specific daily tasks, mini-projects, and practical applications, leading to a final project that involves either object tracking or waypoint flight with obstacle avoidance. The program emphasizes hands-on learning and integration of various technologies, including Gazebo, MAVROS, and OpenCV.

Uploaded by

Kaung Htet San
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as ODT, PDF, TXT or read online on Scribd

Phase 1 – Foundations (Week 1–2)

Week 1 – Linux + ROS 2 Basics


• Day 1: Install Ubuntu 22.04 (or WSL2). Learn cd, ls, pwd, cp, mv.

• Day 2: Learn grep, cat, nano/vim, apt, sudo.

• Day 3: Install ROS 2 Humble. Test with ros2 run demo_nodes_cpp talker.

• Day 4: Learn ROS 2 nodes & topics. Run ros2 topic list, ros2 topic echo.

• Day 5: Write a simple ROS 2 Python publisher/subscriber (pub: Hello, sub: print).
• Day 6: Learn services/actions in ROS 2. Try ros2 service call.

• Day 7: Mini-project → make a node that asks for a number and returns square (service).

Week 2 – Gazebo Basics


• Day 8: Install Gazebo Harmonic (or Fortress). Launch empty world.
• Day 9: Spawn basic models (box, cylinder). Move them in GUI.
• Day 10: Learn URDF/SDF structure. Spawn a simple robot.
• Day 11: Add a camera sensor to a robot in Gazebo. View image stream.
• Day 12: Add a lidar sensor to robot. View topic in ROS 2.
• Day 13: Control a mobile robot (TurtleBot in Gazebo).
• Day 14: Mini-project → spawn robot with camera + move using ROS 2 cmd_vel.

Phase 2 – PX4 Setup (Week 3–4)


Week 3 – PX4 SITL
• Day 15: Clone PX4-Autopilot repo, install dependencies.
• Day 16: Run PX4 SITL: make px4_sitl gz_x500.

• Day 17: Install QGroundControl. Connect to PX4 SITL.


• Day 18: Upload AUTO mission in QGC (takeoff → waypoint → land).
• Day 19: Learn PX4 console (pxh> help).

• Day 20: Try different drones (quadrotor, VTOL).


• Day 21: Mini-project → run gz_x500 drone, take off and land using QGC only.
Week 4 – MAVROS 2 Bridge
• Day 22: Install MAVROS 2. Run ros2 topic list and explore PX4 topics.

• Day 23: Echo /mavros/local_position/pose.

• Day 24: Publish setpoint to /mavros/setpoint_position/local.

• Day 25: Write ROS 2 node → simple takeoff at fixed altitude.


• Day 26: Add land command from ROS 2 node.
• Day 27: Test sending velocity commands.
• Day 28: Mini-project → ROS 2 node that takes off, flies a square, and lands.

Phase 3 – Missions & Sensors (Week 5–6)


Week 5 – Setpoints & Missions
• Day 29: Learn PX4 position setpoints vs velocity setpoints.
• Day 30: Write ROS 2 script to go to [0,0,5].
• Day 31: Add second waypoint [5,0,5].
• Day 32: Add more waypoints (fly square).
• Day 33: Auto mission: upload waypoints from ROS 2 instead of QGC.
• Day 34: Test combining AUTO mission + ROS 2 overrides.
• Day 35: Mini-project → drone flies triangle path using ROS 2.

Week 6 – Gazebo Sensors Integration


• Day 36: Add camera sensor to drone model.
• Day 37: Subscribe to camera topic in ROS 2. Save images.
• Day 38: Add lidar sensor. Visualize with RViz.
• Day 39: Add GPS noise simulation.
• Day 40: Subscribe to /mavros/global_position/raw/fix.

• Day 41: Log IMU data in ROS 2.


• Day 42: Mini-project → spawn drone with camera + lidar, save image + lidar scan.
Phase 4 – Computer Vision (Week 7–9)
Week 7 – OpenCV Basics
• Day 43: Install OpenCV in ROS 2 workspace.
• Day 44: Read image from file, display.
• Day 45: Convert Gazebo camera stream → OpenCV image.
• Day 46: Detect red object in image.
• Day 47: Draw bounding box around object.
• Day 48: Send drone velocity command if object moves.
• Day 49: Mini-project → “follow red ball” using camera + velocity control.

Week 8 – Object Following


• Day 50: Improve detection with HSV color filtering.
• Day 51: Add proportional control (object center → drone velocity).
• Day 52: Limit movement range to safe altitude.
• Day 53: Test detection with moving ball in Gazebo.
• Day 54: Record video of drone following object.
• Day 55: Debug lag issues.
• Day 56: Mini-project → robust red-object follower.

Week 9 – Sensor Fusion


• Day 57: Learn basic sensor fusion idea (camera + GPS).
• Day 58: Subscribe to GPS and camera simultaneously.
• Day 59: Combine GPS waypoint + vision correction.
• Day 60: Add simple obstacle avoidance (lidar).
• Day 61: Test flight: waypoint + avoid obstacle.
• Day 62: Tune PID gains for smoother control.
• Day 63: Mini-project → “fly waypoint, avoid obstacle, detect object.”
Phase 5 – Advanced Autonomy (Week 10–12)
Week 10 – PX4 Tuning & Parameters
• Day 64: Learn PX4 parameters (param show).

• Day 65: Tune altitude hold gains.


• Day 66: Tune position control.
• Day 67: Save and load param files.
• Day 68: Test different tuning.
• Day 69: Automate param changes from ROS 2.
• Day 70: Mini-project → better tuned drone flight.

Week 11 – ROS 2 Package Development


• Day 71: Create new ROS 2 package (ros2 pkg create).

• Day 72: Move takeoff/land code inside package.


• Day 73: Add camera subscriber + control logic.
• Day 74: Launch with ros2 launch.

• Day 75: Add config file for parameters.


• Day 76: Test multiple nodes working together.
• Day 77: Mini-project → one ROS 2 package controlling drone with vision.

Week 12 – Final Project


• Day 78: Define final project (choose: object tracking OR waypoint flight with obstacle
avoidance).
• Day 79: Implement mission logic.
• Day 80: Test in simple Gazebo world.
• Day 81: Test in complex Gazebo world (obstacles, buildings).
• Day 82: Debug failures.
• Day 83: Improve robustness (safety checks).
• Day 84: Record final demo + write short report.

You might also like