首页 > 其他分享 >简单讲一下Mobile Aloha模拟环境代码

简单讲一下Mobile Aloha模拟环境代码

时间:2024-06-23 14:21:06浏览次数:25  
标签:success 训练 Mobile 代码 py Aloha 神经网络 机械 模拟

Mobile Aloha模拟环境有两部分代码:

1. https://github.com/tonyzhaozh/act   --- 里面有ACT论文的链接

2. https://github.com/MarkFzp/act-plus-plus   --- 这个是我们要介绍的代码

ACT算法全称是 Action Chunking with Transformers, 大体意思是: 用机械臂的n个帧的视频数据和机械臂状态数据来训练和推理, 使用Transformer神经网络;

简单介绍一下代码结构:

1. assets下面是mujoco的配置文件, 里面包含了机械臂的信息;

2. detr下面是神经网络的部分, 参考论文看代码, 大体是VAE+Transformer, 然后还参考了HERT神经网络的一些东西;

3. constants.py下面是一些配置信息, 列如训练数据的目录, 每个episode有多少帧, 摄像头配置等;

4. ee_sim_env.py是environment, 加载mujoco模拟环境, 还写了reward函数, 训练的时候reward生成success信息, 可以方便的检查训练的结果;

5. imitate_episodes.py里面是创建神经网络, 训练和评估; 每500步会执行一次评估, 评估会把success数据放在Weights and Biases中, 我们可以在W and B上看到success信息, 来判断训练的结果;

6. record_sim_episodes.py是生成训练用的演示数据集; 生成的是hdf5文件, 文件包含了每一帧的视频, 每一帧视频对应的机械臂的状态;

7. scripted_policy.py 是一个编写好的机械臂运行轨迹, 参考self.left_trajectory和self.left_trajectory两个变量, 里面定义了机械臂关键帧的状态,总共400帧, 中间帧的机械臂状态插值生成;

8. visualize_episodes.py可以把hdf5的文件读出来, 生成视频和机械臂400帧的状态;

我稍微改了一下代码, 可以在没有显卡的普通PC上跑起来, 顺便把Weights and Biases改为Aim(Weights and Biases收费, Aim免费);

对于Transfer Cube这个任务, 大约20000多次训练之后, success能达到最高;

 

标签:success,训练,Mobile,代码,py,Aloha,神经网络,机械,模拟
From: https://www.cnblogs.com/lijingshanxi/p/18263408

相关文章

  • JAVA【案例5-2】模拟默认密码自动生成
    【模拟默认密码自动生成】1、案例描述本案例要求编写一个程序,模拟默认密码的自动生成策略,手动输入用户名,根据用户名自动生成默认密码。在生成密码时,将用户名反转即为默认的密码。2、案例目的(1)学会分析“模拟默认密码的生成”案例的实现思路(2)根据思路完成“模拟默认密码的......
  • C++入门 vector深度剖析及模拟实现
    目录vector析构函数模拟实现vector赋值拷贝模拟实现vector拷贝构造模拟实现vector构造函数模拟实现类模板的成员函数n个val构造单参数和多参数对象隐式类型转换使用memcpy拷贝问题在上两篇有关vector的模拟实现中,还有构造,拷贝构造,赋值拷贝以及析构函数没有实现,本篇主......
  • 模拟退火算法(Simulated Annealing, SA)及微优化(入门)
    模拟退火算法(SimulatedAnnealing,SA)是一种启发式搜索算法,常用于解决优化问题。该算法以概率的方式搜索问题的解空间,并在搜索过程中逐渐降低温度,从而有助于找到全局最优解。模拟退火算法的基本原理如下:初始化:随机生成一个初始解。迭代过程:生成一个新解,这个新解通过一......
  • YC307A [ 20240622 CQYC省选模拟赛 T1 ] 划船(boat)
    题意给定一个有向图\(G\),以及将所有边反向重连的无向图\(T\)。你最多可以在\(T\)上连续走\(k\)条边,走过每条边的代价都为\(1\),然后必须在\(G\)的对应点上走一条边以恢复体力。若当前对应点没有出边,则停留在该点\(1\)代价。求每个点到\(n\)的最小代价。Sol考......
  • NOIP2024模拟赛13:拆开未来
    NOIP2024模拟赛13:拆开未来C-重复一句话题意:给定字符串\(S\),问\(S\)的所有子串共有多少种“好的拆分方案”。对于一个字符串\(S\),一个划分是好的当且仅当能把\(S\)划分成6个非空子串\(a,b,c,d,e\),满足\(a=b=e,\c=f\)(一个字符串可能有多种划分方式)标签:......
  • [本科项目实训] 行动模拟实现 与 FastAPI 对应交互-V0
    to2024/06/01行动模拟该项目拟通过大语言模型分析拆解人类描述的任务,自动的调用行动库进行执行并完成内容的汇报。因而需要针对任务对大模型进行微调(比如本项目使用的p-tuningv2),行动模拟即针对微调结果将大模型与行动库进行对接,模拟实际场景下的函数输入输出。第一步,即加......
  • HC32L130/HC32L136开发之软件模拟IIC驱动AT24C64
    一、AT24C64电路图二、程序编码1.定义I2C总线连接的GPIO端口/*定义I2C总线连接的GPIO端口,用户只需要修改下面4行代码即可任意改变SCL和SDA的引脚*/#defineRCC_I2C_PORT   SysctrlPeripheralGpio      /*GPIO端口时钟*/#definePORT_I2C_SCL  ......
  • STM32互补PWM模拟(带有Dead Time)
    目录前言一、时基单元基本概念二、时基单元CNT计数模式三、互补PWM模拟1.中央对其计数模式2.引脚模式选择3.输出结果总结前言本文介绍了互补PWM的概念,并且能够使用通用定时器和高级定时器模拟出互补PWM的波形,并且能够调控输出波形占空比和死区时间(DeadTime)。一......
  • 【C++】list的使用方法和模拟实现
    ❤️欢迎来到我的博客❤️前言list是可以在常数范围内在任意位置进行插入和删除的序列式容器,并且该容器可以前后双向迭代list的底层是双向链表结构,双向链表中每个元素存储在互不相关的独立节点中,在节点中通过指针指向其前一个元素和后一个元素list与forward_list非常相似:最......
  • Unity手写模拟DoTween中的To功能
    usingSystem;usingSystem.Collections;usingSystem.Collections.Generic;usingUnityEngine;publicclassDT:MonoBehaviour{publicfloatbeginValue,endValue;publicfloatbeginTime,times;publicAction<float>action;publicAct......