机器人架构全景图:人形、四足、AGV、机械臂软硬件全开源体系
导读:做机器人产品,先把架构定清楚。人形机器人讲究全身协调,四足机器人讲究动态平衡,AGV类讲究自主导航,机械臂讲究精确轨迹规划。本文基于OpenLoong、ToddlerBot、Stanford Pupper、TurtleBot4、AR4等热门开源项目,梳理四类机器人的硬件框图、软件架构和全开源方案,让你选型有方向、开发有框架。
一、机器人分类与技术特征
| 类型 | 代表产品 | 核心能力 | 技术难点 |
|---|---|---|---|
| 人形机器人 | Atlas、GR-1、Figure | 双足行走、双手操作 | 平衡控制、全身协调 |
| 四足机器人 | Spot、Unitree、MIT Mini Cheetah | 复杂地形行走 | 动态平衡、步态规划 |
| AGV/AMR | TurtleBot、Kiva、SMARTmBOT | 自主导航、避障、多机调度 | SLAM精度、多机协调 |
| 机械臂 | UR、Kinova、FANUC | 精确抓取、轨迹规划 | 逆运动学、力控 |
本文覆盖以上四类机器人,每类都给出硬件框图、软件架构和全开源方案。
二、人形机器人类
2.1 硬件框图
flowchart TB
subgraph 主控["主控单元"]
GPU["GPU/NPU<br/>Jetson Thor/Orin"]
M3["Cortex-M3<br/>实时协处理器"]
FPGA["FPGA<br/>EtherCAT从站"]
end
subgraph 感知["感知层"]
RGBD["RGBD相机×2<br/>手眼相机"]
LIDAR["Lidar<br/>室内/室外"]
FT["力传感器<br/>手腕/脚踝"]
IMU_B["IMU<br/>躯干姿态"]
end
subgraph 关节["关节模组"]
J1["髋关节×2<br/>伺服驱动"]
J2["膝关节×2"]
J3["踝关节×2"]
J4["肩关节×2"]
J5["肘关节×2"]
J6["腕关节×2"]
end
subgraph 通信["通信总线"]
ETHERCAT["EtherCAT<br/>实时控制"]
CANFD["CAN FD<br/>状态反馈"]
ETH["Ethernet<br/>数据通信"]
end
GPU -->|"控制指令"| FPGA
FPGA --> ETHERCAT
ETHERCAT --> J1
ETHERCAT --> J2
ETHERCAT --> J3
ETHERCAT --> J4
ETHERCAT --> J5
ETHERCAT --> J6
CANFD --> GPU
GPU --> RGBD
GPU --> LIDAR
M3 --> CANFD
FT --> CANFD
IMU_B --> M3
style 主控 fill:#E3F2FD,stroke:#1976D2
style 感知 fill:#FFF8E1,stroke:#F57C00
style 关节 fill:#FFEBEE,stroke:#D32F2F
style 通信 fill:#E8F5E9,stroke:#388E3C
2.2 关节模组详解
flowchart LR
subgraph 关节模组["单关节模组"]
MOTOR["无刷电机"]
ENC2["多圈编码器"]
REDUCER["谐波减速器"]
DRIVE["伺服驱动"]
CURR["电流采样"]
end
MOTOR --> REDUCER --> DRIVE
ENC2 --> DRIVE
CURR --> DRIVE
style 关节模组 fill:#E8F5E9,stroke:#388E3C
| 参数 | 低成本方案 | 工业方案 |
|---|---|---|
| 电机 | 盘式无刷/直流 | 无刷伺服 |
| 减速器 | 行星减速器 | 谐波减速器 |
| 编码器 | 磁编码器 | 多圈绝对编码器 |
| 驱动 | 简单FOC | 高性能FOC |
| 总线 | CAN | EtherCAT |
2.3 硬件选型
| 层级 | 选型方案 | 说明 |
|---|---|---|
| 主控GPU | Jetson Thor、Orin AGX、RK3588 | 运行VLA模型、NPU推理 |
| 实时协处理器 | Cortex-M3/M4、CH32V307 | 姿态监控、安全控制 |
| 关节驱动 | EtherCAT从站芯片(LAN9252)、FOC驱动 | 实时力矩控制 |
| 关节电机 | 无刷直流电机、盘式电机 | 功率密度高 |
| 减速器 | 谐波减速器(HD谐波)、行星减速器 | 低背隙、高精度 |
| 编码器 | 多圈绝对值磁编码器 | 断电位置保持 |
| 深度相机 | RealSense D435i、奥比中光Astra | 手眼视觉 |
| 力传感器 | 六维力传感器(手腕)、一维力传感器(脚踝) | 力控反馈 |
| IMU | BMI088、ICM42688 | 姿态解算 |
| 通信总线 | EtherCAT(实时控制)、CAN FD(状态反馈)、Ethernet(数据) | 多总线融合 |
2.4 软件架构
flowchart TB
subgraph 仿真层["仿真层 (Isaac Sim)"]
PHYSICS["PhysX物理引擎"]
SENSOR_SIM["传感器仿真"]
ACTOR["人形模型"]
end
subgraph AI层["AI层 (GPU)"]
VLM["视觉语言模型<br/>VLM"]
POLICY["策略网络<br/>VLA Action"]
RL["强化学习<br/>Isaac Lab"]
end
subgraph 决策层["决策层"]
GR00T["GR00T推理"]
PLANNER["任务规划"]
NAV["导航规划"]
end
subgraph 控制层["控制层"]
WBC["全身控制<br/>Whole Body Control"]
IK["逆运动学"]
JOINT["关节空间控制"]
end
subgraph 驱动层["驱动层"]
ECAT["EtherCAT主站"]
FOC["FOC驱动"]
SAFETY["安全监控"]
end
仿真层 -->|"Sim2Real"| AI层
AI层 --> GR00T
GR00T --> PLANNER
PLANNER --> WBC
WBC --> IK
IK --> JOINT
JOINT --> ECAT
ECAT --> FOC
SAFETY --> FOC
style 仿真层 fill:#FFF8E1,stroke:#F57C00
style AI层 fill:#E3F2FD,stroke:#1976D2
style 决策层 fill:#F3E5F5,stroke:#7B1FA2
style 控制层 fill:#E8F5E9,stroke:#388E3C
style 驱动层 fill:#FFEBEE,stroke:#D32F2F
2.5 VLA模型架构(GR00T)
flowchart TB
subgraph 输入["多模态输入"]
IMG["相机图像"]
TEXT["语言指令"]
STATE["机器人状态"]
end
subgraph S2["System 2 慢思考"]
VLM_B["VLM Backbone<br/>视觉编码器"]
REASON["推理规划"]
end
subgraph S1["System 1 快执行"]
DIFF["Diffusion Head<br/>动作扩散"]
JOINTS["关节指令"]
end
IMG --> VLM_B
TEXT --> VLM_B
STATE --> DIFF
VLM_B --> REASON
REASON --> DIFF
DIFF --> JOINTS
style S2 fill:#E3F2FD,stroke:#1976D2
style S1 fill:#E8F5E9,stroke:#388E3C
| 组件 | 说明 | 性能 |
|---|---|---|
| VLM Backbone | 视觉语言编码器 | 处理图像+文本 |
| System 2 | 慢思考,规划高层动作 | 推理频率\~1Hz |
| Diffusion Head | 扩散模型生成动作 | 控制频率\~120Hz |
| Embodiment ID | 区分不同机器人构型 | 支持52 DoF |
2.6 全软件与全硬件开源项目
| 项目 | GitHub | 硬件开源 | 软件开源 | 特点 |
|---|---|---|---|---|
| OpenLoong 青龙 | loongOpen | ✅ CAD/PDF完全开源 | ✅ MPC+WBC+仿真 | 中国首个全套开源人形,60 DOF,400 TOPS |
| ToddlerBot | hshi74/toddlerbot | ✅ 3D打印+BOM全开源 | ✅ PPO/扩散策略+仿真 | 斯坦福出品,30 DOF,$6K BOM,能翻跟头 |
| OriginMan | originbot/originman | ✅ 全开源 | ✅ ROS2+大模型 | 首个全开源桌面人形,10 TOPS RDK X5 |
| Reachy 2 | pollen-robotics/reachy | ✅ 机械结构开源 | ✅ ROS2+Python SDK | Pollen Robotics,7DOF双臂,Docker部署 |
| Isaac GR00T | nvidia/Isaac-GR00T | — | ✅ VLA基础模型 | NVIDIA官方,VLM+Diffusion动作生成 |
| Isaac Lab | nvidia/IsaacLab | — | ✅ 强化学习框架 | Isaac Gym后继,GPU并行训练 |
2.7 全身控制(WBC)架构
flowchart TB
subgraph 任务层["任务定义"]
COM["质心轨迹"]
HAND["手部轨迹"]
POSE["姿态约束"]
end
subgraph 优化层["QP优化"]
QP_SOLVER["二次规划求解"]
COST["代价函数"]
end
subgraph 关节层["关节控制"]
TORQUE["力矩分配"]
FOC["FOC控制"]
end
COM --> QP_SOLVER
HAND --> QP_SOLVER
POSE --> QP_SOLVER
QP_SOLVER --> TORQUE
TORQUE --> FOC
style 任务层 fill:#FFF8E1,stroke:#F57C00
style 优化层 fill:#E3F2FD,stroke:#1976D2
style 关节层 fill:#E8F5E9,stroke:#388E3C
// QP优化求解伪代码
// min: 0.5 * x'Hx + g'x
// s.t: Aeq * x = beq(等式约束:运动学)
// Aineq * x <= bineq(不等式约束:关节限位、力矩限制)
Eigen::Matrix<double, Dynamic, Dynamic> H; // Hessian矩阵
Eigen::Matrix<double, Dynamic, 1> g; // 梯度向量
Eigen::Matrix<double, Dynamic, Dynamic> A; // 约束矩阵
// 添加任务Jacobian
H += Jt * Wt * J; // 任务权重
g -= 2 * Jt * Wt * x_des; // 目标轨迹
// 求解
qdot = qp_solver.solve(H, g, A, b); // 关节速度
三、四足机器人
3.1 硬件框图
flowchart TB
subgraph 主控3["主控单元"]
PI["Raspberry Pi<br/>4B/CM4"]
MCU3["STM32/Arduino<br/>步态控制"]
end
subgraph 传感器3["感知单元"]
IMU3["IMU<br/>BNO055/MPU9250"]
CAM3["相机<br/>跟踪/避障"]
DIST["测距模块<br/>Ultrasonic"]
end
subgraph 四肢["四肢模块"]
subgraph 前腿["前腿"]
FL1["髋关节<br/>舵机×1"]
FL2["膝关节<br/>舵机×1"]
FL3["踝关节<br/>舵机×1"]
end
subgraph 后腿["后腿"]
HL1["髋关节<br/>舵机×1"]
HL2["膝关节<br/>舵机×1"]
HL3["踝关节<br/>舵机×1"]
end
end
subgraph 电源管理["电源管理"]
LIPO["LiPo 2S/3S<br/>7.4V/11.1V"]
REG["稳压5V/3.3V"]
end
PI <-->|"SPI/I2C"| MCU3
PI <--> CAM3
MCU3 --> FL1
MCU3 --> FL2
MCU3 --> FL3
MCU3 --> HL1
MCU3 --> HL2
MCU3 --> HL3
IMU3 --> MCU3
DIST --> MCU3
LIPO --> REG
style 主控3 fill:#E3F2FD,stroke:#1976D2
style 传感器3 fill:#FFF8E1,stroke:#F57C00
style 四肢 fill:#FFEBEE,stroke:#D32F2F
style 电源管理 fill:#F3E5F5,stroke:#7B1FA2
3.2 硬件选型
| 层级 | 选型方案 | 说明 |
|---|---|---|
| 主控SBC | Raspberry Pi 4B/CM4、Jetson Nano | 运行ROS2、视觉处理 |
| 运动MCU | Arduino Nano、STM32F4 | 步态PS2控制、12路PWM |
| 关节舵机(低成本) | MG996R、串行总线舵机 | 成本<¥200/个,适合教学 |
| 关节舵机(高性能) | Dynamixel-X、高扭无刷 | 力矩反馈,适合科研 |
| IMU | BNO055、MPU9250 | 9轴绝对姿态 |
| 相机 | 树莓派Camera、RealSense | 视觉跟踪、避障 |
| 电源 | LiPo 2S(7.4V)或3S(11.1V) | 轻量化 |
| 通信 | PS4/Xbox手柄蓝牙、WiFi/ROS2 | 遥控+自主 |
3.3 软件架构
flowchart TB
subgraph 应用层3["应用层"]
STEP["步态规划"]
BALANCE["平衡控制"]
NAV3["视觉导航"]
end
subgraph 控制层3["控制层"]
IK_LEG["腿部IK<br/>逆运动学"]
GAIT["步态生成<br/>Trot/Walk/Gallop"]
ESTIMATOR["状态估计<br/>卡尔曼滤波"]
end
subgraph 驱动层3["驱动层"]
SERVO_PWM["PWM控制<br/>12路舵机"]
IMU_DRV["IMU驱动<br/>四元数姿态"]
PS4["PS4手柄<br/>蓝牙遥控"]
end
subgraph 硬件层3["硬件层"]
SERVO12["舵机×12"]
IMU_H3["IMU"]
CAM_H3["相机"]
end
应用层3 --> 控制层3 --> 驱动层3 --> 硬件层3
BALANCE --> ESTIMATOR
ESTIMATOR --> GAIT
GAIT --> IK_LEG
IK_LEG --> SERVO_PWM
NAV3 --> BALANCE
IMU_DRV --> ESTIMATOR
style 应用层3 fill:#FFF8E1,stroke:#F57C00
style 控制层3 fill:#E3F2FD,stroke:#1976D2
style 驱动层3 fill:#E8F5E9,stroke:#388E3C
style 硬件层3 fill:#FFEBEE,stroke:#D32F2F
3.4 全软件与全硬件开源项目
| 项目 | GitHub | 硬件开源 | 软件开源 | 特点 |
|---|---|---|---|---|
| Stanford Pupper | stanfordroboticsclub/StanfordQuadruped | ✅ BOM+3D打印 | ✅ Python | 斯坦福出品,成本<$600,12DOF |
| Mini Pupper | mangdangroboticsclub/mini_pupper | ✅ KiCAD PCB | ✅ ROS2+Python | 开源ROS狗,支持SLAM导航 |
| Dingo Quadruped | Yerbert/DingoQuadruped | ✅ 基于Pupper | ✅ ROS Noetic | 低成本研究平台,Gazebo仿真 |
| Stanley Quadruped | Ahead.IO Hackaday | ✅ 全开源 | ✅ PyBullet仿真 | 加拿大Ahead.IO,capstan绳索驱动BLDC四足,支持跳跃 |
| Hiwonder ROSPug | 商业开源 | ✅ 铝合金机身 | ✅ ROS+Jetson Nano | Jetson Nano驱动,TOF Lidar |
Stanford Pupper是四足入门首选——全开源硬件+软件,总BOM成本<$600,适合教育和研究。
四、AGV类机器人
4.1 硬件框图
flowchart TB
subgraph 主控["主控单元"]
SBC["SBC/SoC<br/>Jetson Nano/RK3568"]
MCU["MCU<br/>STM32/F407/H743"]
end
subgraph 感知["感知层"]
LIDAR["激光雷达<br/>RPLIDAR/A1"]
CAM["深度相机<br/>Realsense/Astra"]
IMU["IMU<br/>MPU6050/BMI088"]
TOF["ToF传感器"]
IR["红外巡线"]
end
subgraph 通信["通信模块"]
WIFI["WiFi<br/>AP6181/AP6212"]
BT["蓝牙<br/>HC-05/HC-08"]
ZIGBEE["ZigBee<br/>CC2530"]
4G["4G/5G模块"]
end
subgraph 执行["执行层"]
MOTOR["直流电机"]
ENC["编码器"]
DRIVER["电机驱动<br/>TB6612/L298N"]
PUMP["真空泵<br/>抓取用"]
end
subgraph 电源["电源管理"]
BAT["锂电池<br/>12V/24V"]
DCDC["DCDC降压<br/>5V/3.3V/12V"]
PG["保护电路"]
end
SBC <-->|"UART/SPI"| MCU
SBC <-->|"USB/UART"| LIDAR
SBC <-->|"USB"| CAM
SBC <-->|"I2C"| IMU
MCU --> DRIVER
DRIVER --> MOTOR
ENC --> MCU
TOF --> MCU
IR --> MCU
SBC <--> WIFI
SBC <--> BT
BAT --> DCDC
BAT --> PG
style 主控 fill:#E3F2FD,stroke:#1976D2
style 感知 fill:#FFF8E1,stroke:#F57C00
style 通信 fill:#E8F5E9,stroke:#388E3C
style 执行 fill:#FFEBEE,stroke:#D32F2F
style 电源 fill:#F3E5F5,stroke:#7B1FA2
4.2 硬件选型
| 层级 | 选型方案 | 说明 |
|---|---|---|
| 主控SBC | Jetson Nano、RK3568、树莓派CM4 | 运行ROS2,处理SLAM和导航 |
| 主控MCU | STM32F4/H7、CH32F2 | 实时电机控制、PID闭环 |
| 激光雷达 | RPLIDAR A1/A2、思岚A1 | 2D SLAM必备 |
| 深度相机 | Realsense D435i、奥比中光Astra | 3D感知、RGB-D |
| IMU | MPU6050、BMI088 | 姿态解算、里程计融合 |
| 电机驱动 | TB6612(小型)、ODrive(大型) | PWM控制、电流反馈 |
4.3 软件架构
flowchart LR
subgraph 应用层["应用层"]
NAV["Navigation2<br/>导航规划"]
SLAM["SLAM<br/>建图定位"]
MAP["Map Server<br/>地图服务"]
end
subgraph 中间件["中间件 (ROS2)"]
DDS["DDS<br/>数据分发"]
ACTION["Action<br/>异步任务"]
SERVICE["Service<br/>同步调用"]
end
subgraph 驱动层["驱动层"]
LASER["laser_scan<br/>雷达驱动"]
CAMERA["camera_node<br/>相机驱动"]
IMU["imu_complement<br/>IMU滤波"]
MOTOR["motor_driver<br/>电机驱动"]
end
subgraph 硬件层["硬件层"]
LIDAR_H["激光雷达"]
CAM_H["深度相机"]
IMU_H["IMU"]
MOTOR_H["电机+编码器"]
end
应用层 --> 中间件 --> 驱动层 --> 硬件层
style 应用层 fill:#FFF8E1,stroke:#F57C00
style 中间件 fill:#E3F2FD,stroke:#1976D2
style 驱动层 fill:#E8F5E9,stroke:#388E3C
style 硬件层 fill:#FFEBEE,stroke:#D32F2F
4.4 典型开源项目
| 项目 | GitHub | 特点 |
|---|---|---|
| TurtleBot4 | turtlebot/turtlebot4 | ROS2标准平台,iRobot Create 3底座 |
| SMARTmBOT | SMARTlab-Purdue/SMARTmBOT | Purdue大学开源,低成本$210 |
| Navigation2 | ros-planning/navigation2 | ROS2官方导航栈 |
| Cartographer | google/cartographer | 激光SLAM标杆 |
| SLAM Toolbox | SteveMacenski/slam_toolbox | 在线SLAM工具箱 |
4.5 核间通信(SBC+MCU)
flowchart TB
subgraph SBC["SBC (Linux)"]
ROS2["ROS2 Node"]
SERIAL["串口驱动"]
end
subgraph MCU["MCU (RTOS/FreeRTOS)"]
HAL["HAL库"]
PID["PID控制器"]
PWM["PWM输出"]
ENC["编码器读取"]
end
ROS2 -->|"cmd_vel|odom"| SERIAL
SERIAL -->|"UART/RS485"| HAL
HAL --> PID
PID --> PWM
ENC -->|"中断"| PID
PWM --> MOTOR
style SBC fill:#E3F2FD,stroke:#1976D2
style MCU fill:#E8F5E9,stroke:#388E3C
常用协议:
- 串口:自定义协议(Header+Len+Data+CRC)
- CAN总线:工业标准,多电机协调
- Micro-ROS:ROS2直接跑在MCU上
# Micro-ROS STM32示例
# MCU端:发布/订阅ROS2话题
rclc_publisher_init_default(&publisher, &node, ROSIDL_GET_MSG_TYPE_SUPPORT(std_msgs, msg, Int32), "topic");
# SBC端:启动micro-ROS agent
ros2 run micro_ros_agent micro_ros_agent serial --dev /dev/ttyUSB0
五、机械臂
5.1 硬件框图
flowchart TB
subgraph 主控["主控单元"]
SBC2["SBC/MCU<br/>Arduino/Teensy/RK3568"]
MCU2["MCU/控制器<br/>Arduino Mega/OpenCR"]
end
subgraph 关节["关节模组(6轴)"]
J1A["J1 底座旋转<br/>伺服/步进"]
J2A["J2 大臂俯仰"]
J3A["J3 小臂俯仰"]
J4A["J4 腕部旋转"]
J5A["J5 腕部俯仰"]
J6A["J6 末端旋转"]
end
subgraph 末端["末端执行器"]
GRIPPER["电动夹爪"]
VACUUM["真空吸盘"]
CAM_ARM["手眼相机"]
end
subgraph 电源["电源管理"]
BAT2["24V锂电池"]
DCDC2["降压模块<br/>5V/12V"]
end
SBC2 <-->|"USB/UART"| MCU2
MCU2 -->|"脉冲/通信"| J1A
MCU2 --> J2A
MCU2 --> J3A
MCU2 --> J4A
MCU2 --> J5A
MCU2 --> J6A
SBC2 --> GRIPPER
SBC2 --> VACUUM
SBC2 <--> CAM_ARM
BAT2 --> DCDC2
style 主控 fill:#E3F2FD,stroke:#1976D2
style 关节 fill:#FFEBEE,stroke:#D32F2F
style 末端 fill:#E8F5E9,stroke:#388E3C
style 电源 fill:#F3E5F5,stroke:#7B1FA2
5.2 硬件选型
| 层级 | 选型方案 | 说明 |
|---|---|---|
| 主控MCU | Arduino Mega/Teensy 4.1、OpenCR | 方案成熟,社区支持强 |
| SBC(高级) | Jetson Nano、RK3568 | ROS2+MoveIt2 |
| 关节舵机 | 串行总线舵机、Dynamixel-X | 位置+速度+力矩反馈 |
| 关节电机(工业) | 步进电机、无刷伺服 | 高精度、大扭矩 |
| 减速器 | 同步带、谐波减速器 | 低成本→同步带;高精度→谐波 |
| 编码器 | 磁编码器、光学编码器 | 闭环控制 |
| 末端工具 | 电动夹爪、真空吸盘 | 换工具适配不同任务 |
| 手眼相机 | OpenCV USB相机、Realsense | 2D/3D视觉定位 |
| 通信 | UART/RS485(舵机)、Ethernet(ROS2) | 成本→串行总线;性能→EtherCAT |
5.3 软件架构
flowchart TB
subgraph 应用层2["应用层"]
MOVEIT["MoveIt2<br/>运动规划"]
PV["抓取位姿<br/>Pick-and-Place"]
VISION["视觉定位"]
end
subgraph 控制层2["控制层 (ROS2 Control)"]
FK["正运动学"]
IK["逆运动学"]
TRAJ["轨迹插补"]
RC["ros2_control<br/>硬件接口"]
end
subgraph 驱动层2["驱动层"]
SERIAL["串行总线驱动<br/>UART/RS485"]
DYNAMIXEL["Dynamixel SDK"]
MODBUS["Modbus RTU"]
end
subgraph 硬件层2["硬件层"]
SERVO["舵机×6"]
GRIPPER_H["电动夹爪"]
CAM_H2["USB相机"]
end
应用层2 --> 控制层2 --> 驱动层2 --> 硬件层2
VISION --> PV
PV --> MOVEIT
MOVEIT --> IK
IK --> TRAJ
TRAJ --> RC
RC --> SERIAL
RC --> DYNAMIXEL
SERIAL --> SERVO
style 应用层2 fill:#FFF8E1,stroke:#F57C00
style 控制层2 fill:#E3F2FD,stroke:#1976D2
style 驱动层2 fill:#E8F5E9,stroke:#388E3C
style 硬件层2 fill:#FFEBEE,stroke:#D32F2F
5.4 全软件与全硬件开源项目
| 项目 | GitHub | 硬件开源 | 软件开源 | 特点 |
|---|---|---|---|---|
| AR4 | Annin-Robotics/ar4_ros_driver | ✅ 3D打印/铝合金 | ✅ Python+ROS2 | 6轴桌面级,社区20K+用户 |
| OpenManipulator-X | ROBOTIS-GIT/open_manipulator | ✅ 全开源 | ✅ ROS2+MoveIt2 | ROBOTIS官方,与TurtleBot3兼容 |
| OMY系列 | ROBOTIS-GIT/open_manipulator | ✅ 6轴 | ✅ ROS2 Jazzy | 模仿学习专用,Dynamixel-Y舵机,3kg负载 |
| MoveIt 2 | moveit/moveit2 | — | ✅ 运动规划框架 | 机械臂通用,支持避障+轨迹优化 |
| ros2_control | ros-controls/ros2_control | — | ✅ 控制框架 | 硬件抽象层,统一舵机/电机接口 |
AR4和OpenManipulator是实现全开源(软件+硬件+3D打印文件)的标杆项目。
六、四类机器人架构对比
| 维度 | 人形机器人类 | 四足机器人 | AGV类 | 机械臂 |
|---|---|---|---|---|
| 自由度 | 20-52 DoF(全身关节) | 12-18 DoF(四肢) | 2-4 DoF(移动+升降) | 4-6 DoF(关节旋转) |
| 控制频率 | 100-1000Hz | 50-200Hz | 50-100Hz | 50-200Hz |
| 主控算力 | 100+ TOPS | 1-10 TOPS | 1-10 TOPS | 1-10 TOPS |
| 感知侧重 | 立体相机、力传感器 | IMU、相机、超声波 | 2D激光、深度相机 | 手眼相机、力传感器 |
| 通信总线 | EtherCAT、CAN FD | PWM/CAN | UART、CAN | UART/RS485、EtherCAT |
| 开源生态 | OpenLoong、Isaac Lab、GR00T | Stanford Pupper、Mini Pupper | Navigation2、TurtleBot | AR4、OpenManipulator |
| 开发难度 | 高 | 中 | 中 | 中 |
6.1 共同技术点
| 技术 | 人形 | 四足 | AGV | 机械臂 |
|---|---|---|---|---|
| 运动学 | 全身IK | 腿部IK | 差速运动模型 | FK/IK正逆运动学 |
| 导航 | 脚步规划 | 步态规划 | Nav2全局路径规划 | 轨迹规划 |
| 感知 | 手眼协调 | 姿态感知 | 障碍物检测 | 手眼视觉 |
| 控制 | 全身WBC | 步态PID | 差速PID | PID+力矩 |
| 安全 | 碰撞检测、力限 | 跌倒检测 | 急停、避障 | 碰撞检测 |
6.2 软件栈对比
flowchart LR
subgraph 人形层["人形机器人软件栈"]
HUM_APP["任务规划|操作规划"]
HUM_AI["VLA策略|视觉语言"]
HUM_CTRL["WBC|IK|FK"]
end
subgraph 四足层["四足软件栈"]
QUAD_APP["步态规划|平衡"]
QUAD_AI["视觉跟踪|避障"]
QUAD_CTRL["腿部IK|步态PID"]
end
subgraph AGV层["AGV软件栈"]
AGV_APP["Nav2|定位|地图"]
AGV_AI["障碍物检测|语义分割"]
AGV_CTRL["运动控制|差速PID"]
end
subgraph 机械臂层["机械臂软件栈"]
ARM_APP["MoveIt2|抓取位姿"]
ARM_AI["视觉定位|标定"]
ARM_CTRL["FK/IK|轨迹插补"]
end
subgraph 共用["共用基础"]
ROS2["ROS2/DDS"]
SIM["仿真平台"]
DRV["硬件驱动"]
end
HUM_APP --> 共用
HUM_AI --> HUM_APP
HUM_CTRL --> HUM_APP
QUAD_APP --> 共用
QUAD_AI --> QUAD_APP
QUAD_CTRL --> QUAD_APP
AGV_APP --> 共用
AGV_AI --> AGV_APP
AGV_CTRL --> AGV_APP
ARM_APP --> 共用
ARM_AI --> ARM_APP
ARM_CTRL --> ARM_APP
共用 --> DRV
共用 --> SIM
style 人形层 fill:#FFEBEE,stroke:#D32F2F
style 四足层 fill:#E8F5E9,stroke:#388E3C
style AGV层 fill:#E3F2FD,stroke:#1976D2
style 机械臂层 fill:#FFF8E1,stroke:#F57C00
style 共用 fill:#F3E5F5,stroke:#7B1FA2
七、开发路线图
7.1 人形机器人开发路线
flowchart TB
subgraph phase1["阶段一:硬件基础"]
A1["关节模组选型"] --> A2["EtherCAT总线配置"]
end
subgraph phase2["阶段二:底层控制"]
B1["FOC驱动开发"] --> B2["关节空间控制"]
end
subgraph phase3["阶段三:算法核心"]
C1["逆运动学"] --> C2["全身控制WBC"]
end
subgraph phase4["阶段四:智能部署"]
D1["VLA模型部署"] --> D2["Sim2Real迁移"]
end
phase1 --> phase2 --> phase3 --> phase4
style phase1 fill:#FFF8E1,stroke:#F57C00
style phase2 fill:#E3F2FD,stroke:#1976D2
style phase3 fill:#FFEBEE,stroke:#D32F2F
style phase4 fill:#E8F5E9,stroke:#388E3C
7.2 四足开发路线
flowchart TB
subgraph phase1["阶段一:硬件搭建"]
A1["结构搭建<br/>3D打印"] --> A2["12路PWM控制"]
end
subgraph phase2["阶段二:运动基础"]
B1["IMU姿态解算"] --> B2["步态生成<br/>Trot行走"] --> B3["平衡控制<br/>PID调参"]
end
subgraph phase3["阶段三:智能升级"]
C1["ROS2接入"] --> C2["视觉导航"] --> C3["自主建图"]
end
phase1 --> phase2 --> phase3
style phase1 fill:#FFF8E1,stroke:#F57C00
style phase2 fill:#E3F2FD,stroke:#1976D2
style phase3 fill:#E8F5E9,stroke:#388E3C
7.3 AGV开发路线
flowchart TB
subgraph phase1["阶段一:硬件搭建"]
A1["硬件平台搭建"] --> A2["STM32电机控制"]
end
subgraph phase2["阶段二:感知导航"]
B1["ROS2环境配置"] --> B2["雷达驱动集成"] --> B3["SLAM建图"]
end
subgraph phase3["阶段三:应用扩展"]
C1["Navigation2配置"] --> C2["多机调度"] --> C3["现场部署"]
end
phase1 --> phase2 --> phase3
style phase1 fill:#FFF8E1,stroke:#F57C00
style phase2 fill:#E3F2FD,stroke:#1976D2
style phase3 fill:#E8F5E9,stroke:#388E3C
7.4 机械臂开发路线
flowchart TB
subgraph phase1["阶段一:硬件标定"]
A1["结构件组装"] --> A2["舵机/电机标定"]
end
subgraph phase2["阶段二:运动学"]
B1["正逆运动学验证"] --> B2["MoveIt2配置"]
end
subgraph phase3["阶段三:感知抓取"]
C1["视觉标定"] --> C2["抓取规划"]
end
subgraph phase4["阶段四:生产部署"]
D1["力控调试"] --> D2["自动化部署"]
end
phase1 --> phase2 --> phase3 --> phase4
style phase1 fill:#FFF8E1,stroke:#F57C00
style phase2 fill:#E3F2FD,stroke:#1976D2
style phase3 fill:#F3E5F5,stroke:#7B1FA2
style phase4 fill:#E8F5E9,stroke:#388E3C
八、选型建议
8.1 主控选型
| 类型 | 推荐芯片 | 算力 | 适用场景 |
|---|---|---|---|
| 人形入门 | Jetson Orin NX | 70 TOPS | 研究、原型 |
| 人形量产 | Jetson Thor | 1000+ TOPS(INT8) | 商业产品 |
| 四足入门 | Raspberry Pi 4B + Arduino | — | 教育、DIY |
| 四足科研 | Jetson Nano + STM32F4 | 1 TOPS | 步态、导航 |
| AGV入门 | RK3568、Jetson Nano | 1-6 TOPS | 教育、科研 |
| AGV工业 | RK3588、Jetson Orin | 10-40 TOPS | 物流、巡检 |
| 机械臂入门 | Arduino Mega + Teensy 4.1 | — | 教育、DIY |
| 机械臂工业 | RK3568 + OpenCR | 1-6 TOPS | 工业自动化 |
8.2 总结
| 需求 | 推荐架构 |
|---|---|
| 通用人形 | 人形 + VLA + WBC + EtherCAT |
| 教学四足 | Stanford Pupper + Pi + PS4手柄 |
| 科研四足 | Mini Pupper + ROS2 + SLAM |
| 物流搬运 | AGV + Navigation2 + 激光SLAM |
| 服务机器人 | AMR + 视觉语义 + 语音交互 |
| 桌面机械臂 | AR4 + ROS2 + MoveIt2 |
| 工业机械臂 | 机械臂 + ROS2 + ros2_control + 力控 |
做机器人,先定类型。人形重协调,四足重步态,AGV重导航,机械臂重轨迹。架构选对了,开发效率翻倍。