isar 1.29.0__tar.gz → 1.30.1__tar.gz

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 (220) hide show
  1. {isar-1.29.0 → isar-1.30.1}/PKG-INFO +1 -1
  2. {isar-1.29.0 → isar-1.30.1}/src/isar/config/predefined_missions/default.json +24 -27
  3. {isar-1.29.0 → isar-1.30.1}/src/isar/config/settings.py +1 -0
  4. {isar-1.29.0 → isar-1.30.1}/src/isar/state_machine/transitions/functions/start_mission.py +4 -3
  5. {isar-1.29.0 → isar-1.30.1}/src/isar/storage/slimm_storage.py +8 -8
  6. {isar-1.29.0 → isar-1.30.1}/src/isar/storage/uploader.py +3 -3
  7. {isar-1.29.0 → isar-1.30.1}/src/isar/storage/utilities.py +17 -14
  8. {isar-1.29.0 → isar-1.30.1}/src/isar.egg-info/PKG-INFO +1 -1
  9. {isar-1.29.0 → isar-1.30.1}/src/robot_interface/models/inspection/inspection.py +3 -2
  10. {isar-1.29.0 → isar-1.30.1}/tests/isar/apis/scheduler/test_scheduler_router.py +1 -1
  11. {isar-1.29.0 → isar-1.30.1}/tests/isar/storage/test_blob_storage.py +2 -1
  12. {isar-1.29.0 → isar-1.30.1}/tests/isar/storage/test_uploader.py +2 -1
  13. {isar-1.29.0 → isar-1.30.1}/tests/mocks/robot_interface.py +3 -5
  14. {isar-1.29.0 → isar-1.30.1}/.dockerignore +0 -0
  15. {isar-1.29.0 → isar-1.30.1}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
  16. {isar-1.29.0 → isar-1.30.1}/.github/ISSUE_TEMPLATE/feature.md +0 -0
  17. {isar-1.29.0 → isar-1.30.1}/.github/ISSUE_TEMPLATE/improvement.md +0 -0
  18. {isar-1.29.0 → isar-1.30.1}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
  19. {isar-1.29.0 → isar-1.30.1}/.github/release.yml +0 -0
  20. {isar-1.29.0 → isar-1.30.1}/.github/workflows/compile_requirements.yml +0 -0
  21. {isar-1.29.0 → isar-1.30.1}/.github/workflows/project_automations.yml +0 -0
  22. {isar-1.29.0 → isar-1.30.1}/.github/workflows/pythonpackage.yml +0 -0
  23. {isar-1.29.0 → isar-1.30.1}/.github/workflows/pythonpublish.yml +0 -0
  24. {isar-1.29.0 → isar-1.30.1}/.github/workflows/stale.yml +0 -0
  25. {isar-1.29.0 → isar-1.30.1}/.gitignore +0 -0
  26. {isar-1.29.0 → isar-1.30.1}/.pre-commit-config.yaml +0 -0
  27. {isar-1.29.0 → isar-1.30.1}/LICENSE +0 -0
  28. {isar-1.29.0 → isar-1.30.1}/README.md +0 -0
  29. {isar-1.29.0 → isar-1.30.1}/SECURITY.md +0 -0
  30. {isar-1.29.0 → isar-1.30.1}/docs/Makefile +0 -0
  31. {isar-1.29.0 → isar-1.30.1}/docs/full_state_machine_diagram.png +0 -0
  32. {isar-1.29.0 → isar-1.30.1}/docs/make.bat +0 -0
  33. {isar-1.29.0 → isar-1.30.1}/docs/mission_state_machine_diagram.png +0 -0
  34. {isar-1.29.0 → isar-1.30.1}/docs/robot_status_state_machine_diagram.png +0 -0
  35. {isar-1.29.0 → isar-1.30.1}/docs/rst_processing.py +0 -0
  36. {isar-1.29.0 → isar-1.30.1}/docs/source/conf.py +0 -0
  37. {isar-1.29.0 → isar-1.30.1}/docs/source/index.rst +0 -0
  38. {isar-1.29.0 → isar-1.30.1}/docs/source/readme_link.md +0 -0
  39. {isar-1.29.0 → isar-1.30.1}/docs/update_state_diagram.py +0 -0
  40. {isar-1.29.0 → isar-1.30.1}/main.py +0 -0
  41. {isar-1.29.0 → isar-1.30.1}/pyproject.toml +0 -0
  42. {isar-1.29.0 → isar-1.30.1}/radixconfig.yml +0 -0
  43. {isar-1.29.0 → isar-1.30.1}/requirements.txt +0 -0
  44. {isar-1.29.0 → isar-1.30.1}/setup.cfg +0 -0
  45. {isar-1.29.0 → isar-1.30.1}/src/isar/__init__.py +0 -0
  46. {isar-1.29.0 → isar-1.30.1}/src/isar/apis/__init__.py +0 -0
  47. {isar-1.29.0 → isar-1.30.1}/src/isar/apis/api.py +0 -0
  48. {isar-1.29.0 → isar-1.30.1}/src/isar/apis/models/__init__.py +0 -0
  49. {isar-1.29.0 → isar-1.30.1}/src/isar/apis/models/models.py +0 -0
  50. {isar-1.29.0 → isar-1.30.1}/src/isar/apis/models/start_mission_definition.py +0 -0
  51. {isar-1.29.0 → isar-1.30.1}/src/isar/apis/robot_control/robot_controller.py +0 -0
  52. {isar-1.29.0 → isar-1.30.1}/src/isar/apis/schedule/__init__.py +0 -0
  53. {isar-1.29.0 → isar-1.30.1}/src/isar/apis/schedule/scheduling_controller.py +0 -0
  54. {isar-1.29.0 → isar-1.30.1}/src/isar/apis/security/__init__.py +0 -0
  55. {isar-1.29.0 → isar-1.30.1}/src/isar/apis/security/authentication.py +0 -0
  56. {isar-1.29.0 → isar-1.30.1}/src/isar/config/__init__.py +0 -0
  57. {isar-1.29.0 → isar-1.30.1}/src/isar/config/certs/ca-cert.pem +0 -0
  58. {isar-1.29.0 → isar-1.30.1}/src/isar/config/configuration_error.py +0 -0
  59. {isar-1.29.0 → isar-1.30.1}/src/isar/config/keyvault/__init__.py +0 -0
  60. {isar-1.29.0 → isar-1.30.1}/src/isar/config/keyvault/keyvault_error.py +0 -0
  61. {isar-1.29.0 → isar-1.30.1}/src/isar/config/keyvault/keyvault_service.py +0 -0
  62. {isar-1.29.0 → isar-1.30.1}/src/isar/config/log.py +0 -0
  63. {isar-1.29.0 → isar-1.30.1}/src/isar/config/logging.conf +0 -0
  64. {isar-1.29.0 → isar-1.30.1}/src/isar/config/maps/JSP1_intermediate_deck.json +0 -0
  65. {isar-1.29.0 → isar-1.30.1}/src/isar/config/maps/JSP1_weather_deck.json +0 -0
  66. {isar-1.29.0 → isar-1.30.1}/src/isar/config/maps/default_map.json +0 -0
  67. {isar-1.29.0 → isar-1.30.1}/src/isar/config/maps/klab_b.json +0 -0
  68. {isar-1.29.0 → isar-1.30.1}/src/isar/config/maps/klab_compressor.json +0 -0
  69. {isar-1.29.0 → isar-1.30.1}/src/isar/config/maps/klab_turtlebot.json +0 -0
  70. {isar-1.29.0 → isar-1.30.1}/src/isar/config/maps/turtleworld.json +0 -0
  71. {isar-1.29.0 → isar-1.30.1}/src/isar/config/predefined_mission_definition/__init__.py +0 -0
  72. {isar-1.29.0 → isar-1.30.1}/src/isar/config/predefined_mission_definition/default_exr.json +0 -0
  73. {isar-1.29.0 → isar-1.30.1}/src/isar/config/predefined_mission_definition/default_mission.json +0 -0
  74. {isar-1.29.0 → isar-1.30.1}/src/isar/config/predefined_mission_definition/default_turtlebot.json +0 -0
  75. {isar-1.29.0 → isar-1.30.1}/src/isar/config/predefined_missions/__init__.py +0 -0
  76. {isar-1.29.0 → isar-1.30.1}/src/isar/config/predefined_missions/default_turtlebot.json +0 -0
  77. {isar-1.29.0 → isar-1.30.1}/src/isar/config/settings.env +0 -0
  78. {isar-1.29.0 → isar-1.30.1}/src/isar/mission_planner/__init__.py +0 -0
  79. {isar-1.29.0 → isar-1.30.1}/src/isar/mission_planner/local_planner.py +0 -0
  80. {isar-1.29.0 → isar-1.30.1}/src/isar/mission_planner/mission_planner_interface.py +0 -0
  81. {isar-1.29.0 → isar-1.30.1}/src/isar/mission_planner/sequential_task_selector.py +0 -0
  82. {isar-1.29.0 → isar-1.30.1}/src/isar/mission_planner/task_selector_interface.py +0 -0
  83. {isar-1.29.0 → isar-1.30.1}/src/isar/models/__init__.py +0 -0
  84. {isar-1.29.0 → isar-1.30.1}/src/isar/models/communication/__init__.py +0 -0
  85. {isar-1.29.0 → isar-1.30.1}/src/isar/models/communication/message.py +0 -0
  86. {isar-1.29.0 → isar-1.30.1}/src/isar/models/communication/queues/__init__.py +0 -0
  87. {isar-1.29.0 → isar-1.30.1}/src/isar/models/communication/queues/events.py +0 -0
  88. {isar-1.29.0 → isar-1.30.1}/src/isar/models/communication/queues/queue_io.py +0 -0
  89. {isar-1.29.0 → isar-1.30.1}/src/isar/models/communication/queues/queue_timeout_error.py +0 -0
  90. {isar-1.29.0 → isar-1.30.1}/src/isar/models/communication/queues/queue_utils.py +0 -0
  91. {isar-1.29.0 → isar-1.30.1}/src/isar/models/communication/queues/status_queue.py +0 -0
  92. {isar-1.29.0 → isar-1.30.1}/src/isar/models/mission_metadata/__init__.py +0 -0
  93. {isar-1.29.0 → isar-1.30.1}/src/isar/modules.py +0 -0
  94. {isar-1.29.0 → isar-1.30.1}/src/isar/robot/robot.py +0 -0
  95. {isar-1.29.0 → isar-1.30.1}/src/isar/robot/robot_start_mission.py +0 -0
  96. {isar-1.29.0 → isar-1.30.1}/src/isar/robot/robot_status.py +0 -0
  97. {isar-1.29.0 → isar-1.30.1}/src/isar/robot/robot_stop_mission.py +0 -0
  98. {isar-1.29.0 → isar-1.30.1}/src/isar/robot/robot_task_status.py +0 -0
  99. {isar-1.29.0 → isar-1.30.1}/src/isar/script.py +0 -0
  100. {isar-1.29.0 → isar-1.30.1}/src/isar/services/__init__.py +0 -0
  101. {isar-1.29.0 → isar-1.30.1}/src/isar/services/auth/__init__.py +0 -0
  102. {isar-1.29.0 → isar-1.30.1}/src/isar/services/auth/azure_credentials.py +0 -0
  103. {isar-1.29.0 → isar-1.30.1}/src/isar/services/service_connections/__init__.py +0 -0
  104. {isar-1.29.0 → isar-1.30.1}/src/isar/services/service_connections/mqtt/__init__.py +0 -0
  105. {isar-1.29.0 → isar-1.30.1}/src/isar/services/service_connections/mqtt/mqtt_client.py +0 -0
  106. {isar-1.29.0 → isar-1.30.1}/src/isar/services/service_connections/mqtt/robot_heartbeat_publisher.py +0 -0
  107. {isar-1.29.0 → isar-1.30.1}/src/isar/services/service_connections/mqtt/robot_info_publisher.py +0 -0
  108. {isar-1.29.0 → isar-1.30.1}/src/isar/services/service_connections/request_handler.py +0 -0
  109. {isar-1.29.0 → isar-1.30.1}/src/isar/services/service_connections/stid/__init__.py +0 -0
  110. {isar-1.29.0 → isar-1.30.1}/src/isar/services/utilities/__init__.py +0 -0
  111. {isar-1.29.0 → isar-1.30.1}/src/isar/services/utilities/queue_utilities.py +0 -0
  112. {isar-1.29.0 → isar-1.30.1}/src/isar/services/utilities/robot_utilities.py +0 -0
  113. {isar-1.29.0 → isar-1.30.1}/src/isar/services/utilities/scheduling_utilities.py +0 -0
  114. {isar-1.29.0 → isar-1.30.1}/src/isar/services/utilities/threaded_request.py +0 -0
  115. {isar-1.29.0 → isar-1.30.1}/src/isar/state_machine/__init__.py +0 -0
  116. {isar-1.29.0 → isar-1.30.1}/src/isar/state_machine/state_machine.py +0 -0
  117. {isar-1.29.0 → isar-1.30.1}/src/isar/state_machine/states/__init__.py +0 -0
  118. {isar-1.29.0 → isar-1.30.1}/src/isar/state_machine/states/await_next_mission.py +0 -0
  119. {isar-1.29.0 → isar-1.30.1}/src/isar/state_machine/states/blocked_protective_stop.py +0 -0
  120. {isar-1.29.0 → isar-1.30.1}/src/isar/state_machine/states/home.py +0 -0
  121. {isar-1.29.0 → isar-1.30.1}/src/isar/state_machine/states/monitor.py +0 -0
  122. {isar-1.29.0 → isar-1.30.1}/src/isar/state_machine/states/offline.py +0 -0
  123. {isar-1.29.0 → isar-1.30.1}/src/isar/state_machine/states/paused.py +0 -0
  124. {isar-1.29.0 → isar-1.30.1}/src/isar/state_machine/states/returning_home.py +0 -0
  125. {isar-1.29.0 → isar-1.30.1}/src/isar/state_machine/states/robot_standing_still.py +0 -0
  126. {isar-1.29.0 → isar-1.30.1}/src/isar/state_machine/states/stopping.py +0 -0
  127. {isar-1.29.0 → isar-1.30.1}/src/isar/state_machine/states/unknown_status.py +0 -0
  128. {isar-1.29.0 → isar-1.30.1}/src/isar/state_machine/states_enum.py +0 -0
  129. {isar-1.29.0 → isar-1.30.1}/src/isar/state_machine/transitions/functions/fail_mission.py +0 -0
  130. {isar-1.29.0 → isar-1.30.1}/src/isar/state_machine/transitions/functions/finish_mission.py +0 -0
  131. {isar-1.29.0 → isar-1.30.1}/src/isar/state_machine/transitions/functions/pause.py +0 -0
  132. {isar-1.29.0 → isar-1.30.1}/src/isar/state_machine/transitions/functions/resume.py +0 -0
  133. {isar-1.29.0 → isar-1.30.1}/src/isar/state_machine/transitions/functions/return_home.py +0 -0
  134. {isar-1.29.0 → isar-1.30.1}/src/isar/state_machine/transitions/functions/robot_status.py +0 -0
  135. {isar-1.29.0 → isar-1.30.1}/src/isar/state_machine/transitions/functions/stop.py +0 -0
  136. {isar-1.29.0 → isar-1.30.1}/src/isar/state_machine/transitions/functions/utils.py +0 -0
  137. {isar-1.29.0 → isar-1.30.1}/src/isar/state_machine/transitions/mission.py +0 -0
  138. {isar-1.29.0 → isar-1.30.1}/src/isar/state_machine/transitions/return_home.py +0 -0
  139. {isar-1.29.0 → isar-1.30.1}/src/isar/state_machine/transitions/robot_status.py +0 -0
  140. {isar-1.29.0 → isar-1.30.1}/src/isar/storage/__init__.py +0 -0
  141. {isar-1.29.0 → isar-1.30.1}/src/isar/storage/blob_storage.py +0 -0
  142. {isar-1.29.0 → isar-1.30.1}/src/isar/storage/local_storage.py +0 -0
  143. {isar-1.29.0 → isar-1.30.1}/src/isar/storage/storage_interface.py +0 -0
  144. {isar-1.29.0 → isar-1.30.1}/src/isar.egg-info/SOURCES.txt +0 -0
  145. {isar-1.29.0 → isar-1.30.1}/src/isar.egg-info/dependency_links.txt +0 -0
  146. {isar-1.29.0 → isar-1.30.1}/src/isar.egg-info/entry_points.txt +0 -0
  147. {isar-1.29.0 → isar-1.30.1}/src/isar.egg-info/requires.txt +0 -0
  148. {isar-1.29.0 → isar-1.30.1}/src/isar.egg-info/top_level.txt +0 -0
  149. {isar-1.29.0 → isar-1.30.1}/src/robot_interface/__init__.py +0 -0
  150. {isar-1.29.0 → isar-1.30.1}/src/robot_interface/models/__init__.py +0 -0
  151. {isar-1.29.0 → isar-1.30.1}/src/robot_interface/models/exceptions/__init__.py +0 -0
  152. {isar-1.29.0 → isar-1.30.1}/src/robot_interface/models/exceptions/robot_exceptions.py +0 -0
  153. {isar-1.29.0 → isar-1.30.1}/src/robot_interface/models/initialize/__init__.py +0 -0
  154. {isar-1.29.0 → isar-1.30.1}/src/robot_interface/models/inspection/__init__.py +0 -0
  155. {isar-1.29.0 → isar-1.30.1}/src/robot_interface/models/mission/__init__.py +0 -0
  156. {isar-1.29.0 → isar-1.30.1}/src/robot_interface/models/mission/mission.py +0 -0
  157. {isar-1.29.0 → isar-1.30.1}/src/robot_interface/models/mission/status.py +0 -0
  158. {isar-1.29.0 → isar-1.30.1}/src/robot_interface/models/mission/task.py +0 -0
  159. {isar-1.29.0 → isar-1.30.1}/src/robot_interface/models/robots/__init__.py +0 -0
  160. {isar-1.29.0 → isar-1.30.1}/src/robot_interface/models/robots/battery_state.py +0 -0
  161. {isar-1.29.0 → isar-1.30.1}/src/robot_interface/models/robots/media.py +0 -0
  162. {isar-1.29.0 → isar-1.30.1}/src/robot_interface/models/robots/robot_model.py +0 -0
  163. {isar-1.29.0 → isar-1.30.1}/src/robot_interface/robot_interface.py +0 -0
  164. {isar-1.29.0 → isar-1.30.1}/src/robot_interface/telemetry/__init__.py +0 -0
  165. {isar-1.29.0 → isar-1.30.1}/src/robot_interface/telemetry/mqtt_client.py +0 -0
  166. {isar-1.29.0 → isar-1.30.1}/src/robot_interface/telemetry/payloads.py +0 -0
  167. {isar-1.29.0 → isar-1.30.1}/src/robot_interface/test_robot_interface.py +0 -0
  168. {isar-1.29.0 → isar-1.30.1}/src/robot_interface/utilities/__init__.py +0 -0
  169. {isar-1.29.0 → isar-1.30.1}/src/robot_interface/utilities/json_service.py +0 -0
  170. {isar-1.29.0 → isar-1.30.1}/src/robot_interface/utilities/uuid_string_factory.py +0 -0
  171. {isar-1.29.0 → isar-1.30.1}/tests/__init__.py +0 -0
  172. {isar-1.29.0 → isar-1.30.1}/tests/conftest.py +0 -0
  173. {isar-1.29.0 → isar-1.30.1}/tests/integration/__init__.py +0 -0
  174. {isar-1.29.0 → isar-1.30.1}/tests/integration/turtlebot/__init__.py +0 -0
  175. {isar-1.29.0 → isar-1.30.1}/tests/integration/turtlebot/config/__init__.py +0 -0
  176. {isar-1.29.0 → isar-1.30.1}/tests/integration/turtlebot/config/maps/__init__.py +0 -0
  177. {isar-1.29.0 → isar-1.30.1}/tests/integration/turtlebot/config/maps/turtleworld.json +0 -0
  178. {isar-1.29.0 → isar-1.30.1}/tests/integration/turtlebot/config/missions/__init__.py +0 -0
  179. {isar-1.29.0 → isar-1.30.1}/tests/integration/turtlebot/config/missions/default.json +0 -0
  180. {isar-1.29.0 → isar-1.30.1}/tests/integration/turtlebot/test_successful_mission.py +0 -0
  181. {isar-1.29.0 → isar-1.30.1}/tests/isar/__init__.py +0 -0
  182. {isar-1.29.0 → isar-1.30.1}/tests/isar/apis/__init__.py +0 -0
  183. {isar-1.29.0 → isar-1.30.1}/tests/isar/apis/models/__init__.py +0 -0
  184. {isar-1.29.0 → isar-1.30.1}/tests/isar/apis/models/example_mission_definition.json +0 -0
  185. {isar-1.29.0 → isar-1.30.1}/tests/isar/apis/models/test_start_mission_definition.py +0 -0
  186. {isar-1.29.0 → isar-1.30.1}/tests/isar/apis/scheduler/__init__.py +0 -0
  187. {isar-1.29.0 → isar-1.30.1}/tests/isar/apis/security/__init__.py +0 -0
  188. {isar-1.29.0 → isar-1.30.1}/tests/isar/apis/security/test_authentication.py +0 -0
  189. {isar-1.29.0 → isar-1.30.1}/tests/isar/mission/__init__.py +0 -0
  190. {isar-1.29.0 → isar-1.30.1}/tests/isar/mission/test_mission.py +0 -0
  191. {isar-1.29.0 → isar-1.30.1}/tests/isar/models/__init__.py +0 -0
  192. {isar-1.29.0 → isar-1.30.1}/tests/isar/models/communication/__init__.py +0 -0
  193. {isar-1.29.0 → isar-1.30.1}/tests/isar/models/communication/test_queues.py +0 -0
  194. {isar-1.29.0 → isar-1.30.1}/tests/isar/services/__init__.py +0 -0
  195. {isar-1.29.0 → isar-1.30.1}/tests/isar/services/readers/__init__.py +0 -0
  196. {isar-1.29.0 → isar-1.30.1}/tests/isar/services/readers/test_mission_reader.py +0 -0
  197. {isar-1.29.0 → isar-1.30.1}/tests/isar/services/service_connections/__init__.py +0 -0
  198. {isar-1.29.0 → isar-1.30.1}/tests/isar/services/service_connections/echo/__init__.py +0 -0
  199. {isar-1.29.0 → isar-1.30.1}/tests/isar/services/service_connections/test_base_request_handler.py +0 -0
  200. {isar-1.29.0 → isar-1.30.1}/tests/isar/services/utilities/__init__.py +0 -0
  201. {isar-1.29.0 → isar-1.30.1}/tests/isar/services/utilities/test_queue_utilities.py +0 -0
  202. {isar-1.29.0 → isar-1.30.1}/tests/isar/services/utilities/test_scheduling_utilities.py +0 -0
  203. {isar-1.29.0 → isar-1.30.1}/tests/isar/state_machine/__init__.py +0 -0
  204. {isar-1.29.0 → isar-1.30.1}/tests/isar/state_machine/states/__init__.py +0 -0
  205. {isar-1.29.0 → isar-1.30.1}/tests/isar/state_machine/states/test_monitor.py +0 -0
  206. {isar-1.29.0 → isar-1.30.1}/tests/isar/state_machine/test_state_machine.py +0 -0
  207. {isar-1.29.0 → isar-1.30.1}/tests/mocks/__init__.py +0 -0
  208. {isar-1.29.0 → isar-1.30.1}/tests/mocks/blob_storage.py +0 -0
  209. {isar-1.29.0 → isar-1.30.1}/tests/mocks/mission_definition.py +0 -0
  210. {isar-1.29.0 → isar-1.30.1}/tests/mocks/mqtt_client.py +0 -0
  211. {isar-1.29.0 → isar-1.30.1}/tests/mocks/pose.py +0 -0
  212. {isar-1.29.0 → isar-1.30.1}/tests/mocks/request.py +0 -0
  213. {isar-1.29.0 → isar-1.30.1}/tests/mocks/status.py +0 -0
  214. {isar-1.29.0 → isar-1.30.1}/tests/mocks/task.py +0 -0
  215. {isar-1.29.0 → isar-1.30.1}/tests/mocks/token.py +0 -0
  216. {isar-1.29.0 → isar-1.30.1}/tests/test_data/test_map_config/test_map_config.json +0 -0
  217. {isar-1.29.0 → isar-1.30.1}/tests/test_data/test_mission_not_working.json +0 -0
  218. {isar-1.29.0 → isar-1.30.1}/tests/test_data/test_mission_working.json +0 -0
  219. {isar-1.29.0 → isar-1.30.1}/tests/test_data/test_mission_working_no_tasks.json +0 -0
  220. {isar-1.29.0 → isar-1.30.1}/tests/test_data/test_thermal_image_mission.json +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: isar
