isar 1.15.0__py3-none-any.whl → 1.34.9__py3-none-any.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.
Files changed (129) hide show
  1. isar/__init__.py +2 -5
  2. isar/apis/api.py +159 -66
  3. isar/apis/models/__init__.py +0 -1
  4. isar/apis/models/models.py +22 -12
  5. isar/apis/models/start_mission_definition.py +128 -123
  6. isar/apis/robot_control/robot_controller.py +41 -0
  7. isar/apis/schedule/scheduling_controller.py +135 -121
  8. isar/apis/security/authentication.py +5 -5
  9. isar/config/certs/ca-cert.pem +32 -32
  10. isar/config/keyvault/keyvault_service.py +1 -2
  11. isar/config/log.py +47 -39
  12. isar/config/logging.conf +16 -31
  13. isar/config/open_telemetry.py +102 -0
  14. isar/config/predefined_mission_definition/default_exr.json +49 -0
  15. isar/config/predefined_mission_definition/default_mission.json +1 -5
  16. isar/config/predefined_mission_definition/default_turtlebot.json +4 -11
  17. isar/config/predefined_missions/default.json +67 -87
  18. isar/config/predefined_missions/default_extra_capabilities.json +107 -0
  19. isar/config/settings.py +119 -142
  20. isar/eventhandlers/eventhandler.py +123 -0
  21. isar/mission_planner/local_planner.py +6 -20
  22. isar/mission_planner/mission_planner_interface.py +1 -1
  23. isar/models/events.py +184 -0
  24. isar/models/status.py +18 -0
  25. isar/modules.py +118 -205
  26. isar/robot/robot.py +377 -0
  27. isar/robot/robot_battery.py +60 -0
  28. isar/robot/robot_monitor_mission.py +357 -0
  29. isar/robot/robot_pause_mission.py +74 -0
  30. isar/robot/robot_resume_mission.py +67 -0
  31. isar/robot/robot_start_mission.py +66 -0
  32. isar/robot/robot_status.py +61 -0
  33. isar/robot/robot_stop_mission.py +68 -0
  34. isar/robot/robot_upload_inspection.py +75 -0
  35. isar/script.py +171 -0
  36. isar/services/service_connections/mqtt/mqtt_client.py +47 -11
  37. isar/services/service_connections/mqtt/robot_heartbeat_publisher.py +32 -0
  38. isar/services/service_connections/mqtt/robot_info_publisher.py +4 -3
  39. isar/services/service_connections/persistent_memory.py +69 -0
  40. isar/services/utilities/mqtt_utilities.py +93 -0
  41. isar/services/utilities/robot_utilities.py +20 -0
  42. isar/services/utilities/scheduling_utilities.py +393 -65
  43. isar/state_machine/state_machine.py +227 -486
  44. isar/state_machine/states/__init__.py +0 -7
  45. isar/state_machine/states/await_next_mission.py +114 -0
  46. isar/state_machine/states/blocked_protective_stop.py +60 -0
  47. isar/state_machine/states/going_to_lockdown.py +95 -0
  48. isar/state_machine/states/going_to_recharging.py +92 -0
  49. isar/state_machine/states/home.py +115 -0
  50. isar/state_machine/states/intervention_needed.py +77 -0
  51. isar/state_machine/states/lockdown.py +38 -0
  52. isar/state_machine/states/maintenance.py +36 -0
  53. isar/state_machine/states/monitor.py +137 -166
  54. isar/state_machine/states/offline.py +60 -0
  55. isar/state_machine/states/paused.py +92 -23
  56. isar/state_machine/states/pausing.py +48 -0
  57. isar/state_machine/states/pausing_return_home.py +48 -0
  58. isar/state_machine/states/recharging.py +80 -0
  59. isar/state_machine/states/resuming.py +57 -0
  60. isar/state_machine/states/resuming_return_home.py +64 -0
  61. isar/state_machine/states/return_home_paused.py +109 -0
  62. isar/state_machine/states/returning_home.py +217 -0
  63. isar/state_machine/states/stopping.py +61 -0
  64. isar/state_machine/states/stopping_due_to_maintenance.py +61 -0
  65. isar/state_machine/states/stopping_go_to_lockdown.py +60 -0
  66. isar/state_machine/states/stopping_go_to_recharge.py +51 -0
  67. isar/state_machine/states/stopping_return_home.py +77 -0
  68. isar/state_machine/states/unknown_status.py +72 -0
  69. isar/state_machine/states_enum.py +22 -5
  70. isar/state_machine/transitions/mission.py +192 -0
  71. isar/state_machine/transitions/return_home.py +106 -0
  72. isar/state_machine/transitions/robot_status.py +80 -0
  73. isar/state_machine/utils/common_event_handlers.py +73 -0
  74. isar/storage/blob_storage.py +71 -45
  75. isar/storage/local_storage.py +28 -14
  76. isar/storage/storage_interface.py +28 -6
  77. isar/storage/uploader.py +184 -55
  78. isar/storage/utilities.py +35 -27
  79. isar-1.34.9.dist-info/METADATA +496 -0
  80. isar-1.34.9.dist-info/RECORD +135 -0
  81. {isar-1.15.0.dist-info → isar-1.34.9.dist-info}/WHEEL +1 -1
  82. isar-1.34.9.dist-info/entry_points.txt +3 -0
  83. robot_interface/models/exceptions/__init__.py +0 -7
  84. robot_interface/models/exceptions/robot_exceptions.py +274 -4
  85. robot_interface/models/initialize/__init__.py +0 -1
  86. robot_interface/models/inspection/__init__.py +0 -13
  87. robot_interface/models/inspection/inspection.py +43 -34
  88. robot_interface/models/mission/mission.py +18 -14
  89. robot_interface/models/mission/status.py +20 -25
  90. robot_interface/models/mission/task.py +156 -92
  91. robot_interface/models/robots/battery_state.py +6 -0
  92. robot_interface/models/robots/media.py +13 -0
  93. robot_interface/models/robots/robot_model.py +7 -7
  94. robot_interface/robot_interface.py +135 -66
  95. robot_interface/telemetry/mqtt_client.py +84 -12
  96. robot_interface/telemetry/payloads.py +111 -12
  97. robot_interface/utilities/json_service.py +7 -1
  98. isar/config/predefined_missions/default_turtlebot.json +0 -110
  99. isar/config/predefined_poses/__init__.py +0 -0
  100. isar/config/predefined_poses/predefined_poses.py +0 -616
  101. isar/config/settings.env +0 -26
  102. isar/mission_planner/sequential_task_selector.py +0 -23
  103. isar/mission_planner/task_selector_interface.py +0 -31
  104. isar/models/communication/__init__.py +0 -0
  105. isar/models/communication/message.py +0 -12
  106. isar/models/communication/queues/__init__.py +0 -4
  107. isar/models/communication/queues/queue_io.py +0 -12
  108. isar/models/communication/queues/queue_timeout_error.py +0 -2
  109. isar/models/communication/queues/queues.py +0 -19
  110. isar/models/communication/queues/status_queue.py +0 -20
  111. isar/models/mission_metadata/__init__.py +0 -0
  112. isar/services/readers/__init__.py +0 -0
  113. isar/services/readers/base_reader.py +0 -37
  114. isar/services/service_connections/mqtt/robot_status_publisher.py +0 -93
  115. isar/services/service_connections/stid/__init__.py +0 -0
  116. isar/services/service_connections/stid/stid_service.py +0 -45
  117. isar/services/utilities/queue_utilities.py +0 -39
  118. isar/state_machine/states/idle.py +0 -40
  119. isar/state_machine/states/initialize.py +0 -60
  120. isar/state_machine/states/initiate.py +0 -129
  121. isar/state_machine/states/off.py +0 -18
  122. isar/state_machine/states/stop.py +0 -78
  123. isar/storage/slimm_storage.py +0 -181
  124. isar-1.15.0.dist-info/METADATA +0 -417
  125. isar-1.15.0.dist-info/RECORD +0 -113
  126. robot_interface/models/initialize/initialize_params.py +0 -9
  127. robot_interface/models/mission/step.py +0 -211
  128. {isar-1.15.0.dist-info → isar-1.34.9.dist-info/licenses}/LICENSE +0 -0
  129. {isar-1.15.0.dist-info → isar-1.34.9.dist-info}/top_level.txt +0 -0
