Mujoco 基本教程

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

Mujoco 基本教程_第1张图片


    
    
     

    
    

    
    

    
    

    
    

    
    

    
    

    
    

    
    

    
    

    
    

    
    

    
    

    
    
    

    
    

    
    

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,那么会出现覆盖。




    

    

    

    


    





Mujoco env construction

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

你可能感兴趣的:(强化学习笔记,RL,Environment,人工智能)