了解有关移动机器人运动学方程的详细信息,包括独轮车、自行车、差速驱动和阿克曼模型。本主题涵盖了每个运动模型的变量和具体方程[1]。有关使用这些模型模拟不同移动机器人的示例。
变量概述
机器人状态表示为三元向量。
对于给定的机器人状态:
: 全局车辆
位置(单位:米)
: 全局车辆
位置(单位:米)
: 全局车辆航向 (弧度)
对于阿克曼运动学,状态还包括转向角度:
: 车辆转向角(弧度)
独轮车、自行车和差速驱动模型共享通用控制输入,该输入接受以下内容:
: 车辆速度(米/秒)
: 车辆角速度(弧度/秒)
运动学方程中表示的其他变量包括:
: 车轮半径(米)
:车轮速度(弧度/秒)
: 轨道宽度(米)
: 轴距(米)
: 车辆转向角(弧度)
独轮车运动学
独轮车运动学方程使用 unicycleKinematics 对象对围绕中心轴转动的单个滚动车轮进行建模。
独轮车模型状态为。
变量
: 全局车辆
位置(单位:米)
: 全局车辆
位置(单位:米)
: 全局车辆航向 (弧度)
:车轮速度(弧度/秒)
: 车轮半径(米)
: 车辆速度(米/秒)
: 车辆角速度(弧度/秒)
运动学方程
根据 VehicleInputs name-value 参数的不同,可以只输入车轮速度,也可以输入车速和航向率。输入的这种变化会影响方程式。
车轮速度方程式
车辆速度和转向率公式(通用)
当,车辆航向角速度为
。方程可以化简为:
自行车运动学
自行车运动学方程模拟的是一辆类似汽车的车辆,它使用 bicycleKinematics 对象将前转向角作为控制输入。
自行车模型状态为。
变量
: 全局车辆
位置(单位:米)
: 全局车辆
位置(单位:米)
: 全局车辆航向 (弧度)
: 轴距(米)
: 车辆转向角(弧度)
: 车辆速度(米/秒)
: 车辆角速度(弧度/秒)
运动学方程
根据 VehicleInputs name-value 参数,您可以将车速输入为转向角或航向率。输入的这种变化会影响方程式。
转向角方程式
车速和航向率方程(广义)
航向角与转向角的关系为,然后方程可以化简为:
差速器驱动运动学
差速驱动运动学方程对车辆进行建模,其中左右两侧的车轮可以使用differentialDriveKinematics对象独立旋转。
差速器驱动模型状态为。
变量
: 全局车辆
位置(单位:米)
: 全局车辆
位置(单位:米)
: 全局车辆航向 (弧度)
:左轮速度(米/秒)
:右轮速度(米/秒)
: 车轮半径(米)
: 轨道宽度(米)
: 车辆速度(米/秒)
: 车辆角速度(弧度/秒)
运动学方程
根据VehicleInputs name value参数,您可以将车轮速度输入为转向角或航向角。输入的这种变化会影响方程式。
车轮速度方程式
车速和航向角方程(广义)
,
。方程可以化简为:
阿克曼运动学
阿克曼运动学方程使用ackermannKinematics 对象对具有阿克曼转向机构的类车车辆模型进行建模。该方程式根据轮距调整车桥轮胎的位置,使轮胎遵循同心圆。从数学上讲,这意味着输入必须是转向航向角速度,并且没有通用格式。
差速驱动模型状态为。
变量
: 全局车辆
位置(单位:米)
: 全局车辆
位置(单位:米)
: 全局车辆航向 (弧度)
: 车辆转向角(弧度)
: 轴距(米)
: 车辆速度(米/秒)
运动学方程
对于Ackermann运动学模型,ODE为:
参考文献
[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)