前言:其实之前写的LineMod算法也好、patchLinemod或者设计的CT-LineMod算法,就是把机器人控制系统视觉部分的算法单独拎出来深入研究一下。机器人控制系统设计很多可以深入研究的领域,以我做的内容为例就包含视觉部分(6D位姿估计)、抓取部分(机械臂控制)、导航(SLAM),而这又可以进一步细分研究方向,如视觉部分CT-LineMod算法只是传统的模板匹配算法,诸如流行的PoseCNN、DenseFusion等深度学习框架则速度更快、模型更精确。最近做机器人的公司又上市了很多,方向也进一步细化了,比如某一领域的-医疗型机器人,所以整体来看波士顿也好、小胖也好,这个平台都在一步步发展吧,限制于芯片的能力虽然不应该开始热起来,不过确实有一些头角开始崭露了。

----------------------------------------------------------------------------------------------------------------------------------------------------------

       机器人控制系统包含IntelNUC的主机ROS Kinetic环境以及底盘的控制环境ROS Indigo,均搭载Ubuntu16.04操作系统,并通过局域网络完成两个操作系统的通信与信息传递。其中主要依靠NUC控制深度相机完成三维物体的位姿估计与处理、识别区域的标签识别、底盘的移动控制以及机械臂的控制抓取。整个系统的框架如下图所示。

       整个项目的总体任务目标是:机器人通过深度相机AprilTag标签识别的方法识别到三维物体预识别区域,将区域位置反馈到NUC处理后驱动Summit_XL底盘前往识别区域;之后利用CT-LineMod算法通过深度相机RealSenseZR300识别到目标物体并将物体位姿信息返回到NUC处理后发布消息;由机械手臂的ROS环境订阅物体位置消息后驱动机械手臂抓取物体,并将物体放在一旁的桌子平面上;在将物体放置平面以后,机械手臂收起到安全位置,NUC发布返回最开始时底盘停放位置处的位置坐标,由底盘的ROS环境订阅该消息后驱动麦克纳姆轮平移与转向,返回预设停放位置,完成整个抓取测试。

一、视觉系统

     机器人视觉系统通过深度相机、激光雷达等外部硬件设备提供的RGB-D图像以及环境信息来源作为输入,包含有用于三维物体6D位姿估计的部分、用于识别区域标定的AprilTag标签识别部分以及用于机器人底盘环境信息采集与SLAM导航的部分,构成整个机器人的视觉系统。

二、抓取部分

    机器人抓取部分由IntelNUC控制,操作系统采用Ubuntu16.04,环境使用ROS Kinetic ,硬件部分IntelRealsense ZR300深度相机处理得到电云数据,通过模板匹配算法得到物体的位置和方向信息,通过TF转换后传输位置给UR10、RG2机械手臂进行抓取。

三、导航部分

      为了保持任务的完整性,项目设计的是Summit_XL底盘持续移动到视觉系统识别到物体的电云后停止,在物体识别区进行物体的识别与抓取,之后继续移动到其他部分。设计有通过电梯移动到不同楼层放置在制定的物体放置区,所以设计了限制区域,保证机械臂的路径规划不超出范围。这里需要提到的是,机械臂路径规划这个方向也有很多内容可以做,只不过当时就沿用系统默认的路径规划算法进行抓取了。

四、实验设计

       涉及整个控制系统,需要证明机器人控制系统的 1.视觉系统CT-LineMod算法的效果,准确率和鲁棒性 2.视觉系统的几个稳定的位置发布 3.手眼协作,机械臂和机械手的路径规划 4.机器人移动平台的设计,SLAM等方向 5.任务的完成度以及系统的稳定性。

五、文章及代码

      
文献引用:Tielin Zhang, Yang Yang, Yi Zeng, Yuxuan Zhao. Cognitive Template-clustering Improved LineMod for Efficient Multi-object Pose Estimation. Cognitive Computation, 2020. (COGN-D-19-00232R1)CT-LineMod算法部分

                  GuoyuZuo, Tingting Pan, Tielin Zhang, and Yang Y SOAR Improved Artificial Neural Network for Multistep Decision-making Tasks. Cognitive Computation[J], 2020, (), 1-14, DOI 10.1007/s12559-020-09716-6.  路径规划部分

  1. LineMod算法:这个是LineMod的算法总结,也可以辅助来看Patch_lineMod的源代码,之前幸亏找到了这个代码说明让我重新理解了LineMod算法。应该反复看明白模板匹配的基本原理。
    https://blog.csdn.net/zmdsjtu/article/details/79933822
    https://blog.csdn.net/haithink/article/details/88396670
  2. Patch-LineMod算法:
    https://github.com/thomasaimondy/patchlinemod
    这个是我们fork的源代码,里面其实已经写了很多步骤了,之后的更细的细节有待补充。
    https://zhuanlan.zhihu.com/6d-pose 这个是那个博士的成果,我所做的一切也是在这个基础上完成。
  3. CT-LineMod算法
    https://github.com/brain-cog/Brain inspired Batch
    文章链接:https://pan.baidu.com/s/1o-5KBBXB98sJ7bzvgpP7SQ
    论文地址: https://rdcu.be/b26sk
    题目:Cognitive Template-clustering Improved LineMod for Efficient Multi-object Pose Estimation 
    研究生论文:《一种用于机器人的视觉认知启发模板匹配算法构建与实现》,已经发在了北大学位论文库也会录入到知网,但是因为一些登入的问题有两年不公开,所以可能还需要一些时间。
    4.之前机器人控制程序的代码;
    链接:https://pan.baidu.com/s/1c-c087wvqdmnfyIizfd-AA
    提取码:js1q
    复制这段内容后打开百度网盘手机App,操作更方便哦

六、缺点和不足

      1.7D特征向量降维迭代时间长,模型时间成本高

      2.算法不擅长多类物体的识别,在混合场景中表现较差 

      3.算法可以利用深度学习训练独特特征的比重系数 

      4.算法没有在实际场景中搭建遮挡场景进行抓取测试

      5.机器人控制系统的测试只涉及部分简单任务