app开发者平台在数字化时代的重要性与发展趋势解析
882
2022-09-27
第十五课 导航基础
导航概述
硬件要求:
虽然导航功能包集被设计成尽可能的通用,在使用时仍然有三个主要的硬件限制:
ROS导航包集
下面图完美解释了导航功能包需要那些组件,首先看一下该如何设置
provided node已经提供的节点
optional provided node 可选择的节点
platform specific node平台指定的节点
sensor sources,传感器输入源可以是LaserScan激光雷达,也可以是PointCloud,它可以使激光雷达得到的数据,也可以是Kinect得到的数据,
odometry source主要是odom,
sensor transforms主要是tf.
base_controller主要是底座该如何控制,比如PID.
下面是导航包的主要内容
导航包的框架,也就是坐标系有如下
规划器有两个
Local planner
局部规划器为了设计成大多数机器人都能通用的规划器,它采用参数配置模式能够为不同机器提供不同的参数配置,包括以后的global planner,以及amcl都是采用这种方法.
参数包括
机器人配置参数
目标容忍度参数
向前模拟参数
轨迹打分参数
震荡预防参数
全局规划参数
发布的主题:
global_plan:主要作用是产生规划路径让local_plan跟着它移动,
local_plan:为路线打分,产生最高分那个路径,
cost_cloud:用于规划代价网格
订阅的主题:
odom:用于给局部的规划器产生当前的速度信息,这个速度信息假设在与ros_base frame在同一个坐标系中,
两种算法:Trajectory Rollout和Dynamic Window Approach
基本思想:
1)采样机器人当前的状态(dx,dy,dtheta);
2)针对每个采样的速度,计算机器人以该速度模拟行驶一段时间后的状态,得出一条行驶的路线.
3)利用一些评价标准为多条路线打分(如与障碍物,目标等的接近度),丢弃不可行的路线;
4)根据打分,选择最优路径;
5)重复上面过程.
在实际应用中,尽管两者的实际表现相似,但是我们采用DWA算法,因为它采样的区域小,相对来说更加有效一些.
下面来看一下它的参数
base_local_planner.yaml
设置了加速度限制和速度限制是为了保证机器人的安全,我们知道tf有个设计不好的地方就是它不够及时性.
全向轮是可以在x轴和y轴方向均能运动;
而差分轮只能在x轴方向运动,比如汽车,只能向前向后运动.
Global Planner
代价地图
图中蓝色部分表示用户指定的膨胀系数,蓝色区域以外都表示安全区域.
订阅的主题footprint,它的类型是一个多边形Polygon,
发布的主题,grid,表示costmap中的值,
grid_updates:表示更新的代价地图中的地图区域
voxel_grid:表示使用3D的形式来展示代价地图
红色的五边形表示机器人的底座,机器人的中心用小正方形来表示,内部有一个蓝色的圆圈表示内切圆,外部的圆圈叫做外接圆,
上面的坐标轴上方表示代价值,与圆心相切的是cost_lethal=254,是绝对会碰撞,只要是能够与外界园相接的地方,我们都认为是会碰撞,用户指定的膨胀系数是指可能会碰撞,超过膨胀系数之外,认为是安全区域,
下面是代价地图的参数文件
move_base
订阅的一个目标
发布的主题是控制底盘的速度
AMCL(自适应模特卡尔定位)
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~