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.
- isar/apis/api.py +0 -23
- isar/apis/models/start_mission_definition.py +6 -3
- isar/apis/schedule/scheduling_controller.py +3 -29
- isar/config/keyvault/keyvault_service.py +3 -1
- isar/config/settings.py +0 -8
- isar/models/status.py +4 -0
- isar/modules.py +0 -2
- isar/robot/robot.py +8 -2
- isar/script.py +1 -1
- isar/services/utilities/scheduling_utilities.py +0 -42
- isar/state_machine/state_machine.py +24 -2
- isar/state_machine/states/maintenance.py +8 -1
- isar/state_machine/states/stopping.py +8 -0
- isar/state_machine/states/stopping_paused_mission.py +36 -0
- isar/state_machine/states/stopping_paused_return_home.py +59 -0
- isar/state_machine/states/stopping_return_home.py +24 -42
- isar/state_machine/states/unknown_status.py +2 -0
- isar/state_machine/states_enum.py +2 -0
- isar/state_machine/transitions/mission.py +37 -4
- isar/state_machine/transitions/return_home.py +2 -0
- isar/state_machine/transitions/robot_status.py +7 -0
- isar/state_machine/utils/common_event_handlers.py +65 -0
- {isar-1.34.9.dist-info → isar-1.34.13.dist-info}/METADATA +49 -16
- {isar-1.34.9.dist-info → isar-1.34.13.dist-info}/RECORD +29 -44
- robot_interface/telemetry/payloads.py +1 -1
- isar/config/configuration_error.py +0 -2
- isar/config/keyvault/keyvault_error.py +0 -2
- isar/config/predefined_mission_definition/__init__.py +0 -0
- isar/config/predefined_mission_definition/default_exr.json +0 -49
- isar/config/predefined_mission_definition/default_mission.json +0 -87
- isar/config/predefined_mission_definition/default_turtlebot.json +0 -117
- isar/config/predefined_missions/__init__.py +0 -0
- isar/config/predefined_missions/default.json +0 -72
- isar/config/predefined_missions/default_extra_capabilities.json +0 -107
- isar/mission_planner/__init__.py +0 -0
- isar/mission_planner/local_planner.py +0 -68
- isar/mission_planner/mission_planner_interface.py +0 -26
- isar/services/auth/__init__.py +0 -0
- isar/services/auth/azure_credentials.py +0 -14
- isar/services/service_connections/request_handler.py +0 -153
- isar/services/utilities/threaded_request.py +0 -68
- robot_interface/models/initialize/__init__.py +0 -0
- {isar-1.34.9.dist-info → isar-1.34.13.dist-info}/WHEEL +0 -0
- {isar-1.34.9.dist-info → isar-1.34.13.dist-info}/entry_points.txt +0 -0
- {isar-1.34.9.dist-info → isar-1.34.13.dist-info}/licenses/LICENSE +0 -0
- {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":
|
|
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": "
|
|
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.
|
|
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
|
|
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
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
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
|
-
|
|
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=
|
|
3
|
-
isar/script.py,sha256=
|
|
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=
|
|
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=
|
|
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=
|
|
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=
|
|
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/
|
|
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=
|
|
45
|
-
isar/robot/robot.py,sha256=
|
|
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=
|
|
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=
|
|
71
|
-
isar/state_machine/states_enum.py,sha256=
|
|
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=
|
|
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=
|
|
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/
|
|
96
|
-
isar/state_machine/states/
|
|
97
|
-
isar/state_machine/
|
|
98
|
-
isar/state_machine/
|
|
99
|
-
isar/state_machine/transitions/
|
|
100
|
-
isar/state_machine/
|
|
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.
|
|
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=
|
|
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.
|
|
132
|
-
isar-1.34.
|
|
133
|
-
isar-1.34.
|
|
134
|
-
isar-1.34.
|
|
135
|
-
isar-1.34.
|
|
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,,
|
|
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
|
-
}
|