isar 1.34.9__py3-none-any.whl → 1.34.13__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (46) hide show
  1. isar/apis/api.py +0 -23
  2. isar/apis/models/start_mission_definition.py +6 -3
  3. isar/apis/schedule/scheduling_controller.py +3 -29
  4. isar/config/keyvault/keyvault_service.py +3 -1
  5. isar/config/settings.py +0 -8
  6. isar/models/status.py +4 -0
  7. isar/modules.py +0 -2
  8. isar/robot/robot.py +8 -2
  9. isar/script.py +1 -1
  10. isar/services/utilities/scheduling_utilities.py +0 -42
  11. isar/state_machine/state_machine.py +24 -2
  12. isar/state_machine/states/maintenance.py +8 -1
  13. isar/state_machine/states/stopping.py +8 -0
  14. isar/state_machine/states/stopping_paused_mission.py +36 -0
  15. isar/state_machine/states/stopping_paused_return_home.py +59 -0
  16. isar/state_machine/states/stopping_return_home.py +24 -42
  17. isar/state_machine/states/unknown_status.py +2 -0
  18. isar/state_machine/states_enum.py +2 -0
  19. isar/state_machine/transitions/mission.py +37 -4
  20. isar/state_machine/transitions/return_home.py +2 -0
  21. isar/state_machine/transitions/robot_status.py +7 -0
  22. isar/state_machine/utils/common_event_handlers.py +65 -0
  23. {isar-1.34.9.dist-info → isar-1.34.13.dist-info}/METADATA +49 -16
  24. {isar-1.34.9.dist-info → isar-1.34.13.dist-info}/RECORD +29 -44
  25. robot_interface/telemetry/payloads.py +1 -1
  26. isar/config/configuration_error.py +0 -2
  27. isar/config/keyvault/keyvault_error.py +0 -2
  28. isar/config/predefined_mission_definition/__init__.py +0 -0
  29. isar/config/predefined_mission_definition/default_exr.json +0 -49
  30. isar/config/predefined_mission_definition/default_mission.json +0 -87
  31. isar/config/predefined_mission_definition/default_turtlebot.json +0 -117
  32. isar/config/predefined_missions/__init__.py +0 -0
  33. isar/config/predefined_missions/default.json +0 -72
  34. isar/config/predefined_missions/default_extra_capabilities.json +0 -107
  35. isar/mission_planner/__init__.py +0 -0
  36. isar/mission_planner/local_planner.py +0 -68
  37. isar/mission_planner/mission_planner_interface.py +0 -26
  38. isar/services/auth/__init__.py +0 -0
  39. isar/services/auth/azure_credentials.py +0 -14
  40. isar/services/service_connections/request_handler.py +0 -153
  41. isar/services/utilities/threaded_request.py +0 -68
  42. robot_interface/models/initialize/__init__.py +0 -0
  43. {isar-1.34.9.dist-info → isar-1.34.13.dist-info}/WHEEL +0 -0
  44. {isar-1.34.9.dist-info → isar-1.34.13.dist-info}/entry_points.txt +0 -0
  45. {isar-1.34.9.dist-info → isar-1.34.13.dist-info}/licenses/LICENSE +0 -0
  46. {isar-1.34.9.dist-info → isar-1.34.13.dist-info}/top_level.txt +0 -0
@@ -76,10 +76,16 @@ def get_mission_transitions(state_machine: "StateMachine") -> List[dict]:
76
76
  "source": [
77
77
  state_machine.await_next_mission_state,
78
78
  state_machine.monitor_state,
79
- state_machine.paused_state,
80
79
  ],
81
80
  "dest": state_machine.stopping_state,
82
81
  },
82
+ {
83
+ "trigger": "stop",
84
+ "source": [
85
+ state_machine.paused_state,
86
+ ],
87
+ "dest": state_machine.stopping_paused_mission_state,
88
+ },
83
89
  {
84
90
  "trigger": "stop_go_to_lockdown",
85
91
  "source": [
@@ -111,13 +117,22 @@ def get_mission_transitions(state_machine: "StateMachine") -> List[dict]:
111
117
  "trigger": "stop_return_home",
112
118
  "source": [
113
119
  state_machine.returning_home_state,
114
- state_machine.return_home_paused_state,
115
120
  ],
116
121
  "dest": state_machine.stopping_return_home_state,
117
122
  },
123
+ {
124
+ "trigger": "stop_return_home",
125
+ "source": [
126
+ state_machine.return_home_paused_state,
127
+ ],
128
+ "dest": state_machine.stopping_paused_return_home_state,
129
+ },
118
130
  {
119
131
  "trigger": "mission_stopped",
120
- "source": state_machine.stopping_state,
132
+ "source": [
133
+ state_machine.stopping_state,
134
+ state_machine.stopping_paused_mission_state,
135
+ ],
121
136
  "dest": state_machine.await_next_mission_state,
122
137
  },
123
138
  {
@@ -139,6 +154,11 @@ def get_mission_transitions(state_machine: "StateMachine") -> List[dict]:
139
154
  ],
140
155
  "dest": state_machine.monitor_state,
141
156
  },
