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

BestMan:具有统一仿真硬件 API 的模块化移动机械手平台,用于具身 AI

1介绍

具身人工智能 (Embodied AI) 最近成为重点研究重点[1]. 它强调代理在物理世界中感知、理解和行动以完成任务的能力。仿真平台在这一领域至关重要,因为它们可以模拟设置环境和任务中的代理行为,从而加速算法验证和优化。 但是,构建这样一个平台会带来一些挑战。

一个主要挑战是多级技术集成的复杂性。 完成任务通常涉及多个紧密关联的层,包括感知、规划和控制,每个层都需要专业知识和算法[2]. 这些层的相互依赖关系需要精确的协调,这使得平台开发具有挑战性。 在此基础上,现有平台的模块化不足进一步限制了可扩展性和算法集成。现有平台可能在高层次上是模块化的,但在关键组件中往往缺乏明确的内部模块化。 例如,通过 Habitat 平台[3]提供广泛的功能,其复杂的设置和依赖项管理降低了即插即用的可用性。 其紧密耦合的架构和单体代码使得替换或扩展操作等关键模块变得困难。此外,仿真环境和物理机器人系统之间的接口异构性阻碍了算法部署。在仿真中验证的算法通常无法直接转移到硬件平台。 这种不兼容是由于虚拟系统和真实系统之间的硬件接口、设备驱动程序和系统依赖关系的差异引起的。 因此,需要付出大量努力来调整或重新实现用于硬件执行的算法,从而增加开发时间和复杂性。最后,适应不同的移动机械手存在重大障碍。移动机械手差异很大,包括不同的移动底座、机械臂和末端执行器。 迫切需要一个能够适应各种移动机械手、将软件与硬件解耦并减少开发挑战的平台。

图 1:平台体系结构概述。该平台包括十个主要组件(以蓝色红色突出显示):感知、任务规划、导航、操作、配置、资产、可视化、控制器、传感器机器人 API。 每个组件都包含模块(以黄色突出显示),可在其中实现各种算法,由圆角矩形表示,默认方法以绿色突出显示。 省略号 ('⋯') 表示用户可以扩展的可自定义模块或算法。 统一的仿真硬件机器人 API 是基于控制和传感组件构建的,而其他组件则独立于这些机器人 API。 右侧面板说明了该平台在各种真实和模拟的移动操纵器和环境中的适用性。

为了应对这些挑战,我们开发了1基于 PyBullet 模拟器的平台[4],主要贡献如下: 1) 集成的多级技能链,以解决多级技术复杂性。 我们提供涵盖多个层次的集成仿真平台,包括感知、任务规划、运动规划和控制。 通过提供技能链,我们简化了这些层之间的协调,从而降低了集成不同组件的难度,提高了整体开发效率。 2) 高度模块化设计,可实现可扩展性和算法集成。 我们设计的技能模块具有标准化接口,支持任意内部算法组合,确保关键组件的模块化。 这使用户能够轻松替换或扩展算法,从而降低开发复杂性。 3) 用于仿真和真实设备的统一接口,以解决接口异构性问题: 我们为仿真和真实设备实施了统一的 API 接口。 在 skill modules 中,接口在命名和功能方面保持一致,仅在其底层实现方面有所不同。 这使得在仿真中开发和测试的算法能够有效地迁移到真实设备,从而解决仿真与现实差异的挑战,并减少适应和重新实现的工作。 4) 将软件与硬件解耦以解决硬件多样性问题: 我们将移动机械手分解成模块化组件,包括移动底座、机械臂和夹持器,允许灵活组合和更换硬件。 这种模块化简化了对不同硬件配置的适应,并减少了开发工作。

2平台架构

无花果。1 介绍了 BestMan 平台的架构概述,其中包含 10 个关键组件。 这些组件旨在解决 Embodied AI 中的关键研究领域。 详情见附录2.

Perception 组件处理传感器数据,特别是 RGB-D 信息,以生成各种预测,包括视觉识别。 例如,在对象交互任务中,例如打开冰箱,句柄将被标识为关键功能。 根据感知结果,Task Planning 生成 action sequence 以完成服务任务。 该平台支持两组主要的任务规划方法,对应于机器人技术中的既定策略[2]. 生成的操作序列分为 navigation 和 manipulation 操作。 因此,提供了两个主要组件:导航操作。 导航组件包括 SLAM、全球规划和本地规划模块。 Manipulation 组件实现了两种轨迹计算方法:基于采样的运动规划和基于学习的运动规划。 对于模拟环境中的动作执行,Controller 组件主要使用了 PyBullet 内置的控制 API。 控制器按机器人类型分类,包括轮式、腿式和基于手臂的机器人类别。 该平台还包括一个 Asset 组件,进一步分为 Scene Assets 和 Robot Assets,允许为各种任务灵活配置环境和机器人模型。 鉴于 PyBullet 在可视化方面的局限性,Blender 插件增强了 PyBullet 的可视化,使其更适合演示目的。 传感器组件超越了内置的 RGB-D 传感器,加入了第三方触觉传感器,这对于需要精确接触和力反馈的任务特别有用。 最后,Configuration 组件使用 YAML 文件来管理超参数,从而提高可重用性并简化优化过程。

