惯性测量单元(IMU,Inertial Measurement Unit)
机器人的惯性测量单元(IMU,Inertial Measurement Unit)是一种用于感知机器人自身运动状态的传感器,主要测量机器人的:
- 加速度(Acceleration)
- 角速度(Angular Velocity)
- 磁场方向(Magnetometer)
| 传感器 | 测量量 | 作用 |
|---|---|---|
| 三轴加速度计 | X/Y/Z 方向线加速度 | 感知平移运动、重力方向 |
| 三轴陀螺仪 | X/Y/Z 轴角速度 | 感知旋转 |
| 三轴磁力计(可选) | 地磁方向 | 辅助判断航向 |
机器人为什么还需要 IMU?
因为 IMU 有几个巨大优势:
高频率
| 传感器 | 频率 |
|---|---|
| 摄像头 | 30Hz |
| 激光雷达 | 10Hz |
| GPS | 1~10Hz |
| IMU | 100~1000Hz |
不依赖环境
- 摄像头:需要看到东西
- 激光:需要反射
- GPS:室内失效
- IMU:机器人内部自己测量
全球 IMU 芯片供应格局
高性能工业/机器人级
| 公司 | 代表产品 | 定位 |
|---|---|---|
| Analog Devices | ADIS系列 | 工业、高端机器人 |
| STMicroelectronics | LSM6系列 | 工业、消费 |
| Bosch | BMI系列 | 机器人、汽车 |
| TDK InvenSense | ICM系列 | 消费、机器人 |
| Murata Manufacturing | IMU模块 | 工业 |
中国供应链情况
| 公司 | 方向 |
|---|---|
| 美新半导体 | MEMS惯性 |
| 芯动联科 | 高性能MEMS惯性器件 |
| 矽睿科技 | MEMS传感器 |
| 敏芯股份 | MEMS传感器 |
市场价格
| 等级 | 典型 IMU | 芯片/品牌 | 单价范围(人民币) | 应用 |
|---|---|---|---|---|
| 玩具/入门 | MPU6050 | MPU6050 | 5~20 元 | Arduino、小车教学 |
| 入门机器人 | ICM-42688、LSM6系列 | TDK ICM-42688-P | 10~50 元(芯片) | ROS实验、小型机器人 |
| 中端机器人 | BMI088 | Bosch BMI088 | 50~200 元(模块) | AGV、无人车、无人机 |
| 工业机器人 | ADIS16470 | Analog Devices ADIS16470 | 2500~4000 元 | 工业移动机器人 |
| 高端 MEMS | ADIS165xx | Analog Devices ADIS16550 | 5000~8000 元 | 高可靠无人系统 |
| 战术级 IMU | iMAR、KVH、Honeywell | 工业导航级 | 1万~10万元 | 无人车、航空 |
| 导航级 | 光纤陀螺 IMU | Honeywell等 | 10万~百万 | 军工、航空 |
BMI088

立创商城单价:80元
OAK相机
OAK-D系列 + Factor Perception SDK 套装

