Package intrinsic_proto.scene_object.v1
Message
CollisionExclusionRule
Message
GeometryImportResolution
Message
ImportSceneObjectConfig
Message
ImportSceneObjectMetadata
Message
ImportSceneObjectRequest
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.
rpc ImportSceneObject
Request: intrinsic_proto.scene_object.v1.ImportSceneObjectRequest
Response:
google.longrunning.Operation
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 |
| 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 |
| 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. |
message Link intrinsic/scene/proto/v1/entity.proto
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. |