Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Remove dependency on separate ROS 1 message packages #219

Open
adamlm opened this issue Sep 5, 2023 · 0 comments
Open

Remove dependency on separate ROS 1 message packages #219

adamlm opened this issue Sep 5, 2023 · 0 comments
Labels
enhancement New feature or request

Comments

@adamlm
Copy link
Contributor

adamlm commented Sep 5, 2023

Summary

The carma-msgs repo currently uses the convention of making separate ROS 1 and ROS 2 interface description packages so that any new CARMA interfaces can be back-ported to legacy ROS 1 systems. This leads to several issues, mainly that there are unnecessary duplicate message, service, and action description files.

Additionally, the CI build script for carma-msgs hard-codes the interfaces packages to build. I assume the install.sh script's structure predates the carma_cmake_common package and the colcon build sytem, both of which prevent us from having to create duplicate interfaces packages for ROS 1 and ROS 2.

Since CARMA builds all ROS packages with colcon, we should update the package manifest files (package.xml) to use version 3. This will allow us to use condition="$ROS_VERSION == 1" and condition="$ROS_VERSION == 2" to limit certain dependencies to certain ROS versions. We can also check the ROS_VERSION environment variable to tailor packages' CMake configurations for either ROS 1 or ROS 2.

Reasoning for new functionality

Having duplicate ROS interface packages is confusing to user and developers, and it is a pain to maintain.

@adamlm adamlm added the enhancement New feature or request label Sep 5, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

1 participant