两种版本的mujoco安装

作为已经被deepmind收购的仿真软件来说,现在主要包括需要license版本和无需license版本的mujoco两种了,这里主要对安装这两种mujoco及其对应的mujoco-py进行一个介绍

mujoco210

这个版本就比较常见了,我们这里使用的python3.8版本,然后通过pip安装对应的mujoco_py

下载mujoco

这个版本的mujoco已经不需要license文件了,直接去mujoco官网进行下载
https://github.com/google-deepmind/mujoco
进去Releases中选择对应的版本
在这里插入图片描述

可以看到最新的3.3.2版本的,我们这里选择mujoco210-linux-x86_64.tar.gz
,这也是最早开源的mujoco版本了.
在这里插入图片描述

配置环境

仿真环境可以先进行测试,我们进入mujoco文件夹中运行
./simulate …/model/humanoid.xml
在这里插入图片描述
在这里插入图片描述

修改环境变量

我们新建一个.mujoco文件夹,然后把仿真环境放入其中
在这里插入图片描述

很多时候使用mujoco都是需要一个固定的环境变量支持的,这里需要往.bashrc中添加,注意修改为自己的用户名:

gedit ~/.bashrc
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/cyun/.mujoco/mujoco210/bin
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/lib/nvidia

最后我们安装mujoco_py

mujoco_py安装

首先需要安装一些依赖项

sudo apt-get install libglew-dev glew-utils
sudo apt install libosmesa6-dev libgl1-mesa-glx libglfw3

(推荐建立一个虚拟conda环境)接着就可以安装mujoco_py了,注意版本需要稍微考虑一下,所以使用了

pip3 install -U 'mujoco-py<2.2,>=2.1'

注意cython的版本不能太高了:

pip install cython==0.29.24

测试,测试时我们主要需要的是import mujoco_py,这个过程能import那就基本没有问题了:
只要能够import了基本就问题不带了
在这里插入图片描述

import mujoco_py
import os
mj_path = mujoco_py.utils.discover_mujoco()
xml_path = os.path.join(mj_path, 'model', 'humanoid.xml')
model = mujoco_py.load_model_from_path(xml_path)
sim = mujoco_py.MjSim(model)
 
print(sim.data.qpos)
# [0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.]
 
sim.step()
print(sim.data.qpos)
# [-2.09531783e-19  2.72130735e-05  6.14480786e-22 -3.45474715e-06
#   7.42993721e-06 -1.40711141e-04 -3.04253586e-04 -2.07559344e-04
#   8.50646247e-05 -3.45474715e-06  7.42993721e-06 -1.40711141e-04
#  -3.04253586e-04 -2.07559344e-04 -8.50646247e-05  1.11317030e-04
#  -7.03465386e-05 -2.22862221e-05 -1.11317030e-04  7.03465386e-05
#  -2.22862221e-05]

在这里插入图片描述

mujoco131

这个版本是还需要license的版本,并且到2031过期,安装mujoco131与之前类似,只是需要去原mujoco官网进行下载了
https://www.roboti.us/download.html
在这里插入图片描述
处理也是一样的处理,去.mujoco中进行解压,然后往bashrc中添加对应的内容.
当时还叫mjpro版本,并不开源.
在这里插入图片描述
获取license
https://www.roboti.us/license.html,到2031年之前都还能再用
在这里插入图片描述
在这里插入图片描述

gedit ~/.bashrc
export MUJOCO_PY_MJKEY_PATH=/home/cyun/.mujoco/mjkey.txt
export MUJOCO_PY_MJPRO_PATH=/home/cyun/.mujoco/mjpro131

安装mujoco_py
安装前的依赖同上,然后需要的python版本是py3.5,然后再安装对应的mujoco_py版本

待完善2025.5.26

这是mujoco-py的官网库
https://github.com/openai/mujoco-py?tab=readme-ov-file

### 使用URDF文件在MuJoCo中的方法 为了在MuJoCo中使用URDF文件,通常有两种主要方式:直接导入和支持性转换。 #### 直接支持与限制 MuJoCo本身提供了对URDF格式一定程度的支持。可以直接通过`mujoco_py`库加载URDF文件来创建模拟环境[^1]。然而需要注意的是,尽管MuJoCo能够解析大部分标准的URDF定义,但对于某些特定于其他仿真平台(如Gazebo)扩展标签可能不完全兼容。对于这些情况,则需要额外处理或调整原始URDF文件以适应MuJoCo的要求。 ```python from mujoco_py import load_model_from_path, MjSim model = load_model_from_path('path_to_urdf_file.urdf') sim = MjSim(model) ``` #### 转换工具的应用 另一种更为推荐的方法是利用专门设计用于不同机器人描述格式之间相互转换的工具来进行预处理。例如,可以借助`pybullet`或其他第三方库先将URDF文件转化为更贴近MuJoCo需求的形式——即MJCF(Model Description Format),然后再将其引入到MuJoCo环境中去运行[^2]。 具体操作如下: 1. 安装必要的Python包; 2. 编写脚本调用相应的API完成从URDF至MJCF的转变过程; ```bash pip install pybullet ``` ```python import pybullet as p p.connect(p.DIRECT) # 加载urdf并保存为mjcf/xml形式 obj_id = p.loadURDF("example_robot.urdf") xml_string = p.getPhysicsEngineParameters(physicsClientId=obj_id)['xmlString'] with open('converted_model.xml', 'w') as f: f.write(xml_string.decode()) p.disconnect() ``` 上述代码片段展示了如何使用PyBullet作为中介桥梁实现两种格式间的过渡。值得注意的是,在实际应用过程中还需考虑更多细节上的匹配问题以及性能优化等方面的工作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

白云千载尽

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值