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.

Files changed (452) hide show
  1. viam/__init__.py +29 -2
  2. viam/app/_logs.py +34 -0
  3. viam/app/app_client.py +2696 -0
  4. viam/app/billing_client.py +185 -0
  5. viam/app/data_client.py +2231 -0
  6. viam/app/ml_training_client.py +249 -0
  7. viam/app/provisioning_client.py +93 -0
  8. viam/app/viam_client.py +275 -0
  9. viam/components/arm/__init__.py +3 -26
  10. viam/components/arm/arm.py +123 -8
  11. viam/components/arm/client.py +37 -24
  12. viam/components/arm/service.py +35 -32
  13. viam/components/audio_in/__init__.py +24 -0
  14. viam/components/audio_in/audio_in.py +74 -0
  15. viam/components/audio_in/client.py +76 -0
  16. viam/components/audio_in/service.py +83 -0
  17. viam/components/audio_out/__init__.py +21 -0
  18. viam/components/audio_out/audio_out.py +72 -0
  19. viam/components/audio_out/client.py +67 -0
  20. viam/components/audio_out/service.py +63 -0
  21. viam/components/base/__init__.py +6 -11
  22. viam/components/base/base.py +134 -8
  23. viam/components/base/client.py +51 -23
  24. viam/components/base/service.py +33 -30
  25. viam/components/board/__init__.py +3 -12
  26. viam/components/board/board.py +247 -91
  27. viam/components/board/client.py +149 -83
  28. viam/components/board/service.py +63 -33
  29. viam/components/button/__init__.py +10 -0
  30. viam/components/button/button.py +41 -0
  31. viam/components/button/client.py +52 -0
  32. viam/components/button/service.py +46 -0
  33. viam/components/camera/__init__.py +3 -3
  34. viam/components/camera/camera.py +62 -27
  35. viam/components/camera/client.py +59 -27
  36. viam/components/camera/service.py +42 -65
  37. viam/components/component_base.py +28 -5
  38. viam/components/encoder/__init__.py +1 -1
  39. viam/components/encoder/client.py +25 -14
  40. viam/components/encoder/encoder.py +48 -10
  41. viam/components/encoder/service.py +14 -18
  42. viam/components/gantry/__init__.py +1 -13
  43. viam/components/gantry/client.py +80 -25
  44. viam/components/gantry/gantry.py +123 -9
  45. viam/components/gantry/service.py +51 -29
  46. viam/components/generic/__init__.py +1 -1
  47. viam/components/generic/client.py +21 -8
  48. viam/components/generic/generic.py +10 -2
  49. viam/components/generic/service.py +12 -7
  50. viam/components/gripper/__init__.py +3 -13
  51. viam/components/gripper/client.py +69 -21
  52. viam/components/gripper/gripper.py +123 -3
  53. viam/components/gripper/service.py +44 -22
  54. viam/components/input/__init__.py +1 -14
  55. viam/components/input/client.py +55 -23
  56. viam/components/input/input.py +106 -3
  57. viam/components/input/service.py +16 -21
  58. viam/components/motor/__init__.py +1 -21
  59. viam/components/motor/client.py +56 -33
  60. viam/components/motor/motor.py +127 -4
  61. viam/components/motor/service.py +33 -44
  62. viam/components/movement_sensor/__init__.py +1 -1
  63. viam/components/movement_sensor/client.py +102 -45
  64. viam/components/movement_sensor/movement_sensor.py +130 -61
  65. viam/components/movement_sensor/service.py +38 -41
  66. viam/components/pose_tracker/__init__.py +1 -1
  67. viam/components/pose_tracker/client.py +18 -7
  68. viam/components/pose_tracker/pose_tracker.py +4 -2
  69. viam/components/pose_tracker/service.py +12 -10
  70. viam/components/power_sensor/__init__.py +17 -0
  71. viam/components/power_sensor/client.py +86 -0
  72. viam/components/power_sensor/power_sensor.py +104 -0
  73. viam/components/power_sensor/service.py +72 -0
  74. viam/components/sensor/__init__.py +2 -1
  75. viam/components/sensor/client.py +26 -10
  76. viam/components/sensor/sensor.py +22 -4
  77. viam/components/sensor/service.py +20 -11
  78. viam/components/servo/__init__.py +1 -13
  79. viam/components/servo/client.py +47 -21
  80. viam/components/servo/service.py +15 -22
  81. viam/components/servo/servo.py +61 -2
  82. viam/components/switch/__init__.py +10 -0
  83. viam/components/switch/client.py +83 -0
  84. viam/components/switch/service.py +72 -0
  85. viam/components/switch/switch.py +98 -0
  86. viam/errors.py +10 -0
  87. viam/gen/app/agent/v1/agent_grpc.py +29 -0
  88. viam/gen/app/agent/v1/agent_pb2.py +47 -0
  89. viam/gen/app/agent/v1/agent_pb2.pyi +280 -0
  90. viam/gen/app/cloudslam/v1/__init__.py +0 -0
  91. viam/gen/app/cloudslam/v1/cloud_slam_grpc.py +70 -0
  92. viam/gen/app/cloudslam/v1/cloud_slam_pb2.py +54 -0
  93. viam/gen/app/cloudslam/v1/cloud_slam_pb2.pyi +384 -0
  94. viam/gen/app/data/v1/data_grpc.py +197 -8
  95. viam/gen/app/data/v1/data_pb2.py +238 -99
  96. viam/gen/app/data/v1/data_pb2.pyi +1222 -259
  97. viam/gen/app/datapipelines/__init__.py +0 -0
  98. viam/gen/app/datapipelines/v1/__init__.py +0 -0
  99. viam/gen/app/datapipelines/v1/data_pipelines_grpc.py +84 -0
  100. viam/gen/app/datapipelines/v1/data_pipelines_pb2.py +57 -0
  101. viam/gen/app/datapipelines/v1/data_pipelines_pb2.pyi +387 -0
  102. viam/gen/app/dataset/__init__.py +0 -0
  103. viam/gen/app/dataset/v1/__init__.py +0 -0
  104. viam/gen/app/dataset/v1/dataset_grpc.py +68 -0
  105. viam/gen/app/dataset/v1/dataset_pb2.py +44 -0
  106. viam/gen/app/dataset/v1/dataset_pb2.pyi +214 -0
  107. viam/gen/app/datasync/v1/data_sync_grpc.py +21 -4
  108. viam/gen/app/datasync/v1/data_sync_pb2.py +62 -128
  109. viam/gen/app/datasync/v1/data_sync_pb2.pyi +156 -199
  110. viam/gen/app/mlinference/__init__.py +0 -0
  111. viam/gen/app/mlinference/v1/__init__.py +0 -0
  112. viam/gen/app/mlinference/v1/ml_inference_grpc.py +28 -0
  113. viam/gen/app/mlinference/v1/ml_inference_pb2.py +23 -0
  114. viam/gen/app/mlinference/v1/ml_inference_pb2.pyi +63 -0
  115. viam/gen/app/mltraining/v1/ml_training_grpc.py +51 -3
  116. viam/gen/app/mltraining/v1/ml_training_pb2.py +135 -58
  117. viam/gen/app/mltraining/v1/ml_training_pb2.pyi +328 -39
  118. viam/gen/app/packages/v1/packages_grpc.py +15 -1
  119. viam/gen/app/packages/v1/packages_pb2.py +44 -64
  120. viam/gen/app/packages/v1/packages_pb2.pyi +75 -85
  121. viam/gen/app/v1/app_grpc.py +644 -3
  122. viam/gen/app/v1/app_pb2.py +695 -295
  123. viam/gen/app/v1/app_pb2.pyi +4488 -635
  124. viam/gen/app/v1/billing_grpc.py +53 -11
  125. viam/gen/app/v1/billing_pb2.py +94 -39
  126. viam/gen/app/v1/billing_pb2.pyi +391 -191
  127. viam/gen/app/v1/end_user_grpc.py +59 -0
  128. viam/gen/app/v1/end_user_pb2.py +55 -0
  129. viam/gen/app/v1/end_user_pb2.pyi +181 -0
  130. viam/gen/app/v1/robot_grpc.py +16 -1
  131. viam/gen/app/v1/robot_pb2.py +122 -94
  132. viam/gen/app/v1/robot_pb2.pyi +463 -123
  133. viam/gen/common/v1/common_pb2.py +87 -58
  134. viam/gen/common/v1/common_pb2.pyi +456 -149
  135. viam/gen/component/arm/v1/arm_grpc.py +58 -2
  136. viam/gen/component/arm/v1/arm_pb2.py +68 -51
  137. viam/gen/component/arm/v1/arm_pb2.pyi +108 -42
  138. viam/gen/component/audioin/__init__.py +0 -0
  139. viam/gen/component/audioin/v1/__init__.py +0 -0
  140. viam/gen/component/audioin/v1/audioin_grpc.py +54 -0
  141. viam/gen/component/audioin/v1/audioin_pb2.py +34 -0
  142. viam/gen/component/audioin/v1/audioin_pb2.pyi +94 -0
  143. viam/gen/component/audioinput/v1/audioinput_grpc.py +25 -2
  144. viam/gen/component/audioinput/v1/audioinput_pb2.py +36 -31
  145. viam/gen/component/audioinput/v1/audioinput_pb2.pyi +22 -22
  146. viam/gen/component/audioout/__init__.py +0 -0
  147. viam/gen/component/audioout/v1/__init__.py +0 -0
  148. viam/gen/component/audioout/v1/audioout_grpc.py +54 -0
  149. viam/gen/component/audioout/v1/audioout_pb2.py +32 -0
  150. viam/gen/component/audioout/v1/audioout_pb2.pyi +47 -0
  151. viam/gen/component/base/v1/base_grpc.py +42 -2
  152. viam/gen/component/base/v1/base_pb2.py +58 -47
  153. viam/gen/component/base/v1/base_pb2.pyi +65 -30
  154. viam/gen/component/board/v1/board_grpc.py +59 -7
  155. viam/gen/component/board/v1/board_pb2.py +94 -73
  156. viam/gen/component/board/v1/board_pb2.pyi +165 -68
  157. viam/gen/component/button/__init__.py +0 -0
  158. viam/gen/component/button/v1/__init__.py +0 -0
  159. viam/gen/component/button/v1/button_grpc.py +38 -0
  160. viam/gen/component/button/v1/button_pb2.py +28 -0
  161. viam/gen/component/button/v1/button_pb2.pyi +39 -0
  162. viam/gen/component/camera/v1/camera_grpc.py +38 -2
  163. viam/gen/component/camera/v1/camera_pb2.py +60 -43
  164. viam/gen/component/camera/v1/camera_pb2.pyi +191 -37
  165. viam/gen/component/encoder/v1/encoder_grpc.py +25 -2
  166. viam/gen/component/encoder/v1/encoder_pb2.py +36 -31
  167. viam/gen/component/encoder/v1/encoder_pb2.pyi +15 -15
  168. viam/gen/component/gantry/v1/gantry_grpc.py +47 -2
  169. viam/gen/component/gantry/v1/gantry_pb2.py +56 -43
  170. viam/gen/component/gantry/v1/gantry_pb2.pyi +67 -31
  171. viam/gen/component/generic/v1/generic_grpc.py +16 -2
  172. viam/gen/component/generic/v1/generic_pb2.py +16 -11
  173. viam/gen/component/gripper/v1/gripper_grpc.py +44 -2
  174. viam/gen/component/gripper/v1/gripper_pb2.py +48 -35
  175. viam/gen/component/gripper/v1/gripper_pb2.pyi +62 -24
  176. viam/gen/component/inputcontroller/v1/input_controller_grpc.py +28 -2
  177. viam/gen/component/inputcontroller/v1/input_controller_pb2.py +46 -41
  178. viam/gen/component/inputcontroller/v1/input_controller_pb2.pyi +32 -36
  179. viam/gen/component/motor/v1/motor_grpc.py +51 -2
  180. viam/gen/component/motor/v1/motor_pb2.py +78 -67
  181. viam/gen/component/motor/v1/motor_pb2.pyi +75 -46
  182. viam/gen/component/movementsensor/v1/movementsensor_grpc.py +48 -2
  183. viam/gen/component/movementsensor/v1/movementsensor_pb2.py +70 -63
  184. viam/gen/component/movementsensor/v1/movementsensor_pb2.pyi +84 -57
  185. viam/gen/component/posetracker/v1/pose_tracker_grpc.py +19 -2
  186. viam/gen/component/posetracker/v1/pose_tracker_pb2.py +26 -21
  187. viam/gen/component/posetracker/v1/pose_tracker_pb2.pyi +9 -13
  188. viam/gen/component/powersensor/__init__.py +0 -0
  189. viam/gen/component/powersensor/v1/__init__.py +0 -0
  190. viam/gen/component/powersensor/v1/powersensor_grpc.py +62 -0
  191. viam/gen/component/powersensor/v1/powersensor_pb2.py +42 -0
  192. viam/gen/component/powersensor/v1/powersensor_pb2.pyi +124 -0
  193. viam/gen/component/sensor/v1/sensor_grpc.py +21 -5
  194. viam/gen/component/sensor/v1/sensor_pb2.py +18 -22
  195. viam/gen/component/sensor/v1/sensor_pb2.pyi +1 -69
  196. viam/gen/component/servo/v1/servo_grpc.py +28 -2
  197. viam/gen/component/servo/v1/servo_pb2.py +42 -37
  198. viam/gen/component/servo/v1/servo_pb2.pyi +22 -26
  199. viam/gen/component/switch/__init__.py +0 -0
  200. viam/gen/component/switch/v1/__init__.py +0 -0
  201. viam/gen/component/switch/v1/switch_grpc.py +54 -0
  202. viam/gen/component/switch/v1/switch_pb2.py +40 -0
  203. viam/gen/component/switch/v1/switch_pb2.pyi +116 -0
  204. viam/gen/component/testecho/v1/testecho_grpc.py +15 -0
  205. viam/gen/component/testecho/v1/testecho_pb2.py +29 -26
  206. viam/gen/component/testecho/v1/testecho_pb2.pyi +16 -20
  207. viam/gen/module/v1/module_grpc.py +18 -0
  208. viam/gen/module/v1/module_pb2.py +36 -33
  209. viam/gen/module/v1/module_pb2.pyi +39 -34
  210. viam/gen/opentelemetry/__init__.py +0 -0
  211. viam/gen/opentelemetry/proto/__init__.py +0 -0
  212. viam/gen/opentelemetry/proto/common/__init__.py +0 -0
  213. viam/gen/opentelemetry/proto/common/v1/__init__.py +0 -0
  214. viam/gen/opentelemetry/proto/common/v1/common_grpc.py +0 -0
  215. viam/gen/opentelemetry/proto/common/v1/common_pb2.py +27 -0
  216. viam/gen/opentelemetry/proto/common/v1/common_pb2.pyi +208 -0
  217. viam/gen/opentelemetry/proto/resource/__init__.py +0 -0
  218. viam/gen/opentelemetry/proto/resource/v1/__init__.py +0 -0
  219. viam/gen/opentelemetry/proto/resource/v1/resource_grpc.py +0 -0
  220. viam/gen/opentelemetry/proto/resource/v1/resource_pb2.py +18 -0
  221. viam/gen/opentelemetry/proto/resource/v1/resource_pb2.pyi +59 -0
  222. viam/gen/opentelemetry/proto/trace/__init__.py +0 -0
  223. viam/gen/opentelemetry/proto/trace/v1/__init__.py +0 -0
  224. viam/gen/opentelemetry/proto/trace/v1/trace_grpc.py +0 -0
  225. viam/gen/opentelemetry/proto/trace/v1/trace_pb2.py +37 -0
  226. viam/gen/opentelemetry/proto/trace/v1/trace_pb2.pyi +402 -0
  227. viam/gen/proto/rpc/examples/echo/v1/echo_grpc.py +12 -0
  228. viam/gen/proto/rpc/examples/echo/v1/echo_pb2.py +25 -22
  229. viam/gen/proto/rpc/examples/echo/v1/echo_pb2.pyi +13 -17
  230. viam/gen/proto/rpc/examples/echoresource/v1/echoresource_grpc.py +12 -0
  231. viam/gen/proto/rpc/examples/echoresource/v1/echoresource_pb2.py +23 -20
  232. viam/gen/proto/rpc/examples/echoresource/v1/echoresource_pb2.pyi +13 -17
  233. viam/gen/proto/rpc/v1/auth_grpc.py +11 -0
  234. viam/gen/proto/rpc/v1/auth_pb2.py +27 -24
  235. viam/gen/proto/rpc/v1/auth_pb2.pyi +12 -16
  236. viam/gen/proto/rpc/webrtc/v1/grpc_pb2.py +35 -32
  237. viam/gen/proto/rpc/webrtc/v1/grpc_pb2.pyi +37 -41
  238. viam/gen/proto/rpc/webrtc/v1/signaling_grpc.py +15 -0
  239. viam/gen/proto/rpc/webrtc/v1/signaling_pb2.py +62 -57
  240. viam/gen/proto/rpc/webrtc/v1/signaling_pb2.pyi +78 -69
  241. viam/gen/provisioning/__init__.py +0 -0
  242. viam/gen/provisioning/v1/__init__.py +0 -0
  243. viam/gen/provisioning/v1/provisioning_grpc.py +59 -0
  244. viam/gen/provisioning/v1/provisioning_pb2.py +45 -0
  245. viam/gen/provisioning/v1/provisioning_pb2.pyi +229 -0
  246. viam/gen/robot/v1/robot_grpc.py +144 -15
  247. viam/gen/robot/v1/robot_pb2.py +193 -119
  248. viam/gen/robot/v1/robot_pb2.pyi +565 -137
  249. viam/gen/service/datamanager/v1/data_manager_grpc.py +20 -2
  250. viam/gen/service/datamanager/v1/data_manager_pb2.py +27 -17
  251. viam/gen/service/datamanager/v1/data_manager_pb2.pyi +52 -10
  252. viam/gen/service/discovery/__init__.py +0 -0
  253. viam/gen/service/discovery/v1/__init__.py +0 -0
  254. viam/gen/service/discovery/v1/discovery_grpc.py +39 -0
  255. viam/gen/service/discovery/v1/discovery_pb2.py +29 -0
  256. viam/gen/service/discovery/v1/discovery_pb2.pyi +51 -0
  257. viam/gen/service/generic/__init__.py +0 -0
  258. viam/gen/service/generic/v1/__init__.py +0 -0
  259. viam/gen/service/generic/v1/generic_grpc.py +29 -0
  260. viam/gen/service/generic/v1/generic_pb2.py +21 -0
  261. viam/gen/service/generic/v1/generic_pb2.pyi +6 -0
  262. viam/gen/service/mlmodel/v1/mlmodel_grpc.py +9 -0
  263. viam/gen/service/mlmodel/v1/mlmodel_pb2.py +76 -29
  264. viam/gen/service/mlmodel/v1/mlmodel_pb2.pyi +307 -28
  265. viam/gen/service/motion/v1/motion_grpc.py +42 -4
  266. viam/gen/service/motion/v1/motion_pb2.py +119 -51
  267. viam/gen/service/motion/v1/motion_pb2.pyi +595 -120
  268. viam/gen/service/navigation/v1/navigation_grpc.py +49 -1
  269. viam/gen/service/navigation/v1/navigation_pb2.py +76 -51
  270. viam/gen/service/navigation/v1/navigation_pb2.pyi +188 -33
  271. viam/gen/service/sensors/v1/sensors_grpc.py +12 -0
  272. viam/gen/service/sensors/v1/sensors_pb2.py +60 -29
  273. viam/gen/service/sensors/v1/sensors_pb2.pyi +18 -21
  274. viam/gen/service/shell/v1/shell_grpc.py +27 -1
  275. viam/gen/service/shell/v1/shell_pb2.py +37 -15
  276. viam/gen/service/shell/v1/shell_pb2.pyi +260 -7
  277. viam/gen/service/slam/v1/slam_grpc.py +24 -2
  278. viam/gen/service/slam/v1/slam_pb2.py +44 -30
  279. viam/gen/service/slam/v1/slam_pb2.pyi +128 -27
  280. viam/gen/service/video/__init__.py +0 -0
  281. viam/gen/service/video/v1/__init__.py +0 -0
  282. viam/gen/service/video/v1/video_grpc.py +39 -0
  283. viam/gen/service/video/v1/video_pb2.py +29 -0
  284. viam/gen/service/video/v1/video_pb2.pyi +72 -0
  285. viam/gen/service/vision/v1/vision_grpc.py +39 -1
  286. viam/gen/service/vision/v1/vision_pb2.py +61 -45
  287. viam/gen/service/vision/v1/vision_pb2.pyi +180 -41
  288. viam/gen/service/worldstatestore/__init__.py +0 -0
  289. viam/gen/service/worldstatestore/v1/__init__.py +0 -0
  290. viam/gen/service/worldstatestore/v1/world_state_store_grpc.py +55 -0
  291. viam/gen/service/worldstatestore/v1/world_state_store_pb2.py +39 -0
  292. viam/gen/service/worldstatestore/v1/world_state_store_pb2.pyi +171 -0
  293. viam/gen/stream/__init__.py +0 -0
  294. viam/gen/stream/v1/__init__.py +0 -0
  295. viam/gen/stream/v1/stream_grpc.py +59 -0
  296. viam/gen/stream/v1/stream_pb2.py +39 -0
  297. viam/gen/stream/v1/stream_pb2.pyi +161 -0
  298. viam/gen/tagger/v1/tagger_pb2.py +9 -8
  299. viam/logging.py +160 -17
  300. viam/media/__init__.py +0 -9
  301. viam/media/audio.py +22 -10
  302. viam/media/utils/__init__.py +0 -0
  303. viam/media/utils/pil/__init__.py +55 -0
  304. viam/media/{viam_rgba_plugin.py → utils/pil/viam_rgba_plugin.py} +10 -16
  305. viam/media/viam_rgba.py +10 -0
  306. viam/media/video.py +197 -73
  307. viam/module/module.py +191 -44
  308. viam/module/resource_data_consumer.py +41 -0
  309. viam/module/service.py +9 -1
  310. viam/module/types.py +4 -5
  311. viam/operations.py +4 -3
  312. viam/proto/app/__init__.py +361 -5
  313. viam/proto/app/agent/__init__.py +28 -0
  314. viam/proto/app/billing.py +51 -27
  315. viam/proto/app/cloudslam/__init__.py +48 -0
  316. viam/proto/app/data/__init__.py +103 -17
  317. viam/proto/app/datapipelines/__init__.py +56 -0
  318. viam/proto/app/dataset/__init__.py +40 -0
  319. viam/proto/app/datasync/__init__.py +11 -5
  320. viam/proto/app/end_user.py +34 -0
  321. viam/proto/app/mlinference/__init__.py +15 -0
  322. viam/proto/app/mltraining/__init__.py +25 -1
  323. viam/proto/app/packages/__init__.py +3 -3
  324. viam/proto/app/robot.py +19 -1
  325. viam/proto/common/__init__.py +35 -8
  326. viam/proto/component/arm/__init__.py +9 -1
  327. viam/proto/component/audioin/__init__.py +16 -0
  328. viam/proto/component/audioinput/__init__.py +3 -1
  329. viam/proto/component/audioout/__init__.py +15 -0
  330. viam/proto/component/base/__init__.py +7 -1
  331. viam/proto/component/board/__init__.py +13 -5
  332. viam/proto/component/button/__init__.py +15 -0
  333. viam/proto/component/camera/__init__.py +9 -1
  334. viam/proto/component/encoder/__init__.py +3 -1
  335. viam/proto/component/gantry/__init__.py +7 -1
  336. viam/proto/component/generic/__init__.py +3 -1
  337. viam/proto/component/gripper/__init__.py +7 -1
  338. viam/proto/component/inputcontroller/__init__.py +7 -1
  339. viam/proto/component/motor/__init__.py +7 -1
  340. viam/proto/component/movementsensor/__init__.py +7 -1
  341. viam/proto/component/posetracker/__init__.py +7 -1
  342. viam/proto/component/powersensor/__init__.py +30 -0
  343. viam/proto/component/sensor/__init__.py +3 -4
  344. viam/proto/component/servo/__init__.py +3 -1
  345. viam/proto/component/switch/__init__.py +26 -0
  346. viam/proto/component/testecho/__init__.py +3 -1
  347. viam/proto/module/__init__.py +3 -1
  348. viam/proto/opentelemetry/__init__.py +0 -0
  349. viam/proto/opentelemetry/proto/__init__.py +0 -0
  350. viam/proto/opentelemetry/proto/common/__init__.py +15 -0
  351. viam/proto/opentelemetry/proto/resource/__init__.py +10 -0
  352. viam/proto/opentelemetry/proto/trace/__init__.py +15 -0
  353. viam/proto/provisioning/__init__.py +42 -0
  354. viam/proto/robot/__init__.py +57 -9
  355. viam/proto/rpc/auth.py +11 -1
  356. viam/proto/rpc/examples/echo/__init__.py +3 -1
  357. viam/proto/rpc/examples/echoresource/__init__.py +7 -1
  358. viam/proto/rpc/webrtc/grpc.py +3 -1
  359. viam/proto/rpc/webrtc/signaling.py +5 -1
  360. viam/proto/service/datamanager/__init__.py +15 -2
  361. viam/proto/service/discovery/__init__.py +15 -0
  362. viam/proto/service/generic/__init__.py +12 -0
  363. viam/proto/service/mlmodel/__init__.py +27 -1
  364. viam/proto/service/motion/__init__.py +35 -5
  365. viam/proto/service/navigation/__init__.py +19 -1
  366. viam/proto/service/sensors/__init__.py +3 -1
  367. viam/proto/service/shell/__init__.py +25 -2
  368. viam/proto/service/slam/__init__.py +13 -1
  369. viam/proto/service/video/__init__.py +15 -0
  370. viam/proto/service/vision/__init__.py +11 -1
  371. viam/proto/service/worldstatestore/__init__.py +32 -0
  372. viam/proto/stream/__init__.py +36 -0
  373. viam/py.typed +0 -0
  374. viam/resource/base.py +45 -8
  375. viam/resource/easy_resource.py +149 -0
  376. viam/resource/manager.py +35 -14
  377. viam/resource/registry.py +40 -52
  378. viam/resource/rpc_client_base.py +33 -1
  379. viam/resource/rpc_service_base.py +15 -8
  380. viam/resource/types.py +39 -26
  381. viam/robot/client.py +458 -91
  382. viam/robot/service.py +13 -107
  383. viam/rpc/dial.py +133 -15
  384. viam/rpc/libviam_rust_utils.so +0 -0
  385. viam/rpc/server.py +59 -15
  386. viam/rpc/types.py +2 -4
  387. viam/services/discovery/__init__.py +12 -0
  388. viam/services/discovery/client.py +55 -0
  389. viam/services/discovery/discovery.py +52 -0
  390. viam/services/discovery/service.py +43 -0
  391. viam/services/generic/__init__.py +18 -0
  392. viam/services/generic/client.py +58 -0
  393. viam/services/generic/generic.py +58 -0
  394. viam/services/generic/service.py +29 -0
  395. viam/services/mlmodel/__init__.py +15 -1
  396. viam/services/mlmodel/client.py +20 -15
  397. viam/services/mlmodel/mlmodel.py +44 -7
  398. viam/services/mlmodel/service.py +9 -13
  399. viam/services/mlmodel/utils.py +101 -0
  400. viam/services/motion/__init__.py +15 -3
  401. viam/services/motion/client.py +109 -150
  402. viam/services/motion/motion.py +380 -0
  403. viam/services/motion/service.py +132 -0
  404. viam/services/navigation/__init__.py +11 -0
  405. viam/services/navigation/client.py +99 -0
  406. viam/services/navigation/navigation.py +250 -0
  407. viam/services/navigation/service.py +137 -0
  408. viam/services/service_base.py +43 -4
  409. viam/services/service_client_base.py +4 -4
  410. viam/services/slam/__init__.py +4 -1
  411. viam/services/slam/client.py +21 -11
  412. viam/services/slam/service.py +16 -19
  413. viam/services/slam/slam.py +66 -5
  414. viam/services/vision/__init__.py +8 -0
  415. viam/services/vision/client.py +115 -111
  416. viam/services/vision/service.py +143 -0
  417. viam/services/vision/vision.py +317 -0
  418. viam/services/worldstatestore/__init__.py +18 -0
  419. viam/services/worldstatestore/client.py +94 -0
  420. viam/services/worldstatestore/service.py +55 -0
  421. viam/services/worldstatestore/worldstatestore.py +90 -0
  422. viam/sessions_client.py +254 -0
  423. viam/streams.py +44 -0
  424. viam/utils.py +143 -15
  425. viam/version_metadata.py +4 -0
  426. viam_sdk-0.66.0.dist-info/METADATA +157 -0
  427. viam_sdk-0.66.0.dist-info/RECORD +531 -0
  428. {viam_sdk-0.3.0.dist-info → viam_sdk-0.66.0.dist-info}/WHEEL +1 -1
  429. viam/components/audio_input/__init__.py +0 -18
  430. viam/components/audio_input/audio_input.py +0 -79
  431. viam/components/audio_input/client.py +0 -60
  432. viam/components/audio_input/service.py +0 -118
  433. viam/components/types.py +0 -5
  434. viam/gen/app/model/v1/model_grpc.py +0 -39
  435. viam/gen/app/model/v1/model_pb2.py +0 -71
  436. viam/gen/app/model/v1/model_pb2.pyi +0 -285
  437. viam/gen/proto/rpc/examples/fileupload/v1/fileupload_grpc.py +0 -21
  438. viam/gen/proto/rpc/examples/fileupload/v1/fileupload_pb2.py +0 -18
  439. viam/gen/proto/rpc/examples/fileupload/v1/fileupload_pb2.pyi +0 -49
  440. viam/media/media.py +0 -53
  441. viam/proto/app/model/__init__.py +0 -40
  442. viam/proto/rpc/examples/fileupload/__init__.py +0 -13
  443. viam/services/sensors/__init__.py +0 -5
  444. viam/services/sensors/client.py +0 -63
  445. viam_sdk-0.3.0.dist-info/LICENSE +0 -202
  446. viam_sdk-0.3.0.dist-info/METADATA +0 -122
  447. viam_sdk-0.3.0.dist-info/RECORD +0 -372
  448. /viam/{gen/app/model → app}/__init__.py +0 -0
  449. /viam/gen/app/{model/v1 → agent}/__init__.py +0 -0
  450. /viam/gen/{proto/rpc/examples/fileupload → app/agent/v1}/__init__.py +0 -0
  451. /viam/gen/{proto/rpc/examples/fileupload/v1 → app/cloudslam}/__init__.py +0 -0
  452. /LICENSE → /viam_sdk-0.66.0.dist-info/licenses/LICENSE +0 -0
@@ -7,36 +7,67 @@ import collections.abc
7
7
  from .... import common
8
8
  import google.protobuf.descriptor
9
9
  import google.protobuf.internal.containers
10
+ import google.protobuf.internal.enum_type_wrapper
10
11
  import google.protobuf.message
11
12
  import google.protobuf.struct_pb2
13
+ import google.protobuf.timestamp_pb2
12
14
  import sys
13
15
  import typing
14
- if sys.version_info >= (3, 8):
16
+ if sys.version_info >= (3, 10):
15
17
  import typing as typing_extensions
16
18
  else:
17
19
  import typing_extensions
18
20
  DESCRIPTOR: google.protobuf.descriptor.FileDescriptor
19
21
 
20
- @typing_extensions.final
22
+ class _PlanState:
23
+ ValueType = typing.NewType('ValueType', builtins.int)
24
+ V: typing_extensions.TypeAlias = ValueType
25
+
26
+ class _PlanStateEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_PlanState.ValueType], builtins.type):
27
+ DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor
28
+ PLAN_STATE_UNSPECIFIED: _PlanState.ValueType
29
+ PLAN_STATE_IN_PROGRESS: _PlanState.ValueType
30
+ PLAN_STATE_STOPPED: _PlanState.ValueType
31
+ PLAN_STATE_SUCCEEDED: _PlanState.ValueType
32
+ PLAN_STATE_FAILED: _PlanState.ValueType
33
+
34
+ class PlanState(_PlanState, metaclass=_PlanStateEnumTypeWrapper):
35
+ """The states that a plan can be in.
36
+ InProgress if the plan is executing.
37
+ Stopped if the plan was stopped.
38
+ Suceeded if the robot reached its destination successfully.
39
+ Failed if the robot did not reach its destination.
40
+ """
41
+ PLAN_STATE_UNSPECIFIED: PlanState.ValueType
42
+ PLAN_STATE_IN_PROGRESS: PlanState.ValueType
43
+ PLAN_STATE_STOPPED: PlanState.ValueType
44
+ PLAN_STATE_SUCCEEDED: PlanState.ValueType
45
+ PLAN_STATE_FAILED: PlanState.ValueType
46
+ global___PlanState = PlanState
47
+
48
+ @typing.final
21
49
  class MoveRequest(google.protobuf.message.Message):
