前言:因为我需要ROS和moveit控制UR5E和Robotiq 2F-85夹爪。最重要的是,因为我的夹爪直接接在机械臂末端,这样避免了把线接到计算机上,不用延伸出长线接在控制箱,但是这种方式不是直连到PC端,不能直接控制夹爪,中间有UR5E控制器作为媒介。
网上大多数教程都是RS485转USB线,USB线接在控制箱内部,控制箱24V供电,这种方式,相当于没有机械臂也可以去控制夹爪。这么做,就要遭受线长与接口问题。
一.实验设备环境
操作系统:Ubuntu18.04
机械臂型号:UR5E
夹爪型号:Robotiq 2F-85
重点:夹爪连接线接在机械臂末端法兰盘
首先官网下载最新的Robotiq 2F-85功能包
cd catkin_ws/src/
git clone https://github.com/ros-industrial/robotiq.git#安装依赖
sudo apt-get install ros-melodic-socketcan-interface
sudo apt-get install ros-melodic-soem
#编译
cd catkin_ws
catkin_make
ROS驱动UR5E参考:
上述教程和UR5E机械臂建立连接后,这时已经安装了UR5E外部控制的Externall Control urcap(1.0.5),这时需要和工具端夹爪建立通信,还需要装rs485 urcap(1.0.0)
上述装urcap具体操作不再详述,拿U盘下载安装即可。
#仅开机械臂驱动节点 只需要把ip改成自己的机械臂ip
roslaunch ur_robot_driver ur5e_bringup.launch robot_ip:=192.168.56.101 kinematics_config:=$(rospack find ur_calibration)/etc/ur5e_calibration.yaml
#开启机械臂驱动节点+工具端通信(这句命令很长,直接复制,记得修改ip)
roslaunch ur_robot_driver ur5e_bringup.launch robot_ip:=192.168.56.101 kinematics_config:=$(rospack find ur_calibration)/etc/ur5e_calibration.yaml use_tool_communication:=true tool_voltage:=24 tool_parity:=0 tool_baud_rate:=115200 tool_stop_bits:=1 tool_rx_idle_chars:=1.5 tool_tx_idle_chars:=3.5 tool_device_name:=/tmp/ttyUR
接着在示教器启动外部控制连接
建立连接后,启动👇RTU夹爪连接,重复操作,直到夹爪蓝灯亮起来
rosrun robotiq_2f_gripper_control Robotiq2FGripperRtuNode.py /tmp/ttyUR
可能会有以下错误:
这个问题是因为,PC端没有办法去和工具端通信,可以说是和示教器冲突了。
解决:
如果你第一时间拿到夹爪,你可能会第一时间安装上去,并且在示教器上安装Robotiq_Grippper urcap测试夹爪能不能用,此时夹爪上的蓝色灯示常亮的,此时当你可以用示教器去控制夹爪的时候,注意这个时候夹爪和示教器通信,PC端已经不能去通信了,所以你需要卸Robotiq_Grippper urcap(必须仅安装外部控制(External Control)和rs485 urcap),卸载Robotiq_Grippper urcap后,重启示教器,夹爪是没有反应的,夹爪的指示灯是不亮的。此时示教器已经完全无法去控制夹爪了,这个时候就需要在PC端通信并且去点亮他,此时再运行:
rosrun robotiq_2f_gripper_control Robotiq2FGripperRtuNode.py /tmp/ttyUR
运行成功图:
这个时候已经开启和夹爪的通信节点了,并且夹爪的指示灯会被点亮蓝色
测试是否能控制夹爪:
rosrun robotiq_2f_gripper_control Robotiq2FGripperSimpleController.py
先要 (r键)reset 重置夹爪,然后 (a键)activate 激活夹爪,再进行其他操作
可以输入 o 或 c 执行张开闭合动作;
输入 0-255 的数字,0 是开合到最大位置,255 是完全关闭,回车后电爪即可执行;
可以输入 f 或 l 控制夹爪动作的快慢;
输入 i 增加夹取力;
输入 d 减小夹取力。