MOOC ROS7 SLAM和MAP

ROS常用来开发:SLAM 路径规划 机器视觉
在这里插入图片描述
SLAM:同步定位和建图
研究slam时,一般假设路径规划是已经解决的问题
SLAM常用的开源算法包 Gmapping karto Hetor Cartographer

Localization:AMCL
path planing: Navigation 其中又分成 global (dijkstra,A*) 和local(DWA) 问题

建图MAP

在这里插入图片描述
一个topic /map msg类型 OccipancyGrid(栅格地图)
三部分
报头header :序列 时间戳 和frame(就是map)
信息 info :存储了当前地图的一些相关信息 (地图加载时间,像素m/pixel 一个像素代表多少m 一般0.05 0.025 ,宽度,高度 pixel) geometry_msgs/pose orgin描述了初始化时相较于map这个frame的位置和朝向
数据 data:最重要的就是data,实际每一格地图的数值,数值表示的就是cost,机器人走到这一格要消耗的成本,用数组来表示,长度就是width×height 每一个像素都是一个字节,用来存放cost

Gmapping

在这里插入图片描述
最核心的node slam_gamapping
需要:感知环境(laser odom里程计 又分为encoder visual imu)
输入就两个
/tf :其中tf必须是base 到 odom的tf,里程计到机器人底盘之间的坐标转换关系,这个是通过odom 的 encoder visual imu读出来的,slam_gamapping只关心base 到 odom的tf
/scan

发布的:
**/tf :**就是用来定位的,发布的是map到odom之间的tf,也就知道了map和base之间的转换关系了,就实现了定位,tf tree就连通了,这里MAP指的是frame,坐标系

**/map:**把每次建图的结果图片发到 /map上,更新地图。这个map又会被很多其他的node接受,例如path planning ,Rviz中看到地图,也是因为订阅了map,这个map指的是topic

**/map_metadata:**把地图的一些信息,高度,宽度,分辨率单独作为一个topic发送出来了

**/entropy:**建图的精度

Gmapping Service

提供了一个服务,没有request,不用请求,直接调用,显示当前地图,提供了一个地图查询服务。
还有一些详细的参数
在这里插入图片描述

Karto Topic

在这里插入图片描述
一般map就是三个坐标系
在这里插入图片描述
odom通过encoder之类的计算,会有累计误差,但是slam不光接收odom和base之间的tf ,同时会修正误差,发布odom和map之间的tf。
slam一方面接受odom作为输入,定好位之后输出一个tf,也就是对之前odom的tf进行修正。无论是Gmapping karto 还是 AMCL都是这种算法,这是slam或者定位的算法所需要的工作。

相对的
在这里插入图片描述
只靠odometry 只用里程计来定位,不用一些优化算法来校正,这种方法map和odom之间的关系是固定的

例子:

roslaunch robot_sim_demo robot_spawn.launch 
roslaunch slam_sim_demo gmapping_demo.launch
roslaunch slam_sim_demo view_slam.launch 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值