rmw_implementation
rmw_implementation copied to clipboard
missing depends cyclonedds
Bug report
Required Info:
- Operating System:
- ubuntu 20.04
- Installation type:
- binary
- Version or commit hash:
- 1.0.3-1focal.20220209.142624
- DDS implementation:
- rmw_cyclonedds_cpp
- Client library (if applicable):
- N/A
Steps to reproduce issue
apt-cache show ros-foxy-rmw-implementation | grep-dctrl --no-field-names --show-field=Depends --field=Depends 'ros-foxy-rmw-cyclonedds-cpp'
Expected behavior
ros-foxy-rmw-implementation has ros-foxy-rmw-cyclonedds-cpp in its Depends.
Actual behavior
ros-foxy-rmw-implementation does not have ros-foxy-rmw-cyclonedds-cpp in its Depends.
Additional information
https://github.com/ros2-gbp/rmw_implementation-release/blob/debian/foxy/focal/rmw_implementation/debian/control
I just came across something similar to this.
I installed ros-iron-rmw-cyclonedds-cpp to get around it. I believe there is a dependency missing but not specifically to cyclonedds. I think it depends on one of the (vendor)dds-cpp implementations... Or maybe just some documentation missing.
Here is my line 11
find_package(controller_interface REQUIRED)
CMake Error at /opt/ros/iron/share/rmw_implementation_cmake/cmake/get_default_rmw_implementation.cmake:60 (message):
Could not find ROS middleware implementation 'rmw_cyclonedds_cpp'. Choose
one of the following: rmw_fastrtps_cpp
Call Stack (most recent call first):
/opt/ros/iron/share/rmw_implementation/cmake/rmw_implementation-extras.cmake:19 (get_default_rmw_implementation)
/opt/ros/iron/share/rmw_implementation/cmake/rmw_implementationConfig.cmake:41 (include)
/opt/ros/iron/share/rcl/cmake/ament_cmake_export_dependencies-extras.cmake:21 (find_package)
/opt/ros/iron/share/rcl/cmake/rclConfig.cmake:41 (include)
/opt/ros/iron/share/rclcpp_lifecycle/cmake/ament_cmake_export_dependencies-extras.cmake:21 (find_package)
/opt/ros/iron/share/rclcpp_lifecycle/cmake/rclcpp_lifecycleConfig.cmake:41 (include)
/opt/ros/iron/share/hardware_interface/cmake/ament_cmake_export_dependencies-extras.cmake:21 (find_package)
/opt/ros/iron/share/hardware_interface/cmake/hardware_interfaceConfig.cmake:41 (include)
/opt/ros/iron/share/controller_interface/cmake/ament_cmake_export_dependencies-extras.cmake:21 (find_package)
/opt/ros/iron/share/controller_interface/cmake/controller_interfaceConfig.cmake:41 (include)
CMakeLists.txt:11 (find_package)
https://github.com/ros2/rmw_implementation/blob/29640b9f2b480a3e6c13126203714d4bb6d5e7d2/rmw_implementation/package.xml#L24-L32
My issue was due to exporting RMW_IMPLEMENTATION in my bashrc.
export RMW_IMPLEMENTATION=rmw_cyclonedds_cpp
When I unset the RMW_IMPLEMENTATION it worked fine. I had set it for another project.
Unless there a nice way to depend on a rmw_implementation in a package.xml so that when a user runs:
rosdep install --ignore-src --from-paths src -y -r