3
- Version: 1.29.0
3
+ Version: 1.30.1
4
4
  Summary: Integration and Supervisory control of Autonomous Robots
5
5
  Author-email: Equinor ASA <fg_robots_dev@equinor.com>
6
6
  License: Eclipse Public License version 2.0
@@ -9,22 +9,30 @@
9
9
  "x": -2,
10
10
  "y": -2,
11
11
  "z": 0,
12
- "frame": {"name": "asset"}
12
+ "frame": {
13
+ "name": "asset"
14
+ }
13
15
  },
14
16
  "orientation": {
15
17
  "x": 0,
16
18
  "y": 0,
17
19
  "z": 0.4794255,
18
20
  "w": 0.8775826,
19
- "frame": {"name": "asset"}
21
+ "frame": {
22
+ "name": "asset"
23
+ }
20
24
  },
21
- "frame": {"name": "asset"}
25
+ "frame": {
26
+ "name": "asset"
27
+ }
22
28
  },
23
29
  "target": {
24
30
  "x": 2,
25
31
  "y": 2,
26
32
  "z": 0,
27
- "frame": {"name": "asset"}
33
+ "frame": {
34
+ "name": "asset"
35
+ }
28
36
  }
29
37
  },
30
38
  {
@@ -34,41 +42,30 @@
34
42
  "x": -2,
35
43
  "y": 2,
36
44
  "z": 0,
37
- "frame": {"name": "asset"}
45
+ "frame": {
46
+ "name": "asset"
47
+ }
38
48
  },
