当前位置: 首页 > news >正文

Robot---能打羽毛球的机器人

1 前言

        Robot系列主要介绍一些比较有意思的机器人,前面的博客文章中也给读者朋友们展示了一些:

        《人形机器人---越来越像人了》

        《自动驾驶---两轮自行车的自主导航》

        《自动驾驶---会打架的“球形机器人”》

        《Robot---SPLITTER行星探测机器人》

        《Robot---奇思妙想轮足机器人》

        目前强一些的研究团队都在研究如何让机器人(不管是双足还是四足)完成人类的某些动作,这也是机器人技术进步的一种体现。

        本篇博客介绍的是 ETH 苏黎世联邦理工大学的研究团队在机器人顶刊Science Robotics上发布的成果,探索如何让拥有腿部和手臂的机器人(即腿足机械臂)学习并执行像羽毛球这样高度动态、需要全身协调的复杂技能。

2 羽毛球Robot

        机器人由四足底盘(苏黎世联邦理工的老演员了)、机械臂和立体相机组成。立体相机为前置双目立体相机,图像采样频率为 30Hz,用于感知羽毛球的位置和运动状态等信息,系统通过摄像感知、轨迹预测与整身控制策略实现对羽毛球的精准拦截与挥拍操作。

        当前这种直接基于强化学习的端到端方法,不仅可应用于四足机器人,还应用于无人机,无人车等做种机器人载体。感兴趣的读者朋友可以看看,很多知名高校(苏黎世联邦理工大学,香港科技大学,浙大等)开源的论文和代码都有不少,但目前仍然停留在学术Demo阶段,还没有到量产阶段。

    2.1 架构

            相机安装:该腿式移动操作机器人由四足底盘和动态机械臂组成,额外安装了一个带全局快门的立体相机。

            机器人控制系统接收在相机坐标系中计算出的羽毛球位置,预测拦截位置,并将其与机器人本体感知数据一起输入强化学习(RL)策略。该策略通过生成关节指令控制机器人的全部 18 个驱动单元。

            总体的思路比较简单,预测羽毛球运动轨迹,通过强化学习方法计算最佳击球位置,难点在于协同控制。

            研究方法与设计:

    • 基于强化学习的整身控制策略:核心是利用 PPO(Proximal Policy Optimization)算法,训练一个联合控制机器人 18 个关节的策略网络。策略结构采用非对称 Actor-Critic 架构,Critic 能访问 “特权信息”,如球的真实位置、速度和未来轨迹等,以获得更稳定的训练反馈;Actor 仅基于机器人部署时可获得的感知信息,如本体状态、预测击球点进行动作输出,提升训练效率并保持策略的可部署性。
    • 贴近真实的感知误差模型:由于羽毛球速度快,微小感知误差会导致击球失败,因此在训练中引入基于实测数据回归的感知误差模型。该模型考虑观测角度、距离、球速对测量误差的影响,并在仿真中为每次观测引入高斯噪声扰动,增强了策略对现实感知条件的鲁棒性,还使机器人发展出主动视觉行为,如通过躯干姿态调整保持球在视野中央,击球前微调站位以减少预测误差。
    • 具备目标引导与物理约束的训练机制:奖励函数除击中球的核心奖励外,还设计多个辅助项,用于鼓励策略提前接近预测击球点、控制步态稳定性、控制挥拍速度与角度以匹配球速、在连续击球任务中维持身体状态稳定等。此外,提出多目标摆动训练范式,每个训练回合中机器人需连续完成多次击球,模拟真实对战中的回合场景,让机器人学习击球后的姿态收敛和过渡动作的快速调度。

    2.2 详细框架

            论文的核心贡献在于提出了一种端到端的强化学习(Reinforcement Learning, RL)框架,用于学习腿足机械臂的全身协调羽毛球技能。

    • 强化学习范式

      • 模型无关(Model-Free)RL: 避免了对机器人复杂动力学模型的精确建模,而是通过与环境的交互来学习最优策略。
      • 策略梯度方法: 通常会使用如PPO (Proximal Policy Optimization) 或 SAC (Soft Actor-Critic) 等算法,这些算法在处理连续控制任务和高维状态/动作空间方面表现出色。
    • 状态空间(Observation Space)
      为了让机器人“理解”当前情况,其观测空间通常包括:

      • 机器人自身状态: 各关节的角度、角速度、基座(body)的姿态(俯仰、滚转、偏航)、线速度和角速度。
      • 羽毛球状态: 羽毛球相对于机器人基座的位置、速度,甚至可能是其历史轨迹,以便预测未来位置。
      • 目标信息: 例如,击球目标点(如果任务要求将球击到特定区域)。
    • 动作空间(Action Space)
      机器人直接控制的输出:

      • 关节目标位置/力矩: 策略输出的是机器人所有关节(包括腿部和手臂)的目标位置或力矩,由低层控制器执行。这确保了全身的协同控制。
    • 奖励函数(Reward Function)
      奖励函数是RL成功的关键,它引导机器人学习期望的行为:

      • 击球成功奖励: 当机器人成功击中羽毛球时给予高奖励。
      • 击球质量奖励: 鼓励球击过网,并落在对方场地内。可能还会细化为击球速度、角度等。
      • 平衡与稳定性奖励/惩罚: 避免机器人跌倒,鼓励其在运动中保持基座的稳定和姿态的平稳。
      • 运动平滑性/能耗奖励: 惩罚剧烈的关节抖动或过大的关节力矩,鼓励更自然、高效的运动。
      • 任务完成奖励: 例如,每成功击打一次球就给予奖励。
    • 训练策略与Sim2Real

      • 大规模仿真训练: 在高保真物理仿真器(如Isaac Gym, MuJoCo等)中进行数百万甚至数十亿步的训练。这是因为在真实机器人上进行如此大规模的试错是不可行且危险的。
      • 域随机化(Domain Randomization): 为了弥合仿真与现实之间的差距(Sim2Real Gap),在仿真训练过程中,会随机化各种环境参数和机器人参数,例如:
        • 摩擦系数、空气阻力。
        • 机器人质量、惯量、关节刚度、阻尼。
        • 传感器噪声、执行器延迟。
        • 羽毛球的初始速度和旋转。
          这使得学习到的策略对真实世界中的不确定性更加鲁棒。
      • 课程学习(Curriculum Learning): 可能从简单的任务开始(例如,静止击球,然后逐步增加球速和复杂性),帮助策略循序渐进地学习。
      • 统一的全身控制策略: 整个机器人(腿部和手臂)由一个单一的神经网络策略控制,确保了内在的协调性。

    2.3 难点与挑战

    (1)难点

            研究四足机器人打羽毛球是一个很有意思的课题,那么针对这两件事情,分别有什么难点?

    • 腿足机械臂: 腿足机器人提供卓越的移动性和越障能力,而机械臂则赋予它们操作和交互的能力。将两者结合,可以创造出能在复杂地形中移动并执行精细任务的机器人。然而,控制这种高自由度(High-DOF)的系统,尤其是在执行全身协调的动态任务时,是一个巨大的挑战。
    • 羽毛球作为测试平台: 羽毛球运动是一个极佳的测试平台,因为它包含了机器人控制的诸多难点:
      • 高动态性: 羽毛球飞行速度快,轨迹多变,要求机器人快速感知和响应。
      • 全身协调: 机器人需要通过腿部移动来定位自身,同时用手臂挥拍击球,且在击球过程中保持平衡和稳定。
      • 实时决策: 需要在毫秒级时间内预测球的轨迹并规划击球动作。
      • 精确的接触动力学: 击球瞬间的力道和角度控制至关重要。
      • 平衡与鲁棒性: 在剧烈挥拍和移动中保持不摔倒。

    (2)核心挑战

    • 高维度控制空间: 腿足机械臂通常拥有数十个自由度,传统控制方法难以有效优化。
    • 动态环境下的鲁棒性: 机器人需要适应羽毛球来球的各种速度、角度和旋转。
    • 全身运动的耦合: 腿部运动会影响手臂的基座,手臂挥拍的惯性力会影响腿部的平衡,两者必须协同工作。
    • Sim2Real Gap: 在仿真环境中训练的策略如何有效地迁移到真实的物理机器人上,是一个普遍存在的问题。

    2.4 实验结果

            论文通常会通过以下方式验证其方法的有效性:

    • 仿真环境测试:
      • 展示机器人在仿真中成功击打各种来球,包括高速球、不同角度的球等。
      • 量化击球成功率、击球精度、机器人稳定性等指标。
    • 真实机器人部署:
      • 将训练好的策略部署到真实的腿足机械臂硬件平台(例如,Unitree H1, ANYmal + Franka Emika Panda等组合)。
      • 通过实际视频和数据展示机器人在真实世界中成功击打羽毛球,验证Sim2Real的有效性。
    • 性能对比:
      • 可能与传统的基于模型或非全身协调的控制方法进行对比,突出强化学习和全身协调的优势。
      • 展示机器人能够应对复杂、动态的击球场景,这是传统方法难以实现的。

    3 总结

            本篇博客所介绍的论文不仅仅是让机器人学会打羽毛球,更重要的是它提供了一个通用的框架和方法,用于训练高自由度、多模态机器人执行需要精细全身协调的复杂动态任务,这对于推动通用型机器人的发展具有里程碑式的意义。

            当前这种直接基于强化学习的端到端不仅应用于四足机器人,还应用于无人机,无人车等做种机器人载体。感兴趣的读者朋友可以看看,开源的论文和代码都有不少,但目前仍然停留在学术Demo阶段,还没有到量产。

    参考论文:《Learning coordinated badminton skills for legged manipulators》

    http://www.lryc.cn/news/579564.html

    相关文章:

  • Linux操作系统之文件(二):重定向
  • 物联网MQTT协议与实践:从零到精通的硬核指南
  • 【王阳明代数】基于Perplexica二次开发的道装资源标识符与重定向知识路由系统
  • 使用HAProxy搭建Web群集:原理、步骤与实战总结
  • Node.js特训专栏-实战进阶:12. 数据库事务处理与并发控制
  • 基于 alpine 构建 .net 的基础镜像
  • 基于MATLAB的风力发电机无人机巡检路径优化研究
  • 利用人名语言分类案例演示RNN、LSTM和GRU的区别(基于PyTorch)
  • Go调度器的抢占机制:从协作式到异步抢占的演进之路|Go语言进阶(7)
  • Android Profiler 丢帧分析教程及案例
  • WPF学习笔记(22)项面板模板ltemsPanelTemplate与三种模板总结
  • 【Git】同时在本地使用多个github账号进行github仓库管理
  • 两级缓存 Caffeine + Redis 架构:原理、实现与实践
  • locate 命令更新机制详解
  • 小红书自动化操作:使用本地Chrome和User Data实现高效反检测
  • Linux系统(信号篇):信号的处理
  • spring6合集——spring概述以及OCP、DIP、IOC原则
  • MongoDB Memory Server与完整的MongoDB的主要区别
  • CANFD芯片在工控机数据采集和测量中的应用分析
  • 重新学习Vue中的按键监听和鼠标监听
  • PDF的图片文字识别工具
  • 110道Python面试题(真题)
  • Spring AI ETL Pipeline使用指南
  • 01_前后端打包发布、API接口调试
  • Stata如何做机器学习?——SHAP解释框架下的足球运动员价值驱动因素识别:基于H2O集成学习模型
  • Spring生态:引领企业级开发新纪元
  • Linux开发工具——gcc/g++
  • 【CSS揭秘】笔记
  • Ubuntu20.4编译AOSP源码实践
  • 开源 C# .net mvc 开发(六)发送邮件、定时以及CMD编程