Open Source Robotics

精选高质量开源机器人项目、工具和软件,推动机器人社区发展。

Bicycle model

  • 又称: single-track model
  • 类别: Foundations & spatial maths › Kinematics
  • 标签: vehicle-dynamics, kinematics, autonomous-driving, mobile-robots, car-like-robots

一种平面车辆模型,把每根车轴的两个车轮合并成中心线上的一个车轮,从而为类车机器人带转向的运动给出一个简单模型,其动力学形式还包含轮胎力。

定义

自行车模型(bicycle model),也称单轨模型(single-track model),通过把每根车轴的左右车轮合并成位于车辆中心线上的单个车轮,来描述一辆在平面内运动的四轮车辆。得到的模型看起来就像一辆自行车:一个可转向的前轮和一个固定的后轮,二者相隔一个轴距。它忽略了侧倾、俯仰、悬架以及左右轮胎之间的差异,但保留了对路径跟踪最重要的几何关系:类车车辆必须通过转向来转弯,其转弯半径取决于转向角和轴距,而且它不能随意横向移动。

该模型有两种常见形式。运动学自行车模型假定每个车轮都在无侧向滑移的情况下滚动,因此每个车轮的速度都沿其朝向。它的状态是位置、航向和速度,输入是转向角和加速度;以后轴为参考点时,横摆角速度等于速度乘以转向角的正切再除以轴距。它在低速和中等侧向加速度下效果良好。动力学自行车模型加入了车辆的质量、横摆转动惯量以及质心到各车轴的距离,并根据每根车轴的轮胎侧偏角,通过线性侧偏刚度模型或 Pacejka 魔术公式等非线性轮胎模型来计算轮胎侧向力。当轮胎接近其附着极限时,例如在紧急操纵、赛车或漂移中,就需要这种模型。

自行车模型介于更简单和更丰富的车辆模型之间。独轮车模型直接指令前进速度和横摆角速度,没有转向几何,也没有最小转弯半径。Dubins 车是一种规划抽象:以恒定速度前进、曲率有界,这正是运动学自行车模型在恒定速度和转向限制下所变成的样子。当自行车模型把左右轮胎合并处理显得过于粗糙时,就会使用包含载荷转移、悬架和各轮胎独立受力的四轮模型。

为何重要

几乎每一辆自动驾驶汽车、每一台阿克曼转向移动机器人和小尺度赛车平台,都在其规划器、控制器或状态估计器中使用某种形式的自行车模型。它足够简单,能以高频率在模型预测控制中运行,同时又能刻画转向限制,在其动力学形式中还能刻画轮胎饱和。

主要应用

  • 自动驾驶汽车和赛车的模型预测控制
  • 纯追踪和 Stanley 型转向律等路径跟踪控制器
  • 阿克曼转向移动机器人的轨迹规划
  • 车辆状态估计,包括质心侧偏角估计
  • 漂移和极限操控控制

实际应用

一个团队为一辆小尺度自动驾驶赛车构建模型预测控制器。在低速时,他们使用运动学自行车模型,轴距在车上实测,转向限制取自舵机的行程,用来在较短的预测时域内预测路径。随着圈速提高,赛车开始在弯道中转向不足,运动学预测出现偏差,于是他们改用动力学自行车模型。他们根据记录的行驶数据辨识质量、横摆转动惯量、车轴距离和轮胎侧偏刚度,然后先检查预测的横摆角速度和侧向加速度是否与 IMU 的测量值一致,再调整控制器。

常见误解

  • 自行车模型只适用于自行车 — 它是四轮类车车辆的模型,其中每根车轴被合并为一个车轮
  • 运动学自行车模型在任何速度下都成立 — 它假定轮胎没有滑移,随着侧向加速度增大会变得不准确;在附着极限附近需要包含轮胎力的动力学版本
  • 自行车模型与独轮车模型是一回事 — 独轮车模型直接指令横摆角速度,而自行车模型通过转向几何转弯,存在最小转弯半径

谁需要了解

  • 自动驾驶和车辆控制工程师
  • 使用阿克曼转向的移动机器人开发人员
  • 研究类车机器人的运动规划研究人员
  • 制作小尺度自动驾驶赛车的学生和创客

相关技术

  • 阿克曼转向(Ackermann Steering)
  • Pacejka 魔术公式(Pacejka Magic Formula)
  • 纯追踪(Pure Pursuit)
  • 模型预测控制(Model Predictive Control)
  • Reeds-Shepp 曲线(Reeds-Shepp Curves)

相关术语

  • Unicycle Model
  • Dubins Car
  • Nonholonomic Constraint
  • Tire slip angle
  • Model Predictive Control

相关项目

  • MoveIt 2: Motion planning framework for ROS 2 robot arms, with kinematics and collision checking
  • PyRoki: Modular Python toolkit for kinematic optimization across CPU, GPU, and TPU via JAX
  • DART: C++ physics engine for articulated rigid body dynamics and robotics simulation
  • MOLA: Modular C++/ROS 2 framework for LiDAR odometry, SLAM, and localization
  • IKPy: Pure-Python inverse kinematics library that builds chains straight from URDF
  • Vision Pilot: Autoware Foundation's open-source L2 ADAS stack from a single camera

视频

  • Self-Driving Cars - Lecture 5.2 (Vehicle Dynamics: Kinematic Bicycle Model): Tübingen Machine Learning
  • Self-Driving Cars - Lecture 5.4 (Vehicle Dynamics: Dynamic Bicycle Model): Tübingen Machine Learning

本网站需要 JavaScript 才能正常运行。请启用 JavaScript 以浏览我们的开源机器人项目。