移动机器人运动学方程

了解有关移动机器人运动学方程的详细信息,包括独轮车、自行车、差速驱动和阿克曼模型。本主题涵盖了每个运动模型的变量和具体方程[1]。有关使用这些模型模拟不同移动机器人的示例。

变量概述

机器人状态表示为三元向量[x\ y\ \theta]

对于给定的机器人状态:
        x: 全局车辆x位置(单位:米)
        y: 全局车辆y位置(单位:米)
        \theta: 全局车辆航向   (弧度)
对于阿克曼运动学,状态还包括转向角度:
       \psi: 车辆转向角(弧度)

独轮车、自行车和差速驱动模型共享通用控制输入,该输入接受以下内容:

       v: 车辆速度(米/秒)
       \omega: 车辆角速度(弧度/秒)     
运动学方程中表示的其他变量包括:
       r: 车轮半径(米)
      \dot{\phi}:车轮速度(弧度/秒)
      d: 轨道宽度(米)
       l: 轴距(米)
     \psi: 车辆转向角(弧度)

独轮车运动学

独轮车运动学方程使用 unicycleKinematics 对象对围绕中心轴转动的单个滚动车轮进行建模。

 独轮车模型状态为[x\ y\ \theta]

变量

        x: 全局车辆x位置(单位:米)
        y: 全局车辆y位置(单位:米)
        \theta: 全局车辆航向   (弧度)

       \dot{\phi}:车轮速度(弧度/秒)

       r: 车轮半径(米)
       v: 车辆速度(米/秒)
       \omega: 车辆角速度(弧度/秒) 

运动学方程

根据 VehicleInputs name-value 参数的不同,可以只输入车轮速度,也可以输入车速和航向率。输入的这种变化会影响方程式。

车轮速度方程式

\left[ \begin{array}{cc} \dot{x} \\ \dot{y} \\ \dot{\theta} \\ \end{array} \right] = \left[ \begin{array}{cc} r \cos(\theta) & 0 \\ r \sin(\theta) & 0 \\ 0 & 1 \\ \end{array} \right] \left[ \begin{array}{cc} \dot{\phi} \\ \omega \end{array} \right]

车辆速度和转向率公式(通用)

v=r\dot{\phi},车辆航向角速度为\omega。方程可以化简为:

\left[ \begin{array}{cc} \dot{x} \\ \dot{y} \\ \dot{\theta} \\ \end{array} \right] = \left[ \begin{array}{cc} \cos(\theta) & 0 \\ \sin(\theta) & 0 \\ 0 & 1 \\ \end{array} \right] \left[ \begin{array}{cc} v \\ \omega \end{array} \right]

自行车运动学

自行车运动学方程模拟的是一辆类似汽车的车辆,它使用 bicycleKinematics 对象将前转向角作为控制输入。

 自行车模型状态为[x\ y\ \theta]

变量

        x: 全局车辆x位置(单位:米)
        y: 全局车辆y位置(单位:米)
        \theta: 全局车辆航向   (弧度)

        l: 轴距(米)

      \psi: 车辆转向角(弧度)

       v: 车辆速度(米/秒)
       \omega: 车辆角速度(弧度/秒)    

运动学方程

根据 VehicleInputs name-value 参数,您可以将车速输入为转向角或航向率。输入的这种变化会影响方程式。

转向角方程式

\left[ \begin{array}{cc} \dot{x} \\ \dot{y} \\ \dot{\theta} \\ \end{array} \right] = \left[ \begin{array}{cc} cos(\theta) & 0\\ sin(\theta) & 0\\ \frac{\tan(\psi)}{l} & 1\\ \end{array} \right] \left[ \begin{array}{cc} v \\ \omega \end{array} \right]

车速和航向率方程(广义)

航向角与转向角的关系为\omega = \frac{v}{l}\tan{\psi},然后方程可以化简为:

\left[ \begin{array}{cc} \dot{x} \\ \dot{y} \\ \dot{\theta} \\ \end{array} \right] = \left[ \begin{array}{cc} \cos(\theta) & 0 \\ \sin(\theta) & 0 \\ 0 & 1 \\ \end{array} \right] \left[ \begin{array}{cc} v \\ \omega \end{array} \right]

差速器驱动运动学

差速驱动运动学方程对车辆进行建模,其中左右两侧的车轮可以使用differentialDriveKinematics对象独立旋转。

差速器驱动模型状态为[x\ y\ \theta]

变量

        x: 全局车辆x位置(单位:米)
        y: 全局车辆y位置(单位:米)
        \theta: 全局车辆航向   (弧度)

     \dot{\phi}_L:左轮速度(米/秒)

     \dot{\phi}_R:右轮速度(米/秒)

        r: 车轮半径(米)

       d: 轨道宽度(米)

       v: 车辆速度(米/秒)
       \omega: 车辆角速度(弧度/秒)

运动学方程

根据VehicleInputs name value参数,您可以将车轮速度输入为转向角或航向角。输入的这种变化会影响方程式。

车轮速度方程式

\left[ \begin{array}{cc} \dot{x} \\ \dot{y} \\ \dot{\theta} \\ \end{array} \right] = \left[ \begin{array}{cc} \frac{r}{2} \cos(\theta) & \frac{r}{2} \cos(\theta) \\ \frac{r}{2} \sin(\theta) & \frac{r}{2} \sin(\theta) \\ -r/2d & r/2d \\ \end{array} \right] \left[ \begin{array}{cc} \dot{\phi}_L \\ \dot{\phi}_R \end{array} \right]

车速和航向角方程(广义)

v = \frac{r}{2}\left(\dot{\phi}_R + \dot{\phi}_L\right),   \omega = \frac{r}{2d}\left(\dot{\phi}_R - \dot{\phi}_L\right)。方程可以化简为:

\left[ \begin{array}{cc} \dot{x} \\ \dot{y} \\ \dot{\theta} \\ \end{array} \right] = \left[ \begin{array}{cc} \cos(\theta) & 0 \\ \sin(\theta) & 0 \\ 0 & 1 \\ \end{array} \right] \left[ \begin{array}{cc} v \\ \omega \end{array} \right]

阿克曼运动学

阿克曼运动学方程使用ackermannKinematics 对象对具有阿克曼转向机构的类车车辆模型进行建模。该方程式根据轮距调整车桥轮胎的位置,使轮胎遵循同心圆。从数学上讲,这意味着输入必须是转向航向角速度\dot{\psi},并且没有通用格式。

 差速驱动模型状态为[x\ y\ \theta\ \psi]

变量

        x: 全局车辆x位置(单位:米)
        y: 全局车辆y位置(单位:米)
        \theta: 全局车辆航向   (弧度)
       \psi: 车辆转向角(弧度)
         l: 轴距(米)
        v: 车辆速度(米/秒)


运动学方程


对于Ackermann运动学模型,ODE为:

\left[ \begin{array}{cc} \dot{x} \\ \dot{y} \\ \dot{\theta} \\ \dot{\psi} \\ \end{array} \right] = \left[ \begin{array}{cc} \cos(\theta) & 0 \\ \sin(\theta) & 0 \\ \tan(\psi)/l & 0 \\ 0 & 1 \\ \end{array} \right] \left[ \begin{array}{cc} v \\ \dot{\psi} \end{array} \right]

参考文献

[1] Lynch, Kevin M., and Frank C. Park. Modern Robotics: Mechanics, Planning, and Control. Cambridge University Press, 2017.

Mobile Robot Kinematics Equations - MATLAB & Simulink (mathworks.com)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值