157
+ {
158
+ "trigger": "mission_stopping_failed",
159
+ "source": state_machine.stopping_paused_mission_state,
160
+ "dest": state_machine.paused_state,
161
+ },
142
162
  {
143
163
  "trigger": "mission_stopping_failed",
144
164
  "source": state_machine.stopping_due_to_maintenance_state,
@@ -149,12 +169,18 @@ def get_mission_transitions(state_machine: "StateMachine") -> List[dict]:
149
169
  "source": state_machine.stopping_return_home_state,
150
170
  "dest": state_machine.returning_home_state,
151
171
  },
172
+ {
173
+ "trigger": "return_home_mission_stopping_failed",
174
+ "source": state_machine.stopping_paused_return_home_state,
175
+ "dest": state_machine.return_home_paused_state,
176
+ },
152
177
  {
153
178
  "trigger": "start_mission_monitoring",
154
179
  "source": [
155
180
  state_machine.await_next_mission_state,
156
181
  state_machine.home_state,
157
182
  state_machine.stopping_return_home_state,
183
+ state_machine.stopping_paused_return_home_state,
158
184
  ],
159
185
  "dest": state_machine.monitor_state,
160
186
  },
@@ -182,11 +208,18 @@ def get_mission_transitions(state_machine: "StateMachine") -> List[dict]:
182
208
  "dest": state_machine.maintenance_state,
183
209
  },
184
210
  {
185
- "trigger": "release_from_maintenance",
211
+ "trigger": "goto_home",
186
212
  "source": [
187
213
  state_machine.maintenance_state,
188
214
  ],
189
215
  "dest": state_machine.home_state,
190
216
  },
217
+ {
218
+ "trigger": "goto_intervention_needed",
219
+ "source": [
220
+ state_machine.maintenance_state,
221
+ ],
222
+ "dest": state_machine.intervention_needed_state,
223
+ },
191
224
  ]
192
225
  return mission_transitions
@@ -15,6 +15,8 @@ def get_return_home_transitions(state_machine: "StateMachine") -> List[dict]:
15
15
  state_machine.monitor_state,
16
16
  state_machine.stopping_state,
17
17
  state_machine.stopping_return_home_state,
18
+ state_machine.stopping_paused_mission_state,
19
+ state_machine.stopping_paused_return_home_state,
18
20
  ],
19
21
  "dest": state_machine.returning_home_state,
20
22
  },
@@ -71,6 +71,13 @@ def get_robot_status_transitions(state_machine: "StateMachine") -> List[dict]:
71
71
  ],
72
72
  "dest": state_machine.unknown_status_state,
73
73
  },
