Skip to content

Ros o support#1

Merged
k-okada merged 5 commits intoros-o:masterfrom
iory:ros-o-support
Oct 30, 2025
Merged

Ros o support#1
k-okada merged 5 commits intoros-o:masterfrom
iory:ros-o-support

Conversation

@k-okada
Copy link
Copy Markdown
Member

@k-okada k-okada commented Oct 30, 2025

Original PR ros2#462

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:

  1. setup-ros: Add ROS-O repository and installation support
  1. action-ros-ci: Add ROS-O distribution recognition
  1. 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 ab.ioryz@gmail.com

iory added 5 commits October 28, 2025 02:55
- Add specialized streamPrimitiveVector overloads for std::vector<bool>
  to handle proxy object references instead of using memcpy
- Add adapter for incompatible controller_manager_msgs::ControllerState
  between ROS1 Noetic and ROS2 Jazzy, converting common fields (name,
  state, type)
- Update CMakeLists.txt to include the ControllerState adapter

This resolves compilation errors "lvalue required as unary '&' operand"
and linker errors for undefined ControllerState Factory methods.

Signed-off-by: Iori Yanokura <ab.ioryz@gmail.com>
- Add matrix strategy to test multiple ROS 1/ROS 2 combinations
- Add ROS-O (one) testing on Ubuntu 22.04 with ROS 2 Humble
- Add ROS-O (one) testing on Ubuntu 24.04 with ROS 2 Jazzy
- Keep existing Noetic + Rolling test for compatibility
- Update to use iory/setup-ros@add-ros-one-support for ROS-O support

Signed-off-by: Iori Yanokura <ab.ioryz@gmail.com>
Signed-off-by: Iori Yanokura <ab.ioryz@gmail.com>
Signed-off-by: Iori Yanokura <ab.ioryz@gmail.com>
This commit adds support for testing ros1_bridge with ROS-O (ROS One)
and fixes compatibility issues for noetic + rolling combinations.

Changes:
- Add copyright header to controller_manager_msgs_controller_state_adapter.cpp
  to satisfy ROS 2 linting requirements
- Skip pep257 test to avoid Python 3.8/ament_pep257 0.11.4 compatibility issue
  on Ubuntu 20.04 (Focal) with ROS 2 Rolling

The pep257 linter has an incompatibility with Python 3.8 that causes
'ValueError: too many values to unpack (expected 3)' when running tests.
This is a known issue with ament_pep257 0.11.4 on older Python versions.

Signed-off-by: Iori Yanokura <ab.ioryz@gmail.com>
@k-okada k-okada merged commit de10f02 into ros-o:master Oct 30, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants