ROS 2 Humble Hawksbill Release!
We’re Humbly happy to announce the eighth release of ROS 2, Humble Hawksbill! Humble Hawksbill is a long-term support (LTS) release that will be supported until May 2027. This is the first ROS 2 release on Ubuntu 22.04 (Jammy Jellyfish). For Humble we support three Tier 1 operating systems: Ubuntu 22.04 Jammy Jellyfish (both arm64 and amd64 architectures) and Windows 10. If you would like to try it out, our installation instructions and tutorials are now up and ready to go.
So what’s in a name? “Humble” refers to, “Reflecting, expressing, or offered in a spirit of deference,” and a Hawksbill is a sea turtle that is found all around the world. Hawksbill sea turtles are easy to recognize because of their iconic beak. We choose the name with help from our community. As always, Humble Hawksbill t-shirts and swag are available, with all proceeds going to fund open-source development and education here at Open Robotics.
ROS 2 has now been under development for almost five years, and we are really excited about this release. What’s notable about this release is that by-and-large the changes are more incremental improvements over wholly new features. As we discussed in our recent Science Robotics paper, ROS 2 is now out in the field in production systems and our primary concern is integrating user feedback into ROS 2. With our second LTS release we’ve reached a point where our focus is on performance enhancements, increased stability, and developer ergonomics, and the Humble Hawksbill changelog reflects that. So what’s new in this release?
Improvements to ROSBag to make it easier to use in simulation and to snapshot a whole system at any point in time.
Performance and stability improvements for things like loaned messages, launch testing, RVIZ2, and high frequency services and actions.
Enhanced documentation – we’ve added Python API support to rosdoc2, C++ API documentation for core ROS packages, and extended documentation for building/running ROS 2 applications. These features, along with the new TurtleBot4 should make learning and using ROS much easier.
Developer Ergonomics – You can now filter ROS messages, identify if messages have changed over time, and filter messages by content in ROS. There is also better integration of ROS 2 repos with package managers and overlays now work to override any package in a dependency tree.
and much more!
In the spirit of being Humble, the real innovation right now for ROS 2 is in our incredible community! With a stable ROS API, and all of the improvements we’ve made, the number of ROS 2 packages has increased rapidly. These new ROS 2 packages bring all sorts of wonderful features, and make it easier and more appealing for other robot developers to upgrade their systems. It is almost a snowball effect, where each new package makes it easier for another developer to upgrade their package. We’ve asked the maintainers of the largest ROS packages to talk about their new features in Humble and here is what they told us.
Community Releases for Humble
Ignition Fortress
ROS 2 Humble will ship with Gazebo Fortress support right out of the box! Gazebo is the robotics simulator built with ROS in mind. This latest version of Gazebo includes:
Fortress world : Try out the Fortress demo world 4, which showcases lots of new features at once!
Sensors: Support for a dozen sensors 6 out-of-the-box, including the new segmentation camera, force-torque, and GPS; as well as support for creating your own sensors.
Graphical interface: The 3D view has more features than ever, with various introspection tools 1, flexible camera control, 3D plotting, satellite map data, control panels and more!
Feature-rich worlds: Particle effects, heightmaps from Digital Elevation Models, animated humans 1, .
SDFormat: It’s never been easier to describe your models. Have you always wanted to use degrees and quaternions 1, or add, remove, modify or replace elements of included files, export models directly from Blender 2?
CLI: Introspect and interact with your simulation with powerful command line tools.
Headless rendering: Simulating on the cloud? It’s now possible to run Ogre 2 rendering without a window using EGL.
Python API: Python wrappers 3 are available for a large part of Gazebo’s APIs for easier scripting.
Test fixture: The new test fixture makes it even easier to write automated tests.
Rendering engines: Out-of-the box support for Ogre 1 and Ogre 2, with support for Physically Based Rendering, and a plugin interface for new engines.
Physics engines: Support for DART, Bullet, Trivial Physics Engine, with a plugin interface to other engines.
Service bridge: From Humble, not only topics, but also services can be bridged 1 from the Gazebo to ROS!
FogROS 2
Fog ROS 2 an open-source cloud-robotics pilot platform from UC Berkeley. Cloud computing using commercial clusters such as Amazon Web Services (AWS) is now fast enough to enable secure compute-intensive robot functions such as SLAM map building from video, grasp planning, and high-dimensional motion planning to be performed in the Cloud using high-performance hardware and GPUs in near real-time. FogROS 2 offers ROS 2 functions to streamline the deployment of robot code. Developers do not need to change their code–they need only to specify an AWS configuration of computers that they want their code to run. FogROS 2 coordinates the details of initiating hardware instances, installing software and dependencies, securing robot-cloud communication, and launching cloud processes.
In example applications, we used FogROS 2 to deploy compute-intensive ROS 2 nodes for SLAM, Grasp Planning, and Motion Planning to the cloud. For Visual SLAM, we ran an ORB-SLAM 2 2 node on a multi-core cloud computer and we got a 2x speedup. For Grasp Planning, we ran the Dex-Net 1 node on a GPU instance in the cloud and got a 12x speedup. For Motion Planning, we ran Motion Planning Templates 1 on a 96-core cloud computer and got a 28x speedup.
We’re super excited to be part of this cutting edge research coming out of University California Berkeley; and are certain it will bring a lot of much desired functionality to the ROS Ecosystem. Full documentation for the Fog ROS 2 project can be found on their documentation website. Additional information can also be found in this article recently published by TechCrunch.
Foxglove Studio
Foxglove is a startup that has deep roots in vehicle autonomy and is the brainchild of a group of former employees of the vehicle autonomy company Cruise. The are also a recent addition to the ROS 2 Technical Steering Committee. Foxglove Studio 4 and rosbridge work out of the box with ROS 2 Humble so ROS users can make use the latest web-based user interface and debugging capabilities with their robot. Foxglove also recently released their MCAP file format, an evolution of the ROS Bag logging capability that you’ve grown to know and love.
ROS 2 Humble Docker Images!
While Open Robotics maintains the ROS 2 Build Farm and the binary downloads, the ROS 2 Docker images are entirely a community supported effort. We’re happy to announce that Mikael Arguedas and team have already released the ROS 2 Humble Hawksbill docker images to Docker Hub. The “latest” tag now points to the Humble ros_base image and is available for Ubuntu Jammy on amd64 and arm64v8.
Hardware Acceleration for ROS 2
The team at Acceleration Robotics and the Hardware Acceleration Working Group have been hard at work improving the build tooling and source code to support hardware acceleration for ROS 2 when it is available on specific hardware platforms. These improvements include:
ament_acceleration
: CMake macros and utilities to include hardware acceleration in the ROS 2 build system (ament) and its development flows.ament_vitis
: CMake macros and utilities to include Vitis platform into the ROS 2 build system (ament
) and its development flows.colcon-hardware-acceleration
: An extension for colcon-core to include Hardware Acceleration capabilities.ros2acceleration
: acceleration command for ROS 2 command line tools.tracetools_acceleration
: LTTng tracing provider wrapper for ROS 2 packages in the Hardware Acceleration Working Group.acceleration_firmware
: Base ROS 2 package for hardware acceleration firmware. Used to organize firmware dependencies across vendors.adaptive_component
: A composable container for Adaptive ROS 2 Node computations. Select between FPGA, CPU or GPU at run-time.
More details can be found at REP-2008 PR - ROS 2 Hardware Acceleration Architecture and Conventions)
NVIDIA Hardware Support
As we discussed in prior blog posts, Open Robotics has been working with NVIDIA is to improve ROS 2 performance on NVIDIA hardware. Much of this work has focused on providing hooks into ROS 2 to minimize memory consumption and better pipeline serial processing operations. We are happy to report that this work is now available in ROS 2 Humble and should improve ROS 2 performance for perception and planning related tasks on NVIDIA hardware.
TYPE ADAPTATION
ROS topics can be adapted to a format better suited for acceleration in hardware using type adaptation (REP-2007 2). A node using an adapted type, can publish, and/or receive the adapted type. Nodes using an adapted type, need to provide functions to convert from the standard type, to the adapted type, and visa-versa. This enables a graph of nodes to use an adapted type which can improve CPU and hardware acceleration concurrency, offload the CPU from compute tasks, and eliminate memory copies between the CPU and hardware accelerator.
TYPE NEGOTIATION
With a graph of ROS nodes using an adapted type, we can further benefit from optimizing the type used between nodes in the graph. Nodes supporting type negotiation (REP-2009 2) can share a list of types they support as a publisher, and as a subscriber with a weight indicating their preferences. ROS will review the publishers and subscribers participating in type negotiation, and optimize for preferences while maintaining compatibility with nodes that do not support type negotiation. Preferences are a way to reflect performance, or cost of the type, and should be tuned by the developer of the node, but can be overridden by the application developer.
The end result of adding type negotiation and type adaptation to ROS 2 is that end users will see dramatic performance improvements on supported hardware, close to 10X! For example, when performing pixel processing operations on a Jetson AGX Orin the total throughput went from 0.55 gigapixels/sec in Foxy to 4 gigapixels/sec in Humble for our benchmark tests! This is a huge win for ROS 2 users who work on perception heavy applications!
MoveIt 2 Improvements and New Features!
Top: PickNik and Fraunhofer IPA have applied MoveIt to advanced robotic welding techniques. Full video here
Bottom: Example of supervised autonomy door opening with MoveIt, MoveIt Studio, and the UR driver for ROS 2.
MoveIt is an important member of the ROS 2 community and the MoveIt packages are essential for anyone who works with a robot arm. The team at PickNik and other MoveIt contributors have put a lot of effort into revamping the tutorials with an improved learning-oriented content structure! Users can now get started by building from source or using the Rolling binary release with Humble binary releases coming soon! The newest features in MoveIt include
Hybrid Planning: use a (slower) global motion planner with a (faster) local motion planner to enable a robot to solve different tasks online and in dynamic environments
TOTG: now default parameterization method
Ruckig: improved time parameterization and jerk smoothing that allows for nonzero initial/final conditions
MoveIt Setup Assistant : the entry point for using MoveIt, now for ROS 2. Quickly and easily setup a new arm in minutes.
MoveIt Config Utilities: simplify loading parameters
Lots of new ROS 2 drivers for arms (Universal Robotics and more announced soon)
Improvements to FastDDS for Humble
The ROS Middleware (RMW) layer is a key innovation for ROS 2 as it allows ROS users to pick and choose the best approach for moving data across their ROS deployment. After a thorough review process the ROS 2 Technical steering committee chose ePrsomia’s FastDDS to be the default ROS middleware that ships with Humble (ROS users can quickly and easily select the middleware that best supports their application. eProsima delivered a number of innovative features that are now available in ROS 2 Humble Hawksbill, these include:
Content Filtered Topic feature (CFT) that provides the Topic with filtering capabilities, enabling users to segment the subset of data of their interest under certain criteria when subscribing to a topic.
Add remote servers and modify server locators at runtime: now it is possible to programmatically add and modify the participant’s list of remote servers to which the running server or client should connect while a server or client is running.
Static Discovery new format: the new exchange format reduces the necessary network bandwidth to transmit Static.
Complete events support: incompatible QoS notification for Publisher and Subscriber.
Looking Forward
We’re incredibly excited about the Humble Release and the community members that are making ROS 2 such a success. By now it should be obvious that innovations in ROS 2 make it the obvious choice for all of your new ROS projects, and that their are lots of advantages to upgrading to ROS 2. We want to thank the entire ROS community for making this release possible and we look forward to doing it all again when we release ROS Iron Irwini next May!