← Back to packages

Package intrinsic_proto.world

Service ObjectWorldService

Message AreFootprintsCompatibleRequest

Message AreFootprintsCompatibleResponse

Message Camera

Message CameraPluginSpec

Message Clip

Message CloneWorldRequest

Message Collision

Message CollisionAction

Message CollisionCheckingDebugInformation

Message CollisionMarginPair

Message CollisionRule

Message CollisionSettings

Message CommonCameraProperties

Message CompareWorldsRequest

Message CompareWorldsResponse

Message CreateFrameRequest

Message CreateObjectRequest

Message DeleteFrameRequest

Message DeleteObjectRequest

Message DeleteWorldRequest

Message DepthCamera

Message Distortion

Message Entity

Message Entity

Message EntityReference

Message ForceTorque

Message ForceTorqueDevicePluginSpec

Message Frame

Message FrameReference

Message FrameReferenceByName

Message Friction

Message Geometry

Message GeometryComponent

Message GeometryOptions

Message GeometrySet

Message GetCollisionSettingsRequest

Message GetFrameRequest

Message GetObjectRequest

Message GetTransformRequest

Message GetTransformResponse

Message GetWorldRequest

Message GripperComponent

Message IdAndName

Message IkSolver

Message Image

Message IncompatiblePair

Message Intrinsics

Message KinematicObjectComponent

Message KinematicsComponent

Message Lidar

Message ListFramesRequest

Message ListFramesResponse

Message ListObjectsRequest

Message ListObjectsResponse

Message ListWorldsRequest

Message ListWorldsResponse

Message ModifiedFrame

Message ModifiedObject

Message NamedJointConfiguration

Message Noise

Message Noise3D

Message Object

Message ObjectComponent

Message ObjectEntityFilter

Message ObjectFullPath

Message ObjectOrEntityReference

Message ObjectReference

Message ObjectReferenceByName

Message ObjectReferenceWithEntityFilter

Message ObjectSpecForSingleEntityObject

Message ObjectSpecFromSceneObject

Message ObjectWorldUpdate

Message ObjectWorldUpdates

Message Objects

Message PhysicsComponent

Message Range

Message RangeFinderDevicePluginSpec

Message ReparentFrameRequest

Message ReparentObjectRequest

Message RobotEntityKinematicProperties

Message RobotKinematicsUpdate

Message RobotPayload

Message Scan

Message SensorComponent

Message SimulationComponent

Message SwapWorldRequest

Message SyncObjectRequest

Message SyncObjectResponse

Message ToggleCollisionsRequest

Message Torsional

Message TransformNodeReference

Message TransformNodeReferenceByName

Message UpdateCollisionSettingsRequest

Message UpdateEntityPropertiesRequest

Message UpdateFrameNameRequest

Message UpdateFramePropertiesRequest

Message UpdateKinematicObjectPropertiesRequest

Message UpdateObjectJointRequest

Message UpdateObjectJointsRequest

Message UpdateObjectNameRequest

Message UpdateObjectPropertiesRequest

Message UpdateTransformRequest

Message UpdateTransformResponse

Message UpdateUserData

Message UpdateWorldResourcesRequest

Message UpdateWorldResourcesResponse

Message World

Message WorldMetadata

Enum Format

Enum Frame

Enum IdentificationMode

Enum MeasureDirection

Enum MotionType

Enum ObjectType

Enum ObjectView

Enum ToggleMode

Enum Type

Enum UpdateUserDataPolicy

Services

service ObjectWorldService intrinsic/world/proto/object_world_service.proto

Provides access to a managed set of world models.

Each world model is represented by a collection of objects. Each object, in turn, is a collection of entities. The entities in a world model may have different properties, but only a subset are usually valid to denote the type of entity (link, joint, frame, etc).

There is one special object, the root object, which represents the world origin. The root object contains a single root entity, which is the ancestor of all other entities. Each non-root entity has exactly one parent which is the reference for posing that entity. Objects additionally have a "base entity", which establishes a pose hierarchy of objects on top of the pose hierarchy of entities.

Frames are first-class citizens in this API. Although they are also entities in an object, they can be manipulated independently through the RPCs in this service. The consequence is that frames are expected to be dynamic while the other types of entities are expected to be set once at world authoring and not change.

All methods in this service provide mutual exclusion with respect to world operations. In other words, if two clients mutate the same world model, then the operations will be atomic but in an indeterminate order.


World methods.

These methods operate on world as a whole. Worlds are referenced by their string identifier, which is sometimes provided by the user and sometimes auto-generated.

Returns the metadata about a single world.

Clones a world and creates a new copy. Once the cloned world is no longer needed, it should be deleted using DeleteWorld rpc.

Lists the metadatas of the worlds currently stored in the world service.

Returns the current collision settings for the given world.

Updates the collision settings used for the given world. This will override the previous settings and will not attempt to merge anything.

Enables or disables collisions between two objects.

Reparents an object to another parent object.

Updates the current joint positions and/or limits of an object with ObjectType==KINEMATIC_OBJECT.

Updates the properties stored on an object with ObjectType==KINEMATIC_OBJECT.

Reparents a frame to another parent object or frame.

Performs a sequence of update operations on various resources in a single world.

The update is atomic. Either all or, in case of an error, none of the given updates will be applied.

Compares footprints against each other to determine if they are compatible with respect to a given world.

Compares two worlds objectwise. Added, modified and removed objects are returned.

Syncs a object state from one world to another. The complete object with all entities is copied from the from_world to the to_world. If the object exists in the to_world, but not in the from_world, it is removed from the to_world. The synced object will keep the IDs and all parent relationships. It fails if: - The parent does not exist in the destination world. - The ID of this object already is used by another object.

If the object already exists in the destination world, it is overwritten.

Messages

message AreFootprintsCompatibleRequest intrinsic/world/proto/object_world_service.proto

Comparares each footprint in 'left_set' against each footprint in the 'right_set'. Does not compare footprints within the same set.

Field Type Description
1 world_id string

The id of the world to be used during the check.

2 left_set repeated intrinsic_proto.skills.Footprint

The first set of footprints to compare against the second set (see 'right_set').

3 right_set repeated intrinsic_proto.skills.Footprint

The second set of footprints to compare against the first set (see 'left_set').

4 return_all_incompatible_pairs bool

If set, the result will contain all conflicting pairs, not just the first.

message AreFootprintsCompatibleResponse intrinsic/world/proto/object_world_service.proto

Results of running the compatibility checks for two sets of footprints.

Field Type Description
1 world_id string

The id of the world used during the check.

2 pairs repeated intrinsic_proto.world.AreFootprintsCompatibleResponse.IncompatiblePair

The set of incompatible pairs of footprints. If empty, then all checked pairs of footprints are compatible.

message Camera (Nested in intrinsic_proto.world.SensorComponent ) intrinsic/world/proto/sensor_component.proto

Cameras use the following convention: z forward, x right, y down (in the frame of the owning entity).

Field Type Description
1 properties intrinsic_proto.world.SensorComponent.CommonCameraProperties
3 camera_plugin intrinsic_proto.world.SensorComponent.CameraPluginSpec

If present the CameraPlugin is enabled.

message CameraPluginSpec (Nested in intrinsic_proto.world.SensorComponent ) intrinsic/world/proto/sensor_component.proto

Field Type Description
2 camera_identifier_proto string
3 inlined_plugin_xml string

Inlined plugin xml spec, excluding fields which are commonly edited in the world.

message Clip (Nested in intrinsic_proto.world.SensorComponent ) intrinsic/world/proto/sensor_component.proto

Field Type Description
1 near double

The near clipping plane in meters.

2 far double

The far clipping plane in meters.

message CloneWorldRequest intrinsic/world/proto/object_world_service.proto

Field Type Description
1 world_id string

The id of the world to be cloned.

5 cloned_world_id string

The desired world id for the new clone. If left empty a new ID will be generated automatically.

6 allow_overwrite bool

Whether it is ok to overwrite an existing world with a clone. Ignored if cloned_world_id is empty (the system automatically picks a new yet unused ID).

7 user_tag optional string

Arbitrary user tag. If not set, the user tag of the base world is used.

message Collision (Nested in intrinsic_proto.world.CollisionCheckingDebugInformation ) intrinsic/world/proto/collision_settings.proto

Represents a margin violation between an object and a collection of other objects. The right side can be a collection of objects because we merge static geometries together to perform collision checking. At that point we don't know which of the static entities is in collision.

Field Type Description
1 left intrinsic_proto.world.ObjectOrEntityReference