39
49
  "orientation": {
40
50
  "x": 0,
41
51
  "y": 0,
42
52
  "z": 0.4794255,
43
53
  "w": 0.8775826,
44
- "frame": {"name": "asset"}
54
+ "frame": {
55
+ "name": "asset"
56
+ }
45
57
  },
46
- "frame": {"name": "asset"}
58
+ "frame": {
59
+ "name": "asset"
60
+ }
47
61
  },
48
62
  "target": {
49
63
  "x": 2,
50
64
  "y": 2,
51
65
  "z": 0,
52
- "frame": {"name": "asset"}
53
- }
54
- },
55
- {
56
- "type": "return_to_home",
57
- "pose": {
58
- "position": {
59
- "x": 2,
60
- "y": 2,
61
- "z": 0,
62
- "frame": {"name": "asset"}
63
- },
64
- "orientation": {
65
- "x": 0,
66
- "y": 0,
67
- "z": 0.4794255,
68
- "w": 0.8775826,
69
- "frame": {"name": "asset"}
70
- },
71
- "frame": {"name": "asset"}
66
+ "frame": {
67
+ "name": "asset"
68
+ }
72
69
  }
73
70
  }
74
71
  ]
@@ -284,6 +284,7 @@ class Settings(BaseSettings):
284
284
  "TOPIC_ISAR_ROBOT_INFO",
