Package intrinsic_proto.icon.v1
Message
GetActionSignatureByNameRequest
Message
GetActionSignatureByNameResponse
Message
GetLatestStreamingOutputRequest
Message
GetLatestStreamingOutputResponse
Message
GetLoggingModeResponse
Message
GetOperationalStatusRequest
Message
GetOperationalStatusResponse
Message
GetPartPropertiesRequest
Message
GetPartPropertiesResponse
Message
GetPlannedTrajectoryRequest
Message
GetPlannedTrajectoryResponse
Message
GetSpeedOverrideRequest
Message
GetSpeedOverrideResponse
Message
IsActionCompatibleRequest
Message
IsActionCompatibleResponse
Message
ListActionSignaturesRequest
Message
ListActionSignaturesResponse
Message
ListCompatiblePartsRequest
Message
ListCompatiblePartsResponse
Message
OpenWriteStreamRequest
Message
OpenWriteStreamResponse
Message
SetLoggingModeResponse
Message
SetPartPropertiesRequest
Message
SetPartPropertiesResponse
Message
SetSpeedOverrideRequest
Message
SetSpeedOverrideResponse
Message
StartActionsRequestData
Services
service IconApi intrinsic/icon/proto/v1/service.proto
rpc GetActionSignatureByName
Request: intrinsic_proto.icon.v1.GetActionSignatureByNameRequest
Response:
intrinsic_proto.icon.v1.GetActionSignatureByNameResponse
Gets details of an action type by name. The response's action_signature
field is unset if the requested action type is not found.
rpc GetConfig
Request: intrinsic_proto.icon.v1.GetConfigRequest
Response:
intrinsic_proto.icon.v1.GetConfigResponse
Gets server configuration, including part-specific configuration info for all parts (e.g. a robot arm might report its number of DOFs).
rpc GetStatus
Request: intrinsic_proto.icon.v1.GetStatusRequest
Response:
intrinsic_proto.icon.v1.GetStatusResponse
Gets a snapshot of the server's status, including part-specific status info for all parts. For instance, a robot arm might report its joint angles.
rpc IsActionCompatible
Request: intrinsic_proto.icon.v1.IsActionCompatibleRequest
Response:
intrinsic_proto.icon.v1.IsActionCompatibleResponse
Reports whether an action is compatible with a part or a group of parts.
rpc ListActionSignatures
Request: intrinsic_proto.icon.v1.ListActionSignaturesRequest
Response:
intrinsic_proto.icon.v1.ListActionSignaturesResponse
Lists details of all available action types.
rpc ListCompatibleParts
Request: intrinsic_proto.icon.v1.ListCompatiblePartsRequest
Response:
intrinsic_proto.icon.v1.ListCompatiblePartsResponse
Lists all parts that are compatible with a list of action types. Each returned part is compatible with all listed action types. If the list of action types is empty, returns all parts.
rpc ListParts
Request: intrinsic_proto.icon.v1.ListPartsRequest
Response:
intrinsic_proto.icon.v1.ListPartsResponse
Lists all available parts.
rpc OpenSession
Request: intrinsic_proto.icon.v1.OpenSessionRequest
Response:
intrinsic_proto.icon.v1.OpenSessionResponse
Starts an action session. This is the main entrypoint into the ICON APIs.
ICON allows users to interact with a realtime control system using a few
key abstractions:
* Parts: Each part is a collection of sensors and actuators that form a
logical unit. Each part offers a number of feature interfaces that
Actions can interact with.
Examples include:
* A robot arm
* A gripper
* A laser rangefinder sensor
* Actions: An action is a building block of realtime control behavior. Each
action has a number of "slots" that each connect to a feature interface
on a part. Actions can also
* accept zero or more streaming inputs (see OpenWriteStream)
* publish a single optional streaming output (see
GetLatestStreamingOutput)
* report state variables, which can trigger reactions
* Reactions: Users can set up custom reactions that trigger based on the
state variables of a running action. ICON evaluates reactions in hard
realtime. That is, there is no delay between detecting that a reaction
should trigger and the desired effect.
Reactions can affect the ICON server in several ways:
* Notify gRPC clients of the reaction (see WatchReactions below).
* Start a different action ("if the rangefinder reports a distance below
0.1m, stop moving and close the gripper").
* Trigger a signal on the running action, so that it can change its
behavior.
Each session can claim zero or more parts. A session without parts can not run actions, but can still register reactions based on part status. Parts claimed by one session are claimed until that session ends. Users can start multiple sessions, but only one session can claim each part at a time.
The parts that a session claims remain stopped until * the user explicitly starts an action, or * a reaction triggers the start of an action
A new action session starts with only the actions in the initial
OpenSessionRequest.
The client can signal the end of a session by indicating that writes are
done using the grpc::ClientReaderWriter (aka "half-closing" the stream).
ICON then ends the session and returns the final status. This includes
terminating any ongoing WatchReactions and OpenWriteStream calls for
the same session.
If an action session ends for any reason, including the client or server dropping the call, or a request to end the session, the server discards the session, including all actions and reactions. This stops all parts associated with the session and activates their safety actions.
Publishes an OpenSessionResponse when
* ICON finishes processing an incoming OpenSessionRequest
* a reaction occurs
rpc OpenWriteStream
Request: intrinsic_proto.icon.v1.OpenWriteStreamRequest
Response:
intrinsic_proto.icon.v1.OpenWriteStreamResponse
Opens a write stream for one action of a given session.
Each write stream can send streaming input values to its action. Callers
can find information about the streaming inputs offered by an action by
calling ListActionSignatures() and inspecting the signature of an action
type.
The signature's streaming_input_infos field includes:
* The name of the input.
* A description that explains how the action reacts to input values.
* The proto message type name of the input.
* A FileDescriptorSet with detailed information about the input's message
type, including all sub-messages. If the client does not have the
information about the proto in question itself, it can use this
FileDescriptorSet for introspection, and determine the structure of the
proto message that way.
Note that ICON may terminate an OpenWriteStream request if the
corresponding session ends for any reason (whether that is a server-side
error or the caller deliberately ending a session).
rpc GetLatestStreamingOutput
Request: intrinsic_proto.icon.v1.GetLatestStreamingOutputRequest
Response:
intrinsic_proto.icon.v1.GetLatestStreamingOutputResponse
Requests the latest streaming output value for a given action. Make sure to set the gRPC deadline if you do not want the request to block for too long!
Similar to streaming inputs (see OpenWriteStream() above), callers
can find information about the streaming output (if any) offered by an
action by calling ListActionSignatures() and inspecting the signature of
an action type. The signature's streaming_output_info field includes:
* The name of the output.
* A description that explains when and how the action populates the output.
* The proto message type name of the output.
* A FileDescriptorSet with detailed information about the output's message
type, including all sub-messages. If the client does not have the
information about the proto in question itself, it can use this
FileDescriptorSet for introspection, and determine the structure of the
proto message that way.
Blocks until the action writes the first streaming output (or the request deadline expires), but returns an error immediately if the corresponding action does not exist at all.
rpc GetPlannedTrajectory
Request: intrinsic_proto.icon.v1.GetPlannedTrajectoryRequest
Response:
intrinsic_proto.icon.v1.GetPlannedTrajectoryResponse
Requests the planned trajectory for a given Action. Returns a kFailedPrecondition if the requested Action/Session combination does not exist, and a kNotFound one if there's no trajectory for an Action existing in the given Session.
rpc WatchReactions
Request: intrinsic_proto.icon.v1.WatchReactionsRequest
Response:
intrinsic_proto.icon.v1.WatchReactionsResponse
Watches reactions that occur during a particular action session.
The server stops sending responses and ends the stream when the associated
action session ends.
One can only call WatchReactions while there is an active OpenSession
stream with the same session ID.
When the server finishes setting up the reaction watcher, it sends a single, empty WatchReactionsResponse to indicate readiness.
There can be only one WatchReactions stream per session at a time. Any additional WatchReactions requests return kUnavailable.
rpc Enable
Request: intrinsic_proto.icon.v1.EnableRequest
Response:
intrinsic_proto.icon.v1.EnableResponse
Enables all disabled parts on the server. It is not necessary to call this on startup, because the server automatically enables. Typical use case is to re-enable after a manual call the Disable().
rpc Disable
Request: intrinsic_proto.icon.v1.DisableRequest
Response:
intrinsic_proto.icon.v1.DisableResponse
By default, disables all parts on the server and cancels all sessions
except read-only sessions. If OPERATIONAL_HARDWARE_ONLY is set, parts
that only use cell control hardware modules will keep their status
(typically staying enabled).
Remember to set up adequate safety systems and conduct all risk assessments before deploying to real hardware.
rpc ClearFaults
Request: intrinsic_proto.icon.v1.ClearFaultsRequest
Response:
intrinsic_proto.icon.v1.ClearFaultsResponse
Clears all faults. If successful, ICON automatically enables all parts
after this finishes.
Returns OkStatus if faults were successfully cleared and the server is
enabled. Returns ResourceExhausted when a fatal fault is being cleared,
which is not completed yet and involves a process restart. In this case,
the client should retry until receiving OkStatus.
rpc GetOperationalStatus
Request: intrinsic_proto.icon.v1.GetOperationalStatusRequest
Response:
intrinsic_proto.icon.v1.GetOperationalStatusResponse
Returns the summarized status of the server.
It contains the operational_status of the all hardware
and the cell_control_hardware_status of cell control hardware.
Cell control hardware is marked with
IconMainConfig.hardware_config.cell_control_hardware. It is a group of
hardware modules that does not inherit faults from operational hardware, so
it is generally kept enabled (unless any cell control hardware module
faults).
Requests restarting the entire server. Clears faults and enables as a side effect. This should not be needed, use ClearFaults() instead.
rpc SetSpeedOverride
Request: intrinsic_proto.icon.v1.SetSpeedOverrideRequest
Response:
intrinsic_proto.icon.v1.SetSpeedOverrideResponse
Updates the speed override value. The speed override factor must be between 0 and 1. That is, no "fast-forward" or "rewind", but "pausing" with an override factor of 0 is possible.
The speed override value acts as a multiplier to the "nominal" velocity of compatible actions. If an action is compatible, it will adjust its motion (even during execution) accordingly when the speed override changes. For example, setting a speed override value of 0.1 means that all compatible actions move at 10% of their original velocity.
Note that actions may not apply the new value instantaneously. This is because instantaneous changes in velocity would violate acceleration and jerk limits. Instead, actions will adjust their velocity as quickly as allowed within the robot's limits.
rpc GetSpeedOverride
Request: intrinsic_proto.icon.v1.GetSpeedOverrideRequest
Response:
intrinsic_proto.icon.v1.GetSpeedOverrideResponse
Returns the current speed override value.
rpc SetLoggingMode
Request: intrinsic_proto.icon.v1.SetLoggingModeRequest
Response:
intrinsic_proto.icon.v1.SetLoggingModeResponse
Configures the logging mode. The logging mode defines which robot-status logs are logged to the cloud. ICON only logs to the cloud if a session is active. Pubsub and local logging are not influenced by this setting.
rpc GetLoggingMode
Request: intrinsic_proto.icon.v1.GetLoggingModeRequest
Response:
intrinsic_proto.icon.v1.GetLoggingModeResponse
Returns the current logging mode.
rpc GetPartProperties
Request: intrinsic_proto.icon.v1.GetPartPropertiesRequest
Response:
intrinsic_proto.icon.v1.GetPartPropertiesResponse
Returns the current values of all part properties. Note that all values are collected at the same point in time.
rpc SetPartProperties
Request: intrinsic_proto.icon.v1.SetPartPropertiesRequest
Response:
intrinsic_proto.icon.v1.SetPartPropertiesResponse
Sets the part properties defined in the request. Use this to set parameters on parts. Guarantees that all values in the request are applied on the server at the same time.
rpc SetPayload
Request: intrinsic_proto.icon.v1.SetPayloadRequest
Response:
intrinsic_proto.icon.v1.SetPayloadResponse
Sets a payload on a part. Fails if the part does not exist or the payload contains invalid values.
rpc GetPayload
Request: intrinsic_proto.icon.v1.GetPayloadRequest
Response:
intrinsic_proto.icon.v1.GetPayloadResponse
Gets a payload stored in a part. Fails if the part does not exist or the requested payload does not exist.
Messages
message ActionAndReactionIds intrinsic/icon/proto/v1/types.proto
Lists the ids of actions and reactions in an action state machine
| Field | Type | Description | |
|---|---|---|---|
| 1 | action_instance_ids |
repeated
int64
|
The ids of action instances in the state machine. |
| 2 | reaction_ids |
repeated
int64
|
The ids of reactions in the state machine. |
message ActionAssociation (Nested in intrinsic_proto.icon.v1.Reaction ) intrinsic/icon/proto/v1/types.proto
| Field | Type | Description | |
|---|---|---|---|
| 1 | action_instance_id |
int64
|
Action instance that this reaction is associated with. |
| 2 | stop_associated_action |
bool
|
If true, stops the currently active action that is associated with this
reaction in If false, the currently active, associated action keeps running and the
action (if any) specified in |
| 3 | triggered_signal_name |
optional
string
|
If present this is the name of the signal (associated with action_instance_id) which will be triggered and switched to true, if not already triggered. |
message ActionInstance intrinsic/icon/proto/v1/types.proto
ActionInstanceDetails describes an action instance.
| Field | Type | Description | |
|---|---|---|---|
| 2 | action_type_name |
string
|
The type of action, corresponding to the type of an available ActionSignature (e.g. "xfa.joint_move"). |
| 3 | action_instance_id |
int64
|
The client-assigned ID of this action instance. The ID of each ActionInstance must be unique for duration of the session. |
| 4 | fixed_parameters |
google.protobuf.Any
|
Action-specific fixed parameters. |
|
oneof slot_data
|
|||
| 5 | slot_part_map |
intrinsic_proto.icon.v1.SlotPartMap
|
The SlotPartMap to apply to this Action instance. |
| 6 | part_name |
string
|
The name of a Part to execute this Action on. A SlotPartMap will be inferred if and only if the Action type for this instance uses a single Slot. |
message ActionResponse (Nested in intrinsic_proto.icon.v1.OpenSessionResponse ) intrinsic/icon/proto/v1/service.proto
| Field | Type | Description |
|---|
message ActionSignature intrinsic/icon/proto/v1/types.proto
ActionSignature describes a type of real-time action that can be instantiated.
| Field | Type | Description | |
|---|---|---|---|
| 1 | action_type_name |
string
|
Unique name of the action type, e.g. "xfa.joint_move". |
| 2 | text_description |
string
|
Text description of this action type, for human consumption. |
| 3 | fixed_parameters_message_type |
string
|
Name of the fixed parameters message type, or empty if the action takes no
fixed parameters. If set, the name must be found in
|
| 4 | fixed_parameters_descriptor_set |
google.protobuf.FileDescriptorSet
|
Descriptors of the fixed parameters type (including descriptors of all transitive dependencies). |
| 5 | streaming_input_infos |
repeated
intrinsic_proto.icon.v1.ActionSignature.ParameterInfo
|
Action-specific streaming input parameter descriptions. |
| 7 | state_variable_infos |
repeated
intrinsic_proto.icon.v1.ActionSignature.StateVariableInfo
|
Action-specific state variable metadata, keyed by state variable name. |
| 8 | streaming_output_info |
optional
intrinsic_proto.icon.v1.ActionSignature.ParameterInfo
|
An Action may define an Action-specific streaming output parameter. Note that, while this has a name, it can be accessed implicitly, since there is only (at most) one streaming output. |
| 9 | part_slot_infos |
map<string, PartSlotInfo>
|
List of Slot names the Action expects. |
| 10 | realtime_signal_infos |
repeated
intrinsic_proto.icon.v1.ActionSignature.RealtimeSignalInfo
|
List of realtime signals that the Action expects. Users may trigger each one via realtime reactions. |
message ActionsAndReactions intrinsic/icon/proto/v1/types.proto
Describes a state machine consisting of a list of action_instances acting
as nodes and a list of reactions describing the edges.
| Field | Type | Description | |
|---|---|---|---|
| 1 | action_instances |
repeated
intrinsic_proto.icon.v1.ActionInstance
|
The nodes to build into the action state machine. |
| 2 | reactions |
repeated
intrinsic_proto.icon.v1.Reaction
|
The reactions to build into the action state machine. |
message AddStreamRequest intrinsic/icon/proto/v1/service.proto
| Field | Type | Description | |
|---|---|---|---|
| 1 | action_id |
uint64
|
The action this request is tied to. |
| 2 | field_name |
string
|
The name of the field. |
message AddStreamResponse intrinsic/icon/proto/v1/service.proto
| Field | Type | Description | |
|---|---|---|---|
| 1 | status |
google.rpc.Status
|
message ClearAllActions (Nested in intrinsic_proto.icon.v1.OpenSessionRequest ) intrinsic/icon/proto/v1/service.proto
| Field | Type | Description |
|---|
message Comparison intrinsic/icon/proto/v1/condition_types.proto
Comparison describes a real-time condition statement based on the value of a state variable.
| Field | Type | Description | |
|---|---|---|---|
| 1 | state_variable_name |
string
|
Name of the action-specific real-time state variable to test against. |
| 2 | operation |
intrinsic_proto.icon.v1.Comparison.OpEnum
|
Comparison operation to perform between the state variable and value. |
| 5 | max_abs_error |
double
|
Max absolute value of error (aka "epsilon") for float-point comparisons APPROX_EQUAL and APPROX_NOT_EQUAL. Ignored for other operation types. |
|
oneof value
|
|||
| 3 | double_value |
double
|
Test against this double value. |
| 4 | bool_value |
bool
|
Test against this boolean value. OpEnum must be EQUAL or NOT_EQUAL. |
| 6 | int64_value |
int64
|
Test against this integer value. |
message Condition intrinsic/icon/proto/v1/condition_types.proto
| Field | Type | Description | |
|---|---|---|---|
|
oneof condition
|
|||
| 1 | comparison |
intrinsic_proto.icon.v1.Comparison
|
|
| 3 | conjunction_condition |
intrinsic_proto.icon.v1.ConjunctionCondition
|
|
| 4 | negated_condition |
intrinsic_proto.icon.v1.NegatedCondition
|
|
message ConjunctionCondition intrinsic/icon/proto/v1/condition_types.proto
ConjunctionCondition describes a real-time condition statement based on multiple other (contained) conditions.
| Field | Type | Description | |
|---|---|---|---|
| 1 | operation |
intrinsic_proto.icon.v1.ConjunctionCondition.OpEnum
|
The operation to use. |
| 2 | conditions |
repeated
intrinsic_proto.icon.v1.Condition
|
The conditions to evaluate to form this condition. |
message DisableRequest intrinsic/icon/proto/v1/service.proto
| Field | Type | Description | |
|---|---|---|---|
| 1 | group |
intrinsic_proto.icon.v1.DisableRequest.HardwareGroup
|
With |
message GetActionSignatureByNameRequest intrinsic/icon/proto/v1/service.proto
GetActionSignatureByName() request.
| Field | Type | Description | |
|---|---|---|---|
| 1 | name |
string
|
Action type name, e.g. "xfa.joint_move". |
message GetActionSignatureByNameResponse intrinsic/icon/proto/v1/service.proto
GetActionSignatureByName() response.
| Field | Type | Description | |
|---|---|---|---|
| 1 | action_signature |
intrinsic_proto.icon.v1.ActionSignature
|
Description of the action type, or unset if the action type name is not found. |
message GetConfigRequest intrinsic/icon/proto/v1/service.proto
GetConfig() request.
| Field | Type | Description |
|---|
message GetConfigResponse intrinsic/icon/proto/v1/service.proto
GetConfig() response.
| Field | Type | Description | |
|---|---|---|---|
| 1 | part_configs |
repeated
intrinsic_proto.icon.v1.PartConfig
|
Static (for the duration of the ICON server's lifetime) data about the parts on this server. |
| 2 | control_frequency_hz |
double
|
This is the frequency at which ICON's control loop is running. |
| 3 | server_config |
intrinsic_proto.icon.v1.ServerConfig
|
message GetLatestStreamingOutputRequest intrinsic/icon/proto/v1/service.proto
| Field | Type | Description | |
|---|---|---|---|
| 1 | session_id |
int64
|
The ID of the session that the Action we're querying belongs to. |
| 2 | action_id |
uint64
|
The action whose streaming output we're interested in. |
message GetLatestStreamingOutputResponse intrinsic/icon/proto/v1/service.proto
| Field | Type | Description | |
|---|---|---|---|
| 1 | output |
intrinsic_proto.icon.StreamingOutput
|
message GetLoggingModeResponse intrinsic/icon/proto/v1/service.proto
| Field | Type | Description | |
|---|---|---|---|
| 1 | logging_mode |
intrinsic_proto.icon.LoggingMode
|
message GetOperationalStatusResponse intrinsic/icon/proto/v1/service.proto
| Field | Type | Description | |
|---|---|---|---|
| 1 | operational_status |
intrinsic_proto.icon.v1.OperationalStatus
|
Returns the summarized state of the server. This is the status of all hardware and the server. |
| 2 | cell_control_hardware_status |
intrinsic_proto.icon.v1.OperationalStatus
|
The status of cell control hardware, which is marked with
|
message GetPartPropertiesResponse intrinsic/icon/proto/v1/service.proto
| Field | Type | Description | |
|---|---|---|---|
| 1 | timestamp_control |
google.protobuf.Duration
|
Control timestamp when the property values were collected. This differs from wall time in two ways: 1. The control timestamp is initialized to 0 on startup 2. The control timestamp may advance slower or faster than wall time, especially in simulation. |
| 2 | timestamp_wall |
google.protobuf.Timestamp
|
Wall timestamp when the property values were collected. This is helpful for cross-referencing with other Intrinsic services. |
| 3 | part_properties_by_part_name |
map<string, PartPropertyValues>
|
These values are all from the same instant in time. |
message GetPayloadRequest intrinsic/icon/proto/v1/service.proto
| Field | Type | Description | |
|---|---|---|---|
| 1 | part_name |
string
|
The name of the part containing the payload. |
| 2 | payload_name |
string
|
The name of the payload. |
message GetPayloadResponse intrinsic/icon/proto/v1/service.proto
| Field | Type | Description | |
|---|---|---|---|
| 1 | payload |
optional
intrinsic_proto.world.RobotPayload
|
The payload. Empty if no payload is set. |
message GetPlannedTrajectoryRequest intrinsic/icon/proto/v1/service.proto
| Field | Type | Description | |
|---|---|---|---|
| 1 | session_id |
int64
|
The ID of the session that the Action we're querying belongs to. |
| 2 | action_id |
uint64
|
The action whose planned trajectory we're interested in. |
message GetPlannedTrajectoryResponse intrinsic/icon/proto/v1/service.proto
| Field | Type | Description | |
|---|---|---|---|
| 1 | planned_trajectory_segment |
intrinsic_proto.icon.JointTrajectoryPVA
|
message GetSpeedOverrideResponse intrinsic/icon/proto/v1/service.proto
| Field | Type | Description | |
|---|---|---|---|
| 1 | override_factor |
double
|
message GetStatusRequest intrinsic/icon/proto/v1/service.proto
GetStatus() request.
| Field | Type | Description |
|---|
message GetStatusResponse intrinsic/icon/proto/v1/service.proto
GetStatus() response.
| Field | Type | Description | |
|---|---|---|---|
| 1 | part_status |
map<string, PartStatus>
|
The current status (i.e. dynamic data, as opposed to the static data in
|
| 2 | sessions |
map<uint64, SessionStatus>
|
Information about all currently active Sessions. |
| 3 | current_speed_override |
double
|
The current speed override value, see SetSpeedOverride for more details. |
| 4 | safety_status |
intrinsic_proto.icon.SafetyStatus
|
The current status of the safety system. |
message InitialSessionData (Nested in intrinsic_proto.icon.v1.OpenSessionRequest ) intrinsic/icon/proto/v1/service.proto
| Field | Type | Description | |
|---|---|---|---|
| 1 | allocate_parts |
intrinsic_proto.icon.v1.PartList
|
A list of parts to allocate for this session. Parts that are in use by one session cannot be allocated by any other sessions until they are freed. All parts allocated by a session are freed when the session ends. |
| 2 | deadline |
google.protobuf.Timestamp
|
If ICON cannot open the session by this deadline, it returns an error. |
message InitialSessionData (Nested in intrinsic_proto.icon.v1.OpenSessionResponse ) intrinsic/icon/proto/v1/service.proto
| Field | Type | Description | |
|---|---|---|---|
| 1 | session_id |
int64
|
The unique identifier for the session. Callers can use this with related requests to further interact with the session: * GetStatus (to find the list of actions that exist in this session) * WatchReactions * OpenWriteStream * GetLatestStreamingOutput * GetPlannedTrajectory |
message IsActionCompatibleRequest intrinsic/icon/proto/v1/service.proto
IsActionCompatible() request.
| Field | Type | Description | |
|---|---|---|---|
| 1 | action_type_name |
string
|
Action type to check for compatibility. |
|
oneof slot_data
|
|||
| 3 | slot_part_map |
intrinsic_proto.icon.v1.SlotPartMap
|
If this is set, ICON checks for compatibility with this exact SlotPartMap
(i.e. specific parts assigned to specific slots of |
| 4 | part_name |
string
|
If this is set, ICON checks whether |
message IsActionCompatibleResponse intrinsic/icon/proto/v1/service.proto
IsActionCompatible() response.
| Field | Type | Description | |
|---|---|---|---|
| 1 | is_compatible |
bool
|
True iff the action type named |
message ListActionSignaturesRequest intrinsic/icon/proto/v1/service.proto
ListActionSignatures() request.
| Field | Type | Description |
|---|
message ListActionSignaturesResponse intrinsic/icon/proto/v1/service.proto
ListActionSignatures() response.
| Field | Type | Description | |
|---|---|---|---|
| 1 | action_signatures |
repeated
intrinsic_proto.icon.v1.ActionSignature
|
List of available action types. |
message ListCompatiblePartsRequest intrinsic/icon/proto/v1/service.proto
ListCompatibleParts() request.
| Field | Type | Description | |
|---|---|---|---|
| 1 | action_type_names |
repeated
string
|
List of action types to get compatible parts for. A part is considered compatible if it is compatible with at least one slot of every action type in the list. |
message ListCompatiblePartsResponse intrinsic/icon/proto/v1/service.proto
ListCompatibleParts() response.
| Field | Type | Description | |
|---|---|---|---|
| 1 | parts |
repeated
string
|
Parts that are compatible with all listed |
message ListPartsRequest intrinsic/icon/proto/v1/service.proto
ListParts() request.
| Field | Type | Description |
|---|
message ListPartsResponse intrinsic/icon/proto/v1/service.proto
ListParts() response.
| Field | Type | Description | |
|---|---|---|---|
| 1 | parts |
repeated
string
|
Parts that are available. |
message NegatedCondition intrinsic/icon/proto/v1/condition_types.proto
| Field | Type | Description | |
|---|---|---|---|
| 1 | condition |
intrinsic_proto.icon.v1.Condition
|
message OpenSessionRequest intrinsic/icon/proto/v1/service.proto
OpenSession() request. It is valid to send initial_session_data, an
ActionRequest, and a start_actions_request all in the same
OpenSessionRequest. These fields will always be evaluated in the
following order:
1) initial_session_data
2) ActionRequest's are applied
3) start_actions_request
Evaluation is stopped at the first error encountered. For example, if there
is an error in the ActionRequest, start_actions_request will not be
applied.
| Field | Type | Description | |
|---|---|---|---|
| 1 | initial_session_data |
intrinsic_proto.icon.v1.OpenSessionRequest.InitialSessionData
|
Initial data for opening a session that must be sent only with the first OpenSessionRequest. That is, ICON closes the session and returns an error if
* the first OpenSessionRequest for a session lacks |
| 11 | log_context |
intrinsic_proto.data_logger.Context
|
If specified, ICON tags all logs coming from parts used by this session with this context. |
| 12 | start_actions_request |
optional
intrinsic_proto.icon.v1.OpenSessionRequest.StartActionsRequestData
|
If present, ICON starts the requested action instances. Note that this is truly optional, and multiple requests over the course of a single session can start actions. For example, a client may wish to start a new action in response to a non-real-time reaction, or to data from an outside service. |
|
oneof action_request
|
|||
| 5 | add_actions_and_reactions |
intrinsic_proto.icon.v1.ActionsAndReactions
|
ICON adds the actions and reactions in the ActionsAndReactions to the existing action state machine on the server. Adding actions and reactions is a transaction and can have one of two results: 1. Success: The action state machine now contains all of the new actions and reactions 2. Failure: The action state machine contains the same actions and reactions as before, and ICON returns an error Examples of problems that can cause a failure: * Any action_instance_id or reaction_instance_id in the ActionsAndReactions proto is already in use * Any Reaction refers to an action_instance_id that is not present in either the existing action state machine or the ActionsAndReactions proto |
| 6 | remove_action_and_reaction_ids |
intrinsic_proto.icon.v1.ActionAndReactionIds
|
ICON removes the actions and reactions in the ActionAndReactionIds proto from the action state machine on the server. If any action id or reaction ID in the ActionAndReactionIds proto does not exist, then ICON does not modify the action state machine and returns an error. |
| 7 | clear_all_actions_reactions |
intrinsic_proto.icon.v1.OpenSessionRequest.ClearAllActions
|
ICON removes all existing actions and reactions. If any action is currently running, ICON stops that action. After this, the safety action is active for all parts. |
message OpenSessionResponse intrinsic/icon/proto/v1/service.proto
OpenSession() response.
| Field | Type | Description | |
|---|---|---|---|
| 1 | status |
google.rpc.Status
|
Contains an aborted error if the session should end. May contain other errors for non-session ending failures. |
| 2 | initial_session_data |
intrinsic_proto.icon.v1.OpenSessionResponse.InitialSessionData
|
Contains information regarding session initialization. ICON sends this only in response to the first request. |
|
oneof response_type
|
|||
| 5 | action_response |
intrinsic_proto.icon.v1.OpenSessionResponse.ActionResponse
|
This is a response to an ActionRequest |
message OpenWriteStreamRequest intrinsic/icon/proto/v1/service.proto
OpenWriteStream() request.
In the initial message, the client must write session_id and
add_write_stream to set up the stream.
Subsequent calls must set the write_value field to send a value to the
corresponding stream.
| Field | Type | Description | |
|---|---|---|---|
| 1 | add_write_stream |
intrinsic_proto.icon.v1.AddStreamRequest
|
Adds a write stream. Callers must set this field only in the first message. |
| 3 | write_value |
intrinsic_proto.icon.v1.OpenWriteStreamRequest.WriteValue
|
The value to write to an already-set-up write stream. |
| 4 | session_id |
int64
|
The ID of the session this stream belongs to. |
message OpenWriteStreamResponse intrinsic/icon/proto/v1/service.proto
| Field | Type | Description | |
|---|---|---|---|
| 2 | write_value_response |
google.rpc.Status
|
If the previous message wrote a value, this field contains the status of that write operation. Note that an OK status means that the value was written but does not guarantee that the corresponding action has received or processed the message. |
|
oneof stream_operation_response
|
|||
| 1 | add_stream_response |
intrinsic_proto.icon.v1.AddStreamResponse
|
|
message OperationalStatus intrinsic/icon/proto/v1/types.proto
OperationalStatus describes the server's operational status.
| Field | Type | Description | |
|---|---|---|---|
| 1 | state |
intrinsic_proto.icon.v1.OperationalState
|
Current operational state of the parts. |
| 2 | fault_reason |
string
|
A human-readable description of what caused the FAULTED state. When not in the FAULTED state, this is empty. |
message ParameterInfo (Nested in intrinsic_proto.icon.v1.ActionSignature ) intrinsic/icon/proto/v1/types.proto
ParameterInfo describes a fixed parameter, streaming input, or streaming output.
| Field | Type | Description | |
|---|---|---|---|
| 1 | parameter_name |
string
|
Name of this parameter. |
| 2 | text_description |
string
|
Text description of this parameter, for human consumption. |
| 3 | value_message_type |
string
|
Name of the value message type. Must be found in |
| 4 | value_descriptor_set |
google.protobuf.FileDescriptorSet
|
Descriptors of the value type for this parameter (including descriptors of all transitive dependencies). |
message PartConfig intrinsic/icon/proto/v1/types.proto
Configuration for a part. Contains both generic and (optionally) part-specific configuration data.
| Field | Type | Description | |
|---|---|---|---|
| 1 | name |
string
|
String identifier for the part. |
| 4 | config |
google.protobuf.Any
|
Part-specific configuration that does not fit into the format of
GenericPartConfig. The message type matches Note that even Parts that populate this must also provide a GenericPartConfig. |
| 5 | feature_interfaces |
repeated
intrinsic_proto.icon.v1.FeatureInterfaceTypes
|
The Feature Interfaces that this Part supports. |
| 6 | part_type_name |
string
|
String identifier for the part's type. |
| 7 | config_message_type |
string
|
Name of the part's config message type. Must be found in
|
| 8 | config_descriptor_set |
google.protobuf.FileDescriptorSet
|
Descriptors of the config type for this part (including descriptors of all transitive dependencies). |
| 9 | generic_config |
intrinsic_proto.icon.GenericPartConfig
|
Generic Part configuration. No matter what the specific Part type is, this contains the sub-messages corresponding to the Feature Interfaces that the Part supports (see above). |
| 10 | hardware_resource_name |
string
|
message PartGroup intrinsic/icon/proto/v1/types.proto
PartGroup describes a group of part that can be controlled together with real-time synchronization.
| Field | Type | Description | |
|---|---|---|---|
| 1 | parts |
repeated
string
|
message PartList intrinsic/icon/proto/v1/types.proto
A list of parts
| Field | Type | Description | |
|---|---|---|---|
| 1 | part |
repeated
string
|
message PartPropertyValue intrinsic/icon/proto/v1/service.proto
The value of a single part property. These can be scalar boolean or double values. If a part needs to expose more complex data as a property, it uses multiple values. You can read and write multiple values atomically using the GetPartProperties and SetPartProperties methods.
| Field | Type | Description | |
|---|---|---|---|
|
oneof value
|
|||
| 1 | bool_value |
bool
|
|
| 2 | double_value |
double
|
|
message PartPropertyValues intrinsic/icon/proto/v1/service.proto
Contains the values of all part properties for a single part.
| Field | Type | Description | |
|---|---|---|---|
| 1 | property_values_by_name |
map<string, PartPropertyValue>
|
message PartSignature intrinsic/icon/proto/v1/types.proto
PartSignature describes metadata about a part, including descriptors of the part's config and status messages.
| Field | Type | Description | |
|---|---|---|---|
| 1 | name |
string
|
String identifier for the part. |
| 2 | config_message_type |
string
|
Name of the part's config message type. Must be found in
|
| 3 | config_descriptor_set |
google.protobuf.FileDescriptorSet
|
Descriptors of the config type for this part (including descriptors of all transitive dependencies). |
| 4 | status_message_type |
string
|
Name of the part's status message type. Must be found in
|
| 5 | status_descriptor_set |
google.protobuf.FileDescriptorSet
|
Descriptors of the status type for this part (including descriptors of all transitive dependencies). DEPRECATED |
| 6 | part_type_name |
string
|
String identifier for the part's type. |
message PartSlotInfo (Nested in intrinsic_proto.icon.v1.ActionSignature ) intrinsic/icon/proto/v1/types.proto
Describes a part slot for an ICON action. To be compatible with a slot, a
concrete part must supply at least required_feature_interfaces, and may
support optional_feature_interfaces.
If required_feature_interfaces is empty, the slot itself is optional.
That is, a SlotPartMap may omit the slot completely.
| Field | Type | Description | |
|---|---|---|---|
| 2 | description |
string
|
|
| 3 | required_feature_interfaces |
repeated
intrinsic_proto.icon.v1.FeatureInterfaceTypes
|
|
| 4 | optional_feature_interfaces |
repeated
intrinsic_proto.icon.v1.FeatureInterfaceTypes
|
message Reaction intrinsic/icon/proto/v1/types.proto
Reaction describes a realtime condition and a response to take when the condition is satisfied. Next ID: 7
| Field | Type | Description | |
|---|---|---|---|
| 1 | reaction_instance_id |
int64
|
The client-assigned ID of this reaction. The ID of each Reaction must be unique for duration of the session. |
| 3 | condition |
intrinsic_proto.icon.v1.Condition
|
Condition which is evaluated by the control layer every control cycle. |
| 4 | response |
optional
intrinsic_proto.icon.v1.Response
|
Response which should occur when the Condition is satisfied. All reactions, even those without an explicit Response, will generate client events observable with the StreamEvents() rpc method. The response field describes additional realtime side-effects that should occur. |
| 5 | fire_once |
bool
|
If true, the reaction will only trigger once as long as the
associated action is active. It can trigger again if the action is executed
again. If the reaction is free-standing (no If false, the reaction will trigger on every rising edge again. This does not effect real-time signal responses. Since signals remain true after the first rising edge, subsequent triggerings have no effect. |
| 6 | action_association |
optional
intrinsic_proto.icon.v1.Reaction.ActionAssociation
|
Associates the reaction with an action instance. The reaction can only trigger if the associated action is active. If not set, the reaction is free-standing. |
message ReactionEvent intrinsic/icon/proto/v1/types.proto
| Field | Type | Description | |
|---|---|---|---|
| 1 | previous_action_instance_id |
optional
int64
|
The |
| 2 | current_action_instance_id |
optional
int64
|
The |
| 3 | reaction_id |
int64
|
The reaction that was triggered. |
message RealtimeSignalInfo (Nested in intrinsic_proto.icon.v1.ActionSignature ) intrinsic/icon/proto/v1/types.proto
RealtimeSignalInfo describes the type of an action's realtime signal. Realtime signals can trigger a change in behavior of a running action.
| Field | Type | Description | |
|---|---|---|---|
| 1 | signal_name |
string
|
|
| 2 | text_description |
string
|
Text description of this signal, for human consumption. Describe what your action does if it receives this signal. |
message Response intrinsic/icon/proto/v1/types.proto
Response describes a real-time response. This is part of a realtime Reaction.
| Field | Type | Description | |
|---|---|---|---|
| 1 | start_action_instance_id |
int64
|
Start another action. |
message ServerConfig intrinsic/icon/proto/v1/types.proto
Server-wide configuration values.
| Field | Type | Description | |
|---|---|---|---|
| 1 | name |
string
|
The server name shows up in logs and determines the names of DDS topics, among other things. |
| 2 | frequency_hz |
double
|
The global control frequency, in Hz. ICON updates Actions/Reactions and sends commands to hardware at this rate. |
message SessionStatus (Nested in intrinsic_proto.icon.v1.GetStatusResponse ) intrinsic/icon/proto/v1/service.proto
| Field | Type | Description | |
|---|---|---|---|
| 1 | part_group |
intrinsic_proto.icon.v1.PartGroup
|
The Parts claimed by this Session for write access. No other Session can claim any of the Parts in this group. |
| 2 | action_ids |
repeated
int64
|
A list of the actions in this Session. Note that this includes all actions that a user has added and not removed. In particular, the list is not limited to the running actions. |
message SetLoggingModeRequest intrinsic/icon/proto/v1/service.proto
| Field | Type | Description | |
|---|---|---|---|
| 1 | logging_mode |
intrinsic_proto.icon.LoggingMode
|
message SetPartPropertiesRequest intrinsic/icon/proto/v1/service.proto
| Field | Type | Description | |
|---|---|---|---|
| 1 | part_properties_by_part_name |
map<string, PartPropertyValues>
|
ICON applies all of these properties at the same time. |
message SetPayloadRequest intrinsic/icon/proto/v1/service.proto
| Field | Type | Description | |
|---|---|---|---|
| 1 | part_name |
string
|
The name of the part to set the payload for. |
| 2 | payload_name |
string
|
The name of the payload to set. |
| 3 | payload |
intrinsic_proto.world.RobotPayload
|
The payload to set. |
message SetSpeedOverrideRequest intrinsic/icon/proto/v1/service.proto
| Field | Type | Description | |
|---|---|---|---|
| 1 | override_factor |
double
|
Must be between 0 and 1, and modifies the execution speed of compatible actions. |
message SlotPartMap intrinsic/icon/proto/v1/types.proto
A SlotPartMap maps the slot names used by an Action to global Part names.
| Field | Type | Description | |
|---|---|---|---|
| 1 | slot_name_to_part_name |
map<string, string>
|
message StartActionsRequestData (Nested in intrinsic_proto.icon.v1.OpenSessionRequest ) intrinsic/icon/proto/v1/service.proto
Configuration needed when starting a set of actions.
| Field | Type | Description | |
|---|---|---|---|
| 1 | action_instance_ids |
repeated
int64
|
Actions to start. Those actions must not have overlapping part sets. |
| 2 | stop_active_actions |
bool
|
If true, ICON stops all active actions before starting the actions in
If false, all active actions continue to run, unless one of the actions
in |
message StateVariableInfo (Nested in intrinsic_proto.icon.v1.ActionSignature ) intrinsic/icon/proto/v1/types.proto
StateVariableInfo describes the type of an action's state variable.
| Field | Type | Description | |
|---|---|---|---|
| 1 | state_variable_name |
string
|
Name of this parameter. |
| 2 | text_description |
string
|
Text description of this parameter, for human consumption. |
| 3 | type |
intrinsic_proto.icon.v1.ActionSignature.StateVariableInfo.Type
|
Value type of this state variable. |
message WatchReactionsRequest intrinsic/icon/proto/v1/service.proto
| Field | Type | Description | |
|---|---|---|---|
| 1 | session_id |
int64
|
The unique identifier of the action session. This should be the session id
returned in the |
message WatchReactionsResponse intrinsic/icon/proto/v1/service.proto
| Field | Type | Description | |
|---|---|---|---|
| 1 | timestamp |
google.protobuf.Timestamp
|
The time when the Reaction occurred. |
| 2 | reaction_event |
intrinsic_proto.icon.v1.ReactionEvent
|
The reaction that occurred. This is empty for the first message sent to the client. |
message WriteValue (Nested in intrinsic_proto.icon.v1.OpenWriteStreamRequest ) intrinsic/icon/proto/v1/service.proto
| Field | Type | Description | |
|---|---|---|---|
| 2 | value |
google.protobuf.Any
|
Enums
enum FeatureInterfaceTypes intrinsic/icon/proto/v1/types.proto
Keep in sync with intrinsic/icon/control/parts/feature_interfaces.h
| Name | Number | Description |
|---|---|---|
FEATURE_INTERFACE_INVALID |
0 | |
FEATURE_INTERFACE_JOINT_POSITION |
1 | |
FEATURE_INTERFACE_JOINT_VELOCITY |
2 | |
FEATURE_INTERFACE_JOINT_ACCELERATION |
27 | |
FEATURE_INTERFACE_JOINT_POSITION_SENSOR |
3 | |
FEATURE_INTERFACE_JOINT_VELOCITY_ESTIMATOR |
4 | |
FEATURE_INTERFACE_JOINT_ACCELERATION_ESTIMATOR |
5 | |
FEATURE_INTERFACE_JOINT_LIMITS |
6 | |
FEATURE_INTERFACE_CARTESIAN_LIMITS |
7 | |
FEATURE_INTERFACE_SIMPLE_GRIPPER |
8 | |
FEATURE_INTERFACE_ADIO |
9 | |
FEATURE_INTERFACE_RANGE_FINDER |
10 | |
FEATURE_INTERFACE_MANIPULATOR_KINEMATICS |
11 | |
FEATURE_INTERFACE_JOINT_TORQUE |
12 | |
FEATURE_INTERFACE_JOINT_TORQUE_SENSOR |
13 | |
FEATURE_INTERFACE_DYNAMICS |
14 | |
FEATURE_INTERFACE_FORCE_TORQUE_SENSOR |
15 | |
FEATURE_INTERFACE_LINEAR_GRIPPER |
16 | |
FEATURE_INTERFACE_HAND_GUIDING |
17 | |
FEATURE_INTERFACE_CONTROL_MODE_EXPORTER |
18 | |
FEATURE_INTERFACE_MOVE_OK |
19 | |
FEATURE_INTERFACE_IMU |
20 | |
FEATURE_INTERFACE_STANDALONE_FORCE_TORQUE_SENSOR |
21 | |
FEATURE_INTERFACE_PROCESS_WRENCH_AT_ENDEFFECTOR |
22 | |
FEATURE_INTERFACE_PAYLOAD |
23 | |
FEATURE_INTERFACE_PAYLOAD_STATE |
24 | |
FEATURE_INTERFACE_CARTESIAN_POSITION_STATE |
25 | |
FEATURE_INTERFACE_HOMING |
26 |
enum HardwareGroup intrinsic/icon/proto/v1/service.proto
| Name | Number | Description |
|---|---|---|
HARDWARE_GROUP_UNSPECIFIED |
0 | |
ALL_HARDWARE |
1 | |
OPERATIONAL_HARDWARE_ONLY |
2 |
enum OpEnum intrinsic/icon/proto/v1/condition_types.proto
OpEnum describes available operations.
| Name | Number | Description |
|---|---|---|
UNKNOWN |
0 | |
EQUAL |
1 | |
NOT_EQUAL |
2 | |
APPROX_EQUAL |
3 | |
APPROX_NOT_EQUAL |
4 | |
LESS_THAN_OR_EQUAL |
5 | |
LESS_THAN |
6 | |
GREATER_THAN_OR_EQUAL |
7 | |
GREATER_THAN |
8 |
enum OpEnum intrinsic/icon/proto/v1/condition_types.proto
OpEnum describes available operations.
| Name | Number | Description |
|---|---|---|
UNKNOWN |
0 | |
ALL_OF |
1 | |
ANY_OF |
2 |
enum OperationalState intrinsic/icon/proto/v1/types.proto
The summarized state of all or a group of hardware (such as cell control hardware modules) or the real-time control service.
| Name | Number | Description |
|---|---|---|
UNKNOWN |
0 | |
DISABLED |
1 | Indicates that this group of hardware (or the server) is not ready for
active control and that no sessions can be started that need to control
these parts.
This is possible when:
- The skill "disable_realtime_control" or |
FAULTED |
2 | Indicates that at least one part, possibly the entire real-time control
service, is faulted. |
ENABLED |
3 | Indicates that the server is ready for a session to begin and all parts are enabled. Part status is being published. |
enum Type intrinsic/icon/proto/v1/types.proto
| Name | Number | Description |
|---|---|---|
UNKNOWN |
0 | Match FieldDescriptorProto Type enum values, just for kicks. |
TYPE_DOUBLE |
1 | |
TYPE_INT64 |
3 | |
TYPE_BOOL |
8 |