首页 技术 正文
技术 2022年11月16日
0 收藏 938 点赞 2,431 浏览 2742 个字

以下大部分内容参考自

ros_by_example_hydro_volume_1.pdf

local costmap 是怎么生成的?跟三维点云有什么关系?

global costmap在没有全局地图下怎么办?

要实现标题所述功能:

需要配置local costmap和global costmap

在move_base里默认用到的costmap(这一点在论文:ROS Navigation: Concepts and Tutorial 3.6最后一段节有说到,而且说明了怎么配置layered costmap)

是monolithic costmap这个在论文:

Layered Costmaps for Context-Sensitive Navigation中有详细描述

layered costmap就是一层层不同地图重叠在一起

在论文:Layered Costmaps for Context-Sensitive Navigation里描述的很详细,主要是讲了layered costmap这么进行更新和每一层都是什么

包括:

ros move_base costmap 理解和实现动态窗口法避障

其中master layer是aggregate layer where path planning occurs

对于local costmap, 如voxel layer就是其中一层,他可以判断比如一个桌子,激光会扫到桌子腿,认为可以过去,但是机器人还是会碰到桌子,因为激光扫不到桌面,

这个例子是在讲voxel grid论文里看到的:

The Office Marathon:Robust Navigation in an Indoor Office Environment

然后在layered costmap update时就会在master上三维向二维投影出桌面,让机器人不走这条路径。

local costmap和global costmap采用地图方式不一样

global costmap采用静态地图(通过slam产生的),这里只是涉及避障所以可以将静态地图设置为空白地图,将地图世界坐标/map和定位采用的坐标系tf通过static_transform固定在一起这个可以看

http://www.cnblogs.com/hong2016/p/6831484.html

如果之后要采用静态地图再修改

http://www.cnblogs.com/hong2016/p/6831484.html

中讲到的llaunch file就好了

  <node name="map_server" pkg="map_server" type="map_server" args="$(find pioneer_zed)/maps/blank_map.yaml" />

下面这段话摘自ros bt example volume1 8.2 Testing move_base in the ArbotiX Simulator 第二段

Finally, since we are using a blank map and our simulated robot has no sensors, the robot cannot use scan data for localization. Instead, we simply set a static identity

transform to tie the robot’s odometry frame to the map frame which essentially assumesthat the odometry is perfect.

local costmap不采用静态地图而是采用rolling window

http://answers.ros.org/question/10482/navigation-without-map/

you’re right – I figured that out, this thread is a bit outdated. As for your question – the normal trend is to use rolling_window: true for local costmap since by definition that map is used for collision checking with the immediate robot.

http://answers.ros.org/question/10620/whats-the-difference-between-global-and-local-costmaps-static_map/

For the tutorial, only the global costmap uses an a priori map, so the static_map parameter is set to true. The local costmap, however, only uses local sensor information to build an obstacle map, so static_map is set to false.

rolling window是

http://answers.ros.org/question/223880/what-is-rolling-window-used-for/

“Rolling window” means that you do not use the costmap to represent your complete environment, but only to represent your local surroundings (e.g. 5m x 5m around your robot). The costmap will then move along with your robot and will be updated by incoming sensor data.

http://answers.ros.org/question/39858/costmap-static_map/

You have to make sure that you also set the size of the rolling window appropriately:

rolling_window: true
width: 15.0
height: 15.0
resolution: 0.05
origin_x: 0.0
origin_y: 0.0

When using a static map, the width and height are determined using the loaded image. In a rolling window, you must manually specify these parameters for your robot. Just know that it places your robot in the center of the rolling window, so the robot can only see things that are height/2 meters away.

相关推荐
python开发_常用的python模块及安装方法
adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheeta…
日期:2022-11-24 点赞:878 阅读:9,088
Educational Codeforces Round 11 C. Hard Process 二分
C. Hard Process题目连接:http://www.codeforces.com/contest/660/problem/CDes…
日期:2022-11-24 点赞:807 阅读:5,564
下载Ubuntn 17.04 内核源代码
zengkefu@server1:/usr/src$ uname -aLinux server1 4.10.0-19-generic #21…
日期:2022-11-24 点赞:569 阅读:6,412
可用Active Desktop Calendar V7.86 注册码序列号
可用Active Desktop Calendar V7.86 注册码序列号Name: www.greendown.cn Code: &nb…
日期:2022-11-24 点赞:733 阅读:6,185
Android调用系统相机、自定义相机、处理大图片
Android调用系统相机和自定义相机实例本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显…
日期:2022-11-24 点赞:512 阅读:7,822
Struts的使用
一、Struts2的获取  Struts的官方网站为:http://struts.apache.org/  下载完Struts2的jar包,…
日期:2022-11-24 点赞:671 阅读:4,905