isar 1.16.10__tar.gz → 1.16.11__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 (203) hide show
  1. {isar-1.16.10 → isar-1.16.11}/Dockerfile +10 -4
  2. {isar-1.16.10 → isar-1.16.11}/PKG-INFO +7 -7
  3. {isar-1.16.10 → isar-1.16.11}/README.md +6 -6
  4. {isar-1.16.10 → isar-1.16.11}/src/isar/config/log.py +3 -1
  5. isar-1.16.11/src/isar/config/predefined_mission_definition/default_exr.json +51 -0
  6. {isar-1.16.10 → isar-1.16.11}/src/isar/services/service_connections/mqtt/mqtt_client.py +1 -1
  7. {isar-1.16.10 → isar-1.16.11}/src/isar/services/service_connections/mqtt/robot_status_publisher.py +15 -9
  8. {isar-1.16.10 → isar-1.16.11}/src/isar/state_machine/state_machine.py +9 -9
  9. {isar-1.16.10 → isar-1.16.11}/src/isar/state_machine/states/idle.py +3 -3
  10. {isar-1.16.10 → isar-1.16.11}/src/isar/state_machine/states/monitor.py +6 -6
  11. {isar-1.16.10 → isar-1.16.11}/src/isar/storage/slimm_storage.py +22 -18
  12. {isar-1.16.10 → isar-1.16.11}/src/isar/storage/utilities.py +5 -3
  13. {isar-1.16.10 → isar-1.16.11}/src/isar.egg-info/PKG-INFO +7 -7
  14. {isar-1.16.10 → isar-1.16.11}/src/isar.egg-info/SOURCES.txt +1 -0
  15. {isar-1.16.10 → isar-1.16.11}/.dockerignore +0 -0
  16. {isar-1.16.10 → isar-1.16.11}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
  17. {isar-1.16.10 → isar-1.16.11}/.github/ISSUE_TEMPLATE/feature.md +0 -0
  18. {isar-1.16.10 → isar-1.16.11}/.github/ISSUE_TEMPLATE/improvement.md +0 -0
  19. {isar-1.16.10 → isar-1.16.11}/.github/release.yml +0 -0
  20. {isar-1.16.10 → isar-1.16.11}/.github/workflows/project_automations.yml +0 -0
  21. {isar-1.16.10 → isar-1.16.11}/.github/workflows/publish_isar_base_image.yml +0 -0
  22. {isar-1.16.10 → isar-1.16.11}/.github/workflows/pythonpackage.yml +0 -0
  23. {isar-1.16.10 → isar-1.16.11}/.github/workflows/pythonpublish.yml +0 -0
  24. {isar-1.16.10 → isar-1.16.11}/.github/workflows/repository_dispatch_on_merge.yml +0 -0
  25. {isar-1.16.10 → isar-1.16.11}/.github/workflows/stale.yml +0 -0
  26. {isar-1.16.10 → isar-1.16.11}/.gitignore +0 -0
  27. {isar-1.16.10 → isar-1.16.11}/.pre-commit-config.yaml +0 -0
  28. {isar-1.16.10 → isar-1.16.11}/LICENSE +0 -0
  29. {isar-1.16.10 → isar-1.16.11}/SECURITY.md +0 -0
  30. {isar-1.16.10 → isar-1.16.11}/docker-compose-turtlebot.yml +0 -0
  31. {isar-1.16.10 → isar-1.16.11}/docker-compose.yml +0 -0
  32. {isar-1.16.10 → isar-1.16.11}/docs/Makefile +0 -0
  33. {isar-1.16.10 → isar-1.16.11}/docs/make.bat +0 -0
  34. {isar-1.16.10 → isar-1.16.11}/docs/rst_processing.py +0 -0
  35. {isar-1.16.10 → isar-1.16.11}/docs/source/conf.py +0 -0
  36. {isar-1.16.10 → isar-1.16.11}/docs/source/index.rst +0 -0
  37. {isar-1.16.10 → isar-1.16.11}/docs/source/readme_link.md +0 -0
  38. {isar-1.16.10 → isar-1.16.11}/docs/state_machine_diagram.png +0 -0
  39. {isar-1.16.10 → isar-1.16.11}/main.py +0 -0
  40. {isar-1.16.10 → isar-1.16.11}/pyproject.toml +0 -0
  41. {isar-1.16.10 → isar-1.16.11}/radixconfig.yml +0 -0
  42. {isar-1.16.10 → isar-1.16.11}/setup.cfg +0 -0
  43. {isar-1.16.10 → isar-1.16.11}/setup.py +0 -0
  44. {isar-1.16.10 → isar-1.16.11}/src/isar/__init__.py +0 -0
  45. {isar-1.16.10 → isar-1.16.11}/src/isar/apis/__init__.py +0 -0
  46. {isar-1.16.10 → isar-1.16.11}/src/isar/apis/api.py +0 -0
  47. {isar-1.16.10 → isar-1.16.11}/src/isar/apis/models/__init__.py +0 -0
  48. {isar-1.16.10 → isar-1.16.11}/src/isar/apis/models/models.py +0 -0
  49. {isar-1.16.10 → isar-1.16.11}/src/isar/apis/models/start_mission_definition.py +0 -0
  50. {isar-1.16.10 → isar-1.16.11}/src/isar/apis/schedule/__init__.py +0 -0
  51. {isar-1.16.10 → isar-1.16.11}/src/isar/apis/schedule/scheduling_controller.py +0 -0
  52. {isar-1.16.10 → isar-1.16.11}/src/isar/apis/security/__init__.py +0 -0
  53. {isar-1.16.10 → isar-1.16.11}/src/isar/apis/security/authentication.py +0 -0
  54. {isar-1.16.10 → isar-1.16.11}/src/isar/config/__init__.py +0 -0
  55. {isar-1.16.10 → isar-1.16.11}/src/isar/config/certs/ca-cert.pem +0 -0
  56. {isar-1.16.10 → isar-1.16.11}/src/isar/config/configuration_error.py +0 -0
  57. {isar-1.16.10 → isar-1.16.11}/src/isar/config/keyvault/__init__.py +0 -0
  58. {isar-1.16.10 → isar-1.16.11}/src/isar/config/keyvault/keyvault_error.py +0 -0
  59. {isar-1.16.10 → isar-1.16.11}/src/isar/config/keyvault/keyvault_service.py +0 -0
  60. {isar-1.16.10 → isar-1.16.11}/src/isar/config/logging.conf +0 -0
  61. {isar-1.16.10 → isar-1.16.11}/src/isar/config/maps/JSP1_intermediate_deck.json +0 -0
  62. {isar-1.16.10 → isar-1.16.11}/src/isar/config/maps/JSP1_weather_deck.json +0 -0
  63. {isar-1.16.10 → isar-1.16.11}/src/isar/config/maps/default_map.json +0 -0
  64. {isar-1.16.10 → isar-1.16.11}/src/isar/config/maps/klab_b.json +0 -0
  65. {isar-1.16.10 → isar-1.16.11}/src/isar/config/maps/klab_compressor.json +0 -0
  66. {isar-1.16.10 → isar-1.16.11}/src/isar/config/maps/klab_turtlebot.json +0 -0
  67. {isar-1.16.10 → isar-1.16.11}/src/isar/config/maps/turtleworld.json +0 -0
  68. {isar-1.16.10 → isar-1.16.11}/src/isar/config/predefined_mission_definition/__init__.py +0 -0
  69. {isar-1.16.10 → isar-1.16.11}/src/isar/config/predefined_mission_definition/default_mission.json +0 -0
  70. {isar-1.16.10 → isar-1.16.11}/src/isar/config/predefined_mission_definition/default_turtlebot.json +0 -0
  71. {isar-1.16.10 → isar-1.16.11}/src/isar/config/predefined_missions/__init__.py +0 -0
  72. {isar-1.16.10 → isar-1.16.11}/src/isar/config/predefined_missions/default.json +0 -0
  73. {isar-1.16.10 → isar-1.16.11}/src/isar/config/predefined_missions/default_turtlebot.json +0 -0
  74. {isar-1.16.10 → isar-1.16.11}/src/isar/config/predefined_poses/__init__.py +0 -0
  75. {isar-1.16.10 → isar-1.16.11}/src/isar/config/predefined_poses/predefined_poses.py +0 -0
  76. {isar-1.16.10 → isar-1.16.11}/src/isar/config/settings.env +0 -0
  77. {isar-1.16.10 → isar-1.16.11}/src/isar/config/settings.py +0 -0
  78. {isar-1.16.10 → isar-1.16.11}/src/isar/mission_planner/__init__.py +0 -0
  79. {isar-1.16.10 → isar-1.16.11}/src/isar/mission_planner/local_planner.py +0 -0
  80. {isar-1.16.10 → isar-1.16.11}/src/isar/mission_planner/mission_planner_interface.py +0 -0
  81. {isar-1.16.10 → isar-1.16.11}/src/isar/mission_planner/sequential_task_selector.py +0 -0
  82. {isar-1.16.10 → isar-1.16.11}/src/isar/mission_planner/task_selector_interface.py +0 -0
  83. {isar-1.16.10 → isar-1.16.11}/src/isar/models/__init__.py +0 -0
  84. {isar-1.16.10 → isar-1.16.11}/src/isar/models/communication/__init__.py +0 -0
  85. {isar-1.16.10 → isar-1.16.11}/src/isar/models/communication/message.py +0 -0
  86. {isar-1.16.10 → isar-1.16.11}/src/isar/models/communication/queues/__init__.py +0 -0
  87. {isar-1.16.10 → isar-1.16.11}/src/isar/models/communication/queues/queue_io.py +0 -0
  88. {isar-1.16.10 → isar-1.16.11}/src/isar/models/communication/queues/queue_timeout_error.py +0 -0
  89. {isar-1.16.10 → isar-1.16.11}/src/isar/models/communication/queues/queues.py +0 -0
  90. {isar-1.16.10 → isar-1.16.11}/src/isar/models/communication/queues/status_queue.py +0 -0
  91. {isar-1.16.10 → isar-1.16.11}/src/isar/models/mission_metadata/__init__.py +0 -0
  92. {isar-1.16.10 → isar-1.16.11}/src/isar/modules.py +0 -0
  93. {isar-1.16.10 → isar-1.16.11}/src/isar/services/__init__.py +0 -0
  94. {isar-1.16.10 → isar-1.16.11}/src/isar/services/auth/__init__.py +0 -0
  95. {isar-1.16.10 → isar-1.16.11}/src/isar/services/auth/azure_credentials.py +0 -0
  96. {isar-1.16.10 → isar-1.16.11}/src/isar/services/readers/__init__.py +0 -0
  97. {isar-1.16.10 → isar-1.16.11}/src/isar/services/readers/base_reader.py +0 -0
  98. {isar-1.16.10 → isar-1.16.11}/src/isar/services/service_connections/__init__.py +0 -0
  99. {isar-1.16.10 → isar-1.16.11}/src/isar/services/service_connections/mqtt/__init__.py +0 -0
  100. {isar-1.16.10 → isar-1.16.11}/src/isar/services/service_connections/mqtt/robot_heartbeat_publisher.py +0 -0
  101. {isar-1.16.10 → isar-1.16.11}/src/isar/services/service_connections/mqtt/robot_info_publisher.py +0 -0
  102. {isar-1.16.10 → isar-1.16.11}/src/isar/services/service_connections/request_handler.py +0 -0
  103. {isar-1.16.10 → isar-1.16.11}/src/isar/services/service_connections/stid/__init__.py +0 -0
  104. {isar-1.16.10 → isar-1.16.11}/src/isar/services/utilities/__init__.py +0 -0
  105. {isar-1.16.10 → isar-1.16.11}/src/isar/services/utilities/queue_utilities.py +0 -0
  106. {isar-1.16.10 → isar-1.16.11}/src/isar/services/utilities/scheduling_utilities.py +0 -0
  107. {isar-1.16.10 → isar-1.16.11}/src/isar/services/utilities/threaded_request.py +0 -0
  108. {isar-1.16.10 → isar-1.16.11}/src/isar/state_machine/__init__.py +0 -0
  109. {isar-1.16.10 → isar-1.16.11}/src/isar/state_machine/states/__init__.py +0 -0
  110. {isar-1.16.10 → isar-1.16.11}/src/isar/state_machine/states/initialize.py +0 -0
  111. {isar-1.16.10 → isar-1.16.11}/src/isar/state_machine/states/initiate.py +0 -0
  112. {isar-1.16.10 → isar-1.16.11}/src/isar/state_machine/states/off.py +0 -0
  113. {isar-1.16.10 → isar-1.16.11}/src/isar/state_machine/states/paused.py +0 -0
  114. {isar-1.16.10 → isar-1.16.11}/src/isar/state_machine/states/stop.py +0 -0
  115. {isar-1.16.10 → isar-1.16.11}/src/isar/state_machine/states_enum.py +0 -0
  116. {isar-1.16.10 → isar-1.16.11}/src/isar/storage/__init__.py +0 -0
  117. {isar-1.16.10 → isar-1.16.11}/src/isar/storage/blob_storage.py +0 -0
  118. {isar-1.16.10 → isar-1.16.11}/src/isar/storage/local_storage.py +0 -0
  119. {isar-1.16.10 → isar-1.16.11}/src/isar/storage/storage_interface.py +0 -0
  120. {isar-1.16.10 → isar-1.16.11}/src/isar/storage/uploader.py +0 -0
  121. {isar-1.16.10 → isar-1.16.11}/src/isar.egg-info/dependency_links.txt +0 -0
  122. {isar-1.16.10 → isar-1.16.11}/src/isar.egg-info/requires.txt +0 -0
  123. {isar-1.16.10 → isar-1.16.11}/src/isar.egg-info/top_level.txt +0 -0
  124. {isar-1.16.10 → isar-1.16.11}/src/robot_interface/__init__.py +0 -0
  125. {isar-1.16.10 → isar-1.16.11}/src/robot_interface/models/__init__.py +0 -0
  126. {isar-1.16.10 → isar-1.16.11}/src/robot_interface/models/exceptions/__init__.py +0 -0
  127. {isar-1.16.10 → isar-1.16.11}/src/robot_interface/models/exceptions/robot_exceptions.py +0 -0
  128. {isar-1.16.10 → isar-1.16.11}/src/robot_interface/models/initialize/__init__.py +0 -0
  129. {isar-1.16.10 → isar-1.16.11}/src/robot_interface/models/initialize/initialize_params.py +0 -0
  130. {isar-1.16.10 → isar-1.16.11}/src/robot_interface/models/inspection/__init__.py +0 -0
  131. {isar-1.16.10 → isar-1.16.11}/src/robot_interface/models/inspection/inspection.py +0 -0
  132. {isar-1.16.10 → isar-1.16.11}/src/robot_interface/models/mission/__init__.py +0 -0
  133. {isar-1.16.10 → isar-1.16.11}/src/robot_interface/models/mission/mission.py +0 -0
  134. {isar-1.16.10 → isar-1.16.11}/src/robot_interface/models/mission/status.py +0 -0
  135. {isar-1.16.10 → isar-1.16.11}/src/robot_interface/models/mission/step.py +0 -0
  136. {isar-1.16.10 → isar-1.16.11}/src/robot_interface/models/mission/task.py +0 -0
  137. {isar-1.16.10 → isar-1.16.11}/src/robot_interface/models/robots/__init__.py +0 -0
  138. {isar-1.16.10 → isar-1.16.11}/src/robot_interface/models/robots/robot_model.py +0 -0
  139. {isar-1.16.10 → isar-1.16.11}/src/robot_interface/robot_interface.py +0 -0
  140. {isar-1.16.10 → isar-1.16.11}/src/robot_interface/telemetry/__init__.py +0 -0
  141. {isar-1.16.10 → isar-1.16.11}/src/robot_interface/telemetry/mqtt_client.py +0 -0
  142. {isar-1.16.10 → isar-1.16.11}/src/robot_interface/telemetry/payloads.py +0 -0
  143. {isar-1.16.10 → isar-1.16.11}/src/robot_interface/test_robot_interface.py +0 -0
  144. {isar-1.16.10 → isar-1.16.11}/src/robot_interface/utilities/__init__.py +0 -0
  145. {isar-1.16.10 → isar-1.16.11}/src/robot_interface/utilities/json_service.py +0 -0
  146. {isar-1.16.10 → isar-1.16.11}/src/robot_interface/utilities/uuid_string_factory.py +0 -0
  147. {isar-1.16.10 → isar-1.16.11}/tests/__init__.py +0 -0
  148. {isar-1.16.10 → isar-1.16.11}/tests/conftest.py +0 -0
  149. {isar-1.16.10 → isar-1.16.11}/tests/integration/__init__.py +0 -0
  150. {isar-1.16.10 → isar-1.16.11}/tests/integration/turtlebot/__init__.py +0 -0
  151. {isar-1.16.10 → isar-1.16.11}/tests/integration/turtlebot/config/__init__.py +0 -0
  152. {isar-1.16.10 → isar-1.16.11}/tests/integration/turtlebot/config/maps/__init__.py +0 -0
  153. {isar-1.16.10 → isar-1.16.11}/tests/integration/turtlebot/config/maps/turtleworld.json +0 -0
  154. {isar-1.16.10 → isar-1.16.11}/tests/integration/turtlebot/config/missions/__init__.py +0 -0
  155. {isar-1.16.10 → isar-1.16.11}/tests/integration/turtlebot/config/missions/default.json +0 -0
  156. {isar-1.16.10 → isar-1.16.11}/tests/integration/turtlebot/test_successful_mission.py +0 -0
  157. {isar-1.16.10 → isar-1.16.11}/tests/isar/__init__.py +0 -0
  158. {isar-1.16.10 → isar-1.16.11}/tests/isar/apis/__init__.py +0 -0
  159. {isar-1.16.10 → isar-1.16.11}/tests/isar/apis/scheduler/__init__.py +0 -0
  160. {isar-1.16.10 → isar-1.16.11}/tests/isar/apis/scheduler/test_scheduler_router.py +0 -0
  161. {isar-1.16.10 → isar-1.16.11}/tests/isar/apis/security/__init__.py +0 -0
  162. {isar-1.16.10 → isar-1.16.11}/tests/isar/apis/security/test_authentication.py +0 -0
  163. {isar-1.16.10 → isar-1.16.11}/tests/isar/mission/__init__.py +0 -0
  164. {isar-1.16.10 → isar-1.16.11}/tests/isar/mission/test_mission.py +0 -0
  165. {isar-1.16.10 → isar-1.16.11}/tests/isar/models/__init__.py +0 -0
  166. {isar-1.16.10 → isar-1.16.11}/tests/isar/models/communication/__init__.py +0 -0
  167. {isar-1.16.10 → isar-1.16.11}/tests/isar/models/communication/test_queues.py +0 -0
  168. {isar-1.16.10 → isar-1.16.11}/tests/isar/models/example_mission_definition.json +0 -0
  169. {isar-1.16.10 → isar-1.16.11}/tests/isar/models/test_start_mission_definition.py +0 -0
  170. {isar-1.16.10 → isar-1.16.11}/tests/isar/services/__init__.py +0 -0
  171. {isar-1.16.10 → isar-1.16.11}/tests/isar/services/readers/__init__.py +0 -0
  172. {isar-1.16.10 → isar-1.16.11}/tests/isar/services/readers/test_base_reader.py +0 -0
  173. {isar-1.16.10 → isar-1.16.11}/tests/isar/services/readers/test_mission_reader.py +0 -0
  174. {isar-1.16.10 → isar-1.16.11}/tests/isar/services/service_connections/__init__.py +0 -0
  175. {isar-1.16.10 → isar-1.16.11}/tests/isar/services/service_connections/echo/__init__.py +0 -0
  176. {isar-1.16.10 → isar-1.16.11}/tests/isar/services/service_connections/test_base_request_handler.py +0 -0
  177. {isar-1.16.10 → isar-1.16.11}/tests/isar/services/utilities/__init__.py +0 -0
  178. {isar-1.16.10 → isar-1.16.11}/tests/isar/services/utilities/test_queue_utilities.py +0 -0
  179. {isar-1.16.10 → isar-1.16.11}/tests/isar/services/utilities/test_scheduling_utilities.py +0 -0
  180. {isar-1.16.10 → isar-1.16.11}/tests/isar/state_machine/__init__.py +0 -0
  181. {isar-1.16.10 → isar-1.16.11}/tests/isar/state_machine/states/__init__.py +0 -0
  182. {isar-1.16.10 → isar-1.16.11}/tests/isar/state_machine/states/test_monitor.py +0 -0
  183. {isar-1.16.10 → isar-1.16.11}/tests/isar/state_machine/test_state_machine.py +0 -0
  184. {isar-1.16.10 → isar-1.16.11}/tests/isar/storage/test_blob_storage.py +0 -0
  185. {isar-1.16.10 → isar-1.16.11}/tests/isar/storage/test_uploader.py +0 -0
  186. {isar-1.16.10 → isar-1.16.11}/tests/mocks/__init__.py +0 -0
  187. {isar-1.16.10 → isar-1.16.11}/tests/mocks/blob_storage.py +0 -0
  188. {isar-1.16.10 → isar-1.16.11}/tests/mocks/mission_definition.py +0 -0
  189. {isar-1.16.10 → isar-1.16.11}/tests/mocks/mqtt_client.py +0 -0
  190. {isar-1.16.10 → isar-1.16.11}/tests/mocks/pose.py +0 -0
  191. {isar-1.16.10 → isar-1.16.11}/tests/mocks/request.py +0 -0
  192. {isar-1.16.10 → isar-1.16.11}/tests/mocks/robot_interface.py +0 -0
  193. {isar-1.16.10 → isar-1.16.11}/tests/mocks/status.py +0 -0
  194. {isar-1.16.10 → isar-1.16.11}/tests/mocks/step.py +0 -0
  195. {isar-1.16.10 → isar-1.16.11}/tests/mocks/task.py +0 -0
  196. {isar-1.16.10 → isar-1.16.11}/tests/mocks/token.py +0 -0
  197. {isar-1.16.10 → isar-1.16.11}/tests/test_data/test_json_file.json +0 -0
  198. {isar-1.16.10 → isar-1.16.11}/tests/test_data/test_map_config/test_map_config.json +0 -0
  199. {isar-1.16.10 → isar-1.16.11}/tests/test_data/test_mission_not_working.json +0 -0
  200. {isar-1.16.10 → isar-1.16.11}/tests/test_data/test_mission_working.json +0 -0
  201. {isar-1.16.10 → isar-1.16.11}/tests/test_data/test_mission_working_no_tasks.json +0 -0
  202. {isar-1.16.10 → isar-1.16.11}/tests/test_data/test_thermal_image_mission.json +0 -0
  203. {isar-1.16.10 → isar-1.16.11}/tests/test_modules.py +0 -0