The object or entity that in collision/margin violation.

2 right repeated intrinsic_proto.world.ObjectOrEntityReference

The object(s) or entitie (s) that are in collision/margin violation with the left object.

3 desired_margin double

The desired margin that has been violated. That is, the distance between the left object and one of the right objects is smaller than this value.

message CollisionAction intrinsic/world/proto/collision_action.proto

The representation of what action to enforce when doing collision checking. It is applied to a pair of objects and they can either be excluded from collision checking or have a minimum distance (margin) between them.

Field Type Description
oneof action
3 is_excluded bool

If true, the collisions will be ignored.

4 margin intrinsic_proto.world.CollisionMarginPair

If provided, the minimum margin will be to ensure that object stay some distance from each other.

message CollisionCheckingDebugInformation intrinsic/world/proto/collision_settings.proto

Contains debug information related to the collision checking performed for a given configuration.

Field Type Description
1 collisions repeated intrinsic_proto.world.CollisionCheckingDebugInformation.Collision

The margin violations that have been discovered. Note that there may be more collisions, since we return early.

message CollisionMarginPair intrinsic/world/proto/collision_action.proto

We specify a hard margin. You can consider hard margin as the closest we allow two entities to get before we treat it as a collision. If this value is 0 then we use intersection checks, if it is greater than 0 we use proximity/distance checks.

Field Type Description
2 hard_margin float

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

message CollisionRule (Nested in intrinsic_proto.world.CollisionSettings ) intrinsic/world/proto/collision_settings.proto

Rule defining the minimum_margin (or collision exclusion) between an object(s) and "anything else" or between the object(s) and the "other" provided object(s).

Field Type Description
1 left repeated intrinsic_proto.world.ObjectOrEntityReference

The object(s) or entities that the rule applies to. A rule will be created between each object in 'left' and each of the objects in 'right'.

2 right repeated intrinsic_proto.world.ObjectOrEntityReference

Optional. If not provided, the rule applies between each object specified above and "anything else". Otherwise, the rule applies between each object above, and each other object in 'right' here.

5 collision_action intrinsic_proto.world.CollisionAction

Action to enforce when doing collision checking, e.g., collision exclusion pairs or minimum margin. This rule will be applied for every pair of objects that has one entry in "left" and one entry in "right". If "right" is empty then it will apply to every pair of "left" and anything else in the world.

message CollisionSettings intrinsic/world/proto/collision_settings.proto

Field Type Description
1 disable_collision_checking bool

Disables collision checking.

2 minimum_margin optional double

The minimum distance (in m) between any pair of objects beyond which they are no longer considered in collision. The default value is 0, meaning that objects are deemed not in collision unless they intersect. This value has to be >= 0 when specified. If present, this setting just adds an object rule matching "anything" with "anything" with the margin set to minimum_margin. Therefore, this rule will take precedence over all other object rules below with lower priority (i.e. those with higher margin values).

3 collision_rules repeated intrinsic_proto.world.CollisionSettings.CollisionRule

The rules for this collision settings instance. Allows to set rules like minimum margin and exclusion pairs for specific objects in the world.

4 collision_check_spacing optional double

Spacing between collision checks (in the joint space of the robot). Increasing this value will speed up collision checking at the expense of possibly having small collisions on the path (in between the discrete points checked).

The meaning of 'unset' may differ between use-cases. We are in the process of updating more callsites to use this parameter, so expect this list to evolve over time: * For skills/code that produce a linear trajectory, collision checking will be performed with a default spacing. Use-cases not listed will likely ignore this parameter in favor of some default behavior.

message CommonCameraProperties (Nested in intrinsic_proto.world.SensorComponent ) intrinsic/world/proto/sensor_component.proto

Field Type Description
1 horizontal_fov double

Horizontal field of view in radians.

2 image intrinsic_proto.world.SensorComponent.Image

The image size and pixel format.

3 clip intrinsic_proto.world.SensorComponent.Clip

The near and far clip planes.

4 noise intrinsic_proto.world.SensorComponent.Noise

The noise model applied to generated images.

5 intrinsics intrinsic_proto.world.SensorComponent.Intrinsics
6 distortion intrinsic_proto.world.SensorComponent.Distortion
7 visibility_mask uint32

Visibility mask bits. For simulation use only.

message CompareWorldsRequest intrinsic/world/proto/object_world_service.proto

Field Type Description
1 base_world_id string

The base of the comparison.

2 changed_world_id string

The world with changes.

3 view intrinsic_proto.world.ObjectView

The view of the objects from both worlds. If view == FULL or BASIC, then returns the objects from both worlds with the appropriate view.

4 unique_id_mode intrinsic_proto.world.CompareWorldsRequest.IdentificationMode

message CompareWorldsResponse intrinsic/world/proto/object_world_service.proto

Field Type Description
1 added repeated intrinsic_proto.world.ObjectReference

Objects added to the changed world.

2 removed repeated intrinsic_proto.world.Object

Objects removed from the base world.

3 modified repeated intrinsic_proto.world.CompareWorldsResponse.ModifiedObject

Objects modified in the changed world.

4 added_frames repeated intrinsic_proto.world.Frame

Contains all frames from new objects and added frames to modified objects in the changed world.

5 removed_frames repeated intrinsic_proto.world.Frame

Contains all frames from removed objects from the base world and removed frames from modified objects in the changed world.

6 modified_frames repeated intrinsic_proto.world.CompareWorldsResponse.ModifiedFrame

Contains all modified frames from modified objects in the changed world.

7 base_world_objects repeated intrinsic_proto.world.Object

Contains all objects from the base world if view == FULL.

8 changed_world_objects repeated intrinsic_proto.world.Object

Contains all objects from the changed world if view == FULL.

message CreateFrameRequest intrinsic/world/proto/object_world_updates.proto

Field Type Description
1 world_id string

Id of the world to be updated.

4 new_frame_name string

Name of the new frame to be created. Must be unique amongst all frames under the same object.

5 parent_t_new_frame intrinsic_proto.Pose

Pose of the frame in the space of the parent object's origin (if 'parent_object' is set) or frame (if 'parent_frame' is set).

6 designate_as_attachment_frame bool

If attached to an object we can mark this frame as an attachment frame when creating it.

oneof attach_to
2 parent_object intrinsic_proto.world.ObjectReference

The object under which the frame shall be created. The frame will be attached to the base entity of the object.

3 parent_frame intrinsic_proto.world.FrameReference

The frame to which the new frame shall be attached to (instead of being attached directly to an object entity). The new frame will be grouped under the same object as the given frame.

message CreateObjectRequest intrinsic/world/proto/object_world_updates.proto

Request to create an object. This is currently limited to a very simple use case: The request must specify at least one collision or visual geometry from which an object with ObjectType==PHYSICAL_OBJECT will be created which consists of a single entity and some default physics parameters.

Field Type Description
1 world_id string

Id of the world to be updated.

2 name string

Desired name of the created object. An error will be returned if the name is already used in the world.

3 parent_object intrinsic_proto.world.ObjectReferenceWithEntityFilter

The parent object, including an entity filter specifying to which part of the parent object the created object shall be attached to. The entity filter must be set and match exactly one object entity.

4 parent_object_t_created_object intrinsic_proto.Pose

Optional pose of the created object in the space of the parent object. If left unset, the default behavior depends on the 'object_spec' case below: - 'clone_from_existing_object': If no pose is given, the new object will be created at the same position as the existing object it is cloned from. - All other cases: Defaults to identity.

7 view intrinsic_proto.world.ObjectView

Requested object view for the returned, created object.

9 name_is_global_alias bool

If the object created will have a name that is a global alias. See Object.name_is_global_alias for more info.

11 action_for_object_entities intrinsic_proto.world.CollisionAction

If set, we will append a collision settings rule that applies between the new object entities and all other entities within the world. This is effectively 'new entities vs *'. The new rule will use the given action.

13 user_data map<string, Any>

User data to be attached to the object. NOTE: keys that are prefixed with 'FLOWSTATE_' are used internally. Users should avoid storing keys in this format.

oneof object_spec
5 create_single_entity_object intrinsic_proto.world.ObjectSpecForSingleEntityObject
12 create_from_scene_object intrinsic_proto.world.ObjectSpecFromSceneObject

message DeleteFrameRequest intrinsic/world/proto/object_world_updates.proto

Field Type Description
1 world_id string

Id of the world to be updated.

2 frame intrinsic_proto.world.FrameReference

The frame to be deleted.

3 force bool

