From 7569b7998d486109f80de31dd5f86470016bb141 Mon Sep 17 00:00:00 2001
From: Boston Dynamics SDK Publisher
<53276189+bd-sdk-publisher@users.noreply.github.com>
Date: Tue, 17 Dec 2024 20:48:48 -0500
Subject: [PATCH] Release v4.1.1 of Boston Dynamics Spot SDK
---
README.md | 2 +-
VERSION | 2 +-
docs/concepts/autonomy/localization.md | 2 +
docs/concepts/choreography/custom_gait.md | 111 +-
docs/concepts/data_acquisition_overview.md | 2 +-
docs/concepts/data_acquisition_thermal_raw.md | 2 +-
docs/concepts/geometry_and_frames.md | 2 +-
docs/concepts/network_compute_bridge.md | 2 +-
docs/concepts/orbit/about_orbit.md | 20 +-
docs/concepts/service_customization.md | 4 +-
.../writing_services_for_data_acquisition.md | 2 +-
docs/html/.buildinfo | 2 +-
docs/html/README.html | 6 +-
.../bosdyn/bddf/base_data_reader.html | 4 +-
.../_modules/bosdyn/bddf/block_writer.html | 4 +-
docs/html/_modules/bosdyn/bddf/bosdyn.html | 4 +-
docs/html/_modules/bosdyn/bddf/common.html | 4 +-
.../_modules/bosdyn/bddf/data_reader.html | 4 +-
.../_modules/bosdyn/bddf/data_writer.html | 4 +-
.../_modules/bosdyn/bddf/file_indexer.html | 4 +-
.../bosdyn/bddf/grpc_proto_reader.html | 4 +-
.../_modules/bosdyn/bddf/grpc_reader.html | 4 +-
.../bosdyn/bddf/grpc_service_reader.html | 4 +-
.../bosdyn/bddf/grpc_service_writer.html | 4 +-
.../_modules/bosdyn/bddf/message_reader.html | 4 +-
.../bosdyn/bddf/pod_series_reader.html | 4 +-
.../bosdyn/bddf/pod_series_writer.html | 4 +-
.../bosdyn/bddf/protobuf_channel_reader.html | 4 +-
.../_modules/bosdyn/bddf/protobuf_reader.html | 4 +-
.../bosdyn/bddf/protobuf_series_writer.html | 4 +-
.../bosdyn/bddf/stream_data_reader.html | 4 +-
.../animation_file_conversion_helpers.html | 4 +-
.../client/animation_file_to_proto.html | 4 +-
.../choreography/client/choreography.html | 4 +-
.../_modules/bosdyn/client/area_callback.html | 4 +-
.../area_callback_region_handler_base.html | 4 +-
.../client/area_callback_service_runner.html | 4 +-
.../area_callback_service_servicer.html | 4 +-
.../client/area_callback_service_utils.html | 4 +-
.../bosdyn/client/arm_surface_contact.html | 4 +-
.../_modules/bosdyn/client/async_tasks.html | 4 +-
docs/html/_modules/bosdyn/client/auth.html | 4 +-
.../_modules/bosdyn/client/auto_return.html | 4 +-
.../html/_modules/bosdyn/client/autowalk.html | 4 +-
.../_modules/bosdyn/client/bddf_download.html | 4 +-
docs/html/_modules/bosdyn/client/channel.html | 4 +-
.../_modules/bosdyn/client/command_line.html | 4 +-
docs/html/_modules/bosdyn/client/common.html | 4 +-
.../bosdyn/client/data_acquisition.html | 4 +-
.../client/data_acquisition_helpers.html | 4 +-
.../client/data_acquisition_plugin.html | 4 +-
.../data_acquisition_plugin_service.html | 4 +-
.../bosdyn/client/data_acquisition_store.html | 4 +-
.../_modules/bosdyn/client/data_buffer.html | 4 +-
.../_modules/bosdyn/client/data_chunk.html | 4 +-
.../_modules/bosdyn/client/data_service.html | 4 +-
.../_modules/bosdyn/client/directory.html | 4 +-
.../bosdyn/client/directory_registration.html | 4 +-
docs/html/_modules/bosdyn/client/docking.html | 4 +-
docs/html/_modules/bosdyn/client/door.html | 4 +-
docs/html/_modules/bosdyn/client/estop.html | 4 +-
.../_modules/bosdyn/client/exceptions.html | 4 +-
docs/html/_modules/bosdyn/client/fault.html | 4 +-
.../_modules/bosdyn/client/frame_helpers.html | 4 +-
.../bosdyn/client/gps/NMEAParser.html | 4 +-
.../bosdyn/client/gps/aggregator_client.html | 4 +-
.../bosdyn/client/gps/gps_listener.html | 4 +-
.../client/gps/registration_client.html | 4 +-
.../_modules/bosdyn/client/graph_nav.html | 14 +-
.../bosdyn/client/gripper_camera_param.html | 4 +-
docs/html/_modules/bosdyn/client/image.html | 4 +-
.../bosdyn/client/image_service_helpers.html | 4 +-
.../bosdyn/client/inverse_kinematics.html | 4 +-
.../bosdyn/client/ir_enable_disable.html | 4 +-
.../_modules/bosdyn/client/keepalive.html | 4 +-
docs/html/_modules/bosdyn/client/lease.html | 4 +-
.../client/lease_resource_hierarchy.html | 4 +-
.../bosdyn/client/lease_validator.html | 4 +-
docs/html/_modules/bosdyn/client/license.html | 4 +-
.../_modules/bosdyn/client/local_grid.html | 4 +-
.../_modules/bosdyn/client/log_status.html | 4 +-
.../client/manipulation_api_client.html | 4 +-
.../bosdyn/client/map_processing.html | 4 +-
.../_modules/bosdyn/client/math_helpers.html | 4 +-
.../bosdyn/client/metrics_logging.html | 4 +-
.../client/network_compute_bridge_client.html | 4 +-
docs/html/_modules/bosdyn/client/payload.html | 4 +-
.../bosdyn/client/payload_registration.html | 4 +-
.../_modules/bosdyn/client/point_cloud.html | 4 +-
docs/html/_modules/bosdyn/client/power.html | 4 +-
.../_modules/bosdyn/client/processors.html | 4 +-
.../html/_modules/bosdyn/client/ray_cast.html | 4 +-
.../_modules/bosdyn/client/recording.html | 4 +-
docs/html/_modules/bosdyn/client/robot.html | 4 +-
.../_modules/bosdyn/client/robot_command.html | 4 +-
.../html/_modules/bosdyn/client/robot_id.html | 4 +-
.../_modules/bosdyn/client/robot_state.html | 4 +-
docs/html/_modules/bosdyn/client/sdk.html | 4 +-
.../_modules/bosdyn/client/server_util.html | 4 +-
.../client/service_customization_helpers.html | 4 +-
.../bosdyn/client/signals_helpers.html | 4 +-
.../bosdyn/client/spot_cam/audio.html | 4 +-
.../bosdyn/client/spot_cam/compositor.html | 4 +-
.../bosdyn/client/spot_cam/health.html | 4 +-
.../bosdyn/client/spot_cam/lighting.html | 4 +-
.../bosdyn/client/spot_cam/lights_helper.html | 4 +-
.../bosdyn/client/spot_cam/media_log.html | 4 +-
.../bosdyn/client/spot_cam/network.html | 4 +-
.../bosdyn/client/spot_cam/power.html | 4 +-
.../_modules/bosdyn/client/spot_cam/ptz.html | 4 +-
.../bosdyn/client/spot_cam/streamquality.html | 4 +-
.../bosdyn/client/spot_cam/version.html | 4 +-
.../_modules/bosdyn/client/spot_check.html | 4 +-
.../_modules/bosdyn/client/time_sync.html | 4 +-
.../_modules/bosdyn/client/token_cache.html | 4 +-
.../_modules/bosdyn/client/token_manager.html | 4 +-
.../_modules/bosdyn/client/units_helpers.html | 4 +-
docs/html/_modules/bosdyn/client/util.html | 4 +-
.../_modules/bosdyn/client/world_object.html | 4 +-
docs/html/_modules/bosdyn/deprecated.html | 4 +-
docs/html/_modules/bosdyn/geometry.html | 4 +-
docs/html/_modules/bosdyn/mission/client.html | 4 +-
.../_modules/bosdyn/mission/constants.html | 4 +-
.../_modules/bosdyn/mission/exceptions.html | 4 +-
.../bosdyn/mission/remote_client.html | 4 +-
.../_modules/bosdyn/mission/server_util.html | 4 +-
docs/html/_modules/bosdyn/mission/util.html | 42 +-
docs/html/_modules/bosdyn/orbit/client.html | 4 +-
.../_modules/bosdyn/orbit/exceptions.html | 4 +-
docs/html/_modules/bosdyn/orbit/utils.html | 4 +-
docs/html/_modules/bosdyn/scout/client.html | 4 +-
docs/html/_modules/bosdyn/scout/utils.html | 4 +-
docs/html/_modules/bosdyn/util.html | 4 +-
docs/html/_modules/index.html | 4 +-
docs/html/_static/documentation_options.js | 2 +-
docs/html/docs/concepts/README.html | 4 +-
docs/html/docs/concepts/about_spot.html | 4 +-
docs/html/docs/concepts/arm/README.html | 4 +-
docs/html/docs/concepts/arm/arm_concepts.html | 4 +-
docs/html/docs/concepts/arm/arm_services.html | 4 +-
.../docs/concepts/arm/arm_specification.html | 4 +-
docs/html/docs/concepts/autonomy/README.html | 4 +-
.../docs/concepts/autonomy/auto_return.html | 4 +-
.../autonomous_navigation_code_examples.html | 4 +-
.../autonomous_navigation_services.html | 4 +-
.../concepts/autonomy/autowalk_service.html | 4 +-
.../components_of_autonomous_navigation.html | 4 +-
.../autonomy/directed_exploration.html | 4 +-
docs/html/docs/concepts/autonomy/docking.html | 4 +-
docs/html/docs/concepts/autonomy/gps.html | 4 +-
.../graphnav_and_robot_locomotion.html | 4 +-
.../autonomy/graphnav_area_callbacks.html | 4 +-
.../autonomy/graphnav_map_structure.html | 4 +-
.../concepts/autonomy/graphnav_service.html | 4 +-
.../autonomy/graphnav_tech_summary.html | 4 +-
.../concepts/autonomy/initialization.html | 4 +-
.../docs/concepts/autonomy/localization.html | 5 +-
.../concepts/autonomy/missions_service.html | 4 +-
...ypical_autonomous_navigation_use_case.html | 4 +-
docs/html/docs/concepts/base_services.html | 4 +-
docs/html/docs/concepts/bddf.html | 4 +-
.../docs/concepts/choreography/README.html | 4 +-
.../animation_file_specification.html | 4 +-
.../animations_in_choreographer.html | 4 +-
.../concepts/choreography/choreographer.html | 4 +-
.../choreography/choreographer_setup.html | 4 +-
.../choreography_in_autowalk.html | 4 +-
.../choreography/choreography_in_tablet.html | 4 +-
.../choreography/choreography_service.html | 4 +-
.../concepts/choreography/custom_gait.html | 75 +-
.../concepts/choreography/move_reference.html | 4 +-
.../robot_controls_in_choreographer.html | 4 +-
docs/html/docs/concepts/data.html | 4 +-
.../concepts/data_acquisition_output.html | 4 +-
.../concepts/data_acquisition_overview.html | 6 +-
.../data_acquisition_thermal_raw.html | 6 +-
.../docs/concepts/data_buffer_overview.html | 4 +-
.../concepts/developing_api_services.html | 4 +-
docs/html/docs/concepts/estop_service.html | 4 +-
docs/html/docs/concepts/faults.html | 4 +-
.../docs/concepts/geometry_and_frames.html | 6 +-
.../docs/concepts/joint_control/README.html | 4 +-
.../joint_control/knee_torque_limits.html | 4 +-
.../joint_control/supplemental_data.html | 4 +-
.../html/docs/concepts/keepalive_service.html | 4 +-
docs/html/docs/concepts/lease_service.html | 4 +-
.../docs/concepts/network_compute_bridge.html | 6 +-
docs/html/docs/concepts/networking.html | 4 +-
.../html/docs/concepts/orbit/about_orbit.html | 41 +-
docs/html/docs/concepts/orbit/orbit_api.html | 4 +-
docs/html/docs/concepts/robot_services.html | 4 +-
.../docs/concepts/service_customization.html | 8 +-
...writing_services_for_data_acquisition.html | 6 +-
docs/html/docs/payload/README.html | 4 +-
.../payload/configuring_payload_software.html | 4 +-
.../docs/payload/coreio_documentation.html | 4 +-
.../payload/coreio_openvpn_extension.html | 4 +-
docs/html/docs/payload/docker_containers.html | 33 +-
.../guidelines_for_robust_payload_design.html | 4 +-
.../docs/payload/mechanical_interfaces.html | 4 +-
.../payload_configuration_requirements.html | 4 +-
.../payload/robot_electrical_interface.html | 4 +-
.../docs/payload/robot_mounting_rails.html | 4 +-
docs/html/docs/payload/spot_core_cockpit.html | 4 +-
.../docs/payload/spot_core_documentation.html | 4 +-
.../docs/payload/spot_core_portainer.html | 4 +-
docs/html/docs/payload/spot_core_vnc.html | 4 +-
docs/html/docs/protos/README.html | 4 +-
docs/html/docs/protos/style_guide.html | 4 +-
docs/html/docs/python/README.html | 4 +-
docs/html/docs/python/daq_tutorial/daq1.html | 4 +-
docs/html/docs/python/daq_tutorial/daq2.html | 4 +-
docs/html/docs/python/daq_tutorial/daq3.html | 4 +-
docs/html/docs/python/daq_tutorial/daq4.html | 4 +-
docs/html/docs/python/daq_tutorial/daq5.html | 4 +-
docs/html/docs/python/daq_tutorial/daq6.html | 4 +-
.../docs/python/fetch_tutorial/fetch1.html | 4 +-
.../docs/python/fetch_tutorial/fetch2.html | 4 +-
.../docs/python/fetch_tutorial/fetch3.html | 4 +-
.../docs/python/fetch_tutorial/fetch4.html | 4 +-
.../docs/python/fetch_tutorial/fetch5.html | 4 +-
.../docs/python/fetch_tutorial/fetch6.html | 4 +-
docs/html/docs/python/quickstart.html | 24 +-
.../understanding_spot_programming.html | 4 +-
docs/html/docs/release_notes.html | 951 +++++++++---------
docs/html/genindex.html | 6 +-
docs/html/objects.inv | Bin 26320 -> 26341 bytes
docs/html/protos/bosdyn/api/README.html | 4 +-
.../protos/bosdyn/api/proto_reference.html | 24 +-
docs/html/py-modindex.html | 4 +-
docs/html/python/README.html | 4 +-
.../bosdyn/choreography/client/README.html | 4 +-
.../animation_file_conversion_helpers.html | 4 +-
.../client/animation_file_to_proto.html | 4 +-
.../choreography/client/choreography.html | 4 +-
.../src/bosdyn/client/README.html | 4 +-
.../src/bosdyn/client/area_callback.html | 4 +-
.../area_callback_region_handler_base.html | 8 +-
.../client/area_callback_service_runner.html | 4 +-
.../area_callback_service_servicer.html | 4 +-
.../client/area_callback_service_utils.html | 4 +-
.../bosdyn/client/arm_surface_contact.html | 4 +-
.../src/bosdyn/client/async_tasks.html | 4 +-
.../bosdyn-client/src/bosdyn/client/auth.html | 4 +-
.../src/bosdyn/client/auto_return.html | 4 +-
.../src/bosdyn/client/autowalk.html | 4 +-
.../bosdyn-client/src/bosdyn/client/bddf.html | 4 +-
.../src/bosdyn/client/bddf_download.html | 4 +-
.../src/bosdyn/client/channel.html | 4 +-
.../src/bosdyn/client/command_line.html | 4 +-
.../src/bosdyn/client/common.html | 4 +-
.../src/bosdyn/client/data_acquisition.html | 4 +-
.../client/data_acquisition_helpers.html | 4 +-
.../client/data_acquisition_plugin.html | 4 +-
.../data_acquisition_plugin_service.html | 4 +-
.../bosdyn/client/data_acquisition_store.html | 4 +-
.../src/bosdyn/client/data_buffer.html | 4 +-
.../src/bosdyn/client/data_chunk.html | 4 +-
.../src/bosdyn/client/data_service.html | 4 +-
.../src/bosdyn/client/directory.html | 4 +-
.../bosdyn/client/directory_registration.html | 4 +-
.../src/bosdyn/client/docking.html | 4 +-
.../bosdyn-client/src/bosdyn/client/door.html | 4 +-
.../src/bosdyn/client/estop.html | 6 +-
.../src/bosdyn/client/exceptions.html | 4 +-
.../src/bosdyn/client/fault.html | 4 +-
.../src/bosdyn/client/frame_helpers.html | 4 +-
.../src/bosdyn/client/gps/NMEAParser.html | 4 +-
.../src/bosdyn/client/gps/README.html | 4 +-
.../bosdyn/client/gps/aggregator_client.html | 4 +-
.../src/bosdyn/client/gps/gps_listener.html | 4 +-
.../client/gps/registration_client.html | 4 +-
.../src/bosdyn/client/graph_nav.html | 4 +-
.../bosdyn/client/gripper_camera_param.html | 4 +-
.../src/bosdyn/client/image.html | 4 +-
.../bosdyn/client/image_service_helpers.html | 4 +-
.../src/bosdyn/client/inverse_kinematics.html | 4 +-
.../src/bosdyn/client/ir_enable_disable.html | 4 +-
.../src/bosdyn/client/keepalive.html | 4 +-
.../src/bosdyn/client/lease.html | 4 +-
.../client/lease_resource_hierarchy.html | 4 +-
.../src/bosdyn/client/lease_validator.html | 4 +-
.../src/bosdyn/client/license.html | 4 +-
.../src/bosdyn/client/local_grid.html | 4 +-
.../src/bosdyn/client/log_status.html | 4 +-
.../client/manipulation_api_client.html | 4 +-
.../src/bosdyn/client/map_processing.html | 4 +-
.../src/bosdyn/client/math_helpers.html | 4 +-
.../src/bosdyn/client/metrics_logging.html | 4 +-
.../client/network_compute_bridge_client.html | 4 +-
.../src/bosdyn/client/payload.html | 4 +-
.../bosdyn/client/payload_registration.html | 4 +-
.../src/bosdyn/client/point_cloud.html | 4 +-
.../src/bosdyn/client/power.html | 4 +-
.../src/bosdyn/client/processors.html | 4 +-
.../src/bosdyn/client/ray_cast.html | 4 +-
.../src/bosdyn/client/recording.html | 4 +-
.../src/bosdyn/client/robot.html | 4 +-
.../src/bosdyn/client/robot_command.html | 4 +-
.../src/bosdyn/client/robot_id.html | 4 +-
.../src/bosdyn/client/robot_state.html | 4 +-
.../bosdyn-client/src/bosdyn/client/sdk.html | 4 +-
.../src/bosdyn/client/server_util.html | 4 +-
.../client/service_customization_helpers.html | 4 +-
.../src/bosdyn/client/signals_helpers.html | 6 +-
.../src/bosdyn/client/spot_cam/README.html | 4 +-
.../src/bosdyn/client/spot_cam/audio.html | 4 +-
.../bosdyn/client/spot_cam/compositor.html | 4 +-
.../src/bosdyn/client/spot_cam/health.html | 4 +-
.../src/bosdyn/client/spot_cam/lighting.html | 4 +-
.../bosdyn/client/spot_cam/lights_helper.html | 4 +-
.../src/bosdyn/client/spot_cam/media_log.html | 4 +-
.../src/bosdyn/client/spot_cam/network.html | 4 +-
.../src/bosdyn/client/spot_cam/power.html | 4 +-
.../src/bosdyn/client/spot_cam/ptz.html | 4 +-
.../bosdyn/client/spot_cam/streamquality.html | 4 +-
.../src/bosdyn/client/spot_cam/version.html | 4 +-
.../src/bosdyn/client/spot_check.html | 4 +-
.../src/bosdyn/client/time_sync.html | 4 +-
.../src/bosdyn/client/token_cache.html | 4 +-
.../src/bosdyn/client/token_manager.html | 4 +-
.../src/bosdyn/client/units_helpers.html | 4 +-
.../bosdyn-client/src/bosdyn/client/util.html | 4 +-
.../src/bosdyn/client/world_object.html | 4 +-
.../python/bosdyn-core/src/bosdyn/README.html | 4 +-
.../bosdyn-core/src/bosdyn/bddf/README.html | 4 +-
.../src/bosdyn/bddf/base_data_reader.html | 4 +-
.../src/bosdyn/bddf/block_writer.html | 4 +-
.../bosdyn-core/src/bosdyn/bddf/bosdyn.html | 4 +-
.../bosdyn-core/src/bosdyn/bddf/common.html | 4 +-
.../src/bosdyn/bddf/data_reader.html | 4 +-
.../src/bosdyn/bddf/data_writer.html | 4 +-
.../src/bosdyn/bddf/file_indexer.html | 4 +-
.../src/bosdyn/bddf/grpc_proto_reader.html | 4 +-
.../src/bosdyn/bddf/grpc_reader.html | 4 +-
.../src/bosdyn/bddf/grpc_service_reader.html | 4 +-
.../src/bosdyn/bddf/grpc_service_writer.html | 4 +-
.../src/bosdyn/bddf/message_reader.html | 4 +-
.../src/bosdyn/bddf/pod_series_reader.html | 4 +-
.../src/bosdyn/bddf/pod_series_writer.html | 4 +-
.../bosdyn/bddf/protobuf_channel_reader.html | 4 +-
.../src/bosdyn/bddf/protobuf_reader.html | 4 +-
.../bosdyn/bddf/protobuf_series_writer.html | 4 +-
.../src/bosdyn/bddf/stream_data_reader.html | 4 +-
.../bosdyn-core/src/bosdyn/deprecated.html | 4 +-
.../bosdyn-core/src/bosdyn/geometry.html | 4 +-
.../python/bosdyn-core/src/bosdyn/util.html | 4 +-
.../src/bosdyn/mission/README.html | 4 +-
.../src/bosdyn/mission/client.html | 4 +-
.../src/bosdyn/mission/constants.html | 4 +-
.../src/bosdyn/mission/exceptions.html | 4 +-
.../src/bosdyn/mission/remote_client.html | 4 +-
.../src/bosdyn/mission/server_util.html | 4 +-
.../src/bosdyn/mission/util.html | 9 +-
.../bosdyn-orbit/src/bosdyn/orbit/README.html | 4 +-
.../bosdyn-orbit/src/bosdyn/orbit/client.html | 4 +-
.../src/bosdyn/orbit/exceptions.html | 4 +-
.../bosdyn-orbit/src/bosdyn/orbit/utils.html | 4 +-
.../bosdyn-scout/src/bosdyn/scout/README.html | 4 +-
.../bosdyn-scout/src/bosdyn/scout/client.html | 4 +-
.../src/bosdyn/scout/exceptions.html | 4 +-
.../bosdyn-scout/src/bosdyn/scout/utils.html | 4 +-
docs/html/python/examples/README.html | 4 +-
.../examples/animation_recorder/README.html | 4 +-
.../python/examples/area_callback/README.html | 4 +-
.../arm_and_mobility_command/README.html | 4 +-
.../arm_constrained_manipulation/README.html | 4 +-
.../html/python/examples/arm_door/README.html | 4 +-
.../examples/arm_force_control/README.html | 4 +-
.../python/examples/arm_freeze/README.html | 4 +-
.../html/python/examples/arm_gaze/README.html | 4 +-
.../python/examples/arm_gcode/README.html | 4 +-
.../python/examples/arm_grasp/README.html | 4 +-
.../arm_grasp_carry_overrides/README.html | 4 +-
.../arm_impedance_control/README.html | 4 +-
.../examples/arm_joint_move/README.html | 4 +-
.../python/examples/arm_simple/README.html | 4 +-
.../examples/arm_stow_unstow/README.html | 4 +-
.../examples/arm_surface_contact/README.html | 4 +-
.../examples/arm_trajectory/README.html | 4 +-
.../examples/arm_walk_to_object/README.html | 4 +-
.../html/python/examples/arm_wasd/README.html | 4 +-
.../examples/arm_with_body_follow/README.html | 4 +-
.../python/examples/auto_return/README.html | 4 +-
.../python/examples/bddf_download/README.html | 4 +-
.../python/examples/cloud_upload/README.html | 4 +-
.../python/examples/comms_mapping/README.html | 4 +-
.../python/examples/comms_test/README.html | 4 +-
.../python/examples/core_io_gpio/README.html | 4 +-
.../data_acquisition_service/README.html | 4 +-
.../signals_coreio_modem_plugin/README.html | 4 +-
.../python/examples/data_buffer/README.html | 4 +-
.../python/examples/data_service/README.html | 4 +-
.../python/examples/directory/README.html | 4 +-
.../examples/disable_ir_emission/README.html | 4 +-
docs/html/python/examples/docking/README.html | 4 +-
.../python/examples/docs/arm_examples.html | 4 +-
.../docs/autonomy_and_missions_examples.html | 4 +-
.../examples/docs/basic_service_examples.html | 4 +-
.../docs/data_acquisition_examples.html | 4 +-
.../examples/docs/joint_control_examples.html | 4 +-
.../examples/docs/logging_examples.html | 4 +-
docs/html/python/examples/docs/orbit.html | 4 +-
.../examples/docs/payloads_examples.html | 4 +-
.../perception_world_objects_examples.html | 4 +-
.../docs/robot_behavior_examples.html | 4 +-
.../python/examples/edit_autowalk/README.html | 4 +-
docs/html/python/examples/estop/README.html | 4 +-
.../python/examples/extensions/README.html | 4 +-
.../extract_images_from_walk/README.html | 4 +-
.../python/examples/fan_command/README.html | 4 +-
.../examples/fiducial_follow/README.html | 4 +-
.../frame_trajectory_command/README.html | 4 +-
.../get_depth_plus_visual_image/README.html | 4 +-
.../python/examples/get_image/README.html | 4 +-
.../examples/get_mission_state/README.html | 4 +-
.../examples/get_robot_state/README.html | 4 +-
.../get_robot_state_async/README.html | 4 +-
.../examples/get_world_objects/README.html | 4 +-
.../python/examples/gps_service/README.html | 4 +-
.../README.html | 4 +-
.../graph_nav_command_line/README.html | 4 +-
.../graph_nav_extract_point_cloud/README.html | 4 +-
.../examples/graph_nav_view_gps/README.html | 4 +-
.../examples/graph_nav_view_map/README.html | 4 +-
.../gripper_camera_params/README.html | 4 +-
.../python/examples/hello_spot/README.html | 4 +-
.../examples/inverse_kinematics/README.html | 4 +-
.../python/examples/joint_control/README.html | 4 +-
.../python/examples/log_status/README.html | 4 +-
docs/html/python/examples/logging/README.html | 4 +-
.../examples/metrics_over_coreio/README.html | 4 +-
.../mission_question_answerer/README.html | 4 +-
.../examples/mission_recorder/README.html | 4 +-
.../network_compute_bridge/README.html | 4 +-
.../fire_extinguisher_server/README.html | 4 +-
.../network_request_callback/README.html | 4 +-
.../examples/orbit/anomalies/README.html | 4 +-
.../python/examples/orbit/backups/README.html | 4 +-
.../orbit/export_run_archives/README.html | 4 +-
.../export_site_walk_archives/README.html | 4 +-
.../examples/orbit/hello_orbit/README.html | 4 +-
.../examples/orbit/runs_response/README.html | 4 +-
.../orbit/schedule_mission/README.html | 4 +-
.../orbit/send_robot_back_to_dock/README.html | 4 +-
.../README.html | 4 +-
.../python/examples/orbit/webhook/README.html | 4 +-
.../orbit/webhook_integration/README.html | 4 +-
.../html/python/examples/payloads/README.html | 4 +-
.../post_docking_callbacks/README.html | 4 +-
.../html/python/examples/ray_cast/README.html | 4 +-
.../examples/record_autowalk/README.html | 4 +-
.../remote_mission_service/README.html | 4 +-
.../examples/replay_mission/README.html | 4 +-
.../examples/reset_safety_stop/README.html | 4 +-
.../python/examples/ricoh_theta/README.html | 4 +-
.../examples/self_registration/README.html | 4 +-
.../custom_parameter_image_server/README.html | 4 +-
.../custom_parameter_ncb_worker/README.html | 4 +-
.../README.html | 4 +-
.../examples/service_faults/README.html | 4 +-
.../html/python/examples/spot_cam/README.html | 4 +-
.../python/examples/spot_light/README.html | 4 +-
.../spot_tensorflow_detector/README.html | 4 +-
docs/html/python/examples/stance/README.html | 4 +-
.../examples/stitch_front_images/README.html | 4 +-
.../examples/tester_programs/README.html | 4 +-
.../python/examples/time_sync/README.html | 4 +-
.../upload_choreographed_sequence/README.html | 4 +-
.../examples/user_nogo_regions/README.html | 4 +-
.../examples/velodyne_client/README.html | 4 +-
.../python/examples/visualizer/README.html | 4 +-
docs/html/python/examples/wasd/README.html | 4 +-
.../world_object_mutations/README.html | 4 +-
.../README.html | 4 +-
.../examples/xbox_controller/README.html | 4 +-
docs/html/search.html | 4 +-
docs/html/searchindex.js | 2 +-
docs/payload/docker_containers.md | 29 +-
docs/python/quickstart.md | 20 +-
docs/release_notes.md | 38 +-
....whl => bosdyn_api-4.1.1-py3-none-any.whl} | Bin 391001 -> 391203 bytes
...horeography_client-4.1.1-py3-none-any.whl} | Bin 22516 -> 22516 bytes
...choreography_protos-4.1.0-py3-none-any.whl | Bin 1738 -> 0 bytes
...choreography_protos-4.1.1-py3-none-any.whl | Bin 0 -> 1737 bytes
...l => bosdyn_client-4.1.1-py3-none-any.whl} | Bin 282663 -> 282712 bytes
...whl => bosdyn_core-4.1.1-py3-none-any.whl} | Bin 32199 -> 32199 bytes
... => bosdyn_mission-4.1.1-py3-none-any.whl} | Bin 16720 -> 16807 bytes
...hl => bosdyn_orbit-4.1.1-py3-none-any.whl} | Bin 12101 -> 12099 bytes
...hl => bosdyn_scout-4.1.1-py3-none-any.whl} | Bin 10860 -> 10860 bytes
protos/bosdyn/api/mission/nodes.proto | 26 +-
protos/bosdyn/api/proto_reference.md | 5 +-
protos/bosdyn/api/service_customization.proto | 8 +
protos/bosdyn/api/spot/robot_command.proto | 4 +
protos/bosdyn/api/spot_cam/LED.proto | 1 +
protos/bosdyn/api/spot_cam/audio.proto | 1 +
protos/bosdyn/api/spot_cam/camera.proto | 1 +
protos/bosdyn/api/spot_cam/compositor.proto | 1 +
protos/bosdyn/api/spot_cam/health.proto | 1 +
protos/bosdyn/api/spot_cam/logging.proto | 1 +
protos/bosdyn/api/spot_cam/network.proto | 3 +-
protos/bosdyn/api/spot_cam/power.proto | 1 +
protos/bosdyn/api/spot_cam/ptz.proto | 1 +
protos/bosdyn/api/spot_cam/service.proto | 2 +
.../bosdyn/api/spot_cam/streamquality.proto | 1 +
protos/bosdyn/api/spot_cam/version.proto | 1 +
.../src/bosdyn/client/graph_nav.py | 10 +
.../bosdyn-mission/src/bosdyn/mission/util.py | 38 +-
python/examples/spot_cam/ptz.py | 10 +-
509 files changed, 1881 insertions(+), 1535 deletions(-)
rename prebuilt/{bosdyn_api-4.1.0-py3-none-any.whl => bosdyn_api-4.1.1-py3-none-any.whl} (77%)
rename prebuilt/{bosdyn_choreography_client-4.1.0-py3-none-any.whl => bosdyn_choreography_client-4.1.1-py3-none-any.whl} (86%)
delete mode 100644 prebuilt/bosdyn_choreography_protos-4.1.0-py3-none-any.whl
create mode 100644 prebuilt/bosdyn_choreography_protos-4.1.1-py3-none-any.whl
rename prebuilt/{bosdyn_client-4.1.0-py3-none-any.whl => bosdyn_client-4.1.1-py3-none-any.whl} (89%)
rename prebuilt/{bosdyn_core-4.1.0-py3-none-any.whl => bosdyn_core-4.1.1-py3-none-any.whl} (82%)
rename prebuilt/{bosdyn_mission-4.1.0-py3-none-any.whl => bosdyn_mission-4.1.1-py3-none-any.whl} (51%)
rename prebuilt/{bosdyn_orbit-4.1.0-py3-none-any.whl => bosdyn_orbit-4.1.1-py3-none-any.whl} (78%)
rename prebuilt/{bosdyn_scout-4.1.0-py3-none-any.whl => bosdyn_scout-4.1.1-py3-none-any.whl} (75%)
diff --git a/README.md b/README.md
index d24864585..948bf1c97 100644
--- a/README.md
+++ b/README.md
@@ -22,7 +22,7 @@ The SDK consists of:
- [Spot API protocol definition](protos/bosdyn/api/README.md). This reference guide covers the details of the protocol applications used to communicate to Spot. Application developers who wish to use a language other than Python can implement clients that speak the protocol.
- [Spot SDK Repository](https://github.com/boston-dynamics/spot-sdk). The GitHub repo where all of the Spot SDK code is hosted.
-This is version 4.1.0 of the SDK. Please review the [Release Notes](docs/release_notes.md) to see what has changed.
+This is version 4.1.1 of the SDK. Please review the [Release Notes](docs/release_notes.md) to see what has changed.
## Contents
diff --git a/VERSION b/VERSION
index ee74734aa..627a3f43a 100644
--- a/VERSION
+++ b/VERSION
@@ -1 +1 @@
-4.1.0
+4.1.1
diff --git a/docs/concepts/autonomy/localization.md b/docs/concepts/autonomy/localization.md
index 957b4ba28..f3e15dee8 100644
--- a/docs/concepts/autonomy/localization.md
+++ b/docs/concepts/autonomy/localization.md
@@ -44,6 +44,8 @@ This determination is correlated with the amount of change in the environment wh
When site changes cause the localization status to be `STATUS_LOST`, a new map of the site should be recorded.
+The lost detector can be adjusted for individual edges in the map or for an entire navigation command by setting the `LostDetectorStrictness` in either the edge `Annotations`, or the `TravelParams` of a command. This adjustment can be used to make the detector more sensitive or more permissive depending on the needs of the application.
+
## Stuck robots
The GraphNav service uses a system of constraints to keep the robot relatively close to the recorded route (roughly within a 3m corridor).
diff --git a/docs/concepts/choreography/custom_gait.md b/docs/concepts/choreography/custom_gait.md
index 80d5fa630..bc801146d 100644
--- a/docs/concepts/choreography/custom_gait.md
+++ b/docs/concepts/choreography/custom_gait.md
@@ -30,6 +30,24 @@ A Hildebrand-style gait diagram (see [wikipedia](https://en.wikipedia.org/wiki/G
Several preset gait patterns are provided in a pulldown menu where the "Reset to Default Parameters" button is for most moves. Select the desired preset, then click the "Apply" button. Note that presets only modify a subset of parameters. Presets with the prefix "gait" will only impact `cycle_duration` and phase parameters.
+## Animated Custom Gaits
+
+Custom Gait can also be defined using animation data as input, which the controller will then seek to imitate.
+If you create a valid .cha file with a Spot gait cycle (See section [Valid CHA for custom gait cycles](#valid-cha-for-custom-gait-cycles)) you can then load it in Choreographer and choose that file as the basis for Custom Gait by clicking `Show animated cycle params` on a Custom Gait Move and picking the animation from the `Animation name` dropdown. The rest of the `Animated Cycle` section contains a number of checkboxes and sliders to enable/disable various components of the input animation and to make small adjustments to offsets and amplitude (See each parameter's help text in Choreographer for more details). Enabling all checkboxes and leaving the sliders at their default values will make the Custom Gait controller do its best to match the input animation. However, be aware that most of the same limitations apply as if the gait was defined by sliders (e.g. duty cycle, body offset limits, and cycle duration).
+A current limitation is that while animations can have 2 swing phases for each leg, only the 1st swing can currently be used for swing-xy motion from animation.
+
+### Valid CHA for custom gait cycles
+
+See [Animation File Specification](animation_file_specification.md) for details about the CHA format and [Animations In Choreographer](animations_in_choreographer.md) for a high-level overview.
+Beyond that, a valid CHA file to use with custom gait requires the following:
+
+- The CHA file needs to have the `custom_gait_cycle` option set in the header. **NB**: CHA files with the `custom_gait_cycle` option does **NOT** show up in the `Animation` section of the Choreographer library. It will instead show up in the `animated_cycle_params.animation_name` drop down menu of a CustomGait move.
+- each foot must lift off and touch down at least once, but no more than twice
+- the first and last keyframe should match with the exception of base translate x, in case the animation moves forward.
+- unlike other cha files, it is valid for feet to be in the air at the first and last frame, which allows for swings to cross the transition point of the custom gait loop
+- the robot can be either translating forward or stepping in place with feet sliding backwards during the animated gait cycle cha, but for the best result the animation should be meant to translate at a constant velocity
+- Some swing data still can not be pulled from the cha, so you may still need to adjust swing velocities and velocity limits...", "
+
## Tips for Configuring Custom Gait
- Fast stepping is often easier than slow stepping, especially when fewer feet are on the ground. Try starting with a faster `cycle_duration`, then gradually increasing that value to slow the cadence to your preferred speed. Exact value will depend on gait pattern, especially the duty factor, but `cycle_duration = 0.6 seconds` or even faster may be required from some patterns.
@@ -46,43 +64,56 @@ Several preset gait patterns are provided in a pulldown menu where the "Reset to
## Parameter Reference
-| Parameter | Effect |
-| ------------------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
-| cycle_duration | The duration (s) of a full gait cycle. |
-| liftoff_phase | When within the gait cycle a particular leg lifts off the ground. |
-| touchdown_phase | When within the gait cycle a particular leg steps onto the ground. |
-| two_LEG_swings | Determines whether that particular leg will have two steps within the gait cycle. If active, a second set of liftoff_phase and touchdown_phase must be specified. |
-| max_velocity | The maximum translational velocity (m/s) command that will be accepted. |
-| max_yaw_rate | The maximum turn rate (rad/s) command that will be accepted. |
-| acceleration_scaling | How much to limit steering acceleration. 1 is normal. Smaller is less acceleration. |
-| com_height | Height (m) of the Center-of-Mass above the ground. |
-| body_translation_offset | Horizontal offset (m) of the Center-of-Mass from a neutral posture. (x-forward, y-left). This is a constant offset that is additive with any phase-dependent offset specified in a Body-track move. |
-| body_rotation_offset | Orientation offset (rad) from a neutral posture. This is a constant offset that is additive with any phase-dependent offset specified in a Body-track move. |
-| low_speed_body_fraction | How much to scale down the body motion when navigating at low speeds. |
-| stance_shape | The relative position of the feet when they are on the ground. |
-| stance_shape.length | Distance (m) between front and hind feet. |
-| stance_shape.width | Distance (m) between left and right feet. |
-| stance_shape.front_wider_than_hind | Difference (m) between the FL<-->FR distance and the HL<-->HR distance. Positive means front feet are wider. |
-| stance_shape.left_longer_than_right | Difference (m) between the FL<-->HL distance and the FR<-->HR distance. Positive means the left feet are farther apart. |
-| stance_shape.left_forward_of_right | Distance (m) to shift the FL and HL feet forward relative to the FR and HR feet. Negative means shifted backwards. |
-| general_swing_params | Swing parameters that apply to all legs not configured to use leg-specific swing parameters. |
-| use_LEG_swing_params | Configures a particular leg to use leg-specific swing parameters rather than the general set. |
-| LEG_swing_params | Swing parameters used by a particular leg if configured to use leg-specific swing parameters. |
-| SwingParams.height | How high (m) to lift the foot. Request may not be achievable due to configured vertical_speed, vertical_acceleration, and swing duration. |
-| SwingParams.liftoff_speed | How fast (m/s) to start lifting the foot at the moment of liftoff. |
-| SwingParams.vertical_speed | How fast (m/s) to lift and lower the foot. |
-| SwingParams.vertical_acceleration | How fast to accelerate (m/s/s) the foot vertically to achieve the configured vertical_speed. |
-| SwingParams.overlay_outside | How far (m) to swing the foot to the outside (negative for inside) relative to a straight-line step. |
-| SwingParams.overlay_forward | How far (m) to swing the foot forward (negative for backward) relative to a straight-line step. |
-| SwingParams.low_speed_fraction | How much to reduce the swing parameters when navigating at low speed. |
-| mu | Estimated coefficient of friction between the ground and the feet. Setting this accurately will improve reliability. |
-| timing_stiffness | 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 | 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 | If enabled, CustomGait will attempt to avoid obstacles. More challenging gaits may require significant obstacle avoidance padding to reliably avoid collisions. |
-| obstacle_avoidance_padding | How far (m) to stay away from obstacles. More challenging gaits may require significant padding to reliably avoid collisions. |
-| enable_perception_terrain_height | If enabled, will use perception to determine the shape of the terrain. Can be disabled if operating on a flat floor. |
-| enable_perception_step_placement | If enabled, will use perception to determine good vs bad locations to step. Can be disabled if operating on a flat floor. |
-| maximum_stumble_distance | If Spot stumbles more than this distance (m), it will give up and freeze. |
-| stand_in_place | Stand rather than stepping in place when not moving. |
-| standard_final_stance | Go back to a standard rectangular stance when ending the gait. Otherwise maintains the customized stance shape. |
-| trip_sensitivity | 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. |
+| Parameter | Effect |
+| ----------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| cycle_duration | The duration (s) of a full gait cycle. |
+| liftoff_phase | When within the gait cycle a particular leg lifts off the ground. |
+| touchdown_phase | When within the gait cycle a particular leg steps onto the ground. |
+| two_LEG_swings | Determines whether that particular leg will have two steps within the gait cycle. If active, a second set of liftoff_phase and touchdown_phase must be specified. |
+| max_velocity | The maximum translational velocity (m/s) command that will be accepted. |
+| max_yaw_rate | The maximum turn rate (rad/s) command that will be accepted. |
+| acceleration_scaling | How much to limit steering acceleration. 1 is normal. Smaller is less acceleration. |
+| com_height | Height (m) of the Center-of-Mass above the ground. |
+| body_translation_offset | Horizontal offset (m) of the Center-of-Mass from a neutral posture. (x-forward, y-left). This is a constant offset that is additive with any phase-dependent offset specified in a Body-track move. |
+| body_rotation_offset | Orientation offset (rad) from a neutral posture. This is a constant offset that is additive with any phase-dependent offset specified in a Body-track move. |
+| low_speed_body_fraction | How much to scale down the body motion when navigating at low speeds. |
+| stance_shape | The relative position of the feet when they are on the ground. |
+| stance_shape.length | Distance (m) between front and hind feet. |
+| stance_shape.width | Distance (m) between left and right feet. |
+| stance_shape.front_wider_than_hind | Difference (m) between the FL<-->FR distance and the HL<-->HR distance. Positive means front feet are wider. |
+| stance_shape.left_longer_than_right | Difference (m) between the FL<-->HL distance and the FR<-->HR distance. Positive means the left feet are farther apart. |
+| stance_shape.left_forward_of_right | Distance (m) to shift the FL and HL feet forward relative to the FR and HR feet. Negative means shifted backwards. |
+| general_swing_params | Swing parameters that apply to all legs not configured to use leg-specific swing parameters. |
+| use_LEG_swing_params | Configures a particular leg to use leg-specific swing parameters rather than the general set. |
+| LEG_swing_params | Swing parameters used by a particular leg if configured to use leg-specific swing parameters. |
+| SwingParams.height | How high (m) to lift the foot. Request may not be achievable due to configured vertical_speed, vertical_acceleration, and swing duration. |
+| SwingParams.liftoff_speed | How fast (m/s) to start lifting the foot at the moment of liftoff. |
+| SwingParams.vertical_speed | How fast (m/s) to lift and lower the foot. |
+| SwingParams.vertical_acceleration | How fast to accelerate (m/s/s) the foot vertically to achieve the configured vertical_speed. |
+| SwingParams.overlay_outside | How far (m) to swing the foot to the outside (negative for inside) relative to a straight-line step. |
+| SwingParams.overlay_forward | How far (m) to swing the foot forward (negative for backward) relative to a straight-line step. |
+| SwingParams.low_speed_fraction | How much to reduce the swing parameters when navigating at low speed. |
+| mu | Estimated coefficient of friction between the ground and the feet. Setting this accurately will improve reliability. |
+| timing_stiffness | 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 | 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 | If enabled, CustomGait will attempt to avoid obstacles. More challenging gaits may require significant obstacle avoidance padding to reliably avoid collisions. |
+| obstacle_avoidance_padding | How far (m) to stay away from obstacles. More challenging gaits may require significant padding to reliably avoid collisions. |
+| enable_perception_terrain_height | If enabled, will use perception to determine the shape of the terrain. Can be disabled if operating on a flat floor. |
+| enable_perception_step_placement | If enabled, will use perception to determine good vs bad locations to step. Can be disabled if operating on a flat floor. |
+| maximum_stumble_distance | If Spot stumbles more than this distance (m), it will give up and freeze. |
+| stand_in_place | Stand rather than stepping in place when not moving. |
+| standard_final_stance | Go back to a standard rectangular stance when ending the gait. Otherwise maintains the customized stance shape. |
+| trip_sensitivity | 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.animation_name | Name of animation gait cycle file to use for extracting parameters. This list only shows CHA files that include the option: 'custom_gait_cycle'. |
+| animated_cycle_params.enable_animation_duration | Use cycle duration from the animated gait cycle. This will overwrite the parameter: \n'Cycle duration'. |
+| animated_cycle_params.enable_leg_timing | Use leg timing from the animated gait cycle. This will overwrite all swing parameters: \n['Fl swing', 'two fl swing', 'fr swing', 'two fr swing', 'hl swing', 'two hl swing', 'hr swing', 'two hr swing']. |
+| animated_cycle_params.enable_stance_shape | Use stance shape from the animated gait cycle. This will overwrite all Stance Shape parameters: \n['length', 'width', 'front wider than hind', 'left longer than right', 'left forward of right']. |
+| animated_cycle_params.enable_body_offset | The body offset refers to the offset from the nominal standing posture to the average of the animated position and orientation of the body. |
+| animated_cycle_params.enable_body_motion | The body motion refers to the cyclic part of the body animation relative to the average body posture of the animation. |
+| animated_cycle_params.enable_swing_xy | Use XY swing trajectories from the animated custom gait cycle. This will override the swing overlay sliders, both in General swing params, and those specific to each leg. |
+| animated_cycle_params.body_x_multiplier | Multiplier for body animation on translational x in body frame. |
+| animated_cycle_params.body_y_multiplier | Multiplier for body animation on translational y in body frame. |
+| animated_cycle_params.body_z_multiplier | Multiplier for body animation on translational z in body frame. |
+| animated_cycle_params.body_roll_multiplier | Multiplier for body animation on roll. |
+| animated_cycle_params.body_pitch_multiplier | Multiplier for body animation on pitch. |
+| animated_cycle_params.body_yaw_multiplier | Multiplier for body animation on yaw. |
diff --git a/docs/concepts/data_acquisition_overview.md b/docs/concepts/data_acquisition_overview.md
index 717206667..afee277b9 100644
--- a/docs/concepts/data_acquisition_overview.md
+++ b/docs/concepts/data_acquisition_overview.md
@@ -58,7 +58,7 @@ Users can download acquired data using the tablet or any other client through a
## System architecture
-The functionality described above is architected in the system as shown in the diagram below. During system initialization, the `Data Acquisition` service aggregates the list of capture capabilities from `Image` services, `NetworkComputeBridge` services (described [here](./network_compute_bridge.md)) and `Data Acquisition Plugin` services. The users configure actions in the tablet as collections of capabilities. The tablet, Scout, an application using the Spot SDK, or the mission service sends acquisition requests to the `Data Acquisition` service to acquire data. The `Data Acquisition` service farms out the acquisition requests to the right `Image` service, `NetworkComputeBridge` service and `Data Acquisition Plugin` service. `Data Acquisition Plugin` services save their captures directly to the `Data Acquisition Store` service through helper functions, while `Image` and `Network Compute Bridge` services send their data back to the `Data Acquisition` service, which is then responsible for storing it to the `Data Acquisition Store` service. The `Data Acquisition Store` service writes the collected data to a database so they are available for download from the `REST` interface, as described [here](./data_buffer_overview.md#data-acquisition-download).
+The functionality described above is architected in the system as shown in the diagram below. During system initialization, the `Data Acquisition` service aggregates the list of capture capabilities from `Image` services, `NetworkComputeBridge` services (described [here](./network_compute_bridge.md)) and `Data Acquisition Plugin` services. The users configure actions in the tablet as collections of capabilities. The tablet, Orbit, an application using the Spot SDK, or the mission service sends acquisition requests to the `Data Acquisition` service to acquire data. The `Data Acquisition` service farms out the acquisition requests to the right `Image` service, `NetworkComputeBridge` service and `Data Acquisition Plugin` service. `Data Acquisition Plugin` services save their captures directly to the `Data Acquisition Store` service through helper functions, while `Image` and `Network Compute Bridge` services send their data back to the `Data Acquisition` service, which is then responsible for storing it to the `Data Acquisition Store` service. The `Data Acquisition Store` service writes the collected data to a database so they are available for download from the `REST` interface, as described [here](./data_buffer_overview.md#data-acquisition-download).

diff --git a/docs/concepts/data_acquisition_thermal_raw.md b/docs/concepts/data_acquisition_thermal_raw.md
index fa7cf12c8..fe546e220 100644
--- a/docs/concepts/data_acquisition_thermal_raw.md
+++ b/docs/concepts/data_acquisition_thermal_raw.md
@@ -54,7 +54,7 @@ with open(filename, 'rb') as f:
buffer = f.read()
try:
- # For .pgm and .raw files transferred from the tablet or downloaded from Scout
+ # For .pgm and .raw files transferred from the tablet or downloaded from Orbit
processed_data = numpy.frombuffer(buffer, dtype=f'{endianness}u2')
except ValueError:
# For .pgm and .raw files from the SpotCam+IR itself (using the Media Log service)
diff --git a/docs/concepts/geometry_and_frames.md b/docs/concepts/geometry_and_frames.md
index 98f4c4c31..11557aeab 100644
--- a/docs/concepts/geometry_and_frames.md
+++ b/docs/concepts/geometry_and_frames.md
@@ -26,7 +26,7 @@ The "body" frame describes the robot's position and orientation, as shown in the
Sensor frames describe the origin of a given sensor and its coordinate axes. The sensor messages from the robot, such as camera images or point clouds, will include the string frame name of the sensor. Sensor frames are commonly used to describe objects that were detected using the sensor.
-Objects can also be described using a frame. For example, a fiducial has an origin in the center of the tag, and x,y axes aligning with the tag axes and the z-axis pointing out of the page.
+Objects can also be described using a frame. For example, when looking directly at a fiducial, its origin is in the center of the tag, and it has an x-axis that points upwards, a y-axis that points left, and a z-axis that points out of the page.
As the robot moves around in the world, the relationship between the two frames can either stay the same always, or be non-static and dynamically changing. The transformation between an inertial frame and the robot's body frame will change as the robot moves. In contrast, the transformation between the robot's body and the camera frame will not change regardless of whether the robot is moving or not.
diff --git a/docs/concepts/network_compute_bridge.md b/docs/concepts/network_compute_bridge.md
index 4bb7d1cff..2c50f3ff3 100644
--- a/docs/concepts/network_compute_bridge.md
+++ b/docs/concepts/network_compute_bridge.md
@@ -46,4 +46,4 @@ The workers return any processed data through the `output_images` and `other_dat
## Parameterization
-Does your service require inputs or parameters? Do you want controls or widgets for those parameters to show up on the SpotApp android application or on Scout? Please refer to [this document](service_customization.md) to learn how to add parameters to a network compute bridge worker.
+Does your service require inputs or parameters? Do you want controls or widgets for those parameters to show up on the SpotApp android application or on Orbit? Please refer to [this document](service_customization.md) to learn how to add parameters to a network compute bridge worker.
diff --git a/docs/concepts/orbit/about_orbit.md b/docs/concepts/orbit/about_orbit.md
index c1aa2fe9e..8e7f81fc0 100644
--- a/docs/concepts/orbit/about_orbit.md
+++ b/docs/concepts/orbit/about_orbit.md
@@ -39,7 +39,25 @@ If done correctly, the web view should populate in the "Custom Web Views" button
### Custom WebViews
-Developers have the option to host web servers as an orbit extension (ports 21000-22000) that can then be pointed to as a web view. Due to these servers likely not have verified TLS certificates, the user will have to visit the direct URL, `https://ORBIT_IP:PORT/`, of the web server first to get around the privacy error described above.
+Developers can create and deploy web applications to Orbit using an Extension. The extension should serve the web application via HTTP on a port in the range 22101-22200. Orbit will proxy HTTPS requests on the port range 22001-22100 to the respective ports in the range 22101-22200. Clients should make requests to the range 22001-22100. `Custom WebViews` can be configured using this URL to present the extension's web application within the Orbit application itself.
+Note that the client requests are HTTPS. Orbit will use the same TLS certificate as the Orbit web application when proxying for the extension's web application.
+The port mapping is as follows:
+
+| Frontend | Backend |
+| -------- | ------- |
+| 22001 | 22101 |
+| 22002 | 22102 |
+| ... | ... |
+| 22100 | 22200 |
+
+In production environments, it is recommended to use the following in the `docker-compose.yml` of the Orbit Extension to ensure that the HTTP server is not accessible by external clients:
+
+ ...
+ ports:
+ - "127.0.0.1::"
+ ...
+
+Extensions can also host web servers as an Orbit extension within the port ranges 21000-22000 that can then be pointed to as a web view, though the user will have to visit the direct URL, `https://ORBIT_IP:PORT/`, of the web server first to get around the privacy error described in the [WebViews](#webviews) section. This port range does not support unencrypted HTTP servers as web views.
#### Note
diff --git a/docs/concepts/service_customization.md b/docs/concepts/service_customization.md
index 978fa46e2..eb0234a41 100644
--- a/docs/concepts/service_customization.md
+++ b/docs/concepts/service_customization.md
@@ -12,7 +12,7 @@ Spot 3.3 release features a new system for parameterizing 3rd party services. If
- UI on the Tablet application for actions containing parameters (either when recording a mission, or just performing actions in teleoperation).
- UI on the Tablet application for adjusting image parameters when streaming from a 3rd party image source.
-- UI on Scout for editing any autowalk action with parameters.
+- UI on Orbit for editing any autowalk action with parameters.
The following services support service customization:
@@ -64,7 +64,7 @@ The bool parameter allows users to turn things on and off. It is defined by the
Region of Interest, or ROI, allows users to specify a region of an image. It is defined by the `RegionOfInterestParam` and `RegionOfInterestParam.Spec` protobuf messages. As of 3.3, ROI params are limited to specifying rectangular regions, and really only work well for `Network Compute Bridge Worker` services. The tablet does not allow setting ROI for `Area Callback` services, but that will likely change in the future. Other services have limited ROI functionality.
-Region of interest is helpful to narrow down a search space if there is a lot going on in an image, and the camera can't be moved or zoomed in such a way that only the thing the user care's about is in frame. Users will be able to draw regions on live images using the tablet UI, and on images taken at record time when editing parameters in Scout.
+Region of interest is helpful to narrow down a search space if there is a lot going on in an image, and the camera can't be moved or zoomed in such a way that only the thing the user care's about is in frame. Users will be able to draw regions on live images using the tablet UI, and on images taken at record time when editing parameters in Orbit.
### Dictionary
diff --git a/docs/concepts/writing_services_for_data_acquisition.md b/docs/concepts/writing_services_for_data_acquisition.md
index 6556ee027..4876c71d7 100644
--- a/docs/concepts/writing_services_for_data_acquisition.md
+++ b/docs/concepts/writing_services_for_data_acquisition.md
@@ -51,7 +51,7 @@ Lastly, the `quality_percent` may be provided as a parameter for decoding the im
**Note:** The tablet and the on-robot data acquisition service makes requests for JPEG formatted images, so the `image_decode` function must at least be able to respond to a `image_format=image_pb2.Image.FORMAT_JPEG` to ensure that the camera payload can be viewed on the tablet.
-**Note:** Does your camera service require inputs or parameters? Do you want controls or widgets for those parameters to show up on the SpotApp android application or on Scout? Please refer to [this document](service_customization.md) to learn how to add parameters to a camera service.
+**Note:** Does your camera service require inputs or parameters? Do you want controls or widgets for those parameters to show up on the SpotApp android application or on Orbit? Please refer to [this document](service_customization.md) to learn how to add parameters to a camera service.
### Using Background Capture Threads
diff --git a/docs/html/.buildinfo b/docs/html/.buildinfo
index f21343447..e02f484ca 100644
--- a/docs/html/.buildinfo
+++ b/docs/html/.buildinfo
@@ -1,4 +1,4 @@
# Sphinx build info version 1
# This file hashes the configuration used when building these files. When it is not found, a full rebuild will be done.
-config: 05219855b5c7ab8d8ae99cb9f5342057
+config: 8bc2fe0b25485b1c007ecf47933391f4
tags: 645f666f9bcd5a90fca523b33c5a78b7
diff --git a/docs/html/README.html b/docs/html/README.html
index 920818cfc..8ce166c6f 100644
--- a/docs/html/README.html
+++ b/docs/html/README.html
@@ -4,7 +4,7 @@
- Spot SDK — Spot 4.1.0 documentation
+ Spot SDK — Spot 4.1.1 documentation
@@ -37,7 +37,7 @@