Ros 自动避障和寻路相关资料

2018-03-30  本文已影响0人  litterbug21

1、运动平台选择

iRobot 推出了第二代机座 Roomba来取代Create.  这是一个绿脸的机座。

iRobot Create 2.0

运动平台介绍:

 http://www.irobot.com/About-iRobot/STEM/Create-2.aspx

 http://www.turtlebot.com/

2、平台搭建

https://blog.csdn.net/sonictl/article/details/49907337

相关设备集成: https://blog.csdn.net/xiaocainiaodeboke/article/details/51476557

3、避障和寻路算法

https://github.com/turtlebot/turtlebot_apps

https://blog.csdn.net/yiranhaiziqi/article/details/53085096

下面这个链接是对turtebot的navigation方式的说明文档,值得认真阅读

http://wiki.ros.org/turtlebot_navigation

4、参考其他资料

作者:小王尼玛

链接:https://www.zhihu.com/question/40605273/answer/87499600

来源:知乎

著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

以下是在移动机器人框架下的一点思路,如果是无人机避障的话,才疏学浅,爱莫能助

只了解利用kinect深度图信息的避障,2D的主要例子就是ROS turtlebot tutorial 5.3.2Autonomous Navigation of a Known Map with TurtleBot,我记得包括动态避障。其实就是将kinect的深度图转成laserscan类型的信息,跑amcl+gmapping的算法。

利用3D信息的话,需要得到kinect的相机参数(需要对kinect做标定),这部分我没仔细做,ROS应该有现成的包可以调用。如640*480大小的深度图经过如下公式可以转化为点云,从像素横轴、纵轴、深度空间

参考这篇opencv文档。Camera Calibration and 3D Reconstruction。当然个人认为点云更多意义上要包含色彩信息,这块涉及到深度图和RGB图的association问题,按下不表。

得到点云后,最朴素的避障就是根据你移动机器人放置的kinect位置,设置高度阈值y、横轴视界阈值x和深度阈值z,然后对裁剪后的点云有效部分在水平方向上做平均,如果大于0则障碍物偏右,向左转,小于0则障碍物偏左,向右转。我在实验室环境下跑能达到60~70%的正确率。见过好几个小项目、小论文都是这个做法。

我本科毕设参考过这篇,很简单的做法:Obstacle Detection and Avoidance Using TurtleBotPlatform and XBox Kinecthttps://www.cs.cmu.edu/~sboucher/turtlebot.pdf

还有一个印度人的小项目也用了这个方法:https://joelmoniz.com/2014/08/11/building-a-slam-bot-with-a-kinect/

2016.05.20

挖个坑,以后补上利用点云进行3D避障、路径规划的方法。

2017.01.18

以下避障、运动规划的内容均不涉及动态避障,我没有做过

现在对Kinect能做的东西了解多了一些,还是按照上面的思路,分两大流派:

直接利用Kinect的3D点云做避障、路径规划:sbpl - ROS Wiki

3d_navigation - ROS Wiki

把Kinect点云降维生成线激光,本质上是当成2D激光雷达,在平坦地面环境用。那就是gmapping、hector SLAM、cartographer等手段建图,而局部路径规划用动态窗算法或者Time Elastic Band(TEB)算法都可以。

上一篇下一篇

猜你喜欢

热点阅读