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.pswp.cn/diannao/89637.shtml
    繁体地址,请注明出处:http://hk.pswp.cn/diannao/89637.shtml

    如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

    相关文章

    浏览器默认非安全端口列表

    浏览器默认非安全端口列表: https://chromium.googlesource.com/chromium/src.git//refs/heads/master/net/base/port_util.cc 0, // Not in Fetch Spec.1, // tcpmux7, // echo9, // discard11, // systat13, // daytime15, // netstat17, …

    在线租房平台源码+springboot+vue3(前后端分离)

    大家好,今天给大家带来一个非常完善的 在线租房平台。大家可用学习下系统的设计和源码风格。 视频演示 在线租房平台源码springbootvue3 图片演示 技术栈 后端 技术框架:JDK8SpringBoot Mybatis-Plus 数据库:Mysql8 前端 核心框架 - Vue…

    android核心技术摘要

    Android APP 默认赋予权限apk签名 apk签名:https://blog.csdn.net/u014763302/article/details/149055647apksign使用反法:[https://www.cnblogs.com/fengxing999/p/11978037.html]从Android源码生成系统签名文件:https://blog.csdn.net/wenz…

    离线迁移 Conda 环境到 Windows 服务器:用 conda-pack 摆脱硬路径限制

    背景: 在进行深度学习算法的环境部署时,由于生产服务器被彻底隔离外网,只能把conda中env文件夹中的虚拟环境文件夹从开发机直接拷到离线 Windows 服务器。 其中一运行labelimg就报错: Fatal error in launcher: Unable to creat…

    vue3+原生javascript 手写日期时间选择框 滚动选择可输入

    需求: web端 想要跟手机端一样选择年月日时分,通过滚动选择 实现效果图: 理念: 1.年月日时分 分别为单个输入框,用来做输入修改 2.div把输入框拼接起来,显示出一个日期框的样子 3.年月日时分 下拉给默…

    Jetson边缘计算主板:Ubuntu 环境配置 CUDA 与 cudNN 推理环境 + OpenCV 与 C++ 进行目标分类

    最近由于业务需求,接触到了Jetson边缘AI计算主板,博主使用的是Jetson Orin NX 16GB这个版本,可以看到其算力达到了100TOPS,这是一个非常恐怖的算力了,接下来便是博主对其的环境配置过程,博主要在该主板上运…

    CLIP模型实现中的其他细节

    之前已经完整的拆解了CLIP中所用到的ResNet、ViT和Transformer三个模型(CLIP拆解-CSDN博客),这篇将讲解model.py实现中的其他细节。 1.关于ResNet模型中vision_head的设置 ResNet: vision_heads vision_width * 32 // 64 ViT: vision_h…

    国科大深度学习作业1-手写数字识别实验

    背景介绍:单位实习,趁机摸鱼,由于电脑只安装了VSCode,所以算是从环境搭建写起。 目录 一、环境搭建 1. 安装Anaconda 2. 创建Python环境 3. 安装PyTorch 4. 安装其他必要库 二、在 VSCode 中配置环境 1. 安装Pytho…

    基于Spring Boot的绿园社区团购系统的设计与实现

    第1章 摘 要 本设计与实现的基于Spring Boot的绿园社区团购系统,旨在为社区居民提供一套高效、便捷的团购购物解决方案。随着电子商务的发展和社区居民对便捷购物需求的增加,传统的团购模式已无法满足用户的个性化需求。本系统通过整合现代化技术&…

    【51单片机四位数码管从0循环显示到99,每0.5秒增加一个数字,打击键计数】2022-6-11

    缘由 #include "REG52.h" unsigned char code smgduan[]{0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71,0,64,15,56}; //共阴0~F消隐减号 unsigned char Js0, miao0;//中断计时 秒 分 时 毫秒 unsigned int shu0; //bit Mb0;//…

    如何通过python脚本向redis和mongoDB传点位数据

    向MongoDB传数据 from pymongo import MongoClient #导入库对应的库localhost "172.16.0.203" #数据库IP地址 baseName "GreenNagoya" client MongoClient(localhost, 27017, username"admin", password"zdiai123") #数…

    昆仑通泰触摸屏Modbus TCP服务器工程 || TCP客户端工程

    目录 一、Modbus TCP服务端 1.设备地址 2.实操及数据 二、Modbus TCP客户端 1.结果及协议解析 一、Modbus TCP服务端 1.设备地址 --单元标识符 DI输入/4个离散输入 DO输出/单个线圈输出 输入寄存器 读输入寄存器操作,写输入寄存器操作 保持寄存器 …

    PyTorch 安装使用教程

    一、PyTorch 简介 PyTorch 是由 Facebook AI Research 团队开发的开源深度学习框架。它以动态图机制、灵活性强、易于调试而著称,广泛应用于自然语言处理、计算机视觉和学术研究。 二、安装 PyTorch 2.1 通过官网选择安装命令(推荐) 访问官…

    开源功能开关(feature flags) 和管理平台之unleash

    文章目录 背景Flagsmith 和 Unleash什么是unleash架构Unleash Edge 安装和使用Unleash SDKs开放API Tokens访问**Server-side SDK (CLIENT)****查询所有 Feature Toggles****查询特定 Toggle** API token typesClient tokensFrontend tokensPersonal access tokensService acco…

    细胞建模“图灵测试”:解析学习虚拟细胞挑战赛

    一、AI能否预测细胞的未来? 想象一下,有一天我们不必一管管地做实验,就能在计算机中模拟细胞对基因敲除、药物处理乃至微环境变化的反应。这不再是科幻,而是“虚拟细胞”(Virtual Cell)研究的宏大目标。然…

    centos9安装docker Dify

    CentOS | Docker Docs yum -y install gcc gcc-c yum-utils Docker 官方的 YUM 软件仓库配置文件到系统,设置存储库 yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo 也可以从阿里云下(我选择上面的) yum-config-manager --add-re…

    基于Jenkins和Kubernetes构建DevOps自动化运维管理平台

    目录 引言 基础概念 DevOps概述 Jenkins简介 Kubernetes简介 Jenkins与Kubernetes的关系 Jenkins与Kubernetes的集成 集成架构 安装和配置 安装Jenkins 安装Kubernetes插件 配置Kubernetes连接 配置Jenkins Agent Jenkins Pipeline与Kubernetes集成 Pipeline定义…

    MySQL 8.0 OCP 1Z0-908 题目解析(18)

    题目69 Choose three. A MySQL server is monitored using MySQL Enterprise Monitor’s agentless installation. Which three features are available with this installation method? □ A) MySQL Replication monitoring □ B) security-related advisor warnings □ …

    【mongodb】安装和使用mongod

    文章目录 前言一、如何安装?二、使用步骤1. 开启mongod服务2. 客户端连接数据库3. 数据库指令 总结 前言 Mongodb的安装可以直接安装系统默认的版本,也可以安装官网维护的版本,相对而言更推荐安装官网维护的版本,版本也相当更新。…

    云效DevOps vs Gitee vs 自建GitLab的技术选型

    针对「云效DevOps vs Gitee vs 自建GitLab」的技术选型,我们从核心需求、成本、运维、扩展性四个维度进行深度对比,并给出场景化决策建议: 一、核心能力对比表 能力维度云效DevOpsGitee自建GitLab(社区版/企业版)代码…