本节主要介绍导航所涉及的基础概念和一些相关内容。
参考:Navigation using ROS 2 - Introduction
机器人在环境中运动方向的路径规划要回答三个问题:
如果要细分问题更多,就以此为基础吧。看如下:
Gazebo
Webots
ROS2的navigation2功能包,支持Linux、Windows和MacOS,并且适用于各类仿真环境如Gazebo、Webots等,同时支持多款真实机器人,最常用的是TurtleBot2和TurtleBot3。
Navigation
如何让机器人不再迷茫!!!
机器人定位
对于机器人导航而言, 在地图上定位机器人 (AMCL):
注意其差异性,通常为局部和全局,给定相对和绝对坐标。
无地图定位通常用于避障等任务,有地图定位通常为目标巡逻或区域覆盖。
区域覆盖
ROS2导航的主要内容:
定位常用方法:
从“我在哪里” -->“我到底在哪里?”
估计值与真实值的差异!!!
上图可以更清晰描述这些概念。
讲到定位自然离不开坐标变换(TF)
对于导航而言,通常关注以下要点:
TF名称(对应下图):
相对位置估计:本体如何移动 快速,但由于不确定性或漂移而导致误差。随着时间的推移给出位置变化 w.r.t. 初始点。来源:里程计、IMU 等... | 绝对位置估计:观测外部环境 速度慢,但不易出错。在地图中给出位置 w.r.t 固定坐标。来源:GPS、激光雷达等... |
---|---|
参考更新速率100hz | 参考更新速率10hz |
绝对位置估计:观测外部环境
参考更新速率100hz 参考更新速率10hz
如果不用base_link,也可以是base_footprint。 取决于机器人和开发人员具体设定。
例如:robot_localization 功能包
具体参考研究论文,多传感器融合,可以显著降低误差。
Navigation 2中定位的实现,类似ROS1 AMCL的接口
自适应蒙特卡罗定位:
AMCL: