Hi all,
Your Friendly Neighborhood Navigator here!
I wanted to announce a key breaking change in Nav2: We have now migrated away from Twist
in favor of TwistStamped
for all cmd_vel
and related topics!
This was a change motivated for several reasons, including the Aerial community’s interest in working with command velocities in various reference frames, as well as AMR applications wanting a stamp to reject stale velocity commands in the header.
We started this process earlier this year, but selected to not make it default in Nav2 for Jazzy due to its LTS nature. Since Kilted is non-LTS, this is a nice staging distribution to … break … folks and start the Nav2 adjacent and robot hardware packages’ migrations.
If you are one such broken item, the migration is very straight forward. Good news! We have some utility functions you can leverage that we use across Nav2 that makes it easy to switch: a Twist Publisher and Twist Subscriber. It then also sets a standard parameter name (enable_stamped_cmd_vel
) that is used across the board for toggling between Twist and Twist Stamped messages. In the migration, we simple switched them from false
to true
and made the appropriate updates in the simulation / hardware cmd_vel
subscriptions. At some point in the distant future, we may depreciate Twist in favor of solely TwistStamped, but that would be many years away.
I have also filed tickets in the related ecosystem packages I could think of:
- [Notice] Nav2 Migrated to TwistStamped to replace Twist for cmd_vel Topics · Issue #317 · ros-visualization/rqt · GitHub
- [Notice] Nav2 Migrated to TwistStamped to replace Twist for cmd_vel Topics · Issue #908 · cra-ros-pkg/robot_localization · GitHub
- [Notice] Nav2 Migrated to TwistStamped to replace Twist for cmd_vel Topics · Issue #54 · ros-teleop/twist_mux · GitHub
- [Notice] Nav2 Migrated to TwistStamped to replace Twist for cmd_vel Topics · Issue #93 · ros-teleop/teleop_tools · GitHub
- [Notice] Nav2 Migrated to TwistStamped to replace Twist for cmd_vel Topics · Issue #290 · ros-drivers/joystick_drivers · GitHub
- [Notice] Nav2 Migrated to TwistStamped to replace Twist for cmd_vel Topics · Issue #27 · neobotix/neo_nav2_bringup · GitHub
- [Notice] Nav2 Migrated to TwistStamped to replace Twist for cmd_vel Topics · Issue #1038 · ROBOTIS-GIT/turtlebot3 · GitHub
- [Notice] Nav2 Migrated to TwistStamped to replace Twist for cmd_vel Topics · Issue #504 · turtlebot/turtlebot4 · GitHub
If I missed anyone, please let them know! We’ve also updated Nav2’s documentation on this in our Migration Guide with examples of how to migrate Gazebo (spoiler: easy). If you would not like to use TwistStamped, you can set enable_stamped_cmd_vel: false
for all nodes in Nav2 and it should continue to use Twist.
Let us know if you have any issues, questions, or comments!
Happy twisting!
Steve Macenski