3平台亮点

BestMan 平台旨在通过一系列深思熟虑的设计选择和技术解决方案来应对关键挑战。 下面,我们概述了该平台如何应对这些挑战。 BestMan 的集成多级技能链协调感知、任务规划、导航、操作和控制等基本层,为机器人提供执行各种服务任务所需的能力,尤其是在家庭环境中。

该平台的模块化在其层次结构中显而易见。 在高级别上,该平台分为关键组件。 每个组件进一步细分为模块,允许用户添加或修改模块以自定义和扩展平台的功能。 在每个模块中,算法被封装为独立的单元,便于直接集成或替换算法。 例如,在 Pose Estimator 模块中,默认算法 (AnyGrasp[5]) 可以替换为自定义实现。 每个模块都组织为各自组件中的子文件夹,各个算法打包为单独的 Python 类。 这种组织方式确保每个算法独立运行,从而实现灵活的扩展和定制。只有 Controller 和 Sensor 组件直接与统一的 Robotics API 连接,而所有其他组件都保持解耦状态。这种分离允许在不依赖 API 的情况下自定义算法,从而简化集成并提高可扩展性。

另一个关键挑战是弥合仿真和真实世界系统之间的差距。PyBullet 等模拟环境提供内置 API,便于在虚拟空间中进行控制。 但是,由于跨平台的硬件接口、设备驱动程序和控制机制存在差异,这些特定于仿真的控制器并不直接适用于现实世界的机器人。 为了弥合这一差距,BestMan 平台引入了一个中间件抽象层,为模拟设备和真实设备提供统一的 API。 这种统一仿真-硬件机器人 API 将特定于硬件和软件的实现解耦,使在仿真中验证的算法能够以最少的修改转移到真实机器人。 API 接口保持一致(例如,像 move_forward() 这样的函数存在于两个环境中),但底层实现不同。 在 PyBullet 中, move_forward() 可能使用 PID 控制器,而在真正的机器人上,它调用制造商的自定义电机控制 API。 尽管存在这些差异,但统一 API 允许用户在两种环境中应用相同的高级命令,而无需担心特定于硬件的细节。 这种方法对于 Controller 和 Sensor 组件至关重要,它们负责执行操作并从真实和模拟环境接收反馈。

该平台的模块化硬件架构为适应各种移动机械手提供了灵活性。 资源组件包括场景资源(例如,常见对象的 URDF 模型)和机器人资源,后者由轮子、腿、手臂、抓手的模块化单元组成。 这些单元可以组合起来配置不同的机器人系统,从而有助于适应不同的硬件设置。 通过将软件与硬件解耦,该平台支持对移动底座、机械臂和末端执行器的各种组合进行实验,而无需更改底层软件,从而降低开发复杂性和时间。

原文:BestMan:具有统一仿真硬件 API 的模块化移动机械手平台,用于具身 AI

官网:BestMan: A Modular Mobile Manipulator Platform for Embodied AI with Unified Simulation-Hardware APIs


http://www.mrgr.cn/news/58366.html

相关文章:

  • R语言 | paletteer包:拥有2100多个调色板!
  • Linux iptables基本使用
  • Linux运行时动态库搜索路径优先级
  • 基于RK3588/算能BM1684 AI盒子:综合视频智能AI分析系统建设方案(二)烟火检测、物品遗留、车道占用
  • [论文阅读]Constrained Decision Transformer for Offline Safe Reinforcement Learning
  • CTA-GAN:基于生成对抗网络对颈动脉和主动脉的非增强CT影像进行血管增强
  • 深入解析Java中的锁
  • 【漏洞复现】金和OA_jc6_ntko-upload任意文件上传漏洞.md
  • 制作视频费时费力?在这里只要简单几步就够了
  • 深入拆解TomcatJetty——Tomcat生命周期与多层容器
  • 【设备状态与人员动态的监测和呈现-会议签到的补充】
  • 智慧商城项目4-购物车功能
  • Django配置路由后,为什么输入http://127.0.0.1:8000/ 网址后报错了?
  • 【逆向基础】十七、PE文件格式(二)
  • 16 使用宏定义定义常量
  • OFFER攻略 08| 130+个offer背后:AIGC产品经理成长之路,零基础入门到精通,收藏这一篇就够了
  • 汇编教程 最终:文件管理与内存管理
  • Jvm中的堆和栈
  • Docker容器的基础镜像:构建现代应用程序的基石
  • 讲一讲AOP的原理,AOP在哪些场景下会失效?
  • openresty安装
  • Ubuntu 下安装 Nginx
  • NativeCrash 率从万分位降到十万分位,我做了这几件事...
  • 对比两个el-table,差异数据突显标记
  • springboot仓库管理系统-计算机毕业设计源码19585
  • 集群分发脚本