在使用gym环境进行人形模型站立训练的过程中,我想要将之前ros环境下的机器人urdf模型导入到mujoco环境下,这时候就需要将urdf模型转换为mujoco专用的mjcf模型。但是机器人模型过于复杂,如果手动转换,不仅容易出错,还耗时耗力,所以我们需要安装mujoco下的工具进行自动转换:
(PS:这里放上我使用的开源项目的地址,只需要简单配置环境和运行脚本即可开始人形的站立训练)
https://gymnasium.farama.org/environments/mujoco/humanoid/
首先需要创建一个新的 Python 3.11 或更高版本的环境(mujoco的依赖包colorlogging
包要求 Python 版本必须是 3.11 或更高),保证自己的其他训练环境和依赖不被干扰
以下是我的创建命令:
conda create -n mujocopy311 python=3.11
conda activate mujocopy311
接下来安装urdf转mjcf的工具,如果使用pip命令安装urdf_to_micf工具,会碰见比较尴尬的情况如下,安装之后找不到相关的模组和碰到找不到对应版本的问题(不知道是不是只有我这样):
所以按照我的探索,建议还是从源码安装urdf2mjcf工具并进行源码构建比较好
运行:
git clone https://github.com/kscalelabs/urdf2mjcf.git
cd urdf2mjcf
pip install -e .
安装完成后,如果安装不完全,可能会碰见缺少colorlogging依赖包的情况,
这是因为 colorlogging
并不是一个标准的 Python 包
所以接下来只能单独从源码安装该模块:
git clone https://github.com/kscalelabs/colorlogging.git
cd colorlogging
pip install -e .
然后再次尝试安装 urdf2mjcf
cd ~/OpenLoongROS-master/azureloong_description/urdf/urdf2mjcf
pip install -e .
等待安装完成后,在conda环境中机器人urdf模型目录下运行:
cp -r /home/user/OpenLoongROS-master/azureloong_description/meshes/* /path/to/output/directory
python -m urdf2mjcf.convert AzureLoong.urdf --output custom_robot.xml --copy-meshes
首先将meshes文件迁移到需要输出的目录下,然后再运行转换命令。
其中,-urdf2mjcf.convert是转换命令;-AzureLoong.urdf是机器人模型(我这里使用青龙的模型);--custom_robot.xml是转换完成之后的机器人模型的名字和格式;--copy-meshes,复制机器人meshes文件。
最后就可以成功输出了。