rmw_implementation icon indicating copy to clipboard operation
rmw_implementation copied to clipboard

missing depends cyclonedds

Open realtime-neil opened this issue 3 years ago • 2 comments

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

realtime-neil avatar Sep 27 '22 19:09 realtime-neil

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

moriarty avatar Jun 23 '23 20:06 moriarty

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

moriarty avatar Jun 23 '23 20:06 moriarty