ROS 2 Lyrical Luth Released
Happy day before World Turtle Day! Today the ROS 2 Release Team is happy to announce the twelth release of ROS 2: Lyrical Luth (codenamed lyrical).
In addition to the official logo shared previously, we also have a new Lyrical Luth turtlesim and Discourse icon
:lyrical:. Our Lyrical T-shirt and swag campaign is still live! You can still grab all the cool merch if you want to support the release. All proceeds help support the Open Source Robotics Foundation (OSRF).
Lyrical Luth is a long term support (LTS) release that will be supported until May 2031. The distribution supports the following platforms:
- Tier 1 platforms:
- Ubuntu 26.04 (Resolute): amd64 and arm64
- Windows 11 (Visual Studio 2022): amd64
- Tier 2 platforms:
- RHEL 10: amd64
- Tier 3 platforms:
- Ubuntu Noble (24.04)
- macOS
- Debian Trixie
- OpenEmbedded
For more information about RMW implementations, compiler/interpreter versions, and system dependency versions please see Lyrical Luth Supported Platforms and Platform Support Tiers.
If you are new to ROS, we recommend trying Lyrical Luth on a Tier 1 supported platform. Check the installation instructions and tutorials on docs.ros.org, and give Lyrical a spin!
Should you run into any difficulties, please ask a question on Robotics Stack Exchange or let us know on Zulip. If you would like to try Lyrical but are afraid of commitment you can find Lyrical Docker containers on Docker Hub shortly.
New Features and Enhancements
Lyrical Luth is feature packed and full of improvements! If you want the gritty details feel free to peruse the release notes and complete changelog for core ROS 2 packages. Weâve summarized a few new features weâll think youâll love below.
New Executors Deliver Improved Performance
Looking for better executor performance? Check out the new Callback Group Events Executor. Like its predecessor the EventsExecutor, the EventsCBGExecutor uses an events queue to process ready entities. However, EventsCBGExecutor adds support for multiple sources of ROS time and multiple threads. Compared to the Single and Multithreaded executors, the EventsCBGExecutor uses 10% to 15% less CPU! If you are using composable nodes you can Launch a component container with the EventsCBGExecutor using the new --executor-type argument
We want to send a big shout out to Janosch Machowinski, Skyler Medeiros, and Maurice Alexander Purnawan for making this performance improvement happen!
Asyncio in RCLPy with Improved Performance!
Want to use asyncio and rclpy at the same time? Well now you can thanks to a pull request from Nadav Elkabets! Check out our new AsyncNode class. This node runs an asyncio event loop allowing you to call await on any asyncio operation from any ROS subscription, service, or timer callback. Try await client.call(request) to wait for service calls, and the sim-time aware await clock.sleep(...). Best of all, this class uses significantly less CPU compared to the default SingleThreadedExecutor.
To get started check out our Python asyncio Node Tutorial on docs.ros.org.
rosidl::Buffer Improvements Facilitate Zero-Copy GPU Data Transfer
Moving ROS data to or from a GPU just got a lot faster and easier in ROS 2 Lyrical Luth! If your ROS application uses a GPU for data processing youâll want to upgrade as soon as possible to take advantage of our new zero-copy data transfer capabilities.
Are you publishing data on ROS topics, but using that data elsewhere, like a GPU? Tired of copying data out of the GPU before publishing just to copy it back into the GPU in the subscriber? You can now use rosidl::Buffer to publish and subscribe to ROS messages without performing costly data copy operations. You can learn all about this exciting new feature and how to use it to improve your GPU performance on on docs.ros.org.
To make this performance improvement possible all uint8[] fields now have the type rosidl::Buffer<uint8_t> in C++ instead of std::vector<uint8_t>. You must define your ROS messages with uint8[] fields and install an appropriate rosidl::BufferBackend implementation to take advantage of this feature. Note that only publishers and subscribers using rmw_fastrtps_cpp may use this feature for now, but support in Zenoh is coming soon!
Using a custom hardware accelerator or machine learning library? You can benefit from this too. See Writing a rosidl::Buffer backend to learn how to implement your own rosidl::BufferBackend.
Big thanks to our colleagues at NVIDIA, particularly CY Chen for making this improvement happen!
Miscellaneous Features
ROS 2 Lyrical Luth comes with a ton of other great new features and weâve compiled a partial list of them below. Remember, if you are coming from Jazzy (or even Humble or Foxy) youâll also get all of the great features we shipped in Kilted Kaiju.
- Callback Group Events executor (rclcpp)
- Parameter range descriptors check bounds for integer and double arrays (rclcpp)
- AsyncNode lets you use asyncio (rclpy)
- Publish messages without copying data using
rosidl::Buffer - Use YAML tags in parameter files
- More logging options in launch files
- New substitutions in XML and YAML launch files
- Choose ROS logging backend at runtime
- Control bag recording remotely using ROS services
- Control bag Playback and Recording using Python
- Circular recording by bag split
- More descriptive bag split names
- rosbag2 message-loss observability
- fish shell support
ros2 param geta parameter from all nodesros2 param getandsetmultiple parameters on one node- Actions, Services, and Environment variables in
ros2 doctor --report - Verbose service information
ros2 service info --verbose ros2 topic bwmultiple topics at once- URDF improvements
robot_state_publishercan read the robot description from a topic- Resource retriever service
- Call ament_python_install_package multiple times
- New CMake target:
ament_cmake_ros_core::ament_ros_defaults - New thread naming utilities
- New rcutils APIs
- New
rclAPIs - Pass constructor arguments to plugins using
class_loader - Runtime tracing opt-out mechanism
- Long-term tracing improvements
A Community Effort
ROS 2 is truly a community effort, and this could not have been better exemplified by our public beta testing of Lyrical Luth over the past few weeks. Almost 2651 test cases were put through the ringer with several improvements identified along the way. It really helped âhardenâ the Lyrical distribution. The release team would like to extend a heartfelt thank you to all testers. For our top twenty testers you should get an e-mail in your inbox with a swag coupon code sometime later next week. A full list of our 110 testers can be found below.
Thank you to all 110 T&T Party Contributors!
Aadya dave, Aarav Gupta, Aashishkumar, Abdulhaleem Oseni, Abhinand Binu , Abhiroop Bhavsar, Aditya Dev Singh, Aditya Kamath, Adyansh Gupta, Adyansh Gupta, Ahmed Ishiba, Akash Kanagala, Akashleena Sarkar, Alan McDonley, Amar Balutkar, Amber Handal, Ammaar Ahmed, Andreas, Andy Blight, Anushri Arora, Aryan Rajendra Jagushte , Atharv Mudse , Avinash Umesh Sarma, Azmyin Md. Kamal, Ben waxler, Bhavesh Gandhi, Carlos Leonardo Lazzari, Cherry Cheung, Chetan Satpute, Danish Tapia, Deep Kotadiya, Drake McGillivray, Edward Morgan, Emmanuel Nketsia Yawson, Enzo Ghisoni, Eric, fengchen, George Stavrinos, Harrison Chen, Innocent Pious, Jasper Grant, Jeff Donovan, Jiahao Sim, Josef Gstoettner, Julie Foresta, Jyothiswaroop Kasina, Kai Tung Yu, Kartik Rana, Ken Gregson, Koshiro Suzuki, Kunal Yadav, Kushant Patel, Labeeb Nassar, Labeeb Nassar, Lautaro, Lautaro, Leslie Selorm Afeawo, Lingampalli Venkata Subramanyam, Maik Fruhner, Manav Sikka, Mann Bhanushali, Marco Walther, Mariano, Marlvern Chimbwanda, Matheus Sousa Soares, Mathew P Hans, mentor, Mer Alba, mervin mathew, Mikael Arguedas, Mike Giedosh, mohan, Mostafa Ahmed Sayed Hassan, Muhammad Usman, Nagharajan Gudalur Thyagarajan, Neeraj Cherakara, Nikos Mitropoulos, Nirmal Ram , Nisrine Lasfer, Noel Jimenez Garcia, Olivier Stasse, Omer Sayed, Oscar, Paresh Soni, praga, Pranav Shirgur, Pranava Swaroopa, Rohit, Sachin Kumar, Satvik Sharma, Satya Dheeraj, Selorm Leslie Afeawo, Shahazad Abdulla , Shahryar Mooraj , Shanmukha Vishnu, Shubham Chauhan , Somanshu, Sourav Anil Hawaldar , Sterling McLeod, Stuart G Johnson, Terdoo George Anaana, Tharun Oommen Jacob, Tom Lageson, Tomoya Fujita, Trushant Adeshara, Vaibhav S, Vansh Mittal, Vincenzo Petrone, Vishwanath R, and Yashvi Shah.
We also want to thanks the 238 contributors who contributed to this release through code changes, documentation, and testing, and especially to our ROS Boss @sloretz! The following individuals made contributions to the Lyrical release:
A big thank you to our 239 contributors to Lyrical Luth!
* Aarav Gupta * Abrar Rahman Protyasha * Achille Verheye * Adam Aposhian * Adam Leeper * Addisu Z. Taddese * AiVerisimilitude * Akihiko Komada * Alberto Soragna * Alejandro HernĂĄndez Cordero * Alex Spitzer * Alex Tyshka * Alex Youngs * Alexander Kornienko * Alexis Tsogias * Alireza Moayyedi * Alon Borenshtein * Amin Ya * Andreas * Andrei Costinescu * Andrei Kholodnyi * Andrew Symington * Andrianov Roman * Anthony Welte * Antonio Brandi * Arne Hitzmann * Auguste Lalande * Barry Xu * Bartlomiej Styczen * Bas Zalmstra * Brad Martin * Brandon Simoncic * Brennan Miller-Klugman * BĆaĆŒej Sowa * CY Chen * ChenYing Kuo (CY) * Chris Lalancette * Christian Rauch * Christian Ruf * Christoph Fröhlich * Christophe Bedard * Chui Vanfleet * Clara Berendsen * CristĂłbal Arroyo * Daisuke Nishimatsu * Daisuke Sato * Dan Mascarenhas * DangitBen * Danil * David Anthony * David Revay * David V. Lu * Dhruv Patel * Dominik * EddyGharib * Eesha Kumar * ElSayed ElSheikh * Emerson Knapp * Emmanuel * Emre Kuru * Eric Lujan * Erwin L. * EsipovPA * Esteve Fernandez * Evan Flynn * Fabian Thomsen * Faseel Chemmadan * Felix Exner (fexner) * Filip * Florencia * Florian Vahl * Francisco Gallego Salido * Francisco Rossi * Garrett Brown * Gary Bey * Gary Servin * Georg Flick * Giorgio Pintaudi * Grey * Guillaume Doisy * Harrison Chen * HervĂ© Audren * Hugal31 * Hunter L. Allen * Ian Chen * Ilario A. Azzollini * Ivo Ivanov * Jan Vermaete * Janosch Machowinski * Jasper van Brakel * Jay Sridharan * Jean Paul * Jeremie Deray * Jimmy McElwain * Jochen Sprickerhof * Johannes Böhm * John TGZ * Jonas Otto * Jonathan Selling * Jorge J. Perez * Jose Luis Rivero * Joshua Supratman * JosĂ© Faria * Julien Enoch * Katherine Scott * Kaju-Bubanja * Kenji Brameld * Khaled Gabr * Kimberly N. McGuire * Kostubh Khandelwal * Kosuke Takeuchi * Kotaro Yoshimoto * Larry Gezelius * Leander Stephen D'Souza * Lee * Lennart Reiher * Lucas Wendland * Lucien Morey * Lukas SchĂ€per * Luke Sy * Mahmoud Mazouz * Mario DomĂnguez LĂłpez * Mark Johnson * Markus Bader * Martin Pecka * Mateusz Ć»ak * Matt Condino * Matteo Princisgh * Matthew Foran * Matthijs van der Burgh * Maurice Alexander Purnawan * Maxime Fleury * Michael Carlstrom * Michael Carroll * Michael Orlov * Michael Tandy * Michal Sojka * Michel Hidalgo * Michiel Leegwater * Miguel Company * Mihir Rao * Mikael Arguedas * Minju * Mirko Ferrati * Mohit Kumaresan * Nadav Elkabets * Nathan Boisard * Nathan Brooks * Nathan Wiebe Neufeldt * Nikola BanoviÄ * Om Shivam Verma * Oren Bell * Oren Bell PhD * Oscmoar07 * Parth Patel * Patrick Roncagliolo * Pavel Esipov * Pavel Guzenfeld * Peng Wang * Peter Mitrano (AR) * Pierre Ballif * R Kent James * RHolland * Rahat Dhande * Raphael van Kempen * Rick-v-E * Robert Haschke * Romain Reignier * Rushhaank Sahay * SPeak * Sahil Lakhmani * Sai Kishor Kothakota * Sam Privett * Samuel Foo Enze * Sarthak Bagga * Scott K Logan * Sebastian Castro * Sebastian Javier D'Alessandro Szymanowski * Selim AÄırman * Sergei Zobov * Shane Loretz * Shravan Deva * Shynur * Silvio Traversaro * Simon Jusner * Skyler Medeiros * Sriharsha Ghanta * Stefan Fabian * Steve Macenski * Steve Peters * Steven Palma * Stoyan Gaydarov * Taiga Arai * Tanishq Chaudhary * Tim Clephas * Tim Wendt * Timo Röhling * Tom Moore * Tomoya Fujita * Tony Najjar * Tully Foote * Tyler Weaver * Vladimir Gerts * William Woodall * Yadnyeshwar Amol Sakhare * Yadunund * Yannik Meinken * YuJin Hong * Yuchen966 * Yuyuan Yuan * Zhaoyuan Cheng * Zheng Qu * baranbologur * carlos-apex * cdisco * cramke * dcconner * eboasson * fabianhirmann * ipa-fez * jay * jordanburklund * keeponoiro * matthias88 * mhidalgo-rai * milidam * mini-1235 * mohit * mosfet80 * nelson * nomumu * pum1k * r-simonelli * solo * t0k0shi * wodtko * xndcn * yellowhatter * Ăystein StureFinally, weâd like to announce the name of the next ROS 2 release for May 2027:
Makoa Mata-mata 
Makoa is a Hawaiian word that means fearless or courageous and the Mata-Mata is a South American species of freshwater turtle found in the Amazon basin and river system of the eastern Guianas.