Factor Perception Kit硬件包括OAK-D系列相机,软件包含Factor Perception SDK。
OAK-D相机输出20 FPS的图像数据及200 Hz的9轴IMU数据。相机内置神经网络加速芯片,可让HF-Net达到20 Hz的推理性能。
Factor-VIO使用HF-Net输出的局部特征与9轴IMU数据,实现高精度和高鲁棒性的视觉惯导里程计。系统还能够生成不同维度的地图,包括2D Map、2.5D Map和3D Map,以适应不同的应用需求。此外,系统还涉及多种坐标转换,以确保数据的一致性和准确性。
Factor Perception Kit通过结合深度学习的视觉和惯性测量单元(IMU)数据,利用Factor-VIO和RTAB-Map技术,实现了高效的,高精度,高环境适应性,高鲁棒性的SLAM(同步定位与地图构建)功能。并且所有的深度学习加速功能在OAK系列相机内置的VPU中完成,无需带强大GPU算力的主控制器。
相机内置IMU和独立IMU区别
| 项目 | OAK-D 内置 IMU | 独立机器人 IMU |
|---|---|---|
| 核心目标 | 帮助视觉 SLAM | 感知机器人自身运动 |
| 服务对象 | Camera / VIO | 整个机器人系统 |
| 典型输出 | Camera Pose | Robot Pose |
| 安装位置 | 相机内部 | 车体中心 |
| 使用方式 | Factor-VIO 内部融合 | EKF/LIO/VIO 多源融合 |
| 典型场景 | 室内VSLAM | AGV、无人车、工业机器人 |
为什么不能简单替代独立 IMU?
| 原因 | OAK-D 内置 IMU 的限制 | 独立机器人 IMU 的优势 | 对机器人影响 |
|---|---|---|---|
| 1. 安装位置不同(外参问题) | IMU 固定在相机内部,测量的是相机运动 | 可安装在机器人质心附近,测量车体真实运动 | 转弯、加减速时位置估计更准确,减少坐标误差 |
| 2. 振动环境不同 | 相机通常安装在顶部,容易受到结构振动影响 | 可安装在减震位置,并针对机器人振动优化 | 提高轮式机器人、AGV、电机环境下稳定性 |
| 3. 温漂和零偏稳定性 | 消费/视觉级 IMU 通常温度补偿能力有限 | 工业 IMU 有温度模型、出厂标定、零偏补偿 | 长时间运行漂移更小,地图和定位更稳定 |
| 4. 多模块共享需求 | 主要服务 OAK-D 自身 VIO | 可以同时提供给 VIO、EKF、LIO、控制系统 | 整车定位架构更统一,方便融合 |
| 5. 高动态运动能力 | 面向相机运动估计,动态范围和抗冲击有限 | 针对高速、振动、冲击设计 | 高速无人车、户外机器人可靠性更高 |
IMU 的 ROS数据格式
lxg@lxg:~/code/xt/gitlab/rtabmap_sim_ws$ ros2 topic info /imu/data
Type: sensor_msgs/msg/Imu
Publisher count: 1
Subscription count: 1
lxg@lxg:~/code/xt/gitlab/rtabmap_sim_ws$ ros2 topic echo /imu/data --once
header:
stamp:
sec: 841
nanosec: 150000000
frame_id: imu_link
orientation:
x: 0.10183535710347644
y: 0.13500032919915794
z: -0.5935394682689227
w: 0.7868388467575625
orientation_covariance:
- 0.0
- 0.0
- 0.0
- 0.0
- 0.0
- 0.0
- 0.0
- 0.0
- 0.0
angular_velocity:
x: -9.48948602207296e-05
y: 1.4777435846821568e-05
z: 3.903990956833951e-05
angular_velocity_covariance:
- 0.0
- 0.0
- 0.0
- 0.0
- 0.0
- 0.0
- 0.0
- 0.0
- 0.0
linear_acceleration:
x: -3.2605459625094686
y: -0.005220726614542285
z: 9.228159450029091
linear_acceleration_covariance:
- 0.0
- 0.0
- 0.0
- 0.0
- 0.0
- 0.0
- 0.0
- 0.0
- 0.0
---
| 参数 | 数值 | 含义 |
|---|---|---|
| 时间 | 841.15s | Gazebo仿真运行时间 |
| 坐标系 | imu_link | IMU安装位置 |
| 姿态 | q=(0.102,0.135,-0.594,0.787) | 机器人有明显旋转 |
| 角速度X | -0.000095 rad/s | 几乎静止 |
| 角速度Y | 0.000015 rad/s | 几乎静止 |
| 角速度Z | 0.000039 rad/s | 几乎静止 |
| 加速度X | -3.26 m/s² | 存在倾斜导致重力投影 |
| 加速度Y | -0.005 m/s² | 接近0 |
| 加速度Z | 9.23 m/s² | 接近重力 |
激光雷达
激光雷达(LiDAR,Light Detection And Ranging)的核心思想非常简单:
发射激光 → 激光遇到物体反射 → 接收回波 → 根据光传播时间计算距离 → 旋转扫描形成环境地图

