在编译universal_robot功能包和ur_modern_driver功能包时出现以下错误。
报错信息:
error: ‘ur_msgs::SetPayloadRequest’ {aka ‘struct ur_msgs::SetPayloadRequest_<std::allocator<void> >’} has no member named ‘payload’
420 | if (robot_.setPayload(req.payload))
| ^~~~~~~
universal_robot/ur_modern_driver/CMakeFiles/ur_driver.dir/build.make:62: recipe for target 'universal_robot/ur_modern_driver/CMakeFiles/ur_driver.dir/src/ur_ros_wrapper.cpp.o' failed
make[2]: *** [universal_robot/ur_modern_driver/CMakeFiles/ur_driver.dir/src/ur_ros_wrapper.cpp.o] Error 1
CMakeFiles/Makefile2:4779: recipe for target 'universal_robot/ur_modern_driver/CMakeFiles/ur_driver.dir/all' failed
make[1]: *** [universal_robot/ur_modern_driver/CMakeFiles/ur_driver.dir/all] Error 2
Makefile:140: recipe for target 'all' failed
make: *** [all] Error 2
Invoking "make -j8 -l8" failed
解决方法:
修改ur_modern_driver/src/ur_ros_wrapper.cpp中的内容,将req.payload更换成req.mass即可
编译成功:
Scanning dependencies of target ur_driver
[ 92%] Building CXX object universal_robot/ur_modern_driver/CMakeFiles/ur_driver.dir/src/ur_ros_wrapper.cpp.o
[ 93%] Linking CXX executable /home/csj/WorkSpace/ur5_learn_ws/devel/lib/ur_modern_driver/ur_driver
[100%] Built target ur_driver