目录
前言
robogym是一个基于Open AI gym和MUJOCO物理引擎的仿真框架。提供了适合机器人进行遥操作和强化学习的环境,在linux下很容易安装使用。楼主希望借助诺亦腾运动捕获数据手套,在此环境中实现遥操作控制,但是数据手套只能在windows系统中使用,故尝试在windows下配置robogym。
一、环境内容
二、使用步骤
1.mujoco_py的安装
网上有很多关于win10安装教程,这里只做简略介绍
1)获取mujoco的license并安装
2)将mujoco写入系统环境变量
3)VS Build Tools安装
注意:很多人安装时会报vs的错误,这里的建议是把所有的win10SDK都勾上
4)安装mujoco_py
Win+R启动cmd,在命令提示符内输入以下命令:
pip install mujoco_py
推荐采用以下方法:
在指定的任意文件夹下输入以下命令:
git clone git@github.com:openai/mujoco-py.git
pip install -e .
2.jsonnet的安装
在Windows上搭建robogym失败的原因主要是因为Josnnet的依赖包安装失败。这个包是在Linux上开发使用的,对windows的支持做的不是很好。幸运的是网上已经有了解决办法,楼主通过参考以下两个链接安装成功。
https://github.com/google/jsonnet/issues/476
https://blog.csdn.net/Charchunchiu/article/details/106889083
注意事项:
1.Lib和libs文件夹要区分开
2.最后的vcruntime140.dll文件要从自己的python文件的根目录复制到libs文件夹下。楼主分享的文件可能与你的python不兼容
3.robogym的安装
在完成了以上的准备步骤之后,正式的安装过程就变得尤为轻松了。根据官网的教程,在指定的文件夹下输入以下命令即可。
pip install git+https://github.com/openai/robogym.git
三、运行BUG
楼主罗列了几个在linux下没有错误而在windows系统下报错的问题。
1.命令行参数传递错误
运行官方里的例子
python robogym/scripts/examine.py robogym/envs/rearrange/blocks.py parameters='@{"simulation_params": {"num_objects": 5}}'
会发现有个参数传递的错误
解决办法:参数传递部分将双引号写在外面,单引号写在里面,即可解决问题。
具体原因是啥不知道,但windows命令行会有引号传递的问题,求大神解释。
python robogym/scripts/examine.py robogym/envs/rearrange/blocks.py parameters="@{'simulation_params': {'num_objects': 5}}"
2.导入模型错误
mujoco_py.load_model_from_xml 函数名报错
楼主发现需要导入的xml的内容本身是不存在问题,可能的原因是load_model_from_xml这个函数windows下存在问题,解决的办法是将xml的内容保存成文件,在使用路径进行导入。
将.\robogym\robogym\mujoco\mojuco_xml.py文件中的build函数改成如下形式
1.将output_filename改成指定的文件名,注意以.xml结尾
2.将load_model_from_xml函数改为load_model_from_path使用
3.随机数上限
numpy的随机整数上限
np.random.randint(0,2 ** 32 -1)会导致超过上限
楼主目前的解决办法是将上限改小。
在.\robogym\wrappers\.utilspy文件中的以下内容做修改
总结
在完成了以上的操作后,在命令行中输入
python robogym/scripts/examine.py robogym/envs/rearrange/ycb.py parameters="@{'simulation_params': {'num_objects': 5}}" --teleoperate
即可完成对仿真环境的遥操作,大工造成!
后续楼主会更新基于本框架,多指灵巧手整理桌面的遥操作环境。
欢迎有问题的小伙伴们提问。