(三)路径规划算法---基于Kinodynamic的路径规划简单介绍

基于Kinodynamic的路径规划简单介绍


Kinodynamic=Kinematic+Dynamic,其中

Kinematic:运动学约束,例如避障

Dynamic:动力学约束,例如加速度(acceleration)、力(force)

在介绍Kinodynamic之前,先简单介绍现实中常见的机器人模型

1. 机器人模型

1.1 Unicycle Model

Unicycle Model中文译为自行车模型,模型表示如下图。
( x ˙ y ˙ θ ˙ ) = ( cos ⁡ ( θ ) sin ⁡ ( θ ) 0 ) v + ( 0 0 1 ) ω \left( \begin{matrix} {\dot x}\\ {\dot y}\\ {\dot \theta } \end{matrix} \right) = \left( {\begin{matrix} {\cos (\theta )}\\ {\sin (\theta )}\\ 0 \end{matrix}} \right)v + \left( {\begin{matrix} 0\\ 0\\ 1 \end{matrix}} \right)\omega x˙y˙θ˙=cos(θ)sin(θ)0v+001ω
在这里插入图片描述
模型推导这里不在赘述,详情参见:http://planning.cs.uiuc.edu/node659.html

1.2 Differential Drive Model

Differential Drive Model中文名为差速模型,模型表示如下图
( l x ˙ y ˙ θ ˙ ) = ( r 2 ( ω l + ω r ) cos ⁡ ( θ ) r 2 ( ω l + ω r ) sin ⁡ ( θ ) r L ( ω r − ω l ) ) v = r 2 ( ω l + ω r ) cos ⁡ ( θ ) ω = r L ( ω r − ω l ) \left( \begin{matrix}{l} {\dot x}\\ {\dot y}\\ {\dot \theta } \end{matrix} \right) = \left( {\begin{matrix} {\frac{r}{2}({\omega _l} + {\omega _r})\cos (\theta )}\\ {\frac{r}{2}({\omega _l} + {\omega _r})\sin (\theta )}\\ {\frac{r}{L}({\omega _r} - {\omega _l})} \end{matrix}} \right) \\ v={\frac{r}{2}({\omega _l} + {\omega _r})\cos (\theta )}\\ \omega={\frac{r}{L}({\omega _r} - {\omega _l})} lx˙y˙θ˙=2r(ωl+ωr)cos(θ)2r(ωl+ωr)sin(θ)Lr(ωrωl)v=2r(ωl+ωr)cos(θ)ω=Lr(ωrωl)

在这里插入图片描述
模型推导这里不在赘述,详情参见:http://planning.cs.uiuc.edu/node659.html

1.3 Car Model

Car Model就是我们经常说的阿克曼模型,模型表示如下图
( l x ˙ y ˙ θ ˙ ) = ( v cos ⁡ ( θ ) v sin ⁡ ( θ ) v l tan ⁡ ( ϕ ) ) \left( \begin{matrix}{l} {\dot x}\\ {\dot y}\\ {\dot \theta } \end{matrix} \right) = \left( {\begin{matrix} {v\cos (\theta )}\\ {v\sin (\theta )}\\ {\frac{v}{l}\tan (\phi )} \end{matrix}} \right) lx˙y˙θ˙=vcos(θ)vsin(θ)lvtan(ϕ)
在这里插入图片描述
Simple Car Model ∣ v ∣ ≤ v max ⁡ , ∣ ϕ ∣ ≤ ϕ max ⁡ ≤ π 2 \left| v \right| \le {v_{\max }},\left| \phi \right| \le {\phi _{\max }} \le \frac{\pi }{2} vvmax,ϕϕmax2π

Reeds Shepp Car v ∈ { − v max ⁡ , v max ⁡ } , ∣ ϕ ∣ ≤ ϕ max ⁡ ≤ π 2 v \in \{ - {v_{\max }},{v_{\max }}\} ,\left| \phi \right| \le {\phi _{\max }} \le \frac{\pi }{2} v{vmax,vmax},ϕϕmax2π

Dubbin Car v = v max ⁡ , ∣ ϕ ∣ ≤ ϕ max ⁡ ≤ π 2 v = {v_{\max }},\left| \phi \right| \le {\phi _{\max }} \le \frac{\pi }{2} v=vmax,ϕϕmax2π

模型推导这里不在赘述,详情参见:http://planning.cs.uiuc.edu/node658.html

https://blog.csdn.net/u013914471/article/details/82968608


2. State Lattice Planning

假设机器人并不能只表示一个质点,而需要充分考虑机器人的动力学和运动学约束。因此我们需要一个可行的运动连接的图,这种图也被称为Lattice Graph。建立这种图有两种方法,可分为

Forward direction:在控制空间(control space)中进行采样,将控制空间离散,驱动机器人向前运动,以得到一个一个的可行的运动连接