If set to true, any frames that are (directly or indirectly) attached to the deleted frame will also be deleted recursively. Otherwise, the request will only work if the deleted frame has no child frames attached.

message DeleteObjectRequest intrinsic/world/proto/object_world_updates.proto

Request to delete an object including any frames that are grouped under it.

Field Type Description
1 world_id string

Id of the world to be queried.

2 object intrinsic_proto.world.ObjectReference

The object to be deleted.

3 force bool

If set to true, any objects that are (directly or indirectly) attached to the deleted object will also be deleted recursively, as well as any frames attached to these objects. If set to false, the request will only work if the deleted object has no child objects.

This setting does not affect the frames grouped under the deleted object itself. Those frames will always be deleted regardless of this setting.

message DeleteWorldRequest intrinsic/world/proto/object_world_service.proto

Field Type Description
1 world_id string

The id of the world to remove

message DepthCamera (Nested in intrinsic_proto.world.SensorComponent ) intrinsic/world/proto/sensor_component.proto

Cameras use the following convention: z forward, x right, y down (in the frame of the owning entity).

Field Type Description
1 properties intrinsic_proto.world.SensorComponent.CommonCameraProperties
3 camera_plugin intrinsic_proto.world.SensorComponent.CameraPluginSpec

If present the CameraPlugin is enabled.

message Distortion (Nested in intrinsic_proto.world.SensorComponent ) intrinsic/world/proto/sensor_component.proto

Field Type Description
1 k1 double

1st radial distortion coefficient

2 k2 double

2nd radial distortion coefficient

3 k3 double

3rd radial distortion coefficient

4 p1 double

1st tangential distortion coefficient

5 p2 double

2nd tangential distortion coefficient

message Entity (Nested in intrinsic_proto.world.RobotEntityKinematicProperties ) intrinsic/world/proto/object_world_updates.proto

Field Type Description
1 entity_name string
2 parent_t_entity intrinsic_proto.Pose

message Entity intrinsic/world/proto/object_world_service.proto

Basic building block for objects. The world consists of a tree of entities and each object consists of one or more entities that are connected to each other. I.e., each object corresponds to a subtree of the world's entities. The root object consists of exactly one entity - the root entity.

Field Type Description
1 world_id string

Id of the world which the entity is part of.

2 id string

Id of the entity which is unique among all resources in a world (i.e. frames, objects, entities, ...). Cannot be set by the user. Treat this as an opaque string - there are no guarantees on format, length or human-readability.

3 object intrinsic_proto.world.IdAndName

Id and name of the object the entity is part of.

4 parent_id string

Id of the parent entity to which this entity is attached. Empty for the root entity.

5 parent_t_this intrinsic_proto.Pose

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

6 physics_component intrinsic_proto.world.PhysicsComponent

Physics properties of this entity. Unset if this entity has no physical properties (e.g., if the entity represents a joint or sensor).

7 name string

Human-readable name of the entity. Guaranteed to be non-empty and unique among all entities of an object. Allowed characters are letters, numbers, and underscore, with the first character a letter, the last a letter or a number.

8 geometry_component intrinsic_proto.world.GeometryComponent

Visual and collision geometry of this entity. Unset if this entity has no associated geometry.

9 kinematics_component intrinsic_proto.world.KinematicsComponent

Kinematics properties of this entity. Only set if this entity models the joint of a kinematic object.

11 sensor_component intrinsic_proto.world.SensorComponent

Sensor properties of this entity. Only set if this entity models the sensor of an object.

message EntityReference intrinsic/world/proto/object_world_refs.proto

Identifies an entity within a world.

Field Type Description
oneof entity_reference
1 id string

Id of the entity. Can be "eid_root".

message ForceTorque (Nested in intrinsic_proto.world.SensorComponent ) intrinsic/world/proto/sensor_component.proto

See: http://sdformat.org/spec?ver=1.7&elem=sensor#sensor_force_torque

Field Type Description
1 frame intrinsic_proto.world.SensorComponent.ForceTorque.Frame

Frame in which to report the wrench values.

2 measure_direction intrinsic_proto.world.SensorComponent.ForceTorque.MeasureDirection

Direction of the wrench measured by the sensor.

3 force_torque_device_plugin intrinsic_proto.world.SensorComponent.ForceTorqueDevicePluginSpec
4 force_noise intrinsic_proto.world.SensorComponent.Noise3D
5 torque_noise intrinsic_proto.world.SensorComponent.Noise3D

message ForceTorqueDevicePluginSpec (Nested in intrinsic_proto.world.SensorComponent ) intrinsic/world/proto/sensor_component.proto

Field Type Description
1 force_noise optional intrinsic_proto.world.SensorComponent.Noise
2 torque_noise optional intrinsic_proto.world.SensorComponent.Noise
3 filter_cutoff_freq optional double
4 max_force_per_axis optional double
5 max_torque_per_axis optional double

message Frame intrinsic/world/proto/object_world_service.proto

A local or global reference frame that represents a pose in the world (e.g., a grasp or drop-off position, a tool frame, ... ).

Each frame is attached to a parent object, and all frames under the same object need to have unique names. The pose of a frame is relative to its parent object unless the parent object is the root object: then the frame is a "global" frame.

Field Type Description
1 world_id string

Id of the world which the frame is part of.

2 id string

Id of the frame which is unique among all resources in a world (i.e. frames & objects). Cannot be set by the user. Treat this as an opaque string - there are no guarantees on format, length or human-readability.

3 name string

Human-readable name of the frame. Guaranteed to be non-empty and unique among all frames under the same object. Allowed characters are letters, numbers, and underscore, with the first character a letter, the last a letter or a number.

4 object intrinsic_proto.world.IdAndName

Id and name of the parent object. Equal to {id: "root" name: "root"} if the frame is a child of the root object. The parent object contains an Entity with the same name as this Frame.

5 parent_t_this intrinsic_proto.Pose

Pose of this frame relative to its parent Object's root entity (if 'parent_frame' is empty) or Frame (if 'parent_frame' is set).

Note that in the former case (parent_frame is empty), the corresponding entity in the parent object (see above) may have a parent entity other than the object's root entity. If there are entities with kinematic components in the same object, then the parent_t_this pose of the frame may change as the kinematic components (i.e. joints) move, while the parent_t_this pose of the entity will not.

6 parent_frame intrinsic_proto.world.IdAndName

Optional id and name of the parent frame. If not set, the frame is attached directly to one of the entities of the parent object (see 'object'). Else, if set, the frame is attached to the given parent frame.

7 child_frames repeated intrinsic_proto.world.IdAndName

Child frames which have this frame as their parent frame and which are not attached directly to the parent object. Not sorted in any particular order.

8 object_full_path intrinsic_proto.world.ObjectFullPath

The full path from root of the parent object.

9 is_attachment_frame bool

If set then this frame is designated as an attachment frame.

message FrameReference intrinsic/world/proto/object_world_refs.proto

Identifies a frame within a world.

Field Type Description
3 debug_hint string

Human readable information for debugging Example: "Created from path world.robot.gripper.workpiece.grasp"

oneof frame_reference
1 id string

Id of the frame.

2 by_name intrinsic_proto.world.FrameReferenceByName

Unique combination of object name and frame name which identifies a frame.

message FrameReferenceByName intrinsic/world/proto/object_world_refs.proto

Identifies a frame within a world by a unique combination of the name of the frame itself and the name of its parent object.

Field Type Description
1 object_name string

Unique name of the frame's parent object. Can be "root".

2 frame_name string

Name of the frame (which is unique among all frames under an object).

message Friction intrinsic/world/proto/physics_component.proto

Friction parameters. This is based on what is supported by Gazebo. Next ID: 7

Field Type Description
1 mu double

Coefficient of friction in first friction pyramid direction. Unitless.

2 mu2 double

Coefficient of friction in second friction pyramid direction. Unitless.

3 slip1 double

Force dependent slip in first friction pyramid direction. Unit: m/s/N.

4 slip2 double

Force dependent slip in second friction pyramid direction. Unit: m/s/N.

6 fdir1 intrinsic_proto.Point

Unit vector specifying first friction pyramid direction in collision-fixed reference frame.

message Geometry (Nested in intrinsic_proto.world.GeometryComponent ) intrinsic/world/proto/geometry_component.proto

Field Type Description
4 ref_t_shape_aff intrinsic_proto.Matrixd

A 4x4 affine transform matrix from reference frame to shape

6 geometry_storage_refs intrinsic_proto.geometry.GeometryStorageRefs

Geometry storage refs is intended to be an (mostly) opaque container of references to storage objects e.g. CAS URIs. The constituent fields provide no guarantees of uniqueness.

