在ros中下载的ur机器人包里不包括夹爪、力传感器等Robotiq的产品。

Robotiq相关产品的ros功能包可以在 https://github.com/ros-industrial/robotiq 中下载。但目前还不支持wrist camra


操作系统:Ubuntu 18.04
夹爪型号:Robotiq 2f-85
转换线:RS485转USB


通过RS485转USB建立两指夹爪和上位机通讯,此时Robotiq指示灯显示红色。

00 一些说明

因为厂家把夹爪、力传感器、腕部相机等都已经连接到控制箱上了,所以我一开始以为控制夹爪是可以直接将电脑和控制箱通过网线连接,然后就可以像控制ur机械臂一样控制robotiq的产品。

后来看到 在ROS中配置使用Robotiq 抓手 这篇文章,发现 直接通过ROS与UR控制箱的通信来控制抓手 是一件很困难和繁琐的工作。

在使用控制箱控制Robotiq抓手时,会将抓手连接在UR控制器上,通过对应的URCAPs来使用抓手。
一个自然而然的想法就是,能否保持这样的连接方式,直接通过ROS与UR控制箱的通信来控制抓手。这样就能避免把线接到计算机上时带来的各种麻烦。
目前查到的回答是,可以这么做,但是不推荐

参考回答:
https://dof.robotiq.com/discussion/757/using-2-finger-gripper-attached-to-ur10-through-ros
需要通过ur_driver/URScript话题实现控制,也即需要熟悉URScript及抓手控制相关命令,还需要在Polyscope中编写程序。
 
 
另一篇参考回答:
https://dof.robotiq.com/discussion/1671/how-do-you-control-the-2f-gripper-using-ros-if-its-connected-to-a-ur5e-robot
① 可以考虑通过 ssh 进入机器人的控制箱编写一个简单的中继脚本(例如在 Bash 或 Python 中),该脚本将自动侦听特定的预先确定的端口并将其接收到的所有内容发送回抓手(可从控制箱的计算机访问)
② 如果选择在机器人旁边使用外部电缆,只需要一个 RS485<- ->USB 转换器,以及一个 24 伏直流电源。将夹爪电缆的一端插入转换器/电源,然后将转换器的 USB 端直接插入 ROS 计算机中

github上有一个专门做了一个,完成夹爪动作的相关实现
参考:
① https://github.com/ros-industrial/ur_modern_driver/issues/162#issuecomment-420408093
② https://github.com/ctaipuj/luc_control/blob/master/robotiq_85_control/doc/documentation.pdf

ur_driver/URScript控制机器人
参考
① 改进ur_modern_driver包,提供ur_driver/URScript_srv服务:https://blog.csdn.net/yimiyangguang185/article/details/87804693
② move the ur robot based on urscript:https://blog.csdn.net/coldplayplay/article/details/78880144

01 安装编译功能包

# 放到/src文件夹下
git clone https://github.com/ros-industrial/robotiq.git

克隆到本地后,安装依赖项

# Modbus TCP
rosdep install robotiq_modbus_tcp# The EtherCAT soem library is also required to build the Robotiq package.
sudo apt-get install ros-melodic-soem

编译

cd ..
catkin_make

02 在rviz中查看夹爪

运行如下指令,启动rviz

roslaunch robotiq_2f_85_gripper_visualization test_2f_85_model.launch

效果如下图,拖动滑条可控制机械爪开闭

warn与解决

运行过程中,终端出现了3个警告


警告1

[ WARN] [1626268300.465340698]: The 'state_publisher' executable is deprecated. Please use 'robot_state_publisher' instead
  • 解决
    参考 https://blog.csdn.net/qq_15204179/article/details/108800907
    type处的state_publisher改为robot_state_publisher


警告2

[ WARN] [1626268300.468387330]: The root link robotiq_arg2f_base_link has an inertia specified in the URDF, but KDL does not support a root link with an inertia.  As a workaround, you can add an extra dummy link to your URDF.

解决可以参考:https://blog.csdn.net/woodgril/article/details/108947746

这个可以不用修改

警告3