@@ -1,13 +1,13 @@
1
- FROM python:3.10-slim
1
+ FROM python:3.10-slim AS builder
2
2
 
3
- WORKDIR /app
3
+ RUN apt-get update
4
+ RUN apt-get install -y --no-install-recommends build-essential gcc
5
+ RUN python -m pip install --upgrade pip
4
6
 
5
7
  ENV VIRTUAL_ENV=/venv
6
8
  RUN python -m venv --copies $VIRTUAL_ENV
7
9
  ENV PATH="$VIRTUAL_ENV/bin:$PATH"
8
10
 
9
- RUN python -m pip install --upgrade pip
10
-
11
11
  # Install dependencies before ISAR to cache pip installation
12
12
  RUN mkdir -p src
13
13
  COPY setup.py README.md ./
@@ -20,6 +20,12 @@ COPY . .
20
20
 
21
21
  RUN pip install .
22
22
 
23
+ FROM python:3.10-slim
24
+ COPY --from=builder $VIRTUAL_ENV $VIRTUAL_ENV
25
+ ENV PATH="$VIRTUAL_ENV/bin:$PATH"
26
+
27
+ WORKDIR /app
28
+
23
29
  EXPOSE 3000
24
30
 
25
31
  # Env variable for ISAR to know it is running in docker
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: isar
3
- Version: 1.16.10
3
+ Version: 1.16.11
4
4
  Summary: Integration and Supervisory control of Autonomous Robots
