移动机器人的运动学模型:车式移动机器人

车式移动机器人运动学模型

问题

车式移动机器人更具有普遍意义。
在这里插入图片描述

参数
  • v v v:机器人自身线速度
  • ω \omega ω:前轮转向角速度
  • u \textbf{u} u:输入,包括 v v v ω \omega ω
  • q ˙ \dot{\textbf{q}} q˙:机器人在环境中的位姿描述
  • θ \theta θ:机器人纵向轴与x轴之间的夹脚
  • ϕ \phi ϕ:前轮转角
  • L L L:车身长度
推导1

当知道机器人自身前进速度前轮转角角速度时,求机器人在环境中的位姿。

q ˙ \dot{\textbf{q}} q˙= f ( u ) f(\textbf{u}) f(u)

定义机器人在环境中位姿:
q = [ x y θ ϕ ] \textbf{q}=\left [ \begin{aligned} x \\ y \\ \theta \\ \phi \end{aligned} \right] q=xyθϕ
机器人输入,包括自身线速度和前轮转角角速度:
u = [ v ω ] \textbf{u}=\left [ \begin{aligned} v \\ \omega \\ \end{aligned} \right] u=[vω]

x ˙ = cos ⁡ ( θ ) v y ˙ = sin ⁡ ( θ ) v ϕ ˙ = ω \begin{aligned} \dot{x} &= \cos(\theta) v \\ \dot{y} &= \sin(\theta) v\\ \dot{\phi} &= \omega \end{aligned} x˙y˙ϕ˙=cos(θ)v=sin(θ)v=ω
对与计算角速度可以参照下图(其他地方扣过来的,注意符号使用不太一样)
在这里插入图片描述
就有了 θ ˙ = tan ⁡ ϕ L v \dot{\theta} = \frac{\tan\phi}{L} v θ˙=Ltanϕv
那么,
q ˙ = [ cos ⁡ ( θ ) 0 sin ⁡ ( θ ) 0 tan ⁡ ϕ L 0 0 1 ] u \dot{\textbf{q}}= \begin{aligned} \begin{bmatrix} \cos(\theta) & 0 \\ \sin(\theta) & 0 \\ \frac{\tan\phi}{L} & 0 \\ 0 & 1 \end{bmatrix} \end{aligned} \textbf{u} q˙=cos(θ)sin(θ)Ltanϕ00001u
更详细的,即:
[ x ˙ y ˙ θ ˙ ϕ ˙ ] = [ cos ⁡ ( θ ) 0 sin ⁡ ( θ ) 0 tan ⁡ ϕ L 0 0 1 ] [ v ω ] \left [ \begin{aligned} \dot{x} \\ \dot{y} \\ \dot{\theta} \\ \dot{\phi} \end{aligned} \right]= \begin{aligned} \begin{bmatrix} \cos(\theta) & 0 \\ \sin(\theta) & 0 \\ \frac{\tan\phi}{L} & 0 \\ 0 & 1 \end{bmatrix} \end{aligned} \left [ \begin{aligned} v \\ \omega \\ \end{aligned} \right] x˙y˙θ˙ϕ˙=cos(θ)sin(θ)Ltanϕ00001[vω]

推导2

另一种情况是,知道机器人的前轮转角角度(即方向盘角度)和加速度(即油门),想要求机器人的状态。

  • v v v:机器人自身线速度(前进速度)
  • θ \theta θ:机器人纵向轴与x轴之间的夹脚
  • u \textbf{u} u:输入,包括 v v v θ \theta θ
  • q ˙ \dot{\textbf{q}} q˙:机器人在环境中的位姿描述
  • ϕ \phi ϕ:前轮转角
  • L L L:车身长度
    机器人的状态
    q = [ x y θ v ] T \textbf{q}=\left [ \begin{aligned} x \\ y \\ \theta \\ v \end{aligned} \right]^T q=xyθvT
    机器人输入,包括(油门)加速度和(方向盘)前轮转角:
    u = [ a ϕ ] \textbf{u}=\left [ \begin{aligned} a \\ \phi \\ \end{aligned} \right] u=[aϕ]
    那么,
    x ˙ = v ∗ cos ⁡ ( θ ) y ˙ = v ∗ sin ⁡ ( θ ) θ ˙ = v ∗ tan ⁡ ( ϕ ) / L v ˙ = a \begin{aligned} \dot{x} &= v * \cos (\theta)\\ \dot{y} &= v * \sin (\theta)\\ \dot{\theta} &= v * \tan(\phi) / L \\ \dot{v} &= a \end{aligned} x˙y˙θ˙v˙=vcos(θ)=vsin(θ)=vtan(ϕ)/L=a
    更进一步单步更新可以表示为:
    x t + 1 = x t + v ∗ cos ⁡ ( θ ) ∗ d t y t + 1 = y t + v ∗ sin ⁡ ( θ ) ∗ d t θ t + 1 = θ t + v ∗ tan ⁡ ( ϕ ) / L ∗ d t v t + 1 = v t + a ∗ d t \begin{aligned} x_{t+1} &= x_{t} + v * \cos (\theta) * dt\\ y_{t+1} &= y_{t} + v * \sin (\theta)* dt\\ \theta_{t+1} &= \theta_{t} + v * \tan(\phi) / L*dt\\ v_{t+1} &= v_{t} + a * dt \end{aligned} xt+1yt+1θt+1vt+1=xt+vcos(θ)dt=yt+vsin(θ)dt=θt+vtan(ϕ)/Ldt=vt+adt

Reference

  • 1
    点赞
  • 47
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值