技术分享 | Prometheus(P450)-室内外避障
Posted 阿木实验室
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了技术分享 | Prometheus(P450)-室内外避障相关的知识,希望对你有一定的参考价值。
原理说明
Astar进行全局路径规划
全局路径规划
1) 全局算法和局部算法
全局路径规划是在已知的环境中,给机器人规划一条路径,路径规划的精度取决于环境获取的准确度,全局路径规划可以找到最优解,但是需要预先知道环境的准确信息,当环境发生变化,如出现未知障碍物时,该方法就无能为力了。它是一种事前规划,因此对机器人系统的实时计算能力要求不高,虽然规划结果是全局的、较优的,但是对环境模型的错误及噪声鲁棒性差。
局部路径规划则环境信息完全未知或有部分可知,侧重于考虑机器人当前的局部环境信息,让机器人具有良好的避障能力,通过传感器对机器人的工作环境进行探测,以获取障碍物的位置和几何性质等信息,这种规划需要搜集环境数据,并且对该环境模型的动态更新能够随时进行校正,局部规划方法将对环境的建模与搜索融为一体,要求机器人系统具有高速的信息处理能力和计算能力,对环境误差和噪声有较高的鲁棒性,能对规划结果进行实时反馈和校正,但是由于缺乏全局环境信息,所以规划结果有可能不是最优的,甚至可能找不到正确路径或完整路径。
两者协同工作,机器人可更好的规划从起始点到终点的行走路径。
2) A*算法
A*算法是全局启发式搜索算法,是一种尽可能基于现有信息的搜索策略,也就是说搜索过程中尽量利用目前已知的诸如迭代步数,以及从初始状态和当前状态到目标状态估计所需的费用等信息。
A*算法在选择下一个被检查的节点时考虑来之前花费代价,同时使用到目标距离作为引导,两者之和作为评价该节点处于最优路线上的可能性的量度,这样可以首先搜索到位于最优路径上可能性大的节点。
A算法的基本思想如下:引入当前节点j的估计函数$f^$,当前节点j的估计函数定义为:
$f^(j)= g(j)+h^(j)$
其中$g(j)$是从起点到当前节点j的实际代价的量度,$h^(j)$是从节点j到终点的最小消耗的估计,可以依据实际情况,选择$h^(j)$的具体形式,$h^(j)$要满足一个要求:不能高于节点j到终点的实际最小费用。从起始节点点向目的节点搜索时,每次都搜索$f^(j)$最小的节点,直到发现目的节点。
节点图
室内
节点图如下:
tf树如下:
室外
tf树如下:
室内避障实机操作
每次飞行前需重新上电以重启飞控和板载计算机
启动指令
先启动第一个指令
roslaunch p450_experiment astar_onboard.launch
再启动第二个指令
roslaunch p450_experiment astar_ground.launch
起飞
先输入起飞指令
在此终端先输入0选择命令输入控制
再输入1选择take off起飞指令,由于没有切入offboard模式,此时无人机还不会响应。
我们遥控器切定点,解锁,切offboard,这时无人机才会自动起飞。
等到无人机起飞到一个稳定高度,也即是我们设定的起飞高度后,回到rviz界面,点击选择3D Nav Goal
在rviz上点击一个点作为目标点
会自动生成一个绕开障碍物的路径
此时无人机会沿着这个生成的路径飞,绕开障碍物,且高度会保持不变。
如果中途无人机飞行不符合预期,及时通过遥控器切出offboard模式,转为position模式手动控制。
降落
无人机飞到目标点后,可以遥控器拨动offboard飞行模式开关切出offboard模式,并缓慢手动降落。
室外避障实机操作
启动指令
先启动第一个指令
roslaunch p450_experiment astar_onboard_gps.launch
再启动第二个指令
roslaunch p450_experiment astar_ground_gps.launch
之后的操作基本上和室内类似。详细的可以了解P系列无人机P450使用手册
以上是关于技术分享 | Prometheus(P450)-室内外避障的主要内容,如果未能解决你的问题,请参考以下文章
新品发布 | P450迎来新配置升级!+NANO/NX版本,视觉自主精准降落.....
Prometheus技术分享——prometheus的函数与计算公式详解