Mujoco xml建模学习<二>
Mujoco xml

 

先建立基本场景

worldbody的一些属性

1 light 灯光

2 geom 外观,涉及到尺寸,位置等


 <mujoco model="darwin v1.31">
    <compiler angle="radian" inertiafromgeom="true" meshdir="meshes/"/>
    <size nconmax="100" njmax="500" nstack="-1"/>
    <default>
        <geom material="MatFrame" margin='0.001' />
        <joint limited='true'  frictionloss="0.2" damping="1.06" armature="0.011" axis="0 0 1" pos="0 0 0"/>
        <position ctrllimited='true' kp='2.65'/>
    </default>
    <asset>       
        <texture type="skybox" builtin="gradient" rgb1="1 1 1" rgb2="0 0 0" width="100" height="100"/>
        <texture name="groundplane" type="2d" builtin="checker" rgb1=".7 .7 .75" 
            rgb2=".9 .9 .95" width="500" height="500" mark="edge" markrgb=".1 .1 .1"/>

        <material name="MatPlastic" specular=".8" shininess=".6" reflectance="0.5" rgba=".4 .41 .4 1"/>
        <material name="MatFrame" specular="1.2" shininess=".1" reflectance="0.5" rgba=".21 .2 .2 1"/>
        <material name="MatGnd" texture="groundplane"  texrepeat="5 5" specular=".5" shininess=".01" reflectance="0.1"/>
   </asset>

 
    <worldbody>
        <light directional="false" cutoff="60" exponent="1" diffuse=".5 .5 .5" specular=".1 .1 .1" pos="0.5 0.1 0.8" dir="-0.5 -0.1 -0.8"/>
        <geom name="ground" pos="0 0 0" size="5 5 5" material="MatGnd" type="plane"/>
 
    </worldbody>
</mujoco>


效果:

以上来自Feisy


   <body name="pelvis" pos="0 0 0.45">
      <joint type="hinge" limited='false' axis="1 0 0" />
      <geom  type="cylinder"  size="0.005 0.1"/>
      <body name="l_leg" pos="0 0.0 -0.22" euler="0 0 0">
         <joint type="hinge" limited='false'  axis="1 0 0"  pos="0 0 0"/>
           <geom  type="cylinder" size="0.01 0.1"/>
      </body>
  </body>
  

这里需要注意一下,这里的pos是本连杆的体坐标系在上一个连杆的体坐标系中的坐标,
而不是本连杆的末端在上一个体坐标系中的坐标
看例子就很容易明白了,l_leg,pelvis的长度是0.2,l_leg在pelvis的坐标是0 0 -0.22
两个体坐标系的原点质检的差异是0.22,所以两个连杆之间会有0.02的空隙

 

ieo艾易欧科技


 

Mujoco——xml的官方参考文档

https://mujoco.readthedocs.io/en/latest/XMLreference.html

 

部分解释

一、每个元素的属性顺序无关;父元素下子元素顺序可以任意,除了:

i.body元素下的关节元素的顺序

ii.spatial tendon元素下的元素顺序

iii.重复属性的顺序,以最后一次设置为整个模型参数

iv.快捷键设置的顺序,后者覆盖前者

 

二、element&section

(模板:

     i、元素名称

     属性:参数

    -解释)

 

1、mujoco

属性-model: 类型-string

可以定义这个模型的名称,也是xml必要开头

 

2、compiler

这个元素是用于设置内置解析器和编译器选项。解析和编译后不再有任 何影响。这里的设置是全局性的,适用于整个模型。

boundmass: real , "0"

-提供一个比body更低的边界限制,以解决模型建立不准确问题。注意mujoco没有dummy(虚拟实体)设置。

coordinate[坐标系]:[local , global]   "local" for MJCF, always "local" for URDF

-该属性用于指定文档撰写模型的位置方向是在local还是global的。URDF解析器将属性内部设置为loacl,无法修改。

angle:[radian, degree]

-指定弧度制和角度值。MJCF默认弧度制,urdf默认角度制。

meshdir: string, optional

-string是定位mesh或高度场文件路径。

  texturedir:string , optional

-用于搜寻文档

 

3、optional

timestep:real , "0.002"(实数类型)

-以秒为单位的仿真步长,必须长于CPU时长。

apirate:real , "100"

-套接字API的更新速度。不影响物理仿真。

impratio:real , "1"

-定义较为复杂的摩擦力

gravity:real(3),"0 0 -9.81"

-自然是定义重力的。默认z轴向上。

 

还有wind、density、viscosity、magnetic风、密度、粘度、磁力等物理性质;

 

collision : [all , predefined , dynamic] , "all"

-检测几何碰撞。括号内表示检测对象的选择。

 

4、optional/flag

性质的enable和disable

 

5、asset

texture、hfield、mesh、skin/bone、material

 

6、(world)body

name:string,optional

-命名

childclass: string, optional

-继承设置

mocap:[false , true],"false"

-仅为世界实体下属且没有关节才设置为真。

pos: real(3),optional

-默认(0,0,0)

 

7、body/inertial

pos:real(3),required

-惯性坐标系的位置

quat,axisangle,xyaxes,zaxis,euler

-惯性坐标系方向

mass:real,required

-实体质量。

diainertia:real(3),optional

-对角惯性矩阵,表达相对于惯性坐标系实体的惯性。如果省略则fullinertia必须。

fullinertia:real(6),optional

-3x3的对称阵M,因此只需要六个变量。

 

8、body/joint     在该元素下创建关节,如若没有定义关节,那么实体就是焊接于母体之上的

name:string,optional

class:string,optional

type:[free , ball , slide , hinge],"hinge"

-定义关节类型。

-free-即六自由度关节,就是可以使实体漂浮。

-ball-就是球形关节

-slide-滑动关节

-hinge-铰接关节,有一个转动自由度,并且是默认关节类型

 

group:int,"0"

-整合关节组,方便调用

pose:real(3),"0 0 0"

-关节位置

axis:real(3)," 0 0 1"

-指定旋转轴铰链关节旋转方向;滑动关节的滑动方向。

range:reeal(2),"0  0"

-可以限制所有关节,除了自由关节

damping:real, "0"

-阻尼设置

 

9、body/geom  碰撞的必要条件

name:string,optional

class:string,optional

type: [plane,hfield,sphere,capsule,cylinder,box,mesh],"sphere"

-参数代表了几何形状。

rgba:real(4),"0.5  0.5  0.5  1"

-设置颜色和透明度

mesh:string,optional

-应该指的是,设置为网格时,会参考字符串指定形状生成几何形状。

 

来自https://blog.csdn.net/LEGEND_KL/article/details/114625110


 

Copyright © 深圳市艾易欧科技有限公司 All rights reserved.

 

粤ICP备14038518号