ROS 2 Jazzy Jalisco Released
Today we are happy to announce the tenth release of ROS 2, Jazzy Jalisco! Jazzy is a Long Term Support release that will be supported until the end of May, 2029. ROS Jazzy supports three Tier 1 operating systems out of the box: Ubuntu 24.04 Noble Numbat (both arm64 and amd64 architectures) and Windows 10. Other operating systems are also supported as listed in REP-2000. If you want to try it out, our installation instructions and tutorials are now up and ready to go on docs.ros.org, and Docker images are available on DockerHub.
This release is named after the Jalisco River Turtle, a common species of mud turtle that lives in Mexico, primarily in Jalisco and Colima. The jazzy part? Well, that was probably inspired by ROSCon 2023 in New Orleans. For this release we worked with a new illustrator, Ryan Hungerford, to produce a release graphic inspired by the name. Ryan also illustrated the release artwork for Gazebo Harmonic. As always, Jazzy Jalisco merchandise, including t-shirts, is available. All proceeds go to funding open-source development and education at the Open Source Robotics Foundation.
Getting Jazzy out the door has been a massive team effort, with 211 contributors providing code changes and 29 testers completing over 400 tests during our Test and Tutorial Party. We want to extend our heartfelt thanks to everyone in the ROS community who helped to make this release happen! We couldn’t do this without the support of the ROS open source community.
We traditionally announce the name of the next ROS release once we’ve completed the current ROS release. After a long brainstorming session and multiple rounds of voting by the core team, we are excited to let you know that our May, 2025 release of ROS will be named Kilted Kaiju.
New Features and Enhancements
Jazzy Jalisco is feature packed and full of improvements! We’ve summarized a few new features we’ll think you’ll love below.
Easier Gazebo Integration
Even though the OSRF maintains the Gazebo simulator, we’ve always strived to keep ROS simulator agnostic. No simulator is perfect, and we want ROS users to choose the simulator that works best for their particular application. However, usability, education, and “batteries included” also matter! Many newer members of our community struggle with getting ROS and Gazebo to work well together. Starting with Jazzy we’re trying to improve the usability of Gazebo with ROS while still giving users the option to use their favorite simulator. To do this we now recommend a particular Gazebo release for each ROS release. For Jazzy Jalisco, the recommended Gazebo release is Gazebo Harmonic. For each recommended Gazebo release we will distribute Gazebo vendor packages that users can easily install so they can get started quickly. You can find a full list of our Gazebo vendor packages and instructions on how to use them here.
ROS Command Line Interface Improvements
The ROS 2 command line sports a handful of new features that should make your life easier! Here are a couple of highlights.
Pick your own log file names! Just add `--log-file-name` to set a custom log file for a `ros2 run` command.
Set your own Quality of Service when calculating topic statistics.
Calls to `ros2 service info` now report the number of connected clients.
Actions now report their type information – i.e. `ros2 action type /action_name` returns the action type.
ROSBag Improvements
ROS services play a critical role in any ROS system, as many developers use services as the building blocks for more complex behaviors or as the user-facing API for a robot. Making a robot perform a behavior is often as simple as calling a quick service request. ROS bags are often used by ROS developers much like an airplane’s “black box,” with recorded data often being used to analyze and debug failure modes. Unfortunately, in all previous ROS releases, bags could not log service calls, making it difficult to understand the series of service calls that led to a particular failure mode. Jazzy fixes this oversight by adding the ability to log service calls to and replay them from a bag.
Another useful feature we’ve added to bags in Jazzy is the ability to selectively record topics by type. Let’s say you wanted to record all of the image topics for every one of the five cameras on your autonomous car. Prior to Jazzy you would need to enumerate every image topic on your robot to make that happen. Now you can simply tell rosbag to log all messages of type `sensor_msgs/msg/Image` and rosbag will take care of the rest. But wait, there’s more! You can also exclude particular message types too! This is particularly useful if you want to keep your bags lean so you can quickly share them with colleagues.
RViz2
RViz2, the built-in ROS 2 visualization tool, comes with a suite of new features that improve RViz’s overall usability and help filter out unnecessary information. Briefly, we’ve added the following features.
Regex-based filters for TF – you can now show and hide transforms based on their name.
Topic frequency in status bar – all topics now automatically report their frequency in Hertz.
Reset time via keyboard – You can now reset your simulation time by pressing “R.”
Visualize point_cloud_transport – You can now subscribe to `point_cloud_transport` topics
Display Camera Info in RVIZ – want exposure info? You’ve got it.
ROS 1 feature parity for DepthCloud, AccelStamped, TwistStamped, WrenchStamped and Effort message types.
Miscellaneous Improvements of Note
Across the project, there were several small improvements that should make life easier for ROS developers. Many of these improvements came from community members trying to make everyone’s lives just a little bit easier.
A whole host of improvements to ROS Perception are now available for image transport, including lazy subscribers, QoS settings, a parameter to disable plugins at run-time, and much more.
Names added to polygon messages so they are easier to identify.
We added a twist message interpolator for more precise twist lookups from TF.
ROS Timers can now return actual and expected times for callbacks.
Preview: Zenoh RMW
While it is not a part of this release, we also want to say a few words about Zenoh. Back in September of last year, we said that we would be working on a new ROS middleware (RMW) implementation that integrates Zenoh with ROS 2. Our contributors have made steady progress on it, and rmw_zenoh is now mostly feature-complete. However, it may still change in minor ways as we complete testing, debugging, and finalizing the implementation. Rest assured that we’ll be continuing to work on and improve it in the coming year, as we target a first release with Kilted Kaiju.
For now, to use this new RMW you will need to compile ROS 2 Jazzy from source along with the new RMW. Since this is a feature in testing, we want to hear about your experiences, particularly for larger ROS deployments with heavy or complex networking needs. For more information on how to try it out, please see the README file.
Another Great Release
We’re so excited and relieved to have shipped another ROS 2 release, and we are looking forward to working with our contributors, ROS community members, Open Source Robotics Alliance members, and partner organizations on ROS 2 Kilted Kaiju. If you or your organization would like to become more involved in ROS development, please reach out to us, or just take a look at the repositories on GitHub, and start filing issues and fixing bugs! If you want to provide more long-term support to the people and infrastructure that make the ROS project possible, please consider joining the Open Source Robotics Alliance.