Mobile Aloha 【软硬件原理+代码解析】

news2024/10/7 10:23:17

    • 1. Mobile ALOHA Hardware
    • 2. Imitation Learning
    • 3. Co-training with Static ALOHA Data
    • 4. Task Setting
    • 5. Experiments
      • 5.1 ACT
      • 5.2 对比ACT、Diffusion Policy和VINN
    • 6. Software Code Analyze

Mobile ALOHA: 利用低成本全身远程操作系统学习复杂的双手移动操作技能 [译]

  • 硬件代码:https://github.com/MarkFzp/mobile-aloha

  • 软件代码:https://github.com/MarkFzp/act-plus-plus

  • 项目地址:https://mobile-aloha.github.io/

一句话:Static ALOHA 到 Mobile ALOHA 是从 table-top manipulationmobile manipulation 的进展。

作者团队开发了一个双臂+轮式底盘的遥操作系统,可以通过全身控制来对比如像:开柜门,乘电梯等移动操作任务进行示教数据采集。

硬件上,和前作ALOHA一样的,作者使用低成本的设备来搭建这套平台,最终预算控制在32k美金,与一台Franka Panda的价格相近。

算法上,在使用该平台采集到的示教数据进行模仿学习的过程中,作者发现,使用前作Static ALOHA中收集到的示教数据(没有移动地盘)进行联合训练,能够使机器人在移动操作任务上有更好的表现。缺点在于Mobile ALOHA没有引入 LLM Agent 的zero shot能力,缺乏多模态大模型MLM对视频、语言等多种模态的理解预测的泛化能力。但作为具身智能的GPT1.0时刻,足以启发后人。

对于每个任务,只需用新平台采集50条示教数据,结合之前的数据联合训练后,任务成功率最高能被提升到原来的90%。

Static ALOHA实验环境:

在这里插入图片描述

Mobile ALOHA实验环境:

在这里插入图片描述

1. Mobile ALOHA Hardware

硬件设计时,研究人员主要从四个维度切入考虑:

  • 移动速度要快:与人类的行走速度相媲美,约为 1.42 米/秒。

  • 稳定性:在拿起沉重的家居物品时,如锅、吸尘器时,它是稳定的。

  • 支持全身远程控制:所有的自由度可以同时远程操作,包括双臂和移动底座。

  • 不受限制:板载电源和计算。

在这里插入图片描述

要想实现 Mobile ALOHA 的灵活性,研究员在它的下方安装了一个专为仓库设计的轮子底座——Tracer AGV,它可以承载 100kg,移动速度高达 1.6m/s,而成本只有 7000 美元。

为了使 Mobile ALOHA 不受能源限制,研究人员配备了一个 1.26 千瓦时的电池,重量在 14 公斤,这样还可以压住机器人,防止不平衡摔倒。

此外,整个装置还包括网络摄像头和一个搭载消费级 GPU 的笔记本电脑,成本共计约为 3.2 万美元,比现成的双臂机器人便宜得多。

研究员在论文中介绍道,Mobile ALOHA 可同时遥控所有自由度。人类操作员的腰部被用物理的方式拴在系统上,并反向驱动车轮,在工作环境中驾驶系统,同时用控制器控制机器人手臂。同时,研究人员记录基本速度数据和手臂操纵数据,形成一个全身远程控制操作系统。

这样,机器人控制系统就能同时学习动作和其他控制指令。一旦收集到足够的信息,模型就能自主地重复一系列任务。

品牌型号上:(总共 3w刀,RMB约20w)

  • 轮式底盘:AgileX Tracer(松灵) 价格:$9000 x 1个
  • 主动臂:WidowX 250,6自由度 价格:$3295 × 2个
  • 从动臂:ViperX 300,6自由度 价格:$5695 × 2个
  • 计算机:i7-12800H + 3070Ti (8GB)
  • 相机: Logitech C922x RGB x 3个,分辨率480×640,频率50Hz,两个在从端机械臂的腕部,一个朝向前方。

2. Imitation Learning

模仿学习简洁教程.pdf

模仿学习(Imitation Learning) 方面,Mobile ALOHA 利用了 Transformer(大型语言模型中使用的架构)。最初的 Satic ALOHA 系统使用了一种名为 Action Chunking with Transformers (ACT) 的架构,它将来自多个视点和关节位置的图像作为输入预测一系列动作

