import { SE3Pose, Vec3 } from "./geometry"; import { SE3Trajectory } from "./trajectory"; import { ArmJointPosition } from "./arm_command"; import { ClawGripperCommand_Request } from "./gripper_command"; import _m0 from "protobufjs/minimal"; export declare const protobufPackage = "bosdyn.api"; /** * ArmSurfaceContact lets you accurately move the robot's arm in the world while having some ability * to perform force control. This mode is useful for drawing, wiping, and other similar behaviors. * * The message is similar to the ArmCartesianCommand message, which you can look at for additional * details. */ export interface ArmSurfaceContact { } export interface ArmSurfaceContact_Request { /** * The root frame is used to set the optional task frame that all trajectories are * specified with respect to. If the optional task frame is left un-specified it defaults * to the identity transform and the root frame becomes the task frame. */ rootFrameName: string; /** * The tool pose relative to the parent link (wrist). * Defaults to * [0.19557 0 0] * [1 0 0 0] * a frame with it's origin slightly in front of the gripper's palm plate aligned with wrists orientation. */ wristTformTool: SE3Pose | undefined; /** * The fields below are specified in this optional task frame. If unset int defaults * to the identity transform and all quantities are therefore expressed in the root_frame_name. */ rootTformTask: SE3Pose | undefined; /** * A 3D pose trajectory for the tool expressed in the task frame, e.g. task_T_tool. * This pose trajectory is optional if requesting a pure wrench at the end-effector, * otherwise required for position or mixed force/position end-effector requests. */ poseTrajectoryInTask: SE3Trajectory | undefined; /** * Optional Maximum acceleration magnitude of the end-effector. * Valid ranges (0, 20] */ maximumAcceleration: number | undefined; /** Optional Maximum linear velocity magnitude of the end-effector. (m/s) */ maxLinearVelocity: number | undefined; /** Optional Maximum angular velocity magnitude of the end-effector. (rad/s) */ maxAngularVelocity: number | undefined; /** * Maximum allowable tracking error of the tool frame from the desired trajectory * before the arm will stop moving and cancel the rest of the trajectory. When this limit is exceeded, the * hand will stay at the pose it was at when it exceeded the tracking error, and any other part of the * trajectory specified in the rest of this message will be ignored. * max position tracking error in meters */ maxPosTrackingError: number | undefined; /** max orientation tracking error in radians */ maxRotTrackingError: number | undefined; forceRemainNearCurrentJointConfiguration: boolean | undefined; preferredJointConfiguration: ArmJointPosition | undefined; xAxis: ArmSurfaceContact_Request_AxisMode; yAxis: ArmSurfaceContact_Request_AxisMode; zAxis: ArmSurfaceContact_Request_AxisMode; /** * Amount of force to use on each axis, from 0 (no force) to 1.0 (maximum force), can also * be negative. Full range: [-1.0, 1.0] */ pressForcePercentage: Vec3 | undefined; /** Admittance settings for each axis in the admittance frame. */ xyAdmittance: ArmSurfaceContact_Request_AdmittanceSetting; zAdmittance: ArmSurfaceContact_Request_AdmittanceSetting; /** * Cross term, making force in the XY axis cause movement in the z-axis. * By default is OFF * Setting this value will make the arm move in the negative Z-axis whenever it feels force in * the XY axis. */ xyToZCrossTermAdmittance: ArmSurfaceContact_Request_AdmittanceSetting; /** * Specifies a force that the body should expect to feel. This allows the robot to "lean into" * an external force. Be careful using this field, because if you lie to the robot, it can * fall over. */ biasForceEwrtBody: Vec3 | undefined; /** Gripper control */ gripperCommand: ClawGripperCommand_Request | undefined; /** Set to true to have robot is walk around to follow the hand. */ isRobotFollowingHand: boolean; } /** * If an axis is set to position mode (default), read desired from SE3Trajectory command. * If mode is set to force, use the "press_force_percentage" field to determine force. */ export declare enum ArmSurfaceContact_Request_AxisMode { AXIS_MODE_POSITION = 0, AXIS_MODE_FORCE = 1, UNRECOGNIZED = -1 } export declare function armSurfaceContact_Request_AxisModeFromJSON(object: any): ArmSurfaceContact_Request_AxisMode; export declare function armSurfaceContact_Request_AxisModeToJSON(object: ArmSurfaceContact_Request_AxisMode): string; /** * Parameters for controlling admittance. By default, the robot will * stop moving the arm when it encounters resistance. You can control that reaction to * make the robot stiffer or less stiff by changing the parameters. */ export declare enum ArmSurfaceContact_Request_AdmittanceSetting { ADMITTANCE_SETTING_UNKNOWN = 0, /** ADMITTANCE_SETTING_OFF - No admittance. */ ADMITTANCE_SETTING_OFF = 1, /** ADMITTANCE_SETTING_NORMAL - Normal reaction to touching things in the world */ ADMITTANCE_SETTING_NORMAL = 2, /** ADMITTANCE_SETTING_LOOSE - Robot will not push very hard against objects */ ADMITTANCE_SETTING_LOOSE = 3, /** ADMITTANCE_SETTING_STIFF - Robot will push hard against the world */ ADMITTANCE_SETTING_STIFF = 4, /** ADMITTANCE_SETTING_VERY_STIFF - Robot will push very hard against the world */ ADMITTANCE_SETTING_VERY_STIFF = 5, UNRECOGNIZED = -1 } export declare function armSurfaceContact_Request_AdmittanceSettingFromJSON(object: any): ArmSurfaceContact_Request_AdmittanceSetting; export declare function armSurfaceContact_Request_AdmittanceSettingToJSON(object: ArmSurfaceContact_Request_AdmittanceSetting): string; export interface ArmSurfaceContact_Feedback { } export declare const ArmSurfaceContact: { encode(_: ArmSurfaceContact, writer?: _m0.Writer): _m0.Writer; decode(input: _m0.Reader | Uint8Array, length?: number): ArmSurfaceContact; fromJSON(_: any): ArmSurfaceContact; toJSON(_: ArmSurfaceContact): unknown; fromPartial]: never; }>(_: I): ArmSurfaceContact; }; export declare const ArmSurfaceContact_Request: { encode(message: ArmSurfaceContact_Request, writer?: _m0.Writer): _m0.Writer; decode(input: _m0.Reader | Uint8Array, length?: number): ArmSurfaceContact_Request; fromJSON(object: any): ArmSurfaceContact_Request; toJSON(message: ArmSurfaceContact_Request): 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; rootTformTask?: ({ 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_3 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_4 in Exclude]: never; }) | undefined; } & { [K_5 in Exclude]: never; }) | undefined; poseTrajectoryInTask?: ({ 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_6 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_7 in Exclude]: never; }) | undefined; } & { [K_8 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_9 in Exclude]: never; }) | undefined; angular?: ({ x?: number | undefined; y?: number | undefined; z?: number | undefined; } & { x?: number | undefined; y?: number | undefined; z?: number | undefined; } & { [K_10 in Exclude]: never; }) | undefined; } & { [K_11 in Exclude]: never; }) | undefined; timeSinceReference?: ({ seconds?: number | undefined; nanos?: number | undefined; } & { seconds?: number | undefined; nanos?: number | undefined; } & { [K_12 in Exclude]: never; }) | undefined; } & { [K_13 in Exclude]: never; })[] & { [K_14 in Exclude]: never; }) | undefined; referenceTime?: Date | undefined; posInterpolation?: import("./trajectory").PositionalInterpolation | undefined; angInterpolation?: import("./trajectory").AngularInterpolation | undefined; } & { [K_15 in Exclude]: never; }) | undefined; maximumAcceleration?: number | undefined; maxLinearVelocity?: number | undefined; maxAngularVelocity?: number | undefined; maxPosTrackingError?: number | undefined; maxRotTrackingError?: number | undefined; forceRemainNearCurrentJointConfiguration?: boolean | undefined; preferredJointConfiguration?: ({ sh0?: number | undefined; sh1?: number | undefined; el0?: number | undefined; el1?: number | undefined; wr0?: number | undefined; wr1?: number | undefined; } & { sh0?: number | undefined; sh1?: number | undefined; el0?: number | undefined; el1?: number | undefined; wr0?: number | undefined; wr1?: number | undefined; } & { [K_16 in Exclude]: never; }) | undefined; xAxis?: ArmSurfaceContact_Request_AxisMode | undefined; yAxis?: ArmSurfaceContact_Request_AxisMode | undefined; zAxis?: ArmSurfaceContact_Request_AxisMode | undefined; pressForcePercentage?: ({ x?: number | undefined; y?: number | undefined; z?: number | undefined; } & { x?: number | undefined; y?: number | undefined; z?: number | undefined; } & { [K_17 in Exclude]: never; }) | undefined; xyAdmittance?: ArmSurfaceContact_Request_AdmittanceSetting | undefined; zAdmittance?: ArmSurfaceContact_Request_AdmittanceSetting | undefined; xyToZCrossTermAdmittance?: ArmSurfaceContact_Request_AdmittanceSetting | undefined; biasForceEwrtBody?: ({ x?: number | undefined; y?: number | undefined; z?: number | undefined; } & { x?: number | undefined; y?: number | undefined; z?: number | undefined; } & { [K_18 in Exclude]: never; }) | undefined; gripperCommand?: ({ trajectory?: { points?: { point?: number | undefined; velocity?: number | undefined; timeSinceReference?: { seconds?: number | undefined; nanos?: number | undefined; } | undefined; }[] | undefined; referenceTime?: Date | undefined; interpolation?: import("./trajectory").PositionalInterpolation | undefined; } | undefined; maximumOpenCloseVelocity?: number | undefined; maximumOpenCloseAcceleration?: number | undefined; maximumTorque?: number | undefined; disableForceOnContact?: boolean | undefined; } & { trajectory?: ({ points?: { point?: number | undefined; velocity?: number | undefined; timeSinceReference?: { seconds?: number | undefined; nanos?: number | undefined; } | undefined; }[] | undefined; referenceTime?: Date | undefined; interpolation?: import("./trajectory").PositionalInterpolation | undefined; } & { points?: ({ point?: number | undefined; velocity?: number | undefined; timeSinceReference?: { seconds?: number | undefined; nanos?: number | undefined; } | undefined; }[] & ({ point?: number | undefined; velocity?: number | undefined; timeSinceReference?: { seconds?: number | undefined; nanos?: number | undefined; } | undefined; } & { point?: number | undefined; velocity?: number | undefined; timeSinceReference?: ({ seconds?: number | undefined; nanos?: number | undefined; } & { seconds?: number | undefined; nanos?: number | undefined; } & { [K_19 in Exclude]: never; }) | undefined; } & { [K_20 in Exclude]: never; })[] & { [K_21 in Exclude]: never; }) | undefined; referenceTime?: Date | undefined; interpolation?: import("./trajectory").PositionalInterpolation | undefined; } & { [K_22 in Exclude]: never; }) | undefined; maximumOpenCloseVelocity?: number | undefined; maximumOpenCloseAcceleration?: number | undefined; maximumTorque?: number | undefined; disableForceOnContact?: boolean | undefined; } & { [K_23 in Exclude]: never; }) | undefined; isRobotFollowingHand?: boolean | undefined; } & { [K_24 in Exclude]: never; }>(object: I): ArmSurfaceContact_Request; }; export declare const ArmSurfaceContact_Feedback: { encode(_: ArmSurfaceContact_Feedback, writer?: _m0.Writer): _m0.Writer; decode(input: _m0.Reader | Uint8Array, length?: number): ArmSurfaceContact_Feedback; fromJSON(_: any): ArmSurfaceContact_Feedback; toJSON(_: ArmSurfaceContact_Feedback): unknown; fromPartial]: never; }>(_: I): ArmSurfaceContact_Feedback; }; 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=arm_surface_contact.d.ts.map