285
285
  "TOPIC_ISAR_ROBOT_HEARTBEAT",
286
286
  "TOPIC_ISAR_INSPECTION_RESULT",
287
+ "TOPIC_ISAR_INSPECTION_VALUE",
287
288
  )
288
289
  @classmethod
289
290
  def prefix_isar_topics(cls, v: Any, info: ValidationInfo):
@@ -18,10 +18,11 @@ def put_start_mission_on_queue(state_machine: "StateMachine") -> bool:
18
18
 
19
19
  def initiate_mission(state_machine: "StateMachine") -> bool:
20
20
  state_machine.logger.info(
21
- f"Initialization successful. Starting new mission: "
22
- f"{state_machine.current_mission.id}"
21
+ "Initialization successful. Starting new mission:\n"
22
+ f" Mission ID: {state_machine.current_mission.id}\n"
23
+ f" Mission Name: {state_machine.current_mission.name}\n"
24
+ f" Number of Tasks: {len(state_machine.current_mission.tasks)}"
23
25
  )
24
- state_machine.log_mission_overview(mission=state_machine.current_mission)
25
26
 
26
27
  state_machine.current_mission.status = MissionStatus.InProgress
27
28
  state_machine.publish_mission_status()
@@ -102,7 +102,7 @@ class SlimmStorage(StorageInterface):
102
102
  filename: str, inspection: Inspection, mission: Mission
