具身智能
1.数据-模型-算力-工具链以及具体应用对象
开源模型、数据集和工具
“基础运动能力
关节精度、热管理、电源系统、控制算法、通信干扰等
遥控模式 跟跑模式 全自主模式
谐波减速器:谐波传动减速器
通用性更强的替代形态
机电系统
末端执行器 (End Effector) 是机器人执行部件的统称,一般安装于机器人腕部的末端,是直接执行任务的装置。
末端执行器按其功能可以分为两大类,即:工具类和抓手类
自由度数量、驱动方式、传动机构、感知技术等进行分类
2.神经网络架构,2)学习法则,3)目标函数,4)训练数据/环境
3.机电系统
动力源分为液压,气动和电动三大类
电动:电源类型分为直流电机和交流电机两大类;按照应用类型一般可分为直流伺服电动机驱动、交流伺服电动机驱动、步进电动机驱动
直流电机(DC Motor) 伺服电机(Servo Motor) 步进电机(Stepping Motor
马达
关节 关节(Joint)
Joint Space: 有多少驱动关节,有多少自由度
R是旋转关节(Revolute Joint),P是平移关节(Prismatic Joint)
基础关节肯定是只有一个自由度(Degree of freedom/DOF)的,旋转关节只绕某一个轴旋转,平移关节只在某一条直线上运动
PPP笛卡尔坐标机器人
EEF 末端执行器位姿的核心构成 机器人末端执行器的位姿(Pose)由两大要素构成: 位置 和 姿态
笛卡尔空间 (Cartesian Space)是指机器人末端执行器在三维空间中的位置和姿态
操作空间(operational space) end effector的位置(position)和朝向(orientation)
轮式末端与脚式末端
逆向运动学 (inverse kinematics) 桌面的环境下(tabletop scenario)
连杆(Link)
传感器与执行器
科大讯飞6麦克风语音阵列,远扬无碍收音
RealSense深度相机,视野全覆盖
高精度六维感知力模块
惯性传感单元 实现全身位姿实时监
组成部分:
轻量化关节模组-无刷力矩电机
信号与数据
信号与数据
01.信号 《DBC File Format Document》
CAN通信矩阵是指用于 描述 CAN 网络中各个节点之间通信关系的表格或矩阵 CAN(Controller Area Network)通信
DBC 是由 vector 公司定义的 CAN 网络通信文件格式
DBC文件描述的是数据帧: 理解信号描述需掌握起始位、信号长度、字节顺序等规则
Vector CANdb++ Editor 工具 不管是 Intel 格式,还是 Motorola 格式,起始位都为该信号的低位
02.数据: 数据的规模以及时间跨度
运动学数据,包括关节角度、扭矩,以及夹爪的位置、朝向和开合状态。
state:机器人机械臂、腿部、手部控制信息。
数据采集与处理
1)数据采集装置
2)设备参数
3)数据处理
基于时间戳的对齐机制:
数据集
数据集规模
258 个场景系列(Series),321064 个任务(tasks),3033188个轨迹片段(Episodes)
Series 是指同一个场景和同一个机器人采集的系列数据,如人形机器人在工厂车间采集的系列数据,可能包含不同的任务;
Task 是一个具体的任务,比如搬运货物,同一个任务可以重复采集多次,
Episode 是针对某一具体任务的一次完整采集过程 执行轨迹(episode trajectories)
trajectories 执行轨迹(episode trajectories)
End Effector)末端执行器( 是机器人系统中的一个关键部件,用于与外部环境进行交互。
它通常位于机器人系统的末端,可以是机械手臂、控制器、传感器等装置
数据集
基础:视觉模态 单一场景下的简单动作 任务定义模糊
进一步:多模态融合加上触觉与力觉反馈数据 复杂逻辑推理、多步骤协作、目标关联任务的覆盖
数据: 数据格式不统一、评估指标不一致、标注方式差异
数据集:
数据集名称:Open X-Embodiment 数据格式RLDS格式,
数据集名称:RoboMIND
meta
rotation_type
##observation.images videos/chunk-000
observation.images.front_view
observation.images.left_wrist_view
observation.images.right_wrist_view
parquet
observation.state : 1D concatenated array of all action modalities. 一维数组
action
timestamp
annotation.human.action.task_description annotation.human.validity
next.reward next.done
episode_index task_index
1.注释的格式: <annotation_source>.<annotation_type>(.<annotation_name>)
2.index":0, // index of the observation. This is a global index across all observations in the dataset.
全局唯一
Standard LeRobot
Standard LeRobot 2024年5月16日
visual-motor 模型 aloha,diffusion,和 tdmpc。 机器人动作规模模型
visual-lingual-motor 模型,
observation.environment_state
observation.effort
GR00T LeRobot 额外的数据 additional metadata file meta/modality.json
能力
哪些能力具有迁移的技术价值,哪些能力可以跨场景集成
夹爪(手腕)相机
数据采集遥操设备:全身动捕套装+ VR
仿真: MuJoCo、Habitat、SeaWave 等仿真引擎
info 提供数据集的全局元数据,包括版本、来源和版权信息。
task_index:任务的唯一标识符,与 Parquet 文件中的task_index字段直接关联。
episode_index
modality : state annotation 同数据模态(如状态、动作、视频、注释等)
data/parquet文件
基础轨迹与状态
observation.state
配置动作生成策略。通过策略模型,可以根据观测数据生成动作
action类型:位置、速度、加速度、力矩、扭矩
action坐标系:世界坐标系、机器人坐标系、任务相关的物体坐标系
{
"state": {
"<state_key>": {
"start": <int>, // 状态数组中的起始索引
"end": <int>, // 状态数组中的结束索引
"rotation_type": <str>, // 可选:指定旋转格式
"dtype": <str>, // 可选:指定数据类型
"range": <tuple[float, float]>, // 可选:指定模态范围
}
},
"action": {
"<action_key>": {
"start": <int>, // 动作数组中的起始索引
"end": <int>, // 动作数组中的结束索引
"absolute": <bool>, // 可选:true表示绝对值,false表示相对/增量值
"rotation_type": <str>, // 可选:指定旋转格式
"dtype": <str>, // 可选:指定数据类型
"range": <tuple[float, float]>, // 可选:指定模态范围
}
},
"video": {
"<new_key>": {
"original_key": "<original_video_key>"
}
},
"annotation": {
"<annotation_key>": {} // 空字典,与其他模态保持一致
}
}
参数
具身智能的研究主要集中在
模仿学习(Imitation Learning)和强化学习 (Reinforcement Learning, RL) 两大块
observation.effort是指机器人在执行某个动作时所需的努力或力
observation = {
'position': [x, y], # 机器人的位置
'velocity': [vx, vy], # 机器人的速度
'pole_angle': theta, # 杆的角度
'pole_velocity_at_tip': omega # 杆尖端的角速度
}
位姿
机器人位姿数据形式转换与旋转矩阵总结(欧拉角、RPY、NOAP)
位姿(Position and Orientation)
"rotation_type"
1.四元数表示 NOAP 是一种使用四元数表示的旋转方式,四元数比欧拉角
quaternion
2.矩阵表示 旋转矩阵
matrix
3.轴角表示 轴角旋转(Axis-Angle Rotation)
axis_angle
4. 6d(自由度)旋转表示
rotation_6d
6D位姿,即6个自由度的位姿,包括3个自由度的位移(Translation)和3个自由度的空间旋转(Rotation),合起来就叫位姿 (Pose)
欧拉角
euler_angles_rpy euler_angles_ryp euler_angles_pry euler_angles_pyr euler_angles_yrp euler_angles_ypr
例如:
euler_angles_rpy RPY (Roll-Pitch-Yaw) 是一种特殊的欧拉角表示方式,
通常用于描述航天器或机械臂的姿态 RPY 的定义与欧拉角相似,但其旋转顺序固定为 ZYX。
策略
act :Action Chunking Transformer 策略
diffusion :扩散策略
tdmpc :时序差分模型预测控制
vqbet :向量量化行为变换器
pi0 :基础策略实现
扎实的肢体技能和对环境的常识性理解,
说明
GR00T N1是由英伟达于2025年3月19日推出的全球首款开源人形机器人功能模型
# GR1 系列配置
"gr1_arms_only" # GR1 仅机械臂(无腰部)
"gr1_arms_waist" # GR1 机械臂 + 腰部传感器
"gr1_full_upper_body" # GR1 上半身完整传感器
# 双臂 Panda 机器人配置
"bimanual_panda_gripper" # 双 Panda 臂 + 夹爪
"bimanual_panda_hand": # 双 Panda 臂 + 仿人灵巧手
# 单臂 Panda 机器人配置
"single_panda_gripper" # 单 Panda 臂 + 夹爪
# 特殊场景配置
"so100" # 工业场景专用配置(如 So100 标准)
输入数据中,有2个重要的数据就是 state 和 action
128维的动作空间
CLVR Jaco Play子数据集采集了
机械臂的End effector的 x,y,z,各坐标轴的旋转角,还有各坐标轴的角速度。
而Droid数据集除了 End effector的 x,y,z,各坐标轴的旋转角外,还采集了各joint(关节)的角度
一套完整的动作叫一个episode,一般一个相同的指令需要采集多个episode。
每个episode一般包含很多采样,例如可以采样180条数据,
每条数据都包含那一采样时刻的 state, action, image, text指令等全部信息
控制信号
end effector坐标xyz控制,有的是用joint角度控制,有的是用xyz或joint角度的增量控制,有的还需要输入速度/角速度控制信号
算法数据处理
VLA可视为VLM(视觉-语言模型)与机器运动数据(如RT-1)的结合,其技术架构包括视觉编码器、文本编码器、轨迹解码器与文本解码器
视频转换:应用于视频数据,准备用于模型训练
状态转换:处理机器人状态信息:
StateActionToTensor:将状态数据(如手臂位置、手部配置)转换为PyTorch张量
StateActionTransform:对状态数据应用归一化
动作转换:处理机器人动作数据:
StateActionToTensor:与状态转换类似,将动作数据转换为PyTorch张量
StateActionTransform:对动作数据应用归一化
in the form of (video, state, action)
连接转换:将处理后的数据组合成统一数组
state以及action
lerobot 库中包含多种策略模型,如 ACT、Diffusion、TDMPC 等
ACT(Action Chunking with Transformers)
动作生成:
# 采集观测数据 # Uses the follower arms and cameras to capture an observation
observation = robot.capture_observation()
# 生成动作 # Assumes a policy has been instantiated
with torch.inference_mode():
action = policy.select_action(observation)
# 发送动作给机器人
robot.send_action(action)
duckdb 查看parquet 数据
create table episode as select * from read_parquet("episode_00001.parquet");
select* from episode limit 5;
desc table episode;
select action from episode;
select "observation.state" from episode; -- 带有dot的列名 在mysql中用反引号,在duckdb中用双引号 ###
强化学习术语和概念。 State action policy reward trajectory
价值函数分为两种,一种是动作价值函数,另一种是状态价值函数。
状态(State) 状态代表了智能体在某一时刻所处的环境信息或情景。它是环境对智能体的一个观测值,可以包含各种信息
动作(Action)定义:智能体在某个状态下能做出的选择。
奖励函数 (reward function)
智能体学到的策略 (policy)
(视频、状态、动作)三元组
parquet文件,存储状态信息、动作和时间戳等
Github 上存放成 arrow 格式,而 Huggingface 上存放成 parquet 格式。
随着机器人数据收集日益普及, 数据管理成为下一个挑战 高效、高质量的数据收集
参考
https://github.com/NVIDIA/Isaac-GR00T/blob/main/getting_started/LeRobot_compatible_data_schema.md
https://github.com/dora-rs/dora-lerobot
https://github.com/huggingface/lerobot/tree/main
LeRobot的数据集系统(上) https://zhuanlan.zhihu.com/p/1908239878614947512