DAY 1: Introduction to ROS 2 The ROS 2 Command-line interface The ROS 2 middleware and QoS (topics, services, actions) - opening to cloud robotics here The ROS Client Library for Python nodes (rclpy) and TF2 Structure of ROS 2 codebase of projects and workspaces DAY 1 Labs: We split in 2 groups: The very beginners to ROS (1 or 2) will practice ROS 2 basics. The official tutorials with turtlesim are a good basis to rely on, and we'll customize them so that we put TF2 into practice as well. Meanwhile, the group of ROS 1/2 knowers (at least Patrick? 😎) can setup a PoC using mqtt_client and/or TCP/IP, e.g. an IMU sensor connected to the PLC, streaming on ROS 2 topics or TF frames DAY 2: Wheeled robot navigation with Nav 2 Use of odometry and sensors for robot localization Simultaneous Localization And Mapping Path planning and path tracking, from GUI and Python nodes How the actuators/sensors of a wheeled robot are integrated to ROS: LIDAR, RGB-D, IMU, joint states and controllers DAY 2 Labs: We split into several groups. Each of them pick a simulated wheeled robot plateform, perfom navigation into Gazebo, and understand the nodes implementation (Tiago, Husky, or Turtlebot should do the job) DAY 3: Manipulation with MoveIt 2 URDF/SRDF of a robotic arm, and automated generation with Xacro The Open Motion Planning Library for path planning How the actuators/sensors of an arm are integrated to ROS: joint states, joint controllers, force sensors DAY 3 Labs: We split into several groups. Each of them pick a simulated or real robotic arm (Panda, HC10DTP, UR3, Tiago ...), and perform path planning through MoveIt, GUI and XX nodes* ######################################## Basic ROS2 concepts, colcon workspaces, messages, topics, services, actions, ros2_control, params and TF Creating ROS2 packages; nodes, .launch.py files, etc. (preferably in Python3) Using Rviz2 and rqt Using Gazebo Sim (gz-sim9+), creating SDF's, optionally plugins Setting up and implementing URDF's and SRDF's, using xml and xacro Working with MoveIt2, optionally MoveIt Servo