ros2 / ros2_documentation

ROS 2 docs repository
https://docs.ros.org/en/rolling
Creative Commons Attribution 4.0 International
513 stars 1.04k forks source link

Proposal for a ROS 2 Skill Tree on ROS2 Docs #4514

Open Bezalelohim opened 4 weeks ago

Bezalelohim commented 4 weeks ago

I would like to propose a skill tree based approach on ROS and building robots in general. With a blend of software(ROS2 + build system stuff), hardware and essential theory, This will be aimed at beginners so that they can have a structured overview of how to implement and learn these skills.

I just have rough idea for the software and hardware side.

SOFTWARE SKILL TREE

ROS 2 Programming Skill Tree
|
└─── [A] ROS 2 Basics
     ├─── Level 1: Install ROS 2 and run demo nodes
     ├─── Level 2: Create a publisher and subscriber
     └─── Level 3: Use ROS 2 CLI tools for inspection and debugging
|
└─── [B] Robot Simulation (Prerequisite: [A])
     ├─── Level 1: Introduction to Gazebo and RViz for ROS 2
     ├─── Level 2: Create and manage simulated robots
     └─── Level 3: Advanced simulation and custom sensor integration
|
└─── [C] Navigation and Perception (Prerequisite: [B])
     ├─── Level 1: Implement obstacle avoidance using lidar
     ├─── Level 2: Utilize ROS 2 navigation stack
     └─── Level 3: Integrate SLAM for mapping and localization
|
└─── [D] Robot Control Systems (Prerequisite: [C])
     ├─── Level 1: Understand ROS 2 control frameworks and controllers
     ├─── Level 2: Design and integrate custom controllers
     └─── Level 3: Implement advanced control strategies and real-time processing
|
└─── [E] Real Robot Integration (Prerequisite: [D])
     ├─── Level 1: Basic hardware interfacing and robot setup
     ├─── Level 2: Implement autonomous behaviors and safety systems
     └─── Level 3: Complex system integration and multi-robot systems
|
└─── [F] ROS 2 Best Practices (Prerequisite: [E])
     ├─── Level 1: Code organization, package management, and build systems
     ├─── Level 2: Unit testing and continuous integration
     └─── Level 3: Documentation, community involvement, and open-source contribution

HARDWARE SKILL TREE

Robotics Hardware Skill Tree
|
└─── [A] Basic Electronics
     ├─── Level 1: Build a circuit on a breadboard that lights up an LED
     ├─── Level 2: Create a circuit with a sensor controlling an actuator
     └─── Level 3: Program a microcontroller for sensor input and actuator control
|
└─── [B] Mechanical Design (Prerequisite: [A])
     ├─── Level 1: Assemble a simple gear train
     ├─── Level 2: Design a mechanism for motion conversion
     └─── Level 3: Design a simple robotic arm and calculate its reach
|
└─── [C] Advanced Electronics and Control (Prerequisite: [A])
     ├─── Level 1: Control multiple sensors and actuators with a microcontroller
     ├─── Level 2: Establish communication with devices using protocols
     └─── Level 3: Design a PCB integrating a microcontroller, sensors, and actuators
|
└─── [D] Sensor Integration (Prerequisite: [C])
     ├─── Level 1: Build a system with temperature and distance sensors
     ├─── Level 2: Integrate an IMU and LIDAR
     └─── Level 3: Implement sensor fusion for accurate positioning
|
└─── [E] Robotics Systems (Prerequisite: [B] + [D])
     ├─── Level 1: Construct a mobile robot platform
     ├─── Level 2: Implement autonomous navigation
     └─── Level 3: Create an advanced robotics project with 3D cameras and drones

Since it's my first time, contributing to ros2 docs, I have some doubts.

I have already created some test builds, but they are static, and can be made way better.

Screenshot from 2024-06-06 22-40-11 Screenshot from 2024-06-06 23-19-55

Bezalelohim commented 4 weeks ago

Also, whoever is reading this, please do give your thoughts and inputs on the content regarding the skill tree as well.