22
50
  """Moves any component on the robot to a specified destination which can be from the reference frame of any other component on the robot."""
23
51
  DESCRIPTOR: google.protobuf.descriptor.Descriptor
24
52
  NAME_FIELD_NUMBER: builtins.int
25
53
  DESTINATION_FIELD_NUMBER: builtins.int
26
- COMPONENT_NAME_FIELD_NUMBER: builtins.int
54
+ COMPONENT_NAME_DEPRECATED_FIELD_NUMBER: builtins.int
27
55
  WORLD_STATE_FIELD_NUMBER: builtins.int
28
56
  CONSTRAINTS_FIELD_NUMBER: builtins.int
57
+ COMPONENT_NAME_FIELD_NUMBER: builtins.int
29
58
  EXTRA_FIELD_NUMBER: builtins.int
30
59
  name: builtins.str
31
60
  'Name of the motion service'
61
+ component_name: builtins.str
62
+ 'Component on the robot to move to the specified destination'
32
63
 
33
64
  @property
34
65
  def destination(self) -> common.v1.common_pb2.PoseInFrame:
35
66
  """Destination to move to, which can a pose in the reference frame of any frame in the robot's frame system"""
36
67
 
37
68
  @property
38
- def component_name(self) -> common.v1.common_pb2.ResourceName:
39
- """Component on the robot to move to the specified destination"""
69
+ def component_name_deprecated(self) -> common.v1.common_pb2.ResourceName:
70
+ """Deprecated, use component_name field."""
40
71
 
41
72
  @property
42
73
  def world_state(self) -> common.v1.common_pb2.WorldState:
@@ -52,25 +83,25 @@ class MoveRequest(google.protobuf.message.Message):
52
83
  def extra(self) -> google.protobuf.struct_pb2.Struct:
53
84
  """Additional arguments to the method"""
54
85
 
55
- def __init__(self, *, name: builtins.str=..., destination: common.v1.common_pb2.PoseInFrame | None=..., component_name: common.v1.common_pb2.ResourceName | None=..., world_state: common.v1.common_pb2.WorldState | None=..., constraints: global___Constraints | None=..., extra: google.protobuf.struct_pb2.Struct | None=...) -> None:
86
+ def __init__(self, *, name: builtins.str=..., destination: common.v1.common_pb2.PoseInFrame | None=..., component_name_deprecated: common.v1.common_pb2.ResourceName | None=..., world_state: common.v1.common_pb2.WorldState | None=..., constraints: global___Constraints | None=..., component_name: builtins.str=..., extra: google.protobuf.struct_pb2.Struct | None=...) -> None:
56
87
  ...
57
88
 
58
- def HasField(self, field_name: typing_extensions.Literal['_constraints', b'_constraints', '_world_state', b'_world_state', 'component_name', b'component_name', 'constraints', b'constraints', 'destination', b'destination', 'extra', b'extra', 'world_state', b'world_state']) -> builtins.bool:
89
+ def HasField(self, field_name: typing.Literal['_constraints', b'_constraints', '_world_state', b'_world_state', 'component_name_deprecated', b'component_name_deprecated', 'constraints', b'constraints', 'destination', b'destination', 'extra', b'extra', 'world_state', b'world_state']) -> builtins.bool:
59
90
  ...
60
91
 
61
- def ClearField(self, field_name: typing_extensions.Literal['_constraints', b'_constraints', '_world_state', b'_world_state', 'component_name', b'component_name', 'constraints', b'constraints', 'destination', b'destination', 'extra', b'extra', 'name', b'name', 'world_state', b'world_state']) -> None:
92
+ def ClearField(self, field_name: typing.Literal['_constraints', b'_constraints', '_world_state', b'_world_state', 'component_name', b'component_name', 'component_name_deprecated', b'component_name_deprecated', 'constraints', b'constraints', 'destination', b'destination', 'extra', b'extra', 'name', b'name', 'world_state', b'world_state']) -> None:
62
93
  ...