在这里插入图片描述

Mobile ALOHA底座运动信号添加到输入向量中,从而扩展了该框架。这种方法可以让 Mobile ALOHA 重复使用以前的深度模仿学习算法,而只需做最小的改动。

在论文中,研究人员写道:“我们观察到,简单地将底座和手臂动作连接起来,然后通过直接模仿学习进行训练,就可以产生出色的表现。具体来说,我们将 ALOHA 的 14-DoF 关节位置移动底座的线速度和角速度 的 tokens concat 连接起来,形成 16 维动作向量。”

3. Co-training with Static ALOHA Data

数据层面,也使用前作ALOHA(Static ALOHA)中的静态数据,结合Mobile ALOHA的数据进行联合训练,作者采集的825条不包含轮式底盘运动的示教数据,任务种类包括放电池、开盖子等等。

数据采集过程:需要人来操控机器完成一系列动作,在运动的过程中,机器会记录各个关键的运动轨迹,作为训练数据。训练完之后就不需要人来操控了。

值得注意的是:Static ALOHA数据全部在一个黑色的桌面上采集,与Mobile ALOHA的数据采集场景很不一样,并且机械臂的布置方式也差别较大(朝中间和朝前方),但是作者并没有对图像数据做额外的处理,只是忽略掉了静态数据中放置在工作台前方的相机,保证都是3个视角的图像输入。另外对于静态数据,base相关的数据做zero-padding。

  • 对于所有任务,共用的 static ALOHA 数据为 D s t a t i c D_{static} Dstatic

  • 对于一个任务 m ,其对应的 mobile ALOHA 示教数据为 D m o b i l e m D^m_{mobile} Dmobilem

