viam-sdk 0.3.0__py3-none-linux_armv6l.whl → 0.66.0__py3-none-linux_armv6l.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of viam-sdk might be problematic. Click here for more details.
- viam/__init__.py +29 -2
- viam/app/_logs.py +34 -0
- viam/app/app_client.py +2696 -0
- viam/app/billing_client.py +185 -0
- viam/app/data_client.py +2231 -0
- viam/app/ml_training_client.py +249 -0
- viam/app/provisioning_client.py +93 -0
- viam/app/viam_client.py +275 -0
- viam/components/arm/__init__.py +3 -26
- viam/components/arm/arm.py +123 -8
- viam/components/arm/client.py +37 -24
- viam/components/arm/service.py +35 -32
- viam/components/audio_in/__init__.py +24 -0
- viam/components/audio_in/audio_in.py +74 -0
- viam/components/audio_in/client.py +76 -0
- viam/components/audio_in/service.py +83 -0
- viam/components/audio_out/__init__.py +21 -0
- viam/components/audio_out/audio_out.py +72 -0
- viam/components/audio_out/client.py +67 -0
- viam/components/audio_out/service.py +63 -0
- viam/components/base/__init__.py +6 -11
- viam/components/base/base.py +134 -8
- viam/components/base/client.py +51 -23
- viam/components/base/service.py +33 -30
- viam/components/board/__init__.py +3 -12
- viam/components/board/board.py +247 -91
- viam/components/board/client.py +149 -83
- viam/components/board/service.py +63 -33
- viam/components/button/__init__.py +10 -0
- viam/components/button/button.py +41 -0
- viam/components/button/client.py +52 -0
- viam/components/button/service.py +46 -0
- viam/components/camera/__init__.py +3 -3
- viam/components/camera/camera.py +62 -27
- viam/components/camera/client.py +59 -27
- viam/components/camera/service.py +42 -65
- viam/components/component_base.py +28 -5
- viam/components/encoder/__init__.py +1 -1
- viam/components/encoder/client.py +25 -14
- viam/components/encoder/encoder.py +48 -10
- viam/components/encoder/service.py +14 -18
- viam/components/gantry/__init__.py +1 -13
- viam/components/gantry/client.py +80 -25
- viam/components/gantry/gantry.py +123 -9
- viam/components/gantry/service.py +51 -29
- viam/components/generic/__init__.py +1 -1
- viam/components/generic/client.py +21 -8
- viam/components/generic/generic.py +10 -2
- viam/components/generic/service.py +12 -7
- viam/components/gripper/__init__.py +3 -13
- viam/components/gripper/client.py +69 -21
- viam/components/gripper/gripper.py +123 -3
- viam/components/gripper/service.py +44 -22
- viam/components/input/__init__.py +1 -14
- viam/components/input/client.py +55 -23
- viam/components/input/input.py +106 -3
- viam/components/input/service.py +16 -21
- viam/components/motor/__init__.py +1 -21
- viam/components/motor/client.py +56 -33
- viam/components/motor/motor.py +127 -4
- viam/components/motor/service.py +33 -44
- viam/components/movement_sensor/__init__.py +1 -1
- viam/components/movement_sensor/client.py +102 -45
- viam/components/movement_sensor/movement_sensor.py +130 -61
- viam/components/movement_sensor/service.py +38 -41
- viam/components/pose_tracker/__init__.py +1 -1
- viam/components/pose_tracker/client.py +18 -7
- viam/components/pose_tracker/pose_tracker.py +4 -2
- viam/components/pose_tracker/service.py +12 -10
- viam/components/power_sensor/__init__.py +17 -0
- viam/components/power_sensor/client.py +86 -0
- viam/components/power_sensor/power_sensor.py +104 -0
- viam/components/power_sensor/service.py +72 -0
- viam/components/sensor/__init__.py +2 -1
- viam/components/sensor/client.py +26 -10
- viam/components/sensor/sensor.py +22 -4
- viam/components/sensor/service.py +20 -11
- viam/components/servo/__init__.py +1 -13
- viam/components/servo/client.py +47 -21
- viam/components/servo/service.py +15 -22
- viam/components/servo/servo.py +61 -2
- viam/components/switch/__init__.py +10 -0
- viam/components/switch/client.py +83 -0
- viam/components/switch/service.py +72 -0
- viam/components/switch/switch.py +98 -0
- viam/errors.py +10 -0
- viam/gen/app/agent/v1/agent_grpc.py +29 -0
- viam/gen/app/agent/v1/agent_pb2.py +47 -0
- viam/gen/app/agent/v1/agent_pb2.pyi +280 -0
- viam/gen/app/cloudslam/v1/__init__.py +0 -0
- viam/gen/app/cloudslam/v1/cloud_slam_grpc.py +70 -0
- viam/gen/app/cloudslam/v1/cloud_slam_pb2.py +54 -0
- viam/gen/app/cloudslam/v1/cloud_slam_pb2.pyi +384 -0
- viam/gen/app/data/v1/data_grpc.py +197 -8
- viam/gen/app/data/v1/data_pb2.py +238 -99
- viam/gen/app/data/v1/data_pb2.pyi +1222 -259
- viam/gen/app/datapipelines/__init__.py +0 -0
- viam/gen/app/datapipelines/v1/__init__.py +0 -0
- viam/gen/app/datapipelines/v1/data_pipelines_grpc.py +84 -0
- viam/gen/app/datapipelines/v1/data_pipelines_pb2.py +57 -0
- viam/gen/app/datapipelines/v1/data_pipelines_pb2.pyi +387 -0
- viam/gen/app/dataset/__init__.py +0 -0
- viam/gen/app/dataset/v1/__init__.py +0 -0
- viam/gen/app/dataset/v1/dataset_grpc.py +68 -0
- viam/gen/app/dataset/v1/dataset_pb2.py +44 -0
- viam/gen/app/dataset/v1/dataset_pb2.pyi +214 -0
- viam/gen/app/datasync/v1/data_sync_grpc.py +21 -4
- viam/gen/app/datasync/v1/data_sync_pb2.py +62 -128
- viam/gen/app/datasync/v1/data_sync_pb2.pyi +156 -199
- viam/gen/app/mlinference/__init__.py +0 -0
- viam/gen/app/mlinference/v1/__init__.py +0 -0
- viam/gen/app/mlinference/v1/ml_inference_grpc.py +28 -0
- viam/gen/app/mlinference/v1/ml_inference_pb2.py +23 -0
- viam/gen/app/mlinference/v1/ml_inference_pb2.pyi +63 -0
- viam/gen/app/mltraining/v1/ml_training_grpc.py +51 -3
- viam/gen/app/mltraining/v1/ml_training_pb2.py +135 -58
- viam/gen/app/mltraining/v1/ml_training_pb2.pyi +328 -39
- viam/gen/app/packages/v1/packages_grpc.py +15 -1
- viam/gen/app/packages/v1/packages_pb2.py +44 -64
- viam/gen/app/packages/v1/packages_pb2.pyi +75 -85
- viam/gen/app/v1/app_grpc.py +644 -3
- viam/gen/app/v1/app_pb2.py +695 -295
- viam/gen/app/v1/app_pb2.pyi +4488 -635
- viam/gen/app/v1/billing_grpc.py +53 -11
- viam/gen/app/v1/billing_pb2.py +94 -39
- viam/gen/app/v1/billing_pb2.pyi +391 -191
- viam/gen/app/v1/end_user_grpc.py +59 -0
- viam/gen/app/v1/end_user_pb2.py +55 -0
- viam/gen/app/v1/end_user_pb2.pyi +181 -0
- viam/gen/app/v1/robot_grpc.py +16 -1
- viam/gen/app/v1/robot_pb2.py +122 -94
- viam/gen/app/v1/robot_pb2.pyi +463 -123
- viam/gen/common/v1/common_pb2.py +87 -58
- viam/gen/common/v1/common_pb2.pyi +456 -149
- viam/gen/component/arm/v1/arm_grpc.py +58 -2
- viam/gen/component/arm/v1/arm_pb2.py +68 -51
- viam/gen/component/arm/v1/arm_pb2.pyi +108 -42
- viam/gen/component/audioin/__init__.py +0 -0
- viam/gen/component/audioin/v1/__init__.py +0 -0
- viam/gen/component/audioin/v1/audioin_grpc.py +54 -0
- viam/gen/component/audioin/v1/audioin_pb2.py +34 -0
- viam/gen/component/audioin/v1/audioin_pb2.pyi +94 -0
- viam/gen/component/audioinput/v1/audioinput_grpc.py +25 -2
- viam/gen/component/audioinput/v1/audioinput_pb2.py +36 -31
- viam/gen/component/audioinput/v1/audioinput_pb2.pyi +22 -22
- viam/gen/component/audioout/__init__.py +0 -0
- viam/gen/component/audioout/v1/__init__.py +0 -0
- viam/gen/component/audioout/v1/audioout_grpc.py +54 -0
- viam/gen/component/audioout/v1/audioout_pb2.py +32 -0
- viam/gen/component/audioout/v1/audioout_pb2.pyi +47 -0
- viam/gen/component/base/v1/base_grpc.py +42 -2
- viam/gen/component/base/v1/base_pb2.py +58 -47
- viam/gen/component/base/v1/base_pb2.pyi +65 -30
- viam/gen/component/board/v1/board_grpc.py +59 -7
- viam/gen/component/board/v1/board_pb2.py +94 -73
- viam/gen/component/board/v1/board_pb2.pyi +165 -68
- viam/gen/component/button/__init__.py +0 -0
- viam/gen/component/button/v1/__init__.py +0 -0
- viam/gen/component/button/v1/button_grpc.py +38 -0
- viam/gen/component/button/v1/button_pb2.py +28 -0
- viam/gen/component/button/v1/button_pb2.pyi +39 -0
- viam/gen/component/camera/v1/camera_grpc.py +38 -2
- viam/gen/component/camera/v1/camera_pb2.py +60 -43
- viam/gen/component/camera/v1/camera_pb2.pyi +191 -37
- viam/gen/component/encoder/v1/encoder_grpc.py +25 -2
- viam/gen/component/encoder/v1/encoder_pb2.py +36 -31
- viam/gen/component/encoder/v1/encoder_pb2.pyi +15 -15
- viam/gen/component/gantry/v1/gantry_grpc.py +47 -2
- viam/gen/component/gantry/v1/gantry_pb2.py +56 -43
- viam/gen/component/gantry/v1/gantry_pb2.pyi +67 -31
- viam/gen/component/generic/v1/generic_grpc.py +16 -2
- viam/gen/component/generic/v1/generic_pb2.py +16 -11
- viam/gen/component/gripper/v1/gripper_grpc.py +44 -2
- viam/gen/component/gripper/v1/gripper_pb2.py +48 -35
- viam/gen/component/gripper/v1/gripper_pb2.pyi +62 -24
- viam/gen/component/inputcontroller/v1/input_controller_grpc.py +28 -2
- viam/gen/component/inputcontroller/v1/input_controller_pb2.py +46 -41
- viam/gen/component/inputcontroller/v1/input_controller_pb2.pyi +32 -36
- viam/gen/component/motor/v1/motor_grpc.py +51 -2
- viam/gen/component/motor/v1/motor_pb2.py +78 -67
- viam/gen/component/motor/v1/motor_pb2.pyi +75 -46
- viam/gen/component/movementsensor/v1/movementsensor_grpc.py +48 -2
- viam/gen/component/movementsensor/v1/movementsensor_pb2.py +70 -63
- viam/gen/component/movementsensor/v1/movementsensor_pb2.pyi +84 -57
- viam/gen/component/posetracker/v1/pose_tracker_grpc.py +19 -2
- viam/gen/component/posetracker/v1/pose_tracker_pb2.py +26 -21
- viam/gen/component/posetracker/v1/pose_tracker_pb2.pyi +9 -13
- viam/gen/component/powersensor/__init__.py +0 -0
- viam/gen/component/powersensor/v1/__init__.py +0 -0
- viam/gen/component/powersensor/v1/powersensor_grpc.py +62 -0
- viam/gen/component/powersensor/v1/powersensor_pb2.py +42 -0
- viam/gen/component/powersensor/v1/powersensor_pb2.pyi +124 -0
- viam/gen/component/sensor/v1/sensor_grpc.py +21 -5
- viam/gen/component/sensor/v1/sensor_pb2.py +18 -22
- viam/gen/component/sensor/v1/sensor_pb2.pyi +1 -69
- viam/gen/component/servo/v1/servo_grpc.py +28 -2
- viam/gen/component/servo/v1/servo_pb2.py +42 -37
- viam/gen/component/servo/v1/servo_pb2.pyi +22 -26
- viam/gen/component/switch/__init__.py +0 -0
- viam/gen/component/switch/v1/__init__.py +0 -0
- viam/gen/component/switch/v1/switch_grpc.py +54 -0
- viam/gen/component/switch/v1/switch_pb2.py +40 -0
- viam/gen/component/switch/v1/switch_pb2.pyi +116 -0
- viam/gen/component/testecho/v1/testecho_grpc.py +15 -0
- viam/gen/component/testecho/v1/testecho_pb2.py +29 -26
- viam/gen/component/testecho/v1/testecho_pb2.pyi +16 -20
- viam/gen/module/v1/module_grpc.py +18 -0
- viam/gen/module/v1/module_pb2.py +36 -33
- viam/gen/module/v1/module_pb2.pyi +39 -34
- viam/gen/opentelemetry/__init__.py +0 -0
- viam/gen/opentelemetry/proto/__init__.py +0 -0
- viam/gen/opentelemetry/proto/common/__init__.py +0 -0
- viam/gen/opentelemetry/proto/common/v1/__init__.py +0 -0
- viam/gen/opentelemetry/proto/common/v1/common_grpc.py +0 -0
- viam/gen/opentelemetry/proto/common/v1/common_pb2.py +27 -0
- viam/gen/opentelemetry/proto/common/v1/common_pb2.pyi +208 -0
- viam/gen/opentelemetry/proto/resource/__init__.py +0 -0
- viam/gen/opentelemetry/proto/resource/v1/__init__.py +0 -0
- viam/gen/opentelemetry/proto/resource/v1/resource_grpc.py +0 -0
- viam/gen/opentelemetry/proto/resource/v1/resource_pb2.py +18 -0
- viam/gen/opentelemetry/proto/resource/v1/resource_pb2.pyi +59 -0
- viam/gen/opentelemetry/proto/trace/__init__.py +0 -0
- viam/gen/opentelemetry/proto/trace/v1/__init__.py +0 -0
- viam/gen/opentelemetry/proto/trace/v1/trace_grpc.py +0 -0
- viam/gen/opentelemetry/proto/trace/v1/trace_pb2.py +37 -0
- viam/gen/opentelemetry/proto/trace/v1/trace_pb2.pyi +402 -0
- viam/gen/proto/rpc/examples/echo/v1/echo_grpc.py +12 -0
- viam/gen/proto/rpc/examples/echo/v1/echo_pb2.py +25 -22
- viam/gen/proto/rpc/examples/echo/v1/echo_pb2.pyi +13 -17
- viam/gen/proto/rpc/examples/echoresource/v1/echoresource_grpc.py +12 -0
- viam/gen/proto/rpc/examples/echoresource/v1/echoresource_pb2.py +23 -20
- viam/gen/proto/rpc/examples/echoresource/v1/echoresource_pb2.pyi +13 -17
- viam/gen/proto/rpc/v1/auth_grpc.py +11 -0
- viam/gen/proto/rpc/v1/auth_pb2.py +27 -24
- viam/gen/proto/rpc/v1/auth_pb2.pyi +12 -16
- viam/gen/proto/rpc/webrtc/v1/grpc_pb2.py +35 -32
- viam/gen/proto/rpc/webrtc/v1/grpc_pb2.pyi +37 -41
- viam/gen/proto/rpc/webrtc/v1/signaling_grpc.py +15 -0
- viam/gen/proto/rpc/webrtc/v1/signaling_pb2.py +62 -57
- viam/gen/proto/rpc/webrtc/v1/signaling_pb2.pyi +78 -69
- viam/gen/provisioning/__init__.py +0 -0
- viam/gen/provisioning/v1/__init__.py +0 -0
- viam/gen/provisioning/v1/provisioning_grpc.py +59 -0
- viam/gen/provisioning/v1/provisioning_pb2.py +45 -0
- viam/gen/provisioning/v1/provisioning_pb2.pyi +229 -0
- viam/gen/robot/v1/robot_grpc.py +144 -15
- viam/gen/robot/v1/robot_pb2.py +193 -119
- viam/gen/robot/v1/robot_pb2.pyi +565 -137
- viam/gen/service/datamanager/v1/data_manager_grpc.py +20 -2
- viam/gen/service/datamanager/v1/data_manager_pb2.py +27 -17
- viam/gen/service/datamanager/v1/data_manager_pb2.pyi +52 -10
- viam/gen/service/discovery/__init__.py +0 -0
- viam/gen/service/discovery/v1/__init__.py +0 -0
- viam/gen/service/discovery/v1/discovery_grpc.py +39 -0
- viam/gen/service/discovery/v1/discovery_pb2.py +29 -0
- viam/gen/service/discovery/v1/discovery_pb2.pyi +51 -0
- viam/gen/service/generic/__init__.py +0 -0
- viam/gen/service/generic/v1/__init__.py +0 -0
- viam/gen/service/generic/v1/generic_grpc.py +29 -0
- viam/gen/service/generic/v1/generic_pb2.py +21 -0
- viam/gen/service/generic/v1/generic_pb2.pyi +6 -0
- viam/gen/service/mlmodel/v1/mlmodel_grpc.py +9 -0
- viam/gen/service/mlmodel/v1/mlmodel_pb2.py +76 -29
- viam/gen/service/mlmodel/v1/mlmodel_pb2.pyi +307 -28
- viam/gen/service/motion/v1/motion_grpc.py +42 -4
- viam/gen/service/motion/v1/motion_pb2.py +119 -51
- viam/gen/service/motion/v1/motion_pb2.pyi +595 -120
- viam/gen/service/navigation/v1/navigation_grpc.py +49 -1
- viam/gen/service/navigation/v1/navigation_pb2.py +76 -51
- viam/gen/service/navigation/v1/navigation_pb2.pyi +188 -33
- viam/gen/service/sensors/v1/sensors_grpc.py +12 -0
- viam/gen/service/sensors/v1/sensors_pb2.py +60 -29
- viam/gen/service/sensors/v1/sensors_pb2.pyi +18 -21
- viam/gen/service/shell/v1/shell_grpc.py +27 -1
- viam/gen/service/shell/v1/shell_pb2.py +37 -15
- viam/gen/service/shell/v1/shell_pb2.pyi +260 -7
- viam/gen/service/slam/v1/slam_grpc.py +24 -2
- viam/gen/service/slam/v1/slam_pb2.py +44 -30
- viam/gen/service/slam/v1/slam_pb2.pyi +128 -27
- viam/gen/service/video/__init__.py +0 -0
- viam/gen/service/video/v1/__init__.py +0 -0
- viam/gen/service/video/v1/video_grpc.py +39 -0
- viam/gen/service/video/v1/video_pb2.py +29 -0
- viam/gen/service/video/v1/video_pb2.pyi +72 -0
- viam/gen/service/vision/v1/vision_grpc.py +39 -1
- viam/gen/service/vision/v1/vision_pb2.py +61 -45
- viam/gen/service/vision/v1/vision_pb2.pyi +180 -41
- viam/gen/service/worldstatestore/__init__.py +0 -0
- viam/gen/service/worldstatestore/v1/__init__.py +0 -0
- viam/gen/service/worldstatestore/v1/world_state_store_grpc.py +55 -0
- viam/gen/service/worldstatestore/v1/world_state_store_pb2.py +39 -0
- viam/gen/service/worldstatestore/v1/world_state_store_pb2.pyi +171 -0
- viam/gen/stream/__init__.py +0 -0
- viam/gen/stream/v1/__init__.py +0 -0
- viam/gen/stream/v1/stream_grpc.py +59 -0
- viam/gen/stream/v1/stream_pb2.py +39 -0
- viam/gen/stream/v1/stream_pb2.pyi +161 -0
- viam/gen/tagger/v1/tagger_pb2.py +9 -8
- viam/logging.py +160 -17
- viam/media/__init__.py +0 -9
- viam/media/audio.py +22 -10
- viam/media/utils/__init__.py +0 -0
- viam/media/utils/pil/__init__.py +55 -0
- viam/media/{viam_rgba_plugin.py → utils/pil/viam_rgba_plugin.py} +10 -16
- viam/media/viam_rgba.py +10 -0
- viam/media/video.py +197 -73
- viam/module/module.py +191 -44
- viam/module/resource_data_consumer.py +41 -0
- viam/module/service.py +9 -1
- viam/module/types.py +4 -5
- viam/operations.py +4 -3
- viam/proto/app/__init__.py +361 -5
- viam/proto/app/agent/__init__.py +28 -0
- viam/proto/app/billing.py +51 -27
- viam/proto/app/cloudslam/__init__.py +48 -0
- viam/proto/app/data/__init__.py +103 -17
- viam/proto/app/datapipelines/__init__.py +56 -0
- viam/proto/app/dataset/__init__.py +40 -0
- viam/proto/app/datasync/__init__.py +11 -5
- viam/proto/app/end_user.py +34 -0
- viam/proto/app/mlinference/__init__.py +15 -0
- viam/proto/app/mltraining/__init__.py +25 -1
- viam/proto/app/packages/__init__.py +3 -3
- viam/proto/app/robot.py +19 -1
- viam/proto/common/__init__.py +35 -8
- viam/proto/component/arm/__init__.py +9 -1
- viam/proto/component/audioin/__init__.py +16 -0
- viam/proto/component/audioinput/__init__.py +3 -1
- viam/proto/component/audioout/__init__.py +15 -0
- viam/proto/component/base/__init__.py +7 -1
- viam/proto/component/board/__init__.py +13 -5
- viam/proto/component/button/__init__.py +15 -0
- viam/proto/component/camera/__init__.py +9 -1
- viam/proto/component/encoder/__init__.py +3 -1
- viam/proto/component/gantry/__init__.py +7 -1
- viam/proto/component/generic/__init__.py +3 -1
- viam/proto/component/gripper/__init__.py +7 -1
- viam/proto/component/inputcontroller/__init__.py +7 -1
- viam/proto/component/motor/__init__.py +7 -1
- viam/proto/component/movementsensor/__init__.py +7 -1
- viam/proto/component/posetracker/__init__.py +7 -1
- viam/proto/component/powersensor/__init__.py +30 -0
- viam/proto/component/sensor/__init__.py +3 -4
- viam/proto/component/servo/__init__.py +3 -1
- viam/proto/component/switch/__init__.py +26 -0
- viam/proto/component/testecho/__init__.py +3 -1
- viam/proto/module/__init__.py +3 -1
- viam/proto/opentelemetry/__init__.py +0 -0
- viam/proto/opentelemetry/proto/__init__.py +0 -0
- viam/proto/opentelemetry/proto/common/__init__.py +15 -0
- viam/proto/opentelemetry/proto/resource/__init__.py +10 -0
- viam/proto/opentelemetry/proto/trace/__init__.py +15 -0
- viam/proto/provisioning/__init__.py +42 -0
- viam/proto/robot/__init__.py +57 -9
- viam/proto/rpc/auth.py +11 -1
- viam/proto/rpc/examples/echo/__init__.py +3 -1
- viam/proto/rpc/examples/echoresource/__init__.py +7 -1
- viam/proto/rpc/webrtc/grpc.py +3 -1
- viam/proto/rpc/webrtc/signaling.py +5 -1
- viam/proto/service/datamanager/__init__.py +15 -2
- viam/proto/service/discovery/__init__.py +15 -0
- viam/proto/service/generic/__init__.py +12 -0
- viam/proto/service/mlmodel/__init__.py +27 -1
- viam/proto/service/motion/__init__.py +35 -5
- viam/proto/service/navigation/__init__.py +19 -1
- viam/proto/service/sensors/__init__.py +3 -1
- viam/proto/service/shell/__init__.py +25 -2
- viam/proto/service/slam/__init__.py +13 -1
- viam/proto/service/video/__init__.py +15 -0
- viam/proto/service/vision/__init__.py +11 -1
- viam/proto/service/worldstatestore/__init__.py +32 -0
- viam/proto/stream/__init__.py +36 -0
- viam/py.typed +0 -0
- viam/resource/base.py +45 -8
- viam/resource/easy_resource.py +149 -0
- viam/resource/manager.py +35 -14
- viam/resource/registry.py +40 -52
- viam/resource/rpc_client_base.py +33 -1
- viam/resource/rpc_service_base.py +15 -8
- viam/resource/types.py +39 -26
- viam/robot/client.py +458 -91
- viam/robot/service.py +13 -107
- viam/rpc/dial.py +133 -15
- viam/rpc/libviam_rust_utils.so +0 -0
- viam/rpc/server.py +59 -15
- viam/rpc/types.py +2 -4
- viam/services/discovery/__init__.py +12 -0
- viam/services/discovery/client.py +55 -0
- viam/services/discovery/discovery.py +52 -0
- viam/services/discovery/service.py +43 -0
- viam/services/generic/__init__.py +18 -0
- viam/services/generic/client.py +58 -0
- viam/services/generic/generic.py +58 -0
- viam/services/generic/service.py +29 -0
- viam/services/mlmodel/__init__.py +15 -1
- viam/services/mlmodel/client.py +20 -15
- viam/services/mlmodel/mlmodel.py +44 -7
- viam/services/mlmodel/service.py +9 -13
- viam/services/mlmodel/utils.py +101 -0
- viam/services/motion/__init__.py +15 -3
- viam/services/motion/client.py +109 -150
- viam/services/motion/motion.py +380 -0
- viam/services/motion/service.py +132 -0
- viam/services/navigation/__init__.py +11 -0
- viam/services/navigation/client.py +99 -0
- viam/services/navigation/navigation.py +250 -0
- viam/services/navigation/service.py +137 -0
- viam/services/service_base.py +43 -4
- viam/services/service_client_base.py +4 -4
- viam/services/slam/__init__.py +4 -1
- viam/services/slam/client.py +21 -11
- viam/services/slam/service.py +16 -19
- viam/services/slam/slam.py +66 -5
- viam/services/vision/__init__.py +8 -0
- viam/services/vision/client.py +115 -111
- viam/services/vision/service.py +143 -0
- viam/services/vision/vision.py +317 -0
- viam/services/worldstatestore/__init__.py +18 -0
- viam/services/worldstatestore/client.py +94 -0
- viam/services/worldstatestore/service.py +55 -0
- viam/services/worldstatestore/worldstatestore.py +90 -0
- viam/sessions_client.py +254 -0
- viam/streams.py +44 -0
- viam/utils.py +143 -15
- viam/version_metadata.py +4 -0
- viam_sdk-0.66.0.dist-info/METADATA +157 -0
- viam_sdk-0.66.0.dist-info/RECORD +531 -0
- {viam_sdk-0.3.0.dist-info → viam_sdk-0.66.0.dist-info}/WHEEL +1 -1
- viam/components/audio_input/__init__.py +0 -18
- viam/components/audio_input/audio_input.py +0 -79
- viam/components/audio_input/client.py +0 -60
- viam/components/audio_input/service.py +0 -118
- viam/components/types.py +0 -5
- viam/gen/app/model/v1/model_grpc.py +0 -39
- viam/gen/app/model/v1/model_pb2.py +0 -71
- viam/gen/app/model/v1/model_pb2.pyi +0 -285
- viam/gen/proto/rpc/examples/fileupload/v1/fileupload_grpc.py +0 -21
- viam/gen/proto/rpc/examples/fileupload/v1/fileupload_pb2.py +0 -18
- viam/gen/proto/rpc/examples/fileupload/v1/fileupload_pb2.pyi +0 -49
- viam/media/media.py +0 -53
- viam/proto/app/model/__init__.py +0 -40
- viam/proto/rpc/examples/fileupload/__init__.py +0 -13
- viam/services/sensors/__init__.py +0 -5
- viam/services/sensors/client.py +0 -63
- viam_sdk-0.3.0.dist-info/LICENSE +0 -202
- viam_sdk-0.3.0.dist-info/METADATA +0 -122
- viam_sdk-0.3.0.dist-info/RECORD +0 -372
- /viam/{gen/app/model → app}/__init__.py +0 -0
- /viam/gen/app/{model/v1 → agent}/__init__.py +0 -0
- /viam/gen/{proto/rpc/examples/fileupload → app/agent/v1}/__init__.py +0 -0
- /viam/gen/{proto/rpc/examples/fileupload/v1 → app/cloudslam}/__init__.py +0 -0
- /LICENSE → /viam_sdk-0.66.0.dist-info/licenses/LICENSE +0 -0
viam/services/motion/client.py
CHANGED
|
@@ -1,22 +1,27 @@
|
|
|
1
|
-
from typing import Any,
|
|
1
|
+
from typing import Any, Mapping, Optional, Sequence
|
|
2
2
|
|
|
3
3
|
from grpclib.client import Channel
|
|
4
4
|
|
|
5
5
|
from viam.proto.common import (
|
|
6
6
|
DoCommandRequest,
|
|
7
7
|
DoCommandResponse,
|
|
8
|
-
|
|
8
|
+
GeoGeometry,
|
|
9
|
+
Geometry,
|
|
9
10
|
GeoPoint,
|
|
10
11
|
Pose,
|
|
11
12
|
PoseInFrame,
|
|
12
|
-
ResourceName,
|
|
13
13
|
Transform,
|
|
14
14
|
WorldState,
|
|
15
15
|
)
|
|
16
16
|
from viam.proto.service.motion import (
|
|
17
17
|
Constraints,
|
|
18
|
+
GetPlanRequest,
|
|
19
|
+
GetPlanResponse,
|
|
18
20
|
GetPoseRequest,
|
|
19
21
|
GetPoseResponse,
|
|
22
|
+
ListPlanStatusesRequest,
|
|
23
|
+
ListPlanStatusesResponse,
|
|
24
|
+
MotionConfiguration,
|
|
20
25
|
MotionServiceStub,
|
|
21
26
|
MoveOnGlobeRequest,
|
|
22
27
|
MoveOnGlobeResponse,
|
|
@@ -24,62 +29,40 @@ from viam.proto.service.motion import (
|
|
|
24
29
|
MoveOnMapResponse,
|
|
25
30
|
MoveRequest,
|
|
26
31
|
MoveResponse,
|
|
27
|
-
|
|
28
|
-
|
|
32
|
+
PlanStatusWithID,
|
|
33
|
+
StopPlanRequest,
|
|
34
|
+
StopPlanResponse,
|
|
29
35
|
)
|
|
30
36
|
from viam.resource.rpc_client_base import ReconfigurableResourceRPCClientBase
|
|
31
|
-
from viam.resource.types import RESOURCE_NAMESPACE_RDK, RESOURCE_TYPE_SERVICE, Subtype
|
|
32
|
-
from viam.services.service_client_base import ServiceClientBase
|
|
33
37
|
from viam.utils import ValueTypes, dict_to_struct, struct_to_dict
|
|
34
38
|
|
|
39
|
+
from .motion import Motion
|
|
35
40
|
|
|
36
|
-
class MotionClient(ServiceClientBase, ReconfigurableResourceRPCClientBase):
|
|
37
|
-
"""Motion is a Viam service that coordinates motion planning across all of the components in a given robot.
|
|
38
41
|
|
|
39
|
-
|
|
40
|
-
|
|
42
|
+
class MotionClient(Motion, ReconfigurableResourceRPCClientBase):
|
|
43
|
+
"""
|
|
44
|
+
gRPC client for the Motion service.
|
|
41
45
|
"""
|
|
42
46
|
|
|
43
|
-
SUBTYPE: Final = Subtype(RESOURCE_NAMESPACE_RDK, RESOURCE_TYPE_SERVICE, "motion")
|
|
44
47
|
client: MotionServiceStub
|
|
45
48
|
|
|
46
49
|
def __init__(self, name: str, channel: Channel):
|
|
47
|
-
|
|
50
|
+
self.channel = channel
|
|
48
51
|
self.client = MotionServiceStub(channel)
|
|
52
|
+
super().__init__(name)
|
|
49
53
|
|
|
50
54
|
async def move(
|
|
51
55
|
self,
|
|
52
|
-
component_name:
|
|
56
|
+
component_name: str,
|
|
53
57
|
destination: PoseInFrame,
|
|
54
58
|
world_state: Optional[WorldState] = None,
|
|
55
59
|
constraints: Optional[Constraints] = None,
|
|
56
60
|
*,
|
|
57
61
|
extra: Optional[Mapping[str, Any]] = None,
|
|
58
62
|
timeout: Optional[float] = None,
|
|
63
|
+
**kwargs,
|
|
59
64
|
) -> bool:
|
|
60
|
-
""
|
|
61
|
-
|
|
62
|
-
Note: Frames designated with respect to components can also be used as the ``component_name`` when calling for a move. This
|
|
63
|
-
technique allows for planning and moving the frame itself to the ``destination``. To do so, simply create a resource name with
|
|
64
|
-
originating ReferenceFrame's name. Then pass in the resource name into ``component_name``. Ex::
|
|
65
|
-
|
|
66
|
-
resource_name = Arm.get_resource_name("externalFrame")
|
|
67
|
-
success = await MotionServiceClient.move(resource_name, ...)
|
|
68
|
-
|
|
69
|
-
Args:
|
|
70
|
-
component_name (viam.proto.common.ResourceName): Name of a component on a given robot.
|
|
71
|
-
destination (viam.proto.common.PoseInFrame): The destination to move to, expressed as a ``Pose`` and the frame in which it was
|
|
72
|
-
observed.
|
|
73
|
-
world_state (viam.proto.common.WorldState): When supplied, the motion service will create a plan that obeys any contraints
|
|
74
|
-
expressed in the WorldState message.
|
|
75
|
-
constraints (viam.proto.service.motion.Constraints): When supplied, the motion service will create a plan that obeys any
|
|
76
|
-
specified constraints
|
|
77
|
-
|
|
78
|
-
Returns:
|
|
79
|
-
bool: Whether the move was successful
|
|
80
|
-
"""
|
|
81
|
-
if extra is None:
|
|
82
|
-
extra = {}
|
|
65
|
+
md = kwargs.get("metadata", self.Metadata()).proto
|
|
83
66
|
request = MoveRequest(
|
|
84
67
|
name=self.name,
|
|
85
68
|
destination=destination,
|
|
@@ -88,75 +71,24 @@ class MotionClient(ServiceClientBase, ReconfigurableResourceRPCClientBase):
|
|
|
88
71
|
constraints=constraints,
|
|
89
72
|
extra=dict_to_struct(extra),
|
|
90
73
|
)
|
|
91
|
-
response: MoveResponse = await self.client.Move(request, timeout=timeout)
|
|
92
|
-
return response.success
|
|
93
|
-
|
|
94
|
-
async def move_single_component(
|
|
95
|
-
self,
|
|
96
|
-
component_name: ResourceName,
|
|
97
|
-
destination: PoseInFrame,
|
|
98
|
-
world_state: Optional[WorldState] = None,
|
|
99
|
-
*,
|
|
100
|
-
extra: Optional[Mapping[str, Any]] = None,
|
|
101
|
-
timeout: Optional[float] = None,
|
|
102
|
-
) -> bool:
|
|
103
|
-
"""
|
|
104
|
-
This function will pass through a move command to a component with a ``move_to_position`` method that takes a ``Pose``. ``Arm`` is
|
|
105
|
-
the only component that support this. This method will transform the destination pose, given in an arbitrary frame, into the pose of
|
|
106
|
-
the arm. The arm will then move its most distal link to that pose. If you instead wish to move any other component than the arm end
|
|
107
|
-
to that pose, then you must manually adjust the given destination by the transform from the arm end to the intended component.
|
|
108
|
-
|
|
109
|
-
Args:
|
|
110
|
-
component_name (viam.proto.common.ResourceName): Name of a component on a given robot.
|
|
111
|
-
destination (viam.proto.common.PoseInFrame): The destination to move to, expressed as a ``Pose`` and the frame in which it was
|
|
112
|
-
observed.
|
|
113
|
-
world_state (viam.proto.common.WorldState): When supplied, the motion service will create a plan that obeys any contraints
|
|
114
|
-
expressed in the WorldState message.
|
|
115
|
-
|
|
116
|
-
Returns:
|
|
117
|
-
bool: Whether the move was successful
|
|
118
|
-
"""
|
|
119
|
-
if extra is None:
|
|
120
|
-
extra = {}
|
|
121
|
-
request = MoveSingleComponentRequest(
|
|
122
|
-
name=self.name,
|
|
123
|
-
destination=destination,
|
|
124
|
-
component_name=component_name,
|
|
125
|
-
world_state=world_state,
|
|
126
|
-
extra=dict_to_struct(extra),
|
|
127
|
-
)
|
|
128
|
-
response: MoveSingleComponentResponse = await self.client.MoveSingleComponent(request, timeout=timeout)
|
|
74
|
+
response: MoveResponse = await self.client.Move(request, timeout=timeout, metadata=md)
|
|
129
75
|
return response.success
|
|
130
76
|
|
|
131
77
|
async def move_on_globe(
|
|
132
78
|
self,
|
|
133
|
-
component_name:
|
|
79
|
+
component_name: str,
|
|
134
80
|
destination: GeoPoint,
|
|
135
|
-
movement_sensor_name:
|
|
136
|
-
obstacles: Optional[Sequence[
|
|
81
|
+
movement_sensor_name: str,
|
|
82
|
+
obstacles: Optional[Sequence[GeoGeometry]] = None,
|
|
137
83
|
heading: Optional[float] = None,
|
|
138
|
-
|
|
139
|
-
angular_deg_per_sec: Optional[float] = None,
|
|
84
|
+
configuration: Optional[MotionConfiguration] = None,
|
|
140
85
|
*,
|
|
86
|
+
bounding_regions: Optional[Sequence[GeoGeometry]] = None,
|
|
141
87
|
extra: Optional[Mapping[str, ValueTypes]] = None,
|
|
142
88
|
timeout: Optional[float] = None,
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
Args:
|
|
147
|
-
component_name (ResourceName): The component to move
|
|
148
|
-
destination (GeoPoint): The destination point
|
|
149
|
-
movement_sensor_name (ResourceName): The ``MovementSensor`` which will be used to check robot location
|
|
150
|
-
obstacles (Optional[Sequence[GeoObstacle]], optional): Obstacles to be considered for motion planning. Defaults to None.
|
|
151
|
-
heading (Optional[float], optional): Compass heading to achieve at the destination, in degrees [0-360). Defaults to None.
|
|
152
|
-
linear_meters_per_sec (Optional[float], optional): Linear velocity to target when moving. Defaults to None.
|
|
153
|
-
angular_deg_per_sec (Optional[float], optional): Angular velocity to target when turning. Defaults to None.
|
|
154
|
-
|
|
155
|
-
Returns:
|
|
156
|
-
bool: Whether the request was successful
|
|
157
|
-
"""
|
|
158
|
-
if extra is None:
|
|
159
|
-
extra = {}
|
|
89
|
+
**kwargs,
|
|
90
|
+
) -> str:
|
|
91
|
+
md = kwargs.get("metadata", self.Metadata()).proto
|
|
160
92
|
request = MoveOnGlobeRequest(
|
|
161
93
|
name=self.name,
|
|
162
94
|
component_name=component_name,
|
|
@@ -164,73 +96,107 @@ class MotionClient(ServiceClientBase, ReconfigurableResourceRPCClientBase):
|
|
|
164
96
|
movement_sensor_name=movement_sensor_name,
|
|
165
97
|
obstacles=obstacles,
|
|
166
98
|
heading=heading,
|
|
167
|
-
|
|
168
|
-
|
|
99
|
+
motion_configuration=configuration,
|
|
100
|
+
bounding_regions=bounding_regions,
|
|
169
101
|
extra=dict_to_struct(extra),
|
|
170
102
|
)
|
|
171
|
-
response: MoveOnGlobeResponse = await self.client.MoveOnGlobe(request, timeout=timeout)
|
|
172
|
-
return response.
|
|
103
|
+
response: MoveOnGlobeResponse = await self.client.MoveOnGlobe(request, timeout=timeout, metadata=md)
|
|
104
|
+
return response.execution_id
|
|
173
105
|
|
|
174
106
|
async def move_on_map(
|
|
175
107
|
self,
|
|
176
|
-
component_name:
|
|
108
|
+
component_name: str,
|
|
177
109
|
destination: Pose,
|
|
178
|
-
slam_service_name:
|
|
110
|
+
slam_service_name: str,
|
|
111
|
+
configuration: Optional[MotionConfiguration] = None,
|
|
112
|
+
obstacles: Optional[Sequence[Geometry]] = None,
|
|
179
113
|
*,
|
|
180
114
|
extra: Optional[Mapping[str, ValueTypes]] = None,
|
|
181
115
|
timeout: Optional[float] = None,
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
Args:
|
|
186
|
-
component_name (ResourceName): The component to move
|
|
187
|
-
destination (Pose): The destination, which can be any pose with respect to the SLAM map's origin
|
|
188
|
-
slam_service_name (ResourceName): The slam service from which the SLAM map is requested
|
|
189
|
-
|
|
190
|
-
Returns:
|
|
191
|
-
bool: Whether the request was successful
|
|
192
|
-
"""
|
|
193
|
-
if extra is None:
|
|
194
|
-
extra = {}
|
|
116
|
+
**kwargs,
|
|
117
|
+
) -> str:
|
|
118
|
+
md = kwargs.get("metadata", self.Metadata()).proto
|
|
195
119
|
request = MoveOnMapRequest(
|
|
196
120
|
name=self.name,
|
|
197
121
|
destination=destination,
|
|
198
122
|
component_name=component_name,
|
|
199
123
|
slam_service_name=slam_service_name,
|
|
124
|
+
motion_configuration=configuration,
|
|
125
|
+
obstacles=obstacles,
|
|
200
126
|
extra=dict_to_struct(extra),
|
|
201
127
|
)
|
|
202
|
-
response: MoveOnMapResponse = await self.client.MoveOnMap(request, timeout=timeout)
|
|
203
|
-
return response.
|
|
128
|
+
response: MoveOnMapResponse = await self.client.MoveOnMap(request, timeout=timeout, metadata=md)
|
|
129
|
+
return response.execution_id
|
|
204
130
|
|
|
205
|
-
async def
|
|
131
|
+
async def stop_plan(
|
|
206
132
|
self,
|
|
207
|
-
component_name:
|
|
208
|
-
destination_frame: str,
|
|
209
|
-
supplemental_transforms: Optional[List[Transform]] = None,
|
|
133
|
+
component_name: str,
|
|
210
134
|
*,
|
|
211
|
-
extra: Optional[Mapping[str,
|
|
135
|
+
extra: Optional[Mapping[str, ValueTypes]] = None,
|
|
212
136
|
timeout: Optional[float] = None,
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
137
|
+
**kwargs,
|
|
138
|
+
):
|
|
139
|
+
md = kwargs.get("metadata", self.Metadata()).proto
|
|
216
140
|
|
|
217
|
-
|
|
141
|
+
request = StopPlanRequest(
|
|
142
|
+
name=self.name,
|
|
143
|
+
component_name=component_name,
|
|
144
|
+
extra=dict_to_struct(extra),
|
|
145
|
+
)
|
|
146
|
+
_: StopPlanResponse = await self.client.StopPlan(request, timeout=timeout, metadata=md)
|
|
147
|
+
return
|
|
218
148
|
|
|
219
|
-
|
|
220
|
-
|
|
149
|
+
async def get_plan(
|
|
150
|
+
self,
|
|
151
|
+
component_name: str,
|
|
152
|
+
last_plan_only: bool = False,
|
|
153
|
+
execution_id: Optional[str] = None,
|
|
154
|
+
*,
|
|
155
|
+
extra: Optional[Mapping[str, ValueTypes]] = None,
|
|
156
|
+
timeout: Optional[float] = None,
|
|
157
|
+
**kwargs,
|
|
158
|
+
) -> GetPlanResponse:
|
|
159
|
+
md = kwargs.get("metadata", self.Metadata()).proto
|
|
221
160
|
|
|
161
|
+
request = GetPlanRequest(
|
|
162
|
+
name=self.name,
|
|
163
|
+
component_name=component_name,
|
|
164
|
+
last_plan_only=last_plan_only,
|
|
165
|
+
execution_id=execution_id,
|
|
166
|
+
extra=dict_to_struct(extra),
|
|
167
|
+
)
|
|
168
|
+
response: GetPlanResponse = await self.client.GetPlan(request, timeout=timeout, metadata=md)
|
|
169
|
+
return response
|
|
222
170
|
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
171
|
+
async def list_plan_statuses(
|
|
172
|
+
self,
|
|
173
|
+
only_active_plans: bool = False,
|
|
174
|
+
*,
|
|
175
|
+
extra: Optional[Mapping[str, ValueTypes]] = None,
|
|
176
|
+
timeout: Optional[float] = None,
|
|
177
|
+
**kwargs,
|
|
178
|
+
) -> Sequence[PlanStatusWithID]:
|
|
179
|
+
md = kwargs.get("metadata", self.Metadata()).proto
|
|
228
180
|
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
181
|
+
request = ListPlanStatusesRequest(
|
|
182
|
+
name=self.name,
|
|
183
|
+
only_active_plans=only_active_plans,
|
|
184
|
+
extra=dict_to_struct(extra),
|
|
185
|
+
)
|
|
186
|
+
response: ListPlanStatusesResponse = await self.client.ListPlanStatuses(request, timeout=timeout, metadata=md)
|
|
187
|
+
return response.plan_statuses_with_ids
|
|
188
|
+
|
|
189
|
+
async def get_pose(
|
|
190
|
+
self,
|
|
191
|
+
component_name: str,
|
|
192
|
+
destination_frame: str,
|
|
193
|
+
supplemental_transforms: Optional[Sequence[Transform]] = None,
|
|
194
|
+
*,
|
|
195
|
+
extra: Optional[Mapping[str, Any]] = None,
|
|
196
|
+
timeout: Optional[float] = None,
|
|
197
|
+
**kwargs,
|
|
198
|
+
) -> PoseInFrame:
|
|
199
|
+
md = kwargs.get("metadata", self.Metadata()).proto
|
|
234
200
|
request = GetPoseRequest(
|
|
235
201
|
name=self.name,
|
|
236
202
|
component_name=component_name,
|
|
@@ -238,18 +204,11 @@ class MotionClient(ServiceClientBase, ReconfigurableResourceRPCClientBase):
|
|
|
238
204
|
supplemental_transforms=supplemental_transforms,
|
|
239
205
|
extra=dict_to_struct(extra),
|
|
240
206
|
)
|
|
241
|
-
response: GetPoseResponse = await self.client.GetPose(request, timeout=timeout)
|
|
207
|
+
response: GetPoseResponse = await self.client.GetPose(request, timeout=timeout, metadata=md)
|
|
242
208
|
return response.pose
|
|
243
209
|
|
|
244
|
-
async def do_command(self, command: Mapping[str, ValueTypes], *, timeout: Optional[float] = None) -> Mapping[str, ValueTypes]:
|
|
245
|
-
""
|
|
246
|
-
|
|
247
|
-
Args:
|
|
248
|
-
command (Dict[str, ValueTypes]): The command to execute
|
|
249
|
-
|
|
250
|
-
Returns:
|
|
251
|
-
Dict[str, ValueTypes]: Result of the executed command
|
|
252
|
-
"""
|
|
210
|
+
async def do_command(self, command: Mapping[str, ValueTypes], *, timeout: Optional[float] = None, **kwargs) -> Mapping[str, ValueTypes]:
|
|
211
|
+
md = kwargs.get("metadata", self.Metadata()).proto
|
|
253
212
|
request = DoCommandRequest(name=self.name, command=dict_to_struct(command))
|
|
254
|
-
response: DoCommandResponse = await self.client.DoCommand(request, timeout=timeout)
|
|
213
|
+
response: DoCommandResponse = await self.client.DoCommand(request, timeout=timeout, metadata=md)
|
|
255
214
|
return struct_to_dict(response.result)
|