激光雷达数据结构
LaserScan
├── header
│ ├── timestamp
│ └── frame_id
│
├── angle参数
│
├── range参数
│
├── ranges[]
│
└── intensities[]
lxg@lxg:~/code/xt/gitlab/rtabmap_sim_ws$ ros2 topic echo /scan --once
header:
stamp:
sec: 1774
nanosec: 700000000
frame_id: laser_link
angle_min: -3.1415927410125732 # 360°全扫描
angle_max: 3.1415927410125732
angle_increment: 0.017501909285783768 # 角度分辨率: 每隔约1度测量一个点
time_increment: 0.0
scan_time: 0.0
range_min: 0.11999999731779099 # 最小距离:12cm 近距离盲区
range_max: 12.0 # 最大距离:12m 最大测距
ranges:
- .inf
- .inf # 这个角度方向没有障碍物
- .inf
- .inf
- .inf
- .inf
- .inf
- 2.523970603942871 # 每个角度对应的距离 -180 + 7x1 = -173° 对应距离 2.52m
- 2.4337852001190186
- 2.4216372966766357
- 2.419962167739868
- 2.428184747695923
- 2.4495182037353516
- 2.494112491607666
- .inf
- - -
- .inf
- 8.27077579498291
- 8.23367977142334
- 8.198226928710938
- 8.16444206237793
- 3.5678393840789795
- 3.555220127105713
- 3.543372631072998
- 3.532304048538208
- 3.5220236778259277
- 3.512537717819214
- 3.4959802627563477
- 3.4889206886291504
- 3.482682228088379
- 3.477268695831299
- 3.4726860523223877
- 3.468937635421753
- 3.466026544570923
- 3.4627280235290527
- 3.4623444080352783
- 3.46280574798584
- 3.4641125202178955
- 3.466264247894287
- 3.4692606925964355
- 3.4730992317199707
- 3.477778911590576
- 3.4896483421325684
- 3.1868886947631836
- 2.901165246963501
- 2.6640214920043945
- 2.464170217514038
- 2.2935667037963867
- 2.146324634552002
- 1.9053350687026978
- 1.8056074380874634
- 1.7167916297912598
- 1.637239933013916
- 1.5656192302703857
- 1.4420033693313599
- 1.3883590698242188
- 1.3392786979675293
- 1.2942302227020264
- 1.2144817113876343
- 1.1790590286254883
- 1.146202802658081
- 1.0872122049331665
- 1.0606629848480225
- 1.0125986337661743
- 0.9907974600791931
- 0.970318615436554
- 0.9329102039337158
- 0.9157975316047668
- 0.8843640685081482
- 0.8562138080596924
- 0.8432274460792542
- 0.8191904425621033
- 0.7974575757980347
- 0.78736412525177
- '...'
intensities: # 激光反射强度, 这里仿真都是0
- 0.0
- 0.0
- 0.0
- - -
- 0.0
- '...'
---
Header 数据
| 字段 | 值 | 含义 |
|---|---|---|
| sec | 1774 | ROS时间秒 |
| nanosec | 700000000 | 0.7秒 |
| 时间 | 1774.7s | 当前扫描时间 |
| frame_id | laser_link | 雷达坐标系 |
ranges数据含义
| 值 | 含义 |
|---|---|
| 正常数字 | 检测到障碍 |
| inf | 没有返回 |
| NaN | 无效数据 |
intensities 激光反射强度
白墙:
2000
黑色物体:
300
玻璃:
50
激光雷达产业链分析
零部件
激光雷达
|
------------------------------------------------
| | | | |
激光器 探测器 光学 芯片 软件
| 技术 | 中国状态 |
|---|---|
| 2D激光雷达 | ✅ 基本自主 |
| 车载半固态LiDAR | ✅ 全球领先 |
| 机械式LiDAR | ✅ 成熟 |
| 1550nm高性能光源 | ⚠️ 部分依赖 |
| SPAD芯片 | ⚠️ 有差距 |
| 高端ADC/TDC | ⚠️ 有差距 |
激光雷达波长
| 指标 | 905nm | 1550nm |
|---|---|---|
| 成本 | 低 | 高 |
| 产业成熟度 | ★★★★★ | ★★★★ |
| 人眼安全 | 一般 | 优秀 |
| 最大距离 | 100~250m | 300~500m |
| 激光功率 | 受限 | 高 |
| 探测器 | Si APD | InGaAs APD |
| 机器人 | 非常适合 | 较少 |
| 高速自动驾驶 | 一般 | 优势 |
深度相机
结构
深度相机
┌──────────────┐
│ RGB Camera │
├──────────────┤
│ IR Projector │ ← 红外投射
├──────────────┤
│ IR Left │
│ IR Right │ ← 红外接收
├──────────────┤
│ IMU │
└──────────────┘

