Chinaunix首页 | 论坛 | 博客
  • 博客访问: 5567828
  • 博文数量: 1310
  • 博客积分: 12961
  • 博客等级: 上将
  • 技术积分: 15646
  • 用 户 组: 普通用户
  • 注册时间: 2009-01-09 11:25
个人简介

偷得浮生半桶水(半日闲), 好记性不如抄下来(烂笔头). 信息爆炸的时代, 学习是一项持续的工作.

文章分类

全部博文(1310)

文章存档

2020年(92)

2019年(193)

2018年(81)

2017年(80)

2016年(70)

2015年(52)

2014年(41)

2013年(51)

2012年(85)

2011年(45)

2010年(231)

2009年(287)

分类: 其他平台

2020-04-10 15:59:34

背景
1. 现在使用的机器人在新的场所应用, 常规手段是通过机器人现在场地内走一圈, 通过激光雷达扫一圈, 历史数据通过cartograph 或者 其他算法, 得出 SLAM地图.  一般根据实地场所大小, 得出的地图精度 5cm/像素. PGM P5格式. 
是不是相当的土, 这要是显示在界面上, 多尴尬.

OK, 现在的想法,
    1. 界面上的图实现能否通过建筑平面图替代?
    2. SLAM的地图能否用建筑平面图替代?

1. 肯定可以,  Bmp2PGM.zip , 通过把 CAD图 
转变为 关心的图层  
进而PS为合适的底图. 
 
那么像素长队应该对应于 39700mm/50mm = 794 个像素.
1. PS, 选择<编辑><预设><单位与标尺>设置单位为<像素>
2. 选择工具的<标尺> , 从A拉倒B. 得出原图只有 466个像素.
而我们需要的是 794.所以要进行缩放. 即扩大1.7倍. 即把原图长宽都扩大 1.7倍即可.
3. PS选择<图像><图像大小>. 设置长宽为原来的 1.7倍.
4. 新图用标尺确定, 尺寸刚好 794.
5. 切记 pgm 图在rviz中是需要逆时针90度显示, 正上为我们需要的正北项, 所以新图还需要在PS中顺时针90度才可以, 也就是说原始图应该为正北为右的一个方位图.
 
然后地图适当的缩放到 5cm/每像素的合适大小, 再通过程序处理成 P5 PGM格式的地图文件. (在程序中,为了锐化地图数据, 只保留三种数据, 空白, 障碍,未知) 
这一步验证是OK, 那么剩下的就是配套的 yaml文件的编写了,  这个就相对都好处理了.
1. 首先做个 map.yaml,  设置 origin: [0.0, 0.0, 0.0], 即整个地图的右下角为 坐标系原点.  
2. 用 big_nav 加载地图, 在rviz中选定原点. 记住rviz中的此位置, 把这个位置设置到 map.yaml,  设置 origin 中.  origin: [-60.3, -76.2, 0.0]
3. 重新
 用 big_nav 加载地图, 机器人默认位置为 0, 0 是刚好处于地图原点, 大功告成.


那么对于问题2, 可以么?  这个尚待验证一下. 主要是精度, 以及slam定位时的可靠性问题, 毕竟手工地图和实时建立的地图有误差(例如说实际的门套, 施工墙壁的宽度), 另外就是精度问题肯定比实时地图粒度要粗的多. 预计可能有 10cm/像素的误差.  这部分对货柜/充电座灯精准位置的移动影响会比较大.
阅读(91) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~