YAML:
sceneclassSceneConfigScene
Declaratively describes the simulation world: base environment, robots, objects, sensors, and lights. SceneManager instantiates and injects all entities at runtime.
Top-level Fields8
| Field | Type | Required | Default | Description / Constraints |
|---|---|---|---|---|
name | string | optional | — | Scene name |
position | list[3] | optional | [0.0, 0.0, 0.0] | Scene base position [x, y, z] in meters |
rotation | list[4] | optional | [1.0, 0.0, 0.0, 0.0] | Scene base rotation as quaternion [w, x, y, z] ⚠Must be a unit quaternion: w²+x²+y²+z²=1 |
base_config | BaseConfig | optional | — | Ground / environment config; type selected via the stereotype field |
robot_cfg_dict | dict[str, RobotConfig] | optional | {} | Robot config dict; key is instance name, accessed via SceneManager.get_robot(name) |
object_cfg_dict | dict[str, ObjectConfig] | optional | {} | Scene object config dict; key is instance name |
sensor_cfg_dict | dict[str, SensorConfig] | optional | {} | Sensor config dict; key is instance name |
light_cfg_dict | dict[str, LightConfig] | optional | {} | Light source config dict; key is instance name |
BaseConfig: Ground & Environment (base_config)
Each scene has exactly one Base that defines the physics ground or loads a full environment USD. The concrete subclass is selected by stereotype.
class
GroundPlaneBaseConfigstereotypeground_planeextendsBaseConfig, SpawnableConfigfastsim/unisim/bases/models/ground_plane_base.py| Field | Type | Required | Default | Description / Constraints |
|---|---|---|---|---|
ground_plane_size | list[2] | optional | [10.0, 10.0] | Ground visual size [x, y] in meters; physics extends infinitely ⚠Each value must be > 0 |
Inherited fromSpawnableConfig5
| Field | Type | Required | Default | Description / Constraints |
|---|---|---|---|---|
stereotype | string | required | — | "ground_plane" |
name | string | required | — | Entity name ⚠1-100 chars, no / or \ |
prim_path | string | optional | — | USD prim path ⚠Must start with / |
position | list[3] | optional | [0.0, 0.0, 0.0] | Position [x, y, z] in meters |
rotation | list[4] | optional | [1.0, 0.0, 0.0, 0.0] | Rotation (quaternion [w, x, y, z]) |
class
UsdBaseConfigstereotypeusdextendsBaseConfig, SpawnableConfigfastsim/unisim/bases/models/usd_base.py| Field | Type | Required | Default | Description / Constraints |
|---|---|---|---|---|
asset_path | string | required | — | Environment USD file path (supports root_key:// protocol) |
source | string | required | local | Asset source ⚠local / remote / platform |
Inherited fromSpawnableConfig5
| Field | Type | Required | Default | Description / Constraints |
|---|---|---|---|---|
stereotype | string | required | — | "usd" |
name | string | required | — | Entity name |
prim_path | string | optional | — | USD prim path |
position | list[3] | optional | [0.0, 0.0, 0.0] | Position [x, y, z] |
rotation | list[4] | optional | [1.0, 0.0, 0.0, 0.0] | Rotation (quaternion) |
class
EmptyBaseConfigstereotypeemptyextendsBaseConfig, SpawnableConfigfastsim/unisim/bases/models/empty_base.pyInherited fromSpawnableConfig4
| Field | Type | Required | Default | Description / Constraints |
|---|---|---|---|---|
stereotype | string | required | — | "empty" — for fully custom physics scenes |
name | string | required | — | Entity name |
position | list[3] | optional | [0.0, 0.0, 0.0] | Position |
rotation | list[4] | optional | [1.0, 0.0, 0.0, 0.0] | Rotation |
class
MeshBaseConfigstereotypemeshextendsBaseConfig, SpawnableConfigfastsim/unisim/bases/models/mesh_base.py| Field | Type | Required | Default | Description / Constraints |
|---|---|---|---|---|
asset_path | string | required | — | Mesh file path (supports root_key:// protocol) |
source | string | required | local | Asset source ⚠local / remote / platform |
scale | list[3] | optional | [1.0, 1.0, 1.0] | Mesh scale [x, y, z] |
enable_collision | bool | optional | true | Whether the mesh participates in collisions; false = visual-only background |
Inherited fromSpawnableConfig4
| Field | Type | Required | Default | Description / Constraints |
|---|---|---|---|---|
stereotype | string | required | — | "mesh" |
name | string | required | — | Entity name |
position | list[3] | optional | [0.0, 0.0, 0.0] | Position |
rotation | list[4] | optional | [1.0, 0.0, 0.0, 0.0] | Rotation |
ObjectConfig: Scene Objects (object_cfg_dict)
class
RigidObjectConfigstereotyperigidextendsObjectConfig, SpawnableConfigfastsim/unisim/objects/models/rigid_object.py| Field | Type | Required | Default | Description / Constraints |
|---|---|---|---|---|
mass | float | optional | null | Object mass in kg; takes priority over density when both set |
density | float | optional | 1000 | Object density in kg/m³; used only when mass is null |
disable_gravity | bool | optional | false | Whether to disable gravity |
kinematic_enabled | bool | optional | false | Enable kinematic mode (not affected by forces) |
disable_rigid_body | bool | optional | false | Disable rigid body properties |
linear_damping | float | optional | null | Linear damping |
angular_damping | float | optional | null | Angular damping |
static_friction | float | optional | 0.8 | Static friction coefficient (overrides any friction material baked in source USD) |
dynamic_friction | float | optional | 0.8 | Dynamic friction coefficient (overrides any friction material baked in source USD) |
restitution | float | optional | 0.0 | Restitution coefficient (0 = no bounce, 1 = perfectly elastic) |
enable_collision | bool | required | true | Enable collision |
primitive_type | enum | optional | — | Primitive shape type (required when source is primitive) ⚠box / sphere / cylinder / cone / capsule / disk |
primitive_radius | float | optional | — | Primitive radius (sphere / cylinder / cone / capsule) |
primitive_size | list[3] | optional | — | Primitive size [x, y, z] (box) |
primitive_height | float | optional | — | Primitive height (cylinder / cone / capsule) |
primitive_axis | string | optional | Z | Primitive axis (cylinder / cone / capsule) ⚠X / Y / Z |
primitive_color | list[3] | optional | null | RGB diffuse color, each component in [0, 1] |
Inherited fromObjectConfig4
| Field | Type | Required | Default | Description / Constraints |
|---|---|---|---|---|
source | string | required | primitive | Asset source ⚠local / remote / platform / primitive |
asset_path | string | optional | — | USD asset path (required when source is local/remote) |
scale | list[3] | optional | [1, 1, 1] | Scale [x, y, z] |
axis_y_up | bool | optional | false | Whether the asset uses Y-up axis |
Inherited fromSpawnableConfig5
| Field | Type | Required | Default | Description / Constraints |
|---|---|---|---|---|
stereotype | string | required | — | "rigid" |
name | string | required | — | Entity name |
prim_path | string | optional | — | USD prim path |
position | list[3] | optional | [0.0, 0.0, 0.0] | Position [x, y, z] |
rotation | list[4] | optional | [1.0, 0.0, 0.0, 0.0] | Rotation (quaternion) |
class
ArticulatedObjectConfigstereotypearticulatedextendsObjectConfig, ArticulationConfig, SpawnableConfigfastsim/unisim/objects/models/articulated_object.pyInherited fromArticulationConfig3
| Field | Type | Required | Default | Description / Constraints |
|---|---|---|---|---|
actuator_cfg_dict | dict[str, ActuatorConfig] | required | {} | Actuator config dict (joint drive groups) |
init_joint_position | dict[str, float] | optional | {} | Initial joint positions |
init_joint_velocity | dict[str, float] | optional | {} | Initial joint velocities |
Inherited fromObjectConfig3
| Field | Type | Required | Default | Description / Constraints |
|---|---|---|---|---|
source | string | required | local | Asset source ⚠local / remote / platform |
asset_path | string | required | — | USD asset path |
scale | list[3] | optional | [1, 1, 1] | Scale |
Inherited fromSpawnableConfig4
| Field | Type | Required | Default | Description / Constraints |
|---|---|---|---|---|
stereotype | string | required | — | "articulated" |
name | string | required | — | Entity name |
position | list[3] | optional | [0.0, 0.0, 0.0] | Position |
rotation | list[4] | optional | [1.0, 0.0, 0.0, 0.0] | Rotation |
class
SoftObjectConfigstereotypesoftextendsObjectConfig, SpawnableConfigfastsim/unisim/objects/models/soft_object.py| Field | Type | Required | Default | Description / Constraints |
|---|---|---|---|---|
mass | float | required | 0.1 | Total object mass in kg |
density | float | required | 1000 | Object density in kg/m³ |
youngs_modulus | float | optional | 10000 | Young's modulus for volumetric soft body (Pa) |
poissons_ratio | float | optional | 0.3 | Poisson's ratio, lateral-to-axial strain ratio ⚠Must be in [0, 0.5) |
damping | float | optional | 0.01 | Global damping coefficient |
dynamic_friction | float | optional | 0.5 | Dynamic friction coefficient |
static_friction | float | optional | 0.5 | Static friction coefficient |
stretch_stiffness | float | optional | 10000 | Stretch stiffness (N/m), cloth only |
shear_stiffness | float | optional | 1000 | Shear stiffness (N/m), cloth only |
bending_stiffness | float | optional | 10.0 | Bending stiffness (N·m), cloth only |
pressure | float | optional | 0.0 | Internal pressure (Pa) for inflatable bodies; 0 disables |
soft_body_type | enum | optional | volumetric | Soft-body model type hint for the simulator ⚠cloth / volumetric / inflatable |
simulation_hex_mesh | bool | optional | false | Use hexahedral mesh for volumetric FEM; defaults to tetrahedral |
particle_contact_offset | float | optional | 0.02 | Particle contact detection radius (meters) |
solver_position_iterations | int | optional | 16 | Position-projection iterations per step ⚠>= 1 |
enable_collision | bool | required | true | Enable collision with other objects |
self_collision | bool | optional | false | Enable self-collision within the soft body |
disable_gravity | bool | optional | false | Disable gravity for the soft body |
Inherited fromObjectConfig4
| Field | Type | Required | Default | Description / Constraints |
|---|---|---|---|---|
source | string | required | primitive | Asset source ⚠local / remote / platform / primitive |
asset_path | string | optional | — | USD asset path |
scale | list[3] | optional | [1, 1, 1] | Scale |
axis_y_up | bool | optional | false | Asset uses Y-up axis |
Inherited fromSpawnableConfig5
| Field | Type | Required | Default | Description / Constraints |
|---|---|---|---|---|
stereotype | string | required | — | "soft" |
name | string | required | — | Entity name |
prim_path | string | optional | — | USD prim path |
position | list[3] | optional | [0.0, 0.0, 0.0] | Position |
rotation | list[4] | optional | [1.0, 0.0, 0.0, 0.0] | Rotation |
RobotConfig: Robot (robot_cfg_dict)
PlannerConfig is a nested config extended by user-defined planner implementations; base robot fields are in RobotConfig, concrete subclass selected by stereotype.
class
GeneralRobotConfigstereotypegeneral_robotextendsRobotConfig, ArticulationConfig, SpawnableConfigfastsim/unisim/robots/models/general_robot.pyInherited fromRobotConfig4
| Field | Type | Required | Default | Description / Constraints |
|---|---|---|---|---|
ee_link_name | string | optional | — | End-effector link name (shorthand for single-arm; use modules.arms for multi-arm) |
ik_joint_names | list[str] | optional | — | Joint names used for IK (defaults to all movable joints) |
use_planner | bool | optional | false | Whether to attach a motion planner (e.g. CuRobo / OMPL) |
planner_cfg | PlannerConfig | optional | — | Planner configuration, active when use_planner is true |
Inherited fromArticulationConfig6
| Field | Type | Required | Default | Description / Constraints |
|---|---|---|---|---|
asset_path | string | required | — | Robot USD asset path |
source | string | required | local | Asset source ⚠local / remote / platform |
actuator_cfg_dict | dict[str, ActuatorConfig] | required | {} | Actuator config dict |
init_joint_position | dict[str, float] | optional | {} | Initial joint positions |
init_joint_velocity | dict[str, float] | optional | {} | Initial joint velocities |
scale | list[3] | optional | [1, 1, 1] | Scale |
Inherited fromSpawnableConfig4
| Field | Type | Required | Default | Description / Constraints |
|---|---|---|---|---|
stereotype | string | required | — | "general_robot" |
name | string | required | — | Entity name |
position | list[3] | optional | [0.0, 0.0, 0.0] | Position |
rotation | list[4] | optional | [1.0, 0.0, 0.0, 0.0] | Rotation |
class
ModularRobotConfigstereotypemodular_robotextendsRobotConfig, ArticulationConfig, SpawnableConfigfastsim/unisim/robots/models/modular_robot.py| Field | Type | Required | Default | Description / Constraints |
|---|---|---|---|---|
base_module | BaseModuleConfig | optional | null | Mobile base module configuration |
arm_modules | dict[str, ArmModuleConfig] | optional | {} | Arm module dict; key is arm name (e.g. left_arm, right_arm) |
extra_modules | dict[str, ExtraModuleConfig] | optional | {} | Extra module dict (e.g. lift column, head) |
Inherited fromArticulationConfig2
| Field | Type | Required | Default | Description / Constraints |
|---|---|---|---|---|
asset_path | string | required | — | Robot USD asset path |
actuator_cfg_dict | dict[str, ActuatorConfig] | required | {} | Actuator config dict |
Inherited fromSpawnableConfig2
| Field | Type | Required | Default | Description / Constraints |
|---|---|---|---|---|
stereotype | string | required | — | "modular_robot" |
name | string | required | — | Entity name |
class
ArmModuleConfigfastsim/unisim/robots/models/modules/arm_module.py| Field | Type | Required | Default | Description / Constraints |
|---|---|---|---|---|
arm_actuator_name | string | required | — | Arm actuator group name (must match key in actuator_cfg_dict) |
ee_link_name | string | optional | — | End-effector link name for IK, EE pose, and planner |
ee_type | string | optional | none | End-effector type ⚠gripper / dexterous_hand / none |
ee_actuator_name | string | optional | — | End-effector (gripper/hand) actuator group name |
planner_cfg | PlannerConfig | optional | — | Per-arm planner config (overrides robot-level planner) |
ee_convention | string | list[4] | optional | z | EE forward axis convention. String for gripper axis (z / -x / etc.), quaternion [w,x,y,z] for dexterous hand |
class
BaseModuleConfigfastsim/unisim/robots/models/modules/base_module.py| Field | Type | Required | Default | Description / Constraints |
|---|---|---|---|---|
base_actuator_name | string | required | — | Base actuator group name |
base_type | string | optional | differential | Base kinematics type ⚠differential / omnidirectional / ackermann / legged |
wheel_separation | float | optional | null | Wheel separation in meters (differential/omnidirectional) |
wheel_radius | float | optional | null | Wheel radius in meters |
locomotion_cfg | dict | optional | null | Legged locomotion controller config (used when base_type is legged); see LeggedLocomotionConfig |
planner_cfg | PlannerConfig | optional | null | Base navigation planner config (e.g. A*+DWA / curobo_mpc_nav) |
virtual_base_link_name | string | optional | null | Virtual base link name (used for planning in virtual base frame, paired with BaseActuatorConfig.virtual_base_link_name) |
class
ExtraModuleConfigfastsim/unisim/robots/models/modules/extra_module.py| Field | Type | Required | Default | Description / Constraints |
|---|---|---|---|---|
actuator_name | string | required | — | Actuator group name for this module (e.g. lift column, head gimbal) |
class
PlannerConfigfastsim/configs/scene_cfg.py| Field | Type | Required | Default | Description / Constraints |
|---|---|---|---|---|
name | string | optional | default_planner_name | Planner name |
stereotype | string | required | — | Planner type ⚠curobo / ompl / custom |
lazy_init | bool | optional | false | Lazy initialization (load on first use) |
class
CuroboPlannerConfigstereotypecuroboextendsPlannerConfigfastsim/planner/planners/curobo/curobo_planner_cfg.py| Field | Type | Required | Default | Description / Constraints |
|---|---|---|---|---|
device | string | optional | cuda | Compute device ⚠cpu / cuda |
robot_config_file | string | required | — | Robot URDF/asset path |
world_config_file | string | optional | — | Collision world config file |
world_config_source | string | optional | stage | Collision world source ⚠stage / config_file |
world_stage_ignore_substrings | list[str] | optional | [] | Path substrings to ignore when building collision world from stage |
world_stage_only_paths | list[str] | optional | ["/World"] | Only include these stage paths |
world_stage_reference_prim_path | string | optional | null | Stage reference prim path ⚠Must start with / |
interpolation_dt | float | optional | 0.0167 | Trajectory interpolation timestep in seconds |
attach_surface_sphere_radius | float | optional | 0.001 | Attach surface sphere radius |
collision_activation_distance | float | optional | 0.02 | Collision activation distance in meters |
use_cuda_graph | bool | optional | false | Whether to use CUDA Graph for acceleration |
warmup_enable | bool | optional | true | Run motion_gen.warmup() after MotionGen init. False = skip ~7 warmup plans (slow first plan but good for one-shot data generation; bad for long-running multi-plan loops) |
warmup_js_trajopt | bool | optional | true | Include 3x joint-space trajopt warmups. Set False if you only ever call cartesian planning (FastSim gen_motion_plan does) |
warmup_graph | bool | optional | true | Include graph-search warmup and 1x cartesian-with-graph warmup. Set False if you never plan with enable_graph=True |
class
OmplPlannerConfigstereotypeomplextendsPlannerConfigfastsim/planner/planners/ompl/ompl_planner_cfg.py| Field | Type | Required | Default | Description / Constraints |
|---|---|---|---|---|
robot_urdf_path | string | required | — | Robot URDF file path for collision model |
ee_link_name | string | optional | — | End-effector link name |
planning_algorithm | string | optional | RRTConnect | Planning algorithm ⚠RRTConnect / RRTstar / PRM / BITstar / LazyPRM / KPIECE / EST / SBL |
planning_time | float | optional | 5.0 | Planning time limit in seconds |
interpolation_resolution | float | optional | 0.01 | Trajectory interpolation resolution |
collision_check_resolution | float | optional | 0.01 | Collision check resolution |
range | float | optional | 0.0 | RRT range; 0 = auto |
simplify_path | bool | optional | true | Whether to simplify the planned path |
num_ik_samples | int | optional | 100 | Number of IK samples |
class
AStarDWAPlannerConfigstereotypeastar_dwaextendsNavigationPlannerConfig, PlannerConfigfastsim/planner/planners/astar_dwa/astar_dwa_planner_cfg.py| Field | Type | Required | Default | Description / Constraints |
|---|---|---|---|---|
max_speed | float | required | 0.5 | DWA max linear speed (m/s) |
min_speed | float | required | -0.2 | DWA min linear speed (negative = reverse) |
max_yaw_rate | float | required | 1.0 | DWA max yaw rate (rad/s) |
max_accel | float | required | 0.3 | DWA max linear acceleration (m/s²) |
max_delta_yaw_rate | float | required | 1.0 | DWA max yaw rate change (rad/s²) |
v_resolution | float | required | 0.02 | Linear velocity sampling resolution (m/s) |
yaw_rate_resolution | float | required | 0.05 | Yaw rate sampling resolution (rad/s) |
dt | float | required | 0.1 | DWA prediction time step (s) |
predict_time | float | required | 2.0 | DWA prediction horizon (s) |
to_goal_cost_gain | float | required | 0.3 | DWA heading-to-goal cost weight |
speed_cost_gain | float | required | 1.0 | DWA speed cost weight |
obstacle_cost_gain | float | required | 1.0 | DWA obstacle avoidance cost weight |
path_cost_gain | float | required | 0.5 | DWA global path following cost weight |
goal_pos_tolerance | float | required | 0.1 | Goal position tolerance (m) |
goal_angle_tolerance | float | required | 0.2 | Goal angle tolerance (rad) |
Inherited fromNavigationPlannerConfig3
| Field | Type | Required | Default | Description / Constraints |
|---|---|---|---|---|
map_resolution | float | optional | 0.05 | Grid resolution |
robot_radius | float | required | 0.2 | Robot collision radius |
obstacle_ignore_substrings | list[str] | optional | [] | Obstacle ignore substrings |
SensorConfig: Sensor (sensor_cfg_dict)
class
CameraConfigstereotypecameraextendsSensorConfig, SpawnableConfigfastsim/unisim/sensors/models/camera.py| Field | Type | Required | Default | Description / Constraints |
|---|---|---|---|---|
data_types | list[str] | required | ["rgb"] | List of data types to collect ⚠rgb / depth / semantic_segmentation / instance_segmentation / normals |
width | int | required | 640 | Image width in pixels |
height | int | required | 480 | Image height in pixels |
camera_model | enum | optional | pinhole | Camera model type ⚠pinhole / fisheye |
fix_camera | bool | optional | false | Whether to fix camera pose |
clip_range | list[2] | optional | [0.001, 1000.0] | Depth clip range [near, far] in meters |
focal_length | float | optional | 24.0 | Focal length in mm |
focus_distance | float | optional | 400.0 | Focus distance |
f_stop | float | optional | 0.0 | F-stop value (0 = disable depth of field) |
horizontal_aperture | float | optional | 20.955 | Horizontal aperture |
vertical_aperture | float | optional | null | Vertical aperture (null = auto-calculated) |
horizontal_aperture_offset | float | optional | 0.0 | Horizontal aperture offset |
vertical_aperture_offset | float | optional | 0.0 | Vertical aperture offset |
attach_to | AttachToConfig | optional | — | Attach configuration (mount to an entity or link) |
look_at | LookAtConfig | optional | — | Look-at configuration (point toward a target or coordinate) |
convention | enum | optional | world | Coordinate convention ⚠world (+X:forward +Z:up) / opengl (-Z:forward +Y:up) / ros (+Z:forward -Y:up) |
Inherited fromSpawnableConfig5
| Field | Type | Required | Default | Description / Constraints |
|---|---|---|---|---|
stereotype | string | required | — | "camera" |
name | string | required | — | Sensor name |
prim_path | string | optional | — | USD prim path |
position | list[3] | optional | [0.0, 0.0, 0.0] | Position [x, y, z] |
rotation | list[4] | optional | [1.0, 0.0, 0.0, 0.0] | Rotation (quaternion) |
LightConfig: Light (light_cfg_dict)
class
GeneralLightConfigstereotypegeneral_lightextendsLightConfig, SpawnableConfigfastsim/unisim/lights/models/general_light.py| Field | Type | Required | Default | Description / Constraints |
|---|---|---|---|---|
light_type | enum | required | — | Light type ⚠distant / sphere / disk |
intensity | float | optional | 1.0 | Light intensity ⚠>= 0 |
exposure | float | optional | 0.0 | Exposure value |
color | list[3] | optional | [1.0, 1.0, 1.0] | Color [r, g, b] in 0–1 range |
visible | bool | optional | true | Whether the light mesh itself is visible in the render |
enable_color_temperature | bool | optional | false | Enable color temperature (overrides color when enabled) |
color_temperature | float | optional | 6500 | Color temperature in Kelvin |
normalize | bool | optional | false | Whether to normalize light intensity |
radius | float | optional | — | Light radius (sphere type) ⚠> 0 |
angle | float | optional | — | Light angle (distant type) |
texture_file | string | optional | — | Texture file path |
Inherited fromSpawnableConfig4
| Field | Type | Required | Default | Description / Constraints |
|---|---|---|---|---|
stereotype | string | required | — | "general_light" |
name | string | required | — | Light name |
position | list[3] | optional | [0.0, 0.0, 0.0] | Position |
rotation | list[4] | optional | [1.0, 0.0, 0.0, 0.0] | Rotation |
Example
scene blockYAML
scene:
name: pick_and_place_scene
position: [0.0, 0.0, 0.0]
rotation: [1.0, 0.0, 0.0, 0.0]
base_config:
stereotype: ground_plane
ground_plane_size: [10.0, 10.0]
robot_cfg_dict:
arm:
stereotype: modular_robot
asset_path: assets://robots/ur5_with_gripper.usd
use_planner: true
actuator_cfg_dict:
arm:
joint_names_expr: ["joint_*"]
stiffness: 50000.0
damping: 800.0
gripper:
stereotype: gripper
joint_names_expr: ["finger_*"]
arm_modules:
main_arm:
arm_actuator_name: arm
ee_link_name: tool0
ee_type: gripper
ee_actuator_name: gripper
object_cfg_dict:
cube:
stereotype: rigid
asset_path: assets://objects/cube_red.usd
mass: 0.2
enable_gravity: true
cloth:
stereotype: soft
asset_path: assets://objects/cloth.usd
soft_body_type: cloth
mass: 0.05
stretch_stiffness: 8000
bending_stiffness: 5.0
sensor_cfg_dict:
wrist_cam:
stereotype: camera
width: 640
height: 480
data_types: [rgb, depth]
attach_to: arm
convention: ros
light_cfg_dict:
main_light:
stereotype: general_light
light_type: distant
intensity: 3000
color: [1.0, 1.0, 1.0]