cd ~/catkin_ws/
git clone https://github.com/UniversalRobots/Universal_Robots_ROS_Driver.git src/Universal_Robots_ROS_Driver
git clone -b calibration_devel https://github.com/fmauch/universal_robot.git src/fmauch_universal_robot
git clone https://github.com/ros-industrial/ur_msgs.git src/ur_msgs
rosdep update
rosdep install --from-paths src --ignore-src -y
在ROS种配置ur机械臂最常见的方式如上图所示,参考ROS 中仿真 UR 机械臂等多篇笔记,但是按照ur_msgs包的github链接进行下载后catkin_make时,出现了如下图所示问题,显示缺少ur_msgs/SetAnalogOutput.h头文件
这个问题目前没有查询到任何已知解决方法,缺少头文件一定是需要编译的源文件出现缺失,经过反复比对,发现可能时ROS1的ur_msgs文件中src文件缺少了一个 SetAnalogOutput.srv文件,并且通过git clone的方式无法下载该文件,原github链接存在该文件的ur_msgs版本为ROS2,也尝试过直接下载导入ROS1,发现无法通过编译。因此需要自己补充一个src文件:SetAnalogOutput.srv,直接在/ur_msgs/src路径下新建一个文件,并填写如下内容:
Analog data
---
bool success
得到的结果如下图所示:
并且需要同时修改/ur_msgs的CMakeListstxt文件:
修改完成后即可编译成功。