ros2_control:
Fun with Controllers
wget https://raw.githubusercontent.com/ros-controls/roscon2024_control_workshop/refs/heads/master/docker-compose.yml
docker pull bmagyar/roscon2024_workshop:latest
docker compose run roscon2024
Attach from another terminal:
docker compose exec roscon2024 /bin/bash
$whoarewe (no command found)
Bence Magyar – [Dr. Bent’seh]
Denis Štogl – [Dr. Denis]
References
the Journal of Open Source Software
Thank you
for being
here!!
Bence Magyar, Denis Štogl, Christoph Froehlich, Sai Kishor Kothakota, Felix Exner, Manuel Muth, Alejandro Hernandez Cordero, Reza Kermani, Lennart Nachtigall, Takashi Sato, Henry Moore, Abrar Rahman Protyasha, Jakub Delicat, Wiktor Bajor, Silvio Traversaro, Noel Jimenez Garcia, Tony Baltovski, Vladimir Ivan, Mateus Menezes, Abishalini Sivaraman, Alex Moriarty, Marq Rasmussen, Paul Gesel, Olivier Stasse, Márk Szitanics,......... and many more!
Overview of Standard Controllers
Generics:
Mobile Robots
https://control.ros.org/rolling/doc/ros2_controllers/doc/controllers_index.html
Overview of Standard Controllers
Industrial Robotics (Arms)
Grippers:
Not Controllers → Broadcasters
https://control.ros.org/rolling/doc/ros2_controllers/doc/controllers_index.html
Configuring standard controllers
Complex controllers ⇾ break them and chain them
CLI extra
$ ros2 control view_controller_chains
Task1: Controller chaining task
Task1: Controller chaining
Build & source
Things to launch/try
What’s missing? Check:
Task 2: Fallback Controller
Task 2: Fallback Controller
Task 2: Fallback Controller
Usage:
Task:
ros2 launch workshop_bringup tiago_fallback.launch.xml
ros2 control list_controllers
ros2 service call /faulty_arm_controller/set_fault example_interfaces/srv/SetBool "data: true"
ros2 control list_controllers
Task 2: Fallback Controller
Task:
Task - commands:
ros2 launch workshop_bringup tiago_fallback.launch.xml
ros2 control list_controllers
ros2 service call /faulty_arm_controller/set_fault example_interfaces/srv/SetBool "data: true"
ros2 control list_controllers
Task 3: Async Controller
Task 3: Async Controller
ros2 launch workshop_bringup task3_async.launch.xml
ros2 control list_controllers
ros2 topic hz /joint_states
ros2 service call /sleepy_controller/set_slow_control_mode example_interfaces/srv/SetBool "data: true"
Task 3: Async Controller
ros2 launch workshop_bringup task3_async.launch.xml
ros2 control list_controllers
ros2 topic hz /joint_states
ros2 service call /sleepy_controller/set_slow_control_mode example_interfaces/srv/SetBool "data: true"
Task:
Hint: https://control.ros.org
Task 4: Multi-robot scalability
Task 4: Multi-robot scalability
Task 4: Multi-robot scalability
�ros2 launch workshop_bringup tiago_chaining.launch.xml namespace:=tiago2 config_file:=chaining_controllers_generic
Recap & Extras
Tooling one can use for debugging
Q&A
Thank you! And Discussion and Questions…
Bence Magyar, Denis Štogl, Christoph Froehlich, Sai Kishor Kothakota, Felix Exner, Manuel Muth, Alejandro Hernandez Cordero, Reza Kermani, Lennart Nachtigall, Takashi Sato, Henry Moore, Abrar Rahman Protyasha, Jakub Delicat, Wiktor Bajor, Silvio Traversaro, Noel Jimenez Garcia, Tony Baltovski, Vladimir Ivan, Mateus Menezes, Abishalini Sivaraman, Alex Moriarty, Marq Rasmussen, Paul Gesel, Olivier Stasse, Márk Szitanics,......... and many more!
Outline 2023 REMOVE IT EVENTUALLY