Hello there folks,
We’ve had a busy 2020 at the ros2_control Working Group thinking about and discussing how to improve ros_control for ROS2.
I am pleased to announce the first release of ros2_control and ros2_controllers in Foxy!
Don’t be overly excited yet though! This is a release of only the core framework and some of the old and loved controllers, but not everything yet.
Highlighted features:
- Supported controllers:
joint_state_controller
,joint_trajectory_controller
andforward_command_controller
- Entirely component-based setup, for those of you familiar with ros_control, you can think of it as
CombinedRobotHardware
being a first class citizen. No need to write aRobotHW
anymore if someone else already made a driver for the component/robot you want to use. - ROS2 CLI support
- No more hardcoded joint or actuator interface types (i.e. can support any joint type, not only position, velocity and effort)
- Resource and lifecycle management done in a cleaner manner, leveraging some ROS2 and more modern C++ practices
- Composability with other ROS2 nodes via executors
- Support the
control_msgs/DynamicJointState
message which is a flexible alternative tosensor_msgs/JointState
Upcoming releases will include:
diff_drive_controller
JointGroup[Position/Velocity/Effort]Controller
- transmissions
- Gazebo support
- more demos and documentation.
Did you guys also watch Die Hard 2 over the Christmas break? If yes, I’m sure those orange industrial robots in the baggage-handling scene made you wonder: “When can I use ros_control
with ROS2 on my robots?” The time has come!
Full scene
As we do not yet have the Gazebo plugin working, allow me to show a KUKA and an ABB simulation thanks to Taiga Robotics. The source code for both can be found here.
ABB:
KUKA:
For getting started, try the hands-on demo from the demos repo:
For more, you may join us or follow our progress at the working group meetings or in the following repos:
- The framework: ros2_control
- The controllers: ros2_controllers
- Our ever-growing set of reference implementations following some typical robot urdfs can be found in ros2_control_demos
Warmest thanks to everyone who helped make ros2_control
happen but especially our main contributors:
Karsten Knese (Bosch), Denis Štogl (KIT), Victor Lopez & Jordan Palacios (PAL Robotics),
Edwin Fan & Alejandro Cordero (Open Robotics), Colin MacKenzie, Dmitri Ignakov (Taiga Robotics), Andy Zelenak and Lovro Ivanov (PickNik Robotics)
PS:
Until the next Foxy sync, the packages are only available from the ros2-testing
apt repository.