isar 1.25.7__tar.gz → 1.25.9__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.

Potentially problematic release.


This version of isar might be problematic. Click here for more details.

Files changed (204) hide show
  1. {isar-1.25.7 → isar-1.25.9}/PKG-INFO +1 -1
  2. {isar-1.25.7 → isar-1.25.9}/src/isar/apis/api.py +0 -38
  3. {isar-1.25.7 → isar-1.25.9}/src/isar/apis/models/start_mission_definition.py +0 -20
  4. {isar-1.25.7 → isar-1.25.9}/src/isar/apis/schedule/scheduling_controller.py +0 -55
  5. {isar-1.25.7 → isar-1.25.9}/src/isar/state_machine/state_machine.py +0 -4
  6. {isar-1.25.7 → isar-1.25.9}/src/isar/state_machine/states/initialize.py +1 -2
  7. {isar-1.25.7 → isar-1.25.9}/src/isar.egg-info/PKG-INFO +1 -1
  8. {isar-1.25.7 → isar-1.25.9}/src/isar.egg-info/SOURCES.txt +0 -1
  9. {isar-1.25.7 → isar-1.25.9}/src/robot_interface/models/exceptions/robot_exceptions.py +0 -24
  10. {isar-1.25.7 → isar-1.25.9}/src/robot_interface/models/mission/mission.py +0 -2
  11. {isar-1.25.7 → isar-1.25.9}/src/robot_interface/models/mission/task.py +0 -22
  12. {isar-1.25.7 → isar-1.25.9}/src/robot_interface/robot_interface.py +1 -6
  13. {isar-1.25.7 → isar-1.25.9}/tests/isar/apis/scheduler/test_scheduler_router.py +0 -28
  14. {isar-1.25.7 → isar-1.25.9}/tests/isar/apis/security/test_authentication.py +0 -6
  15. {isar-1.25.7 → isar-1.25.9}/tests/mocks/robot_interface.py +1 -2
  16. isar-1.25.7/src/robot_interface/models/initialize/initialize_params.py +0 -9
  17. {isar-1.25.7 → isar-1.25.9}/.dockerignore +0 -0
  18. {isar-1.25.7 → isar-1.25.9}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
  19. {isar-1.25.7 → isar-1.25.9}/.github/ISSUE_TEMPLATE/feature.md +0 -0
  20. {isar-1.25.7 → isar-1.25.9}/.github/ISSUE_TEMPLATE/improvement.md +0 -0
  21. {isar-1.25.7 → isar-1.25.9}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
  22. {isar-1.25.7 → isar-1.25.9}/.github/release.yml +0 -0
  23. {isar-1.25.7 → isar-1.25.9}/.github/workflows/compile_requirements.yml +0 -0
  24. {isar-1.25.7 → isar-1.25.9}/.github/workflows/project_automations.yml +0 -0
  25. {isar-1.25.7 → isar-1.25.9}/.github/workflows/publish_isar_base_image.yml +0 -0
  26. {isar-1.25.7 → isar-1.25.9}/.github/workflows/pythonpackage.yml +0 -0
  27. {isar-1.25.7 → isar-1.25.9}/.github/workflows/pythonpublish.yml +0 -0
  28. {isar-1.25.7 → isar-1.25.9}/.github/workflows/stale.yml +0 -0
  29. {isar-1.25.7 → isar-1.25.9}/.gitignore +0 -0
  30. {isar-1.25.7 → isar-1.25.9}/.pre-commit-config.yaml +0 -0
  31. {isar-1.25.7 → isar-1.25.9}/Dockerfile +0 -0
  32. {isar-1.25.7 → isar-1.25.9}/LICENSE +0 -0
  33. {isar-1.25.7 → isar-1.25.9}/README.md +0 -0
  34. {isar-1.25.7 → isar-1.25.9}/SECURITY.md +0 -0
  35. {isar-1.25.7 → isar-1.25.9}/docker-compose-turtlebot.yml +0 -0
  36. {isar-1.25.7 → isar-1.25.9}/docker-compose.yml +0 -0
  37. {isar-1.25.7 → isar-1.25.9}/docs/Makefile +0 -0
  38. {isar-1.25.7 → isar-1.25.9}/docs/make.bat +0 -0
  39. {isar-1.25.7 → isar-1.25.9}/docs/rst_processing.py +0 -0
  40. {isar-1.25.7 → isar-1.25.9}/docs/source/conf.py +0 -0
  41. {isar-1.25.7 → isar-1.25.9}/docs/source/index.rst +0 -0
  42. {isar-1.25.7 → isar-1.25.9}/docs/source/readme_link.md +0 -0
  43. {isar-1.25.7 → isar-1.25.9}/docs/state_machine_diagram.png +0 -0
  44. {isar-1.25.7 → isar-1.25.9}/main.py +0 -0
  45. {isar-1.25.7 → isar-1.25.9}/pyproject.toml +0 -0
  46. {isar-1.25.7 → isar-1.25.9}/radixconfig.yml +0 -0
  47. {isar-1.25.7 → isar-1.25.9}/requirements.txt +0 -0
  48. {isar-1.25.7 → isar-1.25.9}/setup.cfg +0 -0
  49. {isar-1.25.7 → isar-1.25.9}/src/isar/__init__.py +0 -0
  50. {isar-1.25.7 → isar-1.25.9}/src/isar/apis/__init__.py +0 -0
  51. {isar-1.25.7 → isar-1.25.9}/src/isar/apis/models/__init__.py +0 -0
  52. {isar-1.25.7 → isar-1.25.9}/src/isar/apis/models/models.py +0 -0
  53. {isar-1.25.7 → isar-1.25.9}/src/isar/apis/robot_control/robot_controller.py +0 -0
  54. {isar-1.25.7 → isar-1.25.9}/src/isar/apis/schedule/__init__.py +0 -0
  55. {isar-1.25.7 → isar-1.25.9}/src/isar/apis/security/__init__.py +0 -0
  56. {isar-1.25.7 → isar-1.25.9}/src/isar/apis/security/authentication.py +0 -0
  57. {isar-1.25.7 → isar-1.25.9}/src/isar/config/__init__.py +0 -0
  58. {isar-1.25.7 → isar-1.25.9}/src/isar/config/certs/ca-cert.pem +0 -0
  59. {isar-1.25.7 → isar-1.25.9}/src/isar/config/configuration_error.py +0 -0
  60. {isar-1.25.7 → isar-1.25.9}/src/isar/config/keyvault/__init__.py +0 -0
  61. {isar-1.25.7 → isar-1.25.9}/src/isar/config/keyvault/keyvault_error.py +0 -0
  62. {isar-1.25.7 → isar-1.25.9}/src/isar/config/keyvault/keyvault_service.py +0 -0
  63. {isar-1.25.7 → isar-1.25.9}/src/isar/config/log.py +0 -0
  64. {isar-1.25.7 → isar-1.25.9}/src/isar/config/logging.conf +0 -0
  65. {isar-1.25.7 → isar-1.25.9}/src/isar/config/maps/JSP1_intermediate_deck.json +0 -0
  66. {isar-1.25.7 → isar-1.25.9}/src/isar/config/maps/JSP1_weather_deck.json +0 -0
  67. {isar-1.25.7 → isar-1.25.9}/src/isar/config/maps/default_map.json +0 -0
  68. {isar-1.25.7 → isar-1.25.9}/src/isar/config/maps/klab_b.json +0 -0
  69. {isar-1.25.7 → isar-1.25.9}/src/isar/config/maps/klab_compressor.json +0 -0
  70. {isar-1.25.7 → isar-1.25.9}/src/isar/config/maps/klab_turtlebot.json +0 -0
  71. {isar-1.25.7 → isar-1.25.9}/src/isar/config/maps/turtleworld.json +0 -0
  72. {isar-1.25.7 → isar-1.25.9}/src/isar/config/predefined_mission_definition/__init__.py +0 -0
  73. {isar-1.25.7 → isar-1.25.9}/src/isar/config/predefined_mission_definition/default_exr.json +0 -0
  74. {isar-1.25.7 → isar-1.25.9}/src/isar/config/predefined_mission_definition/default_mission.json +0 -0
  75. {isar-1.25.7 → isar-1.25.9}/src/isar/config/predefined_mission_definition/default_turtlebot.json +0 -0
  76. {isar-1.25.7 → isar-1.25.9}/src/isar/config/predefined_missions/__init__.py +0 -0
  77. {isar-1.25.7 → isar-1.25.9}/src/isar/config/predefined_missions/default.json +0 -0
  78. {isar-1.25.7 → isar-1.25.9}/src/isar/config/predefined_missions/default_turtlebot.json +0 -0
  79. {isar-1.25.7 → isar-1.25.9}/src/isar/config/settings.env +0 -0
  80. {isar-1.25.7 → isar-1.25.9}/src/isar/config/settings.py +0 -0
  81. {isar-1.25.7 → isar-1.25.9}/src/isar/mission_planner/__init__.py +0 -0
  82. {isar-1.25.7 → isar-1.25.9}/src/isar/mission_planner/local_planner.py +0 -0
  83. {isar-1.25.7 → isar-1.25.9}/src/isar/mission_planner/mission_planner_interface.py +0 -0
  84. {isar-1.25.7 → isar-1.25.9}/src/isar/mission_planner/sequential_task_selector.py +0 -0
  85. {isar-1.25.7 → isar-1.25.9}/src/isar/mission_planner/task_selector_interface.py +0 -0
  86. {isar-1.25.7 → isar-1.25.9}/src/isar/models/__init__.py +0 -0
  87. {isar-1.25.7 → isar-1.25.9}/src/isar/models/communication/__init__.py +0 -0
  88. {isar-1.25.7 → isar-1.25.9}/src/isar/models/communication/message.py +0 -0
  89. {isar-1.25.7 → isar-1.25.9}/src/isar/models/communication/queues/__init__.py +0 -0
  90. {isar-1.25.7 → isar-1.25.9}/src/isar/models/communication/queues/queue_io.py +0 -0
  91. {isar-1.25.7 → isar-1.25.9}/src/isar/models/communication/queues/queue_timeout_error.py +0 -0
  92. {isar-1.25.7 → isar-1.25.9}/src/isar/models/communication/queues/queues.py +0 -0
  93. {isar-1.25.7 → isar-1.25.9}/src/isar/models/communication/queues/status_queue.py +0 -0
  94. {isar-1.25.7 → isar-1.25.9}/src/isar/models/mission_metadata/__init__.py +0 -0
  95. {isar-1.25.7 → isar-1.25.9}/src/isar/modules.py +0 -0
  96. {isar-1.25.7 → isar-1.25.9}/src/isar/script.py +0 -0
  97. {isar-1.25.7 → isar-1.25.9}/src/isar/services/__init__.py +0 -0
  98. {isar-1.25.7 → isar-1.25.9}/src/isar/services/auth/__init__.py +0 -0
  99. {isar-1.25.7 → isar-1.25.9}/src/isar/services/auth/azure_credentials.py +0 -0
  100. {isar-1.25.7 → isar-1.25.9}/src/isar/services/service_connections/__init__.py +0 -0
  101. {isar-1.25.7 → isar-1.25.9}/src/isar/services/service_connections/mqtt/__init__.py +0 -0
  102. {isar-1.25.7 → isar-1.25.9}/src/isar/services/service_connections/mqtt/mqtt_client.py +0 -0
  103. {isar-1.25.7 → isar-1.25.9}/src/isar/services/service_connections/mqtt/robot_heartbeat_publisher.py +0 -0
  104. {isar-1.25.7 → isar-1.25.9}/src/isar/services/service_connections/mqtt/robot_info_publisher.py +0 -0
  105. {isar-1.25.7 → isar-1.25.9}/src/isar/services/service_connections/request_handler.py +0 -0
  106. {isar-1.25.7 → isar-1.25.9}/src/isar/services/service_connections/stid/__init__.py +0 -0
  107. {isar-1.25.7 → isar-1.25.9}/src/isar/services/utilities/__init__.py +0 -0
  108. {isar-1.25.7 → isar-1.25.9}/src/isar/services/utilities/queue_utilities.py +0 -0
  109. {isar-1.25.7 → isar-1.25.9}/src/isar/services/utilities/robot_utilities.py +0 -0
  110. {isar-1.25.7 → isar-1.25.9}/src/isar/services/utilities/scheduling_utilities.py +0 -0
  111. {isar-1.25.7 → isar-1.25.9}/src/isar/services/utilities/threaded_request.py +0 -0
  112. {isar-1.25.7 → isar-1.25.9}/src/isar/state_machine/__init__.py +0 -0
  113. {isar-1.25.7 → isar-1.25.9}/src/isar/state_machine/states/__init__.py +0 -0
  114. {isar-1.25.7 → isar-1.25.9}/src/isar/state_machine/states/blocked_protective_stop.py +0 -0
  115. {isar-1.25.7 → isar-1.25.9}/src/isar/state_machine/states/idle.py +0 -0
  116. {isar-1.25.7 → isar-1.25.9}/src/isar/state_machine/states/initiate.py +0 -0
  117. {isar-1.25.7 → isar-1.25.9}/src/isar/state_machine/states/monitor.py +0 -0
  118. {isar-1.25.7 → isar-1.25.9}/src/isar/state_machine/states/off.py +0 -0
  119. {isar-1.25.7 → isar-1.25.9}/src/isar/state_machine/states/offline.py +0 -0
  120. {isar-1.25.7 → isar-1.25.9}/src/isar/state_machine/states/paused.py +0 -0
  121. {isar-1.25.7 → isar-1.25.9}/src/isar/state_machine/states/stop.py +0 -0
  122. {isar-1.25.7 → isar-1.25.9}/src/isar/state_machine/states_enum.py +0 -0
  123. {isar-1.25.7 → isar-1.25.9}/src/isar/storage/__init__.py +0 -0
  124. {isar-1.25.7 → isar-1.25.9}/src/isar/storage/blob_storage.py +0 -0
  125. {isar-1.25.7 → isar-1.25.9}/src/isar/storage/local_storage.py +0 -0
  126. {isar-1.25.7 → isar-1.25.9}/src/isar/storage/slimm_storage.py +0 -0
  127. {isar-1.25.7 → isar-1.25.9}/src/isar/storage/storage_interface.py +0 -0
  128. {isar-1.25.7 → isar-1.25.9}/src/isar/storage/uploader.py +0 -0
  129. {isar-1.25.7 → isar-1.25.9}/src/isar/storage/utilities.py +0 -0
  130. {isar-1.25.7 → isar-1.25.9}/src/isar.egg-info/dependency_links.txt +0 -0
  131. {isar-1.25.7 → isar-1.25.9}/src/isar.egg-info/entry_points.txt +0 -0
  132. {isar-1.25.7 → isar-1.25.9}/src/isar.egg-info/requires.txt +0 -0
  133. {isar-1.25.7 → isar-1.25.9}/src/isar.egg-info/top_level.txt +0 -0
  134. {isar-1.25.7 → isar-1.25.9}/src/robot_interface/__init__.py +0 -0
  135. {isar-1.25.7 → isar-1.25.9}/src/robot_interface/models/__init__.py +0 -0
  136. {isar-1.25.7 → isar-1.25.9}/src/robot_interface/models/exceptions/__init__.py +0 -0
  137. {isar-1.25.7 → isar-1.25.9}/src/robot_interface/models/initialize/__init__.py +0 -0
  138. {isar-1.25.7 → isar-1.25.9}/src/robot_interface/models/inspection/__init__.py +0 -0
  139. {isar-1.25.7 → isar-1.25.9}/src/robot_interface/models/inspection/inspection.py +0 -0
  140. {isar-1.25.7 → isar-1.25.9}/src/robot_interface/models/mission/__init__.py +0 -0
  141. {isar-1.25.7 → isar-1.25.9}/src/robot_interface/models/mission/status.py +0 -0
  142. {isar-1.25.7 → isar-1.25.9}/src/robot_interface/models/robots/__init__.py +0 -0
  143. {isar-1.25.7 → isar-1.25.9}/src/robot_interface/models/robots/battery_state.py +0 -0
  144. {isar-1.25.7 → isar-1.25.9}/src/robot_interface/models/robots/media.py +0 -0
  145. {isar-1.25.7 → isar-1.25.9}/src/robot_interface/models/robots/robot_model.py +0 -0
  146. {isar-1.25.7 → isar-1.25.9}/src/robot_interface/telemetry/__init__.py +0 -0
  147. {isar-1.25.7 → isar-1.25.9}/src/robot_interface/telemetry/mqtt_client.py +0 -0
  148. {isar-1.25.7 → isar-1.25.9}/src/robot_interface/telemetry/payloads.py +0 -0
  149. {isar-1.25.7 → isar-1.25.9}/src/robot_interface/test_robot_interface.py +0 -0
  150. {isar-1.25.7 → isar-1.25.9}/src/robot_interface/utilities/__init__.py +0 -0
  151. {isar-1.25.7 → isar-1.25.9}/src/robot_interface/utilities/json_service.py +0 -0
  152. {isar-1.25.7 → isar-1.25.9}/src/robot_interface/utilities/uuid_string_factory.py +0 -0
  153. {isar-1.25.7 → isar-1.25.9}/tests/__init__.py +0 -0
  154. {isar-1.25.7 → isar-1.25.9}/tests/conftest.py +0 -0
  155. {isar-1.25.7 → isar-1.25.9}/tests/integration/__init__.py +0 -0
  156. {isar-1.25.7 → isar-1.25.9}/tests/integration/turtlebot/__init__.py +0 -0
  157. {isar-1.25.7 → isar-1.25.9}/tests/integration/turtlebot/config/__init__.py +0 -0
  158. {isar-1.25.7 → isar-1.25.9}/tests/integration/turtlebot/config/maps/__init__.py +0 -0
  159. {isar-1.25.7 → isar-1.25.9}/tests/integration/turtlebot/config/maps/turtleworld.json +0 -0
  160. {isar-1.25.7 → isar-1.25.9}/tests/integration/turtlebot/config/missions/__init__.py +0 -0
  161. {isar-1.25.7 → isar-1.25.9}/tests/integration/turtlebot/config/missions/default.json +0 -0
  162. {isar-1.25.7 → isar-1.25.9}/tests/integration/turtlebot/test_successful_mission.py +0 -0
  163. {isar-1.25.7 → isar-1.25.9}/tests/isar/__init__.py +0 -0
  164. {isar-1.25.7 → isar-1.25.9}/tests/isar/apis/__init__.py +0 -0
  165. {isar-1.25.7 → isar-1.25.9}/tests/isar/apis/models/__init__.py +0 -0
  166. {isar-1.25.7 → isar-1.25.9}/tests/isar/apis/models/example_mission_definition.json +0 -0
  167. {isar-1.25.7 → isar-1.25.9}/tests/isar/apis/models/test_start_mission_definition.py +0 -0
  168. {isar-1.25.7 → isar-1.25.9}/tests/isar/apis/scheduler/__init__.py +0 -0
  169. {isar-1.25.7 → isar-1.25.9}/tests/isar/apis/security/__init__.py +0 -0
  170. {isar-1.25.7 → isar-1.25.9}/tests/isar/mission/__init__.py +0 -0
  171. {isar-1.25.7 → isar-1.25.9}/tests/isar/mission/test_mission.py +0 -0
  172. {isar-1.25.7 → isar-1.25.9}/tests/isar/models/__init__.py +0 -0
  173. {isar-1.25.7 → isar-1.25.9}/tests/isar/models/communication/__init__.py +0 -0
  174. {isar-1.25.7 → isar-1.25.9}/tests/isar/models/communication/test_queues.py +0 -0
  175. {isar-1.25.7 → isar-1.25.9}/tests/isar/services/__init__.py +0 -0
  176. {isar-1.25.7 → isar-1.25.9}/tests/isar/services/readers/__init__.py +0 -0
  177. {isar-1.25.7 → isar-1.25.9}/tests/isar/services/readers/test_mission_reader.py +0 -0
  178. {isar-1.25.7 → isar-1.25.9}/tests/isar/services/service_connections/__init__.py +0 -0
  179. {isar-1.25.7 → isar-1.25.9}/tests/isar/services/service_connections/echo/__init__.py +0 -0
  180. {isar-1.25.7 → isar-1.25.9}/tests/isar/services/service_connections/test_base_request_handler.py +0 -0
  181. {isar-1.25.7 → isar-1.25.9}/tests/isar/services/utilities/__init__.py +0 -0
  182. {isar-1.25.7 → isar-1.25.9}/tests/isar/services/utilities/test_queue_utilities.py +0 -0
  183. {isar-1.25.7 → isar-1.25.9}/tests/isar/services/utilities/test_scheduling_utilities.py +0 -0
  184. {isar-1.25.7 → isar-1.25.9}/tests/isar/state_machine/__init__.py +0 -0
  185. {isar-1.25.7 → isar-1.25.9}/tests/isar/state_machine/states/__init__.py +0 -0
  186. {isar-1.25.7 → isar-1.25.9}/tests/isar/state_machine/states/test_monitor.py +0 -0
  187. {isar-1.25.7 → isar-1.25.9}/tests/isar/state_machine/test_state_machine.py +0 -0
  188. {isar-1.25.7 → isar-1.25.9}/tests/isar/storage/test_blob_storage.py +0 -0
  189. {isar-1.25.7 → isar-1.25.9}/tests/isar/storage/test_uploader.py +0 -0
  190. {isar-1.25.7 → isar-1.25.9}/tests/mocks/__init__.py +0 -0
  191. {isar-1.25.7 → isar-1.25.9}/tests/mocks/blob_storage.py +0 -0
  192. {isar-1.25.7 → isar-1.25.9}/tests/mocks/mission_definition.py +0 -0
  193. {isar-1.25.7 → isar-1.25.9}/tests/mocks/mqtt_client.py +0 -0
  194. {isar-1.25.7 → isar-1.25.9}/tests/mocks/pose.py +0 -0
  195. {isar-1.25.7 → isar-1.25.9}/tests/mocks/request.py +0 -0
  196. {isar-1.25.7 → isar-1.25.9}/tests/mocks/status.py +0 -0
  197. {isar-1.25.7 → isar-1.25.9}/tests/mocks/task.py +0 -0
  198. {isar-1.25.7 → isar-1.25.9}/tests/mocks/token.py +0 -0
  199. {isar-1.25.7 → isar-1.25.9}/tests/test_data/test_map_config/test_map_config.json +0 -0
  200. {isar-1.25.7 → isar-1.25.9}/tests/test_data/test_mission_not_working.json +0 -0
  201. {isar-1.25.7 → isar-1.25.9}/tests/test_data/test_mission_working.json +0 -0
  202. {isar-1.25.7 → isar-1.25.9}/tests/test_data/test_mission_working_no_tasks.json +0 -0
  203. {isar-1.25.7 → isar-1.25.9}/tests/test_data/test_thermal_image_mission.json +0 -0
  204. {isar-1.25.7 → isar-1.25.9}/tests/test_modules.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: isar
