ROS 1 to ROS 2 Migration: A Comprehensive Guide

January 21, 2025

Author: Gaurav Gupta

Read time: 4 mins

The robotics community is approaching a significant milestone, the last ROS 1 distribution, reaches its End of Life (EoL) in May 2025. This means the ROS community will cease to provide updates, security patches, and support for ROS 1. For robotics developers and companies heavily invested in ROS 1, now is the crucial time to plan migration to ROS 2.

Comparison of ROS 1 Noetic and ROS 2 Humble: Highlighting Key Tools and Features

What Does End of Life Mean?

End of Life for ROS 1 Noetic signifies several important changes:

  • No more bug fixes or security patches
  • Discontinued community support on ROS forums and Answers
  • Gradual decrease in compatibility with newer operating systems
  • Third-party packages may become unmaintained

Which ROS 2 Distribution Should You Choose?

While several ROS 2 distributions exist, we recommend migrating to ROS 2 Humble Hawksbill. Released in May 2022, it's a Long Term Support (LTS) distribution with support until May 2027. This extended support window provides stability for industrial applications and allows time for proper integration and testing.

Direct Stack Migration Options

These are some direct approaches to transition your ROS 1 stack to ROS 2:

MoveIt to MoveIt2

MoveIt2 represents a direct evolution of the popular motion planning framework. Key differences include:

  • Integration with ROS 2's lifecycle nodes
  • Enhanced real-time capabilities
  • Improved collision-checking performance
  • Support for trajectory replanning

Moveit2 Pipeline

Navigation Stack Evolution

The transition from move_base to Navigation2 (Nav2) represents more than just a framework migration - it's a complete architectural redesign. Nav2 introduces:

  • Behavior tree-based task execution
  • Enhanced recovery behaviors
  • Plugin-based architecture for easier customization
  • Support for various controller types

move_base architecture vs Nav2 architecture

Speaking of navigation, our team at Black Coffee Robotics recently contributed Vector Pursuit to the ROS 2 ecosystem - a computationally efficient path-tracking algorithm that outperforms traditional Pure Pursuit while maintaining simplicity in implementation.

Key Migration Challenges

While shifting from ROS 1 to ROS 2, developers face these challenges in adapting to the new middleware, updating existing codebases, and managing compatibility with ROS 2's enhanced features and tools.

Launch System Changes

The ROS 2 launch system represents a significant departure from ROS 1's XML-based approach. While the new Python-based system offers greater flexibility and programmatic control, teams need to invest time in learning the new paradigm. The new system provides better support for conditional execution and parameter handling, but the learning curve can impact initial development velocity.

Simulation Challenges

The simulation ecosystem transition presents several challenges:

  • Need for updated robot models and world files
  • Migration from Gazebo-classic to Gazebo (formerly Ignition)
  • Different plugin architecture
  • Changes in physics engine interfaces
  • Limited availability of ready-to-use simulation models compared to ROS 1

For hands-on experience with a robot in different simulators that supports both ROS 1 and ROS 2, explore our in-house robot, BCR Bot , as part of your migration journey.

Comparison of Gazebo Classic and Gazebo Harmonic: Simulation Environment

Core Concept Changes

Several fundamental changes require careful consideration:

  • Quality of Service (QoS): ROS 2's DDS middleware requires explicit QoS configuration for optimal performance, unlike ROS 1's simpler communication model
  • Build System: The shift from catkin to colcon affects how packages are built and organized
  • Command Line Tools: New syntax and tools replace familiar ROS 1 commands
  • Parameter Management: Node-specific parameters replace the global parameter server
  • Package Dependencies: Changes in how dependencies are specified and managed
  • Node Lifecycle: Introduction of managed nodes with explicit state machines

Need Help With Migration?

Migration to ROS 2 requires careful planning and expertise. At Black Coffee Robotics, we've successfully helped multiple clients transition their robotics applications from ROS 1 to ROS 2. Our experience spans diverse domains including autonomous mobile robots, robotic arms, and multi-robot systems.

Whether you need consultation on migration strategy or hands-on development support, reach out to us to ensure a smooth transition to ROS 2.

Want to reduce costs and time to market for your autonomous robots?