[WARN] [1626253621.684092]: The 'use_gui' parameter was specified, which is deprecated.  We'll attempt to find and run the GUI, but if this fails you should install the 'joint_state_publisher_gui' package instead and run that.  This backwards compatibility option will be removed in Noetic.
  • 解决

joint_state_publisher_gui 替换原本的 joint_state_publisher
若没有安装 joint_state_publisher_gui ,使用如下命令安装:

sudo apt-get install ros-melodic-joint-state-publisher-gui

修改后如图所示

03 驱动真实robotiq二指夹爪

3.1 接线

参考 https://blog.csdn.net/qq_34935373/article/details/117445613

有一根 RS485 转 USB 线,usb线接在 UR 控制箱内部的 USB 接口,把这根线接在电脑usb接口上即可。
(其中两根 24V 的电源线接在 UR 控制柜中的 24V、0V 端口;两根控制信号线,一根屏蔽线通过 RS485 转 USB 线接在 UR 控制柜内部的 USB 接口)

这里有些需要特别说明的:

就是我使用的控制箱上除了gripper,同时还接着ft300力传感器和wrist camera,而这三个设备只有两个usb线所以不太明白哪根线是gripper的。
后面师兄帮忙拆了一下夹爪和腕部相机才发现,力传感器单独使用一根信号线,相机和夹爪共用一根。

可以参考视频 https://tieba.baidu.com/p/7341464744,夹爪和相机是通过下面这种接口连接的

使用的usb线如下图所示

刚插到电脑上时,夹爪显示红灯

3.2 修改配置串口

注意:

使用USB串行端口的Robotiq设备将在系统中显示为/dev/ttyUSBn设备(其中“n”是一个数字,取决于插入计算机的USB设备的数量),并且需要读写权限才能正常工作。

将这个设备用户添加到dialout group,可以确保这个用户永久拥有读写权限。

sudo usermod -a -G dialout $USER# 要通过串行端口控制夹持器,需要向用户授予适当的权限
# YOURUSERNAME需要换为计算机用户名,如:
# sudo usermod -a -G dialout guyue
sudo usermod -a -G dialout YOURUSERNAME#查看连接的串口
dmesg | grep tty

一般均为 ttyUSB0 ,需要根据显示的串口信息修改后面的命令,确保夹爪能与计算机正常通信。

但是可能是因为我usb线同时连接了两个设备,所以返回的信息有点奇怪。

控制夹爪应当使用ttyACM0

3.3 启动 2-Finger Gripper Driver 节点

夹持器由robotiq_2f_gripper_control包中包含的节点Robotiq2FGripperRtuNode.py驱动

夹持器设备ID也需要作为参数提供。(2指夹持器的设备ID通过dmesg | grep tty获得)

# 先启动节点
roscore# 我的设备id是ttyACM0
rosrun robotiq_2f_gripper_control Robotiq2FGripperRtuNode.py /dev/ttyACM0

节点启动完成后,夹爪上的指示灯由红色变为蓝色,表明夹爪可以正常工作

3.4 启动 2-Finger Gripper Simple Controller 节点

驱动程序使用Robotiq2FGripper_robot_output消息类型侦听Robotiq2FGripperRobotOutput上的消息。
消息被解释并且命令被相应地发送到夹持器。

Robotiq2FGripper_robot_output消息类型仅由Robotiq 2-Finger Gripper Instruction Manual 中描述的机器人输出变量组成。
因此,可以修改这个简单的控制器节点以向夹持器发送自定义命令。


在一个新的终端运行以下指令,提供了一个简单的控制器节点:

rosrun robotiq_2f_gripper_control Robotiq2FGripperSimpleController.py

然后显示如下:

  • 我们先要 (r键)reset 重置夹爪,然后 (a键)activate 激活夹爪,再进行其他操作;

  • 可以输入 o 或 c 执行张开闭合动作;

  • 输入 0-255 的数字,0 是开合到最大位置,255 是完全关闭,回车后电爪即可执行;

  • 可以输入 f 或 l 控制夹爪动作的快慢;

  • 输入 i 增加夹取力;

  • 输入 d 减小夹取力。

