D4RL的Adroit数据集原始环境安装

Adroit介绍

Adroit机械臂数据集是一个用于研究机器人手臂操作的数据集,包含了多种传感器的数据,如RGB-D相机、IMU、力传感器等。该数据集的官方文档和代码可以在以下网址找到:

官方网站:https://sites.google.com/view/deeprl-dexterous-manipulation
D4RL项目中该部分的链接:https://github.com/aravindr93/hand_dapg

D4RL,mujoco,gym三个环境的配置

创建新的环境:decision-transformer-gym

1、Torch安装1.12.1,补充安装D4RL
https://github.com/Farama-Foundation/D4RL
D4RL安装建议通过git下载到本地再pip install -e . 的方式安装
同时打开setup.py文件,注释掉mjrl的安装
2、手动安装mjrl
https://github.com/aravindr93/mjrl
手动pip install 安装h5py、pybullet
这里我开vpn安装,一直失败,后面去掉vpn换上豆瓣源成功安装
这里有两个库比较麻烦,没有配flow、CARLA(这俩是单独的子数据集,不需要)
3、Windows10安装开源Mujoco
https://www.roboti.us/download.html
安装 mujoco200 win64
参考: https://zhuanlan.zhihu.com/p/502112539
报错解决:
https://blog.csdn.net/azeyeazeye/article/details/125102279
4、运行experiment.py文件(DT的官方code,不用DT这个模型不需要这步)
报错:packaging.version.InvalidVersion: Invalid version: ‘0.10.1,<0.11’
解决:pip install packaging==21.3

Adroit的配置(单独)

https://github.com/aravindr93/hand_dapg
下载下来代码,配置mjrl和mj_envs两个库
这里不要安装这个项目github中的链接配置
mjrl已经安装了,通过下面的链接安装mj_envs
https://github.com/Robot-Learning-Library/mj_envs
根据setup.py文件本地配置库(Gym版本从0.18.3变成0.13.0,所以setup.py改一下)亲测0.18.3可以

报错解决:
1、mujoco环境变量没有配置or配置错误
https://blog.csdn.net/azeyeazeye/article/details/125102279
2、Exception: Failed to load XML file: e:
\rl\mj_envs-master\mj_envs\hand_manipulation_suite/assets/DAPG_relocate.xml. mj_loadXML error: b"Error: could not open STL file ‘e:\rl\mj_envs-master\mj_env
s\hand_manipulation_suite/assets/…/…/…/dependencies/Adroit/resources/meshes/forearm_simple.stl’\nObject name = forearm_simple, id = 0, line = 58, column = 9"
在本地的E:\RL\mj_envs-master\dependencies\Adroit下,是空文件,去mj_envs的github库,根据链接点开
vikashplus/Adroit at 0fe8a446c5b580ec49f2458d68747fcebb191fc0 (github.com)
将代码clone到Adroit文件夹下

运行python utils/visualize_demos.py --env_name relocate-v0 即可显示
在这里插入图片描述

Adroit的配置(D4RL中)

D4rL与mj_envs不能同时import,adroit的环境会冲突,200步停止是因为V1 envs里
MAX_STEPS = {‘hammer’: 200, ‘relocate’: 200, ‘door’: 200, ‘pen’: 100}
在这里插入图片描述
在d4rl的文件夹下直接就有Adroit的文件,所以不需要再额外安装

  1. 创建环境与初始化
def wrap_env(
        env: gym.Env,
        state_mean: Union[np.ndarray, float] = 0.0,
        state_std: Union[np.ndarray, float] = 1.0,
        reward_scale: float = 1.0,
) -> gym.Env:
    def normalize_state(state):
        return (state - state_mean) / state_std

    def scale_reward(reward):
        return reward_scale * reward

    env = gym.wrappers.TransformObservation(env, normalize_state)
    if reward_scale != 1.0:
        env = gym.wrappers.TransformReward(env, scale_reward)
    return env

eval_env = wrap_env(
    env=gym.make("door-v0"),
    state_mean=state_mean,
    state_std=state_std,
    reward_scale=config.reward_scale,
)
  1. 可视化
viewer = eval_env.mj_viewer_setup() #创建window
eval_env.viewer.render() #开始渲染
eval_env.viewer._read_pixels_as_in_window() # 返回rgb图片

参考\Lib\site-packages\mujoco_py下面的mjviewer.py

同时还有调出mujoco_py窗口后的一些按键操作
The key bindings are as follows:

- TAB: Switch between MuJoCo cameras.
- H: Toggle hiding all GUI components.
- SPACE: Pause/unpause the simulation.
- RIGHT: Advance simulation by one step.
- V: Start/stop video recording.
- T: Capture screenshot.
- I: Drop into ``ipdb`` debugger.
- S/F: Decrease/Increase simulation playback speed.
- C: Toggle visualization of contact forces (off by default).
- D: Enable/disable frame skipping when rendering lags behind real time.
- R: Toggle transparency of geoms.
- M: Toggle display of mocap bodies.
- 0-4: Toggle display of geomgroups

最后的结果如图所示

在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值