- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
ROS导航包的介绍
ROS导航包的应⽤
利⽤ROS Navigation功能包集跑通基于rplidar 的slam
开发环境
Ubuntu14.04+ROS indigo
Navigation stack:amcl | base_local_planner | carrot_planner | clear_costmap_recovery | costmap_2d | dwa_local_planner | fake_localization | global_planner | map_server |
move_base | move_base_msgs | move_slow_and_clear | nav_core | navfn | robot_pose_ekf | rotate_recovery | voxel_grid
Navigation功能包集概述
这是2D的导航功能包集,通过接收⾥程计数据、tf坐标变换树以及传感器数据,为移动机器⼈输出⽬标位置以及安全速度。概念层⾯上讲,导航功能包集是相当简单的。它从
程计和传感器数据流获取信息,并将速度命令发送给移动基站(⽐如你的机器⼈)。但是,想要在任意机器⼈上使⽤导航功能包集可能有点复杂。使⽤导航功能包集的先决条件
是,机器⼈必须运⾏ROS,有⼀个tf变换树,使⽤正确的ROS Message types发布传感器数据。⽽且,我们需要在⾼层为⼀个具有⼀定形状和动⼒学特点的机器⼈配置导航功能
包集。
acml :是⼀个针对在⼆维移动的机器⼈的基于概率定位系统。它实现了⾃适应蒙特卡罗滤波的定位⽅法,并使⽤粒⼦滤波器去跟踪在已知地图中机器⼈的位置。
base_local_planner:这个包提供了Trajectory Rollout以及Dynamic Window两种在2D平⾯局部导航的⽅法。通过提供⼀个跟随的规划路径和⼀个代价地图,控制器⽣成速度指
令并发送⾄机器⼈。它⽀持全向和⾮全向机器⼈,以及任何可以⽤多边形或圆描述的机器⼈轮廓,并且可以在launch⽂件中设置这些参数。这个包已经被封装好,可以通过
nav_cor 包的BaseLocolPlanner接⼝来调⽤。
carrot_planner:这个规划器是⼀个简单的全局规划器,可以通过nav_core::BaseGlobalPlanner 来进⾏调⽤,并且被move_bas 节点⽤作⼀个全局规划的插件。这个规划器从⽤
户处采集到⼀个⽬标点,之后检查⽤户指定的⽬标点是否是障碍物,如果是的话沿着robot与⽬标点构成的向量向后退,直到找到⼀点没有障碍物位置。之后它会将此⽬标点作为
⽬标发送给局部规划器和控制器。这个规划器允许机器⼈尽可能到达离⽤户指定的⽬标点最近的位置。
clear_costmap_recovery:为导航包提供了⼀种⾃救⾏为,试图通过将代价地图还原成已知区域外的静态地图从⽽清除出空间。
costmap_2d :通过激光或点云的数据,投影到2D平⾯上,创建代价地图,并可以设置膨胀半径。
dwa_local_planner:局部规划器,提供动态窗⼝⽅法( Dynamic Window Approach)在平⾯上局部导航。与base_local_planner类似。
fake_localization :提供了⼀个简单节点fake_localization nod ,可以代替⼀个定位系统,并提供了acml包的ROS API的⼦集。由于较低的计算量,这个节点⾮常频繁的⽤于在
仿真环境中提供完美的定位。这个节点将⾥程计数据转换为位置、粒⼦云,并以acml发布的数据格式发布。
global_planner:全局路径规划节点。
map_server:将代价地图作为ROS Servic 发布,提供了map_saver节点,可以通过命令⾏存储地图。
move_bas :提供了action动作的实现(actionlib包),即给定⼀个世界系下的⽬标位置,机器⼈会试图移动到该位置。另外,move_bas 节点中包含了两个代价地图(全局、
局部),以及⼀个全局规划器和⼀个局部规划器,以便实现导航任务。
move_base_msgs:通过MoveBase.action⽂件定义产⽣的消息⽂件,⽤于actionlib与move_bas 的通信。
move_slow_and_clear:为robot提供⼀种⾃救⾏为,即清除代价地图的信息并限制机器⼈速度,但这不绝对安全,robot可能会撞到某些障碍。但这是唯⼀⼀种可以与允许最⼤
速度动态设置的局部规划器兼容的⾃救⾏为。
文档评论(0)