ROS Control | Joint State Broadcaster | ROS Software
Background
Controlling robotics hardware is the basis for any robotic application. This part of the software pipeline requires the highest level of robustness, reliability, and predictable behavior compared to higher-level algorithms. The first ROS-powered robots had custom control stack integrating communication of sensors and actuators in one process. This made using control strategies between robots impossible without significant effort. circa 2013, ros_control standardized hardware-control layers, resulting in increased reusability and stability for ROS-powered robots. To address this, ROS Control standardized hardware-control layers, resulting in increased reusability and stability for ROS-powered robots.
- Hardware-agnostic control framework - The first ROS-powered robots had custom control frameworks integrating communication of sensors and actuators in one process. With ROS Control, hardware drivers and control algorithms are separated using standard interfaces, enabling the reuse of control strategies. This means that robotic manipulators from different manufacturers use the same control algorithms, making them ready for use with higher-level stacks such as MoveIt or Navigation without any extra programming.
- Real-time capable extensible controllers - When talking about hardware control, reliability and time-predictable behavior are cornerstones, especially in industrial or life-critical applications. Therefore, the core and main controllers of ROS Control frameworks are implemented to support real-time execution if the host computer supports it. The main controllers are additionally easily extensible to support state-of-the-art control algorithms for custom applications.
- Open Source - Releasing the code open source means that stability and innovation are improved by the entire robotics community, including academic, government, commercial, and enthusiast contributors. PickNik works with our clients to determine how much of the work we’re performing will be kept private or open. This enables the ROS and MoveIt platforms to maintain their value and prevent future vendor lock-in.
Major Versions of ROS Control
- ros_control (developed by Willow Garage, PAL Robotics and PickNik CEO Dave Coleman)
- ros2_control (developed by the community - Control WG)
Typical Controllers
- Joint Trajectory Controllers - interpolated movement along trajectory waypoints
- Forwarding Controllers - direct writing of command to hardware
- Joint State Broadcaster - publishes current hardware state to ROS topic (used by other nodes, e.g., visualization)
Types of Control Scenarios
- One axis (motor) control
- Industrial manipulator control with an arbitrary number of axes
- Mobile base control with arbitrary kinematics (Differential, Ackerman, Omnidirectional)
- Full body controls - e.g., mobile manipulators or legged robots, by combining multiple controllers