UniversalRobots / Universal_Robots_ROS2_Driver

Universal Robots ROS2 driver supporting CB3 and e-Series
BSD 3-Clause "New" or "Revised" License
439 stars 229 forks source link

ur_robot_driver colcon build error #942

Closed victorfeijoo closed 4 months ago

victorfeijoo commented 9 months ago

Affected ROS2 Driver version(s)

humble and iron at least

Used ROS distribution.

Humble

Which combination of platform is the ROS driver running on.

Ubuntu Linux with standard kernel

How is the UR ROS2 Driver installed.

Build both the ROS driver and UR Client Library from source

Which robot platform is the driver connected to.

UR E-series robot

Robot SW / URSim version(s)

UR3e

How is the ROS driver used.

Through the robot teach pendant using External Control URCap

Issue details

Summary

I'm trying to colcon build the repository for humble, i'm just following the steps of the GitHub and i have an error when i colcon build because it tells me that the function setKeepaliveCount() is deprecated. so mi ur_robot_driver has an error.

Issue details

I have to include a personal github and build it so i need to build the ROS driver from source. Im am following the steps of the GitHub and i have this error:

--- stderr: ur_robot_driver
/home/victor/workspace/ros_ur_driver/src/Universal_Robots_ROS2_Driver/ur_robot_driver/src/hardware_interface.cpp: In member function ‘virtual hardware_interface::CallbackReturn ur_robot_driver::URPositionHardwareInterface::on_configure(const rclcpp_lifecycle::State&)’: /home/victor/workspace/ros_ur_driver/src/Universal_Robots_ROS2_Driver/ur_robot_driver/src/hardware_interface.cpp:432:34: warning: ‘void urcl::UrDriver::setKeepaliveCount(uint32_t)’ is deprecated: Set keepaliveCount is deprecated, instead set the robot receive timeout directly in the write commands. [-Wdeprecated-declarations] 432 | urdriver->setKeepaliveCount(keep_alive_count); | ~~~~~~~^~~~ In file included from /home/victor/workspace/ros_ur_driver/src/Universal_Robots_ROS2_Driver/ur_robot_driver/include/ur_robot_driver/hardware_interface.hpp:55, from /home/victor/workspace/ros_ur_driver/src/Universal_Robots_ROS2_Driver/ur_robot_driver/src/hardware_interface.cpp:50: /opt/ros/humble/include/ur_client_library/ur/ur_driver.h:461:3: note: declared here 461 | setKeepaliveCount(const uint32_t count); | ^~~~~

Steps to Reproduce

sudo apt install python3-colcon-common-extensions python3-vcstool export COLCON_WS=~/workspace/ros_ur_driver mkdir -p $COLCON_WS/src cd $COLCON_WS git clone -b humble https://github.com/UniversalRobots/Universal_Robots_ROS2_Driver.git src/Universal_Robots_ROS2_Driver vcs import src --skip-existing --input src/Universal_Robots_ROS2_Driver/Universal_Robots_ROS2_Driver-not-released.${ROS_DISTRO}.repos rosdep update rosdep install --ignore-src --from-paths src -y colcon build --cmake-args -DCMAKE_BUILD_TYPE=Release source install/setup.bash

Expected Behavior

im expecting not having errors on the build

Actual Behavior

Starting >>> ur_dashboard_msgs Starting >>> ur_description Finished <<< ur_description [2.06s]
Starting >>> ur_moveit_config Finished <<< ur_moveit_config [1.48s]
Finished <<< ur_dashboard_msgs [15.3s]
Starting >>> ur_controllers Finished <<< ur_controllers [13.8s]
Starting >>> ur_robot_driver Starting >>> ur_bringup
Finished <<< ur_bringup [0.79s]
--- stderr: ur_robot_driver
/home/victor/workspace/ros_ur_driver/src/Universal_Robots_ROS2_Driver/ur_robot_driver/src/hardware_interface.cpp: In member function ‘virtual hardware_interface::CallbackReturn ur_robot_driver::URPositionHardwareInterface::on_configure(const rclcpp_lifecycle::State&)’: /home/victor/workspace/ros_ur_driver/src/Universal_Robots_ROS2_Driver/ur_robot_driver/src/hardware_interface.cpp:432:34: warning: ‘void urcl::UrDriver::setKeepaliveCount(uint32_t)’ is deprecated: Set keepaliveCount is deprecated, instead set the robot receive timeout directly in the write commands. [-Wdeprecated-declarations] 432 | urdriver->setKeepaliveCount(keep_alive_count); | ~~~~~~~^~~~ In file included from /home/victor/workspace/ros_ur_driver/src/Universal_Robots_ROS2_Driver/ur_robot_driver/include/ur_robot_driver/hardware_interface.hpp:55, from /home/victor/workspace/ros_ur_driver/src/Universal_Robots_ROS2_Driver/ur_robot_driver/src/hardware_interface.cpp:50: /opt/ros/humble/include/ur_client_library/ur/ur_driver.h:461:3: note: declared here 461 | setKeepaliveCount(const uint32_t count); | ^~~~~

Workaround Suggestion

I don't know if i can change the function or what, it tells me to include the time directly but i don't know how, i appreciate any help.

Relevant log output

Starting >>> ur_dashboard_msgs
Starting >>> ur_description
Finished <<< ur_description [2.06s]                                      
Starting >>> ur_moveit_config
Finished <<< ur_moveit_config [1.48s]                                    
Finished <<< ur_dashboard_msgs [15.3s]                       
Starting >>> ur_controllers
Finished <<< ur_controllers [13.8s]                       
Starting >>> ur_robot_driver
Starting >>> ur_bringup                        
Finished <<< ur_bringup [0.79s]                                      
--- stderr: ur_robot_driver                                
/home/victor/workspace/ros_ur_driver/src/Universal_Robots_ROS2_Driver/ur_robot_driver/src/hardware_interface.cpp: In member function ‘virtual hardware_interface::CallbackReturn ur_robot_driver::URPositionHardwareInterface::on_configure(const rclcpp_lifecycle::State&)’:
/home/victor/workspace/ros_ur_driver/src/Universal_Robots_ROS2_Driver/ur_robot_driver/src/hardware_interface.cpp:432:34: warning: ‘void urcl::UrDriver::setKeepaliveCount(uint32_t)’ is deprecated: Set keepaliveCount is deprecated, instead set the robot receive timeout directly in the write commands. [-Wdeprecated-declarations]
  432 |     ur_driver_->setKeepaliveCount(keep_alive_count);
      |     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
In file included from /home/victor/workspace/ros_ur_driver/src/Universal_Robots_ROS2_Driver/ur_robot_driver/include/ur_robot_driver/hardware_interface.hpp:55,
                 from /home/victor/workspace/ros_ur_driver/src/Universal_Robots_ROS2_Driver/ur_robot_driver/src/hardware_interface.cpp:50:
/opt/ros/humble/include/ur_client_library/ur/ur_driver.h:461:3: note: declared here
  461 |   setKeepaliveCount(const uint32_t count);
      |   ^~~~~~~~~~~~~~~~~

Accept Public visibility

RobertWilbrandt commented 8 months ago

This is not an error, but a warning. We are aware that we should switch to a receive timeout instead at some point (this is tracked in #822 ), but this is currently the expected behavior and should not give you any problems when using the robot.

Please let us know if you have further problems with this, otherwise i'd go ahead and close this issue as the required change is already tracked in #822.