(一).ubuntu18.04 realsense UR5手眼标定

前言

最近参与到一项UR5机械臂搭载realsense d435i相机识别物体并进行抓取的项目,设计到了蛮多的技术路线,因此打算结合这个项目写一个专栏博客,专门记录一下问题和思考

一、概述

使用UR5机械臂搭载realsense d435i相机识别物体并进行抓取,涉及到的技术路线包括:
1.相机识别部分:安装realsense SDK,realsense_ros包,手眼标定相关包,识别aruco码,以及标定后各个坐标系之间的变换
2.UR5机械臂部分:配置UR5机械臂运行环境,机械臂轨迹运动
3.抓取部分:TCP末端夹爪抓取物体
其中,较为困难也是核心的部分当属手眼标定过程中各个坐标系之间的变换,不过还好UR5机械臂算是市面上最基础,资料最全的一款机械臂,所以用它来打通手眼标定这套流程应该算是非常友好的。这其中涉及到的坐标系变换包括:
1.aruco码像素坐标系到相机坐标系,这一步坐标系转换需要使用手眼标定获取到的外参矩阵进行转换
2.相机坐标系到TCP末端坐标系:这一步需要用realsense相机内参进行转换,realsense内参可以在相机启动后通过rostopic echo来获取
3.TCP末端坐标系和机械臂基坐标系的相对位置关系,通过这一步即可得到机械臂底座和aruco码之间的相对位置关系,机械臂根据获取到的坐标移动到对应位置
这里由于是以实现项目功能为前提,所以对于手眼标定背后的原理还有待深入钻研,以后再专门总结一篇这块的博客。

在这里插入图片描述

二、UR5环境安装

关于UR5环境的配置,网上的教程有很多,这里参考的是
https://blog.csdn.net/lqsdddd/article/details/126160404?spm=1001.2014.3001.5502
基本上按照流程来走最后都能运行成功,这里主要记录几个遇到的问题
1.断网,断网,断网!!!
在配置的过程中连接的是UR5机械臂的局域网,一定要保证其他网络全部断开,否则无法与机械臂ping通

在这里插入图片描述
2.PC端与示教器端IP需要在同一网段

在这里插入图片描述这里是我PC端设置的IP,示教器端设置的为192.168.125.100,保证前三位相同即可。

三.realsense环境配置

realsense环境配置分为两步:安装realsense自带的SDK,以及ROS wrapper,保证realsense SDK可以被ROS调用。这块网上的教程也非常多,这里参考的是
https://blog.csdn.net/Time_Memory_cici/article/details/128640596
博客,记录的问题如下:
由于realsense-ros包已经更新,github官方网站首页提供的realsense-ros包是适配ROS2的包,这里如果使用的是ROS1版本,一定要记得切换到对应的分支下进行下载安装

在这里插入图片描述
在这里插入图片描述
ROS1分支网址:https://github.com/IntelRealSense/realsense-ros/tree/ros1-legacy

四.手眼标定包配置

这里参考的是
https://blog.csdn.net/lqsdddd/article/details/126544007
博客进行配置,记录的问题如下
1.ImportError: No module named transforms3d
在这里插入图片描述
但是在之前,我已经执行了pip install transforms3d语句进行了安装,依旧报错,所以根据报错进行了一番思考。如果是缺少包,没有安装,一般会报错ModuleNotFound:no module named …,这里很明显已经安装了的,报的错误类型是ImportError,所以特地去网上搜了该错误类型,总结来说是包没有安装在正确的路径,或者安装在正确的路径但没有导入。结合ROS运行默认的python版本为2.7,而自己的ubuntu又安装过python3,所以进入路径:/home/自己虚拟机名称/.local/lib/ 查看相应的下载包dist-packages

在这里插入图片描述结果发现,transforms3d包被安装在了python3.6的package中,所以在运行ROS时无法被调用,故将其复制粘贴到python2.7的路径中即可。

2.标定过程中的细节:
在启动标定launch文件

 roslaunch easy_handeye eye_to_hand_calibration.launch 

后进行标定的过程中,由于涉及机械臂点位移动,在第一次记录的过程中,出现了标定aruco码在相机视野外的情况,然后移动aruco码让其重新回到视野内。但这样的做法对后续工作造成了很大的影响,标定过程中aruco码必须保持不动,在这样的前提下,让其尽可能的出现此案在相机视野内并可以被识别

在这里插入图片描述
在这里插入图片描述

五.总结

以上就是第一阶段的工作,这一步算是对realsense相机的外参进行标定。由于realsense相机的内参可以直接通过ROS命令读取得到,因此后面就可以使用内外参矩阵对识别到的aruco码进行计算,并控制机械臂移动。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值