63
94
 
64
95
  @typing.overload
65
- def WhichOneof(self, oneof_group: typing_extensions.Literal['_constraints', b'_constraints']) -> typing_extensions.Literal['constraints'] | None:
96
+ def WhichOneof(self, oneof_group: typing.Literal['_constraints', b'_constraints']) -> typing.Literal['constraints'] | None:
66
97
  ...
67
98
 
68
99
  @typing.overload
69
- def WhichOneof(self, oneof_group: typing_extensions.Literal['_world_state', b'_world_state']) -> typing_extensions.Literal['world_state'] | None:
100
+ def WhichOneof(self, oneof_group: typing.Literal['_world_state', b'_world_state']) -> typing.Literal['world_state'] | None:
70
101
  ...
71
102
  global___MoveRequest = MoveRequest
72
103
 
73
- @typing_extensions.final
104
+ @typing.final
74
105
  class MoveResponse(google.protobuf.message.Message):
75
106
  DESCRIPTOR: google.protobuf.descriptor.Descriptor
76
107
  SUCCESS_FIELD_NUMBER: builtins.int
@@ -79,250 +110,461 @@ class MoveResponse(google.protobuf.message.Message):
79
110
  def __init__(self, *, success: builtins.bool=...) -> None:
80
111
  ...
81
112
 
82
- def ClearField(self, field_name: typing_extensions.Literal['success', b'success']) -> None:
113
+ def ClearField(self, field_name: typing.Literal['success', b'success']) -> None:
83
114
  ...
84
115
  global___MoveResponse = MoveResponse
85
116
 
86
- @typing_extensions.final
117
+ @typing.final
87
118
  class MoveOnMapRequest(google.protobuf.message.Message):
88
119
  DESCRIPTOR: google.protobuf.descriptor.Descriptor
89
120
  NAME_FIELD_NUMBER: builtins.int
90
121
  DESTINATION_FIELD_NUMBER: builtins.int
122
+ COMPONENT_NAME_DEPRECATED_FIELD_NUMBER: builtins.int
123
+ SLAM_SERVICE_NAME_DEPRECATED_FIELD_NUMBER: builtins.int
124
+ MOTION_CONFIGURATION_FIELD_NUMBER: builtins.int
125
+ OBSTACLES_FIELD_NUMBER: builtins.int
91
126
  COMPONENT_NAME_FIELD_NUMBER: builtins.int
92
127
  SLAM_SERVICE_NAME_FIELD_NUMBER: builtins.int
93
128
  EXTRA_FIELD_NUMBER: builtins.int
94
129
  name: builtins.str
95
130
  'Name of the motion service'
131
+ component_name: builtins.str
132
+ 'Component on the robot to move to the specified destination'
133
+ slam_service_name: builtins.str
134
+ 'Name of the slam service from which the SLAM map is requested'
96
135
 
97
136
  @property
98
137
  def destination(self) -> common.v1.common_pb2.Pose:
99
138
  """Specify a destination to, which can be any pose with respect to the SLAM map's origin"""
100
139
 
101
140
  @property
102
- def component_name(self) -> common.v1.common_pb2.ResourceName:
103
- """Component on the robot to move to the specified destination"""
141
+ def component_name_deprecated(self) -> common.v1.common_pb2.ResourceName:
142
+ """Deprecated, use component_name field."""
143
+
144
+ @property
145
+ def slam_service_name_deprecated(self) -> common.v1.common_pb2.ResourceName:
146
+ """Deprecated, use slam_service_name field."""
104
147
 
105
148
  @property