3
- Version: 1.25.7
3
+ Version: 1.25.9
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
@@ -212,44 +212,6 @@ class API:
212
212
  },
213
213
  },
214
214
  )
215
- router.add_api_route(
216
- path="/schedule/drive-to",
217
- endpoint=self.scheduling_controller.drive_to,
218
- methods=["POST"],
219
- dependencies=[authentication_dependency],
220
- summary="Drive to the provided pose",
221
- deprecated=True,
222
- responses={
223
- HTTPStatus.OK.value: {
224
- "description": "Drive to succesfully started",
225
- },
226
- HTTPStatus.CONFLICT.value: {
227
- "description": "Conflict - Invalid command in the current state",
228
- },
229
- HTTPStatus.INTERNAL_SERVER_ERROR.value: {
230
- "description": "Internal Server Error - Current state of state machine unknown",
231
- },
232
- },
233
- )
234
- router.add_api_route(
235
- path="/schedule/start-localization-mission",
236
- endpoint=self.scheduling_controller.start_localization_mission,
237
- methods=["POST"],
238
- dependencies=[authentication_dependency],
239
- summary="Localize at the provided pose",
240
- deprecated=True,
241
- responses={
242
- HTTPStatus.OK.value: {
243
- "description": "Localization succesfully started",
244
- },
245
- HTTPStatus.CONFLICT.value: {
246
- "description": "Conflict - Invalid command in the current state",
247
- },
248
- HTTPStatus.INTERNAL_SERVER_ERROR.value: {
249
- "description": "Internal Server Error - Current state of state machine unknown",
250
- },
251
- },
252
- )
253
215
  router.add_api_route(
254
216
  path="/schedule/move_arm/{arm_pose_literal}",
255
217
  endpoint=self.scheduling_controller.start_move_arm_mission,
@@ -10,8 +10,6 @@ from isar.mission_planner.mission_planner_interface import MissionPlannerError
10
10
  from robot_interface.models.mission.mission import Mission
11
11
  from robot_interface.models.mission.task import (
12
12
  TASKS,
13
- DockingProcedure,
14
- Localize,
15
13
  RecordAudio,
16
14
  ReturnToHome,
17
15
  TakeImage,
@@ -34,9 +32,7 @@ class InspectionTypes(str, Enum):
34
32
 
35
33
  class TaskType(str, Enum):
36
34
  Inspection = "inspection"
37
- Localization = "localization"
38
35
  ReturnToHome = "return_to_home"
39
- Dock = "dock"
40
36
 
41
37
 
42
38
  class StartMissionInspectionDefinition(BaseModel):
@@ -60,8 +56,6 @@ class StartMissionDefinition(BaseModel):
60
56
  tasks: List[StartMissionTaskDefinition]
61
57
  name: Optional[str] = None
62
58
  start_pose: Optional[InputPose] = None
63
- dock: Optional[bool] = Field(default=False)
64
- undock: Optional[bool] = Field(default=False)
65
59
 
66
60
 
67
61
  def to_isar_mission(
@@ -94,20 +88,14 @@ def to_isar_mission(
94
88
  tasks=isar_tasks,
95
89
  name=isar_mission_name,
96
90
  start_pose=start_pose,
97
- dock=start_mission_definition.dock,
98
- undock=start_mission_definition.undock,
99
91
  )
100
92
 
101
93
 
102
94
  def to_isar_task(task_definition: StartMissionTaskDefinition) -> TASKS:
103
95
  if task_definition.type == TaskType.Inspection:
104
96
  return to_inspection_task(task_definition)
105
- elif task_definition.type == TaskType.Localization:
106
- return to_localization_task(task_definition)
107
97
  elif task_definition.type == TaskType.ReturnToHome:
108
98
  return create_return_to_home_task(task_definition)
109
- elif task_definition.type == TaskType.Dock:
110
- return create_dock_task()
111
99
  else:
112
100
  raise MissionPlannerError(
113
101
  f"Failed to create task: '{task_definition.type}' is not a valid"
@@ -231,19 +219,11 @@ def to_inspection_task(task_definition: StartMissionTaskDefinition) -> TASKS:
231
219
  )
232
220
 
233
221
 
234
- def to_localization_task(task_definition: StartMissionTaskDefinition) -> Localize:
235
- return Localize(localization_pose=task_definition.pose.to_alitra_pose())
236
-
237
-
238
222
  def create_return_to_home_task(
239
223
  task_definition: StartMissionTaskDefinition,
240
224
  ) -> ReturnToHome:
241
225
  return ReturnToHome(pose=task_definition.pose.to_alitra_pose())
242
226
 
243
227
 
244
- def create_dock_task() -> DockingProcedure:
245
- return DockingProcedure(behavior="dock")
246
-
247
-
248
228
  def _build_mission_name() -> str:
249
229
  return f"{settings.PLANT_SHORT_NAME}{settings.ROBOT_NAME}{int(time.time())}"
@@ -24,7 +24,6 @@ from robot_interface.models.mission.mission import Mission
24
24
  from robot_interface.models.mission.task import (
25
25
  TASKS,
26
26
  InspectionTask,
27
- Localize,
28
27
  MoveArm,
29
28
  ReturnToHome,
30
29
  )
@@ -203,60 +202,6 @@ class SchedulingController:
203
202
  )
204
203
  return stop_mission_response
205
204
 
206
- def drive_to(
207
- self,
208
- target_pose: InputPose = Body(
209
- default=None,
210
- title="Target Pose",
211
- description="The target pose for the drive_to task",
212
- ),
213
- ) -> StartMissionResponse:
214
- self.logger.info("Received request to start new drive-to mission")
215
-
216
- state: States = self.scheduling_utilities.get_state()
217
-
218
- self.scheduling_utilities.verify_state_machine_ready_to_receive_mission(state)
219
-
220
- pose: Pose = target_pose.to_alitra_pose()
221
- mission: Mission = Mission(
222
- name="Drive to pose", tasks=[ReturnToHome(pose=pose)]
223
- )
224
-
225
- self.logger.info(
226
- f"Starting drive to mission with ISAR Mission ID: '{mission.id}'"
227
- )
228
- self.scheduling_utilities.start_mission(mission=mission, initial_pose=None)
229
- return self._api_response(mission)
230
-
231
- def start_localization_mission(
232
- self,
233
- localization_pose: InputPose = Body(
234
- default=None,
235
- embed=True,
236
- title="Localization Pose",
237
- description="The current position of the robot",
238
- ),
239
- ) -> StartMissionResponse:
240
- self.logger.info("Received request to start new localization mission")
241
-
242
- state: States = self.scheduling_utilities.get_state()
243
-
244
- self.scheduling_utilities.verify_state_machine_ready_to_receive_mission(state)
245
-
246
- pose: Pose = localization_pose.to_alitra_pose()
247
- mission: Mission = Mission(
248
- name="Localization mission", tasks=[Localize(localization_pose=pose)]
249
- )
250
-
251
- self.logger.info(
252
- f"Starting localization mission with ISAR Mission ID: '{mission.id}'"
253
- )
254
- self.scheduling_utilities.start_mission(
255
- mission=mission,
256
- initial_pose=None,
257
- )
258
- return self._api_response(mission)
259
-
260
205
  def start_move_arm_mission(
261
206
  self,
262
207
  arm_pose_literal: str = Path(
@@ -29,7 +29,6 @@ from isar.state_machine.states.paused import Paused
29
29
  from isar.state_machine.states.stop import Stop
30
30
  from isar.state_machine.states_enum import States
31
31
  from robot_interface.models.exceptions.robot_exceptions import ErrorMessage
32
- from robot_interface.models.initialize.initialize_params import InitializeParams
33
32
  from robot_interface.models.mission.mission import Mission
34
33
  from robot_interface.models.mission.status import MissionStatus, RobotStatus, TaskStatus
35
34
  from robot_interface.models.mission.task import TASKS
@@ -389,9 +388,6 @@ class StateMachine(object):
389
388
 
390
389
  self.task_selector.initialize(tasks=self.current_mission.tasks)
391
390
 
392
- def get_initialize_params(self):
393
- return InitializeParams(initial_pose=self.initial_pose)
394
-
395
391
  def should_start_mission(self) -> Optional[StartMissionMessage]:
396
392
  try:
397
393
  return self.queues.start_mission.input.get(block=False)
@@ -45,8 +45,7 @@ class Initialize(State):
45
45
  self.state_machine.robot.initialize
46
46
  )
47
47
  self.initialize_thread.start_thread(
48
- self.state_machine.get_initialize_params(),
49
- name="State Machine Initialize Robot",
48
+ name="State Machine Initialize Robot"
50
49
  )
51
50
 
52
51
  try:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: isar
3
- Version: 1.25.7
3
+ Version: 1.25.9
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
@@ -128,7 +128,6 @@ src/robot_interface/models/__init__.py
128
128
  src/robot_interface/models/exceptions/__init__.py
129
129
  src/robot_interface/models/exceptions/robot_exceptions.py
130
130
  src/robot_interface/models/initialize/__init__.py
131
- src/robot_interface/models/initialize/initialize_params.py
132
131
  src/robot_interface/models/inspection/__init__.py
133
132
  src/robot_interface/models/inspection/inspection.py
134
133
  src/robot_interface/models/mission/__init__.py
@@ -22,8 +22,6 @@ class ErrorReason(str, Enum):
22
22
  RobotTransformException = "robot_transform_exception"
23
23
  RobotUnknownErrorException = "robot_unknown_error_exception"
24
24
  RobotDisconnectedException = "robot_disconnected_exception"
25
- RobotMissionNotSupportedException = "robot_mission_not_supported_exception"
26
- RobotMissionMissingStartPoseException = "robot_mission_missing_start_pose_exception"
27
25
 
28
26
 
29
27
  @dataclass
@@ -259,25 +257,3 @@ class RobotDisconnectedException(RobotException):
259
257
  )
260
258
 
261
259
  pass
262
-
263
-
264
- # An exception which should be thrown by the robot package if the robot is given a mission type it cannot run, such as a localisation mission
265
- class RobotMissionNotSupportedException(RobotException):
266
- def __init__(self, error_description: str) -> None:
267
- super().__init__(
268
- error_reason=ErrorReason.RobotMissionNotSupportedException,
269
- error_description=error_description,
270
- )
271
-
272
- pass
273
-
274
-
275
- # An exception which should be thrown by the robot package if the mission is missing start pose and it needed it
276
- class RobotMissionMissingStartPoseException(RobotException):
277
- def __init__(self, error_description: str) -> None:
278
- super().__init__(
279
- error_reason=ErrorReason.RobotMissionMissingStartPoseException,
280
- error_description=error_description,
281
- )
282
-
283
- pass
@@ -14,7 +14,5 @@ class Mission(BaseModel):
14
14
  tasks: List[TASKS] = Field(default_factory=list, frozen=True)
15
15
  name: str = Field(frozen=True)
16
16
  start_pose: Optional[Pose] = Field(default=None, frozen=True)
17
- dock: bool = Field(default=False, frozen=True)
18
- undock: bool = Field(default=False, frozen=True)
19
17
  status: MissionStatus = MissionStatus.NotStarted
20
18
  error_message: Optional[ErrorMessage] = Field(default=None)
@@ -20,7 +20,6 @@ from robot_interface.utilities.uuid_string_factory import uuid4_string
20
20
 
21
21
  class TaskTypes(str, Enum):
22
22
  ReturnToHome = "return_to_home"
23
- Localize = "localize"
24
23
  MoveArm = "move_arm"
25
24
  TakeImage = "take_image"
26
25
  TakeThermalImage = "take_thermal_image"
@@ -28,7 +27,6 @@ class TaskTypes(str, Enum):
28
27
  TakeThermalVideo = "take_thermal_video"
29
28
  TakeGasMeasurement = "take_gas_measurement"
30
29
  RecordAudio = "record_audio"
31
- DockingProcedure = "docking_procedure"
32
30
 
33
31
 
34
32
  class ZoomDescription(BaseModel):
@@ -71,15 +69,6 @@ class InspectionTask(Task):
71
69
  return Inspection
72
70
 
73
71
 
74
- class DockingProcedure(Task):
75
- """
76
- Task which causes the robot to dock or undock
77
- """
78
-
79
- behavior: Literal["dock", "undock"] = Field(default=None)
80
- type: Literal[TaskTypes.DockingProcedure] = TaskTypes.DockingProcedure
81
-
82
-
83
72
  class ReturnToHome(Task):
84
73
  """
85
74
  Task which cases the robot to return home
@@ -89,15 +78,6 @@ class ReturnToHome(Task):
89
78
  type: Literal[TaskTypes.ReturnToHome] = TaskTypes.ReturnToHome
90
79
 
91
80
 
92
- class Localize(Task):
93
- """
94
- Task which causes the robot to localize
95
- """
96
-
97
- localization_pose: Pose = Field(default=None)
98
- type: Literal[TaskTypes.Localize] = TaskTypes.Localize
99
-
100
-
101
81
  class MoveArm(Task):
102
82
  """
103
83
  Task which causes the robot to move its arm
@@ -197,7 +177,6 @@ class TakeGasMeasurement(InspectionTask):
197
177
 
198
178
  TASKS = Union[
199
179
  ReturnToHome,
200
- Localize,
201
180
  MoveArm,
202
181
  TakeImage,
203
182
  TakeThermalImage,
@@ -205,5 +184,4 @@ TASKS = Union[
205
184
  TakeThermalVideo,
206
185
  TakeGasMeasurement,
207
186
  RecordAudio,
208
- DockingProcedure,
209
187
  ]
@@ -3,7 +3,6 @@ from queue import Queue
3
3
  from threading import Thread
4
4
  from typing import Callable, List, Optional
5
5
 
6
- from robot_interface.models.initialize.initialize_params import InitializeParams
7
6
  from robot_interface.models.inspection.inspection import Inspection
8
7
  from robot_interface.models.mission.mission import Mission
9
8
  from robot_interface.models.mission.status import RobotStatus, TaskStatus
@@ -186,15 +185,11 @@ class RobotInterface(metaclass=ABCMeta):
186
185
  raise NotImplementedError
187
186
 
188
187
  @abstractmethod
189
- def initialize(self, params: InitializeParams) -> None:
188
+ def initialize(self) -> None:
190
189
  """Initializes the robot. The initialization needed is robot dependent and the
191
190
  function can be a simple return statement if no initialization is needed for the
192
191
  robot.
193
192
 
194
- Parameters
195
- ----------
196
- params: InitializeParams
197
-
198
193
  Returns
199
194
  -------
200
195
  None
@@ -1,4 +1,3 @@
1
- import json
2
1
  import re
3
2
  from http import HTTPStatus
4
3
  from unittest import mock
@@ -242,33 +241,6 @@ class TestStopMission:
242
241
  assert response.status_code == HTTPStatus.INTERNAL_SERVER_ERROR
243
242
 
244
243
 
245
- class TestDriveTo:
246
- schedule_drive_to_path = "/schedule/drive-to"
247
- mock_target_pose = MockMissionDefinition.mock_input_pose
248
- mock_data: str = json.dumps(jsonable_encoder(mock_target_pose))
249
-
250
- @mock.patch.object(SchedulingUtilities, "get_state", mock_return_idle)
251
- @mock.patch.object(SchedulingUtilities, "_send_command", mock_void)
252
- def test_drive_to(self, client: TestClient):
253
- response = client.post(url=self.schedule_drive_to_path, data=self.mock_data)
254
- assert response.status_code == HTTPStatus.OK
255
-
256
- @mock.patch.object(SchedulingUtilities, "get_state", mock_return_idle)
257
- @mock.patch.object(SchedulingUtilities, "_send_command", mock_queue_timeout_error)
258
- def test_drive_to_timeout(self, client: TestClient):
259
- response = client.post(url=self.schedule_drive_to_path, data=self.mock_data)
260
- assert response.status_code == HTTPStatus.INTERNAL_SERVER_ERROR
261
- assert response.json() == {
262
- "detail": "Internal Server Error - Failed to start mission in ISAR"
263
- }
264
-
265
- @mock.patch.object(SchedulingUtilities, "get_state", mock_return_monitor)
266
- @mock.patch.object(SchedulingUtilities, "_send_command", mock_void)
267
- def test_state_machine_in_conflicting_state(self, client: TestClient):
268
- response = client.post(url=self.schedule_drive_to_path, data=self.mock_data)
269
- assert response.status_code == HTTPStatus.CONFLICT
270
-
271
-
272
244
  class TestInfoRobotSettings:
273
245
  def test_info_robot_settings(self, client: TestClient):
274
246
  response = client.get(url="/info/robot-settings")
@@ -33,12 +33,6 @@ class TestAuthentication:
33
33
  {"detail": "Unable to verify token, no signing keys found"},
34
34
  HTTPStatus.UNAUTHORIZED,
35
35
  ),
36
- (
37
- "drive-to?x-value=1&y-value=2&z-value=3&quaternion=0&quaternion=0&quaternion=0&quaternion=1", # noqa: E501
38
- mock_access_token(),
39
- {"detail": "Unable to verify token, no signing keys found"},
40
- HTTPStatus.UNAUTHORIZED,
41
- ),
42
36
  ],
43
37
  )
44
38
  def test_authentication(
@@ -5,7 +5,6 @@ from typing import Callable, List
5
5
 
6
6
  from alitra import Frame, Orientation, Pose, Position
7
7
 
8
- from robot_interface.models.initialize.initialize_params import InitializeParams
9
8
  from robot_interface.models.inspection.inspection import (
10
9
  Image,
11
10
  ImageMetadata,
@@ -74,7 +73,7 @@ class MockRobot(RobotInterface):
74
73
  ) -> None:
75
74
  return
76
75
 
77
- def initialize(self, params: InitializeParams) -> None:
76
+ def initialize(self) -> None:
78
77
  return
79
78
 
80
79
  def get_telemetry_publishers(
@@ -1,9 +0,0 @@
1
- from dataclasses import 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
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