深度相机 VS 激光雷达
| 深度相机 | 激光雷达 | |
|---|---|---|
| 波长 | 红外940nm等 | 905/1550nm |
| 测距方式 | 面阵 | 点扫描 |
| 输出 | 深度图 | 点云 |
| 视场 | 大 | 较集中 |
| 距离 | 0.2~10m | 10~300m |
| 精度 | 毫米~厘米 | 厘米级 |
| 环境光 | 影响较大 | 较稳定 |
| 价格 | 几百~几千 | 几百~几万元 |
数据格式
彩色图像
lxg@lxg:~/code/xt/gitlab/rtabmap_sim_ws$ ros2 topic echo /camera/color/camera_info --once
header:
stamp:
sec: 3836
nanosec: 316000000
frame_id: camera_rgb_optical_frame
height: 240 # 图像尺寸 424 × 240
width: 424
distortion_model: plumb_bob # 表示镜头畸变模型
d: # 5个畸变系数 仿真相机没有模拟镜头畸变
- 0.0
- 0.0
- 0.0
- 0.0
- 0.0
k: # 相机内参矩阵(Camera Intrinsic Matrix)
- 367.27854724500173
- 0.0
- 212.0
- 0.0
- 367.2785472450017
- 120.0
- 0.0
- 0.0
- 1.0
r: # 旋转矩阵
- 1.0
- 0.0
- 0.0
- 0.0
- 1.0
- 0.0
- 0.0
- 0.0
- 1.0
p: # 投影矩阵
- 367.27854724500173
- 0.0
- 212.0
- 0.0
- 0.0
- 367.2785472450017
- 120.0
- 0.0
- 0.0
- 0.0
- 1.0
- 0.0
binning_x: 0
binning_y: 0
roi:
x_offset: 0
y_offset: 0
height: 0
width: 0
do_rectify: false
---
# RGB彩色图
lxg@lxg:~/code/xt/gitlab/rtabmap_sim_ws$ ros2 topic echo /camera/color/image_raw --once
header:
stamp:
sec: 3844
nanosec: 632000000
frame_id: camera_rgb_optical_frame
height: 240
width: 424
encoding: rgb8 # 每个像素3个字节
is_bigendian: 0
step: 1272 # width × 通道数 = 424 x 3 = 1272
data:
- 77
- 67
- 54
- 77
- 67
- 54
- 77
- 67
- 54
- 77
- 67
- 54
- 77
- 67
- 54
- 77
- 67
- 54
- 77
- 67
- 54
- 77
- 67
- 54
- 77
- 67
- 54
- 77
- 67
- 54
- 77
- 67
- 54
- 77
- 67
- 54
- 77
- 67
- 54
- 77
- 67
- 54
- 77
- 67
- 54
- 77
- 67
- 54
- 77
- 67
- 54
- 77
- 67
- 54
- 77
- 67
- 54
- 77
- 67
- 54
- 77
- 67
- 54
- 77
- 67
- 54
- 77
- 67
- 54
- 77
- 67
- 54
- 77
- 67
- 54
- 77
- 67
- 54
- 77
- 67
- 54
- 77
- 67
- 54
- 77
- 67
- 54
- 77
- 67
- 54
- 77
- 67
- 54
- 77
- 67
- 54
- 77
- 67
- 54
- 77
- 67
- 54
- 77
- 67
- 54
- 77
- 67
- 54
- 77
- 67
- 54
- 77
- 67
- 54
- 77
- 67
- 54
- 77
- 67
- 54
- 77
- 67
- 54
- 77
- 67
- 54
- 77
- 67
- '...'
---
深度图
lxg@lxg:~/code/xt/gitlab/rtabmap_sim_ws$ ros2 topic echo /camera/depth/camera_info --once
header:
stamp:
sec: 200
nanosec: 640000000
frame_id: camera_rgb_optical_frame
height: 240
width: 424
distortion_model: plumb_bob
d:
- 0.0
- 0.0
- 0.0
- 0.0
- 0.0
k:
- 367.27854724500173
- 0.0
- 212.0
- 0.0
- 367.2785472450017
- 120.0
- 0.0
- 0.0
- 1.0
r:
- 1.0
- 0.0
- 0.0
- 0.0
- 1.0
- 0.0
- 0.0
- 0.0
- 1.0
p:
- 367.27854724500173
- 0.0
- 212.0
- 0.0
- 0.0
- 367.2785472450017
- 120.0
- 0.0
- 0.0
- 0.0
- 1.0
- 0.0
binning_x: 0
binning_y: 0
roi:
x_offset: 0
y_offset: 0
height: 0
width: 0
do_rectify: false
---
lxg@lxg:~/code/xt/gitlab/rtabmap_sim_ws$ ros2 topic echo /camera/depth/image_raw --once
header:
stamp:
sec: 265
nanosec: 388000000
frame_id: camera_rgb_optical_frame
height: 240
width: 424
encoding: 32FC1 # 与彩色图区别之处 32位浮点
is_bigendian: 0
step: 1696
data:
- 179
- 237
- 119
- 64
- 39
- 182
- 119
- 64
- 176
- 126
- 119
- 64
- 84
- 71
- 119
- 64
- 20
- 16
- 119
- 64
- 232
- 216
- 118
- 64
- 214
- 161
- 118
- 64
- 222
- 106
- 118
- 64
- 252
- 51
- 118
- 64
- 53
- 253
- 117
- 64
- 134
- 198
- 117
- 64
- 236
- 143
- 117
- 64
- 109
- 89
- 117
- 64
- 7
- 35
- 117
- 64
- 182
- 236
- 116
- 64
- 129
- 182
- 116
- 64
- 96
- 128
- 116
- 64
- 90
- 74
- 116
- 64
- 106
- 20
- 116
- 64
- 146
- 222
- 115
- 64
- 210
- 168
- 115
- 64
- 43
- 115
- 115
- 64
- 154
- 61
- 115
- 64
- 33
- 8
- 115
- 64
- 192
- 210
- 114
- 64
- 119
- 157
- 114
- 64
- 68
- 104
- 114
- 64
- 40
- 51
- 114
- 64
- 36
- 254
- 113
- 64
- 55
- 201
- 113
- 64
- 96
- 148
- 113
- 64
- 161
- 95
- 113
- 64
- '...'
---
深度图(Depth Image)的数据结构和 RGB 彩色图非常类似,在 ROS2 里面它们甚至使用同一个消息类型:
sensor_msgs/msg/Image
区别只是:
- RGB图:每个像素存颜色
- Depth图:每个像素存距离
| RGB图 | Depth图 | 2D雷达 | |
|---|---|---|---|
| ROS类型 | Image | Image | LaserScan |
| 数据结构 | 像素矩阵 | 像素矩阵 | 距离数组 |
| 一个元素 | RGB | 距离Z | 距离 |
| 维度 | 2D | 2D | 1D |
| 输出空间 | 需要转换 | 需要转换 | 直接距离 |
| 典型用途 | 识别 | 三维重建 | 导航避障 |
深度相机产业链
上游核心器件
|
↓
深度相机模组
|
↓
SDK / 算法 / AI视觉
|
↓
机器人、工业、消费电子、医疗
深度测距技术路线
双目视觉 Stereo(机器人最常见)
左相机 右相机
| |
| |
物体
计算视差
↓
深度
结构光 Structured Light
红外投影
● ● ● ● ●
↓
物体
↓
摄像头观察变形
↓
计算距离
ToF(Time of Flight)
红外光
↓
物体
↓
返回
↓
计算时间
gemini 335 相机深度图
Gemini 335
IR Camera IR Camera
| |
| |
↓ ↓
左红外图像 右红外图像
+
IR Pattern Projector
红外纹理投影器
+
RGB Camera
+
IMU
| 部件 | 作用 |
|---|---|
| 左IR摄像头 | 采集左红外图 |
| 右IR摄像头 | 采集右红外图 |
| IR投影器 | 给环境增加纹理 |
| RGB摄像头 | 彩色图 |
| IMU | 运动信息 |
RtabMap 仿真

