具体内容可以查看Mobile robot SUMMIT-XL STEEL机器人底盘控制学习 系列第三篇-2 ,这篇主要是把底盘部分以及整个系统的测试工作简单介绍一下。

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

一、机器人控制系统总体框架设计

      这几章内容主要集中在机器人的视觉控制、三维目标抓取这一部分,也算顺着之前的CT-LineMod算法继续谈一下计算机视觉这一部分的内容。第一节这个总体框架设计在接下来的视觉、抓取、导航部分都会放在前面,以帮助读者理解一下各个部分的功能以及把握整体性。

      移动机器人控制系统的硬件部分主要包含:深度相机IntelRealsenseZR300、IntelNUC、UR10机械臂RG2机械手、SUMMIT_XL机器人底盘、用于避障的激光雷达、用于定位的IMU传感器和GPS模块、用于通信的蓝牙模块和WIFI无线通信模块等。其中,系统包含标签识别与物体识别的视觉处理模块、机械手臂的控制模块均在IntelNUC处理器中完成。深度相机识别标签后发布识别区域的位置信息,在NUC中处理后通过WIFI模块传送到SUMMIT_XL底盘进行运动规划,其中的速度和方向分别控制麦克纳姆轮从而使底盘的移动更加便利。

     另外,深度相机通过CT-LineMod算法完成三维物体的6D位姿估计后,通过IntelNUC订阅和发布信息,完成位姿的TF坐标转换后发送到机械手臂系统Moveit!进行运动规划,其中在RVIZ预先设置应规避区域从而使机械手臂的抓取更加安全可靠。而底盘所存在的Summit_common模块通过激光雷达和GPS模块完成机器人的室内定位,完成对周围环境的扫描建图后通过IMU传感器进行导航。不过本系统并未对SLAM室内定位导航深入的开展研究,通过使用AprilTag算法完成识别区域标签的识别与定位,通过NUC处理后利用WIFI模块发送到底盘进行运动规划。

二、机器人底盘控制

      机器人控制系统所使用的底盘移动平台主要依靠summit_xl_common功能包进行软件移动控制以及通过手柄的硬件移动控制两种控制方式。其中包括odom(环境扫描地图重建并存储)、server(取扫描存储的地图)、AMCL(计算扫描到的地图 可用于计算导航以及路线规划等)、movebase(控制底盘麦克纳姆轮的动作)、navigation(导航),这也对应整个包的执行顺序(launch文件)以及工作顺序。如图所示为Summit_XL Steel机器人底盘

       最核心的功能包是summit_xl_common,而summit_xl_robot则是其依赖包,比如启动时的驱动程序、各大模块功能的定义等(odom、AMCL、movebase等)在susummit_xl_common核心包里的location_complete有关于各大模块的包,其中包括 odom(环境扫描地图重建并存储)、server(取扫描存储的地图)、AMCL(计算扫描到的地图 可用于计算导航以及路线规划等)、movebase(控制底盘麦克纳姆轮的动作)、navigation(导航),这也对应整个包的执行顺序(launch文件)以及工作顺序,在bash_rc里可以写入自动执行这些launch文件,开机启动后自动运行。在rviz里面可以看到主题为summit_xl_map的3d扫描图。

       利用#rostopic list|grep goal 可以 查看当前运行节点图(底盘)

三、机器人控制系统测试

      针对控制系统功能设置了一个完整任务:即机器人通过深度相机AprilTag标签识别的方法识别到三维物体预识别区域,将区域位置反馈到NUC处理后驱动Summit_XL底盘前往识别区域;之后利用CT-LineMod算法通过深度相机RealSenseZR300识别到目标物体并将物体位姿信息返回到NUC处理后发布消息;由机械手臂的ROS环境订阅物体位置消息后驱动机械手臂抓取物体,并将物体放在一旁的桌子平面上;在将物体放置平面以后,机械手臂收起到安全位置,NUC发布返回最开始时底盘停放位置处的位置坐标,由底盘的ROS环境订阅该消息后驱动麦克纳姆轮平移与转向,返回预设停放位置,完成整个抓取测试。灰色区域为底盘可行进区域,黑色区域为环境中的障碍,周围黑色区域为测试房间的边缘位置。

为了测试机器人控制系统的性能,CT-LineMod算法搭载的机器人控制系统在实验室环境进行了实验。