例如:假设机器人在某一个栅格节点,我们可以选择机器人的控制量,所谓控制量就比如车的油门、方向盘等。在以往的Astar、JPS算法中,控制量简单化了,即机器人类似为质点,可以随意运动,控制量为4方向或者8方向运动。
在这里插入图片描述
Reverse direction:在状态空间(state space)中进行采样,将状态空间进行离散,找一条从当前状态到某一状态的可行的运动连接

例如:在前一章的RRT算法中,将机器人简单考虑成质点,不考虑机器人的动力学约束,此时机器人的状态就是 ( x , y ) (x,y) (x,y),我们不段采样环境中的 ( x , y ) (x,y) (x,y),用于反算寻找路径。
在这里插入图片描述

2.1 控制空间采样

控制空间属于前向积分,通过选择一个输入 u u u(比如油门、方向盘)等,保持一段时间 T T T后,所处的状态就是机器人下次可能出现的状态。这种方式缺乏任务导向,规划效率并不高(并不是速度不快)。
在这里插入图片描述
举个例子:

对于一个无人机机器人状态模型
s ˙ = f ( s , u ) = A ∙ s + B ∙ u 状 态 量 : s = ( x y z x ˙ y ˙ z ˙ ) 输 入 量 : u = ( x ¨ y ¨ z ¨ ) \dot s = f(s,u) = A \bullet s + B \bullet u \\ 状态量: s = \left( {\begin{matrix} x\\ y\\ z\\ {\dot x}\\ {\dot y}\\ {\dot z} \end{matrix}} \right) \\ 输入量: u = \left( {\begin{matrix} {\ddot x}\\ {\ddot y}\\ {\ddot z} \end{matrix}} \right) s˙=f(s,u)=As+Bus=xyzx˙y˙z˙u=x¨y¨z¨

其中状态量 s s s为无人机三轴的位置和速度信息,输入量 u u u为无人机三轴的加速度。

当三轴的速度初始值 v 0 = ( v 0 x , v 0 y , v 0 z ) = ( 1 , 0 , 0 ) T v_0=(v_0^{x},v_0^{y},v_0^{z})=(1,0,0)^{T} v0=(v0x,v0y,v0z)=(1,0,0)T时,经过不同的输入量 u = ( a x , a y , a z ) T u=(a_x,a_y,a_z)^T u=(ax,ay,az)T,一段时间 t t t后,无人机新的状态 s 1 = ( x , y , z , x ˙ , y ˙ , z ˙ ) = ( p 1 x , p 1 y , p 1 z , v 1 x , v 1 y , v 1 z ) s_1=(x,y,z,\dot x,\dot y,\dot z)=(p_1^{x},p_1^{y},p_1^{z},v_1^{x},v_1^{y},v_1^{z}) s1=(x,y,z,x˙,y˙,z˙)=(p1x,p1y,p1z,v1x,v1y,v1z)
p 1 x = p 0 x + v 0 x × t + 1 2 × a x × t 2 p 1 y = p 0 y + v 0 y × t + 1 2 × a y × t 2 p 1 z = p 0 z + v 0 z × t + 1 2 × a z × t 2 v 1 x = v 0 x + a x × t v 1 y = v 0 y + a y × t v 1 z = v 0 z + a z × t p_1^{x}=p_0^{x}+v_0^{x}\times t+\frac{1}{2} \times a_x \times t^2\\ p_1^{y}=p_0^{y}+v_0^{y}\times t+\frac{1}{2} \times a_y \times t^2\\ p_1^{z}=p_0^{z}+v_0^{z}\times t+\frac{1}{2} \times a_z \times t^2\\ v_1^{x}=v_0^{x}+a_x \times t \\ v_1^{y}=v_0^{y}+a_y \times t \\ v_1^{z}=v_0^{z}+a_z \times t \\ p1x=p0x+v0x×t+21×ax×t2p1y=p0y+v0y×t+21×ay×t2p1z=p0z+v0z×t+21×az×t2v1x=v0x+ax×tv1y=v0y+ay×tv1z=v0z+az×t
注意:上述变量中初变量 s 0 = ( p 0 x , p 0 y , p 0 z , v 0 x , v 0 y , v 0 z ) s_0=(p_0^{x},p_0^{y},p_0^{z},v_0^{x},v_0^{y},v_0^{z}) s0=(p0x,p0y,p0z,v0x,v0y,v0z)、时间 t t t固定已知,输入变量 u u u未知,为了方便显示,将三维将为二维,将输入量 u u u(加速度)进行9等分,则生成以下曲线图,不同曲线输入变量 u u u不同,同一条曲线在 [ 0 , t ] [0,t] [0,t]时间内呈现二次曲线特征。
在这里插入图片描述
类似的若输入量为jerk(对加速度进行求导),且同时进行9等分,则生成以下三次曲线图
在这里插入图片描述
通过无人机状态模型,则系数矩阵A和B表示为
A = [ 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ] B = [ 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 ] A = \left[ {\begin{matrix} 0&0&0&1&0&0\\ 0&0&0&0&1&0\\ 0&0&0&0&0&1\\ 0&0&0&0&0&0\\ 0&0&0&0&0&0\\ 0&0&0&0&0&0 \end{matrix}} \right] \\ B = \left[ {\begin{matrix} 0&0&0\\ 0&0&0\\ 0&0&0\\ 1&0&0\\ 0&1&0\\ 0&0&1 \end{matrix}} \right] A=000000000000000000100000010000001000B=000100000010000001
其中系数矩阵A为幂零矩阵(nilpotnet),它的高次幂会在某次变成零。