7 options intrinsic_proto.world.GeometryOptions

Runtime options for this geometry.

message GeometryComponent intrinsic/world/proto/geometry_component.proto

Component indicating the owning Entity has geometry (e.g. collision, visual, etc.).

Field Type Description
2 named_geometries map<string, GeometrySet>

Stores named geometry for this entity. Names starting with "Intrinsic_" may have special semantics. For example, geometries named "Intrinsic_Collision" and "Intrinsic_Visual" indicate the geometry used for collision detection and rendering, respectively. All other names are user-defined.

It is expected that a component may contain the same geometry under different names. For example, if an entity is using the same geometry for both visualization and collision, it will be repeated under the aforementioned names. User-defined names may further repeat or distinguish geometries in user-defined ways.

message GeometryOptions intrinsic/world/proto/geometry_component.proto

Runtime options for a Geometry.

Field Type Description
1 fill_inside_for_distance_queries optional bool

If set, the octree will be filled on the inside when constructing the octree for distance queries.

message GeometrySet (Nested in intrinsic_proto.world.GeometryComponent ) intrinsic/world/proto/geometry_component.proto

Used for the value type in proto map below.

Field Type Description
1 geometries repeated intrinsic_proto.world.GeometryComponent.Geometry

Deprecated. We are in the process of migrating from this field to the named_geometries field below. On deserialization, if both geometries and named_geometries are populated, the named_geometries field will be used. On serialization, both fields will be populated such that readers of this field can still access the geometric data. Note: Do not modify this field from a GeometryComponent received from the ObjectWorldService and reuse it in another request. If you need to modify in place, consider modifying named_geometries instead.

2 named_geometries map<string, TransformedGeometry>

Map of human readable names to geometries.

message GetCollisionSettingsRequest intrinsic/world/proto/object_world_service.proto

Field Type Description
1 world_id string

The id of the world to get the collision settings for

message GetFrameRequest intrinsic/world/proto/object_world_service.proto

Field Type Description
1 world_id string

Id of the world to be queried.

2 frame intrinsic_proto.world.FrameReference

The frame to be queried.

message GetObjectRequest intrinsic/world/proto/object_world_service.proto

Field Type Description
1 world_id string

Id of the world to be queried.

3 view intrinsic_proto.world.ObjectView

Requested object view.

oneof object_query
2 object intrinsic_proto.world.ObjectReference

Direct reference to the object to be queried.

4 resource_handle_name string

Equipment that is associated with the object to be queried.

5 object_full_path intrinsic_proto.world.ObjectFullPath

The full path from root to the object to be queried.

message GetTransformRequest intrinsic/world/proto/object_world_service.proto

Request to return a transform 'a_t_b' between two nodes 'node_a' and 'node_b' in the transform tree (a node can be a frame or an object). If 'node_a' or 'node_b' reference an object, the returned transform is with respect to the origin of the referenced object.

Field Type Description
1 world_id string

Id of the world to be queried.

2 node_a intrinsic_proto.world.TransformNodeReference

First transform node.

3 node_b intrinsic_proto.world.TransformNodeReference

Second transform node.

4 node_a_filter intrinsic_proto.world.ObjectEntityFilter

Optional node_a filter to further specify the entity within the node.

5 node_b_filter intrinsic_proto.world.ObjectEntityFilter

Optional node_b filter to further specify the entity within the node.

message GetTransformResponse intrinsic/world/proto/object_world_service.proto

Response with the requested transform 'a_t_b' between two nodes 'node_a' and 'node_b' in the transform tree.

Field Type Description
1 a_t_b intrinsic_proto.Pose

The transform between the two requested nodes 'node_a' and 'node_b'.

message GetWorldRequest intrinsic/world/proto/object_world_service.proto

Field Type Description
1 world_id string

Id of the world to be queried.

message GripperComponent intrinsic/world/proto/gripper_component.proto

Field Type Description

message IdAndName intrinsic/world/proto/object_world_service.proto

A reference to a world resource that includes both its resource id as well as a name (e.g., object name or frame name).

Field Type Description
1 id string

Id of the world resource. Non-human readable and unique within a world.

2 name string

Name of the world resource. Human readable. Might require additional context to uniquely identify a resource (e.g., the name of a frame is only unique in the context of a specific object).

message IkSolver (Nested in intrinsic_proto.world.KinematicObjectComponent ) intrinsic/world/proto/object_world_service.proto

Field Type Description
1 kinematic_solver_key string

String identifier of the kinematic solver.

2 base_entity_id string

ID of the Entity that this solver uses as its base.

3 tip_entity_id string

ID of the Entity that this solver uses as its tip (i.e. the frame we want to run IK for).

message Image (Nested in intrinsic_proto.world.SensorComponent ) intrinsic/world/proto/sensor_component.proto

Field Type Description
1 width int64
2 height int64
3 format intrinsic_proto.world.SensorComponent.Image.Format

The pixel format.

message IncompatiblePair (Nested in intrinsic_proto.world.AreFootprintsCompatibleResponse ) intrinsic/world/proto/object_world_service.proto

Contains the index of the incompatible pair of footprints as found in the original request.

Field Type Description
1 left_index uint32
2 right_index uint32
3 reason google.rpc.Status

The reported error for this incompatibility.

message Intrinsics (Nested in intrinsic_proto.world.SensorComponent ) intrinsic/world/proto/sensor_component.proto

Field Type Description
1 fx double

X focal length (in pixels)

2 fy double

Y focal length (in pixels)

3 cx double

X principal point (in pixels)

4 cy double

Y principal point (in pixels)

message KinematicObjectComponent intrinsic/world/proto/object_world_service.proto

Details for objects with ObjectType==KINEMATIC_OBJECT.

Field Type Description
1 joint_positions repeated double

Joint positions in radians (for revolute joints) or meters (for prismatic joints).

3 iso_flange_frames repeated intrinsic_proto.world.IdAndName

Ids and names of frames which mark flanges according to the ISO 9787 standard. Not every kinematic object has flange frames, but one flange frame for every "robot arm" contained in the kinematic object can be expected.

4 named_joint_configurations repeated intrinsic_proto.world.NamedJointConfiguration

Named joint configurations associated with this kinematic object.

5 joint_entity_ids repeated string

Ids of the enties (see 'Object.entities') modelling the individual joints of the kinematic object. These entities are guaranteed to have a 'KinematicsComponent' (see 'Entity.kinematics_component'). The order of this field matches the joint order of 'joint_positions' and 'joint_limits'.

6 cartesian_limits optional intrinsic_proto.icon.CartesianLimits

If set these will be the updated limits used by this kinematic object.

7 control_frequency_hz optional double

Unused.

8 joint_system_limits intrinsic_proto.JointLimits

Joint system limits. Note that the field JointLimits.max_effort is not supported and will always be filled with zeroes.

9 joint_application_limits intrinsic_proto.JointLimits

Joint application limits. Note that the field JointLimits.max_effort is not supported and will always be filled with zeroes. Application limits may not be more liberal than system limits.

10 mounted_payload optional intrinsic_proto.world.RobotPayload

The payload mounted to the robot. Empty if no payload is defined.

11 ik_solvers repeated intrinsic_proto.world.KinematicObjectComponent.IkSolver

A list of IK solvers for this Object.

In many cases, this has one entry. For example, a robot usually has one solver that can handle the kinematic chain from its base to its tip.

In other cases this can hold multiple entries, for example one solver for each finger of a multi-finger gripper.

In rare cases this can be empty, when there is no chain that the World knows how to solve inside the Object.

12 are_kinematics_updated optional bool

If set true then it indicates that the kinematics of this object have been updated.

message KinematicsComponent intrinsic/world/proto/kinematics_component.proto

Component indicating the owning Entity represents a DoF.

Field Type Description
1 motion_type intrinsic_proto.world.KinematicsComponent.MotionType
3 raw_value optional double

GetDof() and SetDof()-style functions operate on this value.

10 parent_t_inboard intrinsic_proto.Pose

Pose of the inboard coordinate frame in the parent object's space.

11 axis intrinsic_proto.Vector3

Axis of this joint in its local space (relative to its inboard coordinate frame). If not set, +z is used by default.

message Lidar (Nested in intrinsic_proto.world.SensorComponent ) intrinsic/world/proto/sensor_component.proto

See: http://sdformat.org/spec?ver=1.7&elem=sensor#sensor_lidar

