人形机器人全身遥操OpenWBT系统技术解析

0. 引言:从sim2real难题到全身遥操突破

人形机器人要真正融入人类的工作空间,面临着一个核心挑战:如何让机器人拥有与人类相匹配的大范围工作空间?传统的机器人控制往往局限于上半身操作,这就像是"让机器人只能站直不动",其作业空间甚至不如一台扫地机器人。

近日,银河通用机器人携手清华大学发布的OpenWBT(Open Whole-Body Teleoperation)系统,基于其最新的R²S²(Real-world-Ready Skill Space)技术框架,彻底解决了这一问题。这不仅是技术上的突破,更是人形机器人走向实用化的关键一步。项目地址:GitHub,论文地址:arXiv:2505.10918

图1:(a)该类人机器人展示了多种适用于现实世界的基本技能,包括运动和身体姿态调整。(b)该类人机器人触碰不同高度和距离的点。(c)该类人机器人用手拾起一个盒子。

1. R²S²:构建真实世界就绪的技能空间

R²S²技术的核心思想是将复杂的全身控制问题分解为可管理的原子技能,然后通过层次化架构重新组合。正如论文中所描述的,人类拥有巨大的三维工作空间,能够与不同高度和距离的物体进行交互。要让人形机器人达到这种能力,需要同时掌握多种技能:基座定位与重定向、高度与身体姿态调整、以及末端执行器姿态控制。

传统的端到端强化学习方法在这种多技能场景下面临两大挑战:

  1. 优化困难:同时学习多种技能导致训练不稳定
  2. sim2real迁移性差:仿真到真实环境的迁移存在巨大差异

R²S²通过三个关键步骤解决了这些问题:

1.1 第一步:构建真实世界稳定的原子技能库

系统将人形机器人的全身控制分解为三种基础原子技能:

  1. Locomotion(移动):负责机器人的行走控制
  2. Body-pose-adjustment(身体姿态调整):支持机器人的蹲起和俯仰动作
  3. Hand-reaching(手部到达):实现精确的手部位置控制

每个技能都有专门设计的奖励函数来确保其在真实世界中的稳定性。例如,针对locomotion技能,系统使用步态引导来产生稳定的行走动作;对于body-pose-adjustment,则通过鼓励运动学和动力学对称性来实现稳定控制。

1.2 第二步:技能融合与编码

分离训练虽然保证了各个原子技能的稳定性,但无法支撑真正的全身控制,因为这需要技能间的协同与切换。R²S²采用了创新的IL+RL(Imitation Learning + Reinforcement Learning)融合策略:

  • 模仿学习:学生策略从教师策略(原子技能)中继承真实世界就绪的技能先验
  • 强化学习:进一步增强学生策略在技能协调和过渡方面的能力

通过条件变分自编码器,系统将所有技能编码到一个结构化的潜在空间中,形成了真正的"技能空间"。

1.3 第三步:高层规划与任务执行

有了结构化的技能空间后,高层规划策略只需从该空间中采样特定的技能组合,就能实现稳定的全身控制。这大大简化了任务执行的复杂度,使机器人可以根据任务需求灵活选择和组合不同的技能。

2. OpenWBT系统架构解析

2.1 整体架构设计

OpenWBT系统采用模块化设计,主要包含以下核心组件:

python 复制代码
# OpenWBT/deploy/run_teleoperation_real.py
from deploy.config import Config
from deploy.controllers.controller import Runner_online_real_dexhand, Runner_handle_mujoco

import time
import cv2
from multiprocessing import shared_memory, Process
import threading
from datetime import datetime
import os

from deploy.teleop.open_television.tv_wrapper import TeleVisionWrapper
from deploy.teleop.robot_control.robot_arm_ik import G1_29_ArmIK
from deploy.teleop.image_server.image_client import ImageClient

import numpy as np
import torch

torch.set_printoptions(precision=3)
np.set_printoptions(precision=3)

