知識(shí)點(diǎn):
1、關(guān)于yaml
python:yaml模塊
一、yaml文件介紹
YAML是一種簡(jiǎn)潔的非標(biāo)記語(yǔ)言。其以數(shù)據(jù)為中心,使用空白,縮進(jìn),分行組織數(shù)據(jù),從而使得表示更加簡(jiǎn)潔。
yaml文件規(guī)則
基本規(guī)則:
大小寫(xiě)敏感
使用縮進(jìn)表示層級(jí)關(guān)系
縮進(jìn)時(shí)不允許使用Tab鍵,只允許使用空格。
縮進(jìn)的空格數(shù)目不重要,只要相同層級(jí)的元素左側(cè)對(duì)齊即可
使用#表示注釋
字符串可以不用引號(hào)標(biāo)注-
yaml文件數(shù)據(jù)結(jié)構(gòu)
對(duì)象:鍵值對(duì)的集合(簡(jiǎn)稱(chēng) "映射或字典")
鍵值對(duì)用冒號(hào) “:” 結(jié)構(gòu)表示,冒號(hào)與值之間需用空格分隔
數(shù)組:一組按序排列的值(簡(jiǎn)稱(chēng) "序列或列表")
數(shù)組前加有 “-” 符號(hào),符號(hào)與值之間需用空格分隔
純量(scalars):?jiǎn)蝹€(gè)的、不可再分的值(如:字符串、bool值、整數(shù)、浮點(diǎn)數(shù)、時(shí)間、日期、null等)
None值可用null可 ~ 表示
二、安裝yaml
pip命令: pip install PyYaml
引入:import yaml
用python讀取yaml文件如下:
代碼:
import yaml
from Common.dir_config import *
2、關(guān)于Mujoco
在MuJoCo中,模型是使用XML文件定義的,這些文件要么是以物理引擎的原生MJCF格式編寫(xiě)的,要么是以更著名的URDF格式編寫(xiě)的。MJCF模型可以代表具有廣泛特征和模型元素的復(fù)雜動(dòng)態(tài)系統(tǒng),MJCF建模語(yǔ)言可以被認(rèn)為是建模格式和編程語(yǔ)言之間的混合。在編譯時(shí),以MJCF或URDF格式表示的純文本XML文件被編譯成一個(gè)低級(jí)MJCF模型,用于模擬和計(jì)算。
MuJoCo提供了建模柔體的可能性。軟體被建模為復(fù)合物體,由一組剛體組成。根據(jù)需要建模的柔體類(lèi)型,可以將剛體集合組織為一維、二維或三維網(wǎng)格。復(fù)合物體本質(zhì)上是一個(gè)由剛體組成的粒子系統(tǒng)。但是,可以通過(guò)模擬柔性對(duì)象的方式約束粒子一起移動(dòng)。

軟3D對(duì)象特別有趣,因?yàn)樗鼈兛梢杂脕?lái)模擬人體軀干。軟3D對(duì)象的示例如圖2.3所示。在這里,粒子沿著外殼形成網(wǎng)格,與密集的3D網(wǎng)格相比,有效地減少了建模3D對(duì)象所需的粒子數(shù)量。為了模擬柔性對(duì)象的柔軟度,每個(gè)粒子都有一個(gè)遠(yuǎn)離網(wǎng)格中心的滑動(dòng)關(guān)節(jié)。這些關(guān)節(jié)允許軟物體的表面在任何點(diǎn)壓縮和膨脹。為了使軟對(duì)象在變形后保持其形狀,并使變形本身平滑,關(guān)節(jié)都被平等地約束到其初始位置和相鄰關(guān)節(jié)。最后,為了保持對(duì)象的體積,所有關(guān)節(jié)位移的總和應(yīng)該是常數(shù)。
MuJoCo使用軟接觸模型。這類(lèi)模型通常用于模擬軟手指和剛性物體之間的接觸,允許手指在接觸點(diǎn)施加相對(duì)于法線的附加扭矩。
Mujoco的接觸模型與標(biāo)準(zhǔn)LCP(線性互補(bǔ)問(wèn)題)接觸模型的不同之處在于,它完全放棄了互補(bǔ)約束?;パa(bǔ)約束規(guī)定,接觸法向上的力和速度不能同時(shí)為正,這是LCP公式的一個(gè)重要部分。移除約束將LCP模型轉(zhuǎn)換為凸模型。因此,MuJoCo的接觸模型可以看作是凸的。
基于所有物理材料在現(xiàn)實(shí)中都允許一些變形的觀點(diǎn),消除了互補(bǔ)性約束,基本上使所有類(lèi)型的物理接觸變軟。對(duì)于軟接觸,必須排除互補(bǔ)約束:當(dāng)存在穿透且材料推動(dòng)接觸體零件時(shí),法向力和速度均為正。因此,當(dāng)假設(shè)現(xiàn)實(shí)世界中的所有觸點(diǎn)都是軟觸點(diǎn)時(shí),該約束會(huì)對(duì)模擬施加不現(xiàn)實(shí)的限制。
接觸模型進(jìn)一步基于點(diǎn)接觸。接觸點(diǎn)在幾何上由兩個(gè)接觸剛體和以該點(diǎn)為中心的空間框架之間的點(diǎn)定義。接觸體和空間框架之間的點(diǎn)都用全局坐標(biāo)表示。這個(gè)??-空間框架的軸指向接觸法線方向,而其余兩個(gè)軸跨越切線平面。當(dāng)兩個(gè)物體分開(kāi)時(shí),接觸距離定義為正,當(dāng)它們接觸時(shí)為零,當(dāng)它們穿透時(shí)為負(fù)。接觸點(diǎn)位于沿法向軸的兩個(gè)表面之間的中間。
3、Robosuite相關(guān)
仿真模型由任務(wù)對(duì)象定義,任務(wù)對(duì)象封裝了機(jī)器人仿真的三個(gè)關(guān)鍵組成部分。這些組件包括機(jī)器人模型、對(duì)象模型和環(huán)境場(chǎng)景arena。因此,一項(xiàng)任務(wù)可以由一個(gè)或多個(gè)機(jī)器人組成,而不是由多個(gè)物體和一個(gè)arena場(chǎng)組成。機(jī)器人模型由機(jī)器人模型和相應(yīng)抓取器模型組成,兩者都指定為XML文件。對(duì)象模型可以從XML文件加載,也可以通過(guò)編程API按程序生成。機(jī)器人的工作空間在競(jìng)技場(chǎng)中定義。競(jìng)技場(chǎng)包括環(huán)境裝置及其放置,例如帶有位置和方向的桌面。任務(wù)類(lèi)將機(jī)器人模型、對(duì)象模型和競(jìng)技場(chǎng)組合成一個(gè)XML對(duì)象,該對(duì)象由MuJoCo的MJCF建模語(yǔ)言指定。
