关于轨迹跟踪以及保持路径总时间的讨论结果
迪丽瓦拉
2024-02-10 06:49:57
0

最近室友苦恼于这样一个任务,主要也是由于沟通中感到大家没有一个统一的答案?因而她也在纠结要如何实现

布置的内容大约是要做固定时间的轨迹跟踪,

方案1.由上一模块输出路径上几个节点,pid控制到节点
方案2.直接跟踪路径

我个人的推荐是方案2

首先,跟踪路径按正常方法就行,我只会按照寻迹小车相同原理做。(取出机器人前方一段规划器所得路径作为目标,通过最小二乘线性回归获得该段路径的旋转角、偏移值,上述信息作为输入(结合自身角度 偏移值),使用双环PID算法控制UUV跟踪该段路径,重复此过程直到到达终点。)

要保证沿着路径按规定时间(不多不少)到达终点,那么首先看机器人的运动学约束(机器人能不能停悬停?),如果是如固定翼飞机这种可能速度范围比较小,则考虑在轨迹规划/路径规划阶段就把路径做成合适的长度(而非最短路径)。如果速度范围比较广(0-max),则可以在轨迹跟踪阶段做。

此时轨迹跟踪模块获得输入为(轨迹+轨迹总长度+预期时间),一个简单的方法是:
令当前速度v = Lall/Lnow / Tall/Tnow × v期望平均
思路和之前那篇固定路径长度A*一样。(我的理解这部分就相当于只应用个p控制)

但是她需要应用一些高端算法,因而我们需要找出控制量。
这里令控制量为 已走过轨迹平均速度 = Lnow/Tnow
控制目标为 整体平均速度 Lall/Tall

控制量为 Lall/Lnow / Tall/Tnow
目标值为 1
输出的数值×平均v就是想要的速度

例如要应用pid 和之前的代码差不多,记录多次历史Lall/Lnow / Tall/Tnow 做积分
使用类似中断的功能做微分
p的默认值为1,id为0(或无穷),就是 刚刚提到的当前速度v = Lall/Lnow / Tall/Tnow × v期望平均

(感觉可能还有更好的办法?看来还需要补充知识)

相关内容