联合训练中,对mobilestatic数据样本的占比相同(注:对每一个动作维度,基于mobile ALOHA的数据分别做归一化处理):

  • 输入(观测值):3视角图像(480×640 image x 3) + 14维的从臂关节位置(6DOF × 2 + 1 Gripper × 2

  • 输出(动作):14维的双臂关节位置 + 2维的底盘线速度和角速度

  • 训练目标:标准的模仿学习loss。其中 o i o^i oi是两个手腕相机的RGB观测数据, a a r m s i a^i_{arms} aarmsi是双臂关节位置, a b a s e i a^i_{base} abasei是底盘线速度和角速度, π m \pi^m πm是task m 的控制策略, L L L是模仿损失函数。
    在这里插入图片描述

研究人员表示:“通过协同训练,我们只需对每项任务进行 50 次人类演示,就能在这些任务上取得超过 80% 的成功,与没有协同训练相比,平均绝对提高了 34%。”

4. Task Setting

作者一共测试了7个任务,包含灵巧操作、全身运动、涉及到金属、重物等较难的被操作对象,以及需要避障的与环境和人的交互任务。

具体设置如下:

Wipe WineCook ShrimpWash Pan

在这里插入图片描述

Use CabinetTake ElevatorPush Chairs

在这里插入图片描述
High Five

在这里插入图片描述

作者额外指出,对于所有的任务,如果在示教后,将环境恢复,单纯地直接重复执行示教轨迹(开环),任务全部无法完成,成功率为0。

在这里插入图片描述

想要成功完成任务,需要机器人策略对环境和机器人状态做出动态的、闭环的响应。

经过实验分析,作者认为开环过程的误差主要来自移动底盘的速度控制误差,下图展示了实验中,轮式底盘进行一个半径为1m的180度旋转,在轮式底盘完成运动后,机械臂末端会在纸上点出红色的位置点(右上角的红叉×为真值ground truth),下图中展示了20次重复实验的结果,误差在10-20cm左右。
在这里插入图片描述

5. Experiments

实验中,将Co-training的方法与多种模仿学习的方法结合起来训练:ACTDiffusion PolicyVINN三种方法。

5.1 ACT

首先对于ACT(算法的具体设计细节,可参考前作,此处不再赘述),联合训练显著的提高了任务成功率,6个在80%以上,尤其是对于需要精细操作的任务,比如按按钮、开水龙头等。

Cook Shrimp任务的成功率较低,作者认为原因在于这是一个长达75秒的任务,并且只采集了20条示教数据。

在这里插入图片描述

为什么联合训练的效果会更好?

作者认为,static ALOHA数据中关于抓取和接近物体的运动先验知识对训练mobile ALOHA的模型有很大帮助,尤其是其中腕部视角是具有不变性的,对场景的变换有较强的抗干扰能力。

另外,联合训练的策略在推椅子和擦红酒这两个任务上也表现出了更强的泛化能力。

对于推椅子任务,在前三个训练集的椅子上,单独训练和联合训练的表现都不错,但对于第四、五个训练集中未出现的椅子,联合训练的模型表现分别有15%和89%的提升。

对于擦红酒任务,联合训练能够适应酒杯更大的随机范围。

因此,作者认为,在仅有少量示教数据又要使用表达能力较强的transformer-based model的前提下,联合训练能够帮助避免过拟合的出现。

在所有的测试中,compounding error看起来是最主要的造成任务失败原因,作者认为这最初可能来自于底盘的控制误差和一些和环境物体有强接触的动作。

5.2 对比ACT、Diffusion Policy和VINN

对于擦红酒和推椅子这两个任务,作者额外使用了diffusion policy和VINN+action chunking算法进行了训练,联合训练的方式与ACT保持一致。

在这里插入图片描述

总的来看,ACT的表现最优,diffusion policy略差,VINN最差。对于这三种算法,联合训练的表现基本上都优于单独训练。

对于VINN+擦红酒任务,联合训练的表现比起单独训练反而变差了,作者认为,这是由于VINN算法本身没有办法利用测试(应用)场景分布之外的数据(具体原因可以看VINN原文,一种在测试时寻找训练集中nearest neighbour的方法),static ALOHA的数据对于VINN来讲就可能没那么有效。

对于diffusion policy来说,它的模型表达能力比较强,作者认为,50条的示教数据量可能不够。

6. Software Code Analyze

https://github.com/MarkFzp/act-plus-plus

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1368362.html

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

相关文章

SAP BAPI_OUTB_DELIVERY_CONFIRM_DEC 交货单过账提示 VL602 为交货的发货已经计帐

原因 如果尝试从交货处理的初始屏幕过账交货的货物移动,并且已为交货执行此步骤,则系统会正确发出消息 VL602(“已针对交货过账发货”)和/或 VL636(“已过账此入库交货的收货”)。 之后,无法再…

前端入门教程:学完即可单独完成前端项目

目录 目录 1.HTML: 1.1概念 1.2结构 1.3常见的标签使用分类: 2.CSS: 2.1概念 2.2样式实践: 以下的举例都来自于博客: 2.3css选择器: 什么是css选择器: 举例如下: 2.4Demo 3.JavaScript&#…

什么台灯最好学生晚上用?学生晚上用的护眼台灯推荐

随着人们对健康生活的追求日益增加,越来越多的人开始关注眼睛健康问题。而台灯作为人们日常生活和工作中常用的照明设备之一,护眼台灯的出现成为了人们关注的焦点。那么,作为课业负担比较重的学生群体,有什么护眼台灯是适合他们晚…

echarts - xAxis.type设置time时该如何使用formatter的分级模板

echarts 文档中描述了x轴的多种类型 一、type: ‘value’ ‘value’ 数值轴,适用于连续数据。 此时x轴数据是从零开始,有数据大小的区分。 【注意】 因为xAxis.data是为category服务的,所以xAxis.data里面设置的数据无效。 二、type: ‘ca…

2023回顾

今年遇到最大的问题: 屏幕无故卡死,原因各种各样,至今虽说已排查了大部分的原因,也规避掉了一些可能问题,但随着新功能的添加,还是有可能不小心引入。 期间的解决方案也发布在Qt 屏幕偶发性失灵_qt 虚拟键盘…

Springboot+RocketMQ通过事务消息优雅的实现订单支付功能

目录 1. 事务消息 1.1 RocketMQ事务消息的原理 1.2 RocketMQ订单支付功能设计 1. 事务消息 RocketMQ的事务消息,是指发送消息事件和其他事件需要同时成功或同时失败。比如银行转账, A银行的某账户要转一万元到B银行的某账户。A银行发送“B银行账户增加…

如何让GPT支持中文

上一篇已经讲解了如何构建自己的私人GPT,这一篇主要讲如何让GPT支持中文。 privateGPT 本地部署目前只支持基于llama.cpp 的 gguf格式模型,GGUF 是 llama.cpp 团队于 2023 年 8 月 21 日推出的一种新格式。它是 GGML 的替代品,llama.cpp 不再…

记一次JSF异步调用引起的接口可用率降低

前言 本文记录了由于JSF异步调用超时引起的接口可用率降低问题的排查过程,主要介绍了排查思路和JSF异步调用的流程,希望可以帮助大家了解JSF的异步调用原理以及提供一些问题排查思路。本文分析的JSF源码是基于JSF 1,7.5-HOTFIX-T6版本。 起因 问题背景…

强化学习的数学原理学习笔记 - Actor-Critic

文章目录 概览:RL方法分类Actor-CriticBasic actor-critic / QAC🟦A2C (Advantage actor-critic)Off-policy AC🟡重要性采样(Importance Sampling)Off-policy PGOff-policy AC 🟦DPG (Deterministic AC) 本…

使用fs.renameSync(oldPath,newPath)方法,报错Error: ENOENT: no such file or directory

报错翻译:由于文件或目录不存在导致的。 解决方法:查看给定的路径,确保路径和文件名正确,并且文件或目录确实存在。

C语言--结构体详解

C语言--结构体详解 1.结构体产生原因2.结构体声明2.1 结构体的声明2.2 结构体的初始化2.3结构体自引用 3.结构体内存对齐3.1 对齐规则3.2 为什么存在内存对齐3.3 修改默认对⻬数 4. 结构体传参 1.结构体产生原因 C语言将数据类型分为了两种,一种是内置类型&#xf…

Spring学习 Spring事务控制

7.1.事务介绍 7.1.1.什么是事务? 当你需要一次执行多条SQL语句时,可以使用事务。通俗一点说,如果这几条SQL语句全部执行成功,则才对数据库进行一次更新,如果有一条SQL语句执行失败,则这几条SQL语句全部不…

2.SPSS数据文件的建立和管理

文章目录 数据文件的特点建立SPSS数据文件步骤 数据文件的结构变量的规则 数据的录入和保存录入数据保存文件 数据的编辑数据定位 数据文件的特点 SPSS数据库文件包括文件结构和数据两部分 SPSS数据文件中的一列数据称为一个变量。每个变量都应有一个名称,即&…

面试算法100:三角形中最小路径之和

题目 在一个由数字组成的三角形中,第1行有1个数字,第2行有2个数字,以此类推,第n行有n个数字。例如,下图是一个包含4行数字的三角形。如果每步只能前往下一行中相邻的数字,请计算从三角形顶部到底部的路径经…

centos7新建普通用户并设置分组和密码

sudo -i获取root权限 添加分组group1 groupadd group1 添加用户并设置分组为group1密码为password1 useradd user1 -g group1 -p password1 su user1 切换到 user1

第7章-第6节-Java中的Map集合

1、HashMap: 1)、 引入 如果业务需要我们去用姓名的拼音手写字母匹配完整姓名,那么如果用单列数据,我们可能需要两个集合才能存储,而且两个集合之间没有关联不好操作,这种时候双列数据就会起很大作用 2&…

Mysql : command not found

1.Mysql : command not found 安装成功的mysql,并且服务已经启动,查看进行是可以看到的,但是使用命令登录操作,却抛出错误:command not found。 2.解决方案 2.1 查看/usr/bin目录下是否有mysql服务连接 ls /usr/bin…

服务网格 Service Mesh

什么是服务网格? 服务网格是一个软件层,用于处理应用程序中服务之间的所有通信。该层由容器化微服务组成。随着应用程序的扩展和微服务数量的增加,监控服务的性能变得越来越困难。为了管理服务之间的连接,服务网格提供了监控、记…

Linux 期末复习

Linux 期末复习 计算机历史 硬件基础 1,计算机硬件的五大部件:控制器、运算器、存储器、输入输出设备 2,cpu分为精简指令集(RISC)和复杂指令集(CISC) 3,硬件只认识0和1,最小单位是bit,最小存储单位是字…

应用统计学期末复习简答题

应用统计学期末复习简答题 1.解释众数、中位数和调和平均数。2、什么是普查?其有何特点和作用?3、什么是抽样调查?其有何特点和作用?4、什么是偏度系数,并解释左偏分布、对称分布和右偏分布。5、解释置信区…