103
103
  ) -> MultipartEncoder:
104
104
  array_of_orientation = (
105
- inspection.metadata.pose.orientation.to_quat_array().tolist()
105
+ inspection.metadata.robot_pose.orientation.to_quat_array().tolist()
106
106
  )
107
107
  multiform_body: MultipartEncoder = MultipartEncoder(
108
108
  fields={
@@ -118,9 +118,9 @@ class SlimmStorage(StorageInterface):
118
118
  "Mission.MissionId": mission.id,
119
119
  "Mission.Client": "Equinor",
120
120
  "ImageMetadata.Timestamp": inspection.metadata.start_time.isoformat(), # noqa: E501
121
- "ImageMetadata.X": str(inspection.metadata.pose.position.x),
122
- "ImageMetadata.Y": str(inspection.metadata.pose.position.y),
123
- "ImageMetadata.Z": str(inspection.metadata.pose.position.z),
121
+ "ImageMetadata.X": str(inspection.metadata.robot_pose.position.x),
122
+ "ImageMetadata.Y": str(inspection.metadata.robot_pose.position.y),
123
+ "ImageMetadata.Z": str(inspection.metadata.robot_pose.position.z),
124
124
  "ImageMetadata.CameraOrientation1": str(array_of_orientation[0]),
125
125
  "ImageMetadata.CameraOrientation2": str(array_of_orientation[1]),
126
126
  "ImageMetadata.CameraOrientation3": str(array_of_orientation[2]),
@@ -148,7 +148,7 @@ class SlimmStorage(StorageInterface):
148
148
  mission: Mission,
149
149
  ) -> MultipartEncoder:
150
150
  array_of_orientation = (
151
- inspection.metadata.pose.orientation.to_quat_array().tolist()
151
+ inspection.metadata.robot_pose.orientation.to_quat_array().tolist()
152
152
  )
153
153
  multiform_body: MultipartEncoder = MultipartEncoder(
154
154
  fields={
@@ -166,9 +166,9 @@ class SlimmStorage(StorageInterface):
166
166
  "VideoMetadata.Timestamp": inspection.metadata.start_time.isoformat(), # noqa: E501
167
167
  # Converting to int because SLIMM expects an int, while we use floats in operations.
168
168
  "VideoMetadata.Duration": str(int(inspection.metadata.duration)), # type: ignore
169
- "VideoMetadata.X": str(inspection.metadata.pose.position.x),
170
- "VideoMetadata.Y": str(inspection.metadata.pose.position.y),
171
- "VideoMetadata.Z": str(inspection.metadata.pose.position.z),
169
+ "VideoMetadata.X": str(inspection.metadata.robot_pose.position.x),
170
+ "VideoMetadata.Y": str(inspection.metadata.robot_pose.position.y),
171
+ "VideoMetadata.Z": str(inspection.metadata.robot_pose.position.z),
172
172
  "VideoMetadata.CameraOrientation1": str(array_of_orientation[0]),
173
173
  "VideoMetadata.CameraOrientation2": str(array_of_orientation[1]),
174
174
  "VideoMetadata.CameraOrientation3": str(array_of_orientation[2]),
@@ -213,9 +213,9 @@ class Uploader:
213
213
  inspection_description=inspection.metadata.inspection_description,
214
214
  value=inspection.value,
215
215
  unit=inspection.unit,
216
- x=inspection.metadata.pose.position.x,
217
- y=inspection.metadata.pose.position.y,
218
- z=inspection.metadata.pose.position.z,
216
+ x=inspection.metadata.robot_pose.position.x,
217
+ y=inspection.metadata.robot_pose.position.y,
218
+ z=inspection.metadata.robot_pose.position.z,
219
219
  timestamp=inspection.metadata.start_time,
220
220
  )
221
221
  self.mqtt_publisher.publish(
@@ -41,23 +41,26 @@ def construct_metadata_file(
41
41
  "isar_id": settings.ISAR_ID,
42
42
  "robot_name": settings.ROBOT_NAME,
43
43
  "inspection_description": inspection.metadata.inspection_description,
44
+ "tag": inspection.metadata.tag_id,
45
+ "robot_pose": {
46
+ "position": {
47
+ "x": inspection.metadata.robot_pose.position.x,
48
+ "y": inspection.metadata.robot_pose.position.y,
49
+ "z": inspection.metadata.robot_pose.position.z,
50
+ },
51
+ "orientation": inspection.metadata.robot_pose.orientation.to_quat_array(),
52
+ },
53
+ "target_position": {
54
+ "x": inspection.metadata.target_position.x,
55
+ "y": inspection.metadata.target_position.y,
56
+ "z": inspection.metadata.target_position.z,
57
+ },
58
+ "timestamp": inspection.metadata.start_time,
44
59
  },
45
- "data": [
60
+ "data_files": [
46
61
  {
47
62
  "folder": f"/{get_foldername(mission=mission)}",
48
- "files": [
49
- {
50
- "file_name": filename,
51
- "timestamp": inspection.metadata.start_time,
52
- "x": inspection.metadata.pose.position.x,
53
- "y": inspection.metadata.pose.position.y,
54
- "z": inspection.metadata.pose.position.z,
55
- "tag": inspection.metadata.tag_id,
56
- "additional_media_metadata": {
57
- "orientation": inspection.metadata.pose.orientation.to_quat_array() # noqa: E501
58
- },
59
- }
60
- ],
63
+ "file_name": filename,
61
64
  }
62
65
  ],
63
66
  }
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: isar
3
- Version: 1.29.0
3
+ Version: 1.30.1
4
4
  Summary: Integration and Supervisory control of Autonomous Robots
5
5
  Author-email: Equinor ASA <fg_robots_dev@equinor.com>
6
6
  License: Eclipse Public License version 2.0
@@ -3,14 +3,15 @@ from dataclasses import dataclass, field
3
3
  from datetime import datetime
4
4
  from typing import Optional, Type
5
5
 
6
- from alitra import Pose
6
+ from alitra import Pose, Position
7
7
  from pydantic import BaseModel, Field
8
8
 
9
9
 
10
10
  @dataclass
11
11
  class InspectionMetadata(ABC):
12
12
  start_time: datetime
13
- pose: Pose
13
+ robot_pose: Pose
14
+ target_position: Position
14
15
  file_type: str
15
16
  tag_id: Optional[str] = field(default=None, init=False)
16
17
  inspection_description: Optional[str] = field(default=None, init=False)
@@ -179,7 +179,7 @@ class TestStartMission:
179
179
  assert re.match(
180
180
  "Bad Request - Robot is not capable of performing mission.", response_detail
181
181
  )
182
- assert re.search("return_to_home", response_detail)
182
+ assert re.search("take_thermal_image", response_detail)
183
183
  assert re.search("take_image", response_detail)
184
184
 
185
185
 
@@ -7,11 +7,12 @@ from robot_interface.models.inspection.inspection import ImageMetadata
7
7
  MISSION_ID = "some-mission-id"
8
8
  ARBITRARY_IMAGE_METADATA = ImageMetadata(
9
9
  start_time=datetime.now(),
10
- pose=Pose(
10
+ robot_pose=Pose(
11
11
  Position(0, 0, 0, Frame("asset")),
12
12
  Orientation(0, 0, 0, 1, Frame("asset")),
13
13
  Frame("asset"),
14
14
  ),
15
+ target_position=Position(0, 0, 0, Frame("asset")),
15
16
  file_type="jpg",
16
17
  )
17
18
  DATA_BYTES: bytes = b"Lets say this is some image data"
@@ -19,11 +19,12 @@ from tests.mocks.blob_storage import StorageMock
19
19
  MISSION_ID = "some-mission-id"
20
20
  ARBITRARY_IMAGE_METADATA = ImageMetadata(
21
21
  start_time=datetime.now(),
22
- pose=Pose(
22
+ robot_pose=Pose(
23
23
  Position(0, 0, 0, Frame("asset")),
24
24
  Orientation(x=0, y=0, z=0, w=1, frame=Frame("asset")),
25
25
  Frame("asset"),
26
26
  ),
27
+ target_position=Position(0, 0, 0, Frame("asset")),
27
28
  file_type="jpg",
28
29
  )
29
30
 
@@ -16,7 +16,7 @@ from robot_interface.models.inspection.inspection import (
16
16
  )
17
17
  from robot_interface.models.mission.mission import Mission
18
18
  from robot_interface.models.mission.status import MissionStatus, RobotStatus, TaskStatus
19
- from robot_interface.models.mission.task import InspectionTask, Task
19
+ from robot_interface.models.mission.task import InspectionTask
20
20
  from robot_interface.models.robots.media import MediaConfig, MediaConnectionType
21
21
  from robot_interface.robot_interface import RobotInterface
22
22
 
@@ -43,9 +43,6 @@ class MockRobot(RobotInterface):
43
43
  def initiate_mission(self, mission: Mission) -> None:
44
44
  return
45
45
 
46
- def initiate_task(self, task: Task) -> None:
47
- return
48
-
49
46
  def task_status(self, task_id: str) -> TaskStatus:
50
47
  return self.task_status_return_value
51
48
 
@@ -92,11 +89,12 @@ class MockRobot(RobotInterface):
92
89
  def mock_image_metadata() -> ImageMetadata:
93
90
  return ImageMetadata(
94
91
  start_time=datetime.now(),
95
- pose=Pose(
92
+ robot_pose=Pose(
96
93
  Position(0, 0, 0, Frame("robot")),
97
94
  Orientation(0, 0, 0, 1, Frame("robot")),
98
95
  Frame("robot"),
99
96
  ),
97
+ target_position=Position(0, 0, 0, Frame("robot")),
100
98
  file_type="jpg",
101
99
  )
102
100
 
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes