spot-sdk-ts
Version:
TypeScript bindings based on protobufs (proto3) provided by Boston Dynamics
1,166 lines (1,165 loc) • 262 kB
TypeScript
import { ServiceFault_Severity, ServiceFault } from "./service_fault";
import { Duration } from "../../google/protobuf/duration";
import { FrameTreeSnapshot, SE3Velocity, Vec3 } from "./geometry";
import { Parameter } from "./parameter";
import { RequestHeader, ResponseHeader } from "./header";
import _m0 from "protobufjs/minimal";
export declare const protobufPackage = "bosdyn.api";
/** Kinematic model of the robot skeleton. */
export interface Skeleton {
/** The list of links that make up the robot skeleton. */
links: Skeleton_Link[];
/** URDF description of the robot skeleton. */
urdf: string;
}
/** Each link of the robot skeleton. */
export interface Skeleton_Link {
/** The link name, which matches those used in the urdf. */
name: string;
/** The OBJ file representing the model of this link. */
objModel: Skeleton_Link_ObjModel | undefined;
}
/**
* Model to draw, expressed as an obj file.
* Note: To limit the size of responses, obj_file_contents might be omitted.
*/
export interface Skeleton_Link_ObjModel {
/** Name of the file. */
fileName: string;
/** The contents of the file. */
fileContents: string;
}
/** Robot Hardware Configuration, described with the robot skeleton. */
export interface HardwareConfiguration {
/** Robot link and joint description. */
skeleton: Skeleton | undefined;
/** Turn off the robot. Same as physical switch. */
canPowerCommandRequestOffRobot: boolean;
/** Power cycle the robot. Same as physical switch. */
canPowerCommandRequestCycleRobot: boolean;
/** Control power to the payload ports. */
canPowerCommandRequestPayloadPorts: boolean;
/** Control power to the hardware Wi-Fi radio. */
canPowerCommandRequestWifiRadio: boolean;
}
/** The current state of the robot. */
export interface RobotState {
/** Power state (e.g. motor power). */
powerState: PowerState | undefined;
/** Battery state (e.g. charge, temperature, current). */
batteryStates: BatteryState[];
/** Communication state (e.g. type of comms network). */
commsStates: CommsState[];
/** Different system faults for the robot. */
systemFaultState: SystemFaultState | undefined;
/**
* Because there may be multiple E-Stops, and because E-Stops may be supplied with payloads,
* this is a repeated field instead of a hardcoded list.
*/
estopStates: EStopState[];
/** Kinematic state of the robot (e.g. positions, velocities, other frame information). */
kinematicState: KinematicState | undefined;
/** Robot behavior fault state. */
behaviorFaultState: BehaviorFaultState | undefined;
/** The foot states (and contact information). */
footState: FootState[];
/** / State of the manipulator, only populated if an arm is attached to the robot. */
manipulatorState: ManipulatorState | undefined;
/** Service faults for services registered with the robot. */
serviceFaultState: ServiceFaultState | undefined;
/** Relevant terrain data beneath and around the robot */
terrainState: TerrainState | undefined;
}
/**
* The power state for the robot.
* If a robot is not in the POWER OFF state, if is not safe to approach.
* The robot must not be E-Stopped to enter the POWER_ON state.
*/
export interface PowerState {
/** Robot clock timestamp corresponding to these readings. */
timestamp: Date | undefined;
/** The motor power state of the robot. */
motorPowerState: PowerState_MotorPowerState;
/** The shore power state of the robot. */
shorePowerState: PowerState_ShorePowerState;
/** The payload ports power state of the robot. */
robotPowerState: PowerState_RobotPowerState;
/** The payload ports power state of the robot. */
payloadPortsPowerState: PowerState_PayloadPortsPowerState;
/** The hardware radio power state of the robot. */
wifiRadioPowerState: PowerState_WifiRadioPowerState;
/**
* Number from 0 (empty) to 100 (full) indicating the estimated state of charge.
* This field provides a summary of the BatteryStates that provide power for motor and/or
* base compute power, both of which are required for locomotion.
*/
locomotionChargePercentage: number | undefined;
/**
* An estimate of remaining runtime. Note that this field might not be populated.
* This field provides a summary of the BatteryStates that provide power for motor and/or
* base compute power, both of which are required for locomotion.
*/
locomotionEstimatedRuntime: Duration | undefined;
}
export declare enum PowerState_MotorPowerState {
/**
* STATE_UNKNOWN - Unknown motor power state. Do not use this field.
*
* @deprecated
*/
STATE_UNKNOWN = 0,
MOTOR_POWER_STATE_UNKNOWN = 0,
/**
* STATE_OFF - Motors are off, the robot is safe to approach.
*
* @deprecated
*/
STATE_OFF = 1,
MOTOR_POWER_STATE_OFF = 1,
/**
* STATE_ON - The motors are powered.
*
* @deprecated
*/
STATE_ON = 2,
MOTOR_POWER_STATE_ON = 2,
/**
* STATE_POWERING_ON - The robot has received an ON command, and is turning on.
*
* @deprecated
*/
STATE_POWERING_ON = 3,
MOTOR_POWER_STATE_POWERING_ON = 3,
/**
* STATE_POWERING_OFF - In the process of powering down, not yet safe to approach.
*
* @deprecated
*/
STATE_POWERING_OFF = 4,
MOTOR_POWER_STATE_POWERING_OFF = 4,
/**
* STATE_ERROR - The robot is in an error state and must be powered off before attempting to re-power.
*
* @deprecated
*/
STATE_ERROR = 5,
MOTOR_POWER_STATE_ERROR = 5,
UNRECOGNIZED = -1
}
export declare function powerState_MotorPowerStateFromJSON(object: any): PowerState_MotorPowerState;
export declare function powerState_MotorPowerStateToJSON(object: PowerState_MotorPowerState): string;
/**
* State describing if robot is connected to shore (wall) power. Robot can't be powered on
* while on shore power
*/
export declare enum PowerState_ShorePowerState {
/**
* STATE_UNKNOWN_SHORE_POWER - Unknown shore power state. Do not use.
*
* @deprecated
*/
STATE_UNKNOWN_SHORE_POWER = 0,
SHORE_POWER_STATE_UNKNOWN = 0,
/**
* STATE_ON_SHORE_POWER - The robot is connected to shore power. The robot will not power on while connected to
* shore power.
*
* @deprecated
*/
STATE_ON_SHORE_POWER = 1,
SHORE_POWER_STATE_ON = 1,
/**
* STATE_OFF_SHORE_POWER - The robot is disconnected from shore power and motors can be powered up.
*
* @deprecated
*/
STATE_OFF_SHORE_POWER = 2,
SHORE_POWER_STATE_OFF = 2,
UNRECOGNIZED = -1
}
export declare function powerState_ShorePowerStateFromJSON(object: any): PowerState_ShorePowerState;
export declare function powerState_ShorePowerStateToJSON(object: PowerState_ShorePowerState): string;
/** State describing if the robot has power. */
export declare enum PowerState_RobotPowerState {
/** ROBOT_POWER_STATE_UNKNOWN - Unknown robot power state. Do not use this field. */
ROBOT_POWER_STATE_UNKNOWN = 0,
/** ROBOT_POWER_STATE_ON - The robot is powered on. */
ROBOT_POWER_STATE_ON = 1,
/**
* ROBOT_POWER_STATE_OFF - The robot does not have power.
* Impossible to get this response, as the robot cannot respond if it is powered off.
*/
ROBOT_POWER_STATE_OFF = 2,
UNRECOGNIZED = -1
}
export declare function powerState_RobotPowerStateFromJSON(object: any): PowerState_RobotPowerState;
export declare function powerState_RobotPowerStateToJSON(object: PowerState_RobotPowerState): string;
/** State describing if the payload port has power. */
export declare enum PowerState_PayloadPortsPowerState {
/** PAYLOAD_PORTS_POWER_STATE_UNKNOWN - Unknown payload port power state. Do not use this field. */
PAYLOAD_PORTS_POWER_STATE_UNKNOWN = 0,
/** PAYLOAD_PORTS_POWER_STATE_ON - The payload port is powered on. */
PAYLOAD_PORTS_POWER_STATE_ON = 1,
/** PAYLOAD_PORTS_POWER_STATE_OFF - The payload port does not have power. */
PAYLOAD_PORTS_POWER_STATE_OFF = 2,
UNRECOGNIZED = -1
}
export declare function powerState_PayloadPortsPowerStateFromJSON(object: any): PowerState_PayloadPortsPowerState;
export declare function powerState_PayloadPortsPowerStateToJSON(object: PowerState_PayloadPortsPowerState): string;
/** State describing if the robot Wi-Fi router has power. */
export declare enum PowerState_WifiRadioPowerState {
/** WIFI_RADIO_POWER_STATE_UNKNOWN - Unknown radio power state. Do not use this field. */
WIFI_RADIO_POWER_STATE_UNKNOWN = 0,
/** WIFI_RADIO_POWER_STATE_ON - The radio is powered on. */
WIFI_RADIO_POWER_STATE_ON = 1,
/** WIFI_RADIO_POWER_STATE_OFF - The radio does not have power. */
WIFI_RADIO_POWER_STATE_OFF = 2,
UNRECOGNIZED = -1
}
export declare function powerState_WifiRadioPowerStateFromJSON(object: any): PowerState_WifiRadioPowerState;
export declare function powerState_WifiRadioPowerStateToJSON(object: PowerState_WifiRadioPowerState): string;
/**
* The current state of each system fault the robot is experiencing.
* An "active" fault indicates a hardware/software currently on the robot.
* A "historical" fault indicates a, now cleared, hardware/software problem.
* Historical faults are useful to diagnose robot behavior subject to intermittent failed states.
*/
export interface SystemFaultState {
/** Currently active faults */
faults: SystemFault[];
/** Inactive faults that cleared within the last 10 minutes */
historicalFaults: SystemFault[];
/**
* Aggregated fault data.
* This provides a very quick way of determining if there any
* "battery" or "vision" faults above a certain severity level.
*/
aggregated: {
[key: string]: SystemFault_Severity;
};
}
export interface SystemFaultState_AggregatedEntry {
key: string;
value: SystemFault_Severity;
}
/**
* The current system faults for a robot.
* A fault is an indicator of a hardware or software problem on the robot. An
* active fault may indicate the robot may fail to comply with a user request.
* The exact response a fault may vary, but possible responses include: failure
* to enable motor power, loss of perception enabled behavior, or triggering a
* fault recovery behavior on robot.
*/
export interface SystemFault {
/** Name of the fault. */
name: string;
/** Time of robot local clock at fault onset. */
onsetTimestamp: Date | undefined;
/** Time elapsed since onset of the fault. */
duration: Duration | undefined;
/**
* Error code returned by a fault. The exact interpretation of the fault code
* is unique to each variety of fault on the robot. The code is useful for
* Boston Dynamics support staff to diagnose hardware/software issues on
* robot.
*/
code: number;
/** Fault UID */
uid: number;
/** User visible description of the fault (and possibly remedies.) */
errorMessage: string;
/**
* Fault attributes
* Each fault may be flagged with attribute metadata (strings in this case.)
* These attributes are useful to communicate that a particular fault may
* have significant effect on robot operations. Some potential attributes
* may be "robot", "imu", "vision", or "battery". These attributes would let
* us flag a fault as indicating a problem with the base robot hardware,
* gyro, perception system, or battery respectively. A fault may have, zero,
* one, or more attributes attached to it, i.e. a "battery" fault may also
* be considered a "robot" fault.
*/
attributes: string[];
/**
* Fault severity, how bad is the fault?
* The severity level will have some indication of the potential robot
* response to the fault. For example, a fault marked with "battery"
* attribute and severity level SEVERITY_WARN may indicate a low battery
* state of charge. However a "battery" fault with severity level
* SEVERITY_CRITICAL likely means the robot is going to shutdown
* immediately.
*/
severity: SystemFault_Severity;
}
export declare enum SystemFault_Severity {
/** SEVERITY_UNKNOWN - Unknown severity */
SEVERITY_UNKNOWN = 0,
/** SEVERITY_INFO - No hardware problem */
SEVERITY_INFO = 1,
/** SEVERITY_WARN - Robot performance may be degraded */
SEVERITY_WARN = 2,
/** SEVERITY_CRITICAL - Critical fault */
SEVERITY_CRITICAL = 3,
UNRECOGNIZED = -1
}
export declare function systemFault_SeverityFromJSON(object: any): SystemFault_Severity;
export declare function systemFault_SeverityToJSON(object: SystemFault_Severity): string;
/**
* The robot's current E-Stop states and endpoints.
* A typical robot has several different E-Stops, all which must be "NOT_ESTOPPED"
* in order to run the robot.
*/
export interface EStopState {
/** Robot clock timestamp corresponding to these readings. */
timestamp: Date | undefined;
/** Name of the E-Stop */
name: string;
/** What kind of E-Stop this message describes. */
type: EStopState_Type;
/** The state of the E-Stop (is it E-Stopped or not?) */
state: EStopState_State;
/** Optional description of E-Stop status. */
stateDescription: string;
}
export declare enum EStopState_Type {
/** TYPE_UNKNOWN - Unknown type of E-Stop. Do not use this field. */
TYPE_UNKNOWN = 0,
/** TYPE_HARDWARE - E-Stop is a physical button */
TYPE_HARDWARE = 1,
/** TYPE_SOFTWARE - E-Stop is a software process */
TYPE_SOFTWARE = 2,
UNRECOGNIZED = -1
}
export declare function eStopState_TypeFromJSON(object: any): EStopState_Type;
export declare function eStopState_TypeToJSON(object: EStopState_Type): string;
export declare enum EStopState_State {
/** STATE_UNKNOWN - No E-Stop information is present. Only happens in an error case. */
STATE_UNKNOWN = 0,
/** STATE_ESTOPPED - E-Stop is active -- robot cannot power its actuators. */
STATE_ESTOPPED = 1,
/** STATE_NOT_ESTOPPED - E-Stop is released -- robot may be able to power its actuators. */
STATE_NOT_ESTOPPED = 2,
UNRECOGNIZED = -1
}
export declare function eStopState_StateFromJSON(object: any): EStopState_State;
export declare function eStopState_StateToJSON(object: EStopState_State): string;
/**
* The battery state for the robot. This includes information about the charge or the
* battery temperature.
*/
export interface BatteryState {
/** Robot clock timestamp corresponding to these readings. */
timestamp: Date | undefined;
/** An identifier for this battery (could be a serial number or a name. subject to change). */
identifier: string;
/** Number from 0 (empty) to 100 (full) indicating the estimated state of charge of the battery. */
chargePercentage: number | undefined;
/** An estimate of remaining runtime. Note that this field might not be populated. */
estimatedRuntime: Duration | undefined;
/**
* Measured current into (charging, positive) or out of (discharging, negative) the battery in
* Amps.
*/
current: number | undefined;
/** Measured voltage of the entire battery in Volts. */
voltage: number | undefined;
/**
* Measured temperature measurements of battery, in Celsius.
* Temperatures may be measured in many locations across the battery.
*/
temperatures: number[];
/** Current state of the battery. */
status: BatteryState_Status;
}
export declare enum BatteryState_Status {
/** STATUS_UNKNOWN - The battery is in an unknown / unexpected state. */
STATUS_UNKNOWN = 0,
/** STATUS_MISSING - The battery is not plugged in or otherwise not talking. */
STATUS_MISSING = 1,
/** STATUS_CHARGING - The battery is plugged in to shore power and charging. */
STATUS_CHARGING = 2,
/** STATUS_DISCHARGING - The battery is not plugged into shore power and discharging. */
STATUS_DISCHARGING = 3,
/** STATUS_BOOTING - The battery was just plugged in and is booting up= 3; */
STATUS_BOOTING = 4,
UNRECOGNIZED = -1
}
export declare function batteryState_StatusFromJSON(object: any): BatteryState_Status;
export declare function batteryState_StatusToJSON(object: BatteryState_Status): string;
/**
* The kinematic state of the robot describes the current estimated positions of the robot body and joints throughout the world.
* It includes a transform snapshot of the robot’s current known frames as well as joint states and the velocity of the body.
*/
export interface KinematicState {
/** Joint state of all robot joints. */
jointStates: JointState[];
/** Robot clock timestamp corresponding to these readings. */
acquisitionTimestamp: Date | undefined;
/**
* A tree-based collection of transformations, which will include the transformations to the
* robot body ("body") in addition to transformations to the common frames ("world", "dr") and
* ground plane estimate "gpe".
* All transforms within the snapshot are at the acquisition time of kinematic state.
*/
transformsSnapshot: FrameTreeSnapshot | undefined;
/**
* Velocity of the body frame with respect to vision frame and expressed in vision frame.
* The linear velocity is applied at the origin of the body frame.
*/
velocityOfBodyInVision: SE3Velocity | undefined;
/**
* Velocity of the body frame with respect to odom frame and expressed in odom frame.
* Again, the linear velocity is applied at the origin of the body frame.
*/
velocityOfBodyInOdom: SE3Velocity | undefined;
}
/**
* Proto containing the state of a joint on the robot. This can be used with the robot skeleton to
* update the current view of the robot.
*/
export interface JointState {
/** This name maps directly to the joints in the URDF. */
name: string;
/**
* This is typically an angle in radians as joints are typically revolute. However, for
* translational joints this could be a distance in meters.
*/
position: number | undefined;
/** The joint velocity in [m/s]. */
velocity: number | undefined;
/** The joint acceleration in [m/s^2]. */
acceleration: number | undefined;
/**
* This is typically a torque in Newton meters as joints are typically revolute. However, for
* translational joints this could be a force in Newtons.
*/
load: number | undefined;
}
/**
* This describes any current behaviror faults on the robot, which would block any robot commands
* from going through. These can be cleared using the ClearBehaviorFault rpc in the robot command
* service.
*/
export interface BehaviorFaultState {
/** Current errors potentially blocking commands on robot */
faults: BehaviorFault[];
}
/**
* The details of what the behavior fault consistents of, and the id for the fault. The unique
* behavior_fault_id can be used to clear the fault in robot command service ClearBehaviorFault rpc.
*/
export interface BehaviorFault {
/** Behavior fault unique id */
behaviorFaultId: number;
/** Time of robot local clock at time of the error */
onsetTimestamp: Date | undefined;
/** The potential cause of the fault. */
cause: BehaviorFault_Cause;
/** Information about the status/what can be done with the fault. */
status: BehaviorFault_Status;
}
export declare enum BehaviorFault_Cause {
/** CAUSE_UNKNOWN - Unknown cause of error */
CAUSE_UNKNOWN = 0,
/** CAUSE_FALL - Error caused by mobility failure or fall */
CAUSE_FALL = 1,
/** CAUSE_HARDWARE - Error caused by robot hardware malfunction */
CAUSE_HARDWARE = 2,
/** CAUSE_LEASE_TIMEOUT - / A lease has timed out */
CAUSE_LEASE_TIMEOUT = 3,
UNRECOGNIZED = -1
}
export declare function behaviorFault_CauseFromJSON(object: any): BehaviorFault_Cause;
export declare function behaviorFault_CauseToJSON(object: BehaviorFault_Cause): string;
export declare enum BehaviorFault_Status {
/** STATUS_UNKNOWN - Unknown clearable status */
STATUS_UNKNOWN = 0,
/** STATUS_CLEARABLE - Fault is clearable */
STATUS_CLEARABLE = 1,
/** STATUS_UNCLEARABLE - Fault is currently not clearable */
STATUS_UNCLEARABLE = 2,
UNRECOGNIZED = -1
}
export declare function behaviorFault_StatusFromJSON(object: any): BehaviorFault_Status;
export declare function behaviorFault_StatusToJSON(object: BehaviorFault_Status): string;
/** Key robot metrics (e.g., Gait cycles (count), distance walked, time moving, etc...). */
export interface RobotMetrics {
/** Robot timestamp corresponding to these metrics. */
timestamp: Date | undefined;
/** Key tracked robot metrics, such as distance walked, runtime, etc. */
metrics: Parameter[];
}
/**
* The current comms information, including what comms the robot is using and the current status
* of the comms network.
*/
export interface CommsState {
/** Robot timestamp corresponding to these readings. */
timestamp: Date | undefined;
/** The communication state is WiFi. */
wifiState: WiFiState | undefined;
}
export interface WiFiState {
/** Current WiFi mode. */
currentMode: WiFiState_Mode;
/** Essid of robot (master mode) or connected network. */
essid: string;
}
export declare enum WiFiState_Mode {
/** MODE_UNKNOWN - The robot's comms state is unknown, or no user requested mode. */
MODE_UNKNOWN = 0,
/** MODE_ACCESS_POINT - The robot is acting as an access point. */
MODE_ACCESS_POINT = 1,
/** MODE_CLIENT - The robot is connected to a network. */
MODE_CLIENT = 2,
UNRECOGNIZED = -1
}
export declare function wiFiState_ModeFromJSON(object: any): WiFiState_Mode;
export declare function wiFiState_ModeToJSON(object: WiFiState_Mode): string;
/** Information about the foot positions and contact state, on a per-foot basis. */
export interface FootState {
/** The foot position described relative to the body. */
footPositionRtBody: Vec3 | undefined;
/** Is the foot in contact with the ground? */
contact: FootState_Contact;
terrain: FootState_TerrainState | undefined;
}
export declare enum FootState_Contact {
/** CONTACT_UNKNOWN - Unknown contact. Do not use. */
CONTACT_UNKNOWN = 0,
/** CONTACT_MADE - The foot is currently in contact with the ground. */
CONTACT_MADE = 1,
/** CONTACT_LOST - The foot is not in contact with the ground. */
CONTACT_LOST = 2,
UNRECOGNIZED = -1
}
export declare function footState_ContactFromJSON(object: any): FootState_Contact;
export declare function footState_ContactToJSON(object: FootState_Contact): string;
/**
* Foot specific terrain data. Data may not be valid if the contact state is
* not CONTACT_MADE.
*/
export interface FootState_TerrainState {
/** Estimated ground coefficient of friction for this foot. */
groundMuEst: number;
/** Reference frame name for vector data. */
frameName: string;
/** Foot slip distance rt named frame */
footSlipDistanceRtFrame: Vec3 | undefined;
/** Foot slip velocity rt named frame */
footSlipVelocityRtFrame: Vec3 | undefined;
/** Ground contact normal rt named frame */
groundContactNormalRtFrame: Vec3 | undefined;
/**
* Mean penetration (meters) of the foot below the ground visual
* surface. For penetrable terrains (gravel/sand/grass etc.) these values are
* positive. Negative values would indicate potential odometry issues.
*/
visualSurfaceGroundPenetrationMean: number;
/** Standard deviation of the visual surface ground penetration. */
visualSurfaceGroundPenetrationStd: number;
}
/** / Additional state published if an arm is attached to the robot. */
export interface ManipulatorState {
/**
* How open the gripper is, measured in percent.
* 0 = fully closed, 100 = fully open.
*/
gripperOpenPercentage: number;
/** / Will be true if the gripper is holding an item, false otherwise. */
isGripperHoldingItem: boolean;
/** The estimated force on the end-effector expressed in the hand frame. */
estimatedEndEffectorForceInHand: Vec3 | undefined;
/** / Information on if the arm is stowed, or deployed. */
stowState: ManipulatorState_StowState;
/**
* Velocity of the hand frame with respect to vision frame and expressed in vision frame.
* The linear velocity is applied at the origin of the hand frame.
*/
velocityOfHandInVision: SE3Velocity | undefined;
/**
* Velocity of the hand frame with respect to odom frame and expressed in odom frame.
* Again, the linear velocity is applied at the origin of the hand frame.
*/
velocityOfHandInOdom: SE3Velocity | undefined;
carryState: ManipulatorState_CarryState;
}
export declare enum ManipulatorState_StowState {
STOWSTATE_UNKNOWN = 0,
STOWSTATE_STOWED = 1,
STOWSTATE_DEPLOYED = 2,
UNRECOGNIZED = -1
}
export declare function manipulatorState_StowStateFromJSON(object: any): ManipulatorState_StowState;
export declare function manipulatorState_StowStateToJSON(object: ManipulatorState_StowState): string;
/**
* The stowing behavior is modified as a function of the Carry State. If holding an item, the
* stowing behavior will be modified as follows:
* NOT_CARRIABLE - The arm will not stow, instead entering stop
* CARRIABLE - The arm will not stow, instead entering stop
* CARRIABLE_AND_STOWABLE - The arm will stow while continuing to grasp the item
* The comms loss behavior of the arm is also modified as follows:
* NOT_CARRIABLE - The arm will release the item and stow
* CARRIABLE - The arm will not stow, instead entering stop
* CARRIABLE_AND_STOWABLE - The arm will stow while continuing to grasp the item
*/
export declare enum ManipulatorState_CarryState {
CARRY_STATE_UNKNOWN = 0,
CARRY_STATE_NOT_CARRIABLE = 1,
CARRY_STATE_CARRIABLE = 2,
CARRY_STATE_CARRIABLE_AND_STOWABLE = 3,
UNRECOGNIZED = -1
}
export declare function manipulatorState_CarryStateFromJSON(object: any): ManipulatorState_CarryState;
export declare function manipulatorState_CarryStateToJSON(object: ManipulatorState_CarryState): string;
/**
* The current state of each service fault the robot is experiencing.
* An "active" fault indicates a fault currently in a service.
* A "historical" fault indicates a, now cleared, service problem.
*/
export interface ServiceFaultState {
/** Currently active faults */
faults: ServiceFault[];
/** Service faults that have been cleared. Acts as a ring buffer with size of 50. */
historicalFaults: ServiceFault[];
/**
* Aggregated service fault data. Maps attribute string to highest severity level
* of any active fault containing that attribute string.
* This provides a very quick way of determining if there any "locomotion" or
* "vision" faults above a certain severity level.
*/
aggregated: {
[key: string]: ServiceFault_Severity;
};
}
export interface ServiceFaultState_AggregatedEntry {
key: string;
value: ServiceFault_Severity;
}
/** Relevant terrain data beneath and around the robot */
export interface TerrainState {
/**
* Is the terrain immediately under the robot such that sitting or powering off
* the robot may cause the robot to be in an unstable position?
*/
isUnsafeToSit: boolean;
}
/** The RobotState request message to get the current state of the robot. */
export interface RobotStateRequest {
/** Common request header. */
header: RequestHeader | undefined;
}
/**
* The RobotState response message, which returns the robot state information from the time
* the request was received.
*/
export interface RobotStateResponse {
/** Common response header. */
header: ResponseHeader | undefined;
/** The requested RobotState. */
robotState: RobotState | undefined;
}
/** The RobotMetrics request message to get metrics and parameters from the robot. */
export interface RobotMetricsRequest {
/** Common request header. */
header: RequestHeader | undefined;
}
/**
* The RobotMetrics response message, which returns the metrics information from the time
* the request was received.
*/
export interface RobotMetricsResponse {
/** Common response header. */
header: ResponseHeader | undefined;
/** The requested robot metrics. */
robotMetrics: RobotMetrics | undefined;
}
/**
* The RobotHardwareConfiguration request message to get hardware configuration, described
* by the robot skeleton and urdf.
*/
export interface RobotHardwareConfigurationRequest {
/** Common request header. */
header: RequestHeader | undefined;
}
/**
* The RobotHardwareConfiguration response message, which returns the hardware config from the time
* the request was received.
*/
export interface RobotHardwareConfigurationResponse {
/** Common response header. */
header: ResponseHeader | undefined;
/** The requested RobotState. */
hardwareConfiguration: HardwareConfiguration | undefined;
}
/**
* The RobotLinkModel request message uses a link name returned by the RobotHardwareConfiguration response to
* get the associated OBJ file.
*/
export interface RobotLinkModelRequest {
/** Common request header. */
header: RequestHeader | undefined;
/** The link name of which the OBJ file shoould represent. */
linkName: string;
}
/** The RobotLinkModel response message returns the OBJ file for a specifc robot link. */
export interface RobotLinkModelResponse {
/** Common response header. */
header: ResponseHeader | undefined;
/** The requested RobotState skeleton obj model. */
linkModel: Skeleton_Link_ObjModel | undefined;
}
/** Keeps track of why the robot is not able to drive autonomously. */
export interface RobotImpairedState {
/** If the status is ROBOT_IMPAIRED, this is specifically why the robot is impaired. */
impairedStatus: RobotImpairedState_ImpairedStatus;
/** If impaired_status is STATUS_SYSTEM_FAULT, these are the faults which caused the robot to stop. */
systemFaults: SystemFault[];
/**
* If impaired_status is STATUS_SERVICE_FAULT, these are the service faults which caused
* the robot to stop.
*/
serviceFaults: ServiceFault[];
/**
* If impaired_status is STATUS_BEHAVIOR_FAULT, these are the behavior faults which caused
* the robot to stop.
*/
behaviorFaults: BehaviorFault[];
}
/** If the robot is stopped due to being impaired, this is the reason why. */
export declare enum RobotImpairedState_ImpairedStatus {
/** IMPAIRED_STATUS_UNKNOWN - Unknown/unexpected error. */
IMPAIRED_STATUS_UNKNOWN = 0,
/** IMPAIRED_STATUS_OK - The robot is able to drive. */
IMPAIRED_STATUS_OK = 1,
/** IMPAIRED_STATUS_NO_ROBOT_DATA - The autonomous system does not have any data from the robot state service. */
IMPAIRED_STATUS_NO_ROBOT_DATA = 2,
/** IMPAIRED_STATUS_SYSTEM_FAULT - There is a system fault which caused the robot to stop. See system_fault for details. */
IMPAIRED_STATUS_SYSTEM_FAULT = 3,
/** IMPAIRED_STATUS_NO_MOTOR_POWER - The robot's motors are not powered on. */
IMPAIRED_STATUS_NO_MOTOR_POWER = 4,
/** IMPAIRED_STATUS_REMOTE_CLOUDS_NOT_WORKING - The autonomous system is expected to have a remote point cloud (e.g. a LIDAR), but this is not working. */
IMPAIRED_STATUS_REMOTE_CLOUDS_NOT_WORKING = 5,
/** IMPAIRED_STATUS_SERVICE_FAULT - A remote service the autonomous system depends on is not working. */
IMPAIRED_STATUS_SERVICE_FAULT = 6,
/** IMPAIRED_STATUS_BEHAVIOR_FAULT - A behavior fault caused the robot to stop. See behavior_faults for details. */
IMPAIRED_STATUS_BEHAVIOR_FAULT = 7,
UNRECOGNIZED = -1
}
export declare function robotImpairedState_ImpairedStatusFromJSON(object: any): RobotImpairedState_ImpairedStatus;
export declare function robotImpairedState_ImpairedStatusToJSON(object: RobotImpairedState_ImpairedStatus): string;
export declare const Skeleton: {
encode(message: Skeleton, writer?: _m0.Writer): _m0.Writer;
decode(input: _m0.Reader | Uint8Array, length?: number): Skeleton;
fromJSON(object: any): Skeleton;
toJSON(message: Skeleton): unknown;
fromPartial<I extends {
links?: {
name?: string | undefined;
objModel?: {
fileName?: string | undefined;
fileContents?: string | undefined;
} | undefined;
}[] | undefined;
urdf?: string | undefined;
} & {
links?: ({
name?: string | undefined;
objModel?: {
fileName?: string | undefined;
fileContents?: string | undefined;
} | undefined;
}[] & ({
name?: string | undefined;
objModel?: {
fileName?: string | undefined;
fileContents?: string | undefined;
} | undefined;
} & {
name?: string | undefined;
objModel?: ({
fileName?: string | undefined;
fileContents?: string | undefined;
} & {
fileName?: string | undefined;
fileContents?: string | undefined;
} & { [K in Exclude<keyof I["links"][number]["objModel"], keyof Skeleton_Link_ObjModel>]: never; }) | undefined;
} & { [K_1 in Exclude<keyof I["links"][number], keyof Skeleton_Link>]: never; })[] & { [K_2 in Exclude<keyof I["links"], keyof {
name?: string | undefined;
objModel?: {
fileName?: string | undefined;
fileContents?: string | undefined;
} | undefined;
}[]>]: never; }) | undefined;
urdf?: string | undefined;
} & { [K_3 in Exclude<keyof I, keyof Skeleton>]: never; }>(object: I): Skeleton;
};
export declare const Skeleton_Link: {
encode(message: Skeleton_Link, writer?: _m0.Writer): _m0.Writer;
decode(input: _m0.Reader | Uint8Array, length?: number): Skeleton_Link;
fromJSON(object: any): Skeleton_Link;
toJSON(message: Skeleton_Link): unknown;
fromPartial<I extends {
name?: string | undefined;
objModel?: {
fileName?: string | undefined;
fileContents?: string | undefined;
} | undefined;
} & {
name?: string | undefined;
objModel?: ({
fileName?: string | undefined;
fileContents?: string | undefined;
} & {
fileName?: string | undefined;
fileContents?: string | undefined;
} & { [K in Exclude<keyof I["objModel"], keyof Skeleton_Link_ObjModel>]: never; }) | undefined;
} & { [K_1 in Exclude<keyof I, keyof Skeleton_Link>]: never; }>(object: I): Skeleton_Link;
};
export declare const Skeleton_Link_ObjModel: {
encode(message: Skeleton_Link_ObjModel, writer?: _m0.Writer): _m0.Writer;
decode(input: _m0.Reader | Uint8Array, length?: number): Skeleton_Link_ObjModel;
fromJSON(object: any): Skeleton_Link_ObjModel;
toJSON(message: Skeleton_Link_ObjModel): unknown;
fromPartial<I extends {
fileName?: string | undefined;
fileContents?: string | undefined;
} & {
fileName?: string | undefined;
fileContents?: string | undefined;
} & { [K in Exclude<keyof I, keyof Skeleton_Link_ObjModel>]: never; }>(object: I): Skeleton_Link_ObjModel;
};
export declare const HardwareConfiguration: {
encode(message: HardwareConfiguration, writer?: _m0.Writer): _m0.Writer;
decode(input: _m0.Reader | Uint8Array, length?: number): HardwareConfiguration;
fromJSON(object: any): HardwareConfiguration;
toJSON(message: HardwareConfiguration): unknown;
fromPartial<I extends {
skeleton?: {
links?: {
name?: string | undefined;
objModel?: {
fileName?: string | undefined;
fileContents?: string | undefined;
} | undefined;
}[] | undefined;
urdf?: string | undefined;
} | undefined;
canPowerCommandRequestOffRobot?: boolean | undefined;
canPowerCommandRequestCycleRobot?: boolean | undefined;
canPowerCommandRequestPayloadPorts?: boolean | undefined;
canPowerCommandRequestWifiRadio?: boolean | undefined;
} & {
skeleton?: ({
links?: {
name?: string | undefined;
objModel?: {
fileName?: string | undefined;
fileContents?: string | undefined;
} | undefined;
}[] | undefined;
urdf?: string | undefined;
} & {
links?: ({
name?: string | undefined;
objModel?: {
fileName?: string | undefined;
fileContents?: string | undefined;
} | undefined;
}[] & ({
name?: string | undefined;
objModel?: {
fileName?: string | undefined;
fileContents?: string | undefined;
} | undefined;
} & {
name?: string | undefined;
objModel?: ({
fileName?: string | undefined;
fileContents?: string | undefined;
} & {
fileName?: string | undefined;
fileContents?: string | undefined;
} & { [K in Exclude<keyof I["skeleton"]["links"][number]["objModel"], keyof Skeleton_Link_ObjModel>]: never; }) | undefined;
} & { [K_1 in Exclude<keyof I["skeleton"]["links"][number], keyof Skeleton_Link>]: never; })[] & { [K_2 in Exclude<keyof I["skeleton"]["links"], keyof {
name?: string | undefined;
objModel?: {
fileName?: string | undefined;
fileContents?: string | undefined;
} | undefined;
}[]>]: never; }) | undefined;
urdf?: string | undefined;
} & { [K_3 in Exclude<keyof I["skeleton"], keyof Skeleton>]: never; }) | undefined;
canPowerCommandRequestOffRobot?: boolean | undefined;
canPowerCommandRequestCycleRobot?: boolean | undefined;
canPowerCommandRequestPayloadPorts?: boolean | undefined;
canPowerCommandRequestWifiRadio?: boolean | undefined;
} & { [K_4 in Exclude<keyof I, keyof HardwareConfiguration>]: never; }>(object: I): HardwareConfiguration;
};
export declare const RobotState: {
encode(message: RobotState, writer?: _m0.Writer): _m0.Writer;
decode(input: _m0.Reader | Uint8Array, length?: number): RobotState;
fromJSON(object: any): RobotState;
toJSON(message: RobotState): unknown;
fromPartial<I extends {
powerState?: {
timestamp?: Date | undefined;
motorPowerState?: PowerState_MotorPowerState | undefined;
shorePowerState?: PowerState_ShorePowerState | undefined;
robotPowerState?: PowerState_RobotPowerState | undefined;
payloadPortsPowerState?: PowerState_PayloadPortsPowerState | undefined;
wifiRadioPowerState?: PowerState_WifiRadioPowerState | undefined;
locomotionChargePercentage?: number | undefined;
locomotionEstimatedRuntime?: {
seconds?: number | undefined;
nanos?: number | undefined;
} | undefined;
} | undefined;
batteryStates?: {
timestamp?: Date | undefined;
identifier?: string | undefined;
chargePercentage?: number | undefined;
estimatedRuntime?: {
seconds?: number | undefined;
nanos?: number | undefined;
} | undefined;
current?: number | undefined;
voltage?: number | undefined;
temperatures?: number[] | undefined;
status?: BatteryState_Status | undefined;
}[] | undefined;
commsStates?: {
timestamp?: Date | undefined;
wifiState?: {
currentMode?: WiFiState_Mode | undefined;
essid?: string | undefined;
} | undefined;
}[] | undefined;
systemFaultState?: {
faults?: {
name?: string | undefined;
onsetTimestamp?: Date | undefined;
duration?: {
seconds?: number | undefined;
nanos?: number | undefined;
} | undefined;
code?: number | undefined;
uid?: number | undefined;
errorMessage?: string | undefined;
attributes?: string[] | undefined;
severity?: SystemFault_Severity | undefined;
}[] | undefined;
historicalFaults?: {
name?: string | undefined;
onsetTimestamp?: Date | undefined;
duration?: {
seconds?: number | undefined;
nanos?: number | undefined;
} | undefined;
code?: number | undefined;
uid?: number | undefined;
errorMessage?: string | undefined;
attributes?: string[] | undefined;
severity?: SystemFault_Severity | undefined;
}[] | undefined;
aggregated?: {
[x: string]: SystemFault_Severity | undefined;
} | undefined;
} | undefined;
estopStates?: {
timestamp?: Date | undefined;
name?: string | undefined;
type?: EStopState_Type | undefined;
state?: EStopState_State | undefined;
stateDescription?: string | undefined;
}[] | undefined;
kinematicState?: {
jointStates?: {
name?: string | undefined;
position?: number | undefined;
velocity?: number | undefined;
acceleration?: number | undefined;
load?: number | undefined;
}[] | undefined;
acquisitionTimestamp?: Date | undefined;
transformsSnapshot?: {
childToParentEdgeMap?: {
[x: string]: {
parentFrameName?: string | undefined;
parentTformChild?: {
position?: {
x?: number | undefined;
y?: number | undefined;
z?: number | undefined;
} | undefined;
rotation?: {
x?: number | undefined;
y?: number | undefined;
z?: number | undefined;
w?: number | undefined;
} | undefined;
} | undefined;
} | undefined;
} | undefined;
} | undefined;
velocityOfBodyInVision?: {
linear?: {
x?: number | undefined;
y?: number | undefined;
z?: number | undefined;
} | undefined;
angular?: {
x?: number | undefined;
y?: number | undefined;
z?: number | undefined;
} | undefined;
} | undefined;
velocityOfBodyInOdom?: {
linear?: {
x?: number | undefined;
y?: number | undefined;
z?: number | undefined;
} | undefined;
angular?: {
x?: number | undefined;
y?: number | undefined;
z?: number | undefined;
} | undefined;
} | undefined;
} | undefined;
behaviorFaultState?: {
faults?: {
behaviorFaultId?: number | undefined;
onsetTimestamp?: Date | undefined;
cause?: BehaviorFault_Cause | undefined;
status?: BehaviorFault_Status | undefined;
}[] | undefined;
} | undefined;
footState?: {
footPositionRtBody?: {
x?: number | undefined;
y?: number | undefined;
z?: number | undefined;
} | undefined;
contact?: FootState_Contact | undefined;
terrain?: {
groundMuEst?: number | undefined;
frameName?: string | undefined;
footSlipDistanceRtFrame?: {
x?: number | undefined;
y?: number | undefined;
z?: number | undefined;
} | undefined;
footSlipVelocityRtFrame?: {
x?: number | undefined;
y?: number | undefined;
z?: number | undefined;
} | undefined;
groundContactNormalRtFrame?: {
x?: number | undefined;
y?: number | undefined;
z?: number | undefined;
} | undefined;
visualSurfaceGroundPenetrationMean?: number | undefined;
visualSurfaceGroundPenetrationStd?: number | undefined;
} | undefined;
}[] | undefined;
manipulatorState?: {
gripperOpenPercentage?: number | undefined;
isGripperHoldingItem?: boolean | undefined;
estimatedEndEffectorForceInHand?: {
x?: number | undefined;
y?: number | undefined;
z?: number | undefined;
} | undefined;
stowState?: ManipulatorState_StowState | undefined;
velocityOfHandInVision?: {
linear?: {
x?: number | undefined;
y?: number | undefined;
z?: number | undefined;
} | undefined;
angular?: {
x?: number | undefined;
y?: number | undefined;
z?: number | undefined;
} | undefined;
} | undefined;
velocityOfHandInOdom?: {
linear?: {
x?: number | undefined;
y?: number | undefined;
z?: number | undefined;
} | undefined;
angular?: {
x?: number | undefined;
y?: number | undefined;
z?: number | undefined;
} | undefined;
} | undefined;
carryState?: ManipulatorState_CarryState | undefined;
} | undefined;
serviceFaultState?: {
faults?: {
faultId?: {
faultName?: string | undefined;
serviceName?: string | undefined;
payloadGuid?: string | undefined;
} | undefined;
errorMessage?: string | undefined;
attributes?: string[] | undefined;
severity?: ServiceFault_Severity | undefined;
onsetTimestamp?: Date | undefined;
duration?: {
seconds?: number | undefined;
nanos?: number | undefined;
} | undefined;
}[] | undefined;
historicalFaults?: {
faultId?: {
faultName?: string | undefined;
serviceName?: string | undefined;
payloadGuid?: string | undefined;
} | undefined;
errorMessage?: string | undefined;
attributes?: string[] | undefined;
severity?: ServiceFault_Severity | undefined;
onsetTimestamp?: Date | undefined;
duration?: {
seconds?: number | undefined;
nanos?: number | undefined;
} | undefined;
}[] | undefined;
aggregated?: {
[x: string]: ServiceFault_Severity | undefined;
} | undefined;
} | undefined;
terrainState?: {
isUnsafeToSit?: boolean | undefined;
} | undefined;
} & {
powerState?: ({
timestamp?: Date | undefined;
motorPowerState?: PowerState_MotorPowerState | undefined;
shorePowerState?: PowerState_ShorePowerState | undefined;
robotPowerState?: PowerState_RobotPowerState | undefined;
payloadPortsPowerState?: PowerState_PayloadPortsPowerState | undefined;
wifiRadioPowerState?: PowerState_WifiRadioPowerState | undefined;
locomotionChargePercentage?: number | undefined;
locomotionEstimatedRuntime?: {
seconds?: number | undefined;
nanos?: number | undefined;
} | undefined;
} & {
timestamp?: Date | undefined;
motorPowerState?: PowerState_MotorPowerState | undefined;
shorePowerState?: PowerState_ShorePowerState | undefined;
robotPowerState?: PowerState_RobotPowerState | undefined;
payloadPortsPowerState?: PowerState_PayloadPortsPowerState | undefined;
wifiRadioPowerState?: PowerState_WifiRadioPowerState | undefined;
locomotionChargePercentage?: number | undefined;
locomotionEstimatedRuntime?: ({
seconds?: number | undefined;
nanos?: number | undefined;
} & {
seconds?: number | undefined;