xml建模包括以下_MuJoCo的机器人建模

本文介绍了如何将ROS的URDF模型转换为MuJoCo仿真器适用的机器人模型。内容包括:1) URDF模型的预处理,如将dae文件转为stl,调整mesh文件路径;2) URDF文件的修改,确保兼容MuJoCo,并添加必要的MuJoCo标签;3) 使用MuJoCo工具将URDF转换为xml模型,并测试其基本功能;4) 添加物理参数以增强模型的真实感。该过程对于自定义机器人模型在MuJoCo中的应用至关重要。
摘要由CSDN通过智能技术生成

352277ec539c8f5399b28c2ab0beac2f.png
微信公众号: robot_learning123
分享机器人与人工智能相关的技术与最新进展,欢迎关注与交流。
dual_ur5_husky_mujoco-github​github.com

​MuJoCo是目前机器人强化学习中最流行的仿真器,官方论坛提供了一些常见机器人的模型,但是如果其中没有自己需要的机器人模型,就只能自己建一个了。本文主要记录一下如何根据ROS的URDF模型修改并建立一个MuJoCo的机器人模型。由于官方没有一个详细的过程,所以以下内容也主要是自己的摸索,并不一定完全正确。

MuJoCo最主要的参考资料就是官方文档了,建模部分主要参考Modeling和XML Reference。MuJoCo的模型有三种:xx.mjb(二进制文件), xx.txt, xx.xml,我们常用的还是xml格式的,便于阅读和修改。

1. URDF模型准备

首先,如果是一个比较复杂的机器人模型,需要对其进行一定的修改,才能生成一个能用的MuJoCo模型。此处用到的机器人原始模型如下:

2fe50256d182f3bb68434a9608b0a802.png

1.1 mesh文件

URDF的mesh文件通常有两类:包含材质颜色等信息的dae文件(非必须)与用于碰撞的stl文件。由于MuJoCo并不支持dae文件,只支持stl文件,因此,如果URDF模型中有dae文件,需要全部转换为stl文件。可以使用MeshLab等软件进行转换。

一般ROS系统加载URDF模型,很多都会分开成很多子部分加载,但是MuJoCo是不能识别ROS的package路径的,所以最好把所有的mesh文件单独拷贝到一个文件夹内,同时保持唯一的命名,参考此处。

1.2 URDF文件

ROS系统很多采用xacro格式,此处需要转换成一个单一的urdf文件格式,同时mesh文件改为绝对路径,保证可以找到相应的mesh文件。也要注意把对应的dae文件格式修改为stl文件格式。最后,在xacro/urdf文件添加一些必要的MuJoCo的tag用于控制编译选项。

  <mujoco>
        <compiler 
        meshdir="../meshes_mujoco/" 
        balanceinertia="true" 
        discardvisual="false" />
  </mujoco>

其他tag可以参考链接。meshdir是必须的,如果编译时有以下bug,则需要添加balanceinertia。

Error: inertia must satisfy A + B >= C; use 'balanceinertia' to fix
Object name = inertial_link, id = 3

discardvisual这个tag默认是true,也就是丢掉视觉效果部分,保留碰撞部分。如果模型很复杂,它会把很多mesh文件进行简化,变成球、圆柱、立方体等,视觉效果会差很多,因此建议设为false,具体参考。另外,在MuJoCo的界面,可以通过按键盘数字键0和1进行视觉上的切换(视觉mesh与碰撞mesh)。

从xacro文件生成urdf文件的命令(如果有urdf文件则不需要此步):

rosrun xacro xacro --inorder model.xacro > model.urdf

检查urdf文件:

check_urdf model.urdf

在RViz中可视化:

roslaunch urdf_tutorial display.launch model:=path/to/your/urdf/file

2. 生成基本模型

在确认URDF模型没有问题后,进入MuJoCo的可执行文件夹内执行命令进行转换(如默认的~/mujoco/mujoco200/bin):

$./compile /path/to/model.urdf /path/to/model.mjb
$./compile /path/to/model.urdf /path/to/model.txt
$./compile /path/to/model.urdf /path/to/model.xml

官方说明可以转换成三种模型,我们一般用xml的格式。

$./compile
 Usage: compile infile outfile
  infile can be in mjcf, urdf, mjb format
  outfile can be in mjcf, mjb, txt format

测试生成的基本模型:

$ ./simulate /path/to/model.xml

e94cf3dbd9114f5101bd508cc988ed1e.png
mujoco中的基本模型

3a3742bc9338c5f560bd0d292d217f6f.gif

3. 添加必要参数

由于上面生成的模型只是最基本的模型,仅包含基本的运动学链,缺少物理属性,如此处所说,还需要添加一些其他的tag,具体根据需要可以查看官方文档。

添加光照、地面、桌子等:

90007f556d431dfc4c186e4c7659918a.png

再添加一些更真实的属性:

f0cd8959d1576f9dcddd4eb30790b3e8.png
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值