Robotic-Decision-Making-Lab / ardusub_driver

Collection of ROS 2 packages and hardware interfaces that support ROS 2 integration with ArduSub
MIT License
4 stars 1 forks source link

[BUG]: Compile error in Humble while upgrading to Gazebo Harmonic #16

Closed amarburg closed 3 months ago

amarburg commented 3 months ago

Issue Description

While testing blue PR #223 on switching to Gazebo "Harmonic", I was not able to build for Humble with this error:

#35 18.60 /home/blue/ws_blue/src/ardusub_driver/ardusub_manager/src/ardusub_manager.cpp: In member function ‘virtual ardusub_manager::CallbackReturn ardusub_manager::ArduSubManager::on_configure(const rclcpp_lifecycle::State&)’:
#35 18.60 /home/blue/ws_blue/src/ardusub_driver/ardusub_manager/src/ardusub_manager.cpp:127:47: error: cannot convert ‘rclcpp::SystemDefaultsQoS’ to ‘const rmw_qos_profile_t&’ {aka ‘const rmw_qos_profile_s&’}
#35 18.60   127 |       "/mavros/set_message_interval", rclcpp::SystemDefaultsQoS(), set_intervals_callback_group_);
#35 18.60       |                                               ^~~~~~~~~~~~~~~~~~~
#35 18.60       |                                               |
#35 18.60       |                                               rclcpp::SystemDefaultsQoS
#35 18.60 In file included from /opt/ros/humble/include/rclcpp_lifecycle/rclcpp_lifecycle/lifecycle_node.hpp:996,
#35 18.60                  from /home/blue/ws_blue/src/ardusub_driver/ardusub_manager/src/ardusub_manager.hpp:28,
#35 18.60                  from /home/blue/ws_blue/src/ardusub_driver/ardusub_manager/src/ardusub_manager.cpp:21:
#35 18.60 /opt/ros/humble/include/rclcpp_lifecycle/rclcpp_lifecycle/lifecycle_node_impl.hpp:103:29: note:   initializing argument 2 of ‘typename rclcpp::Client<ServiceT>::SharedPtr rclcpp_lifecycle::LifecycleNode::create_client(c
onst string&, const rmw_qos_profile_t&, rclcpp::CallbackGroup::SharedPtr) [with ServiceT = mavros_msgs::srv::MessageInterval; typename rclcpp::Client<ServiceT>::SharedPtr = std::shared_ptr<rclcpp::Client<mavros_msgs::srv::Message
Interval> >; std::string = std::__cxx11::basic_string<char>; rmw_qos_profile_t = rmw_qos_profile_s; rclcpp::CallbackGroup::SharedPtr = std::shared_ptr<rclcpp::CallbackGroup>]’
#35 18.60   103 |   const rmw_qos_profile_t & qos_profile,
#35 18.60       |   ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~
#35 18.60 gmake[2]: *** [CMakeFiles/ardusub_manager.dir/build.make:76: CMakeFiles/ardusub_manager.dir/src/ardusub_manager.cpp.o] Error 1
#35 18.60 gmake[1]: *** [CMakeFiles/Makefile2:165: CMakeFiles/ardusub_manager.dir/all] Error 2

This is building for amd64 on amd64 (not cross-compiling).

Still investigating, but thought I would bookmark this.

Steps to Reproduce

  1. git clone https://github.com/apl-ocean-engineering/blue.git && cd blue/
  2. git checkout /dev/gazebo_harmonic_by_default
  3. Edit "blue.repos", change ros_gz to "version: humble"
  4. docker buildx build --build-arg ROS_DISTRO=humble -f .docker/Dockerfile .

Expected Behavior

Docker build should complete successfully.

Error Message

See above

Runtime Environment

Ubuntu 20.04.6 host Docker version 27.1.1, build 6312585

Additional Context

No response

amarburg commented 3 months ago

This one is on me. Need to use the humble branch.