5
5
  Home-page: https://github.com/equinor/isar
6
6
  Author: Equinor ASA
@@ -246,12 +246,6 @@ make docs
246
246
 
247
247
  The documentation can now be viewed at `docs/build/html/index.html`.
248
248
 
249
- ### Contributing
250
-
251
- We welcome all kinds of contributions, including code, bug reports, issues, feature requests, and documentation. The
252
- preferred way of submitting a contribution is to either make an [issue](https://github.com/equinor/isar/issues) on
253
- GitHub or by forking the project on GitHub and making a pull requests.
254
-
255
249
  ## Components
256
250
 
257
251
  The system consists of two main components.
@@ -420,3 +414,9 @@ ISAR_MQTT_PASSWORD
420
414
  ```
421
415
 
422
416
  If not specified the password will default to an empty string.
417
+
418
+ # Contributions
419
+
420
+ Equinor welcomes all kinds of contributions, including code, bug reports, issues, feature requests, and documentation
421
+ Please initiate your contribution by creating an [issue](https://github.com/equinor/isar/issues) or by forking the
422
+ project and making a pull requests. Commit messages shall be written according to [this guide](https://cbea.msgit-commit/).
@@ -192,12 +192,6 @@ make docs
192
192
 
193
193
  The documentation can now be viewed at `docs/build/html/index.html`.
194
194
 
195
- ### Contributing
196
-
197
- We welcome all kinds of contributions, including code, bug reports, issues, feature requests, and documentation. The
198
- preferred way of submitting a contribution is to either make an [issue](https://github.com/equinor/isar/issues) on
199
- GitHub or by forking the project on GitHub and making a pull requests.
200
-
201
195
  ## Components
202
196
 
203
197
  The system consists of two main components.
@@ -366,3 +360,9 @@ ISAR_MQTT_PASSWORD
366
360
  ```
367
361
 
368
362
  If not specified the password will default to an empty string.
363
+
364
+ # Contributions
365
+
366
+ Equinor welcomes all kinds of contributions, including code, bug reports, issues, feature requests, and documentation
367
+ Please initiate your contribution by creating an [issue](https://github.com/equinor/isar/issues) or by forking the
368
+ project and making a pull requests. Commit messages shall be written according to [this guide](https://cbea.msgit-commit/).
@@ -54,7 +54,9 @@ def configure_azure_handler(log_config: dict, keyvault: Keyvault) -> logging.Han
54
54
  "application-insights-connection-string"
55
55
  ).value
56
56
  except KeyvaultError:
57
- message: str = f"CRITICAL ERROR: Missing connection string for Application Insights in key vault '{keyvault.name}'."
57
+ message: str = (
58
+ f"CRITICAL ERROR: Missing connection string for Application Insights in key vault '{keyvault.name}'."
59
+ )
58
60
  print(f"\n{message} \n")
59
61
  raise ConfigurationError(message)
60
62
 
@@ -0,0 +1,51 @@
1
+ {
2
+ "mission_definition": {
3
+ "tasks": [
4
+ {
5
+ "pose": {
6
+ "position": {
7
+ "x": -3.2629,
8
+ "y": 3.0795,
9
+ "z": 0.0055,
10
+ "frame_name": "robot"
11
+ },
12
+ "orientation": {
13
+ "x": 0,
14
+ "y": 0,
15
+ "z": 0,
16
+ "w": 1,
17
+ "frame_name": "robot"
18
+ },
19
+ "frame_name": "robot"
20
+ },
21
+ "tag": "equinor_exR_tag_simulator",
22
+ "inspections": [
23
+ {
24
+ "type": "Image",
25
+ "inspection_target": {
26
+ "x": 6.6550,
27
+ "y": 3.7987,
28
+ "z": 0.6145,
29
+ "frame_name": "robot"
30
+ },
31
+ "analysis_types": "CarSeal, Rust",
32
+ "metadata": {
33
+ "zoom": "2x"
34
+ }
35
+ },
36
+ {
37
+ "type": "ThermalVideo",
38
+ "inspection_target": {
39
+ "x": 6.6550,
40
+ "y": 3.7987,
41
+ "z": 0.6145,
42
+ "frame_name": "robot"
43
+ },
44
+ "analysis_types": "GasDetection",
45
+ "duration": 10
46
+ }
47
+ ]
48
+ }
49
+ ]
50
+ }
51
+ }
@@ -53,7 +53,7 @@ class MqttClient(MqttClientInterface):
53
53
 
54
54
  self.port: int = settings.MQTT_PORT
55
55
 
56
- self.client: Client = Client()
56
+ self.client: Client = Client(mqtt.CallbackAPIVersion.VERSION1)
57
57
 
58
58
  self.client.enable_logger(logger=self.logger)
59
59
 
@@ -72,15 +72,21 @@ class RobotStatusPublisher:
72
72
  robot_status=combined_status,
73
73
  previous_robot_status=previous_robot_status,
74
74
  current_isar_state=self.state_machine.current_state,
75
- current_mission_id=self.state_machine.current_mission.id
76
- if self.state_machine.current_mission
77
- else None,
78
- current_task_id=self.state_machine.current_task.id
79
- if self.state_machine.current_task
80
- else None,
81
- current_step_id=self.state_machine.current_step.id
82
- if self.state_machine.current_step
83
- else None,
75
+ current_mission_id=(
76
+ self.state_machine.current_mission.id
77
+ if self.state_machine.current_mission
78
+ else None
79
+ ),
80
+ current_task_id=(
81
+ self.state_machine.current_task.id
82
+ if self.state_machine.current_task
83
+ else None
84
+ ),
85
+ current_step_id=(
86
+ self.state_machine.current_step.id
87
+ if self.state_machine.current_step
88
+ else None
89
+ ),
84
90
  timestamp=datetime.utcnow(),
85
91
  )
86
92
 
@@ -492,9 +492,9 @@ class StateMachine(object):
492
492
  "mission_id": self.current_mission.id if self.current_mission else None,
493
493
  "status": self.current_mission.status if self.current_mission else None,
494
494
  "error_reason": error_message.error_reason if error_message else None,
495
- "error_description": error_message.error_description
496
- if error_message
497
- else None,
495
+ "error_description": (
496
+ error_message.error_description if error_message else None
497
+ ),
498
498
  "timestamp": datetime.utcnow(),
499
499
  },
