ros学习(6)基本导航

1. 基本理论概念(navigation)第十章 Navigation · 中国大学MOOC———《机器人操作系统入门》讲义

ROS学习笔记之——路径规划及avoid obstacles_gwpscut的博客-CSDN博客

2. costmap理解:

参考:

10. ROS costmap代价地图 - 采男孩的小蘑菇 - 博客园

激光SLAM导航系列(三)Costmap(代价地图)(上)_月黑风高云游诗人的博客-CSDN博客_代价地图

ROS中map与costmap的topic数据格式定义_Start_From_Scratch的博客-CSDN博客

激光SLAM导航系列(三)Costmap(代价地图)(上)_月黑风高云游诗人的博客-CSDN博客_代价地图

ROS导航之参数配置和自适应蒙特卡罗定位 - jason来自星星 - 博客园

在机器人进行路径规划时,我们需要明白规划算法是依靠什么在地图上来计算出来一条路径的。依靠的是gmapping扫描构建的一张环境全局地图,但是仅仅依靠一张原始的全局地图是不行的。因为这张地图是静态的,无法随时来更新地图上的障碍物信息。在现实环境中,总会有各种无法预料到的新障碍物出现在当前地图中,或者旧的障碍物现在已经从环境地图中被移除掉了,那么我们就需要来随时更新这张地图。同时由于默认的地图是一张黑白灰三色地图,即只会标出障碍物区域、自由移动区域和未被探索区域。机器人在这样的地图中进行路径规划,会导致规划的路径不够安全,因为我们的机器人在移动时需要与障碍物之间保持一定的安全缓冲距离,这样机器人在当前地图中移动时就更安全了。

costmap简单来说就是为了在这张地图上进行各种加工,方便我们后面进行路径规划而存在的。那具体该如何实现costmap呢?在ROS中使用costmap_2d这个软件包来实现的,该软件包在原始地图上实现了两张新的地图。一个是local_costmap,另外一个就是global_costmap,根据名字大家就可以知道了,两张costmap一个是为局部路径规划准备的,一个是为全局路径规划准备的。无论是local_costmap还是global_costmap,都可以配置多个图层,包括下面几种:

  1. Static Map Layer:静态地图层,基本上不变的地图层,通常都是SLAM建立完成的静态地图。
  2. Obstacle Map Layer:障碍地图层,用于动态的记录传感器感知到的障碍物信息。
  3. Inflation Layer:膨胀层,在以上两层地图上进行膨胀(向外扩张),以避免机器人的撞上障碍物。
  4. Other Layers:你还可以通过插件的形式自己实现costmap,目前已有Social Costmap Layer、Range Sensor Layer等开源插件.

costmap_common_params.yaml,local_costmap_params.yaml,costmap_common_params.yaml参数解析:

10. ROS costmap代价地图 - 采男孩的小蘑菇 - 博客园

ROS导航之参数配置和自适应蒙特卡罗定位 - jason来自星星 - 博客园

3. 有关workshop:

如果要修改/home/xumin/catkin_ws/src/CMP9767M-master/uol_cmp9767m_tutorial/config目录下的配置文件并使其生效,需要把打开的终端的环境配置为对应的目录(catkin_ws),因为ros默认的环境为roscd(/opt/ros/melodic),

xumin@xumin-lenovo-legion-y7000p-1060:~$ roscd 
xumin@xumin-lenovo-legion-y7000p-1060:/opt/ros/melodic$ ls
bin     include           local_setup.sh   setup.sh        share
env.sh  lib               local_setup.zsh  _setup_util.py
etc     local_setup.bash  setup.bash       setup.zsh
xumin@xumin-lenovo-legion-y7000p-1060:/opt/ros/melodic$ source ~/catkin_ws/devel/setup.bash ##相反source /opt/ros/melodic/setup.bash


xumin@xumin-lenovo-legion-y7000p-1060:/opt/ros/melodic$ roscd
xumin@xumin-lenovo-legion-y7000p-1060:~/catkin_ws/devel

之后在该环境下执行:

~/catkin_ws/devel$ roslaunch bacchus_gazebo vineyard_demo.launch launch_move_base:=false

同理:执行~/catkin_ws/devel$ roslaunch uol_cmp9767m_tutorial move_base.launch之前需要:

xumin@xumin-lenovo-legion-y7000p-1060:~$ roscd

xumin@xumin-lenovo-legion-y7000p-1060:/opt/ros/melodic$ ls bin include  local_setup.sh  setup.sh share env.sh lib  local_setup.zsh  _setup_util.py etc  local_setup.bash  setup.bash  setup.zsh

xumin@xumin-lenovo-legion-y7000p-1060:/opt/ros/melodic$ source ~/catkin_ws/devel/setup.bash

xumin@xumin-lenovo-legion-y7000p-1060:/opt/ros/melodic$ roscd xumin@xumin-lenovo-legion-y7000p-1060:~/catkin_ws/devel

同理:此时如果需要使用2D Nav Goal topic进行导航,需要change the navigation goal topic by selecting from rviz menu "Panels/Tool Properties" and prepending '/thorvald_001' to the 2D Nav Goal topic. (即:move_base_simple/goal修改为/thorvald_001/move_base_simple/goal,如果不修改,机器人执行导航不动)

并且此时在rviz中可以查看/local_costmap/costmap和/global_costmap/costmap.

###

或者直接在系统配置文件中选择ros的启动环境的目录为source ~/catkin_ws/devel/setup.bash

sudo gedit ~/.bashrc

#source /opt/ros/melodic/setup.bash
source ~/catkin_ws/devel/setup.bash

source ~/.bashrc

###

修改global_costmap_params.yaml 和local_costmap_params.yaml中的update_frequency查看对导航的影响,以及修改planners.yaml中的不同导航算法进而查看对导航的影响。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值