File I/O Utilities#
Genesis 提供文件操作、路径处理以及加载机器人/场景描述的工具。
缓存目录#
Genesis 缓存编译后的内核和处理后的资源:
import genesis as gs
# Get cache directory paths
cache_dir = gs.utils.get_cache_dir()
gsd_cache = gs.utils.get_gsd_cache_dir()
# Get source directory
src_dir = gs.utils.get_src_dir()
URDF 加载#
可以直接加载 URDF(Unified Robot Description Format)文件:
import genesis as gs
gs.init()
scene = gs.Scene()
# Load from file path
robot = scene.add_entity(gs.morphs.URDF(file="path/to/robot.urdf"))
# Load with custom settings
robot = scene.add_entity(gs.morphs.URDF(
file="robot.urdf",
pos=(0, 0, 0),
quat=(0, 0, 0, 1),
fixed=True,
))
scene.build()
URDF 自定义#
# Override link properties
robot = scene.add_entity(gs.morphs.URDF(
file="robot.urdf",
links_props={
"link_name": {
"mass": 1.0,
"inertia": [0.1, 0.1, 0.1],
},
},
))
MJCF 加载#
也支持 MuJoCo XML 格式(MJCF):
# Load MJCF model
robot = scene.add_entity(gs.morphs.MJCF(file="model.xml"))
# With customization
robot = scene.add_entity(gs.morphs.MJCF(
file="model.xml",
pos=(0, 0, 0.5),
))
Mesh 加载#
Genesis 支持多种 mesh 格式:
Format |
Extension |
Notes |
|---|---|---|
OBJ |
|
Wavefront OBJ |
STL |
|
Stereolithography |
PLY |
|
Polygon File Format |
GLB/GLTF |
|
GL Transmission Format |
DAE |
|
COLLADA |
USD |
|
Universal Scene Description |
# Load mesh entity
mesh = scene.add_entity(gs.morphs.Mesh(
file="object.obj",
pos=(0, 0, 0.5),
scale=0.01, # Scale factor
))
资源路径#
Genesis 在以下位置查找资源:
绝对路径(如果提供)
相对于当前工作目录
Genesis 资源目录
# Absolute path
robot = scene.add_entity(gs.morphs.URDF(file="/home/user/robot.urdf"))
# Relative path
robot = scene.add_entity(gs.morphs.URDF(file="robots/my_robot.urdf"))
# Genesis built-in assets
plane = scene.add_entity(gs.morphs.Plane())