106
- def slam_service_name(self) -> common.v1.common_pb2.ResourceName:
107
- """Name of the slam service from which the SLAM map is requested"""
149
+ def motion_configuration(self) -> global___MotionConfiguration:
150
+ """Optional set of motion configuration options"""
151
+
152
+ @property
153
+ def obstacles(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[common.v1.common_pb2.Geometry]:
154
+ """Obstacles to be considered for motion planning"""
108
155
 
109
156
  @property
110
157
  def extra(self) -> google.protobuf.struct_pb2.Struct:
111
158
  """Additional arguments to the method"""
112
159
 
113
- def __init__(self, *, name: builtins.str=..., destination: common.v1.common_pb2.Pose | None=..., component_name: common.v1.common_pb2.ResourceName | None=..., slam_service_name: common.v1.common_pb2.ResourceName | None=..., extra: google.protobuf.struct_pb2.Struct | None=...) -> None:
160
+ def __init__(self, *, name: builtins.str=..., destination: common.v1.common_pb2.Pose | None=..., component_name_deprecated: common.v1.common_pb2.ResourceName | None=..., slam_service_name_deprecated: common.v1.common_pb2.ResourceName | None=..., motion_configuration: global___MotionConfiguration | None=..., obstacles: collections.abc.Iterable[common.v1.common_pb2.Geometry] | None=..., component_name: builtins.str=..., slam_service_name: builtins.str=..., extra: google.protobuf.struct_pb2.Struct | None=...) -> None:
114
161
  ...
115
162
 
116
- def HasField(self, field_name: typing_extensions.Literal['component_name', b'component_name', 'destination', b'destination', 'extra', b'extra', 'slam_service_name', b'slam_service_name']) -> builtins.bool:
163
+ def HasField(self, field_name: typing.Literal['_motion_configuration', b'_motion_configuration', 'component_name_deprecated', b'component_name_deprecated', 'destination', b'destination', 'extra', b'extra', 'motion_configuration', b'motion_configuration', 'slam_service_name_deprecated', b'slam_service_name_deprecated']) -> builtins.bool:
117
164
  ...
118
165
 
119
- def ClearField(self, field_name: typing_extensions.Literal['component_name', b'component_name', 'destination', b'destination', 'extra', b'extra', 'name', b'name', 'slam_service_name', b'slam_service_name']) -> None:
166
+ def ClearField(self, field_name: typing.Literal['_motion_configuration', b'_motion_configuration', 'component_name', b'component_name', 'component_name_deprecated', b'component_name_deprecated', 'destination', b'destination', 'extra', b'extra', 'motion_configuration', b'motion_configuration', 'name', b'name', 'obstacles', b'obstacles', 'slam_service_name', b'slam_service_name', 'slam_service_name_deprecated', b'slam_service_name_deprecated']) -> None:
167
+ ...
168
+
169
+ def WhichOneof(self, oneof_group: typing.Literal['_motion_configuration', b'_motion_configuration']) -> typing.Literal['motion_configuration'] | None:
120
170
  ...
121
171
  global___MoveOnMapRequest = MoveOnMapRequest
122
172
 
123
- @typing_extensions.final
173
+ @typing.final
124
174
  class MoveOnMapResponse(google.protobuf.message.Message):
125
175
  DESCRIPTOR: google.protobuf.descriptor.Descriptor
126
- SUCCESS_FIELD_NUMBER: builtins.int
127
- success: builtins.bool
176
+ EXECUTION_ID_FIELD_NUMBER: builtins.int
177
+ execution_id: builtins.str
178
+ 'The unique ID which identifies the execution.\n Multiple plans will share the same execution_id if they were\n generated due to replanning.\n '
128
179
 
129
- def __init__(self, *, success: builtins.bool=...) -> None:
180
+ def __init__(self, *, execution_id: builtins.str=...) -> None:
130
181
  ...
131
182
 
132
- def ClearField(self, field_name: typing_extensions.Literal['success', b'success']) -> None:
183
+ def ClearField(self, field_name: typing.Literal['execution_id', b'execution_id']) -> None:
133
184
  ...
134
185
  global___MoveOnMapResponse = MoveOnMapResponse
135
186
 
136
- @typing_extensions.final
187
+ @typing.final
188
+ class ObstacleDetector(google.protobuf.message.Message):
189
+ """Pairs a vision service with a camera, informing the service about which camera it may use"""
190
+ DESCRIPTOR: google.protobuf.descriptor.Descriptor
191
+ VISION_SERVICE_DEPRECATED_FIELD_NUMBER: builtins.int
192
+ CAMERA_DEPRECATED_FIELD_NUMBER: builtins.int
193
+ VISION_SERVICE_FIELD_NUMBER: builtins.int
194
+ CAMERA_FIELD_NUMBER: builtins.int
195
+ vision_service: builtins.str
196
+ camera: builtins.str
197
+
198
+ @property
199
+ def vision_service_deprecated(self) -> common.v1.common_pb2.ResourceName:
200
+ ...
201
+
202
+ @property
203
+ def camera_deprecated(self) -> common.v1.common_pb2.ResourceName:
204
+ ...
205
+
206
+ def __init__(self, *, vision_service_deprecated: common.v1.common_pb2.ResourceName | None=..., camera_deprecated: common.v1.common_pb2.ResourceName | None=..., vision_service: builtins.str=..., camera: builtins.str=...) -> None:
207
+ ...
208
+
209
+ def HasField(self, field_name: typing.Literal['camera_deprecated', b'camera_deprecated', 'vision_service_deprecated', b'vision_service_deprecated']) -> builtins.bool:
210
+ ...
211
+
212
+ def ClearField(self, field_name: typing.Literal['camera', b'camera', 'camera_deprecated', b'camera_deprecated', 'vision_service', b'vision_service', 'vision_service_deprecated', b'vision_service_deprecated']) -> None:
213
+ ...
214
+ global___ObstacleDetector = ObstacleDetector
215
+
216
+ @typing.final
217
+ class MotionConfiguration(google.protobuf.message.Message):
218
+ DESCRIPTOR: google.protobuf.descriptor.Descriptor
219
+ OBSTACLE_DETECTORS_FIELD_NUMBER: builtins.int
220
+ POSITION_POLLING_FREQUENCY_HZ_FIELD_NUMBER: builtins.int
221
+ OBSTACLE_POLLING_FREQUENCY_HZ_FIELD_NUMBER: builtins.int
222
+ PLAN_DEVIATION_M_FIELD_NUMBER: builtins.int
223
+ LINEAR_M_PER_SEC_FIELD_NUMBER: builtins.int
224
+ ANGULAR_DEGS_PER_SEC_FIELD_NUMBER: builtins.int
225
+ position_polling_frequency_hz: builtins.float
226
+ 'Sets the frequency to poll for the position of the robot'
227
+ obstacle_polling_frequency_hz: builtins.float
228
+ 'Sets the frequency to poll the vision service(s) for new obstacles'
229
+ plan_deviation_m: builtins.float
230
+ 'Sets the distance in meters that a robot is allowed to deviate from the motion plan'
231
+ linear_m_per_sec: builtins.float
232
+ 'Optional linear velocity to target when moving'
233
+ angular_degs_per_sec: builtins.float
234
+ 'Optional angular velocity to target when turning'
235
+
236
+ @property
237
+ def obstacle_detectors(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___ObstacleDetector]:
238
+ """The ObstacleDetectors that will be used for transient obstacle avoidance"""
239
+
240
+ def __init__(self, *, obstacle_detectors: collections.abc.Iterable[global___ObstacleDetector] | None=..., position_polling_frequency_hz: builtins.float | None=..., obstacle_polling_frequency_hz: builtins.float | None=..., plan_deviation_m: builtins.float | None=..., linear_m_per_sec: builtins.float | None=..., angular_degs_per_sec: builtins.float | None=...) -> None:
241
+ ...
242
+
243
+ def HasField(self, field_name: typing.Literal['_angular_degs_per_sec', b'_angular_degs_per_sec', '_linear_m_per_sec', b'_linear_m_per_sec', '_obstacle_polling_frequency_hz', b'_obstacle_polling_frequency_hz', '_plan_deviation_m', b'_plan_deviation_m', '_position_polling_frequency_hz', b'_position_polling_frequency_hz', 'angular_degs_per_sec', b'angular_degs_per_sec', 'linear_m_per_sec', b'linear_m_per_sec', 'obstacle_polling_frequency_hz', b'obstacle_polling_frequency_hz', 'plan_deviation_m', b'plan_deviation_m', 'position_polling_frequency_hz', b'position_polling_frequency_hz']) -> builtins.bool:
244
+ ...
245
+
246
+ def ClearField(self, field_name: typing.Literal['_angular_degs_per_sec', b'_angular_degs_per_sec', '_linear_m_per_sec', b'_linear_m_per_sec', '_obstacle_polling_frequency_hz', b'_obstacle_polling_frequency_hz', '_plan_deviation_m', b'_plan_deviation_m', '_position_polling_frequency_hz', b'_position_polling_frequency_hz', 'angular_degs_per_sec', b'angular_degs_per_sec', 'linear_m_per_sec', b'linear_m_per_sec', 'obstacle_detectors', b'obstacle_detectors', 'obstacle_polling_frequency_hz', b'obstacle_polling_frequency_hz', 'plan_deviation_m', b'plan_deviation_m', 'position_polling_frequency_hz', b'position_polling_frequency_hz']) -> None:
247
+ ...
248
+
249
+ @typing.overload
250
+ def WhichOneof(self, oneof_group: typing.Literal['_angular_degs_per_sec', b'_angular_degs_per_sec']) -> typing.Literal['angular_degs_per_sec'] | None:
251
+ ...
252
+
253
+ @typing.overload
254
+ def WhichOneof(self, oneof_group: typing.Literal['_linear_m_per_sec', b'_linear_m_per_sec']) -> typing.Literal['linear_m_per_sec'] | None:
255
+ ...
256
+
257
+ @typing.overload
258
+ def WhichOneof(self, oneof_group: typing.Literal['_obstacle_polling_frequency_hz', b'_obstacle_polling_frequency_hz']) -> typing.Literal['obstacle_polling_frequency_hz'] | None:
259
+ ...
260
+
261
+ @typing.overload
262
+ def WhichOneof(self, oneof_group: typing.Literal['_plan_deviation_m', b'_plan_deviation_m']) -> typing.Literal['plan_deviation_m'] | None:
263
+ ...
264
+
265
+ @typing.overload
266
+ def WhichOneof(self, oneof_group: typing.Literal['_position_polling_frequency_hz', b'_position_polling_frequency_hz']) -> typing.Literal['position_polling_frequency_hz'] | None:
267
+ ...
268
+ global___MotionConfiguration = MotionConfiguration
269
+
270
+ @typing.final
137
271
  class MoveOnGlobeRequest(google.protobuf.message.Message):
138
272
  DESCRIPTOR: google.protobuf.descriptor.Descriptor
139
273
  NAME_FIELD_NUMBER: builtins.int
140
274
  DESTINATION_FIELD_NUMBER: builtins.int
141
275
  HEADING_FIELD_NUMBER: builtins.int
276
+ COMPONENT_NAME_DEPRECATED_FIELD_NUMBER: builtins.int
277
+ MOVEMENT_SENSOR_NAME_DEPRECATED_FIELD_NUMBER: builtins.int
278
+ OBSTACLES_FIELD_NUMBER: builtins.int
279
+ MOTION_CONFIGURATION_FIELD_NUMBER: builtins.int
280
+ BOUNDING_REGIONS_FIELD_NUMBER: builtins.int
142
281
  COMPONENT_NAME_FIELD_NUMBER: builtins.int
143
282
  MOVEMENT_SENSOR_NAME_FIELD_NUMBER: builtins.int
144
- OBSTACLES_FIELD_NUMBER: builtins.int
145
- LINEAR_METERS_PER_SEC_FIELD_NUMBER: builtins.int
146
- ANGULAR_DEG_PER_SEC_FIELD_NUMBER: builtins.int
147
283
  EXTRA_FIELD_NUMBER: builtins.int
148
284
  name: builtins.str
149
285
  'Name of the motion service'
286
+ heading: builtins.float
287
+ 'Optional compass heading to achieve at the destination, in degrees [0-360)'
288
+ component_name: builtins.str
289
+ 'Component on the robot to move to the specified destination'
290
+ movement_sensor_name: builtins.str
291
+ 'Name of the movement sensor which will be used to check robot location'
150
292
 
151
293
  @property
152
294
  def destination(self) -> common.v1.common_pb2.GeoPoint:
153
295
  """Destination, encoded as a GeoPoint"""
154
- heading: builtins.float
155
- 'Optional compass heading to achieve at the destination, in degrees [0-360)'
156
296
 
157
297
  @property
158
- def component_name(self) -> common.v1.common_pb2.ResourceName:
159
- """Component on the robot to move to the specified destination"""
298
+ def component_name_deprecated(self) -> common.v1.common_pb2.ResourceName:
299
+ """Deprecated, use component_name field."""
160
300
 
161
301
  @property
162
- def movement_sensor_name(self) -> common.v1.common_pb2.ResourceName:
163
- """Name of the movement sensor which will be used to check robot location"""
302
+ def movement_sensor_name_deprecated(self) -> common.v1.common_pb2.ResourceName:
303
+ """Deprecated, use movement_sensor_name field."""
164
304
 
165
305
  @property
166
- def obstacles(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[common.v1.common_pb2.GeoObstacle]:
306
+ def obstacles(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[common.v1.common_pb2.GeoGeometry]:
167
307
  """Obstacles to be considered for motion planning"""
168
- linear_meters_per_sec: builtins.float
169
- 'Optional linear velocity to target when moving'
170
- angular_deg_per_sec: builtins.float
171
- 'Optional angular velocity to target when turning'
308
+
309
+ @property
310
+ def motion_configuration(self) -> global___MotionConfiguration:
311
+ """Optional set of motion configuration options"""
312
+
313
+ @property
314
+ def bounding_regions(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[common.v1.common_pb2.GeoGeometry]:
315
+ """Set of obstacles which the robot must remain within while navigating"""
172
316
 
173
317
  @property
174
318
  def extra(self) -> google.protobuf.struct_pb2.Struct:
175
319
  """Additional arguments to the method"""
176
320
 
177
- def __init__(self, *, name: builtins.str=..., destination: common.v1.common_pb2.GeoPoint | None=..., heading: builtins.float | None=..., component_name: common.v1.common_pb2.ResourceName | None=..., movement_sensor_name: common.v1.common_pb2.ResourceName | None=..., obstacles: collections.abc.Iterable[common.v1.common_pb2.GeoObstacle] | None=..., linear_meters_per_sec: builtins.float | None=..., angular_deg_per_sec: builtins.float | None=..., extra: google.protobuf.struct_pb2.Struct | None=...) -> None:
321
+ def __init__(self, *, name: builtins.str=..., destination: common.v1.common_pb2.GeoPoint | None=..., heading: builtins.float | None=..., component_name_deprecated: common.v1.common_pb2.ResourceName | None=..., movement_sensor_name_deprecated: common.v1.common_pb2.ResourceName | None=..., obstacles: collections.abc.Iterable[common.v1.common_pb2.GeoGeometry] | None=..., motion_configuration: global___MotionConfiguration | None=..., bounding_regions: collections.abc.Iterable[common.v1.common_pb2.GeoGeometry] | None=..., component_name: builtins.str=..., movement_sensor_name: builtins.str=..., extra: google.protobuf.struct_pb2.Struct | None=...) -> None:
178
322
  ...
179
323
 
180
- def HasField(self, field_name: typing_extensions.Literal['_angular_deg_per_sec', b'_angular_deg_per_sec', '_heading', b'_heading', '_linear_meters_per_sec', b'_linear_meters_per_sec', 'angular_deg_per_sec', b'angular_deg_per_sec', 'component_name', b'component_name', 'destination', b'destination', 'extra', b'extra', 'heading', b'heading', 'linear_meters_per_sec', b'linear_meters_per_sec', 'movement_sensor_name', b'movement_sensor_name']) -> builtins.bool:
324
+ def HasField(self, field_name: typing.Literal['_heading', b'_heading', '_motion_configuration', b'_motion_configuration', 'component_name_deprecated', b'component_name_deprecated', 'destination', b'destination', 'extra', b'extra', 'heading', b'heading', 'motion_configuration', b'motion_configuration', 'movement_sensor_name_deprecated', b'movement_sensor_name_deprecated']) -> builtins.bool:
181
325
  ...
182
326
 
183
- def ClearField(self, field_name: typing_extensions.Literal['_angular_deg_per_sec', b'_angular_deg_per_sec', '_heading', b'_heading', '_linear_meters_per_sec', b'_linear_meters_per_sec', 'angular_deg_per_sec', b'angular_deg_per_sec', 'component_name', b'component_name', 'destination', b'destination', 'extra', b'extra', 'heading', b'heading', 'linear_meters_per_sec', b'linear_meters_per_sec', 'movement_sensor_name', b'movement_sensor_name', 'name', b'name', 'obstacles', b'obstacles']) -> None:
327
+ def ClearField(self, field_name: typing.Literal['_heading', b'_heading', '_motion_configuration', b'_motion_configuration', 'bounding_regions', b'bounding_regions', 'component_name', b'component_name', 'component_name_deprecated', b'component_name_deprecated', 'destination', b'destination', 'extra', b'extra', 'heading', b'heading', 'motion_configuration', b'motion_configuration', 'movement_sensor_name', b'movement_sensor_name', 'movement_sensor_name_deprecated', b'movement_sensor_name_deprecated', 'name', b'name', 'obstacles', b'obstacles']) -> None:
184
328
  ...
185
329
 
186
330
  @typing.overload
187
- def WhichOneof(self, oneof_group: typing_extensions.Literal['_angular_deg_per_sec', b'_angular_deg_per_sec']) -> typing_extensions.Literal['angular_deg_per_sec'] | None:
331
+ def WhichOneof(self, oneof_group: typing.Literal['_heading', b'_heading']) -> typing.Literal['heading'] | None:
188
332
  ...
189
333
 
190
334
  @typing.overload
191
- def WhichOneof(self, oneof_group: typing_extensions.Literal['_heading', b'_heading']) -> typing_extensions.Literal['heading'] | None:
192
- ...
193
-
194
- @typing.overload
195
- def WhichOneof(self, oneof_group: typing_extensions.Literal['_linear_meters_per_sec', b'_linear_meters_per_sec']) -> typing_extensions.Literal['linear_meters_per_sec'] | None:
335
+ def WhichOneof(self, oneof_group: typing.Literal['_motion_configuration', b'_motion_configuration']) -> typing.Literal['motion_configuration'] | None:
196
336
  ...
197
337
  global___MoveOnGlobeRequest = MoveOnGlobeRequest
198
338
 
199
- @typing_extensions.final
339
+ @typing.final
200
340
  class MoveOnGlobeResponse(google.protobuf.message.Message):
201
341
  DESCRIPTOR: google.protobuf.descriptor.Descriptor
202
- SUCCESS_FIELD_NUMBER: builtins.int
203
- success: builtins.bool
342
+ EXECUTION_ID_FIELD_NUMBER: builtins.int
343
+ execution_id: builtins.str
344
+ 'The unique ID which identifies the execution.\n Multiple plans will share the same execution_id if they were\n generated due to replanning.\n '
204
345
 
205
- def __init__(self, *, success: builtins.bool=...) -> None:
346
+ def __init__(self, *, execution_id: builtins.str=...) -> None:
206
347
  ...
207
348
 
208
- def ClearField(self, field_name: typing_extensions.Literal['success', b'success']) -> None:
349
+ def ClearField(self, field_name: typing.Literal['execution_id', b'execution_id']) -> None:
209
350
  ...
210
351
  global___MoveOnGlobeResponse = MoveOnGlobeResponse
211
352
 
212
- @typing_extensions.final
213
- class MoveSingleComponentRequest(google.protobuf.message.Message):
353
+ @typing.final
354
+ class GetPoseRequest(google.protobuf.message.Message):
214
355
  DESCRIPTOR: google.protobuf.descriptor.Descriptor
215
356
  NAME_FIELD_NUMBER: builtins.int
216
- DESTINATION_FIELD_NUMBER: builtins.int
357
+ COMPONENT_NAME_DEPRECATED_FIELD_NUMBER: builtins.int
358
+ DESTINATION_FRAME_FIELD_NUMBER: builtins.int
359
+ SUPPLEMENTAL_TRANSFORMS_FIELD_NUMBER: builtins.int
217
360
  COMPONENT_NAME_FIELD_NUMBER: builtins.int
218
- WORLD_STATE_FIELD_NUMBER: builtins.int
219
361
  EXTRA_FIELD_NUMBER: builtins.int
220
362
  name: builtins.str
363
+ destination_frame: builtins.str
364
+ 'the reference frame in which the component\'s pose\n should be provided, if unset this defaults\n to the "world" reference frame\n '
365
+ component_name: builtins.str
366
+ 'the component whose pose is being requested'
221
367
 
222
368
  @property
223
- def destination(self) -> common.v1.common_pb2.PoseInFrame:
224
- ...
369
+ def component_name_deprecated(self) -> common.v1.common_pb2.ResourceName:
370
+ """Deprecated, use component_name field."""
225
371
 
226
372
  @property
227
- def component_name(self) -> common.v1.common_pb2.ResourceName:
373
+ def supplemental_transforms(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[common.v1.common_pb2.Transform]:
374
+ """pose information on any additional reference frames that are needed
375
+ to compute the component's pose
376
+ """
377
+
378
+ @property
379
+ def extra(self) -> google.protobuf.struct_pb2.Struct:
380
+ """Additional arguments to the method"""
381
+
382
+ def __init__(self, *, name: builtins.str=..., component_name_deprecated: common.v1.common_pb2.ResourceName | None=..., destination_frame: builtins.str=..., supplemental_transforms: collections.abc.Iterable[common.v1.common_pb2.Transform] | None=..., component_name: builtins.str=..., extra: google.protobuf.struct_pb2.Struct | None=...) -> None:
383
+ ...
384
+
385
+ def HasField(self, field_name: typing.Literal['component_name_deprecated', b'component_name_deprecated', 'extra', b'extra']) -> builtins.bool:
386
+ ...
387
+
388
+ def ClearField(self, field_name: typing.Literal['component_name', b'component_name', 'component_name_deprecated', b'component_name_deprecated', 'destination_frame', b'destination_frame', 'extra', b'extra', 'name', b'name', 'supplemental_transforms', b'supplemental_transforms']) -> None:
228
389
  ...
390
+ global___GetPoseRequest = GetPoseRequest
391
+
392
+ @typing.final
393
+ class GetPoseResponse(google.protobuf.message.Message):
394
+ DESCRIPTOR: google.protobuf.descriptor.Descriptor
395
+ POSE_FIELD_NUMBER: builtins.int
229
396
 
230
397
  @property
231
- def world_state(self) -> common.v1.common_pb2.WorldState:
398
+ def pose(self) -> common.v1.common_pb2.PoseInFrame:
399
+ ...
400
+
401
+ def __init__(self, *, pose: common.v1.common_pb2.PoseInFrame | None=...) -> None:
232
402
  ...
233
403
 
404
+ def HasField(self, field_name: typing.Literal['pose', b'pose']) -> builtins.bool:
405
+ ...
406
+
407
+ def ClearField(self, field_name: typing.Literal['pose', b'pose']) -> None:
408
+ ...
409
+ global___GetPoseResponse = GetPoseResponse
410
+
411
+ @typing.final
412
+ class StopPlanRequest(google.protobuf.message.Message):
413
+ DESCRIPTOR: google.protobuf.descriptor.Descriptor
414
+ NAME_FIELD_NUMBER: builtins.int
415
+ COMPONENT_NAME_DEPRECATED_FIELD_NUMBER: builtins.int
416
+ COMPONENT_NAME_FIELD_NUMBER: builtins.int
417
+ EXTRA_FIELD_NUMBER: builtins.int
418
+ name: builtins.str
419
+ 'The name of the motion service'
420
+ component_name: builtins.str
421
+ 'The component of the currently executing plan to stop'
422
+
423
+ @property
424
+ def component_name_deprecated(self) -> common.v1.common_pb2.ResourceName:
425
+ """Deprecated, use component_name field."""
426
+
234
427
  @property
235
428
  def extra(self) -> google.protobuf.struct_pb2.Struct:
236
429
  """Additional arguments to the method"""
237
430
 
238
- def __init__(self, *, name: builtins.str=..., destination: common.v1.common_pb2.PoseInFrame | None=..., component_name: common.v1.common_pb2.ResourceName | None=..., world_state: common.v1.common_pb2.WorldState | None=..., extra: google.protobuf.struct_pb2.Struct | None=...) -> None:
431
+ def __init__(self, *, name: builtins.str=..., component_name_deprecated: common.v1.common_pb2.ResourceName | None=..., component_name: builtins.str=..., extra: google.protobuf.struct_pb2.Struct | None=...) -> None:
239
432
  ...
240
433
 
241
- def HasField(self, field_name: typing_extensions.Literal['_world_state', b'_world_state', 'component_name', b'component_name', 'destination', b'destination', 'extra', b'extra', 'world_state', b'world_state']) -> builtins.bool:
434
+ def HasField(self, field_name: typing.Literal['component_name_deprecated', b'component_name_deprecated', 'extra', b'extra']) -> builtins.bool:
242
435
  ...
243
436
 
244
- def ClearField(self, field_name: typing_extensions.Literal['_world_state', b'_world_state', 'component_name', b'component_name', 'destination', b'destination', 'extra', b'extra', 'name', b'name', 'world_state', b'world_state']) -> None:
437
+ def ClearField(self, field_name: typing.Literal['component_name', b'component_name', 'component_name_deprecated', b'component_name_deprecated', 'extra', b'extra', 'name', b'name']) -> None:
245
438
  ...
439
+ global___StopPlanRequest = StopPlanRequest
440
+
441
+ @typing.final
442
+ class StopPlanResponse(google.protobuf.message.Message):
443
+ DESCRIPTOR: google.protobuf.descriptor.Descriptor
246
444
 
247
- def WhichOneof(self, oneof_group: typing_extensions.Literal['_world_state', b'_world_state']) -> typing_extensions.Literal['world_state'] | None:
445
+ def __init__(self) -> None:
248
446
  ...
249
- global___MoveSingleComponentRequest = MoveSingleComponentRequest
447
+ global___StopPlanResponse = StopPlanResponse
250
448
 
251
- @typing_extensions.final
252
- class MoveSingleComponentResponse(google.protobuf.message.Message):
449
+ @typing.final
450
+ class ListPlanStatusesRequest(google.protobuf.message.Message):
253
451
  DESCRIPTOR: google.protobuf.descriptor.Descriptor
254
- SUCCESS_FIELD_NUMBER: builtins.int
255
- success: builtins.bool
452
+ NAME_FIELD_NUMBER: builtins.int
453
+ ONLY_ACTIVE_PLANS_FIELD_NUMBER: builtins.int
454
+ EXTRA_FIELD_NUMBER: builtins.int
455
+ name: builtins.str
456
+ 'The name of the motion service'
457
+ only_active_plans: builtins.bool
458
+ 'If supplied, the response will filter the\n plan results for the supplied state\n '
256
459
 
257
- def __init__(self, *, success: builtins.bool=...) -> None:
460
+ @property
461
+ def extra(self) -> google.protobuf.struct_pb2.Struct:
462
+ """Additional arguments to the method"""
463
+
464
+ def __init__(self, *, name: builtins.str=..., only_active_plans: builtins.bool=..., extra: google.protobuf.struct_pb2.Struct | None=...) -> None:
258
465
  ...
259
466
 
260
- def ClearField(self, field_name: typing_extensions.Literal['success', b'success']) -> None:
467
+ def HasField(self, field_name: typing.Literal['extra', b'extra']) -> builtins.bool:
261
468
  ...
262
- global___MoveSingleComponentResponse = MoveSingleComponentResponse
263
469
 
264
- @typing_extensions.final
265
- class GetPoseRequest(google.protobuf.message.Message):
470
+ def ClearField(self, field_name: typing.Literal['extra', b'extra', 'name', b'name', 'only_active_plans', b'only_active_plans']) -> None:
471
+ ...
472
+ global___ListPlanStatusesRequest = ListPlanStatusesRequest
473
+
474
+ @typing.final
475
+ class ListPlanStatusesResponse(google.protobuf.message.Message):
476
+ """Status of all executed / executing plan statuses with associated IDs within the 24 hour TTL"""
477
+ DESCRIPTOR: google.protobuf.descriptor.Descriptor
478
+ PLAN_STATUSES_WITH_IDS_FIELD_NUMBER: builtins.int
479
+
480
+ @property
481
+ def plan_statuses_with_ids(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___PlanStatusWithID]:
482
+ """List of last known statuses with the associated IDs of all plans within the TTL
483
+ ordered by timestamp in ascending order
484
+ """
485
+
486
+ def __init__(self, *, plan_statuses_with_ids: collections.abc.Iterable[global___PlanStatusWithID] | None=...) -> None:
487
+ ...
488
+
489
+ def ClearField(self, field_name: typing.Literal['plan_statuses_with_ids', b'plan_statuses_with_ids']) -> None:
490
+ ...
491
+ global___ListPlanStatusesResponse = ListPlanStatusesResponse
492
+
493
+ @typing.final
494
+ class GetPlanRequest(google.protobuf.message.Message):
266
495
  DESCRIPTOR: google.protobuf.descriptor.Descriptor
267
496
  NAME_FIELD_NUMBER: builtins.int
497
+ COMPONENT_NAME_DEPRECATED_FIELD_NUMBER: builtins.int
498
+ LAST_PLAN_ONLY_FIELD_NUMBER: builtins.int
499
+ EXECUTION_ID_FIELD_NUMBER: builtins.int
268
500
  COMPONENT_NAME_FIELD_NUMBER: builtins.int
269
- DESTINATION_FRAME_FIELD_NUMBER: builtins.int
270
- SUPPLEMENTAL_TRANSFORMS_FIELD_NUMBER: builtins.int
271
501
  EXTRA_FIELD_NUMBER: builtins.int
272
502
  name: builtins.str
503
+ 'The name of the motion service'
504
+ last_plan_only: builtins.bool
505
+ 'If supplied, the response will only return\n the the last plan for the component / execution\n '
506
+ execution_id: builtins.str
507
+ 'If you want to know about the plans of a previous execution'
508
+ component_name: builtins.str
509
+ 'The name of the component which was requested to be moved.'
273
510
 
274
511
  @property
275
- def component_name(self) -> common.v1.common_pb2.ResourceName:
276
- """the component whose pose is being requested"""
277
- destination_frame: builtins.str
278
- 'the reference frame in which the component\'s pose\n should be provided, if unset this defaults\n to the "world" reference frame\n '
279
-
280
- @property
281
- def supplemental_transforms(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[common.v1.common_pb2.Transform]:
282
- """pose information on any additional reference frames that are needed
283
- to compute the component's pose
284
- """
512
+ def component_name_deprecated(self) -> common.v1.common_pb2.ResourceName:
513
+ """Deprecated, use component_name field."""
285
514
 
286
515
  @property
287
516
  def extra(self) -> google.protobuf.struct_pb2.Struct:
288
517
  """Additional arguments to the method"""
289
518
 
290
- def __init__(self, *, name: builtins.str=..., component_name: common.v1.common_pb2.ResourceName | None=..., destination_frame: builtins.str=..., supplemental_transforms: collections.abc.Iterable[common.v1.common_pb2.Transform] | None=..., extra: google.protobuf.struct_pb2.Struct | None=...) -> None:
519
+ def __init__(self, *, name: builtins.str=..., component_name_deprecated: common.v1.common_pb2.ResourceName | None=..., last_plan_only: builtins.bool=..., execution_id: builtins.str | None=..., component_name: builtins.str=..., extra: google.protobuf.struct_pb2.Struct | None=...) -> None:
291
520
  ...
292
521
 
293
- def HasField(self, field_name: typing_extensions.Literal['component_name', b'component_name', 'extra', b'extra']) -> builtins.bool:
522
+ def HasField(self, field_name: typing.Literal['_execution_id', b'_execution_id', 'component_name_deprecated', b'component_name_deprecated', 'execution_id', b'execution_id', 'extra', b'extra']) -> builtins.bool:
294
523
  ...
295
524
 
296
- def ClearField(self, field_name: typing_extensions.Literal['component_name', b'component_name', 'destination_frame', b'destination_frame', 'extra', b'extra', 'name', b'name', 'supplemental_transforms', b'supplemental_transforms']) -> None:
525
+ def ClearField(self, field_name: typing.Literal['_execution_id', b'_execution_id', 'component_name', b'component_name', 'component_name_deprecated', b'component_name_deprecated', 'execution_id', b'execution_id', 'extra', b'extra', 'last_plan_only', b'last_plan_only', 'name', b'name']) -> None:
297
526
  ...
298
- global___GetPoseRequest = GetPoseRequest
299
527
 
300
- @typing_extensions.final
301
- class GetPoseResponse(google.protobuf.message.Message):
528
+ def WhichOneof(self, oneof_group: typing.Literal['_execution_id', b'_execution_id']) -> typing.Literal['execution_id'] | None:
529
+ ...
530
+ global___GetPlanRequest = GetPlanRequest
531
+
532
+ @typing.final
533
+ class GetPlanResponse(google.protobuf.message.Message):
302
534
  DESCRIPTOR: google.protobuf.descriptor.Descriptor
303
- POSE_FIELD_NUMBER: builtins.int
535
+ CURRENT_PLAN_WITH_STATUS_FIELD_NUMBER: builtins.int
536
+ REPLAN_HISTORY_FIELD_NUMBER: builtins.int
304
537
 
305
538
  @property
306
- def pose(self) -> common.v1.common_pb2.PoseInFrame:
307
- ...
539
+ def current_plan_with_status(self) -> global___PlanWithStatus:
540
+ """The current plan and status that matches the request query"""
308
541
 
309
- def __init__(self, *, pose: common.v1.common_pb2.PoseInFrame | None=...) -> None:
542
+ @property
543
+ def replan_history(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___PlanWithStatus]:
544
+ """Returns the history of all previous plans that were
545
+ generated in ascending order.
546
+ This field will be empty if the motion service
547
+ did not need to re-plan.
548
+ """
549
+
550
+ def __init__(self, *, current_plan_with_status: global___PlanWithStatus | None=..., replan_history: collections.abc.Iterable[global___PlanWithStatus] | None=...) -> None:
310
551
  ...
311
552
 
312
- def HasField(self, field_name: typing_extensions.Literal['pose', b'pose']) -> builtins.bool:
553
+ def HasField(self, field_name: typing.Literal['current_plan_with_status', b'current_plan_with_status']) -> builtins.bool:
313
554
  ...
314
555
 
315
- def ClearField(self, field_name: typing_extensions.Literal['pose', b'pose']) -> None:
556
+ def ClearField(self, field_name: typing.Literal['current_plan_with_status', b'current_plan_with_status', 'replan_history', b'replan_history']) -> None:
316
557
  ...
317
- global___GetPoseResponse = GetPoseResponse
558
+ global___GetPlanResponse = GetPlanResponse
318
559
 
319
- @typing_extensions.final
560
+ @typing.final
320
561
  class Constraints(google.protobuf.message.Message):
321
562
  """Constraints specifies all enumerated constraints to be passed to Viam's motion planning, along with any optional parameters"""
322
563
  DESCRIPTOR: google.protobuf.descriptor.Descriptor
323
564
  LINEAR_CONSTRAINT_FIELD_NUMBER: builtins.int
324
565
  ORIENTATION_CONSTRAINT_FIELD_NUMBER: builtins.int
325
566
  COLLISION_SPECIFICATION_FIELD_NUMBER: builtins.int
567
+ PSEUDOLINEAR_CONSTRAINT_FIELD_NUMBER: builtins.int
326
568
 
327
569
  @property
328
570
  def linear_constraint(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___LinearConstraint]:
@@ -334,18 +576,24 @@ class Constraints(google.protobuf.message.Message):
334
576
 
335
577
  @property
336
578
  def collision_specification(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___CollisionSpecification]:
579
+ ...
580
+
581
+ @property
582
+ def pseudolinear_constraint(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___PseudolinearConstraint]:
337
583
  """Arc constraint, Time constraint, and others will be added here when they are supported"""
338
584
 
339
- def __init__(self, *, linear_constraint: collections.abc.Iterable[global___LinearConstraint] | None=..., orientation_constraint: collections.abc.Iterable[global___OrientationConstraint] | None=..., collision_specification: collections.abc.Iterable[global___CollisionSpecification] | None=...) -> None:
585
+ def __init__(self, *, linear_constraint: collections.abc.Iterable[global___LinearConstraint] | None=..., orientation_constraint: collections.abc.Iterable[global___OrientationConstraint] | None=..., collision_specification: collections.abc.Iterable[global___CollisionSpecification] | None=..., pseudolinear_constraint: collections.abc.Iterable[global___PseudolinearConstraint] | None=...) -> None:
340
586
  ...
341
587
 
342
- def ClearField(self, field_name: typing_extensions.Literal['collision_specification', b'collision_specification', 'linear_constraint', b'linear_constraint', 'orientation_constraint', b'orientation_constraint']) -> None:
588
+ def ClearField(self, field_name: typing.Literal['collision_specification', b'collision_specification', 'linear_constraint', b'linear_constraint', 'orientation_constraint', b'orientation_constraint', 'pseudolinear_constraint', b'pseudolinear_constraint']) -> None:
343
589
  ...
344
590
  global___Constraints = Constraints
345
591
 
346
- @typing_extensions.final
592
+ @typing.final
347
593
  class LinearConstraint(google.protobuf.message.Message):
348
- """LinearConstraint specifies that the component being moved should move linearly relative to its goal. It does not constrain the motion of components other than the `component_name` specified in motion.Move"""
594
+ """LinearConstraint specifies that the component being moved should move linearly relative to its goal.
595
+ It does not constrain the motion of components other than the `component_name` specified in motion.Move
596
+ """
349
597
  DESCRIPTOR: google.protobuf.descriptor.Descriptor
350
598
  LINE_TOLERANCE_MM_FIELD_NUMBER: builtins.int
351
599
  ORIENTATION_TOLERANCE_DEGS_FIELD_NUMBER: builtins.int
@@ -357,24 +605,57 @@ class LinearConstraint(google.protobuf.message.Message):
357
605
  def __init__(self, *, line_tolerance_mm: builtins.float | None=..., orientation_tolerance_degs: builtins.float | None=...) -> None:
358
606
  ...
359
607
 
360
- def HasField(self, field_name: typing_extensions.Literal['_line_tolerance_mm', b'_line_tolerance_mm', '_orientation_tolerance_degs', b'_orientation_tolerance_degs', 'line_tolerance_mm', b'line_tolerance_mm', 'orientation_tolerance_degs', b'orientation_tolerance_degs']) -> builtins.bool:
608
+ def HasField(self, field_name: typing.Literal['_line_tolerance_mm', b'_line_tolerance_mm', '_orientation_tolerance_degs', b'_orientation_tolerance_degs', 'line_tolerance_mm', b'line_tolerance_mm', 'orientation_tolerance_degs', b'orientation_tolerance_degs']) -> builtins.bool:
361
609
  ...
362
610
 
363
- def ClearField(self, field_name: typing_extensions.Literal['_line_tolerance_mm', b'_line_tolerance_mm', '_orientation_tolerance_degs', b'_orientation_tolerance_degs', 'line_tolerance_mm', b'line_tolerance_mm', 'orientation_tolerance_degs', b'orientation_tolerance_degs']) -> None:
611
+ def ClearField(self, field_name: typing.Literal['_line_tolerance_mm', b'_line_tolerance_mm', '_orientation_tolerance_degs', b'_orientation_tolerance_degs', 'line_tolerance_mm', b'line_tolerance_mm', 'orientation_tolerance_degs', b'orientation_tolerance_degs']) -> None:
364
612
  ...
365
613
 
366
614
  @typing.overload
367
- def WhichOneof(self, oneof_group: typing_extensions.Literal['_line_tolerance_mm', b'_line_tolerance_mm']) -> typing_extensions.Literal['line_tolerance_mm'] | None:
615
+ def WhichOneof(self, oneof_group: typing.Literal['_line_tolerance_mm', b'_line_tolerance_mm']) -> typing.Literal['line_tolerance_mm'] | None:
368
616
  ...
369
617
 
370
618
  @typing.overload
371
- def WhichOneof(self, oneof_group: typing_extensions.Literal['_orientation_tolerance_degs', b'_orientation_tolerance_degs']) -> typing_extensions.Literal['orientation_tolerance_degs'] | None:
619
+ def WhichOneof(self, oneof_group: typing.Literal['_orientation_tolerance_degs', b'_orientation_tolerance_degs']) -> typing.Literal['orientation_tolerance_degs'] | None:
372
620
  ...
373
621
  global___LinearConstraint = LinearConstraint
374
622
 
375
- @typing_extensions.final
623
+ @typing.final
624
+ class PseudolinearConstraint(google.protobuf.message.Message):
625
+ """PseudolinearConstraint specifies that the component being moved should not deviate from the straight-line path to their goal by
626
+ more than a factor proportional to the distance from start to goal.
627
+ For example, if a component is moving 100mm, then a LineToleranceFactor of 1.0 means that the component will remain within a 100mm
628
+ radius of the straight-line start-goal path.
629
+ """
630
+ DESCRIPTOR: google.protobuf.descriptor.Descriptor
631
+ LINE_TOLERANCE_FACTOR_FIELD_NUMBER: builtins.int
632
+ ORIENTATION_TOLERANCE_FACTOR_FIELD_NUMBER: builtins.int
633
+ line_tolerance_factor: builtins.float
634
+ orientation_tolerance_factor: builtins.float
635
+
636
+ def __init__(self, *, line_tolerance_factor: builtins.float | None=..., orientation_tolerance_factor: builtins.float | None=...) -> None:
637
+ ...
638
+
639
+ def HasField(self, field_name: typing.Literal['_line_tolerance_factor', b'_line_tolerance_factor', '_orientation_tolerance_factor', b'_orientation_tolerance_factor', 'line_tolerance_factor', b'line_tolerance_factor', 'orientation_tolerance_factor', b'orientation_tolerance_factor']) -> builtins.bool:
640
+ ...
641
+
642
+ def ClearField(self, field_name: typing.Literal['_line_tolerance_factor', b'_line_tolerance_factor', '_orientation_tolerance_factor', b'_orientation_tolerance_factor', 'line_tolerance_factor', b'line_tolerance_factor', 'orientation_tolerance_factor', b'orientation_tolerance_factor']) -> None:
643
+ ...
644
+
645
+ @typing.overload
646
+ def WhichOneof(self, oneof_group: typing.Literal['_line_tolerance_factor', b'_line_tolerance_factor']) -> typing.Literal['line_tolerance_factor'] | None:
647
+ ...
648
+
649
+ @typing.overload
650
+ def WhichOneof(self, oneof_group: typing.Literal['_orientation_tolerance_factor', b'_orientation_tolerance_factor']) -> typing.Literal['orientation_tolerance_factor'] | None:
651
+ ...
652
+ global___PseudolinearConstraint = PseudolinearConstraint
653
+
654
+ @typing.final
376
655
  class OrientationConstraint(google.protobuf.message.Message):
377
- """OrientationConstraint specifies that the component being moved will not deviate its orientation beyond some threshold relative to the goal. It does not constrain the motion of components other than the `component_name` specified in motion.Move"""
656
+ """OrientationConstraint specifies that the component being moved will not deviate its orientation beyond some threshold relative
657
+ to the goal. It does not constrain the motion of components other than the `component_name` specified in motion.Move
658
+ """
378
659
  DESCRIPTOR: google.protobuf.descriptor.Descriptor
379
660
  ORIENTATION_TOLERANCE_DEGS_FIELD_NUMBER: builtins.int
380
661
  orientation_tolerance_degs: builtins.float
@@ -383,22 +664,22 @@ class OrientationConstraint(google.protobuf.message.Message):
383
664
  def __init__(self, *, orientation_tolerance_degs: builtins.float | None=...) -> None:
384
665
  ...
385
666
 
386
- def HasField(self, field_name: typing_extensions.Literal['_orientation_tolerance_degs', b'_orientation_tolerance_degs', 'orientation_tolerance_degs', b'orientation_tolerance_degs']) -> builtins.bool:
667
+ def HasField(self, field_name: typing.Literal['_orientation_tolerance_degs', b'_orientation_tolerance_degs', 'orientation_tolerance_degs', b'orientation_tolerance_degs']) -> builtins.bool:
387
668
  ...
388
669
 
389
- def ClearField(self, field_name: typing_extensions.Literal['_orientation_tolerance_degs', b'_orientation_tolerance_degs', 'orientation_tolerance_degs', b'orientation_tolerance_degs']) -> None:
670
+ def ClearField(self, field_name: typing.Literal['_orientation_tolerance_degs', b'_orientation_tolerance_degs', 'orientation_tolerance_degs', b'orientation_tolerance_degs']) -> None:
390
671
  ...
391
672
 
392
- def WhichOneof(self, oneof_group: typing_extensions.Literal['_orientation_tolerance_degs', b'_orientation_tolerance_degs']) -> typing_extensions.Literal['orientation_tolerance_degs'] | None:
673
+ def WhichOneof(self, oneof_group: typing.Literal['_orientation_tolerance_degs', b'_orientation_tolerance_degs']) -> typing.Literal['orientation_tolerance_degs'] | None:
393
674
  ...
394
675
  global___OrientationConstraint = OrientationConstraint
395
676
 
396
- @typing_extensions.final
677
+ @typing.final
397
678
  class CollisionSpecification(google.protobuf.message.Message):
398
679
  """CollisionSpecification is used to selectively apply obstacle avoidance to specific parts of the robot"""
399
680
  DESCRIPTOR: google.protobuf.descriptor.Descriptor
400
681
 
401
- @typing_extensions.final
682
+ @typing.final
402
683
  class AllowedFrameCollisions(google.protobuf.message.Message):
403
684
  DESCRIPTOR: google.protobuf.descriptor.Descriptor
404
685
  FRAME1_FIELD_NUMBER: builtins.int
@@ -409,7 +690,7 @@ class CollisionSpecification(google.protobuf.message.Message):
409
690
  def __init__(self, *, frame1: builtins.str=..., frame2: builtins.str=...) -> None:
410
691
  ...
411
692
 
412
- def ClearField(self, field_name: typing_extensions.Literal['frame1', b'frame1', 'frame2', b'frame2']) -> None:
693
+ def ClearField(self, field_name: typing.Literal['frame1', b'frame1', 'frame2', b'frame2']) -> None:
413
694
  ...
414
695
  ALLOWS_FIELD_NUMBER: builtins.int
415
696
 
@@ -420,6 +701,200 @@ class CollisionSpecification(google.protobuf.message.Message):
420
701
  def __init__(self, *, allows: collections.abc.Iterable[global___CollisionSpecification.AllowedFrameCollisions] | None=...) -> None:
421
702
  ...
422
703
 
423
- def ClearField(self, field_name: typing_extensions.Literal['allows', b'allows']) -> None:
704
+ def ClearField(self, field_name: typing.Literal['allows', b'allows']) -> None:
705
+ ...
706
+ global___CollisionSpecification = CollisionSpecification
707
+
708
+ @typing.final
709
+ class PlanWithStatus(google.protobuf.message.Message):
710
+ """Describes a plan, its current status & all status changes
711
+ that have occured previously on that plan
712
+ """
713
+ DESCRIPTOR: google.protobuf.descriptor.Descriptor
714
+ PLAN_FIELD_NUMBER: builtins.int
715
+ STATUS_FIELD_NUMBER: builtins.int
716
+ STATUS_HISTORY_FIELD_NUMBER: builtins.int
717
+
718
+ @property
719
+ def plan(self) -> global___Plan:
720
+ """The plan"""
721
+
722
+ @property
723
+ def status(self) -> global___PlanStatus:
724
+ """The current status of the plan"""
725
+
726
+ @property
727
+ def status_history(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___PlanStatus]:
728
+ """The prior status changes that have happened during plan execution"""
729
+
730
+ def __init__(self, *, plan: global___Plan | None=..., status: global___PlanStatus | None=..., status_history: collections.abc.Iterable[global___PlanStatus] | None=...) -> None:
731
+ ...
732
+
733
+ def HasField(self, field_name: typing.Literal['plan', b'plan', 'status', b'status']) -> builtins.bool:
734
+ ...
735
+
736
+ def ClearField(self, field_name: typing.Literal['plan', b'plan', 'status', b'status', 'status_history', b'status_history']) -> None:
737
+ ...
738
+ global___PlanWithStatus = PlanWithStatus
739
+
740
+ @typing.final
741
+ class PlanStatusWithID(google.protobuf.message.Message):
742
+ """PlanStatusWithID describes the state of a given plan at a
743
+ point in time plus the plan_id, component_name and execution_id
744
+ the status is associated with
745
+ """
746
+ DESCRIPTOR: google.protobuf.descriptor.Descriptor
747
+ PLAN_ID_FIELD_NUMBER: builtins.int
748
+ COMPONENT_NAME_DEPRECATED_FIELD_NUMBER: builtins.int
749
+ EXECUTION_ID_FIELD_NUMBER: builtins.int
750
+ STATUS_FIELD_NUMBER: builtins.int
751
+ COMPONENT_NAME_FIELD_NUMBER: builtins.int
752
+ plan_id: builtins.str
753
+ 'The unique ID of the plan'
754
+ execution_id: builtins.str
755
+ 'The unique ID which identifies the plan execution.\n Multiple plans will share the same execution_id if they were\n generated due to replanning.\n '
756
+ component_name: builtins.str
757
+ 'The component to be moved.\n Used for tracking & stopping.\n NOTE: A plan may move more components than just the\n component_name.\n '
758
+
759
+ @property
760
+ def component_name_deprecated(self) -> common.v1.common_pb2.ResourceName:
761
+ """Deprecated, use component_name field."""
762
+
763
+ @property
764
+ def status(self) -> global___PlanStatus:
765
+ ...
766
+
767
+ def __init__(self, *, plan_id: builtins.str=..., component_name_deprecated: common.v1.common_pb2.ResourceName | None=..., execution_id: builtins.str=..., status: global___PlanStatus | None=..., component_name: builtins.str=...) -> None:
768
+ ...
769
+
770
+ def HasField(self, field_name: typing.Literal['component_name_deprecated', b'component_name_deprecated', 'status', b'status']) -> builtins.bool:
771
+ ...
772
+
773
+ def ClearField(self, field_name: typing.Literal['component_name', b'component_name', 'component_name_deprecated', b'component_name_deprecated', 'execution_id', b'execution_id', 'plan_id', b'plan_id', 'status', b'status']) -> None:
774
+ ...
775
+ global___PlanStatusWithID = PlanStatusWithID
776
+
777
+ @typing.final
778
+ class PlanStatus(google.protobuf.message.Message):
779
+ """Plan status describes the state of a given plan at a
780
+ point in time
781
+ """
782
+ DESCRIPTOR: google.protobuf.descriptor.Descriptor
783
+ STATE_FIELD_NUMBER: builtins.int
784
+ TIMESTAMP_FIELD_NUMBER: builtins.int
785
+ REASON_FIELD_NUMBER: builtins.int
786
+ state: global___PlanState.ValueType
787
+ 'The state of the plan execution'
788
+ reason: builtins.str
789
+ 'The reason for the state change. If motion plan failed\n this will return the error message.\n If motion needed to re-plan, this will return\n the re-plan reason.\n '
790
+
791
+ @property
792
+ def timestamp(self) -> google.protobuf.timestamp_pb2.Timestamp:
793
+ """The time the executing plan transtioned to the state"""
794
+
795
+ def __init__(self, *, state: global___PlanState.ValueType=..., timestamp: google.protobuf.timestamp_pb2.Timestamp | None=..., reason: builtins.str | None=...) -> None:
796
+ ...
797
+
798
+ def HasField(self, field_name: typing.Literal['_reason', b'_reason', 'reason', b'reason', 'timestamp', b'timestamp']) -> builtins.bool:
799
+ ...
800
+
801
+ def ClearField(self, field_name: typing.Literal['_reason', b'_reason', 'reason', b'reason', 'state', b'state', 'timestamp', b'timestamp']) -> None:
802
+ ...
803
+
804
+ def WhichOneof(self, oneof_group: typing.Literal['_reason', b'_reason']) -> typing.Literal['reason'] | None:
805
+ ...
806
+ global___PlanStatus = PlanStatus
807
+
808
+ @typing.final
809
+ class Plan(google.protobuf.message.Message):
810
+ """A plan describes a motion plan"""
811
+ DESCRIPTOR: google.protobuf.descriptor.Descriptor
812
+ ID_FIELD_NUMBER: builtins.int
813
+ COMPONENT_NAME_DEPRECATED_FIELD_NUMBER: builtins.int
814
+ EXECUTION_ID_FIELD_NUMBER: builtins.int
815
+ STEPS_FIELD_NUMBER: builtins.int
816
+ COMPONENT_NAME_FIELD_NUMBER: builtins.int
817
+ id: builtins.str
818
+ "The plan's unique ID"
819
+ execution_id: builtins.str
820
+ 'The unique ID which identifies the execution.\n Multiple plans will share the same execution_id if they were\n generated due to replanning\n '
821
+ component_name: builtins.str
822
+ 'The component requested to be moved.\n Used for tracking & stopping.\n NOTE: A plan may move more components than just the\n root component.\n '
823
+
824
+ @property
825
+ def component_name_deprecated(self) -> common.v1.common_pb2.ResourceName:
826
+ """Deprecated, use component_name field."""
827
+
828
+ @property
829
+ def steps(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___PlanStep]:
830
+ """The steps of a plan is an ordered list of plan steps"""
831
+
832
+ def __init__(self, *, id: builtins.str=..., component_name_deprecated: common.v1.common_pb2.ResourceName | None=..., execution_id: builtins.str=..., steps: collections.abc.Iterable[global___PlanStep] | None=..., component_name: builtins.str=...) -> None:
833
+ ...
834
+
835
+ def HasField(self, field_name: typing.Literal['component_name_deprecated', b'component_name_deprecated']) -> builtins.bool:
836
+ ...
837
+
838
+ def ClearField(self, field_name: typing.Literal['component_name', b'component_name', 'component_name_deprecated', b'component_name_deprecated', 'execution_id', b'execution_id', 'id', b'id', 'steps', b'steps']) -> None:
839
+ ...
840
+ global___Plan = Plan
841
+
842
+ @typing.final
843
+ class PlanStep(google.protobuf.message.Message):
844
+ DESCRIPTOR: google.protobuf.descriptor.Descriptor
845
+
846
+ @typing.final
847
+ class StepEntry(google.protobuf.message.Message):
848
+ DESCRIPTOR: google.protobuf.descriptor.Descriptor
849
+ KEY_FIELD_NUMBER: builtins.int
850
+ VALUE_FIELD_NUMBER: builtins.int
851
+ key: builtins.str
852
+
853
+ @property
854
+ def value(self) -> global___ComponentState:
855
+ ...
856
+
857
+ def __init__(self, *, key: builtins.str=..., value: global___ComponentState | None=...) -> None:
858
+ ...
859
+
860
+ def HasField(self, field_name: typing.Literal['value', b'value']) -> builtins.bool:
861
+ ...
862
+
863
+ def ClearField(self, field_name: typing.Literal['key', b'key', 'value', b'value']) -> None:
864
+ ...
865
+ STEP_FIELD_NUMBER: builtins.int
866
+
867
+ @property
868
+ def step(self) -> google.protobuf.internal.containers.MessageMap[builtins.str, global___ComponentState]:
869
+ """A step is the component state each
870
+ component resource should reach while executing
871
+ that step of the plan.
872
+ Keys are the fully qualified component name.
873
+ """
874
+
875
+ def __init__(self, *, step: collections.abc.Mapping[builtins.str, global___ComponentState] | None=...) -> None:
876
+ ...
877
+
878
+ def ClearField(self, field_name: typing.Literal['step', b'step']) -> None:
879
+ ...
880
+ global___PlanStep = PlanStep
881
+
882
+ @typing.final
883
+ class ComponentState(google.protobuf.message.Message):
884
+ """A pose"""
885
+ DESCRIPTOR: google.protobuf.descriptor.Descriptor
886
+ POSE_FIELD_NUMBER: builtins.int
887
+
888
+ @property
889
+ def pose(self) -> common.v1.common_pb2.Pose:
890
+ ...
891
+
892
+ def __init__(self, *, pose: common.v1.common_pb2.Pose | None=...) -> None:
893
+ ...
894
+
895
+ def HasField(self, field_name: typing.Literal['pose', b'pose']) -> builtins.bool:
896
+ ...
897
+
898
+ def ClearField(self, field_name: typing.Literal['pose', b'pose']) -> None:
424
899
  ...
425
- global___CollisionSpecification = CollisionSpecification
900
+ global___ComponentState = ComponentState