Mujoco XML reference
XML Reference — MuJoCo documentation
参考文档:
MuJoCo自定义机器人建模指南 - 知乎
Mujoco——xml文档参考_LEGEND_KL的博客-CSDN博客
MuJoCo的机器人建模 - 知乎
基本结构
1. mujoco the top-level element
2. include
"supplement1.xml文件"
"主文件"
3.. compiler
4. option
设置了求解器相关的参数
5. default 设置 body中 geom, joint, sensor 等等的 默认参数
default存在继承属性,套在类中的类属于子类,包含父类的所有属性,如果属性重合,那就覆盖该属性。
default 的规则:
1. 顶层的default默认为class,针对所有未标签(同时之前的祖先也都未标签)的body
2. 如果当前body有标签,那么该body使用当前类,同时该body的子类也使用该类,直到出现了新的类标签。(也就是 body使用自己给定的类标签,或者距离最近的有类标签的祖先的类)
另外类中的值只用于初始化,仿真开始就不再重新赋值。
<| -- 设置关节的阻尼 与速度有关-->
IN body
6. worldbody "world" 不可设置质量惯性等,是body的坐标与背景,代表整个空间
body, geom, site的name可以不用指定,如果不需要引用的话。 如果在后续需要使用,必须要设置name。
# 可以设置多个相同层次的body
# 一个body内可以设置多个joint,甚至可以在同约束方向设置两个joint,两个是独立的
#同一个Body可以生成多个geom
四元数,欧拉角:
干货整理:欧拉角、旋转矩阵、四元数合辑 - 知乎
contact
equality
tendon
actuator
对于一个joint只有一个actuator可以起作用。如果定义了多个actuator,那么会出现覆盖。
import mujoco_py
# load the model
model = mujoco_py.load_model_from_xml()
#from xml不太会用,但是path这个可以直接根据路径导进来
model = mujoco_py.load_model_from_path()
# create the simulation
sim = mujoco_py.MjSim(model,data=None,nsubsteps=1,udd_callback=None)
# Method
### get the state
sim.get_state()
### render the view
sim.render(width,height,camera_name(if None, the free),depth(if True, return the depth buffer))
### reset
sim.reset()
### save
sim.save(file,format)
### set_state()
sim.set_state(desired_value)
# PyMjData
class mujoco_py.PyMjData
# render
## 对于 mode=human ,需要开启GUI,则是:
viewer = mujoco_py.MjViewer(sim) # 会生成 viewer
viewer.render() # 会生成 GUI图片
## 对于 mode=rgb_array , 不需要开启GUI,则
viewer = mujoco_py.MjRenderContextOffscreen(sim, device_id=-1) #
data = viewer.render(width,height) # 会生成 image matrix
data = data[::-1,:,:] # 对于上下颠倒的图片,则需要该操作 ::-1 表示 index倒序
PjMjData:
API reference — mujoco-py 1.50.1.0 documentation
Compuation:
Computation — MuJoCo documentation