Field Type Description
1 horizontal intrinsic_proto.world.SensorComponent.Scan
2 vertical intrinsic_proto.world.SensorComponent.Scan
3 range intrinsic_proto.world.SensorComponent.Range
4 noise intrinsic_proto.world.SensorComponent.Noise
5 range_finder_device_plugin intrinsic_proto.world.SensorComponent.RangeFinderDevicePluginSpec

message ListFramesRequest intrinsic/world/proto/object_world_service.proto

Field Type Description
1 world_id string

Id of the world to be queried.

2 object intrinsic_proto.world.ObjectReference

The object to be queried. If unset, frames for all objects in the world will be returned.

message ListFramesResponse intrinsic/world/proto/object_world_service.proto

Field Type Description
1 frames repeated intrinsic_proto.world.Frame

The requested frames.

message ListObjectsRequest intrinsic/world/proto/object_world_service.proto

Field Type Description
1 world_id string

Id of the world to be queried.

2 query_objects repeated intrinsic_proto.world.ObjectReference

If not empty, only returns the objects that are in the given list.

3 view intrinsic_proto.world.ObjectView

Requested object view.

message ListObjectsResponse intrinsic/world/proto/object_world_service.proto

Field Type Description
1 objects repeated intrinsic_proto.world.Object

The requested objects.

message ListWorldsRequest intrinsic/world/proto/object_world_service.proto

Field Type Description

message ListWorldsResponse intrinsic/world/proto/object_world_service.proto

Field Type Description
1 world_metadatas repeated intrinsic_proto.world.WorldMetadata

The requested worlds.

message ModifiedFrame (Nested in intrinsic_proto.world.CompareWorldsResponse ) intrinsic/world/proto/object_world_service.proto

Field Type Description
1 frame intrinsic_proto.world.Frame

The frame modified

2 modification string

A human-readable string describing the modification

message ModifiedObject (Nested in intrinsic_proto.world.CompareWorldsResponse ) intrinsic/world/proto/object_world_service.proto

Field Type Description
1 object intrinsic_proto.world.ObjectReference

The object modified

2 modification string

A human-readable string describing the modification

message NamedJointConfiguration intrinsic/world/proto/object_world_updates.proto

Field Type Description
1 name string

Name for this joint configuration which is unique under the parent kinematic object.

2 joint_positions repeated double

Joint positions in radians (for revolute joints) or meters (for prismatic joints).

message Noise (Nested in intrinsic_proto.world.SensorComponent ) intrinsic/world/proto/sensor_component.proto

Field Type Description
1 type intrinsic_proto.world.SensorComponent.Noise.Type

The type of noise.

2 mean double

The mean of the noise model distribution.

3 stddev double

The standard deviation of the noise model distribution.

4 bias_mean double

See http://sdformat.org/spec?ver=1.12&elem=sensor#x_noise for details about these variables.

5 bias_stddev double
6 dynamic_bias_stddev double
7 dynamic_bias_correlation_time double
8 precision double

message Noise3D (Nested in intrinsic_proto.world.SensorComponent ) intrinsic/world/proto/sensor_component.proto

Field Type Description
1 x intrinsic_proto.world.SensorComponent.Noise
2 y intrinsic_proto.world.SensorComponent.Noise
3 z intrinsic_proto.world.SensorComponent.Noise

message Object intrinsic/world/proto/object_world_service.proto

High-level world container. An Object is part of exactly one world, has exactly one parent object, can have multiple child objects and can have multiple entities. Entities that are frames (i.e. have no other semantic information) are surfaced as first-class elements in the rest of the object world APIs.

Each world contains one special object - the root object (ObjectType==ROOT) - which is always present and has no parent.

Field Type Description
1 world_id string

Id of the world which the object is part of.

2 id string

Id of the object which is unique among all resources in a world (i.e. frames & objects). Equal to "root" for the root object. Cannot be set by the user. Treat this as an opaque string - other than for the root object there are no guarantees on format, length or human-readability.

3 name string

Human-readable name of the object. Guaranteed to be non-empty and unique among all objects and frames under the same parent object. If name_is_global_alias is true, guaranteed to be unique globally. Equal to "root" for the root object. Allowed characters are letters, numbers, and underscore, with the first character a letter, the last a letter or a number.

4 type intrinsic_proto.world.ObjectType

The type of the object.

5 parent intrinsic_proto.world.IdAndName

Id and name of the parent object. Empty if ObjectType==ROOT.

6 children repeated intrinsic_proto.world.IdAndName

Ids and names of child objects. Empty if the object has no child objects.

7 frames repeated intrinsic_proto.world.Frame

All child frames under this object, including ones that are attached indirectly to this object via another child frame. Frames are derived from Entities. The Entity a Frame is derived from has the same name (but not id) as the Frame. The Entity may have additional information, such as which part of the parent Object's internal kinematic structure it is attached to.

If ObjectView==BASIC, included Frame instances will only be partically populated (if ObjectView==BASIC, Frame.parent_t_this is not populated).

8 object_component intrinsic_proto.world.ObjectComponent

Only fully populated if ObjectView==FULL and ObjectType!=ROOT. It will only contain the pose if ObjectView==BASIC

9 kinematic_object_component intrinsic_proto.world.KinematicObjectComponent

Only present if ObjectView==FULL and ObjectType==KINEMATIC_OBJECT.

10 entities map<string, Entity>

The entities which make up the internal structure of the object, by Id. Only filled if ObjectView==FULL.

11 root_entity_id string

Id of the root entity of this object. If ObjectView==FULL, then this is a valid key into 'entities', else this will be empty

12 name_is_global_alias bool

If true, name is a globally unique name and can be used in an ObjectReferenceByName and for ObjectReference.by_name.

13 object_full_path intrinsic_proto.world.ObjectFullPath

The full path of this object from root.

14 parent_entity intrinsic_proto.world.EntityReference

The entity within the parent that this object is parented to.

message ObjectComponent intrinsic/world/proto/object_world_service.proto

Details common to all objects.

Field Type Description
2 parent_t_this intrinsic_proto.Pose

Transform between the parent object and this frame.

5 simulation_component intrinsic_proto.world.SimulationComponent

Properties for how this object should be treated in simulation. Will not be set if there are no special properties to be considered in simulation.

7 gripper_component intrinsic_proto.world.GripperComponent

Configuration properties for this object if it is a gripper. Will not be set if the object is not a gripper resource.

9 user_data map<string, Any>

User data associated with this object. Special keys for the user data: - FLOWSTATE_ASSET_USER_DATA: User-defined metadata populated from the corresponding SceneObject asset if the world object was created from one.

message ObjectEntityFilter intrinsic/world/proto/object_world_refs.proto

Selects one or more entities of an object, which are the parts of an object.

Not all objects have more than one object entity, so for a those objects all of the provided options will behave identically and select the one and only existing entity.

Field Type Description
1 include_base_entity bool

If true, include the base entity of an object. Has no effect if 'include_all_entities' is also set.

2 include_final_entity bool

If true, include the final entity of an object. Has no effect if 'include_all_entities' is also set. Using this on an object that does not have a unique final entity will result in an error.

3 include_all_entities bool

If true, include all entities of an object.

4 entity_references repeated intrinsic_proto.world.EntityReference

An entity to include from the object.

5 entity_names repeated string

An entity to include from the object based on its name

message ObjectFullPath intrinsic/world/proto/object_world_service.proto

Field Type Description
1 object_names repeated string

The list of object names from the root object(excluding root) to the addressed object(including addressed object). An empty list indicates the root object.

message ObjectOrEntityReference intrinsic/world/proto/collision_settings.proto

Wrapper around using an Object or an Entity reference with the Collision rule below.

Field Type Description
oneof type
1 object intrinsic_proto.world.ObjectReference
2 entity intrinsic_proto.world.EntityReference
3 object_with_filter intrinsic_proto.world.ObjectReferenceWithEntityFilter

message ObjectReference intrinsic/world/proto/object_world_refs.proto

Identifies an object within a world.

Field Type Description
3 debug_hint string

Human readable information for debugging Example: "Created from path world.robot.gripper.workpiece"

oneof object_reference
1 id string

Id of the object. Can be "root". Generally not stable for objects other than "root", strongly prefer by_name.

2 by_name intrinsic_proto.world.ObjectReferenceByName

Unique name of the object.

message ObjectReferenceByName intrinsic/world/proto/object_world_refs.proto

Identifies an object within a world by means of its unique name.

Field Type Description
1 object_name string

Unique name of the object. Can be "root".

message ObjectReferenceWithEntityFilter intrinsic/world/proto/object_world_refs.proto

References one or more object entities of a specific object.