3.5 启动 2-Finger Gripper 状态监听器节点

robotiq_2f_gripper_control包中,还有一个用于监听和解释Gripper状态的节点。
驱动程序使用Robotiq2FGripper_robot_input消息类型在Robotiq2FGripperRobotInput上发布Gripper的状态。
msg 类型由Robotiq 2-Finger Gripper Instruction Manual 中描述的机器人输入变量组成。


在新的终端可以使用如下命令运行状态侦听器节点:

rosrun robotiq_2f_gripper_control Robotiq2FGripperStatusListener.py

可通过终端查看到夹爪当前的位置信息,电流大小等

04 robotiq_2f_gripper_control 程序说明

这里主要介绍三个在官方教程中提到的文件。

4.1 Robotiq2FGripperRtuNode.py

通过该文件与夹爪连接

#The Gripper status is published on the topic named 'Robotiq2FGripperRobotInput'
pub = rospy.Publisher('Robotiq2FGripperRobotInput', inputMsg.Robotiq2FGripper_robot_input)#The Gripper command is received from the topic named 'Robotiq2FGripperRobotOutput'
rospy.Subscriber('Robotiq2FGripperRobotOutput', outputMsg.Robotiq2FGripper_robot_output, gripper.refreshCommand)

从该文件中,可以看到:
第一段,不断查询抓手状态并发送。
第二段,用来接受用户输入的抓手控制信息,通过回调函数转给夹手。

4.2 Robotiq2FGripperSimpleController.py

向抓手输出控制信息

4.3 Robotiq2FGripperStatusListener.py

该文件用来监听夹爪状态

05 总结

下载编译功能包

# 放到/src文件夹下
git clone https://github.com/ros-industrial/robotiq.git# Modbus TCP
rosdep install robotiq_modbus_tcp# The EtherCAT soem library is also required to build the Robotiq package.
sudo apt-get install ros-melodic-soem# 编译
cd ..
catkin_make

Rviz 中查看夹爪

roslaunch robotiq_2f_85_gripper_visualization test_2f_85_model.launch

连接并使用真实Robotiq_2f_85_gripper

sudo usermod -a -G dialout $USER# 授予权限
sudo usermod -a -G dialout guyue# 查看连接的串口
dmesg | grep ttyroscore# 启动驱动节点
rosrun robotiq_2f_gripper_control Robotiq2FGripperRtuNode.py /dev/ttyACM0# 启动简单控制节点
rosrun robotiq_2f_gripper_control Robotiq2FGripperSimpleController.py# 启动状态监听节点
rosrun robotiq_2f_gripper_control Robotiq2FGripperStatusListener.py

06 参考

参考:

  • 官方教程:http://wiki.ros.org/robotiq/Tutorials/Control of a 2-Finger Gripper using the Modbus RTU protocol (ros kinetic and newer releases)
  • 在ROS中配置使用Robotiq 抓手:https://blog.csdn.net/weixin_42268975/article/details/105151377
  • 【合工大机器人】Ubuntu16.04下基于ROS控制Robotiq_2f_85_gripper
    https://blog.csdn.net/qq_34935373/article/details/117445613
  • Robotiq自适应夹爪如何安装 https://tieba.baidu.com/p/7341464744