带编码器的减速电机
┌──────────────┐
│ 编码器 │
│ Encoder │
└──────┬───────┘
│
电源 → DC电机 → 减速箱 → 输出轴
│
车轮
编码器通常安装在:
电机后轴编码器(常见)
编码器
↓
[电机转子]──[减速箱]──[轮子]
测量:
- 电机转速
- 电机旋转角度
硬件结构图
ROS主机
(Jetson/RK3588/工控机)
|
CAN / UART
|
↓
底盘控制单片机
(STM32)
|
┌─────────┴─────────┐
| |
PWM/方向 Encoder AB
| ↑
↓ |
电机驱动器 |
(H桥/MOSFET) |
| |
↓ |
┌───────────────┐ |
│ 减速电机 │─────────┘
│ + 编码器 │
└───────────────┘
|
↓
车轮
控制链路:
ROS2
|
| /cmd_vel
↓
STM32
|
| PWM + DIR
↓
电机驱动板
|
↓
电机转动
|
↓
车轮运动
反馈链路:
车轮转动
|
↓
编码器产生脉冲
|
↓
STM32读取AB相
|
↓
计算:
转速
里程
方向
|
↓
发布 odom
|
↓
ROS2
odom 数据
差速轮机器人里程计(wheel odometry)
lxg@lxg:~/code/xt/gitlab/rtabmap_sim_ws$ ros2 topic echo /odom --once
header:
stamp:
sec: 1922
nanosec: 100000000
frame_id: odom
child_frame_id: base_footprint
pose:
pose:
position: # 当前机器人位置
x: -2.8643931448133566
y: 2.515656759483256
z: 0.0
orientation:
x: 0.0
y: 0.0
z: 0.030609243832747806
w: -0.9995314273158136
covariance:
- 0.0
- 0.0
- - -
- 0.0
twist: # twist 速度
twist:
linear:
x: 5.049294315995212e-11
y: 0.0
z: 0.0
angular:
x: 0.0
y: 0.0
z: -0.9999999986035707
covariance: # 正常编码器是有误差的
- 0.0
- 0.0
- - -
- 0.0
- 0.0
---
差速底盘
前方
○ ○
万向轮 万向轮
┌─────────┐
│ │
│ 车体 │
│ │
└─────────┘
O O
驱动轮 驱动轮
+编码器 +编码器
○ ○
万向轮 万向轮
后方
两个中间/后侧大轮:
- 电机驱动
- 带编码器
- 提供动力和转向
四个万向轮:
- 不提供动力
- 只负责支撑重量和保持稳定
无人车电机选择
| 类型 | 成本 | 可靠性 | 适合无人车 |
|---|---|---|---|
| 有刷减速电机+编码器 | 低 | ★★★★ | ⭐⭐⭐⭐⭐ |
| BLDC减速电机 | 中 | ★★★★★ | ⭐⭐⭐⭐⭐ |
| 伺服电机 | 高 | ★★★★★ | ⭐⭐⭐ |
| 舵轮驱动 | 高 | ★★★★★ | ⭐⭐⭐⭐ |
| 轮毂电机 | 中高 | ★★★★ | ⭐⭐⭐ |
| 步进电机 | 低 | ★★ | ❌ |
轮毂电机结构
机械结构
轮胎
┌─────────┐
│ │
│ 电机 │
│ │
└─────────┘
|
轴承
|
底盘
电气结构
轮毂电机
┌────────────┐
│ │
│ BLDC │
│ │
└────────────┘
|
┌───────┴────────┐
│ │
动力线 霍尔线
│ │
↓ ↓
U/V/W VCC
三相线 GND
Hall A
Hall B
Hall C
霍尔插头
红 ---- 5V
黑 ---- GND
黄 ---- Hall A
绿 ---- Hall B
蓝 ---- Hall C
霍尔传感器的主要作用是:检测电机转子磁场位置,让控制器知道转子转到了哪里,从而正确驱动三相绕组;同时可以用于估算转速和方向。
整机通信架构
互联网
|
|
MQTT Broker
(云端服务器)
|
|
----------------
| |
手机APP ROS2主机
(RK3588)
|
|
局域网 MQTT Broker
|
|
MCU
(STM32/ESP32)
|
|
电机驱动
|
电机
ROS2 主机和单片机通信方式对比
| 项目 | micro-ROS | MQTT |
|---|---|---|
| MCU身份 | ROS节点 | 外部设备 |
| 通信协议 | DDS XRCE | MQTT TCP |
| ROS透明度 | ⭐⭐⭐⭐⭐ | ⭐⭐ |
| 开发难度 | 高 | 低 |
| 实时性 | 较好 | 一般 |
| 云连接 | 弱 | 强 |
| 资源占用 | 较高 | 低 |
| 工业普及 | 少量 | 较多 |
micro-ROS
micro-ROS 是 ROS 2 官方推出的面向微控制器(MCU)的 ROS 2 版本,目标是让资源有限的设备(如 STM32、ESP32、Arduino 等)也能加入 ROS 2 通信体系。
ROS2主机
Nav2 / SLAM / RViz
|
|
DDS通信
|
micro-ROS Agent
|
XRCE-DDS协议
|
STM32
micro-ROS Client
|
电机/IMU/IO
| 组件 | 作用 |
|---|---|
| micro-ROS Client | 运行在MCU |
| micro-ROS Agent | 运行在Linux |
| DDS-XRCE | 通信协议 |
| rclc | MCU版ROS客户端库 |