74
+ {
75
+ "trigger": "robot_status_busy",
76
+ "source": [
77
+ state_machine.unknown_status_state,
78
+ ],
79
+ "dest": state_machine.stopping_state,
80
+ },
74
81
  {
75
82
  "trigger": "robot_recharged",
76
83
  "source": state_machine.recharging_state,
@@ -2,6 +2,7 @@ from typing import TYPE_CHECKING, Callable, Optional
2
2
 
3
3
  from isar.apis.models.models import ControlMissionResponse, MissionStartResponse
4
4
  from isar.models.events import Event
5
+ from robot_interface.models.exceptions.robot_exceptions import ErrorMessage
5
6
  from robot_interface.models.mission.mission import Mission
6
7
 
7
8
  if TYPE_CHECKING:
@@ -71,3 +72,67 @@ def mission_started_event_handler(
71
72
 
72
73
  state_machine.logger.info("Received confirmation that mission has started")
73
74
  return None
75
+
76
+
77
+ def failed_stop_event_handler(
78
+ state_machine: "StateMachine",
79
+ event: Event[ErrorMessage],
80
+ ) -> Optional[Callable]:
81
+ error_message: Optional[ErrorMessage] = event.consume_event()
82
+ if error_message is None:
83
+ return None
84
+
85
+ stopped_mission_response: ControlMissionResponse = ControlMissionResponse(
86
+ success=False, failure_reason="ISAR failed to stop mission"
87
+ )
88
+ state_machine.events.api_requests.stop_mission.response.trigger_event(
89
+ stopped_mission_response
90
+ )
91
+ return state_machine.mission_stopping_failed # type: ignore
92
+
93
+
94
+ def successful_stop_event_handler(
95
+ state_machine: "StateMachine", event: Event[bool]
96
+ ) -> Optional[Callable]:
97
+ if not event.consume_event():
98
+ return None
99
+
100
+ state_machine.events.api_requests.stop_mission.response.trigger_event(
101
+ ControlMissionResponse(success=True)
102
+ )
103
+ state_machine.print_transitions()
104
+ if not state_machine.battery_level_is_above_mission_start_threshold():
105
+ state_machine.start_return_home_mission()
106
+ return state_machine.start_return_home_monitoring # type: ignore
107
+ return state_machine.mission_stopped # type: ignore
108
+
109
+
110
+ def failed_stop_return_home_event_handler(
111
+ state_machine: "StateMachine", event: Event[ErrorMessage]
112
+ ) -> Optional[Callable]:
113
+ error_message: Optional[ErrorMessage] = event.consume_event()
114
+ if error_message is None:
115
+ return None
116
+
117
+ state_machine.logger.warning(
118
+ f"Failed to stop return home mission {error_message.error_description}"
119
+ )
120
+ return state_machine.return_home_mission_stopping_failed # type: ignore
121
+
122
+
123
+ def successful_stop_return_home_event_handler(
124
+ state_machine: "StateMachine", event: Event[bool], mission: Optional[Mission]
125
+ ) -> Optional[Callable]:
126
+ if not event.consume_event():
127
+ return None
128
+
129
+ if mission:
130
+ state_machine.start_mission(mission=mission)
131
+ state_machine.events.api_requests.start_mission.response.trigger_event(
132
+ MissionStartResponse(mission_started=True)
133
+ )
134
+ return state_machine.start_mission_monitoring # type: ignore
135
+
136
+ state_machine.logger.error("Stopped return home without a new mission to start")
137
+ state_machine.start_return_home_mission()
138
+ return state_machine.start_return_home_monitoring # type: ignore
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: isar
3
- Version: 1.34.9
3
+ Version: 1.34.13
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
@@ -124,12 +124,12 @@ Requires-Dist: requests
124
124
  Requires-Dist: starlette>=0.49.1
125
125
  Requires-Dist: transitions
126
126
  Requires-Dist: uvicorn
127
- Requires-Dist: opentelemetry-api
127
+ Requires-Dist: opentelemetry-api==1.38.0
128
128
  Requires-Dist: opentelemetry-sdk
129
129
  Requires-Dist: opentelemetry-exporter-otlp
130
130
  Requires-Dist: opentelemetry-instrumentation-fastapi
131
131
  Requires-Dist: azure-monitor-opentelemetry
132
- Requires-Dist: azure-monitor-opentelemetry-exporter>=1.0.0b38
132
+ Requires-Dist: azure-monitor-opentelemetry-exporter
133
133
  Requires-Dist: pymysql
134
134
  Requires-Dist: sqlalchemy
135
135
  Requires-Dist: psycopg2-binary
@@ -267,17 +267,56 @@ Once the application has been started the swagger site may be accessed at
267
267
  http://localhost:3000/docs
268
268
  ```
269
269
 
270
- Execute the `/schedule/start-mission` endpoint with `mission_id=1` to run a mission.
271
-
272
- In [this](./src/isar/config/predefined_missions) folder there are predefined default missions, for example the mission
273
- corresponding to `mission_id=1`. A new mission may be added by adding a new json-file with a mission description. Note,
274
- the mission IDs must be unique.
270
+ Execute the `/schedule/start-mission` endpoint with the 'mission_definition' value in the body containing a JSON representing a mission definition (see `StartMissionDefinition` in [start_mission_definition.py](./src/isar/apis/models/start_mission_definition.py)).
271
+
272
+ Here is an example body:
273
+ {
274
+ 'mission_definition': {
275
+ 'id': 'example ID',
276
+ 'tasks': [
277
+ {
278
+ 'id': 'example ID',
279
+ 'type': 'inspection',
280
+ 'pose': {
281
+ 'position': {
282
+ 'x': 1.0,
283
+ 'y': 1.0,
284
+ 'z': 1.0,
285
+ 'frame_name': 'robot'
286
+ },
287
+ 'orientation': {
288
+ 'x': 0.0,
289
+ 'y': 0.0,
290
+ 'z': 0.0,
291
+ 'w': 0.0,
292
+ 'frame_name': 'robot'
293
+ },
294
+ 'frame_name': 'robot'
295
+ },
296
+ 'inspection': {
297
+ 'type': 'Image',
298
+ 'inspection_target': {
299
+ 'x': 5.0,
300
+ 'y': 5.0,
301
+ 'z': 5.0,
302
+ 'frame_name': 'robot'
303
+ },
304
+ 'inspection_description': 'Example description,
305
+ 'duration': None
306
+ },
307
+ 'tag': 'example_tag',
308
+ 'zoom': None
309
+ }
310
+ ],
311
+ 'name': 'Example name',
312
+ 'start_pose': None
313
+ }
314
+ }
275
315
 
276
316
  ### Configuration
277
317
 
278
318
  The system consists of many configuration variables which may alter the functionality. As an example, it is possible to
279
- change mission planners or add multiple storage handlers as described in the [mission planner](#mission-planner)
280
- and [storage](#storage) sections.
319
+ add multiple storage handlers as described in the [storage](#storage) section.
281
320
 
282
321
  There are two methods of specifying configuration.
283
322
 
@@ -393,12 +432,6 @@ The FastAPI establishes an interface to the state machine for the user. As the A
393
432
  threads, they communicate through python queues. FastAPI runs on an ASGI-server, specifically uvicorn. The
394
433
  FastAPI-framework is split into routers where the endpoint operations are defined.
395
434
 
396
- ## Mission planner
397
-
398
- The mission planner that is currently in use is a local mission planner, where missions are specified in a json file. You can create your own mission planner by implementing
399
- the [mission planner interface](./src/isar/mission_planner/mission_planner_interface.py) and adding your planner to the
400
- selection [here](./src/isar/modules.py). Note that you must add your module as an option in the dictionary.
401
-
402
435
  ## Storage
403
436
 
404
437
  The storage modules that are used is defined by the `ISAR_STORAGE` configuration variable. This can be changed by
@@ -1,26 +1,24 @@
1
1
  isar/__init__.py,sha256=cH8p8bVveu3FUL6kBhldcSlLaoHgD82Kd0-SwSNfGXw,87
2
- isar/modules.py,sha256=2bo4Z4H2n4vl9BVwV5V5twOUevsLIuXsPiRPICjCB3k,4404
3
- isar/script.py,sha256=mkwdRMEYW2HI9eFLyFy23Ks1_vvrsp17b8VlvkhrNao,5913
2
+ isar/modules.py,sha256=lGeMS_E6r7rqK-jV_ERrYPlb5oQp8r6VqowYOt5jgtE,4285
3
+ isar/script.py,sha256=7qMYHCn4SR8OwUhfgfl_hWQgvKJcL7zD-nvnRKRhEKM,5897
4
4
  isar/apis/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
5
- isar/apis/api.py,sha256=0s0C1l5qGhko8rzm4D3y27mwibk_S2s2o95eAl7bH3k,16126
5
+ isar/apis/api.py,sha256=M88pyEcn8RO-8_nAyCOvB-MGN2klap609M5XlzPPms0,15095
6
6
  isar/apis/models/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
7
7
  isar/apis/models/models.py,sha256=UqIzHiqrvI-ICi6H_xlBFH2HHgYHnMWAKlnqrdqM380,2099
8
- isar/apis/models/start_mission_definition.py,sha256=v-wt1XDd53Sw7DCdFAkxBBut-xd_uGJa7qMJnE3VI9k,6364
8
+ isar/apis/models/start_mission_definition.py,sha256=fcKvxXegYUd0kxye8bb4rm1LaccvtS4auaetOxhAX7Y,6331
9
9
  isar/apis/robot_control/robot_controller.py,sha256=RSVlxbw9D668tHWItVLtyjvAnsJkCs2yUSkU3iqeAcY,1393
10
10
  isar/apis/schedule/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
11
- isar/apis/schedule/scheduling_controller.py,sha256=oyUSo0MdKB24cB796GcfdSzw6-pendz9Thtrh9yAlvc,10890
11
+ isar/apis/schedule/scheduling_controller.py,sha256=Ptvm0iop0IupYGwcS4Thbi0UeXXJ9N0xWmU1NVpfL_k,9875
12
12
  isar/apis/security/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
13
13
  isar/apis/security/authentication.py,sha256=Se2puhe2TUBmfio2RLma52-VSLRhqvWgu0Cd1bhdwMo,2000
14
14
  isar/config/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
15
- isar/config/configuration_error.py,sha256=rO6WOhafX6xvVib8WxV-eY483Z0PpN-9PxGsq5ATfKc,46
16
15
  isar/config/log.py,sha256=16qEMVKWrAc5I9xgE0xZQBpuYpy7wMz9NT19JVBZlf4,2218
17
16
  isar/config/logging.conf,sha256=skjTp6AsXQGW6L6DeMxGszD-XvWu1BAVWjDipQ4QHvU,854
18
17
  isar/config/open_telemetry.py,sha256=Lgu0lbRQA-zz6ZDoBKKk0whQex5w18jl1wjqWzHUGdg,3634
19
- isar/config/settings.py,sha256=BmcLwk4_MODG1NVuFsbu2W__t68rlmMozzJFWbI4zkQ,12289
18
+ isar/config/settings.py,sha256=DP36AI_ujmQMFLYnIOXuaYbwp25bFCl-FGBfRoAnDc8,11916
20
19
  isar/config/certs/ca-cert.pem,sha256=qoNljfad_qcMxhXJIUMLd7nT-Qwf_d4dYSdoOFEOE8I,2179
21
20
  isar/config/keyvault/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
22
- isar/config/keyvault/keyvault_error.py,sha256=zvPCsZLjboxsxthYkxpRERCTFxYV8R5WmACewAUQLwk,41
23
- isar/config/keyvault/keyvault_service.py,sha256=TEAJv5RlWnYvy-n9keivdATDafdTQDj4QY8Aw3SEKoU,3124
21
+ isar/config/keyvault/keyvault_service.py,sha256=ZOdkjBaKpNXcNsHONPhKOHtCxq201e2TQy2qz1RoY_o,3104
24
22
  isar/config/maps/JSP1_intermediate_deck.json,sha256=fdotzN6MVotyLbqpIjRSrbBYM84vogLkdS585NjBnL8,826
25
23
  isar/config/maps/JSP1_weather_deck.json,sha256=_dG3cSBI8q4_uHqHMOO5kSYqMXn85JL3_9PaH4uk1yQ,832
26
24
  isar/config/maps/default_map.json,sha256=3CdGMr0Qn3PrL4TfUK8I5a-hotMrS_n5DKfaEORJPT4,776
@@ -28,21 +26,11 @@ isar/config/maps/klab_b.json,sha256=qXgWVUYPaTdVuomf6lQL-uRbV3Tsa6CftnzcbT3dY78,
28
26
  isar/config/maps/klab_compressor.json,sha256=1Vrk5u_l4WXjrTtG4YfXlrCPbOoRs4TtYHOm0430u2A,803
29
27
  isar/config/maps/klab_turtlebot.json,sha256=HcB79XFEdY0Wm96EssIFO4TMyAWzc2KENoqN7TbTT0k,823
30
28
  isar/config/maps/turtleworld.json,sha256=EKLMpSK9Gu2lAN-E9l41XOaO3f9Su5n_I97mA6z7sWY,764
31
- isar/config/predefined_mission_definition/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
32
- isar/config/predefined_mission_definition/default_exr.json,sha256=diSi4KMnGQY01ZumYUBZDvrekgl4bgiTk-9YPXVeBCY,1550
33
- isar/config/predefined_mission_definition/default_mission.json,sha256=NAspX-kTaHh9VygJGrytJGNjebEIPbiTnWHhj7qt9rk,2722
34
- isar/config/predefined_mission_definition/default_turtlebot.json,sha256=20ee7q1EIx7bIIojMucSwdBafuCG5sewbMQn9gJuPEo,3704
35
- isar/config/predefined_missions/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
36
- isar/config/predefined_missions/default.json,sha256=eBVuHXRoXELpzN0IbSOHdTVjZnhxFqJQf6h67Ez4Iqk,1243
37
- isar/config/predefined_missions/default_extra_capabilities.json,sha256=ddYx54xvz1w5hSS5i6YrHOj8-4YMmtuolLXVha4kLvE,2157
38
29
  isar/eventhandlers/eventhandler.py,sha256=xM5wmrYO3nQtxxsGt-s98ajKhfl3bCMajqtJ29CoGyo,3816
39
- isar/mission_planner/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
40
- isar/mission_planner/local_planner.py,sha256=Mkg3vvUBF1jImfQnaFvXLNpKVadR21X4mwDd_wHqJ2w,2520
41
- isar/mission_planner/mission_planner_interface.py,sha256=UgpPIM4FbrWOD7fGY3Ul64k3uYb8wo0FwSWGewYoVbc,485
42
30
  isar/models/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
43
31
  isar/models/events.py,sha256=zE2YQoWzfuVTDLX99YdXb4wu6lmc_KZlwWYQAxiNfvA,6262
44
- isar/models/status.py,sha256=ed_CZH08IFwIKwX0t1U6MQpq5tax2LwWrTe_TjII5mg,506
45
- isar/robot/robot.py,sha256=gw8MI_mLLY1uEFn7xMEFGcz1uBJO6MWH4JXGxbELm2k,15138
32
+ isar/models/status.py,sha256=k-z5-a3JjR9ygXw7RMNEDhExd0lwc6Q39I5BW55abP8,646
33
+ isar/robot/robot.py,sha256=uwy7SgF6fx63WaMczch6k54od7LF7_T465DcVp3YZBU,15485
46
34
  isar/robot/robot_battery.py,sha256=goLdgmn61QCgE2Ja3YuiwE_sqJzIhCkS3u90sz1kdug,2089
47
35
  isar/robot/robot_monitor_mission.py,sha256=Pb0dhnVncNt6VuiidlJDyniEXiqoO1ZArSCdWCqX6IY,13831
48
36
  isar/robot/robot_pause_mission.py,sha256=2zVQLh1Qoo-PIgpYUd6IBA39EJ1azIGh_lV1b9BeXqk,2631
@@ -52,11 +40,8 @@ isar/robot/robot_status.py,sha256=dfAls3s8_Vha7ZMLSYngELqsdpaEpcweAWRHanQj8u8,23
52
40
  isar/robot/robot_stop_mission.py,sha256=CaXLsZjjazHmydU9iR7uOWUHtJ2zvKh4ItUbkWY5sIk,2321
53
41
  isar/robot/robot_upload_inspection.py,sha256=uCc9nuH1Am5uxD2Tgnm4ZTOm0tQnud0F6eHs0rSUfvY,2539
54
42
  isar/services/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
55
- isar/services/auth/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
56
- isar/services/auth/azure_credentials.py,sha256=9PlwGe5FrPRbW2dp0go7LMp8_l_FRvL8xOXotXwzRDo,364
57
43
  isar/services/service_connections/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
58
44
  isar/services/service_connections/persistent_memory.py,sha256=duNj5vX4VtL5XCu6oiZ0VPmNMlFbNJMzcLcQL8nNfN8,2188
59
- isar/services/service_connections/request_handler.py,sha256=0LxC0lu_HXeEf_xmJWjfEsh14oAUI97cpG1IWtBlcs4,4278
60
45
  isar/services/service_connections/mqtt/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
61
46
  isar/services/service_connections/mqtt/mqtt_client.py,sha256=8Dr65JNwPx5-kRY8UsRtZ_nrQ2gXXSUH6LWFOYlnluo,4482
62
47
  isar/services/service_connections/mqtt/robot_heartbeat_publisher.py,sha256=SKPvY2QwBxqnhL9aGuZQDGQ8F_NDqPtQI5bzRBIUxkQ,1203
@@ -64,11 +49,10 @@ isar/services/service_connections/mqtt/robot_info_publisher.py,sha256=AxokGk51hR
64
49
  isar/services/utilities/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
65
50
  isar/services/utilities/mqtt_utilities.py,sha256=_e-UzWcoXvsBUrvb89rNXQaDN4G3rTsYlZRIhmC9fQc,3101
66
51
  isar/services/utilities/robot_utilities.py,sha256=4zCigsLXfqDC8POHchktSq81zr1_pTaRve_LQsVr6Mk,514
67
- isar/services/utilities/scheduling_utilities.py,sha256=wxLBc7l6Pc6y0aLRP-gOzBMfKUs-xg8BA9QiNdBG7bU,23814
68
- isar/services/utilities/threaded_request.py,sha256=py4G-_RjnIdHljmKFAcQ6ddqMmp-ZYV39Ece-dqRqjs,1874
52
+ isar/services/utilities/scheduling_utilities.py,sha256=Q3wrwxbKVptwOTvFShN0meqCmhroJFRKpO56WHq9UzY,22229
69
53
  isar/state_machine/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
70
- isar/state_machine/state_machine.py,sha256=Kmys0yIpsBuBxPrcqHo3FYDfAfx34haHfczihHYLmEU,13669
71
- isar/state_machine/states_enum.py,sha256=1jiON-PJCDWIA0VHtI0AUFlWeVtbWbGijShVJyViqwI,1012
54
+ isar/state_machine/state_machine.py,sha256=EiYd1g1PzOPBmYXBwBnN0M5T4vRphPUKjgRXmzW8X38,14737
55
+ isar/state_machine/states_enum.py,sha256=JrLLju4KMs2ddJZ0Rou2T1LPzF1SnRzDyr0uA_gUvh0,1127
72
56
  isar/state_machine/states/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
73
57
  isar/state_machine/states/await_next_mission.py,sha256=IJ79RuPveK6xBnHHkMldZ8LJybLfhMcS812t7-I6-iU,4381
74
58
  isar/state_machine/states/blocked_protective_stop.py,sha256=Ya5GIZS81olGoTXqKVjDaUXfl3zR6FxdsUXktPJIU80,2578
@@ -77,7 +61,7 @@ isar/state_machine/states/going_to_recharging.py,sha256=CMtA9hmiW8XmH7Skj3B0_IAt
77
61
  isar/state_machine/states/home.py,sha256=IfAFi9bDvoqNaJRahAw8tQwRQ2Wg84kI-nAmtzXp75U,4856
78
62
  isar/state_machine/states/intervention_needed.py,sha256=DmRm5bQYxUzTRCwYiFN9L4bRXWSdGgDKCBwh-hV6ySo,3156
79
63
  isar/state_machine/states/lockdown.py,sha256=ZFw9XMDENECuH3lh89RKeU_3CTzW0ZBvqCKptFJG5xo,1364
80
- isar/state_machine/states/maintenance.py,sha256=PIlPLtS7zn5uTJZ9kTrpOQGUuJww4j5vD-qaNcoj7aI,1267
64
+ isar/state_machine/states/maintenance.py,sha256=94lzo7yJbyiphjk_onTETq_ZjMk6PIHRSh4LWEJeC74,1556
81
65
  isar/state_machine/states/monitor.py,sha256=WYhCkZAfsGoqO092jvnuSJEspY5gBje__-pf4nuGEDY,6267
82
66
  isar/state_machine/states/offline.py,sha256=FbchMo1q2d0aZUiDj9VWuD1IAha7sD1d8e5MqyR_JBc,2564
83
67
  isar/state_machine/states/paused.py,sha256=-XRjjMpzKgKQZ7oYmI1bAZXNbtti1KHlH0tt59Cv0eg,4149
@@ -88,30 +72,31 @@ isar/state_machine/states/resuming.py,sha256=Evh9gxxntKwY8MKM4gn0Sq-H9DpMx6RRJrI
88
72
  isar/state_machine/states/resuming_return_home.py,sha256=YZhHno_WdtR5DkoeKmsN4jALmTXcOdWgOGZ0d8Tz2HQ,2414
89
73
  isar/state_machine/states/return_home_paused.py,sha256=598K-hKMxjZZf3iVWDaOOauAETSwJxxDbU1wlHnt9UM,4485
90
74
  isar/state_machine/states/returning_home.py,sha256=oXc7Ou7lhzLSm4oZocoiB_4I2vUyxzt2CvJP6wAJhRs,9196
91
- isar/state_machine/states/stopping.py,sha256=B2tcd4jaSOXEkTrd5BnNfMVrzM9wRkJm5hnmM7gxUc0,2484
75
+ isar/state_machine/states/stopping.py,sha256=CFdR5vTndXD0T1ZeBO31lSYTxG3ltkNCjjg8biDtpDM,2831
92
76
  isar/state_machine/states/stopping_due_to_maintenance.py,sha256=Mjbwf6bQIB0ihBKrsTxnCCUzkIe0LNybVHiLGzcXSNA,2561
93
77
  isar/state_machine/states/stopping_go_to_lockdown.py,sha256=_w9yL8Uq2E6W97-ccp9NJvbfjV2hv87LEK_skS5Jhqg,2327
94
78
  isar/state_machine/states/stopping_go_to_recharge.py,sha256=02i37QI_551o-i_Ejc3Z9_xuI9o0g8e6WKCXcwkW2ac,1923
95
- isar/state_machine/states/stopping_return_home.py,sha256=sKA0tZASme_XVHEj0mwotfiKjFtCZ-FB-y1IoPaj9q4,3089
96
- isar/state_machine/states/unknown_status.py,sha256=oL92_66TDBwsIELdfqWvFvZ8NkY4oOLaGYKdZHsxAB4,3171
97
- isar/state_machine/transitions/mission.py,sha256=coHW4Mo3HdEzjolNg6FIppTcU_g_GCvAkr3gU0ERwXc,7317
98
- isar/state_machine/transitions/return_home.py,sha256=G9mxFpM7IR5NNq7JC-Cbign7XAMC_d7vOkVxCBFVNGE,3701
99
- isar/state_machine/transitions/robot_status.py,sha256=60EAb1LwuOfk1TPDCgh8S5FBgcZAPHdC2KtCGDrsQrM,2763
100
- isar/state_machine/utils/common_event_handlers.py,sha256=lBoreI1EuXrqmMkkPIZiy3yCLBDTShW_EFUxMGrCQVE,2492
79
+ isar/state_machine/states/stopping_paused_mission.py,sha256=IK0qEee_WKnFVs-zLmQc_2xEw3Wge3DKybmFA7zwq8U,1272
80
+ isar/state_machine/states/stopping_paused_return_home.py,sha256=TMVTvBP2ol5rGmuR-fJwmWTUWJWyI5PXnACbclGYvxI,2278
81
+ isar/state_machine/states/stopping_return_home.py,sha256=DA7kluiVA6nWCfX_hEnvuzc8J-TR7V-FGh4wyoyMB8k,2258
82
+ isar/state_machine/states/unknown_status.py,sha256=q5g7ve7R_BdyZYYvVidjIFX2zyPXgKVRdGaJvKiYrH4,3293
83
+ isar/state_machine/transitions/mission.py,sha256=V6ZJaswVCdC7zBlNcD4U4vSb3mjVbZIItl8fcAo7ZKs,8410
84
+ isar/state_machine/transitions/return_home.py,sha256=D_tnpoWNdRTVvwLI2wFeec86l60XU5PTkL2zNe6kghE,3827
85
+ isar/state_machine/transitions/robot_status.py,sha256=EJhzbY-11M_UJA0_1oC95Qy7ByhKR_cOm58ppEBhwqI,2969
86
+ isar/state_machine/utils/common_event_handlers.py,sha256=wL5xdcN0GBlNLqjDJrCpyBiz2YaeBsZRkE51kFIsyw8,4876
101
87
  isar/storage/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
102
88
  isar/storage/blob_storage.py,sha256=d44z3XpZDUbiKwN8Av2gytTJxnefMXrp5VhiGm4PWxU,3703
103
89
  isar/storage/local_storage.py,sha256=Rn-iiiz9DI7PzIhevOMshPIaqzJaqBXeVJMQRhVSl2M,2191
104
90
  isar/storage/storage_interface.py,sha256=x-imVeQTdL6dCaTaPTHpXwCR6N4e27WxK_Vpumg0x-Y,1230
105
91
  isar/storage/uploader.py,sha256=0BBrxyZGGRkNxGeZeoREucegs4yKUow2523oLEie07o,10841
106
92
  isar/storage/utilities.py,sha256=oLH0Rp7UtrQQdilfITnmXO1Z0ExdeDhBImYHid55vBA,3449
107
- isar-1.34.9.dist-info/licenses/LICENSE,sha256=3fc2-ebLwHWwzfQbulGNRdcNob3SBQeCfEVUDYxsuqw,14058
93
+ isar-1.34.13.dist-info/licenses/LICENSE,sha256=3fc2-ebLwHWwzfQbulGNRdcNob3SBQeCfEVUDYxsuqw,14058
108
94
  robot_interface/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
109
95
  robot_interface/robot_interface.py,sha256=s04zOYDpnUu3GxUyDo3DlX1cFf94DmSt-GrwsFPgnYw,9357
110
96
  robot_interface/test_robot_interface.py,sha256=FV1urn7SbsMyWBIcTKjsBwAG4IsXeZ6pLHE0mA9EGGs,692
111
97
  robot_interface/models/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
112
98
  robot_interface/models/exceptions/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
113
99
  robot_interface/models/exceptions/robot_exceptions.py,sha256=7extsX9NuJsJ00xeTQ0aI7yeVGW-dzjbH-LH8Mc-uEQ,10821
114
- robot_interface/models/initialize/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
115
100
  robot_interface/models/inspection/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
116
101
  robot_interface/models/inspection/inspection.py,sha256=cjAvekL8r82s7bgukWeXpYylHvJG_oRSCJNISPVCvZg,2238
117
102
  robot_interface/models/mission/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -124,12 +109,12 @@ robot_interface/models/robots/media.py,sha256=8A-CuuubfngzPprs6zWB9hSaqe3jzgsE8r
124
109
  robot_interface/models/robots/robot_model.py,sha256=-0jNKWPcEgtF_2klb1It3u0SCoAR0hSW9nce58Zq0Co,417
125
110
  robot_interface/telemetry/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
126
111
  robot_interface/telemetry/mqtt_client.py,sha256=0P1S9mWdJcByGoSOwwn2NPQr9I-OX4b1VPbrIYOU-Zo,4334
127
- robot_interface/telemetry/payloads.py,sha256=A0SWiG609k6o6-Y3vhDWE6an2-_m7D_ND85ohfW4qWs,3236
112
+ robot_interface/telemetry/payloads.py,sha256=4EaJ45A90j8kCRBGs-2pZvYjYUCkxFNn4NpYJhZCdR4,3246
128
113
  robot_interface/utilities/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
129
114
  robot_interface/utilities/json_service.py,sha256=9N1zijW7K4d3WFR2autpaS8U9o1ibymiOX-6stTKCyk,1243
130
115
  robot_interface/utilities/uuid_string_factory.py,sha256=_NQIbBQ56w0qqO0MUDP6aPpHbxW7ATRhK8HnQiBSLkc,76
131
- isar-1.34.9.dist-info/METADATA,sha256=LmXJhW-UywCqnF6C2sLVOJ_Lr6JVJfa9yq7ESgZL7L4,29271
132
- isar-1.34.9.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
133
- isar-1.34.9.dist-info/entry_points.txt,sha256=RdnGYFhaBdMGEsOVJAAZxHCflEptjSisHqZ-Rgc4t7Q,98
134
- isar-1.34.9.dist-info/top_level.txt,sha256=UwIML2RtuQKCyJJkatcSnyp6-ldDjboB9k9JgKipO-U,21
135
- isar-1.34.9.dist-info/RECORD,,
116
+ isar-1.34.13.dist-info/METADATA,sha256=XFe7UB1O2-NH6RUGUQfrALGCEWWKjK9CjdhV_7bqMF8,29800
117
+ isar-1.34.13.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
118
+ isar-1.34.13.dist-info/entry_points.txt,sha256=RdnGYFhaBdMGEsOVJAAZxHCflEptjSisHqZ-Rgc4t7Q,98
119
+ isar-1.34.13.dist-info/top_level.txt,sha256=UwIML2RtuQKCyJJkatcSnyp6-ldDjboB9k9JgKipO-U,21
120
+ isar-1.34.13.dist-info/RECORD,,
@@ -97,7 +97,7 @@ class MissionPayload:
97
97
  class MissionAbortedPayload:
98
98
  isar_id: str
99
99
  robot_name: str
100
- mission_id: str
100
+ mission_id: Optional[str]
101
101
  can_be_continued: bool
102
102
  timestamp: datetime
103
103
  reason: Optional[str]
@@ -1,2 +0,0 @@
1
- class ConfigurationError(Exception):
2
- pass
@@ -1,2 +0,0 @@
1
- class KeyvaultError(Exception):
2
- pass
File without changes
@@ -1,49 +0,0 @@
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
- "metadata": {
32
- "zoom": "2x"
33
- }
34
- },
35
- {
36
- "type": "ThermalVideo",
37
- "inspection_target": {
38
- "x": 6.6550,
39
- "y": 3.7987,
40
- "z": 0.6145,
41
- "frame_name": "robot"
42
- },
43
- "duration": 10
44
- }
45
- ]
46
- }
47
- ]
48
- }
49
- }
@@ -1,87 +0,0 @@
1
- {
2
- "mission_definition": {
3
- "tasks": [
4
- {
5
- "pose": {
6
- "position": {
7
- "x": 0,
8
- "y": 0,
9
- "z": 0,
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": "1-A",
22
- "inspections": [
23
- {
24
- "type": "Image",
25
- "inspection_target": {
26
- "x": 0,
27
- "y": 0,
28
- "z": 0,
29
- "frame_name": "robot"
30
- },
31
- "metadata": {
32
- "zoom": "2x"
33
- }
34
- },
35
- {
36
- "type": "ThermalVideo",
37
- "inspection_target": {
38
- "x": 0,
39
- "y": 0,
40
- "z": 0,
41
- "frame_name": "robot"
42
- },
43
- "duration": 10
44
- }
45
- ]
46
- },
47
- {
48
- "pose": {
49
- "position": {
50
- "x": 1,
51
- "y": 1,
52
- "z": 1,
53
- "frame_name": "robot"
54
- },
55
- "orientation": {
56
- "x": 0,
57
- "y": 0,
58
- "z": 0,
59
- "w": 1,
60
- "frame_name": "robot"
61
- },
62
- "frame_name": "robot"
63
- },
64
- "inspections": [
65
- {
66
- "type": "ThermalImage",
67
- "inspection_target": {
68
- "x": 0,
69
- "y": 0,
70
- "z": 0,
71
- "frame_name": "robot"
72
- }
73
- },
74
- {
75
- "type": "Video",
76
- "inspection_target": {
77
- "x": 0,
78
- "y": 0,
79
- "z": 0,
80
- "frame_name": "robot"
81
- }
82
- }
83
- ]
84
- }
85
- ]
86
- }
87
- }