500
500
  cls=EnhancedJSONEncoder,
@@ -524,9 +524,9 @@ class StateMachine(object):
524
524
  "task_id": task.id if task else None,
525
525
  "status": task.status if task else None,
526
526
  "error_reason": error_message.error_reason if error_message else None,
527
- "error_description": error_message.error_description
528
- if error_message
529
- else None,
527
+ "error_description": (
528
+ error_message.error_description if error_message else None
529
+ ),
530
530
  "timestamp": datetime.utcnow(),
531
531
  },
532
532
  cls=EnhancedJSONEncoder,
@@ -558,9 +558,9 @@ class StateMachine(object):
558
558
  "step_type": step.__class__.__name__ if step else None,
559
559
  "status": step.status if step else None,
560
560
  "error_reason": error_message.error_reason if error_message else None,
561
- "error_description": error_message.error_description
562
- if error_message
563
- else None,
561
+ "error_description": (
562
+ error_message.error_description if error_message else None
563
+ ),
564
564
  "timestamp": datetime.utcnow(),
565
565
  },
566
566
  cls=EnhancedJSONEncoder,
@@ -25,9 +25,9 @@ class Idle(State):
25
25
 
26
26
  def _run(self) -> None:
27
27
  while True:
28
- start_mission: Optional[
29
- StartMissionMessage
30
- ] = self.state_machine.should_start_mission()
28
+ start_mission: Optional[StartMissionMessage] = (
29
+ self.state_machine.should_start_mission()
30
+ )
31
31
  if start_mission:
