Ros 自动避障和寻路相关资料
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
把Kinect点云降维生成线激光,本质上是当成2D激光雷达,在平坦地面环境用。那就是gmapping、hector SLAM、cartographer等手段建图,而局部路径规划用动态窗算法或者Time Elastic Band(TEB)算法都可以。