使用rrt(快速搜索随机树)算法实现机器人自主巡墙建图

    本人最近在做项目的时候,需要实现机器人在任意未知环境实现自主建图。通过搜寻可用算法案例时,发现zhangrelay老师有介绍rrt并且给出了一个rrt exploration tutorials 的链接,通过学习该案例,本人在自己的机器人上实现了自主巡墙建图功能。在此由衷感谢zhangrelay老师提供的方案。

      为写本篇博客,本人随手利用husky仿真做了一个自主巡墙建图。效果图如下

    husky其实并不适合做rrt建图,因为其体型为长方形,激光雷达随着车的转动会有位移,这会造成误差产生,致使建图效果大打折扣。

     本人根据ros wiki上的教程和介绍在rrt_exploration的基础上进行了移植,建议需要做该功能的同学先到ros wiki上了解该功能包的内容再进行移植。

    主要移植内容不多,根据wiki上介绍的把主要几个功能代码的接口进行了一个改动就可以应用在自己的机器人上了,再配置好自己的move base配置文件就ok了。

     rrt的工作原理是:globa_rrt_exploration和local_rrt_exploration根据地图数据做全局和局部的随机搜索树同时做一个maker显示在rviz上,把搜索树的路径发布到filter上,filter针对这些数据进行一个过滤,将符合地图边界特征的数据发布到assigner上,由assigner进行move_base导航到此处。

       需要注意的是,rrt在进行数据处理的时候对map和机器人基坐标系做了非常多的tf变换,所以我们在移植的时候一定要搞清楚自己机器人的基坐标系名称,不能想当然的认为机器人基坐标系就是base_link。

          如果在移植过程中有任何疑问,请在该文章下留言,或者发送邮件到[email protected]

猜你喜欢

转载自blog.csdn.net/dzhongjie/article/details/82464002