32
32
  self.state_machine.start_mission(
33
33
  mission=start_mission.mission,
@@ -68,9 +68,9 @@ class Monitor(State):
68
68
  )
69
69
 
70
70
  try:
71
- status: Union[
72
- StepStatus, MissionStatus
73
- ] = self.step_status_thread.get_output()
71
+ status: Union[StepStatus, MissionStatus] = (
72
+ self.step_status_thread.get_output()
73
+ )
74
74
  except ThreadedRequestNotFinishedError:
75
75
  time.sleep(self.state_machine.sleep_time)
76
76
  continue
@@ -145,9 +145,9 @@ class Monitor(State):
145
145
  self, mission: Mission, current_step: InspectionStep
146
146
  ) -> None:
147
147
  try:
148
- inspections: Sequence[
149
- Inspection
150
- ] = self.state_machine.robot.get_inspections(step=current_step)
148
+ inspections: Sequence[Inspection] = (
149
+ self.state_machine.robot.get_inspections(step=current_step)
150
+ )
151
151
 
152
152
  except (RobotRetrieveInspectionException, RobotException) as e:
153
153
  self._set_error_message(e)
@@ -122,16 +122,18 @@ class SlimmStorage(StorageInterface):
122
122
  "ImageMetadata.CameraOrientation2": str(array_of_orientation[1]),
