ROS 2 Version Compatibility Guide
Target Version
Module 1 content is developed and tested with ROS 2 Humble Hawksbill (LTS)
- Release Date: May 2022
- Support Until: May 2027
- Ubuntu Version: 22.04 (Jammy Jellyfish)
Compatibility with Other ROS 2 Versions
✅ Compatible Versions
The Module 1 lessons use core ROS 2 features that are available across all major ROS 2 distributions. The content should work with:
- ROS 2 Humble (LTS) - Recommended ✅
- ROS 2 Iron (Non-LTS, May 2023 - Nov 2024)
- ROS 2 Jazzy (LTS, May 2024 - May 2029)
- ROS 2 Rolling (Latest development)
Key Features Used (Version-Agnostic)
All lessons use standard ROS 2 APIs that have been stable since Foxy:
- Python Client Library (rclpy): Standard node creation, publishers, subscribers
- Topics: Publish-subscribe communication pattern
- Services: Synchronous request-response
- Actions: Asynchronous goal-feedback-result pattern
- Launch Files: Python launch system
- Parameters: Dynamic configuration
- URDF: Robot description format
- Packages: colcon build system
No Version-Specific Features
Module 1 does not use any Humble-specific features, experimental APIs, or deprecated functionality. All code examples follow ROS 2 best practices that work across distributions.
Migration from Older Versions
From ROS 2 Foxy (LTS, EOL June 2023)
Changes Needed: Minimal to none
- All Module 1 code examples should work without modification
- Package dependencies remain the same
- Launch file syntax is compatible
Action Required: Update your system to a supported LTS version (Humble or Jazzy)
From ROS 2 Galactic (EOL December 2022)
Changes Needed: None for Module 1 content
- Core APIs are identical
- Code examples compatible
Action Required: Upgrade to Humble or newer
Using with Newer Versions (Iron, Jazzy, Rolling)
Expected Behavior
Module 1 code examples should run without modification on:
- ROS 2 Iron (Non-LTS)
- ROS 2 Jazzy (LTS)
- ROS 2 Rolling
Potential Differences
While the core functionality is identical, newer versions may have:
- Performance improvements - Faster message passing, reduced latency
- Additional features - New parameters, enhanced debugging tools
- Deprecated warnings - Older APIs may show deprecation notices (but still work)
If You Encounter Issues
If you experience problems with Module 1 content on a newer ROS 2 version:
- Check the ROS 2 release notes for breaking changes
- Verify your package dependencies in
package.xml - Ensure you've sourced the correct ROS 2 installation:
source /opt/ros/<distro>/setup.bash - Report issues in the course repository
Platform Compatibility
Supported Platforms
- Ubuntu 22.04 (Jammy) - Recommended for Humble ✅
- Ubuntu 24.04 (Noble) - Use with Jazzy
- Windows 10/11 - Via WSL2 (Ubuntu 22.04)
- macOS - Via Docker container
Notes for WSL2 (Windows)
All Module 1 lessons work in WSL2 with Ubuntu 22.04. GUI tools (RViz2) require:
- WSLg (Windows 11 with WSL2)
- X11 forwarding (Windows 10)
Notes for Docker
When using Docker:
- Use official ROS 2 Docker images:
ros:humbleorros:jazzy - Mount your workspace as a volume
- Enable GUI forwarding for RViz2
Verification
To verify your ROS 2 installation is compatible:
# Check ROS 2 version
echo $ROS_DISTRO
# Verify core packages
ros2 pkg list | grep demo_nodes
ros2 pkg list | grep turtlesim
# Test basic functionality
ros2 run demo_nodes_py talker
Expected output:
humble # or iron, jazzy, rolling
Summary
Bottom Line: Module 1 uses stable, core ROS 2 features. While developed for Humble, the content is compatible with other ROS 2 distributions without modification.
Recommendation: Use ROS 2 Humble (LTS) or Jazzy (LTS) for long-term support and stability.