错误信息
[ERROR] [1561408870.028391551]: Sub-package of type 3 was not parsed completely!
原因
- ur机器臂系统版本为3.10以上
- 使用kinetic-devel分支的ur_modern_driver
- ur_modern_driver已弃用
解决方案
需要删除旧的包(ur_modern_driver),否则会因为重名导致无法编译。
其他问题
- clone新的包Universal_Robots_ROS_Driver后,使用catkin_make编译提示cmake错误
解决方法:
使用all-source build
以下指令出自官方all-source build
$ source /opt/ros/<your_ros_version>/setup.bash
$ mkdir -p catkin_ws/src && cd catkin_ws
$ git clone -b boost https://github.com/UniversalRobots/Universal_Robots_Client_Library.git src/Universal_Robots_Client_Library
$ 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
$ sudo apt update -qq
$ rosdep update
$ rosdep install --from-paths src --ignore-src -y
$ catkin_make_isolated
$ source devel_isolated/setup.bash
- 如果是ur5需要添加信息
- 修改一
sudo gedit ~/catkin_ws/src/Universal_Robots_ROS_Driver/ur_robot_driver/launch/ur_control.launch
在controllers参数joint_state_controller从下面的代码替换为修改后的代码
<arg name="controllers" default="joint_state_controller vel_based_pos_joint_traj_controller force_torque_sensor_controller robot_status_controller"/>
修改后
<arg name="controllers" default="joint_state_controller pos_joint_traj_controller vel_based_pos_joint_traj_controller force_torque_sensor_controller robot_status_controller"/>
- 修改二
sudo gedit ~/catkin_ws/src/fmauch_universal_robot/ur5_moveit_config/config/controllers.yaml
将action_ns修改为pos_joint_traj_controller/follow_joint_trajectory
controller_list:
- name: ""
action_ns: pos_joint_traj_controller/follow_joint_trajectory
type: FollowJointTrajectory
joints:
- shoulder_pan_joint
- shoulder_lift_joint
- elbow_joint
- wrist_1_joint
- wrist_2_joint
- wrist_3_joint