123
123
  "ImageMetadata.CameraOrientation3": str(array_of_orientation[2]),
124
124
  "ImageMetadata.CameraOrientation4": str(array_of_orientation[3]),
125
- "ImageMetadata.AnalysisMethods": inspection.metadata.additional[
126
- "analysis_type"
127
- ]
128
- if inspection.metadata.additional
129
- and inspection.metadata.additional["analysis_type"]
130
- else "N/A",
125
+ "ImageMetadata.AnalysisMethods": (
126
+ inspection.metadata.additional["analysis_type"]
127
+ if inspection.metadata.additional
128
+ and inspection.metadata.additional["analysis_type"]
129
+ else "N/A"
130
+ ),
131
131
  "ImageMetadata.Description": str(inspection.metadata.additional),
132
- "ImageMetadata.FunctionalLocation": inspection.metadata.tag_id # noqa: E501
133
- if inspection.metadata.tag_id
134
- else "N/A",
132
+ "ImageMetadata.FunctionalLocation": (
133
+ inspection.metadata.tag_id # noqa: E501
134
+ if inspection.metadata.tag_id
135
+ else "N/A"
136
+ ),
135
137
  "Filename": filename,
136
138
  "AttachedFile": (filename, inspection.data),
137
139
  }
@@ -170,16 +172,18 @@ class SlimmStorage(StorageInterface):
170
172
  "VideoMetadata.CameraOrientation2": str(array_of_orientation[1]),
