前言:要实现视觉抓取,首先需要实现机械臂的驱动,深度相机的目标识别,能够反馈位置。
1、实现机械臂在ROS层的控制
2、基于深度相机目标物体的空间坐标反馈,需要知道摄像头中物体的像素坐标系到大地坐标系的转换。
3、五轴机械臂使用KDL插件不友好,需要适配IKFAST运动学插件,环境是Ubuntu16.04+ROS系统
IKFAST的安装参考如下的链接:
1)安装OpenRAVE 0.9版本
https://roboticslab-uc3m.github.io/installation-guides/install-openrave.html#install-openrave-0540-ubuntu-1804-bionic
MoveIt!运动学插件IKFAST(八) - 白雪儿 - 博客园
ROS进阶——MoveIt!运动学插件IKFAST配置_偷得浮生半日闲-CSDN博客
https://roboticslab-uc3m.github.io/installation-guides/install-aravis.html
https://roboticslab-uc3m.github.io/installation-guides/install-openrave.html
OpenRAVE | Welcome to Open Robotics Automation Virtual Environment | OpenRAVE Documentation
注意:1、安装过程中可能遇到一些错误,可以修改 CMakeLists.txt文件
2、fcl碰撞库是可以不编译进去的
2)安装ikfast插件
Industrial/Tutorials/Create a URDF for an Industrial Robot - ROS Wiki
https://github.com/ros-industrial/fanuc/tree/kinetic-devel
Fanuc的模型文件
Magics21中文破解版,修改slt模型文件,修改它的坐标方向等等
Magics21破解版|Materialise Magics21中文破解版下载 - 多多软件站
安装生成ikfast的步骤大致可以分为以上的步骤,具体之前的参考链接中包含。生成中出现错误时需要注意你的运动链不能设置错误,不然会出现raghavan roth equations too complex。
4、使用官方的moveit_simple_grasps功能包,使用这个包中的grasp_filter_test节点完成对目标物体可行抓取的过滤,从而得到可以到达的抓取,然后根据这些可行的抓取进一步选择最优的抓取即可。
这个包中需要调整很多代码,这里需要仔细看懂代码然后才能够很好的适配这个包,这个包中重点是抓取的过滤,就是根据之前生成的ikfast逆向解算器过滤掉无法到达的姿态,五自由度的机械臂到达姿态有效,导致的结果是无法准确的到达我们需要的姿态,这个是5D算法的弊端,因为平移三个参数,旋转也是三个参数,正常旋转为9个参数。
5、最后可以实现的效果如下: