← Back to packages

Package intrinsic_proto.scene_object.v1

Service SceneObjectImport

Message CartesianLimits

Message CartesianLimitsUpdate

Message CollisionEntityPair

Message CollisionExclusionRule

Message CollisionMarginRule

Message CollisionRules

Message CreateFrameUpdate

Message DeleteEntityUpdate

Message DeviceSpec

Message Entity

Message Entity

Message EntityPoseUpdate

Message Frame

Message GeometryImportResolution

Message GeometryOperations

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 RenameEntityUpdate

Message RobotSimPluginSpec

Message SceneFileData

Message SceneObject

Message SceneObjectConfig

Message SceneObjectInstanceUpdate

Message SceneObjectInstanceUpdates

Message Sensor

Message Sensor

Message SetNamedConfigurationsUpdate

Message SimulationSpec

Message TransformSceneObject

Message UpdateCollisionRules

Message UpdateJointsRequest

Message UpdateUserData

Enum ChildPolicy

Enum Resolution

Enum Type

Enum UpdateCollisionRulesPolicy

Enum UpdateUserDataPolicy

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 CartesianLimitsUpdate intrinsic/scene/proto/v1/scene_object_updates.proto

Cartesian limits to use as overrides. If not set, the existing limits will be unchanged.

Field Type Description
1 min_translational_position repeated double

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

2 max_translational_position repeated double
3 min_translational_velocity repeated double
4 max_translational_velocity repeated double
5 min_translational_acceleration repeated double
6 max_translational_acceleration repeated double
7 min_translational_jerk repeated double
8 max_translational_jerk repeated double
9 max_rotational_velocity optional double
10 max_rotational_acceleration optional double
11 max_rotational_jerk optional 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 CreateFrameUpdate intrinsic/scene/proto/v1/scene_object_updates.proto

Create a new frame based entity with the given parameters.

Field Type Description
1 parent_name string

The entity under which the frame shall be created. If the name is empty we will create the new frame under root. If the name cannot be found this will result in an error.

2 new_frame_name string

Name of the new frame entity to be created.

3 parent_t_new_frame intrinsic_proto.Pose

Pose of the frame in the space of the parent entity's origin.

4 designate_as_attachment_frame bool

We can optionally mark this frame as an attachment frame when creating it.

message DeleteEntityUpdate intrinsic/scene/proto/v1/scene_object_updates.proto

Field Type Description
1 entity_name string

The entity to be deleted.

2 child_policy intrinsic_proto.scene_object.v1.DeleteEntityUpdate.ChildPolicy

Specify what to do with the children of the deleted entity if any exist.

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 EntityPoseUpdate intrinsic/scene/proto/v1/scene_object_updates.proto

Field Type Description
1 entity_name string

The name of the entity being updated.

2 parent_t_this intrinsic_proto.Pose

The new pose of this entity relative to its parent.

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 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.

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 RenameEntityUpdate intrinsic/scene/proto/v1/scene_object_updates.proto

Field Type Description
1 entity_name string

The entity to be renamed.

2 new_entity_name string

The new name to give the entity.

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 SceneObjectInstanceUpdate intrinsic/scene/proto/v1/scene_object_updates.proto

Similar to SceneObjectUpdate but restricted in the types of updates that can be performed.

Field Type Description
oneof update
1 entity_pose intrinsic_proto.scene_object.v1.EntityPoseUpdate
2 create_frame intrinsic_proto.scene_object.v1.CreateFrameUpdate
3 delete_entity intrinsic_proto.scene_object.v1.DeleteEntityUpdate

Only allowed to delete frames.

4 set_named_configurations intrinsic_proto.scene_object.v1.SetNamedConfigurationsUpdate
5 update_joints intrinsic_proto.scene_object.v1.UpdateJointsRequest
6 cartesian_limits intrinsic_proto.scene_object.v1.CartesianLimitsUpdate
7 rename_entity intrinsic_proto.scene_object.v1.RenameEntityUpdate
8 update_collision_rules intrinsic_proto.scene_object.v1.UpdateCollisionRules

message SceneObjectInstanceUpdates intrinsic/scene/proto/v1/scene_object_updates.proto

A list of updates to apply to a scene object instance.

Field Type Description
1 updates repeated intrinsic_proto.scene_object.v1.SceneObjectInstanceUpdate

The updates to apply in order.

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 SetNamedConfigurationsUpdate intrinsic/scene/proto/v1/scene_object_updates.proto

Updates the named configurations on the scene object.

Field Type Description
1 clear_all_named_configurations bool

If set, this will clear all named configurations on the scene object.

2 named_configurations_to_remove repeated string

The named configurations to remove from the scene object.

3 named_configurations_to_set repeated intrinsic_proto.scene_object.v1.NamedConfiguration

The named configurations to set on the scene object. If a named configuration already exists with the same name, it will be overwritten.

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.

message UpdateCollisionRules intrinsic/scene/proto/v1/scene_object_updates.proto

Apply the given update to the collision rules.

Field Type Description
1 policy intrinsic_proto.scene_object.v1.UpdateCollisionRules.UpdateCollisionRulesPolicy

The policy to use when updating the given rule.

oneof rule
3 margin_rule intrinsic_proto.scene_object.v1.CollisionMarginRule
4 exclusion_rule intrinsic_proto.scene_object.v1.CollisionExclusionRule

message UpdateJointsRequest intrinsic/scene/proto/v1/scene_object_updates.proto

Updates the joint positions or limits on the scene object.

Field Type Description
1 joint_positions map<string, double>

If non-empty, new joint positions in degrees (for revolute joints) or meters (for prismatic joints) that should be applied. At least one of 'joint_positions', 'joint_application_limits', 'joint_system_limits' must be set.

2 joint_application_limits map<string, JointLimitUpdate>

If non-empty, new joint application limits that should be applied. At least one of 'joint_positions', 'joint_application_limits', 'joint_system_limits' must be set.

3 joint_system_limits map<string, JointLimitUpdate>

If non-empty, new joint system limits that should be applied. At least one of 'joint_positions', 'joint_application_limits', 'joint_system_limits' must be set.

message UpdateUserData intrinsic/scene/proto/v1/scene_object_updates.proto

Field Type Description
1 user_data map<string, Any>
2 policy intrinsic_proto.scene_object.v1.UpdateUserData.UpdateUserDataPolicy

Enums

enum ChildPolicy intrinsic/scene/proto/v1/scene_object_updates.proto

Name Number Description
CHILD_POLICY_UNSPECIFIED 0

Same as CHILD_POLICY_FAIL_IF_PRESENT.

CHILD_POLICY_FAIL_IF_PRESENT 1

If the entity has children we will fail to delete it.

CHILD_POLICY_DELETE_RECURSIVELY 2

If the entity has children we will delete them all recursively down.

CHILD_POLICY_REPARENT_CHILDREN 3

If the entity has children, they will be reparented to the parent of the deleted entity maintaining the same pose to it as is currently set. If we have a chain of entities A -> B -> C, and B -> D, where A is the parent of B and B is the parent of C and D. When we delete B with this setting, we will reparent C and D to A and maintain the same A_t_C and A_t_D poses as was present before the delete.

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.

enum UpdateCollisionRulesPolicy intrinsic/scene/proto/v1/scene_object_updates.proto

The policy to use when updating the given rule.

Name Number Description
POLICY_UNSPECIFIED 0

Same as POLICY_APPEND.

POLICY_APPEND 1

Append the new rule to the end of the existing rules.

POLICY_REPLACE_OR_APPEND 2

Similar to POLICY_REPLACE but if there is no match then append the new rule to the end of the existing rule set. If multiple rules match then they will all be updated.

POLICY_REMOVE 3

Remove the rules that match their entity fields. If multiple rules match then they will all be removed.

POLICY_CLEAR_AND_REPLACE 4

Clear any existing rules within the respective rule set and replace them with the rules specified here. If the specified rule is a margin rule, all margin rules will be removed, if the specified rule is an exclusion rule, all exclusion rules will be removed before appending the new rule.

POLICY_CLEAR_ALL 5

Clear all existing rules. Ignores the rule field specified below.

enum UpdateUserDataPolicy intrinsic/scene/proto/v1/scene_object_updates.proto

Name Number Description
POLICY_UNSPECIFIED 0

Same as POLICY_INSERT.

POLICY_INSERT 1

Insert key/value pair(s) into the user data if none of the provided keys already exist. Return an error if any of the provided key exists. SceneObject is not modified in this case.

POLICY_INSERT_OR_UPDATE 2

Similar to POLICY_INSERT but if a key already exists, its value will be updated instead of returning an error.

POLICY_REMOVE 3

Remove key/value pair(s) for matching keys. Values provided in the user_data field are ignored. If no key matches, SceneObject is not modified.

POLICY_CLEAR_AND_REPLACE 4

Clear all existing user data and replace it with the new key/value user data. Can be called even if no existing user data is present.

POLICY_CLEAR_ALL 5

Clear all existing user data. Can be called even if no existing user data is present.