171
173
  "VideoMetadata.CameraOrientation3": str(array_of_orientation[2]),
172
174
  "VideoMetadata.CameraOrientation4": str(array_of_orientation[3]),
173
- "VideoMetadata.AnalysisMethods": inspection.metadata.additional[
174
- "analysis_type"
175
- ]
176
- if inspection.metadata.additional
177
- and inspection.metadata.additional["analysis_type"]
178
- else "N/A",
175
+ "VideoMetadata.AnalysisMethods": (
176
+ inspection.metadata.additional["analysis_type"]
177
+ if inspection.metadata.additional
178
+ and inspection.metadata.additional["analysis_type"]
179
+ else "N/A"
180
+ ),
179
181
  "VideoMetadata.Description": str(inspection.metadata.additional),
180
- "VideoMetadata.FunctionalLocation": inspection.metadata.tag_id # noqa: E501
181
- if inspection.metadata.tag_id
182
- else "N/A",
182
+ "VideoMetadata.FunctionalLocation": (
183
+ inspection.metadata.tag_id # noqa: E501
184
+ if inspection.metadata.tag_id
185
+ else "N/A"
186
+ ),
183
187
  "Filename": filename,
184
188
  "AttachedFile": (filename, inspection.data),
185
189
  }
@@ -40,9 +40,11 @@ def construct_metadata_file(
40
40
  "mission_date": datetime.utcnow().date(),
41
41
  "isar_id": settings.ISAR_ID,
42
42
  "robot_name": settings.ROBOT_NAME,
43
- "analysis_type": inspection.metadata.additional["analysis_type"]
44
- if inspection.metadata.additional
45
- else "N/A",
43
+ "analysis_type": (
44
+ inspection.metadata.additional["analysis_type"]
45
+ if inspection.metadata.additional
46
+ else "N/A"
47
+ ),
46
48
  },
