无人车底盘

差速 全向 阿克曼

Posted by LXG on July 15, 2026

Differential Drive(差速驱动)运动学模型

差速底盘结构


             x(车体前进方向)
                  ↑
                  │
        左轮      │      右轮
      ┌──────┐   │   ┌──────┐
      │WheelL│   │   │WheelR│
      └──────┘   │   └──────┘
            <---- L ---->

        O (机器人中心)

其中:

  • 左轮速度:v_L
  • 右轮速度:v_R
  • 两轮中心距离:L(Wheel Base)
  • 轮半径:r

机器人在世界坐标系中的状态表示为:

\[(x,\;y,\;\theta)\]

其中:

  • x:世界坐标 X
  • y:世界坐标 Y
  • θ:机器人航向角(Heading)

轮速与机器人速度关系-正运动学

这是控制器最常用的公式。

假设左右轮线速度分别为:

\[v_L,\quad v_R\]

那么机器人整体的线速度为:

\[v=\frac{v_R+v_L}{2}\]

机器人角速度为:

\[\omega=\frac{v_R-v_L}{L}\]

因此:

\[\boxed{ \begin{aligned} v &= \frac{v_R+v_L}{2}\\ \omega &= \frac{v_R-v_L}{L} \end{aligned} }\]

这就是正运动学(Forward Kinematics)

机器人运动方程

机器人当前位姿:

\[(x,y,\theta)\]

运动学微分方程为:

\[\boxed{ \begin{aligned} \dot x &= v\cos\theta\\ \dot y &= v\sin\theta\\ \dot\theta &= \omega \end{aligned} }\]

将轮速代入,可得到完整运动学模型:

\[\boxed{ \begin{aligned} \dot x &= \frac{v_R+v_L}{2}\cos\theta\\ \\ \dot y &= \frac{v_R+v_L}{2}\sin\theta\\ \\ \dot\theta &= \frac{v_R-v_L}{L} \end{aligned} }\]

这就是经典 Differential Drive Model。

  • $\dot{x}$:机器人在水平方向($X$ 轴)的速度分量。
  • $\dot{y}$:机器人在竖直方向($Y$ 轴)的速度分量。
  • $\dot{\theta}$(即 $\omega$):机器人的旋转角速度(偏航角的变化率)。

逆运动学

ROS2 控制器发送的是:

cmd_vel

linear.x
angular.z

也就是:

  • 线速度 v
  • 角速度 ω

但电机真正需要的是左右轮速度,因此需要进行逆运动学计算

\[\boxed{ \begin{aligned} v_L &= v-\frac{L}{2}\omega\\ \\ v_R &= v+\frac{L}{2}\omega \end{aligned} }\]

例如:

cmd_vel

linear.x = 1.0
angular.z = 0.5

若:

L = 0.4 m

计算得到:

左轮:

\[v_L=1-0.1=0.9m/s\]

右轮:

\[v_R=1+0.1=1.1m/s\]

控制器只需要将两个目标速度发送给左右轮即可。

电机 RPM 与线速度转换

RPM 是 Revolutions Per Minute(每分钟转数)的缩写,它是一个转速单位,表示某个旋转物体在一分钟内绕自身轴转了多少圈

轮毂电机通常反馈的是:

RPM(转/分钟)

需要转换成线速度。

轮子的角速度:

\[\omega=\frac{2\pi n}{60}\]

其中:

  • n 为 RPM

线速度:

\[v=\omega r\]

因此:

\[\boxed{ v=\frac{2\pi r n}{60} }\]

例如:

轮径 D = 0.20 m

半径:

r = 0.10 m

电机:

100 RPM

计算:

\[v = \frac{2\pi\times0.1\times100}{60} = 1.047m/s\]

ROS2 控制链路

             Nav2
               │
               ▼
      geometry_msgs/Twist
      linear.x
      angular.z
               │
               ▼
    Diff Drive Controller
               │
        (逆运动学)
               ▼
     左轮目标速度   右轮目标速度
               │
               ▼
         PID速度闭环
               │
               ▼
          轮毂电机驱动
               │
               ▼
          编码器反馈(霍尔传感器反馈)
               │
               ▼
              Odom

有编码器和只有霍尔的区别

编码器方案


               电机
              │
              ▼
              编码器
              │
         高精度角度反馈
              │
              ▼
          里程计 Odom

编码器可以知道:

  • 转过多少角度
  • 累计位移
  • 速度
  • 方向

霍尔方案


               电机
              │
              ▼
          三相霍尔传感器
              │
              ▼
            电机控制器

霍尔主要作用:

  • BLDC换相
  • 检测转速
  • 判断方向

但是:

它通常不能精确知道转角。

三相霍尔轮毂电机详细介绍

三相霍尔轮毂电机(Three-phase Hall BLDC Hub Motor)是无人车、AGV、电动车、小型机器人中非常常见的一种驱动方案。

它本质上是:

把无刷直流电机(BLDC)+ 减速结构(部分型号)+ 车轮 + 霍尔位置传感器集成在一个轮子里面。

对于你的园区配送无人车(100kg级、ROS2差速底盘),轮毂电机是一个非常合适的方案。

结构组成


              轮胎
        ┌────────────┐
        │            │
        │   转子     │
        │ 永磁磁钢   │
        │            │
        │ ┌────────┐ │
        │ │ 定子   │ │
        │ │ 三相线圈│ │
        │ └────────┘ │
        │            │
        └────────────┘

              │
              │
          霍尔传感器

              │

        BLDC电机控制器

部件 作用
永磁转子 产生旋转磁场
三相定子绕组 产生电磁力
霍尔传感器 检测转子位置
电机控制器 控制三相电流
轮胎 输出机械运动

接线

BLDC电机控制器与三相霍尔轮毂电机接线详解

三相霍尔轮毂电机和 BLDC 控制器之间通常通过两组线连接:

三根粗动力线(三相线) 五根霍尔信号线

整体关系:


        BLDC电机控制器

          ┌───────────┐
          │           │
          │  MOS驱动  │
          │           │
          └───────────┘
              │
      ┌───────┴────────┐
      │                │

   三相动力线       霍尔信号线

      │                │

   U  V  W        5V GND HA HB HC

      │                │

      ▼                ▼

 ┌────────────────────────┐
 │                        │
 │    三相霍尔轮毂电机     │
 │                        │
 │  U  V  W     Hall     │
 │                        │
 └────────────────────────┘

动力线


        电池

          |
          |
     MOSFET三相桥

          |
     ┌────┼────┐
     │    │    │

     U    V    W

          |
        电机

MOS管不断切换电流方向形成旋转磁场。

三相六步换相过程

six_step_commutation


┌───────┬────────────┬─────────────┐
│ 步骤   │ 导通相      │ Hall状态    │
├───────┼────────────┼─────────────┤
│ Step1 │ U+ → V-    │ 001         │
│ Step2 │ U+ → W-    │ 101         │
│ Step3 │ V+ → W-    │ 100         │
│ Step4 │ V+ → U-    │ 110         │
│ Step5 │ W+ → U-    │ 010         │
│ Step6 │ W+ → V-    │ 011         │
└───────┴────────────┴─────────────┘

霍尔在里面做什么?

控制器需要知道:转子现在在哪里?

否则不知道下一步给哪个绕组通电。

霍尔反馈:


读取Hall

  ↓

判断转子位置

  ↓

选择MOS管开关组合

  ↓

改变U/V/W电流方向

  ↓

产生旋转磁场

  ↓

转子跟随旋转