@@ -1,113 +0,0 @@
1
- isar/__init__.py,sha256=oXTcQpZYQ7jkRIem-Nq3hw9DrveoIV3-8k697XN16rA,190
2
- isar/modules.py,sha256=4oFpnfI3A4vIlo5jCLFqfitIm8jo0OFn0qTPgYfh2sU,6958
3
- isar/apis/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
4
- isar/apis/api.py,sha256=-Xw4zMFItlnlF4olu3UZrzzMhKc2hfXYwkoUdZcj5Mg,12081
5
- isar/apis/models/__init__.py,sha256=NI1BYyN__Ogr00Qqe0XJ-9gEVPva2brXo2RJsbrS4tM,52
6
- isar/apis/models/models.py,sha256=MYCTlPZHHBg2yyaSklhxkBwANC3GAdRCMK8TPev16II,1750
7
- isar/apis/models/start_mission_definition.py,sha256=b1-ZdMgdoC-1YGqCA8M-9958yeBAHiEuW7gcg1Ie4OU,5352
8
- isar/apis/schedule/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
9
- isar/apis/schedule/scheduling_controller.py,sha256=lCA8Iwr0yq1Lcvq6eEUkqYvTU1HVMo1LZ0RmmFFBcHE,10099
10
- isar/apis/security/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
11
- isar/apis/security/authentication.py,sha256=TI8U9Y_L6ihHLMeM50ZONd5EPfuHdw_XMU_Q987W4AY,1975
12
- isar/config/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
13
- isar/config/configuration_error.py,sha256=rO6WOhafX6xvVib8WxV-eY483Z0PpN-9PxGsq5ATfKc,46
14
- isar/config/log.py,sha256=WEp5DNhLTsMfTjN6YM2lKQkVeWxnwNapKEwvPXvbnX4,2227
15
- isar/config/logging.conf,sha256=mYO1xf27gAopEMHhGzY7-mwyfN16rwRLkPNMvy3zn2g,1127
16
- isar/config/settings.env,sha256=84YlwxWWko62x7LjVo7az3CRWSDG9S5Z90dJVkkEKUk,562
17
- isar/config/settings.py,sha256=0K2E-oXCsAQekuUuwPQKGcZ2DNmvqwi0KMf5zUkLUV4,12421
18
- isar/config/certs/ca-cert.pem,sha256=6XnTSkRxSb9slwXSCWxL4tjeNBprgDzPpEhBraL9RDU,2163
19
- isar/config/keyvault/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
20
- isar/config/keyvault/keyvault_error.py,sha256=zvPCsZLjboxsxthYkxpRERCTFxYV8R5WmACewAUQLwk,41
21
- isar/config/keyvault/keyvault_service.py,sha256=7M6VdIElAQ_yo0d-VX4i9cqgoH_JIexoRmqS5YGIb2Y,3141
22
- isar/config/maps/JSP1_intermediate_deck.json,sha256=fdotzN6MVotyLbqpIjRSrbBYM84vogLkdS585NjBnL8,826
23
- isar/config/maps/JSP1_weather_deck.json,sha256=_dG3cSBI8q4_uHqHMOO5kSYqMXn85JL3_9PaH4uk1yQ,832
24
- isar/config/maps/default_map.json,sha256=3CdGMr0Qn3PrL4TfUK8I5a-hotMrS_n5DKfaEORJPT4,776
25
- isar/config/maps/klab_b.json,sha256=qXgWVUYPaTdVuomf6lQL-uRbV3Tsa6CftnzcbT3dY78,842
26
- isar/config/maps/klab_compressor.json,sha256=1Vrk5u_l4WXjrTtG4YfXlrCPbOoRs4TtYHOm0430u2A,803
27
- isar/config/maps/klab_turtlebot.json,sha256=HcB79XFEdY0Wm96EssIFO4TMyAWzc2KENoqN7TbTT0k,823
28
- isar/config/maps/turtleworld.json,sha256=EKLMpSK9Gu2lAN-E9l41XOaO3f9Su5n_I97mA6z7sWY,764
29
- isar/config/predefined_mission_definition/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
30
- isar/config/predefined_mission_definition/default_mission.json,sha256=nEk1ql17RAs2I5Ws2wA-0GJ6oqJco-Q0Q0vhf4k6ajc,2926
31
- isar/config/predefined_mission_definition/default_turtlebot.json,sha256=Ka379MLu8qiGIa6Fu-8p8A4OgHVccLkKYSX0RthUOeI,4060
32
- isar/config/predefined_missions/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
33
- isar/config/predefined_missions/default.json,sha256=3J1KtQIFKxJsVoKlg0nKsj8asev-2dSz6IOrd4A57jY,2759
34
- isar/config/predefined_missions/default_turtlebot.json,sha256=gStYz_hCgQDBEeUW7W4bq_0R3OO55jRnwZt0CNYvHSM,3352
35
- isar/config/predefined_poses/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
36
- isar/config/predefined_poses/predefined_poses.py,sha256=fhq8JF00feDLFKNBlyWeFoLfvfs5dVb__C7CmiVbwmQ,25779
37
- isar/mission_planner/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
38
- isar/mission_planner/local_planner.py,sha256=1Qcz7QntWXuYL1PcF6R9aZNCCdL-j_RJ2UGc1_rNZd8,3037
39
- isar/mission_planner/mission_planner_interface.py,sha256=51k6KKXqC8wZ4Mc8ZWo00Nwy8c6yNa81nEZNZelwJeo,485
40
- isar/mission_planner/sequential_task_selector.py,sha256=4OJ1Rvg6MaDQQxNcgAUtp2gvhHm3Srha5XJUu8X-Uzg,640
41
- isar/mission_planner/task_selector_interface.py,sha256=aXL2RXb_XmTNW-WXt6E7wFfJf_BjbownDa3zSqgQ4Ww,703
42
- isar/models/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
43
- isar/models/communication/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
44
- isar/models/communication/message.py,sha256=yN4SXYM-W_6u3Cf9yuAE3jy4e6mMrL3yUr-iVV4r55E,241
45
- isar/models/communication/queues/__init__.py,sha256=JqwWbdBQnBeIEhSTjBOkl-O3bYBVBSmjPcWUdscsobw,146
46
- isar/models/communication/queues/queue_io.py,sha256=AnHWUCkZ0tunkxKKeBarq-OUkRM97IaMfA-a1pmf1cQ,394
47
- isar/models/communication/queues/queue_timeout_error.py,sha256=rF8TlNF7RHS_ueTZ5mp7aFkhLY1j0dcwMwH-Ba6lVpE,45
48
- isar/models/communication/queues/queues.py,sha256=FzoqlT4AQ4Q5Jufh6yRPV2uq5iUZd1odrpjBl77yU5o,803
49
- isar/models/communication/queues/status_queue.py,sha256=K_i01uzCu1eciDt9QlDXLBINJnuRLqm6fzrM-PY6qD0,467
50
- isar/models/mission_metadata/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
51
- isar/services/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
52
- isar/services/auth/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
53
- isar/services/auth/azure_credentials.py,sha256=9PlwGe5FrPRbW2dp0go7LMp8_l_FRvL8xOXotXwzRDo,364
54
- isar/services/readers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
55
- isar/services/readers/base_reader.py,sha256=_fNd5fb5dFeMtOvfWzIAGO-KIgl3zT19iEuzSjeZNPc,987
56
- isar/services/service_connections/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
57
- isar/services/service_connections/request_handler.py,sha256=0LxC0lu_HXeEf_xmJWjfEsh14oAUI97cpG1IWtBlcs4,4278
58
- isar/services/service_connections/mqtt/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
59
- isar/services/service_connections/mqtt/mqtt_client.py,sha256=g5RJ85_dsZlHgj6saG2w0sTSetvGFWI4PW4zsb0j9DE,3516
60
- isar/services/service_connections/mqtt/robot_info_publisher.py,sha256=_7lXSyOaTbde584M67bG7N9sQJH51yhaSuhsjuCM02U,1325
61
- isar/services/service_connections/mqtt/robot_status_publisher.py,sha256=5jNQnsrFVe9Jnh9Q6F88nsFK63lEuv_ESBA-tZLnBy8,3689
62
- isar/services/service_connections/stid/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
63
- isar/services/service_connections/stid/stid_service.py,sha256=v1D-sHa2pvYl6A4KcY9NPd2w7vf9Y5AdntFE_p8Hk44,1616
64
- isar/services/utilities/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
65
- isar/services/utilities/queue_utilities.py,sha256=Pw3hehSwkXJNeDv-bDVDfs58VOwtt3i5hpiJ2ZpphuQ,1225
66
- isar/services/utilities/scheduling_utilities.py,sha256=LFimEmacML3J9q-FNLfKPhcAr-R3f2rkYkbsoro0Gyo,8434
67
- isar/services/utilities/threaded_request.py,sha256=py4G-_RjnIdHljmKFAcQ6ddqMmp-ZYV39Ece-dqRqjs,1874
68
- isar/state_machine/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
69
- isar/state_machine/state_machine.py,sha256=_ktCrQFcH_s_6utBzERBZw7YvrG-xmXDKgrboL7VIWE,21809
70
- isar/state_machine/states_enum.py,sha256=ks1A8gO7DOpLbSe6Vzq4-BfTCU78IsQZyoEJwQ9Wg4M,254
71
- isar/state_machine/states/__init__.py,sha256=gUikQDu-O-lmunwzwcN9gN6VaEmlCFlqqgdNfFAfXBc,189
72
- isar/state_machine/states/idle.py,sha256=_0MtK8Wb305agTg4J9t2x-eUq3cnXg3KSP6J6HOM3ps,1229
73
- isar/state_machine/states/initialize.py,sha256=KfLc-LeyhwaW-d4-xyarIafBh9PBkBtz7j1aPqS0x8A,2019
74
- isar/state_machine/states/initiate.py,sha256=bF7t40TuuJIJmCMsOwZq_UIErS7lAsi-MbPShucnT90,4863
75
- isar/state_machine/states/monitor.py,sha256=XaJMM1Z9m04OqLbHftYDJNXjIYj4AAziH4L1nABow8s,6962
76
- isar/state_machine/states/off.py,sha256=jjqN_oJMpBtWuY7hP-c9f0w3p2CYCfe-NpmYHHPnmyI,544
77
- isar/state_machine/states/paused.py,sha256=xVZM9WMt90FTiP5forSlA3eJ5Vt9LzZYCFDQDPIocKA,1004
78
- isar/state_machine/states/stop.py,sha256=N59g6MXsVCQXZNLcvvmHU5fuU5jRk1x9dFxMeXkJhbY,2721
79
- isar/storage/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
80
- isar/storage/blob_storage.py,sha256=8i23s_4d3_REKYxH1DzXF_Lc04pofOlrtDYML_t7BDc,2922
81
- isar/storage/local_storage.py,sha256=fLzVuwvdEk9l8z7od1qX2p5MeWzcsx-vN4yWvelZeFM,1836
82
- isar/storage/slimm_storage.py,sha256=oCDpdlvPJBuyzzwSSoP9v2Tdn6icecGxfDJdflkhgiI,8588
83
- isar/storage/storage_interface.py,sha256=v7QiYGz79dqw9jbgNoLYD1QOvXFoMrqfVT1TJX7rCsw,790
84
- isar/storage/uploader.py,sha256=ekvPmwZoYlpioaHPKnJnoV38UKTwzT5jy5QlHvBk2IA,5934
85
- isar/storage/utilities.py,sha256=5sTdQveRvx2OTKdzwh63IeJmBrAI3R9_oTY8At9VX5k,2873
86
- robot_interface/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
87
- robot_interface/robot_interface.py,sha256=Q8X8N2nXj5-Lmv3OQPXuJZgCQkCub94NXO6bBQrCASE,6054
88
- robot_interface/test_robot_interface.py,sha256=FV1urn7SbsMyWBIcTKjsBwAG4IsXeZ6pLHE0mA9EGGs,692
89
- robot_interface/models/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
90
- robot_interface/models/exceptions/__init__.py,sha256=w1FtdlDjwgcaGTRRwu76R-UK_s8vtHYrHvJE20zrmao,193
91
- robot_interface/models/exceptions/robot_exceptions.py,sha256=URtCe1ighowz-0QvTBZpOy7sgG8B0JhZIAbq1WMy-fs,414
92
- robot_interface/models/initialize/__init__.py,sha256=rz5neEDr59GDbzzI_FF0DId-C-I-50l113P-h-C_QBY,48
93
- robot_interface/models/initialize/initialize_params.py,sha256=UcsBm8aFgxIojgYMadaa6yOhvYXxTkCuCbjGuZexfuI,171
94
- robot_interface/models/inspection/__init__.py,sha256=14wfuj4XZazrigKD7fL98khFKz-eckIpEgPcYRj40Kg,227
95
- robot_interface/models/inspection/inspection.py,sha256=J87AyeYY36sCEY2tx0U-U6eHprkvZSNAqQRJsmK0vGY,2177
96
- robot_interface/models/mission/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
97
- robot_interface/models/mission/mission.py,sha256=GyNFTZ0S6JKe9YGIlxfKzxMeOqRokAbHQI5xFDzlzAk,614
98
- robot_interface/models/mission/status.py,sha256=3CDuXj9a3qNyQqPTFX6XB775O6K3kqc-lbyktJsiPhs,893
99
- robot_interface/models/mission/step.py,sha256=w6vZdQrr0xeAwJRuH8I0Re-As22BRy2WRlqaVTExcFw,5120
100
- robot_interface/models/mission/task.py,sha256=qrVg-f_90_JVaapzQH1j00bFaLToXfHtBoey_HtZHjk,3218
101
- robot_interface/models/robots/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
102
- robot_interface/models/robots/robot_model.py,sha256=pZQsqhn9hh6XE3EjMZhWMzYqg5oJ4CJ4CXeOASKvEf8,452
103
- robot_interface/telemetry/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
104
- robot_interface/telemetry/mqtt_client.py,sha256=8JmKdyHHZbB2t3HVv71DSIlDH3R0ZbpVH5jGlJS7N4U,2253
105
- robot_interface/telemetry/payloads.py,sha256=BiLS50TDgRXZ1DSTl8aaHG1mPa8R4KnWjai82jKdKmA,1099
106
- robot_interface/utilities/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
107
- robot_interface/utilities/json_service.py,sha256=nU2Q_3P9Fq9hs6F_wtUjWtHfl_g1Siy-yDhXXSKwHwg,1018
108
- robot_interface/utilities/uuid_string_factory.py,sha256=_NQIbBQ56w0qqO0MUDP6aPpHbxW7ATRhK8HnQiBSLkc,76
109
- isar-1.15.0.dist-info/LICENSE,sha256=3fc2-ebLwHWwzfQbulGNRdcNob3SBQeCfEVUDYxsuqw,14058
110
- isar-1.15.0.dist-info/METADATA,sha256=wCLjLbM8uH0RB5vnOBERzl8HUGncEhcyGWEH4RA9-5w,14420
111
- isar-1.15.0.dist-info/WHEEL,sha256=pkctZYzUS4AYVn6dJ-7367OJZivF2e8RA9b_ZBjif18,92
112
- isar-1.15.0.dist-info/top_level.txt,sha256=UwIML2RtuQKCyJJkatcSnyp6-ldDjboB9k9JgKipO-U,21
113
- isar-1.15.0.dist-info/RECORD,,
@@ -1,9 +0,0 @@
1
- from dataclasses import Field, dataclass
2
- from typing import Optional
3
-
4
- from alitra import Pose
5
-
6
-
7
- @dataclass
8
- class InitializeParams:
9
- initial_pose: Optional[Pose] = None
@@ -1,211 +0,0 @@
1
- from dataclasses import dataclass, field
2
- from typing import Any, List, Literal, Optional, Type, Union
3
-
4
- from alitra import Pose, Position
5
-
6
- from robot_interface.models.inspection import (
7
- Audio,
8
- Image,
9
- Inspection,
10
- ThermalImage,
11
- ThermalVideo,
12
- Video,
13
- )
14
- from robot_interface.models.mission.status import StepStatus
15
- from robot_interface.utilities.uuid_string_factory import uuid4_string
16
-
17
-
18
- @dataclass
19
- class Step:
20
- """
21
- Base class for all steps in a mission.
22
- """
23
-
24
- id: str = field(default_factory=uuid4_string, init=False)
25
- status: StepStatus = field(default=StepStatus.NotStarted, init=False)
26
-
27
- def __str__(self) -> str:
28
- def add_indent(text: str) -> str:
29
- return "".join(" " + line for line in text.splitlines(True))
30
-
31
- def robot_class_to_pretty_string(obj: Step) -> str:
32
- log_message: str = ""
33
- for attr in dir(obj):
34
- if callable(getattr(obj, attr)) or attr.startswith("__"):
35
- continue
36
-
37
- value: Any = getattr(obj, attr)
38
- try:
39
- package_name: Optional[str] = (
40
- str(value.__class__).split("'")[1].split(".")[0]
41
- )
42
- except (AttributeError, IndexError):
43
- package_name = None
44
-
45
- if package_name == "robot_interface":
46
- log_message += (
47
- "\n" + attr + ": " + robot_class_to_pretty_string(value)
48
- )
49
- else:
50
- log_message += "\n" + str(attr) + ": " + str(value)
51
-
52
- return add_indent(log_message)
53
-
54
- class_name: str = type(self).__name__
55
- return class_name + robot_class_to_pretty_string(self)
56
-
57
-
58
- @dataclass
59
- class InspectionStep(Step):
60
- """
61
- Base class for all inspection steps which produce results to be uploaded.
62
- """
63
-
64
- inspections: List[Inspection] = field(default_factory=list, init=False)
65
- tag_id: Optional[str] = field(default=None, init=False)
66
- type = "inspection_type"
67
- analysis: Optional[str] = field(default=None, init=False)
68
- metadata: Optional[dict] = field(default_factory=dict, init=False)
69
-
70
- @staticmethod
71
- def get_inspection_type() -> Type[Inspection]:
72
- return Inspection
73
-
74
-
75
- @dataclass
76
- class MotionStep(Step):
77
- """
78
- Base class for all steps which should move the robot, but not return a result.
79
- """
80
-
81
- pass
82
-
83
-
84
- @dataclass
85
- class ContinousInspectionStep(Step):
86
- """
87
- Base class for all continous inspection steps which produce a result to be uploaded.
88
- """
89
-
90
- pass
91
-
92
-
93
- @dataclass
94
- class DriveToPose(MotionStep):
95
- """
96
- Step which causes the robot to move to the given pose.
97
- """
98
-
99
- pose: Pose
100
- type: Literal["drive_to_pose"] = "drive_to_pose"
101
-
102
-
103
- @dataclass
104
- class DockingProcedure(MotionStep):
105
- """
106
- Step which causes the robot to dock or undock
107
- """
108
-
109
- behavior: Literal["dock, undock"]
110
- type: Literal["docking_procedure"] = "docking_procedure"
111
-
112
-
113
- @dataclass
114
- class Localize(MotionStep):
115
- """
116
- Step which causes the robot to localize
117
- """
118
-
119
- localization_pose: Pose
120
- type: Literal["localize"] = "localize"
121
-
122
-
123
- @dataclass
124
- class TakeImage(InspectionStep):
125
- """
126
- Step which causes the robot to take an image towards the given coordinate.
127
- """
128
-
129
- target: Position
130
- type: Literal["take_image"] = "take_image"
131
-
132
- @staticmethod
133
- def get_inspection_type() -> Type[Inspection]:
134
- return Image
135
-
136
-
137
- @dataclass
138
- class TakeThermalImage(InspectionStep):
139
- """
140
- Step which causes the robot to take a thermal image towards the given coordinate.
141
- """
142
-
143
- target: Position
144
- type: Literal["take_thermal_image"] = "take_thermal_image"
145
-
146
- @staticmethod
147
- def get_inspection_type() -> Type[Inspection]:
148
- return ThermalImage
149
-
150
-
151
- @dataclass
152
- class TakeVideo(InspectionStep):
153
- """
154
- Step which causes the robot to take a video towards the given coordinate.
155
-
156
- Duration of video is given in seconds.
157
- """
158
-
159
- target: Position
160
- duration: float
161
- type: Literal["take_video"] = "take_video"
162
-
163
- @staticmethod
164
- def get_inspection_type() -> Type[Inspection]:
165
- return Video
166
-
167
-
168
- @dataclass
169
- class TakeThermalVideo(InspectionStep):
170
- """
171
- Step which causes the robot to record thermal video towards the given coordinate
172
-
173
- Duration of video is given in seconds.
174
- """
175
-
176
- target: Position
177
- duration: float
178
- type: Literal["take_thermal_video"] = "take_thermal_video"
179
-
180
- @staticmethod
181
- def get_inspection_type() -> Type[Inspection]:
182
- return ThermalVideo
183
-
184
-
185
- @dataclass
186
- class RecordAudio(InspectionStep):
187
- """
188
- Step which causes the robot to record a video at its position, facing the target.
189
-
190
- Duration of audio is given in seconds.
191
- """
192
-
193
- target: Position
194
- duration: float
195
- type: Literal["record_audio"] = "record_audio"
196
-
197
- @staticmethod
198
- def get_inspection_type() -> Type[Inspection]:
199
- return Audio
200
-
201
-
202
- STEPS = Union[
203
- DriveToPose,
204
- DockingProcedure,
205
- Localize,
206
- TakeImage,
207
- TakeThermalImage,
208
- TakeVideo,
209
- TakeThermalVideo,
210
- RecordAudio,
211
- ]