47
49
  "data": [
48
50
  {
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: isar
3
- Version: 1.16.10
3
+ Version: 1.16.11
4
4
  Summary: Integration and Supervisory control of Autonomous Robots
5
5
  Home-page: https://github.com/equinor/isar
6
6
  Author: Equinor ASA
@@ -246,12 +246,6 @@ make docs
246
246
 
247
247
  The documentation can now be viewed at `docs/build/html/index.html`.
248
248
 
249
- ### Contributing
250
-
251
- We welcome all kinds of contributions, including code, bug reports, issues, feature requests, and documentation. The
252
- preferred way of submitting a contribution is to either make an [issue](https://github.com/equinor/isar/issues) on
253
- GitHub or by forking the project on GitHub and making a pull requests.
254
-
255
249
  ## Components
256
250
 
257
251
  The system consists of two main components.
@@ -420,3 +414,9 @@ ISAR_MQTT_PASSWORD
420
414
  ```
421
415
 
422
416
  If not specified the password will default to an empty string.
417
+
418
+ # Contributions
419
+
420
+ Equinor welcomes all kinds of contributions, including code, bug reports, issues, feature requests, and documentation
421
+ Please initiate your contribution by creating an [issue](https://github.com/equinor/isar/issues) or by forking the
422
+ project and making a pull requests. Commit messages shall be written according to [this guide](https://cbea.msgit-commit/).
@@ -63,6 +63,7 @@ src/isar/config/maps/klab_compressor.json
63
63
  src/isar/config/maps/klab_turtlebot.json
64
64
  src/isar/config/maps/turtleworld.json
65
65
  src/isar/config/predefined_mission_definition/__init__.py
66
+ src/isar/config/predefined_mission_definition/default_exr.json
66
67
  src/isar/config/predefined_mission_definition/default_mission.json
67
68
  src/isar/config/predefined_mission_definition/default_turtlebot.json
68
69
  src/isar/config/predefined_missions/__init__.py
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