UR机械臂学习(6):使用robotiq二指夹爪相关推荐

  1. UR机械臂学习(5-2):使用Universal_Robots_ROS_Driver驱动真实机械臂

    使用的版本是 Ubuntu18.04 + ROS melodic + UR3(CB3.12) 因为后续需要使用手控器,手控器的驱动需要在Ubuntu18.04下才可以使用. 这篇文章是电脑上的设置,关 ...

  2. UR机械臂学习(9):加入robotiq力传感器

    01 安装过程 1/ 下载robotiq功能包 cd ur_ws/src git clone https://github.com/ros-industrial/robotiq.git 2/ 修改ur ...

  3. UR机械臂学习(5-1):驱动真实机械臂准备工作——示教器配置

    在使用Universal_Robots_ROS_Driver驱动真实机械臂前,需要在示教器上安装urcap 版本说明 使用的版本是 Ubuntu18.04 + ROS melodic + UR3(CB ...

  4. UR机械臂学习(7-1):MoveIt简单编程实现机械臂运动(正逆运动学)

    主要参考: MoveIt编程实现关节空间机械臂运动(正运动学) https://blog.csdn.net/zzu_seu/article/details/90611186 MoveIt编程实现关节空 ...

  5. UR机械臂学习(4):UR机械臂仿真

    使用的版本是 Ubuntu18.04 + ROS melodic + UR3(CB3.12) 安装Universal Robots功能包 安装Universal Robots功能包,有apt-get和 ...

  6. UR机械臂学习(8):Python实现机械臂运动控制(不使用MoveIt)

    以下是在gazebo仿真中使用,如果是控制真实机械臂,只需要修改订阅的话题即可 后期肯定会自己进行轨迹算法规划,用moveit的话想要更换算法太麻烦,所以尝试自己写程序不通过moveit来控制机械臂. ...

  7. UR机械臂学习(7-2):MoveIt简单编程实现机械臂运动——一些参考代码和遇到的问题

    创建功能包 cd ~/ur_ws/src# 创建功能包 control_robot catkin_create_pkg control_robot std_msgs rospy roscpproscd ...

  8. 强化学习UR机械臂仿真环境搭建(一) - 为UR3机械臂添加robotiq ft300力传感器

    为UR3机械臂添加robotiq ft300力传感器 ```建议参考这篇```,[ur机械臂 + robotiq gripper + robotiq ft sensor + gazebo + 连接真实 ...

  9. ur机械臂 + robotiq gripper + robotiq ft sensor + gazebo + 连接真实机械臂 + 网页控制

    ur机械臂 + robotiq gripper + robotiq ft sensor + gazebo + 连接真实机械臂 + 网页控制 仓库地址:[ur_ws](https://github.co ...

最新文章

  1. CCF大数据专家委:2018年大数据发展趋势预测
  2. 不完整类型(partial type)
  3. 疯狂秀才权限管理系统,开源了
  4. maven 主pom 配置不同环境指定不同配置文件以及打包参数
  5. 发现 postman 自动生成接口调用代码的一个问题
  6. mysql启动错误排查-无法申请足够内存
  7. 程序员总结的:最没有学习效率的 5 种方法!你在用其中哪一种?
  8. Console.log对象显示
  9. tensorflow里面函数记录
  10. nginx配置及操作简要记录
  11. python apk fr_Python fr包_程序模块 - PyPI - Python中文网
  12. Windows 7 激活时提示“系统保留分区未分配驱动器号!”解决方法
  13. 利用外观模式Java投资理财_Java设计模式之外观模式和装饰器模式的设计(精选)...
  14. DSPE-PEG-TPP;磷脂-聚乙二醇-磷酸三苯酯;(阻燃剂TPP)是种含磷元素的化合物,可用作无卤环保型阻燃剂
  15. 如何让自己时刻冷静的方法_怎么让心静下来(让心静下来的5种方法)
  16. c语言3x3矩阵转置 数组指针 接口(int(※p)[3],int n)
  17. Android-代码设置TextView字体加粗或者不加粗
  18. android车载系统测试,【图】原生安卓来了!Polestar 2智能车联测试_汽车之家
  19. mac远程登录虚拟机
  20. 大数据开发涉及到的关键技术有哪些?

热门文章

  1. 客户案例-Vibration Research
  2. 运行wordcount程序
  3. Picogo百度云BOS插件开发
  4. 勒索病毒locked勒索病毒后缀成功解密文档恢复数据库,专业事情交给专业的人
  5. checkmarx 8
  6. 《互联网创新创业中知识产权素养培养》答案
  7. html超链接点不了_HTML制作超级链接点下去没反应
  8. 六级高频词汇——Group03
  9. 手机端企业微信分享链接的图标修改存在缓存问题
  10. 我说CMMI2.0之管理性能和度量数据