tv_img_shape = (480, 1280, 3)
tv_img_dtype = np.uint8
tv_img_shm = shared_memory.SharedMemory(create=True, size=np.prod(tv_img_shape) * np.uint8().itemsize)
tv_img_array = np.ndarray(tv_img_shape, dtype=tv_img_dtype, buffer=tv_img_shm.buf)

从代码中可以看出系统采用了高度工程化的设计思维。首先,系统使用Python的shared_memory模块创建了一块共享内存区域来存储图像数据,这样避免了频繁的数据拷贝操作,大大提高了图像传输的效率。同时,通过多线程架构将图像接收处理独立成一个后台守护线程,确保了主控制循环不会被图像处理阻塞,保证了实时性要求。整个系统采用模块化设计,遥操作模块、机器人控制模块、图像处理模块之间完全解耦,这种设计使得系统具有良好的可维护性和可扩展性。

OpenWBT系统的核心在于其精巧的分层控制架构。系统将控制逻辑分为三个层次:Runner层 (任务协调)、Controller层 (技能控制)和Policy层 (底层执行)。

图2:我们展示了现实世界准备技能空间(Real-world-Ready Skill Space, R 2 S 2 R^2S^2 R2S2),这是一个涵盖并编码各种适用于现实世界的运动技能的技能空间。1)我们将复杂的WBC运动技能分解为一系列原始技能,每个技能都经过单独调优并进行了仿真到现实的评估。2)我们将多个原始技能集成到一个具有变分信息瓶颈的学生策略中。3)我们训练高层次的规划策略。

2.2 Runner层:任务协调与状态管理

python 复制代码
# OpenWBT/deploy/controllers/controller.py
class Runner:
    def __init__(self, config: Config, args) -> None:
        self.config = config
        self.default_controller = Controller(config, args)
        if hasattr(config, "squat_config"):
            squat_config = Config(f"deploy/configs/{config.squat_config}")
            self.squat_controller = Controller_squat(squat_config, args)
        if hasattr(config, "loco_config"):
            loco_config = Config(f"deploy/configs/{config.loco_config}")
            self.loco_controller = Controller_loco(loco_config, args)
        
        self.transfer_to_loco = False
        self.transfer_to_squat = False

    def locoable(self):
        return self.squat_controller.squat_cmd[0] > 0.72 and self.squat_controller.squat_cmd[1] < 0.05

    def stopable(self):
        return abs(self.loco_controller.loco_cmd[0]) < 0.1 and self.loco_controller.loco_cmd[1] < 0.1

...详情请参照古月居

相关推荐
徐桑8 小时前
【强化学习笔记】从数学推导到电机控制:深入理解 Policy Gradient 与 Sim-to-Real。
机器人·强化学习
中科米堆8 小时前
机器人企业采用自动化三维测量方案,完成关节部件快速检测-中科米堆CASAIM
运维·机器人·自动化·3d全尺寸检测
九鼎创展科技8 小时前
「有温度的陪伴」:基于全志 V821 的情感共鸣型实体机器人详解
linux·人工智能·嵌入式硬件·机器人
CES_Asia8 小时前
资本赋能实体智能——2026 CES Asia机器人产业投资峰会定档北京
大数据·人工智能·microsoft·机器人
Coovally AI模型快速验证9 小时前
复杂工业场景如何实现3D实例与部件一体化分割?多视角贝叶斯融合的分层图像引导框
人工智能·深度学习·计算机视觉·3d·语言模型·机器人
Mryan200510 小时前
基于 NAO 机器人的智能语音交互系统的设计与实现
机器人·语音识别
云空19 小时前
《解码机器人操作系统:从核心架构到未来趋势的深度解析》
架构·机器人
云空1 天前
《当机器人有了“鸿蒙大脑”:M-Robots OS如何重构产业生态?》
重构·机器人·harmonyos
云空1 天前
《开源机器人选型全指南》
机器人·开源