使用说明:
1 将小车手动放在地图起点或者通过rviz设置起点
2 运行导航launch文件
roslaunch turn_on_wheeltec_robot navigation.launch
rviz (运行rviz终端)
要在rviz里设置起点,使用2D Pose Estimate,点击地图位置选择小车初始位置,向一个方向拖动(产生绿色箭头)设置小车朝向
3 启动导航
使用2D Navi Goal,点击地图选择导航目标位置,向一个方向拖动(产生紫色箭头)设置到达目标后小车的朝向
4 添加或更改地图
在状态栏左侧的Map下,可以选择rviz中订阅的话题。其中/map为预先导入的地图文件。/costmap为导航中实时的代价图。
如果要添加新地图,可以点左下角add键,选择新的Map
在该系统里,/map话题对应的地图为turn_on_wheeltec_robot/map/WHEELTEC.yaml文件。如果要切换地图,可以在navigation.launch文件里修改地图选择
launch文件位置/wheeltec_robot/src/turn_on_wheeltec_robot/launch
<!-- 设置需要用于导航的地图 -->
<arg name="map_file" default="$(find turn_on_wheeltec_robot)/map/WHEELTEC.yaml"/>
<node name="map_server_for_test" pkg="map_server" type="map_server" args="$(arg map_file)">
</node>
自主导航原理简介:
如图是ROS自主导航框架。里面不同类型节点由不同颜色标记。白色节点为导航必须模块,在ROS中提供了现成的实现,不需要自主开发。灰色节点为可选项,可以提高导航精度,也在ROS中有实现。蓝色的节点需要我们自己开发
节点介绍:
1 global_planner, local_planner, global_costmap, local_costmap, 和 recovery_behaviors
在标定小车起点和目标点后,global_planner程序会先根据地图算出全局的代价图global_costmap,并得到一条使总代价最小的预设路径。
在小车行进中,local_planner会根据全局代价图在小车周围的一部分(即local_costmap)进行路径调整和避障,并试图让路径和规划好的全局路径接近。
如果小车发现无论如何规划都无法找到合适路径(如小车被障碍物围住),会启用recovery_behavior,即设定的某些特定动作(如原地打转)来试图恢复路径。
代价图:
代价地图即为在障碍物周围画出一片安全区域称为膨胀区。膨胀区即为小车可能和障碍物碰撞的区域,而碰撞概率即被称为代价。距离障碍物越近,越有可能出现碰撞,因此代价也会越高,这在地图上表现即为膨胀区颜色变深。
global_planner会根据录入的地图计算出代价地图,并规划出总代价最低的路径。而在小车前进中local_planner会根据局部代价地图对最优路径进行调整。
2 amcl
amcl是一个基于雷达的全局定位方法。该方法定位原理依靠蒙特卡洛定位方法。该方法会在小车周围随机生成粒子,类似于小车不同位置,不同方向的“分身”。每一个粒子具有和机器人相同的速度,但是沿各自的方向运动,会和机器人逐渐远离。当机器人使用传感器检测得到当前状态时(如和障碍物的距离),状态相似的粒子会被保留并复制,而状态差距大的粒子会被删除。在按一定频率多轮筛选粒子后,粒子聚集的位置就近似为机器人实际位置。
amcl相当于里程计定位的优点是不会出现累积偏差,但缺点在于计算量较大
里程计定位的方法被称为航迹推测,利用机器人运动轨迹推出和初始位置的差距。该定位建立了/base_frame和/odom_frame的坐标关系
amcl方法基于传感器检测结果和地图比对来定位,称为位置估算。该定位建立/map_frame和/base_frame关系。由于ROS中一个坐标系不能有多个父坐标系,我们首先建立了/map_frame和/odom_frame的关系。这两个坐标系差距物理意义即为里程计的偏移文章来源:https://www.toymoban.com/news/detail-481676.html
3 map_server
map_server即导入地图。如果没有导入地图导航系统依然可以运行,相当于全局代价图为一个空白图,全局路径为起点到终点的直线,然后由局域规划器来避障规划路径文章来源地址https://www.toymoban.com/news/detail-481676.html
到了这里,关于ROS小车研究笔记2/25/2023自动导航的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!