ros1_bridge
ros1_bridge copied to clipboard
Add ROS-O support and fix compatibility issues
Summary
This PR adds support for testing ros1_bridge with ROS-O (ROS One) and fixes compatibility issues when testing with the noetic + rolling combination.
Changes
Copyright header
- Add Apache License 2.0 copyright header to
controller_manager_msgs_controller_state_adapter.cpp - This file was missing the required copyright header, causing linting tests to fail
pep257 compatibility fix
- Skip pep257 test on Ubuntu 20.04 (Focal) with ROS 2 Rolling
- The pep257 linter (
ament_pep257 0.11.4) has a compatibility issue with Python 3.8 - Error encountered:
ValueError: too many values to unpack (expected 3) - This is a known issue with the API changes in ament_pep257
CI workflow updates
- Add ROS-O test configurations to CI workflow
- Update to use action-ros-ci with ROS-O support
- Add workflow_dispatch for manual testing
- Test ROS-O + Humble and ROS-O + Jazzy combinations
Build fixes
- Fix std::vector
specialization issues - Fix ControllerState message mapping between ROS 1 and ROS 2
Related PRs
This PR is part of a series to add ROS-O support to the ROS tooling ecosystem:
-
setup-ros: Add ROS-O repository and installation support
- https://github.com/ros-tooling/setup-ros/pull/854
-
action-ros-ci: Add ROS-O distribution recognition
- https://github.com/ros-tooling/action-ros-ci/pull/1008
-
ros1_bridge (this PR): Enable testing with ROS-O and fix compatibility issues
Together, these PRs enable:
- Installing ROS-O via setup-ros
- Building and testing ROS-O packages via action-ros-ci
- Testing ros1_bridge with ROS-O + ROS 2 combinations
Testing
With these changes, the CI successfully tests:
- ROS-O + Humble on Ubuntu 22.04
- ROS-O + Jazzy on Ubuntu 24.04
- Noetic + Rolling on Ubuntu 20.04 (with pep257 skipped)
All tests pass successfully with these combinations.
Technical details
The pep257 skip is necessary because:
- Ubuntu 20.04 uses Python 3.8
- ROS 2 Rolling includes
ament_pep257 0.11.4 - This version has API changes incompatible with Python 3.8
- Newer Ubuntu versions (22.04+, 24.04) use Python 3.10+ and work correctly
Breaking changes
None. These are additive changes that:
- Add missing copyright header (fixes linting)
- Skip one problematic test on a specific platform combination
- Add new test configurations for ROS-O
- Fix build issues for better compatibility
- All other tests pass successfully
Signed-off-by: Iori Yanokura [email protected]