通过零状态响应 F ( t ) F(t) F(t)和零输入响应 G ( t ) G(t) G(t)得出
s ( t ) = e A t × s 0 ⏟ F ( t ) + [ ∫ 0 t e A ( t − σ ) B d σ ] × u m ⏟ G ( t ) s(t) = \underbrace {{e^{At}} \times {s_0}}_{F(t)} + \underbrace {[\int_0^t {{e^{A(t - \sigma )}}Bd\sigma } ] \times {u_m}}_{G(t)} s(t)=F(t) eAt×s0+G(t) [0teA(tσ)Bdσ]×um
将状态转移矩阵 e A t e^{At} eAt进行泰勒公式展开得:
e A t = I + A t 1 ! + ( A t ) 2 2 ! + ( A t ) 3 3 ! + . . . + ( A t ) k k ! + . . . e^{At}=I+\frac{At}{1!}+\frac {(At)^2}{2!}+\frac {(At)^3}{3!}+...+\frac{(At)^k}{k!}+... eAt=I+1!At+2!(At)2+3!(At)3+...+k!(At)k+...
如果A矩阵是一个普通的矩阵,那么状态转移矩阵求解就变得很困难,好就好在A为幂零矩阵,可以充分利用它的**“高次幂在某次会变为零”**这个性质。

最后给出在状态空间采样的lattice graph的图片
在这里插入图片描述

2.2 状态空间采样

状态空间采样属于后项积分,通过反算输入量 u u u和时间 T T T,以得到一条符合动力学约束,且连接起点和某一点的轨迹。该采样具有任务导向,规划效率高,但是通过两点状态,计算输入量 u u u和时间 T T T比较困难和复杂。因此有时为了简化计算过程,只计算输入变量 u u u,时间 T T T固定。
在这里插入图片描述
状态空间采样的lattice graph如下图
在这里插入图片描述
关于如何仅通过两点状态,来得到最优的输入量 u u u和时间 T T T,请见下一章的OBVP原理讲解。

注意:
上述图片均来自深蓝学院的路径规划课程,转载请注明出处。

  • 5
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
基于旗鱼优化的机器人路径规划算法是一种启发式算法,用于解决机器人在给定环境中的路径规划问题。该算法借鉴了旗鱼捕食行为中的优化策略,通过模拟旗鱼的搜索和追逐目标的行为来寻找最优路径。 以下是基于旗鱼优化的机器人路径规划算法的基本步骤: 1. 环境建模:将机器人运动的环境进行建模,包括地图或场景的表示。可以使用网格地图或连续空间表示,根据具体情况选择合适的表示方法。 2. 目标和约束定义:定义机器人的起始位置和目标位置,同时考虑可能存在的障碍物或其他约束条件。 3. 旗鱼优化算法初始化:初始化旗鱼群体的位置和速度。每个旗鱼在环境中被视为一个解决方案,并具有一个适应度值来评估其优劣。 4. 旗鱼行为模拟:模拟旗鱼的行为,包括搜索和追逐目标。每个旗鱼根据其当前位置和速度,以及周围环境信息来决定下一步的移动方向和速度。 5. 适应度评估:根据机器人在环境中的位置和路径,计算适应度值。适应度值可以考虑路径长度、避障能力、平滑性等因素。 6. 更新旗鱼位置:根据旗鱼的当前位置和速度,更新其下一步的位置。可以使用旗鱼优化算法中的迭代公式来更新位置。 7. 终止条件判断:根据预设的终止条件(如达到最大迭代次数或满足特定目标),判断是否结束算法。如果未满足终止条件,则返回步骤4;否则,进入下一步。 8. 最优路径提取:从旗鱼群体中选择适应度最好的旗鱼作为最优路径解决方案。 基于旗鱼优化的机器人路径规划算法可以帮助机器人在复杂环境中高效地规划路径,同时考虑了避障和路径优化的问题。然而,该算法的性能也受到参数设置和环境建模的影响,需要根据具体场景进行调整和优化。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值