Field Type Description
1 reference intrinsic_proto.world.ObjectReference

Reference to the object.

2 entity_filter intrinsic_proto.world.ObjectEntityFilter

The entity filter to be applied to the object.

message ObjectSpecForSingleEntityObject intrinsic/world/proto/object_world_updates.proto

Specifies the properties for a simple single-entity object.

Field Type Description
3 geometry_component intrinsic_proto.world.GeometryComponent

The geometry component associated with the object's entity.

4 entity_local_name string

message ObjectSpecFromSceneObject intrinsic/world/proto/object_world_updates.proto

Specifies to create an object by instantiating a SceneObject.

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

SceneObject to be used to create the object.

2 user_data map<string, string>

Additional user data to be attached to the object. NOTE: keys that are prefixed with 'FLOWSTATE_' are used internally. Users should avoid storing keys in this format.

message ObjectWorldUpdate intrinsic/world/proto/object_world_updates.proto

A single update to an object world resource such as a frame or object.

Field Type Description
oneof update
1 update_object_name intrinsic_proto.world.UpdateObjectNameRequest
2 update_object_joints intrinsic_proto.world.UpdateObjectJointsRequest
3 update_frame_name intrinsic_proto.world.UpdateFrameNameRequest
4 update_transform intrinsic_proto.world.UpdateTransformRequest
5 reparent_object intrinsic_proto.world.ReparentObjectRequest
6 toggle_collisions intrinsic_proto.world.ToggleCollisionsRequest
7 create_frame intrinsic_proto.world.CreateFrameRequest
8 delete_frame intrinsic_proto.world.DeleteFrameRequest
11 delete_object intrinsic_proto.world.DeleteObjectRequest
12 reparent_frame intrinsic_proto.world.ReparentFrameRequest
13 update_object_properties intrinsic_proto.world.UpdateObjectPropertiesRequest
14 update_entity_properties intrinsic_proto.world.UpdateEntityPropertiesRequest
15 update_collision_settings intrinsic_proto.world.UpdateCollisionSettingsRequest
17 update_frame_properties intrinsic_proto.world.UpdateFramePropertiesRequest
18 update_kinematic_object_properties intrinsic_proto.world.UpdateKinematicObjectPropertiesRequest
19 update_object_joint intrinsic_proto.world.UpdateObjectJointRequest

message ObjectWorldUpdates intrinsic/world/proto/object_world_updates.proto

A sequence of ObjectWorldUpdate's that can, e.g., be included in a batch-update operation (see UpdateWorldResources()) or be stored somewhere.

Field Type Description
1 updates repeated intrinsic_proto.world.ObjectWorldUpdate

message Objects intrinsic/world/proto/object_world_service.proto

A sequence of multiple objects.

Field Type Description
1 objects repeated intrinsic_proto.world.Object

The objects.

message PhysicsComponent intrinsic/world/proto/physics_component.proto

Component indicating the owning Entity has physics properties releveant to our modeling. Next tag: 11

Field Type Description
1 mass_kg double

Mass of the owning Entity in kilograms.

5 friction intrinsic_proto.world.Friction

Surface friction parameters.

6 torsional intrinsic_proto.world.Torsional

Torsional friction parameters.

7 contact_kp double

Dynamically "stiffness"-equivalent coefficient for contact joints.

8 contact_kd double

Dynamically "damping"-equivalent coefficient for contact joints.

9 this_t_center_of_mass intrinsic_proto.Pose

Pose of the center of mass in the owning Entity's space.

10 inertia intrinsic_proto.Matrixd

Inertia matrix.

message Range (Nested in intrinsic_proto.world.SensorComponent ) intrinsic/world/proto/sensor_component.proto

Field Type Description
1 min_distance double

The minimum distance for each lidar ray.

2 max_distance double

The maximum distance for each lidar ray.

3 resolution double

Linear resolution of each lidar ray.

message RangeFinderDevicePluginSpec (Nested in intrinsic_proto.world.SensorComponent ) intrinsic/world/proto/sensor_component.proto

Empty

Field Type Description

message ReparentFrameRequest intrinsic/world/proto/object_world_updates.proto

Request to reparent a frame and all of its child frames to a new parent object or frame. The global pose (="root_t_this") of the reparented frames remains unaffected.

Field Type Description
1 world_id string

Id of the world to be updated.

2 frame intrinsic_proto.world.FrameReference

The frame to be reparented.

oneof attach_to
3 parent_object intrinsic_proto.world.ObjectReferenceWithEntityFilter

The object under which the frame shall be grouped and a entity filter specifying to which part of the object the frame shall be attached to. The entity filter must match exactly one object entity.

4 parent_frame intrinsic_proto.world.FrameReference

The parent frame to which the frame shall be attached to (instead of being attached directly to an object entity). The frame will be grouped under the same object as the given parent frame.

message ReparentObjectRequest intrinsic/world/proto/object_world_updates.proto

Request to reparent an object to a new parent object. The global pose of the reparented object (="root_t_object") will remain unaffected while the relative pose of the object to its parent object (="parent_t_this") will usually change.

Field Type Description
1 world_id string

Id of the world to be updated.

2 object intrinsic_proto.world.ObjectReference

The object to be reparented (needs to have ObjectType!=ROOT).

3 new_parent intrinsic_proto.world.ObjectReferenceWithEntityFilter

DEPRECATED: use parent_object instead.

4 view intrinsic_proto.world.ObjectView

Requested object view for the returned, reparented object.

oneof attach_to
5 parent_object intrinsic_proto.world.ObjectReferenceWithEntityFilter

The object under which the frame shall be parented, including a entity filter specifying to which part of the parent object the child object shall be attached to. The entity filter must be set and match exactly one object entity

6 parent_frame intrinsic_proto.world.FrameReference

The frame to which the object shall be attached to. The new object will be parented under the same object as the given frame.

message RobotEntityKinematicProperties intrinsic/world/proto/object_world_updates.proto

Specifies kinematic properties of an object with an object with type ObjectType==KINEMATIC_OBJECT. Specifically, each entry in entities specifies the local name of either a joint or link entity and that entity's transformation with respect to its parent.

Field Type Description
1 entities repeated intrinsic_proto.world.RobotEntityKinematicProperties.Entity

message RobotKinematicsUpdate intrinsic/world/proto/object_world_updates.proto

Specifies changes to the kinematics related properties of an object with type ObjectType==KINEMATIC_OBJECT. Specifically, one can change the relations between entities with robot_entity_updates as well as specify a new ik_solver_key to be used.

Field Type Description
1 robot_entity_updates optional intrinsic_proto.world.RobotEntityKinematicProperties

Updates to be made to entities that belong to the kinematic object.

2 ik_solver_key string

Replaces the existing solver key for all solvable frames.

message RobotPayload intrinsic/world/proto/robot_payload.proto

Payload of a robot.

Field Type Description
1 mass_kg double

Mass of the robot payload. Unit is kg.

2 tip_t_cog intrinsic_proto.Pose

Center of gravity of the robot payload relative to the robot flange/tip frame.

3 inertia intrinsic_proto.Matrixd

3x3 symmetric inertia matrix of the robot payload expressed about the link center of mass. Unit is kg*m^2.

message Scan (Nested in intrinsic_proto.world.SensorComponent ) intrinsic/world/proto/sensor_component.proto

Field Type Description
1 samples uint32

The number of simulated lidar rays to generate per complete laser sweep cycle.

2 resolution double

This number is multiplied by samples to determine the number of range data points returned. If resolution is less than one, range data is interpolated. If resolution is greater than one, range data is averaged.

3 min_angle double
4 max_angle double

message SensorComponent intrinsic/world/proto/sensor_component.proto

Component indicating the owning Entity is a sensor (e.g. camera).

Next tag: 11

Field Type Description
oneof type_oneof
4 camera intrinsic_proto.world.SensorComponent.Camera
5 depth_camera intrinsic_proto.world.SensorComponent.DepthCamera
6 force_torque intrinsic_proto.world.SensorComponent.ForceTorque
9 lidar intrinsic_proto.world.SensorComponent.Lidar

message SimulationComponent intrinsic/world/proto/simulation_component.proto

Component indicating how the owning Entity (or the object/collection represented by the owning entity) should be treated in simulation.

Field Type Description
1 is_static bool

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

message SwapWorldRequest intrinsic/world/proto/object_world_service.proto

Field Type Description
1 world_id string

The id of the world to swap.

2 target_world_id string

The id of the world with which to swap.

message SyncObjectRequest intrinsic/world/proto/object_world_service.proto