四、总结

        在基于机器人视觉技术基础上设计了一个综合机器人控制系统,涉及ZR300深度相机、NUC处理器、UR10和RG2机械手臂、Summit_XL移动底盘、激光雷达、无线通信等硬件设备的应用,以及手眼标定模块、TF坐标转换、机器人多ROS环境通信、无线通信等软件模块的设计。除此之外,针对机器人视觉方向设计实现了标签识别算法AprilTag用于识别区域的定位与导航,在三维物体识别领域针对经典模板匹配算法LineMod算法不能实现复杂场景下多目标重叠物体的识别问题,基于Müller-Lyer错觉效应机制引入了7D特征向量丰富各特征点的信息,并通过分析7D特征向量在空间位置X、Y、Z以及梯度方向、梯度幅度、表面法向量方向、表面法向量幅度等特征的内在逻辑相关性,改进Kmeans均值聚类算法,通过数据降维过程使特征点的聚类更加智能与相关,使分类后形成的模板更加具备相关性。CT-LineMod算法是对LineMod算法和Patch-LineMod算法在生物视觉认知机制的一种改进,不仅可以提高物体更加显著的信息,如物体边缘、尖角、平面等特征的比重,而且提高了物体在复杂场景多目标重叠物体的识别能力。

       CT-LineMod算法参照LineMod算法添加ICP后处理完成位姿修正,主要方向在多个同一物体遮挡情况下三维物体的识别,通过凸分割的方法解决多个同种物体在深度相机中点云数据重合不清晰的问题。算法虽然在复杂场景多目标单类物体识别能力比较高,但是并不擅长多类物体的识别,在混合场景中识别率和准确度会有所下降。并且因为t-SNE算法要将7D特征向量降维为新的Kmeans三维特征向量,所以也需要耗费更多时间在训练阶段。

     对应不同n_top值的召回率随之变化; n_top=5时召回率为65.3%,表示对于前5个最小遮挡物体的结果有65.3%的召回率 。随着n_top值的增加,模型的召回率持续减少。n_top=1时模型召回率最大为90.2%,对于所有结果,召回率达到了44.3% 。

迭代次数

误差率

迭代次数

误差率

S<50

52.853106

S<550

0.369756

S<100

45.184563

S<600

0.349405

S<150

66.433153

S<650

0.308886

S<200

64.146283

S<700

0.281112

S<250

2.280239

S<750

0.269719

S<300

1.422328

S<800

0.261307

S<350

0.943169

S<850

0.266211

S<400

0.592557

S<900

0.269205

S<450

0.460277

S<950

0.242607

S<500

0.387589

S<999

0.246892

训练用时:

45369.77377462387秒=12.6025h

       通过消耗时间资源的代价不断进行迭代,将7D特征向量降维。         

       另外,设计的移动机器人控制系统完成了深度相机AprilTag标签识别预识别区域、驱动Summit_XL底盘前往识别区域、6D位姿估计、机械手臂ROS环境订阅物体位置消息后驱动机械手臂完成运动规划与物体抓取、NUC处理协调机器人控制系统各模块以及消息通信、底盘驱动麦克纳姆轮平移与转向等实际场景抓取任务。

关键词:模板匹配算法,CT-LineMod算法,6D位姿估计,视觉认知启发机制,机器人控制系统

---------------------------------------------------------------------写在后面的话------------------------------------------------

      到这就把整个系统的内容总结完毕,按之前的逻辑框架是:1.背景意义以及一些常见的算法2.我所参考的LineMod算法(模板匹配算法)的原理3.我论文做的CT-LineMod算法(多目标位姿估计算法)的原理方法4.CT-LineMod算法(多目标位姿估计算法)的评估及相关实验测试5.机器人控制系统的构建与实现6.其他的一些内容,如小的插件、系统、技术问题、经验教训等。最开始的收到邮件说写写东西赚点稿费觉得也蛮不错的,也是为数不多的可以创收的渠道,但是写着写着发现自己对于机器人的一知半解以及随着时间的推移的遗忘逐渐凸显,借着机会便抽大的假期空挡来写。内容主要源自之前的博客(突然发现小助手已经把之前乱七八糟写的内容都转过来了,感谢~)、答辩PPT、毕业论文以及在回复邮件问题的过程中的一点点思考,希望能对大家的起步有一定的帮助,就像当时我也加了meiqua大佬的微信,虽然没有多少指点,但是也得到了很多帮助,以至于在后面发paper的时候也想到了他,希望大佬顺利。最后,祝大家新年快乐,贴贴(hhhhhh)!

------------------------------------------写在后面的给自己的话------------------------------------------

中间间隔了很长时间才把之前做的内容重新梳理了一遍,也是为了接下来的变动做好基础。做科研于我来讲还只是略知皮毛,只是实习了一段时间,没有全身心(兴趣的原因相较于其他事情而言还是多投入了一点)的打好机器人学的基础,而且因为要涉及到毕业申博,所以在做paper的时候也是急功近利没有静下心来感觉科研的节奏。这样一晃毕业就一年半了,工作的内容也是工程管理相关,人情世故倒是学了不少,但是也仅限于这些。科研之路任重而道远,之前一直在害怕的事情就目前而言似乎变成了捷径和机会。淡泊名利,面对恐惧,全身心投入,剩下的就交给时间吧。