import { SE2VelocityLimit, Vec3 } from "../geometry"; import { SE3Trajectory } from "../trajectory"; import _m0 from "protobufjs/minimal"; export declare const protobufPackage = "bosdyn.api.spot"; /** The locomotion hint specifying the gait of the robot. */ export declare enum LocomotionHint { /** HINT_UNKNOWN - Invalid; do not use. */ HINT_UNKNOWN = 0, /** HINT_AUTO - No hint, robot chooses an appropriate gait (typically trot.) */ HINT_AUTO = 1, /** HINT_TROT - Most robust gait which moves diagonal legs together. */ HINT_TROT = 2, /** HINT_SPEED_SELECT_TROT - Trot which comes to a stand when not commanded to move. */ HINT_SPEED_SELECT_TROT = 3, /** HINT_CRAWL - Slow and steady gait which moves only one foot at a time. */ HINT_CRAWL = 4, /** HINT_SPEED_SELECT_CRAWL - Crawl which comes to a stand when not commanded to move. */ HINT_SPEED_SELECT_CRAWL = 10, /** HINT_AMBLE - Four beat gait where one foot touches down at a time. */ HINT_AMBLE = 5, /** HINT_SPEED_SELECT_AMBLE - Amble which comes to a stand when not commanded to move. */ HINT_SPEED_SELECT_AMBLE = 6, /** HINT_JOG - Demo gait which moves diagonal leg pairs together with an aerial phase. */ HINT_JOG = 7, /** HINT_HOP - Demo gait which hops while holding some feet in the air. */ HINT_HOP = 8, /** * HINT_AUTO_TROT - HINT_AUTO_TROT is deprecated due to the name being too similar to the Spot Autowalk feature. * It has been replaced by HINT_SPEED_SELECT_TROT. Keeping this value in here for now for backwards * compatibility, but this may be removed in future releases. */ HINT_AUTO_TROT = 3, /** * HINT_AUTO_AMBLE - HINT_AUTO_AMBLE is deprecated due to the name being too similar to the Spot Autowalk feature. * It has been replaced by HINT_SPEED_SELECT_AMBLE. Keeping this value in here for now for backwards * compatibility, but this may be removed in future releases. */ HINT_AUTO_AMBLE = 6, UNRECOGNIZED = -1 } export declare function locomotionHintFromJSON(object: any): LocomotionHint; export declare function locomotionHintToJSON(object: LocomotionHint): string; /** The type of swing height for a step. */ export declare enum SwingHeight { /** SWING_HEIGHT_UNKNOWN - Invalid; do not use. */ SWING_HEIGHT_UNKNOWN = 0, /** SWING_HEIGHT_LOW - Low-stepping. Robot will try to only swing legs a few cm away from ground. */ SWING_HEIGHT_LOW = 1, /** SWING_HEIGHT_MEDIUM - Default for most cases, use other values with caution. */ SWING_HEIGHT_MEDIUM = 2, /** SWING_HEIGHT_HIGH - High-stepping. Possibly useful with degraded vision operation. */ SWING_HEIGHT_HIGH = 3, UNRECOGNIZED = -1 } export declare function swingHeightFromJSON(object: any): SwingHeight; export declare function swingHeightToJSON(object: SwingHeight): string; /** Params common across spot movement and mobility. */ export interface MobilityParams { /** Max allowable velocity at any point in trajectory. */ velLimit: SE2VelocityLimit | undefined; /** Parameters for controlling Spot's body during motion. */ bodyControl: BodyControlParams | undefined; /** Desired gait during locomotion */ locomotionHint: LocomotionHint; /** * Stairs are only supported in trot gaits. Using this hint will override some user defaults in * order to optimize stair behavior. */ stairHint: boolean; /** Allow the robot to move with degraded perception when there are perception faults. */ allowDegradedPerception: boolean; /** Control of obstacle avoidance. */ obstacleParams: ObstacleParams | undefined; /** Swing height setting */ swingHeight: SwingHeight; /** Ground terrain parameters. */ terrainParams: TerrainParams | undefined; /** Prevent the robot from using StairTracker even if in stairs mode. */ disallowStairTracker: boolean; /** * Prevent the robot from automatically walking off a staircase in the case of an error * (ex: e-stop settle_then_cut, critical battery level) */ disableStairErrorAutoDescent: boolean; /** Robot Body External Force parameters */ externalForceParams: BodyExternalForceParams | undefined; /** Prevent the robot from pitching to get a better look at rearward terrain except in stairs mode. */ disallowNonStairsPitchLimiting: boolean; /** Disable the secondary nearmap-based cliff avoidance that runs while on stairs. */ disableNearmapCliffAvoidance: boolean; } /** Parameters for offsetting the body from the normal default. */ export interface BodyControlParams { /** * Desired base offset relative to the footprint pseudo-frame. * The footprint pseudo-frame is a gravity aligned frame with its origin located at the * geometric center of the feet in the X-Y axis, and at the nominal height of the hips in the Z axis. * The yaw of the frame (wrt the world) is calcuated by the average foot locations, and is aligned with the feet. */ baseOffsetRtFootprint: SE3Trajectory | undefined; /** * The base will adjust to assist with manipulation, adjusting its height, pitch, and yaw as a function of * the hand's location. Note, manipulation assisted body control is only available for ArmCommand requests * that control the end-effector, and are expressed in an inertial frame. For example, sending a * ArmCartesianCommand request with root_frame_name set to "odom" will allow the robot to compute a body * adjustment. However, sending a ArmCartesianCommand request with root_frame_name set to "body" or * sending an ArmJointMoveCommand request is incompatible, and the body will reset to default height * and orientation. */ bodyAssistForManipulation: BodyControlParams_BodyAssistForManipulation | undefined; /** The rotation setting for the robot body. Ignored if body_assist_for_manipulation is requested. */ rotationSetting: BodyControlParams_RotationSetting; } /** * Setting for how the robot interprets base offset pitch & roll components. * In the default case (ROTATION_SETTING_OFFSET) the robot will naturally align the body to the pitch of the current terrain. * In some circumstances, the user may wish to override this value and try to maintain alignment * with respect to gravity. Be careful with this setting as it may likely degrade robot performance in * complex terrain, e.g. stairs, platforms, or slopes of sufficiently high grade. */ export declare enum BodyControlParams_RotationSetting { /** ROTATION_SETTING_UNKNOWN - Invalid; do not use. */ ROTATION_SETTING_UNKNOWN = 0, /** ROTATION_SETTING_OFFSET - Pitch & Roll are offset with respect to orientation of the footprint. */ ROTATION_SETTING_OFFSET = 1, /** ROTATION_SETTING_ABSOLUTE - Pitch & Roll are offset with respect to gravity. */ ROTATION_SETTING_ABSOLUTE = 2, UNRECOGNIZED = -1 } export declare function bodyControlParams_RotationSettingFromJSON(object: any): BodyControlParams_RotationSetting; export declare function bodyControlParams_RotationSettingToJSON(object: BodyControlParams_RotationSetting): string; /** * Instead of directly specify the base offset trajectory, these options allow the robot to calcuate offsets * based on the hand's location. If the robot does not have a SpotArm attached, sending this request will * hvae no effect. */ export interface BodyControlParams_BodyAssistForManipulation { /** Enable the use of body yaw to assist with manipulation. */ enableBodyYawAssist: boolean; /** Enable use of hip height (e.g. body height/pitch) to assist with manipulation. */ enableHipHeightAssist: boolean; } /** Parameters for obstacle avoidance types. */ export interface ObstacleParams { /** Use vision to make the feet avoid obstacles by swinging higher? */ disableVisionFootObstacleAvoidance: boolean; /** Use vision to make the feet avoid constraints like edges of stairs? */ disableVisionFootConstraintAvoidance: boolean; /** Use vision to make the body avoid obstacles? */ disableVisionBodyObstacleAvoidance: boolean; /** * Desired padding around the body to use when attempting to avoid obstacles. * Described in meters. Must be >= 0. */ obstacleAvoidancePadding: number; /** * Prevent the robot body from raising above nominal height to avoid lower-leg collisions with * the terrain. */ disableVisionFootObstacleBodyAssist: boolean; /** Use vision to make the robot avoid stepping into negative obstacles? */ disableVisionNegativeObstacles: boolean; } /** Ground contact parameters that describe the terrain. */ export interface TerrainParams { /** * Terrain coefficient of friction user hint. This value must be postive and will clamped if * necessary on the robot side. Best suggested values lie in the range between 0.4 and 0.8 * (which is the robot's default.) */ groundMuHint: number | undefined; /** * ** Deprecation Warning *** * DEPRECATED as of 3.0.0: The boolean field has been replaced by the field grated_surfaces_mode * The following field will be deprecated and moved to 'reserved' in a future release. * * @deprecated */ enableGratedFloor: boolean; /** The selected option for grated surfaces mode */ gratedSurfacesMode: TerrainParams_GratedSurfacesMode; } /** * Options for Grated Surfaces Mode. When Grated Surfaces Mode is on, the robot assumes the * ground below it is made of grated metal or other repeated pattern. When on, the robot will * make assumptions about the environment structure and more aggressively filter noise in * perception data. */ export declare enum TerrainParams_GratedSurfacesMode { /** GRATED_SURFACES_MODE_UNKNOWN - Invalid; do not use. */ GRATED_SURFACES_MODE_UNKNOWN = 0, GRATED_SURFACES_MODE_OFF = 1, GRATED_SURFACES_MODE_ON = 2, /** GRATED_SURFACES_MODE_AUTO - Robot will automatically turn mode on or off */ GRATED_SURFACES_MODE_AUTO = 3, UNRECOGNIZED = -1 } export declare function terrainParams_GratedSurfacesModeFromJSON(object: any): TerrainParams_GratedSurfacesMode; export declare function terrainParams_GratedSurfacesModeToJSON(object: TerrainParams_GratedSurfacesMode): string; /** * External Force on robot body parameters. This is a beta feature and still can have some odd behaviors. * By default, the external force estimator is disabled on the robot. */ export interface BodyExternalForceParams { /** The type of external force described by the parameters. */ externalForceIndicator: BodyExternalForceParams_ExternalForceIndicator; /** The frame name for which the external_force_override is defined in. The frame must be known to the robot. */ frameName: string; /** * Specifies a force that the body should expect to feel. This allows the robot to "lean into" * an external force. Be careful using this override, since incorrect information can cause * the robot to fall over. * For example, if the robot is leaning against a wall in front of it, the force override would be in the * negative x dimension. If the robot was pulling something directly behind it, the force override would * be in the negative x dimension as well. */ externalForceOverride: Vec3 | undefined; } /** * Indicates what external force estimate/override the robot should use. * By default, the external force estimator is disabled on the robot. */ export declare enum BodyExternalForceParams_ExternalForceIndicator { /** EXTERNAL_FORCE_NONE - No external forces considered. */ EXTERNAL_FORCE_NONE = 0, /** EXTERNAL_FORCE_USE_ESTIMATE - Use external forces estimated by the robot */ EXTERNAL_FORCE_USE_ESTIMATE = 1, /** EXTERNAL_FORCE_USE_OVERRIDE - Use external forces specified in an override vector. */ EXTERNAL_FORCE_USE_OVERRIDE = 2, UNRECOGNIZED = -1 } export declare function bodyExternalForceParams_ExternalForceIndicatorFromJSON(object: any): BodyExternalForceParams_ExternalForceIndicator; export declare function bodyExternalForceParams_ExternalForceIndicatorToJSON(object: BodyExternalForceParams_ExternalForceIndicator): string; export declare const MobilityParams: { encode(message: MobilityParams, writer?: _m0.Writer): _m0.Writer; decode(input: _m0.Reader | Uint8Array, length?: number): MobilityParams; fromJSON(object: any): MobilityParams; toJSON(message: MobilityParams): unknown; fromPartial]: never; }) | undefined; angular?: number | undefined; } & { [K_1 in Exclude]: never; }) | undefined; minVel?: ({ linear?: { x?: number | undefined; y?: number | undefined; } | undefined; angular?: number | undefined; } & { linear?: ({ x?: number | undefined; y?: number | undefined; } & { x?: number | undefined; y?: number | undefined; } & { [K_2 in Exclude]: never; }) | undefined; angular?: number | undefined; } & { [K_3 in Exclude]: never; }) | undefined; } & { [K_4 in Exclude]: never; }) | undefined; bodyControl?: ({ baseOffsetRtFootprint?: { points?: { pose?: { 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; velocity?: { linear?: { x?: number | undefined; y?: number | undefined; z?: number | undefined; } | undefined; angular?: { x?: number | undefined; y?: number | undefined; z?: number | undefined; } | undefined; } | undefined; timeSinceReference?: { seconds?: number | undefined; nanos?: number | undefined; } | undefined; }[] | undefined; referenceTime?: Date | undefined; posInterpolation?: import("../trajectory").PositionalInterpolation | undefined; angInterpolation?: import("../trajectory").AngularInterpolation | undefined; } | undefined; bodyAssistForManipulation?: { enableBodyYawAssist?: boolean | undefined; enableHipHeightAssist?: boolean | undefined; } | undefined; rotationSetting?: BodyControlParams_RotationSetting | undefined; } & { baseOffsetRtFootprint?: ({ points?: { pose?: { 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; velocity?: { linear?: { x?: number | undefined; y?: number | undefined; z?: number | undefined; } | undefined; angular?: { x?: number | undefined; y?: number | undefined; z?: number | undefined; } | undefined; } | undefined; timeSinceReference?: { seconds?: number | undefined; nanos?: number | undefined; } | undefined; }[] | undefined; referenceTime?: Date | undefined; posInterpolation?: import("../trajectory").PositionalInterpolation | undefined; angInterpolation?: import("../trajectory").AngularInterpolation | undefined; } & { points?: ({ pose?: { 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; velocity?: { linear?: { x?: number | undefined; y?: number | undefined; z?: number | undefined; } | undefined; angular?: { x?: number | undefined; y?: number | undefined; z?: number | undefined; } | undefined; } | undefined; timeSinceReference?: { seconds?: number | undefined; nanos?: number | undefined; } | undefined; }[] & ({ pose?: { 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; velocity?: { linear?: { x?: number | undefined; y?: number | undefined; z?: number | undefined; } | undefined; angular?: { x?: number | undefined; y?: number | undefined; z?: number | undefined; } | undefined; } | undefined; timeSinceReference?: { seconds?: number | undefined; nanos?: number | undefined; } | undefined; } & { pose?: ({ 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; } & { position?: ({ x?: number | undefined; y?: number | undefined; z?: number | undefined; } & { x?: number | undefined; y?: number | undefined; z?: number | undefined; } & { [K_5 in Exclude]: never; }) | undefined; rotation?: ({ x?: number | undefined; y?: number | undefined; z?: number | undefined; w?: number | undefined; } & { x?: number | undefined; y?: number | undefined; z?: number | undefined; w?: number | undefined; } & { [K_6 in Exclude]: never; }) | undefined; } & { [K_7 in Exclude]: never; }) | undefined; velocity?: ({ linear?: { x?: number | undefined; y?: number | undefined; z?: number | undefined; } | undefined; angular?: { x?: number | undefined; y?: number | undefined; z?: number | undefined; } | undefined; } & { linear?: ({ x?: number | undefined; y?: number | undefined; z?: number | undefined; } & { x?: number | undefined; y?: number | undefined; z?: number | undefined; } & { [K_8 in Exclude]: never; }) | undefined; angular?: ({ x?: number | undefined; y?: number | undefined; z?: number | undefined; } & { x?: number | undefined; y?: number | undefined; z?: number | undefined; } & { [K_9 in Exclude]: never; }) | undefined; } & { [K_10 in Exclude]: never; }) | undefined; timeSinceReference?: ({ seconds?: number | undefined; nanos?: number | undefined; } & { seconds?: number | undefined; nanos?: number | undefined; } & { [K_11 in Exclude]: never; }) | undefined; } & { [K_12 in Exclude]: never; })[] & { [K_13 in Exclude]: never; }) | undefined; referenceTime?: Date | undefined; posInterpolation?: import("../trajectory").PositionalInterpolation | undefined; angInterpolation?: import("../trajectory").AngularInterpolation | undefined; } & { [K_14 in Exclude]: never; }) | undefined; bodyAssistForManipulation?: ({ enableBodyYawAssist?: boolean | undefined; enableHipHeightAssist?: boolean | undefined; } & { enableBodyYawAssist?: boolean | undefined; enableHipHeightAssist?: boolean | undefined; } & { [K_15 in Exclude]: never; }) | undefined; rotationSetting?: BodyControlParams_RotationSetting | undefined; } & { [K_16 in Exclude]: never; }) | undefined; locomotionHint?: LocomotionHint | undefined; stairHint?: boolean | undefined; allowDegradedPerception?: boolean | undefined; obstacleParams?: ({ disableVisionFootObstacleAvoidance?: boolean | undefined; disableVisionFootConstraintAvoidance?: boolean | undefined; disableVisionBodyObstacleAvoidance?: boolean | undefined; obstacleAvoidancePadding?: number | undefined; disableVisionFootObstacleBodyAssist?: boolean | undefined; disableVisionNegativeObstacles?: boolean | undefined; } & { disableVisionFootObstacleAvoidance?: boolean | undefined; disableVisionFootConstraintAvoidance?: boolean | undefined; disableVisionBodyObstacleAvoidance?: boolean | undefined; obstacleAvoidancePadding?: number | undefined; disableVisionFootObstacleBodyAssist?: boolean | undefined; disableVisionNegativeObstacles?: boolean | undefined; } & { [K_17 in Exclude]: never; }) | undefined; swingHeight?: SwingHeight | undefined; terrainParams?: ({ groundMuHint?: number | undefined; enableGratedFloor?: boolean | undefined; gratedSurfacesMode?: TerrainParams_GratedSurfacesMode | undefined; } & { groundMuHint?: number | undefined; enableGratedFloor?: boolean | undefined; gratedSurfacesMode?: TerrainParams_GratedSurfacesMode | undefined; } & { [K_18 in Exclude]: never; }) | undefined; disallowStairTracker?: boolean | undefined; disableStairErrorAutoDescent?: boolean | undefined; externalForceParams?: ({ externalForceIndicator?: BodyExternalForceParams_ExternalForceIndicator | undefined; frameName?: string | undefined; externalForceOverride?: { x?: number | undefined; y?: number | undefined; z?: number | undefined; } | undefined; } & { externalForceIndicator?: BodyExternalForceParams_ExternalForceIndicator | undefined; frameName?: string | undefined; externalForceOverride?: ({ x?: number | undefined; y?: number | undefined; z?: number | undefined; } & { x?: number | undefined; y?: number | undefined; z?: number | undefined; } & { [K_19 in Exclude]: never; }) | undefined; } & { [K_20 in Exclude]: never; }) | undefined; disallowNonStairsPitchLimiting?: boolean | undefined; disableNearmapCliffAvoidance?: boolean | undefined; } & { [K_21 in Exclude]: never; }>(object: I): MobilityParams; }; export declare const BodyControlParams: { encode(message: BodyControlParams, writer?: _m0.Writer): _m0.Writer; decode(input: _m0.Reader | Uint8Array, length?: number): BodyControlParams; fromJSON(object: any): BodyControlParams; toJSON(message: BodyControlParams): unknown; fromPartial]: never; }) | undefined; rotation?: ({ x?: number | undefined; y?: number | undefined; z?: number | undefined; w?: number | undefined; } & { x?: number | undefined; y?: number | undefined; z?: number | undefined; w?: number | undefined; } & { [K_1 in Exclude]: never; }) | undefined; } & { [K_2 in Exclude]: never; }) | undefined; velocity?: ({ linear?: { x?: number | undefined; y?: number | undefined; z?: number | undefined; } | undefined; angular?: { x?: number | undefined; y?: number | undefined; z?: number | undefined; } | undefined; } & { linear?: ({ x?: number | undefined; y?: number | undefined; z?: number | undefined; } & { x?: number | undefined; y?: number | undefined; z?: number | undefined; } & { [K_3 in Exclude]: never; }) | undefined; angular?: ({ x?: number | undefined; y?: number | undefined; z?: number | undefined; } & { x?: number | undefined; y?: number | undefined; z?: number | undefined; } & { [K_4 in Exclude]: never; }) | undefined; } & { [K_5 in Exclude]: never; }) | undefined; timeSinceReference?: ({ seconds?: number | undefined; nanos?: number | undefined; } & { seconds?: number | undefined; nanos?: number | undefined; } & { [K_6 in Exclude]: never; }) | undefined; } & { [K_7 in Exclude]: never; })[] & { [K_8 in Exclude]: never; }) | undefined; referenceTime?: Date | undefined; posInterpolation?: import("../trajectory").PositionalInterpolation | undefined; angInterpolation?: import("../trajectory").AngularInterpolation | undefined; } & { [K_9 in Exclude]: never; }) | undefined; bodyAssistForManipulation?: ({ enableBodyYawAssist?: boolean | undefined; enableHipHeightAssist?: boolean | undefined; } & { enableBodyYawAssist?: boolean | undefined; enableHipHeightAssist?: boolean | undefined; } & { [K_10 in Exclude]: never; }) | undefined; rotationSetting?: BodyControlParams_RotationSetting | undefined; } & { [K_11 in Exclude]: never; }>(object: I): BodyControlParams; }; export declare const BodyControlParams_BodyAssistForManipulation: { encode(message: BodyControlParams_BodyAssistForManipulation, writer?: _m0.Writer): _m0.Writer; decode(input: _m0.Reader | Uint8Array, length?: number): BodyControlParams_BodyAssistForManipulation; fromJSON(object: any): BodyControlParams_BodyAssistForManipulation; toJSON(message: BodyControlParams_BodyAssistForManipulation): unknown; fromPartial]: never; }>(object: I): BodyControlParams_BodyAssistForManipulation; }; export declare const ObstacleParams: { encode(message: ObstacleParams, writer?: _m0.Writer): _m0.Writer; decode(input: _m0.Reader | Uint8Array, length?: number): ObstacleParams; fromJSON(object: any): ObstacleParams; toJSON(message: ObstacleParams): unknown; fromPartial]: never; }>(object: I): ObstacleParams; }; export declare const TerrainParams: { encode(message: TerrainParams, writer?: _m0.Writer): _m0.Writer; decode(input: _m0.Reader | Uint8Array, length?: number): TerrainParams; fromJSON(object: any): TerrainParams; toJSON(message: TerrainParams): unknown; fromPartial]: never; }>(object: I): TerrainParams; }; export declare const BodyExternalForceParams: { encode(message: BodyExternalForceParams, writer?: _m0.Writer): _m0.Writer; decode(input: _m0.Reader | Uint8Array, length?: number): BodyExternalForceParams; fromJSON(object: any): BodyExternalForceParams; toJSON(message: BodyExternalForceParams): unknown; fromPartial]: never; }) | undefined; } & { [K_1 in Exclude]: never; }>(object: I): BodyExternalForceParams; }; declare type Builtin = Date | Function | Uint8Array | string | number | boolean | undefined; export declare type DeepPartial = T extends Builtin ? T : T extends Array ? Array> : T extends ReadonlyArray ? ReadonlyArray> : T extends {} ? { [K in keyof T]?: DeepPartial; } : Partial; declare type KeysOfUnion = T extends T ? keyof T : never; export declare type Exact = P extends Builtin ? P : P & { [K in keyof P]: Exact; } & { [K in Exclude>]: never; }; export {}; //# sourceMappingURL=robot_command.d.ts.map