As a follow up on ROS 2 Collaboration Bulletin Board, to try to understand expected best-practices.
What’s the best approach for reusing software components between ROS1 and ROS2? I understand the basic concept of tearing out ROS1/ROS2 specific code, and reusing underlying implementation, but how does this work in terms of a build/release story.
- Are we expecting to end up with a 2 of everything? rviz2, xacro2?
- Are we are going to have separate distros ROS1-only and ROS2-only on the buildfarm? How do you create a package-level dependency between a package in a ROS2 distro and a package in a ROS1 distro?
- Would it be possible to build one set of sources in both ROS1 and ROS2 distros? I imagine this would involve something along the lines of https://github.com/ros2/ros2/wiki/catment
I’m basing some assumptions from the recent binary release of https://github.com/ros2/ros1_bridge, which necessitates:
- macros like https://github.com/ros2/ros1_bridge/blob/master/cmake/find_ros1_package.cmake, which don’t (currently) work great with overlays
- some pretty heavy patching at bloom-time https://github.com/ros2-gbp/ros1_bridge-release/tree/patches/debian/r2b2/ros1_bridge