spot/choreography_params.proto¶
AnimateParams¶
Field | Type | Description |
---|---|---|
animation_name | string | The name of the animated move. There are no default values/bounds associated with this field. |
body_entry_slices | google.protobuf.DoubleValue | How many slices to smoothly transition from previous pose to animation. |
body_exit_slices | google.protobuf.DoubleValue | How many slices to return from animation to nominal pose. Zero indicates to keep final animated pose. |
translation_multiplier | bosdyn.api.Vec3Value | Multiplier for animated translation by axis to exaggerate or suppress motion along specific axes. |
rotation_multiplier | EulerZYXValue | Multiplier for the animated orientation by axis to exaggerate or suppress motion along specific axes. |
arm_entry_slices | google.protobuf.DoubleValue | How many slices to smoothly transition from previous pose to animation. |
shoulder_0_offset | google.protobuf.DoubleValue | Joint angle offsets in radians for the arm joints. |
shoulder_1_offset | google.protobuf.DoubleValue | |
elbow_0_offset | google.protobuf.DoubleValue | |
elbow_1_offset | google.protobuf.DoubleValue | |
wrist_0_offset | google.protobuf.DoubleValue | |
wrist_1_offset | google.protobuf.DoubleValue | |
gripper_offset | google.protobuf.DoubleValue | |
speed | google.protobuf.DoubleValue | How fast to playback. 1.0 is normal speed. larger is faster. |
offset_slices | google.protobuf.DoubleValue | How late into the nominal script to start. |
gripper_multiplier | google.protobuf.DoubleValue | Multiply all gripper angles by this value. |
gripper_strength_fraction | google.protobuf.DoubleValue | How hard the gripper can squeeze. Fraction of full strength. |
arm_dance_frame_id | google.protobuf.Int32Value | Which dance frame to use as a reference for workspace arm moves. Including this parameter overrides the animation frame. |
body_tracking_stiffness | google.protobuf.DoubleValue | How hard to try to track the animated body motion. Only applicable to animations that control both the body and the legs. On a scale of 1 to 10 (11 for a bit extra). Higher will result in more closely tracking the animated body motion, but possibly at the expense of balance for more difficult animations. |
AnimatedCycleParams¶
Field | Type | Description |
---|---|---|
animation_name | google.protobuf.StringValue | |
enable_animation_duration | google.protobuf.BoolValue | |
enable_leg_timing | google.protobuf.BoolValue | |
enable_stance_shape | google.protobuf.BoolValue |
ArmMoveParams¶
Parameters specific to ArmMove move.
Field | Type | Description |
---|---|---|
shoulder_0 | google.protobuf.DoubleValue | Joint angles in radians for the arm joints. |
shoulder_1 | google.protobuf.DoubleValue | |
elbow_0 | google.protobuf.DoubleValue | |
elbow_1 | google.protobuf.DoubleValue | |
wrist_0 | google.protobuf.DoubleValue | |
wrist_1 | google.protobuf.DoubleValue | |
easing | Easing | How the motion should be paced. |
gripper | google.protobuf.DoubleValue | Movement for the gripper. |
BodyHoldParams¶
Parameters specific to the BodyHold move.
Field | Type | Description |
---|---|---|
rotation | EulerZYXValue | The robot will rotate its body to the specified orientation (roll/pitch/yaw) [rad]. |
translation | bosdyn.api.Vec3Value | The positional offset to the robot's current location [m]. |
entry_slices | google.protobuf.DoubleValue | How many "slices" (beats or sub-beats) are allowed before reaching the desired pose. |
exit_slices | google.protobuf.DoubleValue | How many "slices" (beats or sub-beats) are allowed for the robot to return to the original pose. |
BourreeParams¶
Parameters for the Bourree move.
Field | Type | Description |
---|---|---|
velocity | bosdyn.api.Vec2Value | The speed at which we should bourree [m/s]. X is forward. Y is left. |
yaw_rate | google.protobuf.DoubleValue | How fast the bourree should turn [rad/s]. |
stance_length | google.protobuf.DoubleValue | How far apart front and hind feet should be. [m] |
ButtCircleParams¶
Parameters specific to the ButtCircle DanceMove.
Field | Type | Description |
---|---|---|
radius | google.protobuf.DoubleValue | How big a circle the robutt will move in. Described in meters. |
beats_per_circle | google.protobuf.DoubleValue | The number of beats that elapse while performing the butt circle. |
number_of_circles | google.protobuf.DoubleValue | The number of circles that will be performed. If non-zero, takes precedence over beats_per_circle. |
pivot | Pivot | The pivot point the butt circles should be centered around. |
clockwise | google.protobuf.BoolValue | Which way to rotate. |
starting_angle | google.protobuf.DoubleValue | Where to start. Zero is up. |
ChickenHeadParams¶
Parameters specific to the chicken head move.
Field | Type | Description |
---|---|---|
bob_magnitude | bosdyn.api.Vec3Value | Bobs the head in this direction in the robot footprint frame. |
beats_per_cycle | google.protobuf.Int32Value | How fast to bob the head. |
follow | google.protobuf.BoolValue | Should we move the frame when the robot steps? |
ClapParams¶
Parameters specific to clapping.
Field | Type | Description |
---|---|---|
direction | bosdyn.api.Vec3Value | Direction in a gravity-aligned body frame of clapping motion. A typical value for the location is (0, 1, 0). |
location | bosdyn.api.Vec3Value | Location in body frame of the clap. A typical value for the location is (0.4, 0, -0.5). |
speed | google.protobuf.DoubleValue | Speed of the clap [m/s]. |
clap_distance | google.protobuf.DoubleValue | How far apart the limbs are before clapping [m]. |
Color¶
Field | Type | Description |
---|---|---|
red | google.protobuf.DoubleValue | |
green | google.protobuf.DoubleValue | |
blue | google.protobuf.DoubleValue |
CrawlParams¶
Parameters for the robot’s crawling gait.
Field | Type | Description |
---|---|---|
swing_slices | google.protobuf.DoubleValue | The number of slices (beats/sub-beats) the duration of a leg swing in the crawl gait should be. |
velocity | bosdyn.api.Vec2Value | The speed at which we should crawl [m/s]. X is forward. Y is left. |
stance_width | google.protobuf.DoubleValue | The distance between the robot's left and right feet [m]. |
stance_length | google.protobuf.DoubleValue | The distance between the robot's front and back feet [m]. |
CustomGaitCommand¶
Field | Type | Description |
---|---|---|
drive_velocity_body | bosdyn.api.SE2Velocity | Locomotion velocity in the horizontal plane in robot body frame. (m/s, m/s, rad/s) |
finished | bool | When true, robot will transition to a stand, then continue the sequence. Until then, the sequence will keep looping through this move. |
body_translation_offset | bosdyn.api.Vec3 | How much to offset the body pose. Additive with other offsets. |
Meters. | | body_orientation_offset | EulerZYX | Radians. |
CustomGaitCommandLimits¶
Field | Type | Description |
---|---|---|
maximum_drive_velocity_body | bosdyn.api.SE2Velocity | Maximum absolute value of locomotion velocity in the horizontal plane in robot body frame. (m/s, m/s, rad/s) |
maximum_body_translation_offset | bosdyn.api.Vec3 | Maximum absolute value of the body offsets. |
Meters. | | maximum_body_orientation_offset | EulerZYX | Radians. |
CustomGaitParams¶
Field | Type | Description |
---|---|---|
max_velocity | bosdyn.api.Vec2Value | Maximum steering commands that will be accepted. |
max_yaw_rate | google.protobuf.DoubleValue | |
acceleration_scaling | google.protobuf.DoubleValue | How much to limit steering acceleration. 1 is normal. Smaller is less acceleration. |
cycle_duration | google.protobuf.DoubleValue | Gait pattern. When to liftoff and touchdown each leg. |
fl_swing | SwingPhases | |
two_fl_swings | google.protobuf.BoolValue | |
second_fl_swing | SwingPhases | |
fr_swing | SwingPhases | |
two_fr_swings | google.protobuf.BoolValue | |
second_fr_swing | SwingPhases | |
hl_swing | SwingPhases | |
two_hl_swings | google.protobuf.BoolValue | |
second_hl_swing | SwingPhases | |
hr_swing | SwingPhases | |
two_hr_swings | google.protobuf.BoolValue | |
second_hr_swing | SwingPhases | |
show_stance_shape | google.protobuf.BoolValue | Relative positions of feet. |
stance_shape | StanceShape | |
com_height | google.protobuf.DoubleValue | Constant posture. For a phase-dependent posture, combine with a Body move. |
body_translation_offset | bosdyn.api.Vec3Value | |
body_rotation_offset | EulerZYXValue | |
low_speed_body_fraction | google.protobuf.DoubleValue | |
general_swing_params | SwingParams | Modify the path the foot takes between liftoff and touchdown. General swing parameters apply to legs that are not configured to have their own parameter set. |
use_fl_swing_params | google.protobuf.BoolValue | Individual legs can have their own parameters or use the general swing parameters. |
fl_swing_params | SwingParams | |
use_fr_swing_params | google.protobuf.BoolValue | |
fr_swing_params | SwingParams | |
use_hl_swing_params | google.protobuf.BoolValue | |
hl_swing_params | SwingParams | |
use_hr_swing_params | google.protobuf.BoolValue | |
hr_swing_params | SwingParams | |
stand_in_place | google.protobuf.BoolValue | Stand rather than stepping in place when not moving. |
standard_final_stance | google.protobuf.BoolValue | Go back to a standard rectangular stance when ending the gait. Otherwise maintains the customized stance shape. |
show_stability_params | google.protobuf.BoolValue | Parameters that impact the stability of the gait rather than its appearance. |
mu | google.protobuf.DoubleValue | Friction coefficient between the feet and the ground. |
timing_stiffness | google.protobuf.DoubleValue | How much the robot is allowed to deviate from the specified timing. 0 means no deviation. Otherwise: large values mean less deviation and small values mean more is acceptable. Too much timing adjustment (low, non-zero values) may make the gait unstable. At least a little timing adjustment is recommended for gaits with flight phases (periods with 0 feet on the ground). |
step_position_stiffness | google.protobuf.DoubleValue | How much the robot is allowed to deviate from the specified stance shape. 0 means no deviation. Otherwise: large values mean less deviation and small values mean more is acceptable. Too much position adjustment (low, non-zero values) may make the gait unstable. |
enable_perception_obstacle_avoidance | google.protobuf.BoolValue | Enable/disable various aspects of perception. |
obstacle_avoidance_padding | google.protobuf.DoubleValue | |
enable_perception_terrain_height | google.protobuf.BoolValue | |
enable_perception_step_placement | google.protobuf.BoolValue | |
maximum_stumble_distance | google.protobuf.DoubleValue | How far the robot should stumble before giving up and freezing. |
trip_sensitivity | google.protobuf.DoubleValue | How sensitive we should be to trip detection. On the range [0, 1], where 1 is normal sensitivity and 0 is ignoring all trips. Useful for very aggressive gaits or when a costume is restricting leg motion. |
animated_cycle_params | AnimatedCycleParams | Using an animated cycle to define the gait style |
EulerRateZYXValue¶
Euler Angle rates (yaw->pitch->roll) vector that uses wrapped values so we can tell which elements are set.
Field | Type | Description |
---|---|---|
roll | google.protobuf.DoubleValue | |
pitch | google.protobuf.DoubleValue | |
yaw | google.protobuf.DoubleValue |
EulerZYX¶
Euler Angle (yaw->pitch->roll) vector.
Field | Type | Description |
---|---|---|
roll | double | |
pitch | double | |
yaw | double |
EulerZYXValue¶
Euler Angle (yaw->pitch->roll) vector that uses wrapped values so we can tell which elements are set.
Field | Type | Description |
---|---|---|
roll | google.protobuf.DoubleValue | |
pitch | google.protobuf.DoubleValue | |
yaw | google.protobuf.DoubleValue |
FadeColorParams¶
Field | Type | Description |
---|---|---|
top_color | Color | |
bottom_color | Color | |
fade_in_slices | google.protobuf.DoubleValue | |
fade_out_slices | google.protobuf.DoubleValue |
FidgetStandParams¶
Field | Type | Description |
---|---|---|
preset | FidgetStandParams.FidgetPreset | |
min_gaze_pitch | google.protobuf.DoubleValue | |
max_gaze_pitch | google.protobuf.DoubleValue | |
gaze_mean_period | google.protobuf.DoubleValue | |
gaze_center_cfp | bosdyn.api.Vec3Value | |
shift_mean_period | google.protobuf.DoubleValue | |
shift_max_transition_time | google.protobuf.DoubleValue | |
breath_min_z | google.protobuf.DoubleValue | |
breath_max_z | google.protobuf.DoubleValue | |
breath_max_period | google.protobuf.DoubleValue | |
leg_gesture_mean_period | google.protobuf.DoubleValue | |
gaze_slew_rate | google.protobuf.DoubleValue | |
gaze_position_generation_gain | bosdyn.api.Vec3Value | |
gaze_roll_generation_gain | google.protobuf.DoubleValue |
Figure8Params¶
Field | Type | Description |
---|---|---|
height | google.protobuf.DoubleValue | |
width | google.protobuf.DoubleValue | |
beats_per_cycle | google.protobuf.DoubleValue |
FrameSnapshotParams¶
Field | Type | Description |
---|---|---|
frame_id | google.protobuf.Int32Value | |
fiducial_number | google.protobuf.Int32Value | |
include_front_left_leg | FrameSnapshotParams.Inclusion | |
include_front_right_leg | FrameSnapshotParams.Inclusion | |
include_hind_left_leg | FrameSnapshotParams.Inclusion | |
include_hind_right_leg | FrameSnapshotParams.Inclusion | |
compensated | google.protobuf.BoolValue |
FrontUpParams¶
Parameters specific to FrontUp move.
Field | Type | Description |
---|---|---|
mirror | google.protobuf.BoolValue | Should we raise the hind feet instead. |
GotoParams¶
Field | Type | Description |
---|---|---|
absolute_position | bosdyn.api.Vec2Value | |
absolute_yaw | google.protobuf.DoubleValue | |
step_position_stiffness | google.protobuf.DoubleValue | |
duty_cycle | google.protobuf.DoubleValue | |
link_to_next | google.protobuf.BoolValue | Should we combine with the next move into a smooth trajectory. |
GripperParams¶
Parameters for open/close of gripper.
Field | Type | Description |
---|---|---|
angle | google.protobuf.DoubleValue | Angle in radians at which the gripper is open. Note that a 0 radian angle correlates to completely closed. |
speed | google.protobuf.DoubleValue | Speed in m/s at which the gripper should open/close to achieve the desired angle. |
HopParams¶
Parameters specific to Hop move.
Field | Type | Description |
---|---|---|
velocity | bosdyn.api.Vec2Value | The velocity of the hop gait (X is forward; y is left)[m/s]. |
yaw_rate | google.protobuf.DoubleValue | How fast the hop gait should turn [rad/s]. |
stand_time | google.protobuf.DoubleValue | How long the robot should stand in between each hop. |
IndependentColorParams¶
Field | Type | Description |
---|---|---|
top_left | Color | |
upper_mid_left | Color | |
lower_mid_left | Color | |
bottom_left | Color | |
top_right | Color | |
upper_mid_right | Color | |
lower_mid_right | Color | |
bottom_right | Color | |
fade_in_slices | google.protobuf.DoubleValue | |
fade_out_slices | google.protobuf.DoubleValue |
JumpParams¶
Parameters for the robot making a jump.
Field | Type | Description |
---|---|---|
yaw | google.protobuf.DoubleValue | The amount in radians that the robot will turn while in the air. |
flight_slices | google.protobuf.DoubleValue | The amount of time in slices (beats) that the robot will be in the air. |
stance_width | google.protobuf.DoubleValue | The distance between the robot's left and right feet [m]. |
stance_length | google.protobuf.DoubleValue | The distance between the robot's front and back feet [m]. |
translation | bosdyn.api.Vec2Value | How far the robot should jump [m]. |
split_fraction | google.protobuf.DoubleValue | How much it should lo/td the first pair of lets ahead of the other pair. In fraction of flight time. |
lead_leg_pair | JumpParams.Lead | |
yaw_is_absolute | google.protobuf.BoolValue | Should we turn to a yaw in choreography sequence frame? |
translation_is_absolute | google.protobuf.BoolValue | Should we translate in choreography sequence frame? |
absolute_yaw | google.protobuf.DoubleValue | The direction the robot should face upon landing relative to pose at the start of the dance. [rad] |
absolute_translation | bosdyn.api.Vec2Value | Where the robot should land relative to the pose at the start of the dance. [m] |
swing_height | google.protobuf.DoubleValue | |
absolute | google.protobuf.BoolValue | Deprecation Warning *** DEPRECATED as of 3.0.0: The absolute field has been deprecated and split into the yaw_is_absolute and translation_is_absolute fields. The following field will be deprecated and moved to 'reserved' in a future release. |
KneelCircleParams¶
Parameters specific to the kneel_circles move.
Field | Type | Description |
---|---|---|
location | bosdyn.api.Vec3Value | Location in body frame of the circle center. A typical value for the location is (0.4, 0, -0.5). |
beats_per_circle | google.protobuf.Int32Value | How beats per circle. One or two are reasonable values. |
number_of_circles | google.protobuf.DoubleValue | How many circles to perform. Mutually exclusive with beats_per_circle. |
offset | google.protobuf.DoubleValue | How far apart the feet are when circling [m]. |
radius | google.protobuf.DoubleValue | Size of the circles [m]. |
reverse | google.protobuf.BoolValue | Which way to circle. |
KneelLegMove2Params¶
Parameters specific to KneelLegMove2 move.
Field | Type | Description |
---|---|---|
left_hip_x | google.protobuf.DoubleValue | Joint angles of the front left leg in radians. |
left_hip_y | google.protobuf.DoubleValue | |
left_knee | google.protobuf.DoubleValue | |
right_hip_x | google.protobuf.DoubleValue | Joint angles of the front right leg in radians. |
right_hip_y | google.protobuf.DoubleValue | |
right_knee | google.protobuf.DoubleValue | |
easing | Easing | How the motion should be paced. |
link_to_next | google.protobuf.BoolValue | Should we combine with the next move into a smooth trajectory. |
KneelLegMoveParams¶
Parameters specific to KneelLegMove move.
Field | Type | Description |
---|---|---|
hip_x | google.protobuf.DoubleValue | Joint angles of the left front leg in radians. If mirrored, the joints will be flipped for the other leg. |
hip_y | google.protobuf.DoubleValue | |
knee | google.protobuf.DoubleValue | |
mirror | google.protobuf.BoolValue | If mirrored is true, the joints will be flipped for the leg on the other side (right vs left) of the body. |
easing | Easing | How the motion should be paced. |
LegJointParams¶
Field | Type | Description |
---|---|---|
fl_hx | google.protobuf.DoubleValue | |
fl_hy | google.protobuf.DoubleValue | |
fl_kn | google.protobuf.DoubleValue | |
fr_hx | google.protobuf.DoubleValue | |
fr_hy | google.protobuf.DoubleValue | |
fr_kn | google.protobuf.DoubleValue | |
hl_hx | google.protobuf.DoubleValue | |
hl_hy | google.protobuf.DoubleValue | |
hl_kn | google.protobuf.DoubleValue | |
hr_hx | google.protobuf.DoubleValue | |
hr_hy | google.protobuf.DoubleValue | |
hr_kn | google.protobuf.DoubleValue |
Pace2StepParams¶
Parameters specific to pace translation.
Field | Type | Description |
---|---|---|
motion | bosdyn.api.Vec2Value | How far to move relative to starting position. [m] |
absolute_motion | bosdyn.api.Vec2Value | Where to move relative to position at start of script. [m] |
motion_is_absolute | google.protobuf.BoolValue | Is motion specified relative to pose at start of dance? |
swing_height | google.protobuf.DoubleValue | Swing parameters to describe the footstep pattern during the pace translation gait. Note, a zero (or nearly zero) value will be considered as an unspecified parameter. |
swing_velocity | google.protobuf.DoubleValue | |
yaw | google.protobuf.DoubleValue | How far to turn, described in radians with a positive value representing a turn to the left. |
absolute_yaw | google.protobuf.DoubleValue | Orientation to turn to, relative to the orientation at the start of the script. [rad] |
yaw_is_absolute | google.protobuf.BoolValue | Should we turn to a yaw in choreography sequence frame? |
absolute | google.protobuf.BoolValue | Deprecation Warning *** DEPRECATED as of 3.0.0: The absolute field has been deprecated and split into the yaw_is_absolute and translation_is_absolute fields. The following field will be deprecated and moved to 'reserved' in a future release. |
RandomRotateParams¶
Parameters specific to the RandomRotate move.
Field | Type | Description |
---|---|---|
amplitude | EulerZYXValue | The amplitude [rad] of the rotation in each axis. |
speed | EulerRateZYXValue | The speed [rad/s] of the motion in each axis. |
speed_variation | google.protobuf.DoubleValue | The amount of variation allowed in the speed of the random rotations [m/s]. Note, this must be a positive value. |
num_speed_tiers | google.protobuf.Int32Value | The specified speed values will be split into this many number of tiers between the bounds of [speed - speed_variation, speed + speed variation]. Then a tier (with a specified speed) will be randomly choosen and performed for each axis. |
tier_variation | google.protobuf.DoubleValue | How much can the output speed vary from the choosen tiered speed. |
RippleColorParams¶
Field | Type | Description |
---|---|---|
main | Color | |
secondary | Color | |
pattern | RippleColorParams.Pattern | |
light_side | RippleColorParams.LightSide | |
increment_slices | google.protobuf.DoubleValue |
RotateBodyParams¶
Parameters for the robot rotating the body.
Field | Type | Description |
---|---|---|
rotation | EulerZYXValue | The robot will rotate its body to the specified orientation (roll/pitch/yaw). |
return_to_start_pose | google.protobuf.BoolValue | If true, the robot will transition back to the initial pose we started at before this choreography sequence move begin execution, and otherwise it will remain in whatever pose it is in after completing the choreography sequence move. |
RunningManParams¶
Parameters specific to RunningMan move.
Field | Type | Description |
---|---|---|
velocity | bosdyn.api.Vec2Value | |
swing_height | google.protobuf.DoubleValue | How high to pick up the forward-moving feet [m]. |
spread | google.protobuf.DoubleValue | How far to spread the contralateral pair of feet [m]. |
reverse | google.protobuf.BoolValue | Should we reverse the motion? |
pre_move_cycles | google.protobuf.Int32Value | How many full running man cycles should the robot complete in place before starting to move with the desired velocity. |
speed_multiplier | google.protobuf.DoubleValue | Do the move at some multiple of the dance cadence. |
duty_cycle | google.protobuf.DoubleValue | What fraction of the time to have feet on the ground. |
com_height | google.protobuf.DoubleValue | How high to hold the center of mass above the ground on average. |
SetColorParams¶
Field | Type | Description |
---|---|---|
left_color | Color | |
right_same_as_left | google.protobuf.BoolValue | |
right_color | Color | |
fade_in_slices | google.protobuf.DoubleValue | |
fade_out_slices | google.protobuf.DoubleValue |
SideParams¶
Parameters for moves that can go to either side.
Field | Type | Description |
---|---|---|
side | SideParams.Side |
StanceShape¶
Field | Type | Description |
---|---|---|
length | google.protobuf.DoubleValue | |
width | google.protobuf.DoubleValue | |
front_wider_than_hind | google.protobuf.DoubleValue | |
left_longer_than_right | google.protobuf.DoubleValue | |
left_forward_of_right | google.protobuf.DoubleValue |
StepParams¶
Field | Type | Description |
---|---|---|
foot | Leg | Which foot to use (FL = 1, FR = 2, HL = 3, HR = 4). |
offset | bosdyn.api.Vec2Value | Offset of the foot from it's nominal position, in meters. |
second_foot | Leg | Should we use a second foot? (None = 0, FL = 1, FR = 2, HL = 3, HR = 4). |
swing_waypoint | bosdyn.api.Vec3Value | Where should the swing foot go? This vector should be described in a gravity-aligned body frame relative to the centerpoint of the swing. If set to {0,0,0}, uses the default swing path. |
swing_height | google.protobuf.DoubleValue | Parameters for altering swing. Note that these will have no effect if swing_waypoint is specified. As well, a zero (or nearly zero) value will be considered as an unspecified parameter. |
meters | | liftoff_velocity | google.protobuf.DoubleValue | m/s | | touchdown_velocity | google.protobuf.DoubleValue | m/s | | mirror_x | google.protobuf.BoolValue | Should we mirror the offset for the second foot? Ignored if second_foot is set to None | | mirror_y | google.protobuf.BoolValue | | | mirror | google.protobuf.BoolValue | Deprecation Warning *** DEPRECATED as of 2.3.0: The mirror field has been deprecated in favor for a more descriptive break down to mirror_x and mirror_y. The following field will be deprecated and moved to ‘reserved’ in a future release. | | waypoint_dwell | google.protobuf.DoubleValue | What fraction of the swing should be spent near the waypoint. | | touch | google.protobuf.BoolValue | Should we touch the ground and come back rather than stepping to a new place? | | touch_offset | bosdyn.api.Vec2Value | |
SwayParams¶
Parameters specific to Sway move.
Field | Type | Description |
---|---|---|
vertical | google.protobuf.DoubleValue | How far to move up/down [m]. |
horizontal | google.protobuf.DoubleValue | How far to move left/right [m]. |
roll | google.protobuf.DoubleValue | How much to roll [rad]. |
pivot | Pivot | What point on the robot's body should the swaying be centered at. For example, should the head move instead of the butt? |
style | SwayParams.SwayStyle | What style motion should we use? |
pronounced | google.protobuf.DoubleValue | How pronounced should the sway-style be? The value is on a scale from [0,1.0]. |
hold_zero_axes | google.protobuf.BoolValue | Should the robot hold previous values for the vertical, horizontal, and roll axes if the value is left unspecified (value of zero). |
SwingParams¶
Field | Type | Description |
---|---|---|
height | google.protobuf.DoubleValue | |
liftoff_speed | google.protobuf.DoubleValue | |
vertical_speed | google.protobuf.DoubleValue | |
vertical_acceleration | google.protobuf.DoubleValue | |
overlay_outside | google.protobuf.DoubleValue | |
overlay_forward | google.protobuf.DoubleValue | |
low_speed_fraction | google.protobuf.DoubleValue |
SwingPhases¶
Field | Type | Description |
---|---|---|
liftoff_phase | google.protobuf.DoubleValue | |
touchdown_phase | google.protobuf.DoubleValue |
TurnParams¶
Parameters specific to turning.
Field | Type | Description |
---|---|---|
yaw | google.protobuf.DoubleValue | How far to turn, described in radians with a positive value representing a turn to the left. |
absolute_yaw | google.protobuf.DoubleValue | Orientation to turn to, relative to the orientation at the start of the script. [rad] |
yaw_is_absolute | google.protobuf.BoolValue | Should we turn to a yaw in choreography sequence frame? |
swing_height | google.protobuf.DoubleValue | Swing parameters to describe the footstep pattern during the turning [height in meters]. Note, a zero (or nearly zero) value will be considered as an unspecified parameter. |
swing_velocity | google.protobuf.DoubleValue | Swing parameter to describe the foot's swing velocity during the turning [m/s]. Note, a zero (or nearly zero) value will be considered as an unspecified parameter. |
motion | bosdyn.api.Vec2Value | How far to move relative to starting position. [m] |
absolute_motion | bosdyn.api.Vec2Value | Where to move relative to position at start of script. [m] |
motion_is_absolute | google.protobuf.BoolValue | Is motion specified relative to pose at start of dance? |
absolute | google.protobuf.BoolValue | Deprecation Warning *** DEPRECATED as of 3.0.0: The absolute field has been deprecated and split into the yaw_is_absolute and translation_is_absolute fields. The following field will be deprecated and moved to 'reserved' in a future release. |
TwerkParams¶
Parameters specific to twerking
Field | Type | Description |
---|---|---|
height | google.protobuf.DoubleValue | How far the robot should twerk in meters. |
WorkspaceArmMoveParams¶
Field | Type | Description |
---|---|---|
rotation | EulerZYXValue | The robot will rotate its body to the specified orientation (roll/pitch/yaw) [rad]. |
translation | bosdyn.api.Vec3Value | The positional offset to the robot's current location [m]. |
absolute | google.protobuf.BoolValue | Go to an absolute position/orientation? Otherwise, relative to starting pose. |
frame | ArmMoveFrame | What frame is the motion specified in. |
easing | Easing | How the motion should be paced. |
dance_frame_id | google.protobuf.Int32Value | If we're using the dance frame, which one? |
ArmMoveFrame¶
Name | Number | Description |
---|---|---|
ARM_MOVE_FRAME_UNKNOWN | 0 | |
ARM_MOVE_FRAME_CENTER_OF_FOOTPRINT | 1 | |
ARM_MOVE_FRAME_HAND | 2 | |
ARM_MOVE_FRAME_BODY | 3 | |
ARM_MOVE_FRAME_SHOULDER | 4 | |
ARM_MOVE_FRAME_SHADOW | 5 | |
ARM_MOVE_FRAME_DANCE | 6 |
Easing¶
Enum to describe the type of easing to perform for the slices at either (or both) the beginning and end of a move.
Name | Number | Description |
---|---|---|
EASING_UNKNOWN | 0 | |
EASING_LINEAR | 1 | |
EASING_QUADRATIC_INPUT | 2 | |
EASING_QUADRATIC_OUTPUT | 3 | |
EASING_QUADRATIC_IN_OUT | 4 | |
EASING_CUBIC_INPUT | 5 | |
EASING_CUBIC_OUTPUT | 6 | |
EASING_CUBIC_IN_OUT | 7 | |
EASING_EXPONENTIAL_INPUT | 8 | |
EASING_EXPONENTIAL_OUTPUT | 9 | |
EASING_EXPONENTIAL_IN_OUT | 10 |
FidgetStandParams.FidgetPreset¶
Name | Number | Description |
---|---|---|
PRESET_UNKNOWN | 0 | |
PRESET_CUSTOM | 1 | |
PRESET_INTEREST | 2 | |
PRESET_PLAYFUL | 3 | |
PRESET_FEAR | 4 | |
PRESET_NERVOUS | 5 | |
PRESET_EXHAUSTED | 6 |
FrameSnapshotParams.Inclusion¶
Name | Number | Description |
---|---|---|
INCLUSION_UNKNOWN | 0 | |
INCLUSION_IF_STANCE | 1 | |
INCLUSION_INCLUDED | 2 | |
INCLUSION_EXCLUDED | 3 |
JumpParams.Lead¶
If split_fraction is non-zero, which legs to lift first.
Name | Number | Description |
---|---|---|
LEAD_UNKNOWN | 0 | |
LEAD_AUTO | 1 | |
LEAD_FRONT | 2 | |
LEAD_HIND | 3 | |
LEAD_LEFT | 4 | |
LEAD_RIGHT | 5 |
LedLight¶
Name | Number | Description |
---|---|---|
LED_LIGHT_UNKNOWN | 0 | |
LED_LIGHT_LEFT1 | 1 | |
LED_LIGHT_LEFT2 | 2 | |
LED_LIGHT_LEFT3 | 3 | |
LED_LIGHT_LEFT4 | 4 | |
LED_LIGHT_RIGHT1 | 5 | |
LED_LIGHT_RIGHT2 | 6 | |
LED_LIGHT_RIGHT3 | 7 | |
LED_LIGHT_RIGHT4 | 8 |
Leg¶
Enum to describe which leg is being referenced in specific choreography sequence moves.
Name | Number | Description |
---|---|---|
LEG_UNKNOWN | 0 | |
LEG_FRONT_LEFT | 1 | |
LEG_FRONT_RIGHT | 2 | |
LEG_HIND_LEFT | 3 | |
LEG_HIND_RIGHT | 4 | |
LEG_NO_LEG | -1 |
Pivot¶
Enum for the pivot point for certain choreography sequence moves.
Name | Number | Description |
---|---|---|
PIVOT_UNKNOWN | 0 | |
PIVOT_FRONT | 1 | |
PIVOT_HIND | 2 | |
PIVOT_CENTER | 3 |
RippleColorParams.LightSide¶
Name | Number | Description |
---|---|---|
LIGHT_SIDE_UNKNOWN | 0 | |
LIGHT_SIDE_LEFT | 1 | |
LIGHT_SIDE_RIGHT | 2 | |
LIGHT_SIDE_BOTH_IN_SEQUENCE | 3 | |
LIGHT_SIDE_BOTH_MATCHING | 4 |
RippleColorParams.Pattern¶
Name | Number | Description |
---|---|---|
PATTERN_UNKNOWN | 0 | |
PATTERN_FLASHING | 1 | |
PATTERN_SNAKE | 2 | |
PATTERN_ALTERNATE_COLORS | 3 | |
PATTERN_FINE_GRAINED_ALTERNATE_COLORS | 4 |
SideParams.Side¶
Name | Number | Description |
---|---|---|
SIDE_UNKNOWN | 0 | |
SIDE_LEFT | 1 | |
SIDE_RIGHT | 2 |
SwayParams.SwayStyle¶
The type of motion used by the Sway sequence move.
Name | Number | Description |
---|---|---|
SWAY_STYLE_UNKNOWN | 0 | |
SWAY_STYLE_STANDARD | 1 | |
SWAY_STYLE_FAST_OUT | 2 | |
SWAY_STYLE_FAST_RETURN | 3 | |
SWAY_STYLE_SQUARE | 4 | |
SWAY_STYLE_SPIKE | 5 | |
SWAY_STYLE_PLATEAU | 6 |
spot/choreography_sequence.proto¶
ActiveMove¶
Field | Type | Description |
---|---|---|
move | MoveParams | Any parameters that had to be adjusted into the legal range will have their adjusted values. |
custom_gait_command_limits | CustomGaitCommandLimits |
AnimateArm¶
Field | Type | Description |
---|---|---|
joint_angles | ArmJointAngles | Full arm joint angle specification. |
hand_pose | AnimateArm.HandPose | The hand position in the animation frame |
AnimateArm.HandPose¶
An SE3 Pose for the hand where orientation is specified using either a quaternion or euler angles
Field | Type | Description |
---|---|---|
position | bosdyn.api.Vec3Value | |
euler_angles | EulerZYXValue | The hand's orientation described with euler angles (yaw, pitch, roll). |
quaternion | bosdyn.api.Quaternion | The hand's orientation described with a quaternion. |
AnimateBody¶
The AnimateBody keyframe describes the body’s position and orientation. At least one dimension of the body must be specified.
Field | Type | Description |
---|---|---|
body_pos | bosdyn.api.Vec3Value | The body position in the animation frame. |
com_pos | bosdyn.api.Vec3Value | The body's center of mass position in the animation frame. |
euler_angles | EulerZYXValue | The body's orientation described with euler angles (yaw, pitch, roll). |
quaternion | bosdyn.api.Quaternion | The body's orientation described with a quaternion. |
AnimateGripper¶
Field | Type | Description |
---|---|---|
gripper_angle | google.protobuf.DoubleValue |
AnimateLegs¶
The AnimateLegs keyframe describes each leg using either joint angles or the foot position.
Field | Type | Description |
---|---|---|
fl | AnimateSingleLeg | Front left leg. |
fr | AnimateSingleLeg | Front right leg. |
hl | AnimateSingleLeg | Hind left leg. |
hr | AnimateSingleLeg | Hind right leg. |
AnimateSingleLeg¶
A single leg keyframe to describe the leg motion.
Field | Type | Description |
---|---|---|
joint_angles | LegJointAngles | Full leg joint angle specification. |
foot_pos | bosdyn.api.Vec3Value | The foot position of the leg in the animation frame. |
stance | google.protobuf.BoolValue | If true, the foot is in contact with the ground and standing. If false, the foot is in swing. If unset, the contact will be inferred from the leg joint angles or foot position. |
Animation¶
Represents an animated dance move that can be used whithin choreographies after uploading.
Field | Type | Description |
---|---|---|
name | string | The name of the animated move, which is how it will be referenced in choreographies. |
animation_keyframes | AnimationKeyframe | The animated move is composed of animation keyframes, which specify the duration of each frame. The keyframe describes the position of the body/arms/gripper. |
controls_arm | bool | Indicators as to which parts of the robot that the move controls. |
controls_legs | bool | |
controls_body | bool | |
controls_gripper | bool | |
track_swing_trajectories | bool | Track animated swing trajectories. Otherwise, takes standard swings between animated liftoff and touchdown locations. |
assume_zero_roll_and_pitch | bool | For moves that control the legs, but not the body. If legs are specified by joint angles, we still need body roll and pitch to know the foot height. If assume_zero_roll_and_pitch is true, they needn't be explicitly specified. |
arm_playback | Animation.ArmPlayback | |
bpm | double | Optional bpm that the animation is successful at. |
retime_to_integer_slices | bool | When true, rescales the time of each keyframe slightly such that the move takes an integer number of slices. If false/absent, the move will be padded or truncated slightly to fit an integer number of slices. |
minimum_parameters | AnimateParams | The different parameters (minimum, default, and maximum) that can change the move. The min/max bounds are used by Choreographer to constrain the parameter widget, and will also be used when uploading a ChoreographySequence containing the animation to validate that the animated move is allowed. |
default_parameters | AnimateParams | |
maximum_parameters | AnimateParams | |
truncatable | bool | Indicates if the animated moves can be shortened (the animated move will be cut off). Not supported for leg moves. |
extendable | bool | Indicates if the animated moves can be stretched (animated move will loop). Not supported for leg moves. |
neutral_start | bool | Indicates if the move should start in a neutral stand position. |
precise_steps | bool | Step exactly at the animated locations, even at the expense of balance. By default, the optimizer may adjust step locations slightly. |
precise_timing | bool | DEPRECATED as of 3.3.0: The boolean field has been replaced by the more fine-grained control of timing_adjustability. The following field will be deprecated and moved to 'reserved' in a future release. |
timing_adjustability | double | How much the optimizer is allowed to adjust the timing. On the range [-1, 1]. -1: Everything will be timed exactly as animated, even at the expense of balance. 0: Default value: some timing adjust allowed. 1: Timing can be adjusted drastically. |
arm_required | bool | If set true, this animation will not run unless the robot has an arm. |
arm_prohibited | bool | If set true, this animation will not run unless the robot has no arm. |
no_looping | bool | If the animation completes before the move's duration, freeze rather than looping. |
starts_sitting | bool | If the animation starts from a sit pose. Default starting pose is stand. |
custom_gait_cycle | bool | If true, this animation can be used as direct input to custom gait to define the gait style |
AnimationKeyframe¶
Field | Type | Description |
---|---|---|
time | double | Time from the start of the animation for this frame. |
gripper | AnimateGripper | Different body parts the animated move can control. It can control multiple body parts at once. |
arm | AnimateArm | |
body | AnimateBody | |
legs | AnimateLegs |
ArmJointAngles¶
The AnimateArm keyframe describes the joint angles of the arm joints in radians. Any joint not specified, will hold the previous angle it was at when the keyframe begins. At least one arm joint must be specified.
Field | Type | Description |
---|---|---|
shoulder_0 | google.protobuf.DoubleValue | |
shoulder_1 | google.protobuf.DoubleValue | |
elbow_0 | google.protobuf.DoubleValue | |
elbow_1 | google.protobuf.DoubleValue | |
wrist_0 | google.protobuf.DoubleValue | |
wrist_1 | google.protobuf.DoubleValue |
ChoreographerDisplayInfo¶
Information for the Choreographer to display.
Field | Type | Description |
---|---|---|
color | ChoreographerDisplayInfo.Color | |
markers | int32 | For the GUI, these are marked events in steps. For example if the move puts a foot down, the mark might be exactly when the foot is placed on the ground, relative to the start of the move. |
description | string | Textual description to be displayed in the GUI. |
image | string | Image path (local to the UI) to display as an icon. May be an animated gif. |
category | ChoreographerDisplayInfo.Category |
ChoreographerDisplayInfo.Color¶
Color of the object. Set it to override the default category color.
Field | Type | Description |
---|---|---|
r | int32 | RGB values for color ranging from [0,255]. |
g | int32 | |
b | int32 | |
a | double | Alpha value for the coloration ranges from [0,1]. |
ChoreographerSave¶
Describes the metadata and information only used by the Choreographer GUI, which isn’t used in the API
Field | Type | Description |
---|---|---|
choreography_sequence | ChoreographySequence | The main ChoreographySequence that makes up the dance and is sent to the robot. |
music_file | string | If specified this is the UI local path of the music to load. |
music_start_slice | double | UI specific member that describes exactly when the music should start, in slices. This is for time sync issues. |
choreography_start_slice | double | The start slice for the choreographer save. |
ChoreographyCommandRequest¶
Field | Type | Description |
---|---|---|
header | bosdyn.api.RequestHeader | Common request header |
commands | MoveCommand | Commands intended for individual moves. Repeated because multiple moves may be playing simultaneously and we may want to command multiple of them. |
lease | bosdyn.api.Lease | The Lease to show ownership of the robot body. |
command_end_time | google.protobuf.Timestamp | When the commands expire. In the robot's clock. |
ChoreographyCommandResponse¶
Field | Type | Description |
---|---|---|
header | bosdyn.api.ResponseHeader | Common response header |
lease_use_result | bosdyn.api.LeaseUseResult | |
status | ChoreographyCommandResponse.Status | One status for each command sent. |
ChoreographyInfo¶
Describes metadata for the Choreography sequence that can be used for a number of different UIs
Field | Type | Description |
---|---|---|
labels | string | the list of user assigned categories that the sequence belongs to |
ChoreographySequence¶
Represents a particular choreography sequence, made up of MoveParams.
Field | Type | Description |
---|---|---|
name | string | Display name or file name associated with the choreography sequence. |
slices_per_minute | double | Number of slices per minute in the choreography sequence. Typically a slice will correspond to 1/4 a beat. |
moves | MoveParams | All of the moves in this choreography sequence. |
choreography_info | ChoreographyInfo | Metadata associated with the sequence. |
entrance_state | MoveInfo.TransitionState | Can be used to specify an explicit entrance_state in the case where the first legs-track move accepts multiple entrace_states. Will also be used if the sequence contains no legs-track moves. Can otherwise be left unset. If set and not within the set of acceptable entrance_states for the first legs-track move, the Sequence will be considered invalid. |
ChoreographyStateLog¶
Field | Type | Description |
---|---|---|
key_frames | LoggedStateKeyFrame | A set of key frames recorded at a high rate. The key frames can be for the duration of an executing choreography or for the duration of a manual recorded log (triggered by the StartRecordingState and StopRecordingState RPCs). The specific set of keyframes is specified by the LogType when requesting to download the data. |
ChoreographyStatusRequest¶
Field | Type | Description |
---|---|---|
header | bosdyn.api.RequestHeader | Common request header |
ChoreographyStatusResponse¶
Field | Type | Description |
---|---|---|
header | bosdyn.api.ResponseHeader | Common response header |
status | ChoreographyStatusResponse.Status | |
execution_id | int32 | If dancing (or preparing to dance), the unique execution_id matching the one from ExecuteChoreographyResponse. If not dancing, 0. |
current_slice | double | Where we are in the script. (slice = 1/4 beat; standard unit of "time" within Choreography) |
active_moves | ActiveMove | All of the moves currently executing. |
sequence_slices | int32 | Length of the current sequence. |
sequence_slices_per_minute | double | Cadence of the current sequence. |
validity_time | google.protobuf.Timestamp | When this was true in robot time. |
ClearAllSequenceFilesRequest¶
Reset to a clean slate with no retained files by deleting all non-permanent choreography related files
Field | Type | Description |
---|---|---|
header | bosdyn.api.RequestHeader | Common request header |
ClearAllSequenceFilesResponse¶
Field | Type | Description |
---|---|---|
header | bosdyn.api.ResponseHeader | Common response header. |
status | ClearAllSequenceFilesResponse.Status |
DeleteSequenceRequest¶
Delete the retained file for a choreography sequence so the sequence will be forgotten on reboot
Field | Type | Description |
---|---|---|
header | bosdyn.api.RequestHeader | Common request header |
sequence_name | string | Name of the sequence to delete, sequence will be forgotten on the next reboot |
DeleteSequenceResponse¶
Field | Type | Description |
---|---|---|
header | bosdyn.api.ResponseHeader | Common response header. |
status | DeleteSequenceResponse.Status |
DownloadRobotStateLogRequest¶
Field | Type | Description |
---|---|---|
header | bosdyn.api.RequestHeader | Common request header |
log_type | DownloadRobotStateLogRequest.LogType | Which data should we download. |
DownloadRobotStateLogResponse¶
Field | Type | Description |
---|---|---|
header | bosdyn.api.ResponseHeader | Common response header |
status | DownloadRobotStateLogResponse.Status | Return status for the request. |
chunk | bosdyn.api.DataChunk | Chunk of data to download. Responses are sent in sequence until the data chunk is complete. After receiving all chunks, concatenate them into a single byte string. Then, deserialize the byte string into an ChoreographyStateLog object. |
ExecuteChoreographyRequest¶
Field | Type | Description |
---|---|---|
header | bosdyn.api.RequestHeader | Common request header |
choreography_sequence_name | string | The string name of the ChoreographySequence to use. |
start_time | google.protobuf.Timestamp | The absolute time to start the choreography at. This should be in the robot's clock so we can synchronize music playing and the robot's choreography. |
choreography_starting_slice | double | The slice (betas/sub-beats) that the choreography should begin excution at. |
lease | bosdyn.api.Lease | The Lease to show ownership of the robot body. |
ExecuteChoreographyResponse¶
Field | Type | Description |
---|---|---|
header | bosdyn.api.ResponseHeader | Common response header |
lease_use_result | bosdyn.api.LeaseUseResult | |
status | ExecuteChoreographyResponse.Status | |
execution_id | int32 | Unique ID for the execution. Will increment whenever an ExecuteChoreographRequest is received. Will reset upon robot boot. |
LegJointAngles¶
Descprition of each leg joint angle (hip x/y and knee) in radians.
Field | Type | Description |
---|---|---|
hip_x | double | |
hip_y | double | |
knee | double |
ListAllMovesRequest¶
Request a list of all possible moves and the associated parameters (min/max values).
Field | Type | Description |
---|---|---|
header | bosdyn.api.RequestHeader | Common request header |
ListAllMovesResponse¶
Response for ListAllMoves that defines the list of available moves and their parameter types.
Field | Type | Description |
---|---|---|
header | bosdyn.api.ResponseHeader | Common response header |
moves | MoveInfo | List of moves that the robot knows about. |
move_param_config | string | A copy of the MoveParamsConfig.txt that the robot is using. |
ListAllSequencesRequest¶
Request a list of all playable choreography sequences that the robot knows about
Field | Type | Description |
---|---|---|
header | bosdyn.api.RequestHeader | Common request header |
ListAllSequencesResponse¶
Field | Type | Description |
---|---|---|
header | bosdyn.api.ResponseHeader | Common response header. |
known_sequences | string | DEPRECATED as of 3.2.0: The string list of known sequence names has been deprecated and replaced by the repeated field sequence_info. |
sequence_info | SequenceInfo | List of choreography sequences the robot knows about. |
LoggedFootContacts¶
Field | Type | Description |
---|---|---|
fr_contact | bool | Boolean indicating whether or not the robot's foot is in contact with the ground. |
fl_contact | bool | |
hr_contact | bool | |
hl_contact | bool |
LoggedJoints¶
Field | Type | Description |
---|---|---|
fl | LegJointAngles | front left leg joint angles. |
fr | LegJointAngles | front right leg joint angles. |
hl | LegJointAngles | hind left leg joint angles. |
hr | LegJointAngles | hind right leg joint angles. |
arm | ArmJointAngles | Full set of joint angles for the arm and gripper. |
gripper_angle | google.protobuf.DoubleValue |
LoggedStateKeyFrame¶
Field | Type | Description |
---|---|---|
joint_angles | LoggedJoints | Full set of joint angles for the robot. |
foot_contact_state | LoggedFootContacts | Foot contacts for the robot. |
animation_tform_body | bosdyn.api.SE3Pose | The current pose of the robot body in animation frame. The animation frame is defined based on the robot's footprint when the log first started recording. |
timestamp | google.protobuf.Timestamp | The timestamp (in robot time) for the key frame. |
ModifyChoreographyInfoRequest¶
Edit the metadata of a choreography sequence and update any retained files for that sequence with the new metadata
Field | Type | Description |
---|---|---|
header | bosdyn.api.RequestHeader | Common request header |
sequence_name | string | Name of the sequence to be modified |
add_labels | string | Labels to be added to the sequence's metadata |
remove_labels | string | Labels to be removed from the sequence's metadata |
ModifyChoreographyInfoResponse¶
Field | Type | Description |
---|---|---|
header | bosdyn.api.ResponseHeader | Common response header. |
status | ModifyChoreographyInfoResponse.Status |
MoveCommand¶
Either, both, or neither of move_type and move_id can be used to specify which move this command is intended for.
Field | Type | Description |
---|---|---|
move_type | string | Name of the move type this command is intended for. |
move_id | int32 | ID of the move this command is intended for. |
custom_gait_command | CustomGaitCommand |
MoveInfo¶
Defines properties of a choreography move.
Field | Type | Description |
---|---|---|
name | string | Unique ID of the move type. |
move_length_slices | int32 | The duration of this move in slices (usually 1/4 beats). |
move_length_time | double | The duration of this move in seconds. If specified, overrides move_length_slices. |
is_extendable | bool | If true, the duration may be adjusted from the default specified by move_length_slices or move_length_time. |
min_move_length_slices | int32 | Bounds on the duration may be adjusted in slices (usually 1/4 beats). These apply to extendable moves, but may also override move_length_time for some BPM. |
max_move_length_slices | int32 | |
min_time | double | Bounds on the duration in time. These apply to extendable moves, but may also override move_length_slices for some BPM. |
max_time | double | |
entrance_states | MoveInfo.TransitionState | The admissible states the robot can be in currently for this move to execute. |
exit_state | MoveInfo.TransitionState | The state of the robot after the move is complete. |
controls_arm | bool | Indicators as to which parts of the robot that the move controls. |
controls_legs | bool | |
controls_body | bool | |
controls_gripper | bool | |
controls_lights | bool | |
controls_annotations | bool | |
is_looping | bool | |
display | ChoreographerDisplayInfo | Information for the GUI tool to visualize the sequence move info. |
animated_move_generated_id | google.protobuf.StringValue | Unique ID for the animated moves. This is sent with the UploadAnimatedMove request and use to track which version of the animated move is currently saved on robot. The ID can be unset, meaning the RPC which uploaded the animation did not provide an identifying hash. |
MoveParams¶
Defines varying parameters for a particular instance of a move.
Field | Type | Description |
---|---|---|
type | string | Unique ID of the move type that these params are associated with. |
start_slice | int32 | How many slices since the start of the song this move should be executed at. |
requested_slices | int32 | The number of slices (beats/sub-beats) that this move is supposed to last for. If the move was extendable, then this corresponds to the number of slices that the user requested. |
id | int32 | The ID number can be optionally set by the client as part of the UploadChoreographyRequest. If not set by the client, the robot will assign an id to each move that is unique within the sequence. The ID (either set by the client or the robot) will be reported in the ActiveMoves in the ChoreographyStatusResponse. The ID can be used to specify which move a Command is intended for. |
jump_params | JumpParams | |
rotate_body_params | RotateBodyParams | |
step_params | StepParams | |
butt_circle_params | ButtCircleParams | |
turn_params | TurnParams | |
pace_2step_params | Pace2StepParams | |
twerk_params | TwerkParams | |
chicken_head_params | ChickenHeadParams | |
clap_params | ClapParams | |
front_up_params | FrontUpParams | |
sway_params | SwayParams | |
body_hold_params | BodyHoldParams | |
arm_move_params | ArmMoveParams | |
kneel_leg_move_params | KneelLegMoveParams | |
running_man_params | RunningManParams | |
kneel_circle_params | KneelCircleParams | |
gripper_params | GripperParams | |
hop_params | HopParams | |
random_rotate_params | RandomRotateParams | |
crawl_params | CrawlParams | |
side_params | SideParams | |
bourree_params | BourreeParams | |
workspace_arm_move_params | WorkspaceArmMoveParams | |
figure8_params | Figure8Params | |
kneel_leg_move2_params | KneelLegMove2Params | |
fidget_stand_params | FidgetStandParams | |
goto_params | GotoParams | |
frame_snapshot_params | FrameSnapshotParams | |
set_color_params | SetColorParams | |
ripple_color_params | RippleColorParams | |
fade_color_params | FadeColorParams | |
independent_color_params | IndependentColorParams | |
custom_gait_params | CustomGaitParams | |
leg_joint_params | LegJointParams | |
animate_params | AnimateParams |
SaveSequenceRequest¶
Write a choreography sequence as a file to robot memory so it will be retained through reboot
Field | Type | Description |
---|---|---|
header | bosdyn.api.RequestHeader | Common request header |
sequence_name | string | Name of the sequence to be added to the selection of retained sequences |
add_labels | string | List of labels to add to the sequence when it is being saved |
SaveSequenceResponse¶
Field | Type | Description |
---|---|---|
header | bosdyn.api.ResponseHeader | Common response header. |
status | SaveSequenceResponse.Status |
SequenceInfo¶
Field | Type | Description |
---|---|---|
name | string | |
labels | string | |
saved_state | SequenceInfo.SavedState | Use temporary sequences during development with choreographer, and then tell the robot to retain the final version of the sequence so that it can be played back later from other interfaces, like the tablet |
exit_state | MoveInfo.TransitionState | The exit transition state of the sequence. |
StartRecordingStateRequest¶
Field | Type | Description |
---|---|---|
header | bosdyn.api.RequestHeader | Common request header |
continue_recording_duration | google.protobuf.Duration | How long should the robot record for if no stop RPC is sent. A recording session can be extended by setting the recording_session_id below to a non-zero value matching the ID for the current recording session. For both start and continuation commands, the service will stop recording at end_time = (system time when the Start/Continue RPC is received) + (continue_recording_duration), unless another continuation request updates this end time. The robot has an internal maximum recording time of 5 minutes for the complete session log. |
recording_session_id | uint64 | Provide the unique identifier of the recording session to extend the recording end time for. If the recording_session_id is 0, then it will create a new session and the robot will clear the recorded robot state buffer and restart recording. If this is a continuation of an existing recording session, than the robot will continue to record until the specified end time. |
StartRecordingStateResponse¶
Field | Type | Description |
---|---|---|
header | bosdyn.api.ResponseHeader | Common response header |
status | StartRecordingStateResponse.Status | |
recording_session_id | uint64 | Unique identifier for the current recording session |
StopRecordingStateRequest¶
Field | Type | Description |
---|---|---|
header | bosdyn.api.RequestHeader | Common request header |
StopRecordingStateResponse¶
Field | Type | Description |
---|---|---|
header | bosdyn.api.ResponseHeader | Common response header |
UploadAnimatedMoveRequest¶
Field | Type | Description |
---|---|---|
header | bosdyn.api.RequestHeader | Common request header |
animated_move_generated_id | google.protobuf.StringValue | Unique ID for the animated moves. This will be automatically generated by the client and is used to uniquely identify the entire animation by creating a hash from the Animation protobuf message after serialization. The ID will be conveyed within the MoveInfo protobuf message in the ListAllMoves RPC. This ID allows the choreography client to only reupload animations that have changed or do not exist on robot already. |
animated_move | Animation | AnimatedMove to upload to the robot and create a dance move from. |
UploadAnimatedMoveResponse¶
Field | Type | Description |
---|---|---|
header | bosdyn.api.ResponseHeader | Common response header. |
status | UploadAnimatedMoveResponse.Status | |
warnings | string | If the uploaded animated move is invalid (will throw a STATUS_ANIMATION_VALIDATION_FAILED), then warning messages describing the failure cases will be populated here to indicate which parts of the animated move failed. Note: there could be some warning messages even when an animation is marked as ok. |
UploadChoreographyRequest¶
Field | Type | Description |
---|---|---|
header | bosdyn.api.RequestHeader | Common request header. |
choreography_sequence | ChoreographySequence | ChoreographySequence to upload and store in memory |
non_strict_parsing | bool | Should we run a sequences that has correctable errors? If true, the service will fix any correctable errors and run the corrected choreography sequence. If false, the service will reject a choreography sequence that has any errors. |
UploadChoreographyResponse¶
Field | Type | Description |
---|---|---|
header | bosdyn.api.ResponseHeader | Common response header. If the dance upload is invalid, the header INVALID request error will be set, which means that the choreography did not respect bounds of the parameters or has other attributes missing or incorrect. |
warnings | string | If the uploaded choreography is invalid (will throw a header InvalidRequest status), then certain warning messages will be populated here to indicate which choreography moves or parameters violated constraints of the robot. |
Animation.ArmPlayback¶
Mode for hand trajectory playback
Name | Number | Description |
---|---|---|
ARM_PLAYBACK_DEFAULT | 0 | Playback as specified. Arm animations specified with joint angles playback in jointspace and arm animations specified as hand poses playback in workspace. |
ARM_PLAYBACK_JOINTSPACE | 1 | Playback in jointspace. Arm animation will be most consistent relative to the body |
ARM_PLAYBACK_WORKSPACE | 2 | Playback in workspace. Hand pose animation will be most consistent relative to the current footprint. Reference frame is animation frame. |
ARM_PLAYBACK_WORKSPACE_DANCE_FRAME | 3 | Playback in workspace with poses relative to the dance frame. hand pose animation will be most consistent relative to a fixed point in the world. |
ChoreographerDisplayInfo.Category¶
Move Category affects the grouping in the choreographer list view, as well as the color it’s displayed with.
Name | Number | Description |
---|---|---|
CATEGORY_UNKNOWN | 0 | |
CATEGORY_BODY | 1 | |
CATEGORY_STEP | 2 | |
CATEGORY_DYNAMIC | 3 | |
CATEGORY_TRANSITION | 4 | |
CATEGORY_KNEEL | 5 | |
CATEGORY_ARM | 6 | |
CATEGORY_ANIMATION | 7 | |
CATEGORY_MPC | 8 | |
CATEGORY_LIGHTS | 9 | |
CATEGORY_ANNOTATIONS | 10 |
ChoreographyCommandResponse.Status¶
Name | Number | Description |
---|---|---|
STATUS_UNKNOWN | 0 | |
STATUS_OK | 1 | |
STATUS_ACCEPTED_WITH_MODIFICATION | 2 | |
STATUS_LEASE_ERROR | 3 | |
STATUS_NO_MATCHING_MOVE | 4 | |
STATUS_INVALID_COMMAND | 5 | |
STATUS_ALREADY_EXPIRED | 6 |
ChoreographyStatusResponse.Status¶
Name | Number | Description |
---|---|---|
STATUS_UNKNOWN | 0 | |
STATUS_DANCING | 1 | |
STATUS_COMPLETED_SEQUENCE | 2 | |
STATUS_PREPPING | 3 | |
STATUS_WAITING_FOR_START_TIME | 4 | |
STATUS_VALIDATING | 5 | |
STATUS_INTERRUPTED | 6 | |
STATUS_FALLEN | 7 | |
STATUS_POWERED_OFF | 8 | |
STATUS_OTHER | 9 |
ClearAllSequenceFilesResponse.Status¶
Name | Number | Description |
---|---|---|
STATUS_UNKNOWN | 0 | Do not use. |
STATUS_OK | 1 | All retained sequences were successfully removed from robot memory |
STATUS_FAILED_TO_DELETE | 2 | Deletion of all retained files failed |
DeleteSequenceResponse.Status¶
Name | Number | Description |
---|---|---|
STATUS_UNKNOWN | 0 | Do not use. |
STATUS_OK | 1 | The sequence was successfully deleted |
STATUS_UNKNOWN_SEQUENCE | 2 | The sequence does not exist |
STATUS_ALREADY_TEMPORARY | 3 | The sequence is already temporary and will be removed at the next reboot. |
STATUS_PERMANENT_SEQUENCE | 4 | Permanent sequences cannot be deleted |
DownloadRobotStateLogRequest.LogType¶
Name | Number | Description |
---|---|---|
LOG_TYPE_UNKNOWN | 0 | Unknown. Do not use. |
LOG_TYPE_MANUAL | 1 | The robot state information recorded from the time of the manual start RPC (StartRecordingState) to either {the time of the manual stop RPC (StopRecordingState), the time of the download logs RPC, or the time of the internal service's buffer filling up}. |
LOG_TYPE_LAST_CHOREOGRAPHY | 2 | The robot will automatically record robot state information for the entire duration of an executing choreography in addition to any manual logging. This log type will download this information for the last completed choreography. |
DownloadRobotStateLogResponse.Status¶
Name | Number | Description |
---|---|---|
STATUS_UNKNOWN | 0 | Status unknown. Do not use. |
STATUS_OK | 1 | The log data downloaded successfully and is complete. |
STATUS_NO_RECORDED_INFORMATION | 2 | Error where there is no robot state information logged in the choreography service. |
STATUS_INCOMPLETE_DATA | 3 | Error where the complete duration of the recorded session caused the service's recording buffer to fill up. When full, the robot will stop recording but preserve whatever was recorded until that point. The robot has an internal maximum recording time of 5 minutes. The data streamed in this response will go from the start time until the time the buffer was filled. |
ExecuteChoreographyResponse.Status¶
Name | Number | Description |
---|---|---|
STATUS_UNKNOWN | 0 | |
STATUS_OK | 1 | |
STATUS_INVALID_UPLOADED_CHOREOGRAPHY | 2 | |
STATUS_ROBOT_COMMAND_ISSUES | 3 | |
STATUS_LEASE_ERROR | 4 |
ModifyChoreographyInfoResponse.Status¶
Name | Number | Description |
---|---|---|
STATUS_UNKNOWN | 0 | Do not use. |
STATUS_OK | 1 | The sequence was successfully modified |
STATUS_UNKNOWN_SEQUENCE | 2 | The sequence does not exist |
STATUS_PERMANENT_SEQUENCE | 3 | Permanent sequences cannot be modified |
STATUS_FAILED_TO_UPDATE | 4 | The changes were made, but the retained sequence file was not updated and changes were reverted |
MoveInfo.TransitionState¶
The state that the robot is in at the start or end of a move.
Name | Number | Description |
---|---|---|
TRANSITION_STATE_UNKNOWN | 0 | Unknown or unset state. |
TRANSITION_STATE_STAND | 1 | The robot is in a normal (standing) state. |
TRANSITION_STATE_KNEEL | 2 | The robot is kneeling down. |
TRANSITION_STATE_SIT | 3 | The robot is sitting. |
TRANSITION_STATE_SPRAWL | 4 | The robot requires a self-right. |
SaveSequenceResponse.Status¶
Name | Number | Description |
---|---|---|
STATUS_UNKNOWN | 0 | Do not use. |
STATUS_OK | 1 | The sequence was successfully saved |
STATUS_UNKNOWN_SEQUENCE | 2 | The requested sequence was not found |
STATUS_PERMANENT_SEQUENCE | 3 | This sequence is already saved in the release |
STATUS_FAILED_TO_SAVE | 4 | We failed to save a file with the sequence information to robot |
SequenceInfo.SavedState¶
Name | Number | Description |
---|---|---|
SAVED_STATE_UNKNOWN | 0 | Status unknown; do not use |
SAVED_STATE_TEMPORARY | 1 | Sequence will be forgotten on reboot |
SAVED_STATE_RETAINED | 2 | A file for this sequence is stored on the robot; the sequence will be loaded to memory each time the robot boots |
SAVED_STATE_PERMANENT | 3 | Sequence was built into the release and can't be deleted |
StartRecordingStateResponse.Status¶
The status for the start recording request.
Name | Number | Description |
---|---|---|
STATUS_UNKNOWN | 0 | Status unknown; do not use. |
STATUS_OK | 1 | The request succeeded and choreography has either started, or continued with an extended duration based on if a session_id was provided. |
STATUS_UNKNOWN_RECORDING_SESSION_ID | 2 | The provided recording_session_id is unknown: it must either be 0 (start a new recording log) or it can match the current recording session id returned by the most recent start recording request. |
STATUS_RECORDING_BUFFER_FULL | 3 | The Choreography Service's internal buffer is filled. It will record for a maximum of 5 minutes. It will stop recording, but save the recorded data until |
UploadAnimatedMoveResponse.Status¶
Name | Number | Description |
---|---|---|
STATUS_UNKNOWN | 0 | Do not use. |
STATUS_OK | 1 | Uploading + parsing the animated move succeeded. |
STATUS_ANIMATION_VALIDATION_FAILED | 2 | The animated move is considered invalid, see the warnings. |
STATUS_PING_RESPONSE | 3 | Treated this message as a ping. Responding to demonstrate connectivity. |
spot/choreography_service.proto¶
ChoreographyService¶
Method Name | Request Type | Response Type | Description |
---|---|---|---|
ListAllMoves | ListAllMovesRequest | ListAllMovesResponse | List the available dance moves and their parameter information. |
ListAllSequences | ListAllSequencesRequest | ListAllSequencesResponse | List the available choreography sequences currently on the robot. |
DeleteSequence | DeleteSequenceRequest | DeleteSequenceResponse | Delete a retained choreography sequence from the collection of user uploaded choreography sequences. |
SaveSequence | SaveSequenceRequest | SaveSequenceResponse | Save a user uploaded choreography sequence to the robots collection of retained choreography sequences. |
ModifyChoreographyInfo | ModifyChoreographyInfoRequest | ModifyChoreographyInfoResponse | Modify the metadata of a choreography sequence. |
ClearAllSequenceFiles | ClearAllSequenceFilesRequest | ClearAllSequenceFilesResponse | Clear all retained choreography sequence files from robot memory. |
UploadChoreography | UploadChoreographyRequest | UploadChoreographyResponse | Upload a dance to the robot. |
UploadAnimatedMove | UploadAnimatedMoveRequest | UploadAnimatedMoveResponse | Upload an animation to the robot. |
ExecuteChoreography | ExecuteChoreographyRequest | ExecuteChoreographyResponse | Execute the uploaded dance. |
StartRecordingState | StartRecordingStateRequest | StartRecordingStateResponse | Manually start (or continue) recording the robot state. |
StopRecordingState | StopRecordingStateRequest | StopRecordingStateResponse | Manually stop recording the robot state. |
DownloadRobotStateLog | DownloadRobotStateLogRequest | DownloadRobotStateLogResponse stream | Download log of the latest recorded robot state information. |
ChoreographyStatus | ChoreographyStatusRequest | ChoreographyStatusResponse | Report the status of a dancing robot. |
ChoreographyCommand | ChoreographyCommandRequest | ChoreographyCommandResponse | Commands intended for individual dance moves that are currently executing. |