结论: 相比于老的ur5_bringup.launch来控制机械臂可以更加柔顺的控制UR5机械臂。但是也存在规划时出现失败的情况,需要多次plan。具体怎么柔顺我会具体说明一下: 那末怎么使用呢? 1,安装驱动包 印象中我的下载方式: git clone https://github.com/beta-robots/ur_modern_driver.git 首先需要下载带有ur5_ros_control.launch的ur_modern_driver驱动包
打开ur5_ros_control.launch看一下包,发现这里已经很明确的指出了它可以用什么样的控制器进行机械臂控制。原来的ur5_bringup.launch包是没有这麽明确的。 很显然这里我们可以用到 joint_state_controller force_torque_sensor_controller vel_based_pos_traj_controller pos_based_pos_traj_controller
这里的vel_based_pos_traj_controller是非常具有诱惑力的,虽然不同于完全的速度控制,但是也是在基于速度基础上的位置控制。 2,修改moveit下控制器说明 找到 ~/catkin_ws/src/universal_robot/ur5_moveit_config/config/controllers.yaml 修改成基于速度的位置控制器
controller_list:
# - name: ""
- name: "vel_based_pos_traj_controller"
action_ns: follow_joint_trajectory
type: FollowJointTrajectory
joints:
- shoulder_pan_joint
- shoulder_lift_joint
- elbow_joint
- wrist_1_joint
- wrist_2_joint
- wrist_3_joint
3,运行语句
roslaunch ur_modern_driver ur5_ros_control.launch robot_ip:=192.168.1.107(自己的链接IP)
roslaunch ur5_moveit_config ur5_moveit_planning_execution.launch
roslaunch ur5_moveit_config moveit_rviz.launch config:=true
然后看到moveit下RVIZ界面(这里我添加了底座模型):
4,对比实验 没有对比没有伤害 1,用原来的包是很难用到基于速度的位置控制的,根本链接不上
roslaunch ur_modern_driver ur5_bringup.launch robot_ip:=192.168.1.107
roslaunch ur5_moveit_config ur5_moveit_planning_execution.launch
只好改回了follow_joint_trajectory进行控制
2,控制对比 ur5_ros_control控制视频: 比较柔顺,爱了。。
ur5_bringup控制视频: 速度变化大,冲击力强,要打架的节奏
结论: 利用新的控制可以实现相对柔顺的动作,不过相比于完全的速度控制还是有些差距,会出现规划失败的情况。