Field Type Description
1 from_world_id string

World the object is located in.

2 to_world_id string

World the object should be synced to.

oneof resource_type
3 object intrinsic_proto.world.ObjectReference

The object to sync.

4 frame intrinsic_proto.world.FrameReference

The frame to sync.

message SyncObjectResponse intrinsic/world/proto/object_world_service.proto

Field Type Description

message ToggleCollisionsRequest intrinsic/world/proto/object_world_updates.proto

Request to enable or disable collisions between two objects.

Field Type Description
1 world_id string

Id of the world to be updated.

2 toggle_mode intrinsic_proto.world.ToggleMode

Whether to enable or disable collisions. If collisions are already enabled/ disabled (as desired) the operation will be a no-op and will succeed.

3 object_a intrinsic_proto.world.ObjectReferenceWithEntityFilter

The first object, including a entity filter specifying for which entities collisions should be enabled/disabled. The entity filter must be set and should match at least one object entity.

5 object_b intrinsic_proto.world.ObjectReferenceWithEntityFilter

The second object, including a entity filter specifying for which entities collisions should be enabled/disabled. The entity filter must be set and should match at least one object entity.

8 view intrinsic_proto.world.ObjectView

Requested object view for the returned objects with changed collision properties.

message Torsional intrinsic/world/proto/physics_component.proto

Torsional friction parameters. This is based on what is supported by classic Gazebo. Next ID: 6

Field Type Description
1 coefficient double

Torsional friction coefficient, unitless.

2 use_patch_radius bool
3 patch_radius double

Radius of contact patch surface. Used when "use_patch_radius" is true.

4 surface_radius double

Surface radius on the point of contact. Used when "use_patch_radius" is false.

5 ode_slip double

Force dependent slip for torsional friction. Physics engines other than ODE might ignore it.

message TransformNodeReference intrinsic/world/proto/object_world_refs.proto

Identifies a node in the transform tree of the world which can either be an object or a frame. Options are: - The root object (= the world origin) Example to reference the root object: id: "root" - A child frame of the root object (= a global frame) Example to a global frame "pregrasp" which is child of root: by_name { frame { object_name: "root" frame_name: "pregrasp" } } - A non-root object (= the origin/base of a robot, camera, workpiece, ...) Example to access an object "connector" which is child of root: by_name { object { object_name: "camera" } } - A child frame of a non-root object (= a local frame) Example to a frame "tool_frame" which is child of the object "gripper": by_name { frame { object_name: "gripper" frame_name: "tool_frame" } }

Field Type Description
3 debug_hint string

Human readable information for debugging Example: "Created from path world.robot.gripper.workpiece"

oneof transform_node_reference
1 id string

Id of the object or frame from the shared id-namespace. Can be "root". IDs other than root are generally not long-term stable, prefer to reference by name.

2 by_name intrinsic_proto.world.TransformNodeReferenceByName

Combination of name(s) that uniquely identifies an object or a frame.

message TransformNodeReferenceByName intrinsic/world/proto/object_world_refs.proto

Identifies a node in the transform tree of the world by a combination of name(s) that uniquely identifies an object or a frame. Example for an object:

object {
  object_name: "gripper"
}

Example for a frame "tool_frame" that belongs to an object "gripper":

frame {
  object_name: "gripper"
  frame_name: "tool_frame"
}
Field Type Description
oneof transform_node_reference_by_name
1 object intrinsic_proto.world.ObjectReferenceByName

Unique name of an object.

2 frame intrinsic_proto.world.FrameReferenceByName

Unique combination of object name and frame name which identifies a frame.

message UpdateCollisionSettingsRequest intrinsic/world/proto/object_world_updates.proto

Field Type Description
1 world_id string

The id of the world to update

oneof type
2 collision_settings intrinsic_proto.world.CollisionSettings

The collision settings to use with the given world. Overrides any previous settings that were used with the world.

message UpdateEntityPropertiesRequest intrinsic/world/proto/object_world_updates.proto

Request to update advanced properties of an entity such as its optional components.

Field Type Description
1 world_id string

Id of the world to be updated.

2 entity intrinsic_proto.world.ObjectReferenceWithEntityFilter

The entity to be updated.

3 physics_component intrinsic_proto.world.PhysicsComponent

If set, updates the object's physics component to the given one. It is an error to set this if the associated entity does not already have a physics component.

4 geometry_component intrinsic_proto.world.GeometryComponent

If set, updates the object's geometry component to the given one. It is an error to set this if the associated entity does not already have a geometry component.

5 collision_action intrinsic_proto.world.CollisionAction

DEPRECATED. Use 'UpdateCollisionSettingsRequest' instead

message UpdateFrameNameRequest intrinsic/world/proto/object_world_updates.proto

Field Type Description
1 world_id string

Id of the world to be updated.

2 frame intrinsic_proto.world.FrameReference

The frame to be updated.

3 name string

The new name for the frame. Must be unique within all frames under the parent object. For allowed characters see Frame.name.

message UpdateFramePropertiesRequest intrinsic/world/proto/object_world_updates.proto

Request to update advanced properties of a frame such as its attachment frame designation. Next tag: 4

Field Type Description
1 world_id string

Id of the world to be updated.

2 frame intrinsic_proto.world.FrameReference

The frame to be updated.

3 is_attachment_frame google.protobuf.BoolValue

If present, will set the value of the attachment frame designation for this frame.

message UpdateKinematicObjectPropertiesRequest intrinsic/world/proto/object_world_updates.proto

Request to update the properties for an object with ObjectType==KINEMATIC_OBJECT.

Field Type Description
1 world_id string

Id of the world to be updated.

2 object intrinsic_proto.world.ObjectReference

The object to be updated. Must have ObjectType==KINEMATIC_OBJECT.

3 named_joint_configurations_to_remove repeated string

Names of joint configurations that should be removed. An error will be returned if no existing, matching joint configuration can be found.

4 named_joint_configurations_to_set repeated intrinsic_proto.world.NamedJointConfiguration

Named joint configurations that should be updated. Existing named configurations with equal names will be overridden. For non-existing names new configurations will be added.

5 cartesian_limits intrinsic_proto.icon.CartesianLimits

If set these will be the updated limits to use.

7 view intrinsic_proto.world.ObjectView

Requested object view for the returned, updated kinematic object.

8 mounted_payload optional intrinsic_proto.world.RobotPayload

The payload attached to the robot flange.

9 robot_kinematics_update optional intrinsic_proto.world.RobotKinematicsUpdate

All updates to be made to the robot chain.

message UpdateObjectJointRequest intrinsic/world/proto/object_world_updates.proto

Request to update a single joint of an object.

Field Type Description
1 world_id string

Id of the world to be updated.

2 object intrinsic_proto.world.ObjectReference

The object to be updated. Must have ObjectType==KINEMATIC_OBJECT.

3 joint_position optional double

New joint positions in degrees (for revolute joints) or meters (for prismatic joints) that should be applied.

6 view intrinsic_proto.world.ObjectView

Requested object view for the returned, updated kinematic object.

7 joint_name string

The name of the joint to be updated.

message UpdateObjectJointsRequest intrinsic/world/proto/object_world_updates.proto

Field Type Description
1 world_id string

Id of the world to be updated.

2 object intrinsic_proto.world.ObjectReference

The object to be updated. Must have ObjectType==KINEMATIC_OBJECT.

3 joint_positions repeated 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' and 'joint_limits' must be set.

4 joint_application_limits intrinsic_proto.JointLimitsUpdate

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

5 joint_system_limits intrinsic_proto.JointLimitsUpdate

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

6 view intrinsic_proto.world.ObjectView

Requested object view for the returned, updated kinematic object.

7 joint_names repeated string

If non empty, the joint names will be used to generate the correct ordering for the 'joint_position', 'joint_application_limits' and 'joint_system_limits' fields.

message UpdateObjectNameRequest intrinsic/world/proto/object_world_updates.proto

Field Type Description
1 world_id string

Id of the world to be updated.

2 object intrinsic_proto.world.ObjectReference

The object to be updated.

3 name string

The new name for the object. For allowed characters see Object.name.

4 view intrinsic_proto.world.ObjectView

Requested object view for the returned, updated object.

5 name_is_global_alias bool

If set to true, the new object name will be enforced to be unique among all other objects which have 'name_is_global_alias' enabled and can be used in an ObjectReferenceByName or in ObjectReference.by_name. If set to false, the new object name will still be enforced to be unique within its parent object's namespace among sibling frames and objects.

message UpdateObjectPropertiesRequest intrinsic/world/proto/object_world_updates.proto

