← Back to packages

Package intrinsic_proto.scene_object.v1

Service SceneObjectImport

Message CartesianLimits

Message CollisionEntityPair

Message CollisionExclusionRule

Message CollisionMarginRule

Message CollisionRules

Message DeviceSpec

Message Entity

Message Entity

Message Frame

Message GeometryImportResolution

Message GeometryOperations

Message GeometryStats

Message IconSimSpec

Message ImportSceneObjectConfig

Message ImportSceneObjectMetadata

Message ImportSceneObjectRequest

Message ImportSceneObjectResponse

Message Joint

Message Kinematics

Message LengthUnitConversion

Message Link

Message MultiCameraPluginSpec

Message NamedConfiguration

Message ObjectProperties

Message RobotSimPluginSpec

Message SceneFileData

Message SceneObject

Message SceneObjectConfig

Message Sensor

Message Sensor

Message SimulationSpec

Message TransformSceneObject

Enum Resolution

Enum Type

Services

service SceneObjectImport intrinsic/scene/proto/v1/scene_object_import.proto

SceneObjectImport provides APIs to import external scene representations like CAD files, SDF files and other formats into an Intrinsic SceneObject proto representation for use in a solution.

Imports a scene file as a SceneObject.

Returns a longrunning.Operation where metadata reports the progress of the import and the response contains the imported SceneObject.

Messages

message CartesianLimits intrinsic/scene/proto/v1/object_properties.proto

Cartesian limits.

Field Type Description
1 min_translational_velocity repeated double

Units are meters or radians per s, s^2, or s^3.

2 max_translational_velocity repeated double
3 min_translational_acceleration repeated double
4 max_translational_acceleration repeated double
5 min_translational_jerk repeated double
6 max_translational_jerk repeated double
7 min_translational_position repeated double
8 max_translational_position repeated double
9 max_rotational_velocity double
10 max_rotational_acceleration double
11 max_rotational_jerk double

message CollisionEntityPair intrinsic/scene/proto/v1/collision_rules.proto

Rule defining a pair of entities to use with the margin and exclusion rules.

Field Type Description
1 left_entity intrinsic_proto.scene_object.v1.CollisionEntityPair.Entity

One of the entities to use in the rule. The ordering between the left and right entities does not affect the application of this rule. If the internal entity_name is not specified (empty) then this is used as a 'anything' matcher. If both left and right entity names are not specified then the given rule applies to all entities within the scene object.

2 right_entity intrinsic_proto.scene_object.v1.CollisionEntityPair.Entity

One of the entities to use in the rule. The ordering between the left and right entities does not affect the application of this rule.

message CollisionExclusionRule intrinsic/scene/proto/v1/collision_rules.proto

Rule defining the collision margin between a pair of entities.

Field Type Description
1 entity_pair intrinsic_proto.scene_object.v1.CollisionEntityPair

Specifies the pair of entities to apply the exclusion rule to.

2 is_excluded bool

This rule will be applied for the pair of entities specified by the given left_entity and right_entity fields. If the internal entity_name is not specified (or empty) for one of the two fields then that is used as an 'all/anything' matcher within the scene object. If both left and right entity names are not specified then the given rule applies to all entities within the scene objects.

If true, the collisions will be ignored between these two entities. If false, we defer to the margins specified elsewhere.

message CollisionMarginRule intrinsic/scene/proto/v1/collision_rules.proto

Rule defining the collision margin between a pair of entities.

Field Type Description
1 entity_pair intrinsic_proto.scene_object.v1.CollisionEntityPair

Specifies the pair of entities to apply the margin rule to.

2 hard_margin double

This rule will be applied for the pair of entities specified by the given left_entity and right_entity fields. If the internal entity_name is not specified (or empty) for one of the two fields then that is used as an 'all/anything' matcher within the scene object. If both left and right entity names are not specified then the given rule applies to all entities within the scene objects.

The hard margin (in meters) is the closest we allow two entities to get before we treat it as a collision. A negative number is considered invalid. Default is 0, meaning that entities are deemed not in collision unless they intersect.

message CollisionRules intrinsic/scene/proto/v1/collision_rules.proto

A collection of collision rules to apply to a scene object.

When evaluating whether a pair of entities are in collision, we will first check to see if the pair of entities should be excluded from collisions (using the exclusion rules). If not, we will check to see what margin value is specified for the pair using the margin rules.

Field Type Description
1 margin_rules repeated intrinsic_proto.scene_object.v1.CollisionMarginRule

The margin based rules for this instance. We can specify rules that define the minimum margin for specific entity pairs.

If there are multiple rules that apply, the more restrictive rule will apply for any given pair of entities. This means that if we have a rule that specifies anything with anything is a maring of 2cm, and we have a rule that says entity "base" and anything has a margin of 1cm, while a third rule says "base" entity and "target" entity have a margin of 3cm. When we eveluate these rules and calculate collisions for the "base" and "target" entities, the most restrictive rule (the 1cm rule) will apply.

2 exclusion_rules repeated intrinsic_proto.scene_object.v1.CollisionExclusionRule

The exclusion rules for this instance. We can specify rules that define if a specific entity pair should be treated as collidable.

If there are multiple rules that apply to a given pair of entities, the last rule within this list wins and its value is used.

message DeviceSpec (Nested in intrinsic_proto.scene_object.v1.RobotSimPluginSpec ) intrinsic/scene/proto/v1/simulation_spec.proto

Simulation specification for a device connected to a joint.

Field Type Description
1 type optional string

The type of device. For example, "ds402" or "fri_joint".

2 joint_entity optional string

The joint entity that this device controls.

3 initial_state optional double

Initial state of the joint in the simulation. Only relevant if joint_entity is set.

4 name string

Name of the device.

message Entity (Nested in intrinsic_proto.scene_object.v1.CollisionEntityPair ) intrinsic/scene/proto/v1/collision_rules.proto

Field Type Description
1 entity_name string

The name of the entity to use in the rule. If it is not specified it means it will match all entities within the current scene object.

message Entity intrinsic/scene/proto/v1/entity.proto

Entity represents a node in the tree of entities that together form a model.

Field Type Description
1 name string

Human readable name for the entity. Guaranteed to be unique within the model.

2 parent_name string

Name of the parent entity. Unset for the root entity. The parent entity must be a valid entity_type for the child entity. See the documentation of each entity_type for details.

3 parent_t_this intrinsic_proto.Pose

Pose of this entity in the space of the parent entity. Unset for the root entity.

oneof entity_type
4 frame intrinsic_proto.scene_object.v1.Frame
5 link intrinsic_proto.scene_object.v1.Link
6 joint intrinsic_proto.scene_object.v1.Joint
7 sensor intrinsic_proto.scene_object.v1.Sensor

message Frame intrinsic/scene/proto/v1/entity.proto

Frame represents a reference frame local to the model (e.g., a grasp or drop-off position, a tool frame, etc.). A frame must parent to a Link or a Frame.

Field Type Description
1 is_attachment_frame bool

message GeometryImportResolution intrinsic/scene/proto/v1/scene_object_import.proto

Specifies the resolution of non-mesh to mesh geometry conversion to create the imported scene object. For example when tessellating BRep in CAD files to triangular mesh.

Field Type Description
1 resolution intrinsic_proto.scene_object.v1.GeometryImportResolution.Resolution

message GeometryOperations intrinsic/scene/proto/v1/scene_object_import.proto

Geometry operations to apply to the imported geometries in the scene object.

Field Type Description
2 remove_types repeated string

Geometry types to remove. Usually used to remove collision geometries (Intrinsic_Collision) when collision are not needed.

message GeometryStats intrinsic/scene/proto/v1/geometry_stats.proto

Contains statistics about a geometry, such as properties that can be directly computed from its mesh (e.g. triangle count, vertex count, volume).

Field Type Description
1 aabb_center intrinsic_proto.Point

The center of the geometry's axis aligned bounding box.

2 aabb_extent intrinsic_proto.Vector3

The extent of the geometry's axis aligned bounding box relative to the aabb_center.

3 vertex_centroid intrinsic_proto.Point

The centroid of the geometry computed using the vertices of the mesh.

4 volumetric_centroid intrinsic_proto.Point

The centroid of the geometry computed using the volume of the mesh. Requires the mesh to be closed otherwise defaults to 0,0,0.

5 num_triangles int32

The number of triangles in the geometry.

6 num_vertices int32

The number of vertices in the geometry.

7 closed bool

Whether the mesh is closed.

8 contains_primitives bool

Whether the geometry has primitives.

9 volume double

The volume of the geometry. Requires the mesh to be closed otherwise defaults to 0. If the stats are aggregated over multiple meshes, this field is the sum of the volumes of the constituent meshes if they are all closed and otherwise is zero.

message IconSimSpec (Nested in intrinsic_proto.scene_object.v1.RobotSimPluginSpec ) intrinsic/scene/proto/v1/simulation_spec.proto

Simulation specification for the realtime control service.

Field Type Description

message ImportSceneObjectConfig intrinsic/scene/proto/v1/scene_object_import.proto

Configurations for a ImportSceneObject operation.

Field Type Description
1 length_unit_conversion optional intrinsic_proto.scene_object.v1.LengthUnitConversion

Applies length unit conversion on imported geometry. Only supported in file types that are unit less (e.g., obj, stl, gltf).

2 geometry_operations optional intrinsic_proto.scene_object.v1.GeometryOperations

Geometry operations to apply to the imported geometry.

3 transform_scene_object optional intrinsic_proto.scene_object.v1.TransformSceneObject

Transforms to apply to the imported scene object.

4 geometry_import_resolution optional intrinsic_proto.scene_object.v1.GeometryImportResolution

Geometry import resolution for non-mesh geometry types. Determines the fidelity of the converted mesh geometry.

5 material_properties optional intrinsic_proto.geometry.v1.MaterialProperties

Material properties to apply to all imported geometries.

6 scene_object_name optional string

If present, the imported SceneObject will be named by this name.

7 user_data map<string, Any>

Optional user data to associate with the imported scene object.

message ImportSceneObjectMetadata intrinsic/scene/proto/v1/scene_object_import.proto

Field Type Description

message ImportSceneObjectRequest intrinsic/scene/proto/v1/scene_object_import.proto

Request message for ImportSceneObject.

Field Type Description
1 file intrinsic_proto.scene_object.v1.SceneFileData

The scene file data to import.

2 config optional intrinsic_proto.scene_object.v1.ImportSceneObjectConfig

Configuration for the import process.

message ImportSceneObjectResponse intrinsic/scene/proto/v1/scene_object_import.proto

Response message for ImportSceneObject.

Field Type Description
1 scene_object intrinsic_proto.scene_object.v1.SceneObject

The imported scene object.

2 visual_stats intrinsic_proto.scene_object.v1.GeometryStats

Statistics for the object's visual geometry. If the object has multiple links (and therefore multiple visual geometries) or multiple visual meshes for a single link, these statistics are aggregated across all of them.

3 collision_stats intrinsic_proto.scene_object.v1.GeometryStats

Statistics for the object's collision geometry. If the object has multiple links (and therefore multiple collision geometries) or multiple collision meshes for a single link, these statistics are aggregated across all of them.

message Joint intrinsic/scene/proto/v1/entity.proto

Joint represents a moveable component of the model, generally connecting two Links. A joint must parent to a Link.

Field Type Description
1 kinematics_component intrinsic_proto.world.KinematicsComponent

Kinematics properties of the joint.

message Kinematics intrinsic/scene/proto/v1/object_properties.proto

Field Type Description
1 limits optional intrinsic_proto.scene_object.v1.CartesianLimits

Optional cartesian limits.

3 named_configurations repeated intrinsic_proto.scene_object.v1.NamedConfiguration

A set of named configurations for the robot. Can be used to specify interesting robot configurations that may have some human meaning. For example, "home" or "maintenance".

message LengthUnitConversion intrinsic/scene/proto/v1/scene_object_import.proto

Specifies how an import operation should adjust for length unit differences.

Field Type Description
1 scale_factor double

Scale factor to be applied to the length properties in the scene object. Intrinsic SceneObject length units are by default in meters. For example, to convert a scene file in millimeters, set this to 0.001.

Link represents a rigid segment of the model with geometric and physics properties. A link may parent to no entity, a Link or a Joint.

Field Type Description
1 geometry_component intrinsic_proto.world.GeometryComponent

Visual and collision geometry of this entity.

2 physics_component intrinsic_proto.world.PhysicsComponent

Physics properties of this entity.

message MultiCameraPluginSpec intrinsic/scene/proto/v1/simulation_spec.proto

Simulation plugin specification for a multi camera devices.

Field Type Description
1 sensors repeated intrinsic_proto.scene_object.v1.MultiCameraPluginSpec.Sensor
2 device_id string

message NamedConfiguration intrinsic/scene/proto/v1/object_properties.proto

A named configuration for a kinematic object.

Field Type Description
1 name string

The name of the configuration.

2 joint_positions map<string, double>

A map of joint names to joint positions for this configuration.

message ObjectProperties intrinsic/scene/proto/v1/object_properties.proto

These are properties that are associated with a particular scene object.

Field Type Description
1 kinematics intrinsic_proto.scene_object.v1.Kinematics

message RobotSimPluginSpec intrinsic/scene/proto/v1/simulation_spec.proto

Simulation plugin specification for a robot.

Field Type Description
1 icon_sim_spec intrinsic_proto.scene_object.v1.RobotSimPluginSpec.IconSimSpec
2 device_specs repeated intrinsic_proto.scene_object.v1.RobotSimPluginSpec.DeviceSpec

message SceneFileData intrinsic/scene/proto/v1/scene_object_import.proto

The contents of a scene file.

Field Type Description
2 data bytes

The raw data of the scene file.

3 file_type intrinsic_proto.scene_object.v1.SceneFileData.Type

The type of the scene file.

message SceneObject intrinsic/scene/proto/v1/scene_object.proto

SceneObject is the physical building block for the world modeled as a tree of entities, each with a specific set of properties.

Requirements for a scene object to be valid: - Should have at least one Link entity. - Should have exactly one root entity. A root entity must not set its parent_name field and should be a Frame or a Link. Its parent_t_this field, if set, is ignored. - Every entity, except the root entity, should provide parent_name. - Every entity in entities must have a unique name. - Each Joint entity must have at one parent link and one child link. - Each Sensor entity must have a parent link or joint.

Field Type Description
2 name string

Human-readable name of the scene object.

3 properties intrinsic_proto.scene_object.v1.ObjectProperties

Properties of the scene object itself.

4 entities repeated intrinsic_proto.scene_object.v1.Entity

Entities that makes up the internal structure of the scene object (e.g. links, joints, etc.).

5 simulation_spec intrinsic_proto.scene_object.v1.SimulationSpec

Simulation specification.

6 collision_rules optional intrinsic_proto.scene_object.v1.CollisionRules

Collision rules for the scene object. These rules specify any margins or exclusions between the entities of this scene object.

7 user_data map<string, Any>

Additional user-data associated with this scene object.

message SceneObjectConfig intrinsic/scene/proto/v1/scene_object_config.proto

Configuration message for a scene object. This message contains geometric configuration data common to all scene objects in addition to object-specific data that is supplied by the user and is opaque to all SceneObject infrastructure.

Field Type Description
3 user_data google.protobuf.Any

Opaque user-supplied data for this scene object.

message Sensor intrinsic/scene/proto/v1/entity.proto

Sensor represents a specific sensing capability of the model. A sensor must parent to a Link or a Joint.

Field Type Description
1 sensor_component intrinsic_proto.world.SensorComponent

message Sensor (Nested in intrinsic_proto.scene_object.v1.MultiCameraPluginSpec ) intrinsic/scene/proto/v1/simulation_spec.proto

Field Type Description
1 id int64
2 name string

message SimulationSpec intrinsic/scene/proto/v1/simulation_spec.proto

Field Type Description
2 is_static bool

If true, the entity or object is immovable (not affected by physics during simulation.).

3 multi_camera_plugin intrinsic_proto.scene_object.v1.MultiCameraPluginSpec

Scene multi camera plugin specification.

4 extra_inlined_plugins repeated string

These are extra plugin definitions that we did not parse directly but need to be carried forward to the sdf generation. Ideally this would be always empty, but we still have a few users.

oneof object_spec
1 robot intrinsic_proto.scene_object.v1.RobotSimPluginSpec

message TransformSceneObject intrinsic/scene/proto/v1/scene_object_import.proto

Transforms applied to the imported scene object relative to the origin.

Field Type Description
1 uniform_scale optional double

Scale applied to the imported scene object.

2 rotation optional intrinsic_proto.Quaternion

Rotation to apply to the imported scene object. The rotation is applied to the scene object after scaling.

Enums

enum Resolution intrinsic/scene/proto/v1/scene_object_import.proto

The resolution to use for the conversion.

Name Number Description
RESOLUTION_UNSPECIFIED 0

Defaults to COARSE.

COARSE 1
FINE 2

enum Type intrinsic/scene/proto/v1/scene_object_import.proto

Name Number Description
UNSPECIFIED 0

If unspecified, the service will treat the file as a ZIP_BUNDLE.

ZIP_BUNDLE 1

Zipped bundle of SDF files or a single supported file type zipped.

OBJ 2

An OBJ file.

STL 3

A STL file.

GLTF 4

A GLTF file.

GLB 5

A GLB file.

STEP 6

A STEP file.

SDF 7

A SDF file.