深蓝学院 机器人操作系统ROS理论与实践(六)

一、机器人必备条件

1、硬件要求,ROS中常用的功能包对机器人的要求

2、深度信息

 起始角度一般为-180°,终止角度一般为+180°

将某一行做切面,其中取出的点将三维的数据转换成二维的点云数据,帮助实现slam的导航要求

3、里程计信息

ROS中使用的均为右手坐标系

4、仿真环境

二、ROS SLAM功能包应用方法

1、gmapping功能包

基于激光雷达,使用粒子滤波算法来创建二维栅格地图。

必须有的输入是深度信息和里程计信息

最重要的topic是map,用来发布地图栅格地图

map和odom均是全局坐标系,机器人开机的时候一般会规定为机器人的零位置由此进行一系列的

坐标变换,但机器人不一定最开始就处于map的零位置,理论上可以处于map上的任何位置,所以

需要进行坐标变换 

栅格值越大,是障碍物的可能性越大 

调整参数以改变建图效果

可以通过ROS wiki工具来了解功能包如何使用

 地图一般保存在工作空间的根目录下,一般是图片的形式保存

image:地图名称

resolution:地图的分辨率(单位是m),0.05代表一个栅格是五厘米

origin:机器人的位置(下次加载出来的机器人初始位置)

negate:反转,布尔值(0或1)设置为1则地图颜色反转,若地图最初记录的可用空间和占用空间值相反通常会使用该值

occupation_thresh:占用阈值,用来确定地图中像元是否占用的阈值,单元格高于阈值则认为已被占用

free_thresh:空闲阈值,用来确定地图中像元是否空闲的阈值,单元格低于阈值则认为不可用

2、hector_slam功能包

传入深度信息即可,无需里程计信息

运动速度过快或激光雷达数据精度不高就会出现问题——由于没有里程计信息,仅依靠激光雷达进行里程计的估算

         

 3、catographer功能包

 

修改了相关参数需要编译重新生效

 4、ORB_SLAM功能包

 

 

三、ROS中的导航框架

1、move_base导航框架

白色部分是ROS已经提供的,灰色中是ROS提供的但不一定要选的模块

中间的方框部分是move_base提供的,是此框架的核心

map_server地图服务——会认为全局可用,不用进行避障

acml基于概率定位的功能包——一般有里程计可以实现导航的功能所以可以不用使用

sensor sources传感器的数据采集——激光器或者点云,一些数据的转发需要自己来操作,找不到驱动包需要自己配置

sensor transforms坐标转换——需要自己配置

odometry source里程计信息——需要自己积分进行计算

cmd_vel速度控制消息,结构是Twist类型来达到需要的线速度/角速度

action需要维持长时间的交互,在每个周期内会有反馈信息

可以打开ros wiki工具找到move_base对相关参数进行了解

obstacle_range:障碍物的范围

footprint:机器人的外形尺寸

robot_radius:机器人的半径

inflation_radius:安全区的膨胀半径

2、amcl导航框架(概率定位)

蓝色点的密度越高,机器人在此处的概率越高

里程计定位:编码器旋转的圈数计算速度,通过速度积分来获取机器人的位置

amcl定位:根据传感器信息(map_frame)完成机器人在地图坐标系下的位置估算

 

四、ROS机器人自主导航

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值