CINXE.COM
Orbit API — Spot 4.1.0 documentation
<!DOCTYPE html> <html class="writer-html5" lang="en" > <head> <meta charset="utf-8" /><meta name="generator" content="Docutils 0.18.1: http://docutils.sourceforge.net/" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <title>Orbit API — Spot 4.1.0 documentation</title> <link rel="stylesheet" href="../../../_static/pygments.css" type="text/css" /> <link rel="stylesheet" href="../../../_static/style.css" type="text/css" /> <link rel="shortcut icon" href="../../../_static/bd-favicon.png"/> <link rel="canonical" href="https://dev.bostondynamics.com/docs/concepts/orbit/orbit_api.html" /> <!--[if lt IE 9]> <script src="../../../_static/js/html5shiv.min.js"></script> <![endif]--> <script src="../../../_static/jquery.js"></script> <script src="../../../_static/_sphinx_javascript_frameworks_compat.js"></script> <script data-url_root="../../../" id="documentation_options" src="../../../_static/documentation_options.js"></script> <script src="../../../_static/doctools.js"></script> <script src="../../../_static/sphinx_highlight.js"></script> <script src="../../../_static/js/theme.js"></script> <link rel="index" title="Index" href="../../../genindex.html" /> <link rel="search" title="Search" href="../../../search.html" /> <link rel="next" title="Networking" href="../networking.html" /> <link rel="prev" title="About Orbit (formerly Scout)" href="about_orbit.html" /> <!-- Global site tag (gtag.js) - Google Analytics --> <script async src="https://www.googletagmanager.com/gtag/js?id=UA-7602095-5"></script> <script> window.dataLayer = window.dataLayer || []; function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'UA-7602095-5'); </script>X-Content-Type-Options: nosniff<script type="text/javascript" src="//script.crazyegg.com/pages/scripts/0096/9626.js" async="async"></script></head> <body class="wy-body-for-nav"> <div class="wy-grid-for-nav"> <nav data-toggle="wy-nav-shift" class="wy-nav-side"> <div class="wy-side-scroll"> <div class="wy-side-nav-search" > <a href='/readme'> <img src="../../../_static/bd-official-white.png" class="logo" alt="Logo"/> </a> <div class="version"> 4.1.0 </div> <div role="search"> <form id="rtd-search-form" class="wy-form" action="../../../search.html" method="get"> <input type="text" name="q" placeholder="Search docs" aria-label="Search docs" /> <input type="hidden" name="check_keywords" value="yes" /> <input type="hidden" name="area" value="default" /> </form> </div> </div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu"> <ul class="current"> <li class="toctree-l1 current"><a class='reference internal' href='/docs/concepts/readme'>Concepts</a><ul class="current"> <li class="toctree-l2"><a class='reference internal' href='/docs/concepts/about_spot'>About Spot</a></li> <li class="toctree-l2"><a class='reference internal' href='/docs/concepts/orbit/about_orbit'>About Orbit (formerly Scout)</a></li> <li class="toctree-l2 current"><a class="current reference internal" href="#">Orbit API</a></li> <li class="toctree-l2"><a class='reference internal' href='/docs/concepts/networking'>Networking</a></li> <li class="toctree-l2"><a class='reference internal' href='/docs/concepts/base_services'>Base services</a></li> <li class="toctree-l2"><a class='reference internal' href='/docs/concepts/geometry_and_frames'>Geometry and Frames</a></li> <li class="toctree-l2"><a class='reference internal' href='/docs/concepts/robot_services'>Robot services</a></li> <li class="toctree-l2"><a class='reference internal' href='/docs/concepts/estop_service'>E-Stop</a></li> <li class="toctree-l2"><a class='reference internal' href='/docs/concepts/keepalive_service'>KeepAlive (BETA)</a></li> <li class="toctree-l2"><a class='reference internal' href='/docs/concepts/lease_service'>Lease</a></li> <li class="toctree-l2"><a class='reference internal' href='/docs/concepts/developing_api_services'>Developing API Services</a></li> <li class="toctree-l2"><a class='reference internal' href='/docs/concepts/service_customization'>Service Customization</a></li> <li class="toctree-l2"><a class='reference internal' href='/docs/concepts/faults'>Faults</a></li> <li class="toctree-l2"><a class='reference internal' href='/docs/concepts/autonomy/readme'>Autonomy services</a><ul> <li class="toctree-l3"><a class='reference internal' href='/docs/concepts/autonomy/graphnav_tech_summary'>Autonomy Technical Summary</a></li> <li class="toctree-l3"><a class='reference internal' href='/docs/concepts/autonomy/autonomous_navigation_code_examples'>Autonomous navigation code examples</a></li> <li class="toctree-l3"><a class='reference internal' href='/docs/concepts/autonomy/components_of_autonomous_navigation'>Components of autonomous navigation</a></li> <li class="toctree-l3"><a class='reference internal' href='/docs/concepts/autonomy/docking'>Docking</a></li> <li class="toctree-l3"><a class='reference internal' href='/docs/concepts/autonomy/typical_autonomous_navigation_use_case'>Typical autonomous navigation use case</a></li> <li class="toctree-l3"><a class='reference internal' href='/docs/concepts/autonomy/autonomous_navigation_services'>Autonomous navigation services</a></li> <li class="toctree-l3"><a class='reference internal' href='/docs/concepts/autonomy/graphnav_service'>GraphNav service</a></li> <li class="toctree-l3"><a class='reference internal' href='/docs/concepts/autonomy/graphnav_map_structure'>GraphNav map structure</a></li> <li class="toctree-l3"><a class='reference internal' href='/docs/concepts/autonomy/graphnav_area_callbacks'>GraphNav area callbacks</a></li> <li class="toctree-l3"><a class='reference internal' href='/docs/concepts/autonomy/initialization'>Initialization</a></li> <li class="toctree-l3"><a class='reference internal' href='/docs/concepts/autonomy/localization'>Localization</a></li> <li class="toctree-l3"><a class='reference internal' href='/docs/concepts/autonomy/graphnav_and_robot_locomotion'>GraphNav and robot locomotion</a></li> <li class="toctree-l3"><a class='reference internal' href='/docs/concepts/autonomy/missions_service'>Missions service</a></li> <li class="toctree-l3"><a class='reference internal' href='/docs/concepts/autonomy/autowalk_service'>Autowalk service</a></li> <li class="toctree-l3"><a class='reference internal' href='/docs/concepts/network_compute_bridge'>Network compute bridge</a></li> <li class="toctree-l3"><a class='reference internal' href='/docs/concepts/autonomy/auto_return'>AutoReturn service</a></li> <li class="toctree-l3"><a class='reference internal' href='/docs/concepts/autonomy/directed_exploration'>Directed Exploration</a></li> <li class="toctree-l3"><a class='reference internal' href='/docs/concepts/autonomy/gps'>GPS</a></li> </ul> </li> <li class="toctree-l2"><a class='reference internal' href='/docs/concepts/choreography/readme'>Choreography</a><ul> <li class="toctree-l3"><a class='reference internal' href='/docs/concepts/choreography/choreography_service'>Choreography Service</a></li> <li class="toctree-l3"><a class='reference internal' href='/docs/concepts/choreography/move_reference'>Move Reference Guide</a></li> <li class="toctree-l3"><a class='reference internal' href='/docs/concepts/choreography/custom_gait'>CustomGait Reference</a></li> <li class="toctree-l3"><a class='reference internal' href='/docs/concepts/choreography/choreographer_setup'>Choreographer Setup</a></li> <li class="toctree-l3"><a class='reference internal' href='/docs/concepts/choreography/choreographer'>Choreographer Overview</a></li> <li class="toctree-l3"><a class='reference internal' href='/docs/concepts/choreography/robot_controls_in_choreographer'>Robot Connections in Choreographer</a></li> <li class="toctree-l3"><a class='reference internal' href='/docs/concepts/choreography/animations_in_choreographer'>Animations in Choreography</a></li> <li class="toctree-l3"><a class='reference internal' href='/docs/concepts/choreography/animation_file_specification'>Animation File Format</a></li> <li class="toctree-l3"><a class='reference internal' href='/docs/concepts/choreography/choreography_in_tablet'>Tablet Choreography Mode</a></li> <li class="toctree-l3"><a class='reference internal' href='/docs/concepts/choreography/choreography_in_autowalk'>Choreography Actions in Autowalk</a></li> </ul> </li> <li class="toctree-l2"><a class='reference internal' href='/docs/concepts/joint_control/readme'>Joint Control API</a><ul> <li class="toctree-l3"><a class='reference internal' href='/docs/concepts/joint_control/supplemental_data'>Supplemental Robot Information</a><ul> <li class="toctree-l4"><a class='reference internal' href='/docs/concepts/joint_control/knee_torque_limits'>Knee Torque Limits</a></li> </ul> </li> </ul> </li> <li class="toctree-l2"><a class='reference internal' href='/docs/concepts/arm/readme'>Spot Arm</a><ul> <li class="toctree-l3"><a class='reference internal' href='/docs/concepts/arm/arm_specification'>Arm and Gripper Specification</a></li> <li class="toctree-l3"><a class='reference internal' href='/docs/concepts/arm/arm_concepts'>Concepts</a></li> <li class="toctree-l3"><a class='reference internal' href='/docs/concepts/arm/arm_services'>Services</a></li> </ul> </li> <li class="toctree-l2"><a class='reference internal' href='/docs/concepts/data'>Spot Data</a><ul> <li class="toctree-l3"><a class='reference internal' href='/docs/concepts/data_acquisition_overview'>Data Acquisition Overview</a></li> <li class="toctree-l3"><a class='reference internal' href='/docs/concepts/data_acquisition_output'>Data Acquisition Output</a></li> <li class="toctree-l3"><a class='reference internal' href='/docs/concepts/writing_services_for_data_acquisition'>Integrate Payloads with the API</a></li> <li class="toctree-l3"><a class='reference internal' href='/docs/concepts/data_buffer_overview'>Data Buffer Overview</a></li> <li class="toctree-l3"><a class='reference internal' href='/docs/concepts/bddf'>BDDF File Format</a></li> <li class="toctree-l3"><a class='reference internal' href='/docs/concepts/data_acquisition_thermal_raw'>Thermal Raw Data Format</a></li> </ul> </li> </ul> </li> <li class="toctree-l1"><a class='reference internal' href='/docs/python/readme'>Python</a><ul> <li class="toctree-l2"><a class='reference internal' href='/docs/python/quickstart'>Quickstart</a></li> <li class="toctree-l2"><a class='reference internal' href='/docs/python/understanding_spot_programming'>Understanding Spot Programming</a></li> <li class="toctree-l2"><a class='reference internal' href='/python/examples/readme'>Examples</a><ul> <li class="toctree-l3"><a class='reference internal' href='/python/examples/docs/basic_service_examples'>Basic Service Examples</a><ul> <li class="toctree-l4"><a class='reference internal' href='/python/examples/hello_spot/readme'>Hello Spot</a></li> <li class="toctree-l4"><a class='reference internal' href='/python/examples/directory/readme'>Directory</a></li> <li class="toctree-l4"><a class='reference internal' href='/python/examples/get_robot_state/readme'>Get Robot State</a></li> <li class="toctree-l4"><a class='reference internal' href='/python/examples/get_robot_state_async/readme'>Get Robot State Async</a></li> <li class="toctree-l4"><a class='reference internal' href='/python/examples/get_image/readme'>Get Image</a></li> <li class="toctree-l4"><a class='reference internal' href='/python/examples/get_world_objects/readme'>Get World Objects</a></li> <li class="toctree-l4"><a class='reference internal' href='/python/examples/get_mission_state/readme'>Get Mission State</a></li> <li class="toctree-l4"><a class='reference internal' href='/python/examples/estop/readme'>E-Stop</a></li> <li class="toctree-l4"><a class='reference internal' href='/python/examples/time_sync/readme'>Time Sync</a></li> <li class="toctree-l4"><a class='reference internal' href='/python/examples/comms_test/readme'>Comms Test</a></li> <li class="toctree-l4"><a class='reference internal' href='/python/examples/disable_ir_emission/readme'>IR Enable/Disable</a></li> <li class="toctree-l4"><a class='reference internal' href='/python/examples/reset_safety_stop/readme'>Reset Safety Stop</a></li> </ul> </li> <li class="toctree-l3"><a class='reference internal' href='/python/examples/docs/robot_behavior_examples'>Robot Behavior and Commands Examples</a><ul> <li class="toctree-l4"><a class='reference internal' href='/python/examples/stance/readme'>Stance</a></li> <li class="toctree-l4"><a class='reference internal' href='/python/examples/frame_trajectory_command/readme'>Frame Trajectory</a></li> <li class="toctree-l4"><a class='reference internal' href='/python/examples/spot_light/readme'>Spot Light</a></li> <li class="toctree-l4"><a class='reference internal' href='/python/examples/upload_choreographed_sequence/readme'>Upload Choreographed Sequence</a></li> <li class="toctree-l4"><a class='reference internal' href='/python/examples/xbox_controller/readme'>Xbox Controller</a></li> <li class="toctree-l4"><a class='reference internal' href='/python/examples/wasd/readme'>WASD</a></li> <li class="toctree-l4"><a class='reference internal' href='/python/examples/docking/readme'>Docking</a></li> <li class="toctree-l4"><a class='reference internal' href='/python/examples/animation_recorder/readme'>Animation Recorder</a></li> <li class="toctree-l4"><a class='reference internal' href='/python/examples/auto_return/readme'>Auto Return</a></li> <li class="toctree-l4"><a class='reference internal' href='/python/examples/fan_command/readme'>Fan Commands</a></li> <li class="toctree-l4"><a class='reference internal' href='/python/examples/arm_wasd/readme'>ARM WASD</a></li> </ul> </li> <li class="toctree-l3"><a class='reference internal' href='/python/examples/docs/arm_examples'>Arm Command Examples</a><ul> <li class="toctree-l4"><a class='reference internal' href='/python/examples/arm_simple/readme'>Simple Arm Motion</a></li> <li class="toctree-l4"><a class='reference internal' href='/python/examples/arm_stow_unstow/readme'>Stow/unstow Arm</a></li> <li class="toctree-l4"><a class='reference internal' href='/python/examples/arm_freeze/readme'>Arm Freeze</a></li> <li class="toctree-l4"><a class='reference internal' href='/python/examples/arm_and_mobility_command/readme'>Arm and Mobility Command</a></li> <li class="toctree-l4"><a class='reference internal' href='/python/examples/arm_with_body_follow/readme'>Arm Command with Body Following</a></li> <li class="toctree-l4"><a class='reference internal' href='/python/examples/arm_constrained_manipulation/readme'>Arm Constrained Manipulation</a></li> <li class="toctree-l4"><a class='reference internal' href='/python/examples/arm_trajectory/readme'>Arm Trajectory</a></li> <li class="toctree-l4"><a class='reference internal' href='/python/examples/arm_trajectory/readme#long-trajectory'>Long Trajectory</a></li> <li class="toctree-l4"><a class='reference internal' href='/python/examples/arm_joint_move/readme'>Arm Joint Move Command</a></li> <li class="toctree-l4"><a class='reference internal' href='/python/examples/arm_force_control/readme'>Arm Force Control Command</a></li> <li class="toctree-l4"><a class='reference internal' href='/python/examples/arm_grasp/readme'>Arm Grasp Command</a></li> <li class="toctree-l4"><a class='reference internal' href='/python/examples/arm_grasp_carry_overrides/readme'>Arm Grasp and Carry Overrides</a></li> <li class="toctree-l4"><a class='reference internal' href='/python/examples/arm_gaze/readme'>Arm Gaze Command</a></li> <li class="toctree-l4"><a class='reference internal' href='/python/examples/arm_surface_contact/readme'>Arm Command with Surface Contact</a></li> <li class="toctree-l4"><a class='reference internal' href='/python/examples/arm_door/readme'>Arm Door Opening Command</a></li> <li class="toctree-l4"><a class='reference internal' href='/python/examples/arm_walk_to_object/readme'>Walk to And Pick Up Object</a></li> <li class="toctree-l4"><a class='reference internal' href='/python/examples/arm_gcode/readme'>Writing Gcode</a></li> <li class="toctree-l4"><a class='reference internal' href='/python/examples/gripper_camera_params/readme'>Gripper Camera Parameters</a></li> <li class="toctree-l4"><a class='reference internal' href='/python/examples/arm_impedance_control/readme'>Arm Impedance Control</a></li> <li class="toctree-l4"><a class='reference internal' href='/python/examples/inverse_kinematics/readme'>Inverse Kinematics</a></li> <li class="toctree-l4"><a class='reference internal' href='/python/examples/arm_wasd/readme'>Arm WASD</a></li> <li class="toctree-l4"><a class='reference internal' href='/python/examples/joint_control/readme'>Wiggle Arm</a></li> </ul> </li> <li class="toctree-l3"><a class='reference internal' href='/python/examples/docs/payloads_examples'>Payloads and Registration Examples</a><ul> <li class="toctree-l4"><a class='reference internal' href='/python/examples/payloads/readme'>Payloads</a></li> <li class="toctree-l4"><a class='reference internal' href='/python/examples/self_registration/readme'>Self Registration</a></li> <li class="toctree-l4"><a class='reference internal' href='/python/examples/service_faults/readme'>Faults</a></li> <li class="toctree-l4"><a class='reference internal' href='/python/examples/velodyne_client/readme'>Velodyne</a></li> <li class="toctree-l4"><a class='reference internal' href='/python/examples/core_io_gpio/readme'>CORE I/O GPIO</a></li> <li class="toctree-l4"><a class='reference internal' href='/python/examples/metrics_over_coreio/readme'>Overview</a></li> <li class="toctree-l4"><a class='reference internal' href='/python/examples/metrics_over_coreio/readme#usage'>Usage</a></li> <li class="toctree-l4"><a class='reference internal' href='/python/examples/metrics_over_coreio/readme#components'>Components</a></li> <li class="toctree-l4"><a class='reference internal' href='/python/examples/metrics_over_coreio/readme#recommended-debugging'>Recommended debugging</a></li> <li class="toctree-l4"><a class='reference internal' href='/python/examples/extensions/readme'>Extensions</a></li> </ul> </li> <li class="toctree-l3"><a class='reference internal' href='/python/examples/docs/perception_world_objects_examples'>Perception and World Objects Examples</a><ul> <li class="toctree-l4"><a class='reference internal' href='/python/examples/get_image/readme'>Get Image</a></li> <li class="toctree-l4"><a class='reference internal' href='/python/examples/get_world_objects/readme'>Get World Objects</a></li> <li class="toctree-l4"><a class='reference internal' href='/python/examples/world_object_with_image_coordinates/readme'>World Object With Image Coordinates</a></li> <li class="toctree-l4"><a class='reference internal' href='/python/examples/world_object_mutations/readme'>World Object Mutations</a></li> <li class="toctree-l4"><a class='reference internal' href='/python/examples/visualizer/readme'>Visualizer</a></li> <li class="toctree-l4"><a class='reference internal' href='/python/examples/ricoh_theta/readme'>Ricoh Theta</a></li> <li class="toctree-l4"><a class='reference internal' href='/python/examples/gripper_camera_params/readme'>Gripper Camera Parameters</a></li> <li class="toctree-l4"><a class='reference internal' href='/python/examples/spot_cam/readme'>Spot CAM Services</a></li> <li class="toctree-l4"><a class='reference internal' href='/python/examples/spot_cam/readme#spot-cam-video-core-io-extension-example'>Spot Cam Video Core IO Extension Example</a></li> <li class="toctree-l4"><a class='reference internal' href='/python/examples/stitch_front_images/readme'>Stitch Front Images</a></li> <li class="toctree-l4"><a class='reference internal' href='/python/examples/get_depth_plus_visual_image/readme'>Project Depth Data on Visual Images</a></li> <li class="toctree-l4"><a class='reference internal' href='/python/examples/service_customization/custom_parameter_image_server/readme'>Custom Parameter Image Server</a></li> <li class="toctree-l4"><a class='reference internal' href='/python/examples/fiducial_follow/readme'>Fiducial Follow</a></li> <li class="toctree-l4"><a class='reference internal' href='/python/examples/spot_tensorflow_detector/readme'>Tensorflow Detector</a></li> <li class="toctree-l4"><a class='reference internal' href='/python/examples/service_customization/custom_parameter_ncb_worker/readme'>Custom Parameter Tensorflow Detector</a></li> <li class="toctree-l4"><a class='reference internal' href='/python/examples/network_compute_bridge/readme'>Machine Learning with the Network Compute Bridge</a></li> <li class="toctree-l4"><a class='reference internal' href='/python/examples/network_compute_bridge/fire_extinguisher_server/readme'>Fire Extinguisher Detector with the Network Compute Bridge</a></li> <li class="toctree-l4"><a class='reference internal' href='/python/examples/ray_cast/readme'>Ray Cast</a></li> <li class="toctree-l4"><a class='reference internal' href='/python/examples/user_nogo_regions/readme'>No-Go Regions</a></li> <li class="toctree-l4"><a class='reference internal' href='/python/examples/gps_service/readme'>GPS</a></li> </ul> </li> <li class="toctree-l3"><a class='reference internal' href='/python/examples/docs/logging_examples'>Logging Examples</a><ul> <li class="toctree-l4"><a class='reference internal' href='/python/examples/bddf_download/readme'>BDDF Download</a></li> <li class="toctree-l4"><a class='reference internal' href='/python/examples/data_buffer/readme'>Data Buffer</a></li> <li class="toctree-l4"><a class='reference internal' href='/python/examples/data_service/readme'>Data Service</a></li> <li class="toctree-l4"><a class='reference internal' href='/python/examples/logging/readme'>Logging</a></li> <li class="toctree-l4"><a class='reference internal' href='/python/examples/log_status/readme'>Log Status</a></li> </ul> </li> <li class="toctree-l3"><a class='reference internal' href='/python/examples/docs/data_acquisition_examples'>Data Acquisition Examples</a><ul> <li class="toctree-l4"><a class='reference internal' href='/python/examples/data_acquisition_service/readme'>Data Acquisition Service</a><ul> <li class="toctree-l5"><a class='reference internal' href='/python/examples/data_acquisition_service/signals_coreio_modem_plugin/readme'>Modem Signals</a></li> </ul> </li> <li class="toctree-l4"><a class='reference internal' href='/python/examples/service_faults/readme'>Faults</a></li> <li class="toctree-l4"><a class='reference internal' href='/python/examples/ricoh_theta/readme'>Ricoh Theta</a></li> <li class="toctree-l4"><a class='reference internal' href='/python/examples/service_customization/custom_parameter_image_server/readme'>Custom Parameter Image Service</a></li> <li class="toctree-l4"><a class='reference internal' href='/python/examples/service_customization/custom_parameters_data_acquisition/readme'>Custom Parameter Data Acquisition Plugin</a></li> <li class="toctree-l4"><a class='reference internal' href='/python/examples/get_image/readme'>Test Image Service Implementation with Get Image</a></li> <li class="toctree-l4"><a class='reference internal' href='/python/examples/post_docking_callbacks/readme'>Post Docking Callbacks</a></li> <li class="toctree-l4"><a class='reference internal' href='/python/examples/cloud_upload/readme'>Cloud Upload</a></li> <li class="toctree-l4"><a class='reference internal' href='/python/examples/comms_mapping/readme'>Comms image service</a></li> <li class="toctree-l4"><a class='reference internal' href='/python/examples/comms_mapping/readme#how-to-use'>How to use</a></li> <li class="toctree-l4"><a class='reference internal' href='/python/examples/data_acquisition_service/signals_coreio_modem_plugin/readme'>CoreIO Modem Signals Plugin</a></li> <li class="toctree-l4"><a class='reference internal' href='/python/examples/tester_programs/readme'>Tester Programs</a></li> </ul> </li> <li class="toctree-l3"><a class='reference internal' href='/python/examples/docs/autonomy_and_missions_examples'>Autonomy and Missions Examples</a><ul> <li class="toctree-l4"><a class='reference internal' href='/python/examples/graph_nav_anchoring_optimization/readme'>Graph Nav Anchoring Optimization</a></li> <li class="toctree-l4"><a class='reference internal' href='/python/examples/graph_nav_command_line/readme'>GraphNav and Recording Service Command Line Interfaces</a></li> <li class="toctree-l4"><a class='reference internal' href='/python/examples/graph_nav_command_line/readme#example-programs'>Example Programs</a></li> <li class="toctree-l4"><a class='reference internal' href='/python/examples/graph_nav_extract_point_cloud/readme'>Graph Nav Extract Point Cloud</a></li> <li class="toctree-l4"><a class='reference internal' href='/python/examples/graph_nav_view_map/readme'>Graph Nav View Map</a></li> <li class="toctree-l4"><a class='reference internal' href='/python/examples/graph_nav_view_gps/readme'>Graph Nav View GPS Data</a></li> <li class="toctree-l4"><a class='reference internal' href='/python/examples/get_mission_state/readme'>Get Mission State</a></li> <li class="toctree-l4"><a class='reference internal' href='/python/examples/remote_mission_service/readme'>Remote Mission Service</a></li> <li class="toctree-l4"><a class='reference internal' href='/python/examples/mission_question_answerer/readme'>Mission Question Answerer</a></li> <li class="toctree-l4"><a class='reference internal' href='/python/examples/mission_recorder/readme'>Mission Recorder</a></li> <li class="toctree-l4"><a class='reference internal' href='/python/examples/replay_mission/readme'>Replay Mission</a></li> <li class="toctree-l4"><a class='reference internal' href='/python/examples/post_docking_callbacks/readme'>Post Docking Callbacks</a></li> <li class="toctree-l4"><a class='reference internal' href='/python/examples/area_callback/readme'>Area Callbacks</a></li> <li class="toctree-l4"><a class='reference internal' href='/python/examples/edit_autowalk/readme'>Edit Autowalk</a></li> <li class="toctree-l4"><a class='reference internal' href='/python/examples/record_autowalk/readme'>Record Autowalk</a></li> <li class="toctree-l4"><a class='reference internal' href='/python/examples/extract_images_from_walk/readme'>Extract Images from Autowalk</a></li> <li class="toctree-l4"><a class='reference internal' href='/python/examples/network_request_callback/readme'>Network Request Callback</a></li> <li class="toctree-l4"><a class='reference internal' href='/python/examples/network_request_callback/readme#id1'>Network Request Callback</a></li> </ul> </li> <li class="toctree-l3"><a class='reference internal' href='/python/examples/docs/joint_control_examples'>Joint Control API Examples</a></li> <li class="toctree-l3"><a class='reference internal' href='/python/examples/docs/orbit'>Orbit</a><ul> <li class="toctree-l4"><a class='reference internal' href='/python/examples/orbit/hello_orbit/readme'>Hello Orbit</a></li> <li class="toctree-l4"><a class='reference internal' href='/python/examples/orbit/export_run_archives/readme'>Export Run Archives</a></li> <li class="toctree-l4"><a class='reference internal' href='/python/examples/orbit/export_site_walk_archives/readme'>Export Sitewalk Archives</a></li> <li class="toctree-l4"><a class='reference internal' href='/python/examples/orbit/anomalies/readme'>Anomalies</a></li> <li class="toctree-l4"><a class='reference internal' href='/python/examples/orbit/schedule_mission/readme'>Schedule Mission</a></li> <li class="toctree-l4"><a class='reference internal' href='/python/examples/orbit/runs_response/readme'>Runs Response</a></li> <li class="toctree-l4"><a class='reference internal' href='/python/examples/orbit/send_robot_back_to_dock/readme'>Return to Dock</a></li> <li class="toctree-l4"><a class='reference internal' href='/python/examples/orbit/toggle_mission_based_on_weather/readme'>Mission Toggle</a></li> <li class="toctree-l4"><a class='reference internal' href='/python/examples/orbit/webhook/readme'>Webhook</a></li> <li class="toctree-l4"><a class='reference internal' href='/python/examples/orbit/backups/readme'>Backups</a></li> <li class="toctree-l4"><a class='reference internal' href='/python/examples/orbit/webhook_integration/readme'>Webhook Integrations</a></li> <li class="toctree-l4"><a class='reference internal' href='/python/examples/orbit/webhook_integration/readme#example-overview'>Example Overview</a></li> </ul> </li> </ul> </li> <li class="toctree-l2"><a class='reference internal' href='/python/readme'>Python Reference Guide</a><ul> <li class="toctree-l3"><a class='reference internal' href='/python/bosdyn-client/src/bosdyn/client/readme'>Client</a><ul> <li class="toctree-l4"><a class='reference internal' href='/python/bosdyn-client/src/bosdyn/client/area_callback'>Area Callback</a></li> <li class="toctree-l4"><a class='reference internal' href='/python/bosdyn-client/src/bosdyn/client/area_callback_region_handler_base'>Area Callback Region Handler</a></li> <li class="toctree-l4"><a class='reference internal' href='/python/bosdyn-client/src/bosdyn/client/area_callback_service_runner'>Area Callback Service Runner</a></li> <li class="toctree-l4"><a class='reference internal' href='/python/bosdyn-client/src/bosdyn/client/area_callback_service_servicer'>Area Callback Servicer</a></li> <li class="toctree-l4"><a class='reference internal' href='/python/bosdyn-client/src/bosdyn/client/area_callback_service_utils'>Area Callback Service Utils</a></li> <li class="toctree-l4"><a class='reference internal' href='/python/bosdyn-client/src/bosdyn/client/arm_surface_contact'>Arm Surface Contact</a></li> <li class="toctree-l4"><a class='reference internal' href='/python/bosdyn-client/src/bosdyn/client/async_tasks'>Async Tasks</a></li> <li class="toctree-l4"><a class='reference internal' href='/python/bosdyn-client/src/bosdyn/client/auth'>Auth</a></li> <li class="toctree-l4"><a class='reference internal' href='/python/bosdyn-client/src/bosdyn/client/auto_return'>Auto Return</a></li> <li class="toctree-l4"><a class='reference internal' href='/python/bosdyn-client/src/bosdyn/client/autowalk'>Autowalk</a></li> <li class="toctree-l4"><a class='reference internal' href='/python/bosdyn-client/src/bosdyn/client/bddf'>BDDF</a></li> <li class="toctree-l4"><a class='reference internal' href='/python/bosdyn-client/src/bosdyn/client/bddf_download'>BDDF Download</a></li> <li class="toctree-l4"><a class='reference internal' href='/python/bosdyn-client/src/bosdyn/client/channel'>Channel</a></li> <li class="toctree-l4"><a class='reference internal' href='/python/bosdyn-client/src/bosdyn/client/command_line'>Command</a></li> <li class="toctree-l4"><a class='reference internal' href='/python/bosdyn-client/src/bosdyn/client/common'>Common</a></li> <li class="toctree-l4"><a class='reference internal' href='/python/bosdyn-client/src/bosdyn/client/data_acquisition'>Data Acquisition</a></li> <li class="toctree-l4"><a class='reference internal' href='/python/bosdyn-client/src/bosdyn/client/data_acquisition_helpers'>Data Acquisition Helpers</a></li> <li class="toctree-l4"><a class='reference internal' href='/python/bosdyn-client/src/bosdyn/client/data_acquisition_plugin'>Data Acquisition Plugin</a></li> <li class="toctree-l4"><a class='reference internal' href='/python/bosdyn-client/src/bosdyn/client/data_acquisition_plugin_service'>Data Acquisition Plugin Service</a></li> <li class="toctree-l4"><a class='reference internal' href='/python/bosdyn-client/src/bosdyn/client/data_acquisition_store'>Data Acquisition Store</a></li> <li class="toctree-l4"><a class='reference internal' href='/python/bosdyn-client/src/bosdyn/client/data_buffer'>Data Buffer</a></li> <li class="toctree-l4"><a class='reference internal' href='/python/bosdyn-client/src/bosdyn/client/data_chunk'>Data Chunk</a></li> <li class="toctree-l4"><a class='reference internal' href='/python/bosdyn-client/src/bosdyn/client/data_service'>Data Service</a></li> <li class="toctree-l4"><a class='reference internal' href='/python/bosdyn-client/src/bosdyn/client/directory_registration'>Directory Registration</a></li> <li class="toctree-l4"><a class='reference internal' href='/python/bosdyn-client/src/bosdyn/client/directory'>Directory</a></li> <li class="toctree-l4"><a class='reference internal' href='/python/bosdyn-client/src/bosdyn/client/docking'>Docking</a></li> <li class="toctree-l4"><a class='reference internal' href='/python/bosdyn-client/src/bosdyn/client/door'>Door</a></li> <li class="toctree-l4"><a class='reference internal' href='/python/bosdyn-client/src/bosdyn/client/estop'>E-Stop</a></li> <li class="toctree-l4"><a class='reference internal' href='/python/bosdyn-client/src/bosdyn/client/exceptions'>Exceptions</a></li> <li class="toctree-l4"><a class='reference internal' href='/python/bosdyn-client/src/bosdyn/client/fault'>Fault</a></li> <li class="toctree-l4"><a class='reference internal' href='/python/bosdyn-client/src/bosdyn/client/frame_helpers'>Frame Helpers</a></li> <li class="toctree-l4"><a class='reference internal' href='/python/bosdyn-client/src/bosdyn/client/graph_nav'>Graph Nav</a></li> <li class="toctree-l4"><a class='reference internal' href='/python/bosdyn-client/src/bosdyn/client/gripper_camera_param'>Gripper Camera Params</a></li> <li class="toctree-l4"><a class='reference internal' href='/python/bosdyn-client/src/bosdyn/client/gps/readme'>GPS</a><ul> <li class="toctree-l5"><a class='reference internal' href='/python/bosdyn-client/src/bosdyn/client/gps/aggregator_client'>Aggregator Client</a></li> <li class="toctree-l5"><a class='reference internal' href='/python/bosdyn-client/src/bosdyn/client/gps/gps_listener'>GPS Listener</a></li> <li class="toctree-l5"><a class='reference internal' href='/python/bosdyn-client/src/bosdyn/client/gps/nmeaparser'>NMEA Parser</a></li> <li class="toctree-l5"><a class='reference internal' href='/python/bosdyn-client/src/bosdyn/client/gps/registration_client'>Registration Client</a></li> </ul> </li> <li class="toctree-l4"><a class='reference internal' href='/python/bosdyn-client/src/bosdyn/client/image'>Image</a></li> <li class="toctree-l4"><a class='reference internal' href='/python/bosdyn-client/src/bosdyn/client/image_service_helpers'>Image Service Helpers</a></li> <li class="toctree-l4"><a class='reference internal' href='/python/bosdyn-client/src/bosdyn/client/inverse_kinematics'>Inverse Kinematics</a></li> <li class="toctree-l4"><a class='reference internal' href='/python/bosdyn-client/src/bosdyn/client/ir_enable_disable'>IR Enable/Disable</a></li> <li class="toctree-l4"><a class='reference internal' href='/python/bosdyn-client/src/bosdyn/client/keepalive'>Keep Alive</a></li> <li class="toctree-l4"><a class='reference internal' href='/python/bosdyn-client/src/bosdyn/client/lease'>Lease</a></li> <li class="toctree-l4"><a class='reference internal' href='/python/bosdyn-client/src/bosdyn/client/lease_resource_hierarchy'>Lease Resource Hierarchy</a></li> <li class="toctree-l4"><a class='reference internal' href='/python/bosdyn-client/src/bosdyn/client/lease_validator'>Lease Validator</a></li> <li class="toctree-l4"><a class='reference internal' href='/python/bosdyn-client/src/bosdyn/client/license'>License</a></li> <li class="toctree-l4"><a class='reference internal' href='/python/bosdyn-client/src/bosdyn/client/local_grid'>Local Grid</a></li> <li class="toctree-l4"><a class='reference internal' href='/python/bosdyn-client/src/bosdyn/client/log_status'>Log Status</a></li> <li class="toctree-l4"><a class='reference internal' href='/python/bosdyn-client/src/bosdyn/client/math_helpers'>Math Helpers</a></li> <li class="toctree-l4"><a class='reference internal' href='/python/bosdyn-client/src/bosdyn/client/manipulation_api_client'>Manipulation API</a></li> <li class="toctree-l4"><a class='reference internal' href='/python/bosdyn-client/src/bosdyn/client/map_processing'>Map Processing</a></li> <li class="toctree-l4"><a class='reference internal' href='/python/bosdyn-client/src/bosdyn/client/metrics_logging'>Metrics Logging</a></li> <li class="toctree-l4"><a class='reference internal' href='/python/bosdyn-client/src/bosdyn/client/network_compute_bridge_client'>Network Compute Bridge</a></li> <li class="toctree-l4"><a class='reference internal' href='/python/bosdyn-client/src/bosdyn/client/payload_registration'>Payload Registration</a></li> <li class="toctree-l4"><a class='reference internal' href='/python/bosdyn-client/src/bosdyn/client/payload'>Payload</a></li> <li class="toctree-l4"><a class='reference internal' href='/python/bosdyn-client/src/bosdyn/client/point_cloud'>Point Cloud</a></li> <li class="toctree-l4"><a class='reference internal' href='/python/bosdyn-client/src/bosdyn/client/power'>Power</a></li> <li class="toctree-l4"><a class='reference internal' href='/python/bosdyn-client/src/bosdyn/client/processors'>Processors</a></li> <li class="toctree-l4"><a class='reference internal' href='/python/bosdyn-client/src/bosdyn/client/ray_cast'>Ray casting</a></li> <li class="toctree-l4"><a class='reference internal' href='/python/bosdyn-client/src/bosdyn/client/recording'>Recording</a></li> <li class="toctree-l4"><a class='reference internal' href='/python/bosdyn-client/src/bosdyn/client/robot_command'>Robot Command</a></li> <li class="toctree-l4"><a class='reference internal' href='/python/bosdyn-client/src/bosdyn/client/robot_id'>Robot ID</a></li> <li class="toctree-l4"><a class='reference internal' href='/python/bosdyn-client/src/bosdyn/client/robot'>Robot</a></li> <li class="toctree-l4"><a class='reference internal' href='/python/bosdyn-client/src/bosdyn/client/robot_state'>Robot State</a></li> <li class="toctree-l4"><a class='reference internal' href='/python/bosdyn-client/src/bosdyn/client/sdk'>SDK</a></li> <li class="toctree-l4"><a class='reference internal' href='/python/bosdyn-client/src/bosdyn/client/server_util'>Server Util</a></li> <li class="toctree-l4"><a class='reference internal' href='/python/bosdyn-client/src/bosdyn/client/service_customization_helpers'>Service Customization Helpers</a></li> <li class="toctree-l4"><a class='reference internal' href='/python/bosdyn-client/src/bosdyn/client/signals_helpers'>Signals Helpers</a></li> <li class="toctree-l4"><a class='reference internal' href='/python/bosdyn-client/src/bosdyn/client/spot_cam/readme'>Spot CAM</a><ul> <li class="toctree-l5"><a class='reference internal' href='/python/bosdyn-client/src/bosdyn/client/spot_cam/audio'>Audio</a></li> <li class="toctree-l5"><a class='reference internal' href='/python/bosdyn-client/src/bosdyn/client/spot_cam/compositor'>Compositor</a></li> <li class="toctree-l5"><a class='reference internal' href='/python/bosdyn-client/src/bosdyn/client/spot_cam/health'>Health</a></li> <li class="toctree-l5"><a class='reference internal' href='/python/bosdyn-client/src/bosdyn/client/spot_cam/lighting'>Lighting</a></li> <li class="toctree-l5"><a class='reference internal' href='/python/bosdyn-client/src/bosdyn/client/spot_cam/lights_helper'>Lights Helper</a></li> <li class="toctree-l5"><a class='reference internal' href='/python/bosdyn-client/src/bosdyn/client/spot_cam/media_log'>Media Log</a></li> <li class="toctree-l5"><a class='reference internal' href='/python/bosdyn-client/src/bosdyn/client/spot_cam/network'>Network</a></li> <li class="toctree-l5"><a class='reference internal' href='/python/bosdyn-client/src/bosdyn/client/spot_cam/power'>Power</a></li> <li class="toctree-l5"><a class='reference internal' href='/python/bosdyn-client/src/bosdyn/client/spot_cam/ptz'>PTZ</a></li> <li class="toctree-l5"><a class='reference internal' href='/python/bosdyn-client/src/bosdyn/client/spot_cam/streamquality'>Stream Quality</a></li> <li class="toctree-l5"><a class='reference internal' href='/python/bosdyn-client/src/bosdyn/client/spot_cam/version'>Version</a></li> </ul> </li> <li class="toctree-l4"><a class='reference internal' href='/python/bosdyn-client/src/bosdyn/client/spot_check'>Spot Check</a></li> <li class="toctree-l4"><a class='reference internal' href='/python/bosdyn-client/src/bosdyn/client/time_sync'>Time Sync</a></li> <li class="toctree-l4"><a class='reference internal' href='/python/bosdyn-client/src/bosdyn/client/token_cache'>Token Cache</a></li> <li class="toctree-l4"><a class='reference internal' href='/python/bosdyn-client/src/bosdyn/client/token_manager'>Token Manager</a></li> <li class="toctree-l4"><a class='reference internal' href='/python/bosdyn-client/src/bosdyn/client/units_helpers'>Units Helpers</a></li> <li class="toctree-l4"><a class='reference internal' href='/python/bosdyn-client/src/bosdyn/client/util'>Util</a></li> <li class="toctree-l4"><a class='reference internal' href='/python/bosdyn-client/src/bosdyn/client/world_object'>World Object</a></li> </ul> </li> <li class="toctree-l3"><a class='reference internal' href='/python/bosdyn-core/src/bosdyn/readme'>Core</a><ul> <li class="toctree-l4"><a class='reference internal' href='/python/bosdyn-core/src/bosdyn/bddf/readme'>BDDF</a><ul> <li class="toctree-l5"><a class='reference internal' href='/python/bosdyn-core/src/bosdyn/bddf/base_data_reader'>Base Data Reader</a></li> <li class="toctree-l5"><a class='reference internal' href='/python/bosdyn-core/src/bosdyn/bddf/block_writer'>Block Writer</a></li> <li class="toctree-l5"><a class='reference internal' href='/python/bosdyn-core/src/bosdyn/bddf/bosdyn'>BDDF Conventions</a></li> <li class="toctree-l5"><a class='reference internal' href='/python/bosdyn-core/src/bosdyn/bddf/common'>Common</a></li> <li class="toctree-l5"><a class='reference internal' href='/python/bosdyn-core/src/bosdyn/bddf/data_reader'>Data Reader</a></li> <li class="toctree-l5"><a class='reference internal' href='/python/bosdyn-core/src/bosdyn/bddf/data_writer'>Data Writer</a></li> <li class="toctree-l5"><a class='reference internal' href='/python/bosdyn-core/src/bosdyn/bddf/file_indexer'>File Indexer</a></li> <li class="toctree-l5"><a class='reference internal' href='/python/bosdyn-core/src/bosdyn/bddf/grpc_proto_reader'>GRPC Proto Reader</a></li> <li class="toctree-l5"><a class='reference internal' href='/python/bosdyn-core/src/bosdyn/bddf/grpc_reader'>GRPC Reader</a></li> <li class="toctree-l5"><a class='reference internal' href='/python/bosdyn-core/src/bosdyn/bddf/grpc_service_reader'>GRPC Service Reader</a></li> <li class="toctree-l5"><a class='reference internal' href='/python/bosdyn-core/src/bosdyn/bddf/grpc_service_writer'>GRPC Service Writer</a></li> <li class="toctree-l5"><a class='reference internal' href='/python/bosdyn-core/src/bosdyn/bddf/message_reader'>Message Reader</a></li> <li class="toctree-l5"><a class='reference internal' href='/python/bosdyn-core/src/bosdyn/bddf/pod_series_reader'>POD Series Reader</a></li> <li class="toctree-l5"><a class='reference internal' href='/python/bosdyn-core/src/bosdyn/bddf/pod_series_writer'>POD Series Writer</a></li> <li class="toctree-l5"><a class='reference internal' href='/python/bosdyn-core/src/bosdyn/bddf/protobuf_channel_reader'>Protobuf Channel Reader</a></li> <li class="toctree-l5"><a class='reference internal' href='/python/bosdyn-core/src/bosdyn/bddf/protobuf_reader'>Protobuf Reader</a></li> <li class="toctree-l5"><a class='reference internal' href='/python/bosdyn-core/src/bosdyn/bddf/protobuf_series_writer'>Protobuf Series Writer</a></li> <li class="toctree-l5"><a class='reference internal' href='/python/bosdyn-core/src/bosdyn/bddf/stream_data_reader'>Stream Data Reader</a></li> </ul> </li> <li class="toctree-l4"><a class='reference internal' href='/python/bosdyn-core/src/bosdyn/geometry'>Geometry</a></li> <li class="toctree-l4"><a class='reference internal' href='/python/bosdyn-core/src/bosdyn/util'>Util</a></li> <li class="toctree-l4"><a class='reference internal' href='/python/bosdyn-core/src/bosdyn/deprecated'>Deprecated</a></li> </ul> </li> <li class="toctree-l3"><a class='reference internal' href='/python/bosdyn-mission/src/bosdyn/mission/readme'>Mission</a><ul> <li class="toctree-l4"><a class='reference internal' href='/python/bosdyn-mission/src/bosdyn/mission/client'>Client</a></li> <li class="toctree-l4"><a class='reference internal' href='/python/bosdyn-mission/src/bosdyn/mission/constants'>Constants</a></li> <li class="toctree-l4"><a class='reference internal' href='/python/bosdyn-mission/src/bosdyn/mission/exceptions'>Exceptions</a></li> <li class="toctree-l4"><a class='reference internal' href='/python/bosdyn-mission/src/bosdyn/mission/remote_client'>Remote Client</a></li> <li class="toctree-l4"><a class='reference internal' href='/python/bosdyn-mission/src/bosdyn/mission/server_util'>Server Util</a></li> <li class="toctree-l4"><a class='reference internal' href='/python/bosdyn-mission/src/bosdyn/mission/util'>Util</a></li> </ul> </li> <li class="toctree-l3"><a class='reference internal' href='/python/bosdyn-choreography-client/src/bosdyn/choreography/client/readme'>Choreography</a><ul> <li class="toctree-l4"><a class='reference internal' href='/python/bosdyn-choreography-client/src/bosdyn/choreography/client/choreography'>Choreography</a></li> <li class="toctree-l4"><a class='reference internal' href='/python/bosdyn-choreography-client/src/bosdyn/choreography/client/animation_file_to_proto'>Animation File to Proto</a></li> <li class="toctree-l4"><a class='reference internal' href='/python/bosdyn-choreography-client/src/bosdyn/choreography/client/animation_file_conversion_helpers'>Animation File to Proto Helpers</a></li> </ul> </li> <li class="toctree-l3"><a class='reference internal' href='/python/bosdyn-orbit/src/bosdyn/orbit/readme'>Orbit (formerly Scout)</a><ul> <li class="toctree-l4"><a class='reference internal' href='/python/bosdyn-orbit/src/bosdyn/orbit/client'>Client</a></li> <li class="toctree-l4"><a class='reference internal' href='/python/bosdyn-orbit/src/bosdyn/orbit/utils'>Utils</a></li> <li class="toctree-l4"><a class='reference internal' href='/python/bosdyn-orbit/src/bosdyn/orbit/exceptions'>Exceptions</a></li> </ul> </li> <li class="toctree-l3"><a class='reference internal' href='/python/bosdyn-scout/src/bosdyn/scout/readme'>Scout (deprecated)</a><ul> <li class="toctree-l4"><a class='reference internal' href='/python/bosdyn-scout/src/bosdyn/scout/client'>Client</a></li> <li class="toctree-l4"><a class='reference internal' href='/python/bosdyn-scout/src/bosdyn/scout/utils'>Utils</a></li> <li class="toctree-l4"><a class='reference internal' href='/python/bosdyn-scout/src/bosdyn/scout/exceptions'>Exceptions</a></li> </ul> </li> </ul> </li> <li class="toctree-l2"><a class='reference internal' href='/docs/python/fetch_tutorial/fetch1'>Fetch Tutorial</a><ul> <li class="toctree-l3"><a class='reference internal' href='/docs/python/fetch_tutorial/fetch2'>Part 2: Training the Model</a></li> <li class="toctree-l3"><a class='reference internal' href='/docs/python/fetch_tutorial/fetch3'>Part 3: Evaluating the Model</a></li> <li class="toctree-l3"><a class='reference internal' href='/docs/python/fetch_tutorial/fetch4'>Part 4: Autonomous Pick Up</a></li> <li class="toctree-l3"><a class='reference internal' href='/docs/python/fetch_tutorial/fetch5'>Part 5: Detecting People and Playing Fetch</a></li> <li class="toctree-l3"><a class='reference internal' href='/docs/python/fetch_tutorial/fetch6'>Part 6: Running the model on Core IO</a></li> </ul> </li> <li class="toctree-l2"><a class='reference internal' href='/docs/python/daq_tutorial/daq1'>Data Collection Tutorial</a><ul> <li class="toctree-l3"><a class='reference internal' href='/docs/python/daq_tutorial/daq2'>Part 2: Capturing images</a></li> <li class="toctree-l3"><a class='reference internal' href='/docs/python/daq_tutorial/daq3'>Part 3: Capturing other data</a></li> <li class="toctree-l3"><a class='reference internal' href='/docs/python/daq_tutorial/daq4'>Part 4: Deploying to the CORE I/O</a></li> <li class="toctree-l3"><a class='reference internal' href='/docs/python/daq_tutorial/daq5'>Part 5: Collecting data</a></li> <li class="toctree-l3"><a class='reference internal' href='/docs/python/daq_tutorial/daq6'>Part 6: Processing collected data</a></li> </ul> </li> </ul> </li> <li class="toctree-l1"><a class='reference internal' href='/docs/payload/readme'>Payloads</a><ul> <li class="toctree-l2"><a class='reference internal' href='/docs/payload/payload_configuration_requirements'>Payload configuration requirements</a></li> <li class="toctree-l2"><a class='reference internal' href='/docs/payload/mechanical_interfaces'>Mechanical interfaces</a></li> <li class="toctree-l2"><a class='reference internal' href='/docs/payload/robot_mounting_rails'>Robot mounting rails</a></li> <li class="toctree-l2"><a class='reference internal' href='/docs/payload/guidelines_for_robust_payload_design'>Guidelines for robust payload design</a></li> <li class="toctree-l2"><a class='reference internal' href='/docs/payload/robot_electrical_interface'>Robot electrical interface</a></li> <li class="toctree-l2"><a class='reference internal' href='/docs/payload/coreio_documentation'>CORE I/O Documentation</a></li> <li class="toctree-l2"><a class='reference internal' href='/docs/payload/coreio_openvpn_extension'>CORE I/O OpenVPN Extension</a></li> <li class="toctree-l2"><a class='reference internal' href='/docs/payload/configuring_payload_software'>Configuring payload software</a></li> <li class="toctree-l2"><a class='reference internal' href='/docs/payload/docker_containers'>Dockerize payload software</a></li> <li class="toctree-l2"><a class='reference internal' href='/docs/payload/spot_core_documentation'>Pre-3.2 Spot CORE Documentation</a><ul> <li class="toctree-l3"><a class='reference internal' href='/docs/payload/spot_core_portainer'>Configuring Docker containers in SpotCORE</a></li> <li class="toctree-l3"><a class='reference internal' href='/docs/payload/spot_core_cockpit'>Spot CORE system management tool: Cockpit</a></li> <li class="toctree-l3"><a class='reference internal' href='/docs/payload/spot_core_vnc'>Spot CORE VNC</a></li> </ul> </li> </ul> </li> <li class="toctree-l1"><a class='reference internal' href='/docs/protos/readme'>API Protocol</a><ul> <li class="toctree-l2"><a class='reference internal' href='/docs/protos/style_guide'>Style Guide</a></li> <li class="toctree-l2"><a class='reference internal' href='/protos/bosdyn/api/readme'>Proto Reference Guide</a><ul> <li class="toctree-l3"><a class='reference internal' href='/protos/bosdyn/api/proto_reference'>Protos</a></li> </ul> </li> </ul> </li> <li class="toctree-l1"><a class='reference internal' href='/docs/release_notes'>Release Notes</a></li> <li class="toctree-l1"><a class="reference external" href="https://github.com/boston-dynamics/spot-sdk">SDK Repository</a></li> </ul> </div> </div> </nav> <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" > <i data-toggle="wy-nav-top" class="fa fa-bars"></i> <a href='/readme'>Spot</a> </nav> <div class="wy-nav-content"> <div class="rst-content"> <div role="navigation" aria-label="Page navigation"> <ul class="wy-breadcrumbs"> <li><a aria-label='Home' class='icon icon-home' href='/readme'></a></li> <li class="breadcrumb-item"><a href='/docs/concepts/readme'>Concepts</a></li> <li class="breadcrumb-item active">Orbit API</li> <li class="wy-breadcrumbs-aside"> </li> </ul> <hr/> </div> <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article"> <div itemprop="articleBody"> <!-- Copyright (c) 2023 Boston Dynamics, Inc. All rights reserved. Downloading, reproducing, distributing or otherwise using the SDK Software is subject to the terms and conditions of the Boston Dynamics Software Development Kit License (20191101-BDSDK-SL). --><section id="orbit-api"> <h1>Orbit API<a class="headerlink" href="#orbit-api" title="Permalink to this heading"></a></h1> <p>The Orbit API is a web API served by an Orbit instance. The API is interacted with by sending HTTPS requests to a number of resource endpoints. Each resource endpoint is prefixed with the API route <code class="docutils literal notranslate"><span class="pre">/api/v0/</span></code>. For example, a list of <code class="docutils literal notranslate"><span class="pre">run_events</span></code> may be retrieved by sending a <code class="docutils literal notranslate"><span class="pre">GET</span></code> request to <code class="docutils literal notranslate"><span class="pre">/api/v0/run_events</span></code>. A complete URL would add this to the URL of the Orbit instance - e.g. <code class="docutils literal notranslate"><span class="pre">https://my-orbit.com/api/v0/run_events/</span></code>.</p> <p>The Orbit API is language-agnostic and may be programmed against using any programming language that supports sending HTTP requests.</p> <p>For a complete list of resources and their methods, see the <a href='/docs/orbit/docs'>Orbit API Reference</a>.</p> <section id="contents"> <h2>Contents<a class="headerlink" href="#contents" title="Permalink to this heading"></a></h2> <ul class="simple"> <li><p><a href='/docs/orbit/docs'>RESTful API Reference</a></p></li> <li><p><a class="reference external" href="#authentication">Authentication</a></p></li> <li><p><a class="reference external" href="#orbit-object-structure">Object Structure</a></p></li> <li><p><a class="reference external" href="#facets">Facets</a></p></li> <li><p><a class='reference internal' href='/python/bosdyn-orbit/src/bosdyn/orbit/readme'><span class="doc">Orbit API Python SDK</span></a></p></li> <li><p><a class='reference internal' href='/python/examples/docs/orbit'><span class="doc">Orbit API Python SDK Examples</span></a></p></li> </ul> <section id="authentication"> <h3>Authentication<a class="headerlink" href="#authentication" title="Permalink to this heading"></a></h3> <p>Resources can only be requested by authorized Orbit users. In order to be authorized, users need to provide headers with an API token obtained from an Orbit instance’s admin settings.</p> <p><img alt="Orbit Token Creation 1" src="../../../_images/token_creation_1.png" /></p> <p>A variety of options are available with different authorities. Pick the one that is most appropriate for you or your application.</p> <p><img alt="Orbit Token Creation 2" src="../../../_images/token_creation_2.png" /></p> <p>Make sure to copy and save the token in a safe place as this token will not be accessible again.</p> <p>To authorize with the obtained API token, send a <code class="docutils literal notranslate"><span class="pre">GET</span></code> request to the authentication endpoint at <code class="docutils literal notranslate"><span class="pre">/api/v0/api_token/authenticate</span></code>:</p> <div class="highlight-py notranslate"><div class="highlight"><pre><span></span><span class="sd">"""Authenticate with an API token obtained from an Orbit instance."""</span> <span class="kn">import</span> <span class="nn">json</span> <span class="kn">import</span> <span class="nn">requests</span> <span class="c1"># Set API token in headers</span> <span class="n">headers</span> <span class="o">=</span> <span class="p">{</span><span class="s1">'Authorization'</span><span class="p">:</span> <span class="s1">'Bearer '</span> <span class="o">+</span> <span class="o"><</span><span class="n">MY</span> <span class="n">ORBIT</span> <span class="n">API</span> <span class="n">TOKEN</span><span class="o">></span><span class="p">}</span> <span class="c1"># Check the validity of the API token</span> <span class="n">authenticate_response</span> <span class="o">=</span> <span class="n">requests</span><span class="o">.</span><span class="n">get</span><span class="p">(</span> <span class="sa">f</span><span class="s1">'https://</span><span class="si">{</span><span class="n">my</span><span class="o">-</span><span class="n">orbit</span><span class="o">.</span><span class="n">com</span><span class="si">}</span><span class="s1">/api/v0/api_token/authenticate'</span><span class="p">,</span> <span class="n">headers</span><span class="o">=</span><span class="n">headers</span><span class="p">)</span> <span class="k">if</span> <span class="n">authenticate_response</span><span class="o">.</span><span class="n">ok</span><span class="p">:</span> <span class="nb">print</span><span class="p">(</span><span class="s1">'Client: Auth succeeded'</span><span class="p">)</span> <span class="k">else</span><span class="p">:</span> <span class="nb">print</span><span class="p">(</span><span class="s1">'Client: Auth failed: </span><span class="si">{}</span><span class="s1"> Please, obtain a valid API token from the instance!'</span><span class="o">.</span> <span class="nb">format</span><span class="p">(</span><span class="n">authenticate_response</span><span class="o">.</span><span class="n">text</span><span class="p">))</span> </pre></div> </div> <p>Now that we have a valid API token, we can use it to request resources. When requesting, the API token needs to be provided as part of the <code class="docutils literal notranslate"><span class="pre">headers</span></code> argument:</p> <div class="highlight-py notranslate"><div class="highlight"><pre><span></span><span class="sd">"""Use the cookies to fetch some robots. The same authorization strategy is used for other http methods."""</span> <span class="n">robots_response</span> <span class="o">=</span> <span class="n">requests</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="sa">f</span><span class="s1">'https://</span><span class="si">{</span><span class="n">hostname</span><span class="si">}</span><span class="s1">/api/v0/robots'</span><span class="p">,</span> <span class="n">headers</span><span class="o">=</span><span class="n">headers</span><span class="p">,</span> <span class="n">verify</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span> <span class="k">if</span> <span class="ow">not</span> <span class="n">robots_response</span><span class="o">.</span><span class="n">ok</span><span class="p">:</span> <span class="nb">print</span><span class="p">(</span><span class="sa">f</span><span class="s1">'Encountered a problem while requesting robots: </span><span class="si">{</span><span class="n">robots_response</span><span class="o">.</span><span class="n">text</span><span class="si">}</span><span class="s1">'</span><span class="p">)</span> <span class="k">else</span><span class="p">:</span> <span class="n">robots_json</span> <span class="o">=</span> <span class="n">robots_response</span><span class="o">.</span><span class="n">json</span><span class="p">()</span> <span class="nb">print</span><span class="p">(</span><span class="s2">"Fetched robots!"</span><span class="p">)</span> </pre></div> </div> <p>The API token must be provided in every request aside from the request. If an unauthorized request is made, a <code class="docutils literal notranslate"><span class="pre">401</span></code> response is sent. Likewise, if an API link is visited in the browser without the user being authorized, <code class="docutils literal notranslate"><span class="pre">Forbidden</span></code> is shown.</p> </section> </section> <section id="orbit-object-structure"> <h2>Orbit Object Structure<a class="headerlink" href="#orbit-object-structure" title="Permalink to this heading"></a></h2> <section id="data"> <h3>Data<a class="headerlink" href="#data" title="Permalink to this heading"></a></h3> <p>Below is a simple example of the data structure of a mission run that was uploaded from a robot to Orbit. This mission has two RunEvents (actions) and three total data points (RunCaptures), two of which are associated with a single action. Runs may have many actions while RunEvents may have many RunCaptures, much like missions can have many actions, and each action can save many pieces of data.</p> <p><img alt="Orbit Data Structure" src="../../../_images/orbit_structure_data.png" /></p> <section id="run-mission-archive"> <h4>Run (Mission Archive)<a class="headerlink" href="#run-mission-archive" title="Permalink to this heading"></a></h4> <p>A <code class="docutils literal notranslate"><span class="pre">Run</span></code> represents a period of robot operation. Both teleoperation and autonomous operations are represented as <code class="docutils literal notranslate"><span class="pre">Runs</span></code>. They provide other information such as: status, start/end times, action count, and robot name. It is important to to note that the end time may not be populated when a mission is currently in progress so it is a good idea to check for this. <code class="docutils literal notranslate"><span class="pre">Runs</span></code> can have many <code class="docutils literal notranslate"><span class="pre">RunEvents</span></code> which depict the output from each action that transpired during the operation period, these <code class="docutils literal notranslate"><span class="pre">RunEvents</span></code> are linked to the <code class="docutils literal notranslate"><span class="pre">Run</span></code> by the <code class="docutils literal notranslate"><span class="pre">Run</span></code>’s uuid.</p> </section> <section id="runevent-action-archive"> <h4>RunEvent (Action Archive)<a class="headerlink" href="#runevent-action-archive" title="Permalink to this heading"></a></h4> <p>A <code class="docutils literal notranslate"><span class="pre">RunEvent</span></code> represents the output of an action executed during a <code class="docutils literal notranslate"><span class="pre">Run</span></code>. It contains all the RunCaptures associated with the action. A <code class="docutils literal notranslate"><span class="pre">RunEvent</span></code> can only be associated with a singular <code class="docutils literal notranslate"><span class="pre">Run</span></code>. It also contains a list of all <code class="docutils literal notranslate"><span class="pre">RunCaptures</span></code> (data captures) associated with the action. <code class="docutils literal notranslate"><span class="pre">RunCaptures</span> </code>are linked to the <code class="docutils literal notranslate"><span class="pre">RunEvent</span></code> by the <code class="docutils literal notranslate"><span class="pre">RunEvent</span></code>’s uuid.</p> </section> <section id="runcapture-data-archive"> <h4>RunCapture (Data Archive)<a class="headerlink" href="#runcapture-data-archive" title="Permalink to this heading"></a></h4> <p>A <code class="docutils literal notranslate"><span class="pre">RunCapture</span></code> describes a data point captured during a particular <code class="docutils literal notranslate"><span class="pre">RunEvent</span></code>. There can be many <code class="docutils literal notranslate"><span class="pre">RunCaptures</span></code> for a given <code class="docutils literal notranslate"><span class="pre">RunEvent</span></code>. A <code class="docutils literal notranslate"><span class="pre">RunCapture</span></code> can only be linked to one <code class="docutils literal notranslate"><span class="pre">RunEvent</span></code> through the <code class="docutils literal notranslate"><span class="pre">runEventUuid</span></code> field.</p> </section> <section id="note"> <h4>Note<a class="headerlink" href="#note" title="Permalink to this heading"></a></h4> <p>It is best practice to query and refer to <code class="docutils literal notranslate"><span class="pre">Runs</span></code>, <code class="docutils literal notranslate"><span class="pre">RunEvents</span></code>, and <code class="docutils literal notranslate"><span class="pre">RunCaptures</span></code> with their uuid as this is a unique identifier. Using the names of these objects may not correctly refer to the desired object as there may be duplicates. Ex: the same mission run twice will have two <code class="docutils literal notranslate"><span class="pre">Runs</span></code> with the same <code class="docutils literal notranslate"><span class="pre">missionName</span></code> field.</p> </section> </section> <section id="missions"> <h3>Missions<a class="headerlink" href="#missions" title="Permalink to this heading"></a></h3> <p>Below is a simple representation of what a mission looks like in the context of Orbit.</p> <p><img alt="Orbit Mission Structure" src="../../../_images/orbit_structure_mission.png" /></p> <section id="sitewalk-mission"> <h4>SiteWalk (Mission)<a class="headerlink" href="#sitewalk-mission" title="Permalink to this heading"></a></h4> <p>A <code class="docutils literal notranslate"><span class="pre">SiteWalk</span></code> describes a series of tasks that define autonomous robot operation. It contains <code class="docutils literal notranslate"><span class="pre">SiteElements</span></code> and <code class="docutils literal notranslate"><span class="pre">SiteDocks</span></code> together with other parameters that define autonomous operation. A <code class="docutils literal notranslate"><span class="pre">SiteWalk</span></code> has a list of <code class="docutils literal notranslate"><span class="pre">SiteElements</span></code> which are attempted in sequential order. <code class="docutils literal notranslate"><span class="pre">SiteWalks</span></code> also have a list of <code class="docutils literal notranslate"><span class="pre">SiteDocks</span></code> that define which charging station locations are allowed to be used during a specific <code class="docutils literal notranslate"><span class="pre">SiteWalk</span></code>. The robot will choose which <code class="docutils literal notranslate"><span class="pre">SiteDock</span></code> is best at runtime.</p> </section> <section id="siteelement-action"> <h4>SiteElement (Action)<a class="headerlink" href="#siteelement-action" title="Permalink to this heading"></a></h4> <p>A <code class="docutils literal notranslate"><span class="pre">SiteElement</span></code> describes what a robot should do and where to do it. <code class="docutils literal notranslate"><span class="pre">SiteElements</span></code> are normally associated with a specific waypoint where the action is to be performed. These performed actions are then represented as <code class="docutils literal notranslate"><span class="pre">RunEvents</span></code> once the data is transferred to Orbit. <code class="docutils literal notranslate"><span class="pre">SiteElements</span></code> can be utilized in many <code class="docutils literal notranslate"><span class="pre">SiteWalks</span></code>.</p> </section> <section id="sitedock-charging-station"> <h4>SiteDock (Charging Station)<a class="headerlink" href="#sitedock-charging-station" title="Permalink to this heading"></a></h4> <p>A <code class="docutils literal notranslate"><span class="pre">SiteDock</span></code> is a representation of a robot’s docking station. The robot can utilize <code class="docutils literal notranslate"><span class="pre">SiteDocks</span></code> during and after <code class="docutils literal notranslate"><span class="pre">SiteWalks</span></code> to ensure the battery never runs out.</p> <p>The same SiteDock can be used in multiple <code class="docutils literal notranslate"><span class="pre">SiteWalks</span></code>, but as of 4.1.0, users are responsible for ensuring the physical dock is not taken if they need the robot to dock there. This may change in the future (and we may forget to update this page accordingly).</p> </section> </section> </section> <section id="facets"> <h2>Facets<a class="headerlink" href="#facets" title="Permalink to this heading"></a></h2> <p>Facets are API endpoints that return a more specific output. Facets can simplify client code and reduce network traffic by returning useful descriptions of different objects. For example, the <code class="docutils literal notranslate"><span class="pre">/runs/facets/missions</span></code> returns every unique mission that produced a <code class="docutils literal notranslate"><span class="pre">Run</span></code>, a count of how many times the mission ran, and the last start time.</p> <p>See <a href='/docs/orbit/docs'>Orbit API Reference</a> for a full list of facets.</p> </section> <section id="orbit-api-and-the-python-sdk"> <h2>Orbit API and the Python SDK<a class="headerlink" href="#orbit-api-and-the-python-sdk" title="Permalink to this heading"></a></h2> <p>The Spot Python SDK includes a <code class="docutils literal notranslate"><span class="pre">bosdyn-orbit</span></code> Python package and client implementation for the Orbit API. The <code class="docutils literal notranslate"><span class="pre">bosdyn-orbit</span></code> package documentation is <a class='reference internal' href='/python/bosdyn-orbit/src/bosdyn/orbit/readme'><span class="doc">here</span></a>.</p> <p>The package provides <code class="docutils literal notranslate"><span class="pre">OrbitClient</span></code> - an implementation for the Orbit API. Once instantiated and authenticated, it provides a number of helpful methods which abstract away the details of HTTP to simplify building programs with the Orbit API. Please refer to the <a class='reference internal' href='/python/examples/orbit/hello_orbit/readme'><span class="doc">Hello Orbit</span></a> SDK example to get started developing with the Orbit API Python client.</p> <section id="deprecation-warning"> <h3>Deprecation Warning<a class="headerlink" href="#deprecation-warning" title="Permalink to this heading"></a></h3> <p>Following the rebranding of “Scout” to “Orbit” in 4.0.0, the pre-existing Python package <code class="docutils literal notranslate"><span class="pre">bosdyn-scout</span></code> is deprecated. All <a class='reference internal' href='/python/examples/docs/orbit'><span class="doc">SDK examples</span></a> now use <code class="docutils literal notranslate"><span class="pre">bosdyn-orbit</span></code> instead. Any previous applications that used <code class="docutils literal notranslate"><span class="pre">bosdyn-scout</span></code> will continue to work. It is highly recommended that <code class="docutils literal notranslate"><span class="pre">bosdyn-orbit</span></code> be used moving forward.</p> </section> </section> </section> </div> </div> <footer> <hr/> <div role="contentinfo"> <p> © Copyright 2024 Boston Dynamics. All rights reserved. <a href="https://www.bostondynamics.com/privacy-policy">Privacy Policy</a> | <a href="https://www.bostondynamics.com/terms">Terms of Use</a> </p> </div> </footer> </div> </div> </section> </div> <script> jQuery(function () { SphinxRtdTheme.Navigation.enable(false); }); </script> <!-- Theme Analytics --> <script async src="https://www.googletagmanager.com/gtag/js?id=UA-XXXXXXX-1"></script> <script> window.dataLayer = window.dataLayer || []; function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'UA-XXXXXXX-1', { 'anonymize_ip': false, }); </script> <!-- Start of HubSpot Embed Code --> <script type="text/javascript" id="hs-script-loader" async defer src="//js.hs-scripts.com/4845432.js"></script> <!-- End of HubSpot Embed Code --></body> </html>