Request to update advanced properties of an object such as its optional components.

Field Type Description
1 world_id string

Id of the world to be updated.

2 object intrinsic_proto.world.ObjectReference

The object to be updated.

3 simulation_component intrinsic_proto.world.SimulationComponent

If set, updates the object's simulation component to the given one. Creates a new simulation component if none exists or otherwise overrides the existing simulation component.

5 view intrinsic_proto.world.ObjectView

Requested object view for the returned, updated object.

10 user_data intrinsic_proto.world.UpdateUserData

If set, updates the object's user data using the specified policy.

message UpdateTransformRequest intrinsic/world/proto/object_world_updates.proto

Request to update the transform 'a_t_b' between 'node_a' and 'node_b' in the transform tree (a node can be a frame or an object). If 'node_a' or 'node_b' reference an object, the returned transform is with respect to the origin (root entity) of the referenced object.

If 'node_a' and 'node_b' are not neighbors in the transform tree (i.e. 'node_a' is not a child of 'node_b' and 'node_b' is not a child of 'node_a'), then only the pose between the given node 'node_to_update' and its parent is updated so that the overall transform 'a_t_b' matches the desired one. Note, the 'node_to_update' must be an ancestor of either 'node_a' or 'node_b', but not both.

'node_a' and 'node_b' may be further refined within the object to include entities that are neither the root entity nor a frame. In this case, if 'node_to_update' is unset, then the child node between 'node_a' and 'node_b' must either be the root entity of an object or a frame. Next ID: 10

Field Type Description
1 world_id string

Id of the world to be updated.

2 node_a intrinsic_proto.world.TransformNodeReference

First transform node.

3 node_b intrinsic_proto.world.TransformNodeReference

Second transform node.

4 node_to_update intrinsic_proto.world.TransformNodeReference

Transform node whose pose (between itself and its parent) shall be updated. May be unset if 'node_a' and 'node_b' are neighbors in the transform tree, then the pose of the child node will be updated. Must not be set to an ancestor of both 'node_a' and 'node_b'.

5 a_t_b intrinsic_proto.Pose

The desired transform between the two nodes 'node_a' and 'node_b' or their respective entity based on the given filters.

6 view intrinsic_proto.world.ObjectView

Requested object view for the returned, updated object in case the update node is an object (see 'node_to_update').

7 node_a_filter intrinsic_proto.world.ObjectEntityFilter

Optional node_a filter to further specify the entity within the node.

8 node_b_filter intrinsic_proto.world.ObjectEntityFilter

Optional node_b filter to further specify the entity within the node.

message UpdateTransformResponse intrinsic/world/proto/object_world_service.proto

Response after updating a transform.

Field Type Description
oneof updated_node
1 object intrinsic_proto.world.Object

If set, populated according to the requested object view.

2 frame intrinsic_proto.world.Frame

If set, always fully populated.

message UpdateUserData intrinsic/world/proto/user_data.proto

Description of how to update the object's user data.

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

message UpdateWorldResourcesRequest intrinsic/world/proto/object_world_service.proto

Field Type Description
1 world_updates intrinsic_proto.world.ObjectWorldUpdates

A sequence of world updates which will be applied in the given order.

All updates must not have any world_id set.

Each update must be relative to the world state that has to be expected after all previous updates in the sequence have been applied. E.g. { updates: { update_object_name: { object: { by_name: { object_name:"first_name" } } new_name: "second_name" } } updates: { update_object_name: { object: { by_name: { object_name:"second_name" } } # not "first_name" new_name: "third_name" } } }

2 view intrinsic_proto.world.ObjectView

Requested object view for the returned objects.

3 world_id string

Id of the world to be updated.

message UpdateWorldResourcesResponse intrinsic/world/proto/object_world_service.proto

Field Type Description
1 objects repeated intrinsic_proto.world.Object

All objects in the world, including the updated ones.

2 collision_settings intrinsic_proto.world.CollisionSettings

The set of collision rules in use with the world.

message World intrinsic/world/proto/object_world_service.proto

Field Type Description
1 world_metadata intrinsic_proto.world.WorldMetadata

World-level metadata.

2 objects repeated intrinsic_proto.world.Object

All world objects (which contain the frames in the world). Always populated according to ObjectView==FULL.

3 collision_settings intrinsic_proto.world.CollisionSettings

The set of collision rules in use with this world.

message WorldMetadata intrinsic/world/proto/object_world_service.proto

General information about a world managed by the world service.

Field Type Description
1 id string

Unique id of the world.

6 world_structure_hash string

A hash representing the current structure portion of the world data. This hash will change when there are structural changes to the world, but may not change when state is updated. State in this case could mean pose values for parent_t_this or dof values for joints.

7 last_update google.protobuf.Timestamp

The timestamp of the most recent update to this world.

8 user_tag optional string

Arbitrary user tag.

Enums

enum Format intrinsic/world/proto/sensor_component.proto

Name Number Description
FORMAT_UNSPECIFIED 0
FORMAT_R8G8B8 1
FORMAT_L8 2
FORMAT_B8G8R8 3
FORMAT_BAYER_RGGB8 4

Formats below use https://en.wikipedia.org/wiki/Bayer_filter

FORMAT_BAYER_BGGR8 5
FORMAT_BAYER_GBRG8 6
FORMAT_BAYER_GRBG8 7

enum Frame intrinsic/world/proto/sensor_component.proto

Name Number Description
FRAME_UNSPECIFIED 0
FRAME_CHILD 1
FRAME_PARENT 2
FRAME_SENSOR 3

enum IdentificationMode intrinsic/world/proto/object_world_service.proto

Name Number Description
IDENTIFICATION_MODE_UNSPECIFIED 0

Default is BY_ID.

BY_ID 1

Use ids as the unique identifier for objects, frames and entities. This is useful for comparing worlds branched by updates.

BY_NAME 2

Use names as the unique identifier for objects, frames and entities. This is useful for comparing worlds composed from different composition processes.

enum MeasureDirection intrinsic/world/proto/sensor_component.proto

Name Number Description
MEASURE_DIRECTION_UNSPECIFIED 0
MEASURE_DIRECTION_CHILD_TO_PARENT 1
MEASURE_DIRECTION_PARENT_TO_CHILD 2

enum MotionType intrinsic/world/proto/kinematics_component.proto

Type of joint.

Name Number Description
MOTION_TYPE_UNDEFINED 0
MOTION_TYPE_REVOLUTE 1

1 DoF, rotates about the axis.

MOTION_TYPE_PRISMATIC 2

1 DoF, translates along the axis.

MOTION_TYPE_FIXED 3

0 DoF, inboard and outboard transforms are always equal.

enum ObjectType intrinsic/world/proto/object_world_service.proto

Type of an object. Indicates which components will be present when querying an object.

Name Number Description
OBJECT_TYPE_UNSPECIFIED 0
ROOT 1

Type of the root object which is present in every world.

PHYSICAL_OBJECT 2

Type of non-virtual objects such as a robot, camera, workpiece, fixture etc.

KINEMATIC_OBJECT 3

Subtype for physical objects that have moveable joints (prismatic or revolute). This includes not only robots but also, e.g., finger grippers or fixtures with moveable clamps.

enum ObjectView intrinsic/world/proto/object_world_updates.proto

Indicates at which level-of-detail to return objects when querying them. See the documentation of 'Object' and its child messages to find out which parts are included at which view-level of detail.

Name Number Description
OBJECT_VIEW_UNSPECIFIED 0

Defaults to the BASIC view.

BASIC 1

Contains enough of an object to understand its place within the hierarchical structure of a world (object id/name, parent id/name, ids/names of child objects and child frames). E.g., listing all objects in a world with the BASIC view makes it possible to print a text- or UI-based tree view of the objects and frames in the world.

FULL 2

Contains all available details of an object including its relative pose, geometry, physical parameters and other metadata.

enum ToggleMode intrinsic/world/proto/object_world_updates.proto

Mode for requests that allows to enable or disable something.

Name Number Description
TOGGLE_MODE_UNSPECIFIED 0

Leaving ToggleMode unspecified will result in an error.

TOGGLE_MODE_ENABLE 1
TOGGLE_MODE_DISABLE 2

enum Type intrinsic/world/proto/sensor_component.proto

Name Number Description
TYPE_UNSPECIFIED 0
TYPE_GAUSSIAN 1
TYPE_GAUSSIAN_QUANTIZED 2

enum UpdateUserDataPolicy intrinsic/world/proto/user_data.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. The Object 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, the object 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.