isar 1.24.2__py3-none-any.whl → 1.24.4__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.

Potentially problematic release.


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

isar/apis/api.py CHANGED
@@ -17,6 +17,7 @@ from opencensus.trace.tracer import Tracer
17
17
  from pydantic import AnyHttpUrl
18
18
 
19
19
  from isar.apis.models.models import ControlMissionResponse, StartMissionResponse
20
+ from isar.apis.robot_control.robot_controller import RobotController
20
21
  from isar.apis.schedule.scheduling_controller import SchedulingController
21
22
  from isar.apis.security.authentication import Authenticator
22
23
  from isar.config.configuration_error import ConfigurationError
@@ -34,12 +35,14 @@ class API:
34
35
  self,
35
36
  authenticator: Authenticator,
36
37
  scheduling_controller: SchedulingController,
38
+ robot_controller: RobotController,
37
39
  keyvault_client: Keyvault,
38
40
  port: int = settings.API_PORT,
39
41
  azure_ai_logging_enabled: bool = settings.LOG_HANDLER_APPLICATION_INSIGHTS_ENABLED,
40
42
  ) -> None:
41
43
  self.authenticator: Authenticator = authenticator
42
44
  self.scheduling_controller: SchedulingController = scheduling_controller
45
+ self.robot_controller: RobotController = robot_controller
43
46
  self.keyvault_client: Keyvault = keyvault_client
44
47
  self.host: str = "0.0.0.0" # Locking uvicorn to use 0.0.0.0
45
48
  self.port: int = port
@@ -98,6 +101,8 @@ class API:
98
101
 
99
102
  app.include_router(router=self._create_info_router())
100
103
 
104
+ app.include_router(router=self._create_media_control_router())
105
+
101
106
  return app
102
107
 
103
108
  def _create_scheduler_router(self) -> APIRouter:
@@ -277,7 +282,7 @@ class API:
277
282
 
278
283
  router.add_api_route(
279
284
  path="/info/robot-settings",
280
- endpoint=self.scheduling_controller.get_info,
285
+ endpoint=self.robot_controller.get_info,
281
286
  methods=["GET"],
282
287
  dependencies=[authentication_dependency],
283
288
  summary="Information about the robot-settings",
@@ -285,6 +290,21 @@ class API:
285
290
 
286
291
  return router
287
292
 
293
+ def _create_media_control_router(self) -> APIRouter:
294
+ router: APIRouter = APIRouter(tags=["Media"])
295
+
296
+ authentication_dependency: Security = Security(self.authenticator.get_scheme())
297
+
298
+ router.add_api_route(
299
+ path="/media/media-stream-config",
300
+ endpoint=self.robot_controller.generate_media_config,
301
+ methods=["GET"],
302
+ dependencies=[authentication_dependency],
303
+ summary="Generates a media stream connection config",
304
+ )
305
+
306
+ return router
307
+
288
308
  def _log_startup_message(self) -> None:
289
309
  address_format = "%s://%s:%d/docs"
290
310
  message = f"Uvicorn running on {address_format} (Press CTRL+C to quit)"
@@ -1,6 +1,6 @@
1
1
  import time
2
2
  from enum import Enum
3
- from typing import Any, Dict, List, Optional
3
+ from typing import List, Optional
4
4
 
5
5
  from alitra import Frame, Orientation, Pose, Position
6
6
  from pydantic import BaseModel, Field
@@ -0,0 +1,35 @@
1
+ import logging
2
+ from typing import List
3
+
4
+ from injector import inject
5
+
6
+ from isar.apis.models.models import (
7
+ RobotInfoResponse,
8
+ TaskResponse,
9
+ )
10
+ from isar.config.settings import robot_settings, settings
11
+ from isar.services.utilities.robot_utilities import RobotUtilities
12
+ from robot_interface.models.mission.task import Task
13
+
14
+
15
+ class RobotController:
16
+ @inject
17
+ def __init__(
18
+ self,
19
+ robot_utilities: RobotUtilities,
20
+ ):
21
+ self.robot_utilities: RobotUtilities = robot_utilities
22
+ self.logger = logging.getLogger("api")
23
+
24
+ def generate_media_config(self):
25
+ return self.robot_utilities.generate_media_config()
26
+
27
+ def get_info(self):
28
+ return RobotInfoResponse(
29
+ robot_package=settings.ROBOT_PACKAGE,
30
+ isar_id=settings.ISAR_ID,
31
+ robot_name=settings.ROBOT_NAME,
32
+ robot_capabilities=robot_settings.CAPABILITIES,
33
+ robot_map_name=settings.DEFAULT_MAP,
34
+ plant_short_name=settings.PLANT_SHORT_NAME,
35
+ )
@@ -295,16 +295,6 @@ class SchedulingController:
295
295
  )
296
296
  return self._api_response(mission)
297
297
 
298
- def get_info(self):
299
- return RobotInfoResponse(
300
- robot_package=settings.ROBOT_PACKAGE,
301
- isar_id=settings.ISAR_ID,
302
- robot_name=settings.ROBOT_NAME,
303
- robot_capabilities=robot_settings.CAPABILITIES,
304
- robot_map_name=settings.DEFAULT_MAP,
305
- plant_short_name=settings.PLANT_SHORT_NAME,
306
- )
307
-
308
298
  def _api_response(self, mission: Mission) -> StartMissionResponse:
309
299
  return StartMissionResponse(
310
300
  id=mission.id,
@@ -65,7 +65,7 @@ class Keyvault:
65
65
  raise KeyvaultError # type: ignore
66
66
 
67
67
  def get_secret_client(self) -> SecretClient:
68
- if self.client == None:
68
+ if self.client is None:
69
69
  try:
70
70
  credential: Union[ClientSecretCredential, DefaultAzureCredential]
71
71
  if self.client_id and self.client_secret and self.tenant_id:
isar/modules.py CHANGED
@@ -8,6 +8,7 @@ from injector import Injector, Module, multiprovider, provider, singleton
8
8
 
9
9
  from isar.apis.api import API
10
10
  from isar.apis.schedule.scheduling_controller import SchedulingController
11
+ from isar.apis.robot_control.robot_controller import RobotController
11
12
  from isar.apis.security.authentication import Authenticator
12
13
  from isar.config.keyvault.keyvault_service import Keyvault
13
14
  from isar.config.settings import settings
@@ -18,6 +19,7 @@ from isar.mission_planner.task_selector_interface import TaskSelectorInterface
18
19
  from isar.models.communication.queues.queues import Queues
19
20
  from isar.services.service_connections.request_handler import RequestHandler
20
21
  from isar.services.utilities.scheduling_utilities import SchedulingUtilities
22
+ from isar.services.utilities.robot_utilities import RobotUtilities
21
23
  from isar.state_machine.state_machine import StateMachine
22
24
  from isar.storage.blob_storage import BlobStorage
23
25
  from isar.storage.local_storage import LocalStorage
@@ -35,9 +37,10 @@ class APIModule(Module):
35
37
  self,
36
38
  authenticator: Authenticator,
37
39
  scheduling_controller: SchedulingController,
40
+ robot_controller: RobotController,
38
41
  keyvault: Keyvault,
39
42
  ) -> API:
40
- return API(authenticator, scheduling_controller, keyvault)
43
+ return API(authenticator, scheduling_controller, robot_controller, keyvault)
41
44
 
42
45
  @provider
43
46
  @singleton
@@ -47,6 +50,14 @@ class APIModule(Module):
47
50
  ) -> SchedulingController:
48
51
  return SchedulingController(scheduling_utilities)
49
52
 
53
+ @provider
54
+ @singleton
55
+ def provide_robot_controller(
56
+ self,
57
+ robot_utilities: RobotUtilities,
58
+ ) -> RobotController:
59
+ return RobotController(robot_utilities)
60
+
50
61
 
51
62
  class AuthenticationModule(Module):
52
63
  @provider
@@ -142,7 +153,7 @@ class UploaderModule(Module):
142
153
  )
143
154
 
144
155
 
145
- class UtilitiesModule(Module):
156
+ class SchedulingUtilitiesModule(Module):
146
157
  @provider
147
158
  @singleton
148
159
  def provide_scheduling_utilities(
@@ -151,6 +162,13 @@ class UtilitiesModule(Module):
151
162
  return SchedulingUtilities(queues, mission_planner)
152
163
 
153
164
 
165
+ class RobotUtilitiesModule(Module):
166
+ @provider
167
+ @singleton
168
+ def provide_robot_utilities(self, robot: RobotInterface) -> RobotUtilities:
169
+ return RobotUtilities(robot)
170
+
171
+
154
172
  class ServiceModule(Module):
155
173
  @provider
156
174
  @singleton
@@ -193,7 +211,8 @@ modules: Dict[str, Tuple[Module, Union[str, bool]]] = {
193
211
  "storage_blob": (BlobStorageModule, settings.STORAGE_BLOB_ENABLED),
194
212
  "storage_slimm": (SlimmStorageModule, settings.STORAGE_SLIMM_ENABLED),
195
213
  "mqtt": (MqttModule, "required"),
196
- "utilities": (UtilitiesModule, "required"),
214
+ "utilities": (SchedulingUtilitiesModule, "required"),
215
+ "robot_utilities": (RobotUtilitiesModule, "required"),
197
216
  }
198
217
 
199
218
 
@@ -0,0 +1,23 @@
1
+ import logging
2
+
3
+ from injector import inject
4
+
5
+ from robot_interface.models.robots.media import MediaConfig
6
+ from robot_interface.robot_interface import RobotInterface
7
+
8
+
9
+ class RobotUtilities:
10
+ """
11
+ Contains utility functions for getting robot information from the API.
12
+ """
13
+
14
+ @inject
15
+ def __init__(
16
+ self,
17
+ robot: RobotInterface,
18
+ ):
19
+ self.robot: RobotInterface = robot
20
+ self.logger = logging.getLogger("api")
21
+
22
+ def generate_media_config(self) -> MediaConfig:
23
+ return self.robot.generate_media_config()
@@ -237,8 +237,6 @@ class StateMachine(object):
237
237
 
238
238
  self.current_state: State = States(self.state) # type: ignore
239
239
 
240
- self.predefined_mission_id: Optional[int] = None
241
-
242
240
  self.transitions_log_length: int = transitions_log_length
243
241
  self.transitions_list: Deque[States] = deque([], self.transitions_log_length)
244
242
 
@@ -1,7 +1,7 @@
1
1
  import logging
2
2
  import time
3
3
  from copy import deepcopy
4
- from typing import TYPE_CHECKING, Callable, Optional, Sequence, Tuple, Union
4
+ from typing import TYPE_CHECKING, Callable, Optional, Tuple, Union
5
5
 
6
6
  from injector import inject
7
7
  from transitions import State
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: isar
3
- Version: 1.24.2
3
+ Version: 1.24.4
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
@@ -1,13 +1,14 @@
1
1
  isar/__init__.py,sha256=cH8p8bVveu3FUL6kBhldcSlLaoHgD82Kd0-SwSNfGXw,87
2
- isar/modules.py,sha256=aO8bLSC4i_Qo4bOJ6aFfwAZRTJAw8o9SOOfkceUGCiU,6708
2
+ isar/modules.py,sha256=da1oE79leMID2cQKrVgahFyo-NAqNa_UA0PNHCA3Zt8,7361
3
3
  isar/script.py,sha256=9cIRRTnuMbIAj435tGyoSpTkyGL4huCxfppvMtV2p4Y,5965
4
4
  isar/apis/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
5
- isar/apis/api.py,sha256=PYJggz9Xh0alo2DWU3QD4lEBQY3PkEs335JE2qG87WQ,13170
5
+ isar/apis/api.py,sha256=vUy7QbHrKcTHjh2rkU7lqQPkCasI6umha8r6H88JiXE,13942
6
6
  isar/apis/models/__init__.py,sha256=NI1BYyN__Ogr00Qqe0XJ-9gEVPva2brXo2RJsbrS4tM,52
7
7
  isar/apis/models/models.py,sha256=6E8VhGBti6EKJefYTDNVERxRu_g_omg4J2MriPUPkaw,1709
8
- isar/apis/models/start_mission_definition.py,sha256=oY2CRKNkf4DQys0lbz-WTib1Ppw_OUwHqhBTrBhUJQk,8044
8
+ isar/apis/models/start_mission_definition.py,sha256=it1SKc8Wbdvccd1a7Fz-fy3ue9aBzFYPz1Xhi7p8OVc,8033
9
+ isar/apis/robot_control/robot_controller.py,sha256=en6j-dHIxUXraREz7JETqtxgHl79ks7TBgBwPKc6VQE,1019
9
10
  isar/apis/schedule/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
10
- isar/apis/schedule/scheduling_controller.py,sha256=JbVF0kvGACqc0Pgbt5DLsiXkRx4WWPiAZnYlHUrAHz0,11419
11
+ isar/apis/schedule/scheduling_controller.py,sha256=ALfFYgNSEBWJPI8L5a9xHQUPksKkkJqEN1pc_7k-ZzU,11053
11
12
  isar/apis/security/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
12
13
  isar/apis/security/authentication.py,sha256=TI8U9Y_L6ihHLMeM50ZONd5EPfuHdw_XMU_Q987W4AY,1975
13
14
  isar/config/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -19,7 +20,7 @@ isar/config/settings.py,sha256=lbpuXAyeSCHFcEuIQvbqwyJIOp23Rtdqpajf_HrUjbU,13491
19
20
  isar/config/certs/ca-cert.pem,sha256=3X9NO4qzvA55PMXPyOwOCcXw33YVbF7tjPU5cX7vO5I,2179
20
21
  isar/config/keyvault/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
21
22
  isar/config/keyvault/keyvault_error.py,sha256=zvPCsZLjboxsxthYkxpRERCTFxYV8R5WmACewAUQLwk,41
22
- isar/config/keyvault/keyvault_service.py,sha256=b2EWNiNQmZ-FUWjZidNg5KXRcVH-U8CsiqcBf1devNw,3124
23
+ isar/config/keyvault/keyvault_service.py,sha256=TEAJv5RlWnYvy-n9keivdATDafdTQDj4QY8Aw3SEKoU,3124
23
24
  isar/config/maps/JSP1_intermediate_deck.json,sha256=fdotzN6MVotyLbqpIjRSrbBYM84vogLkdS585NjBnL8,826
24
25
  isar/config/maps/JSP1_weather_deck.json,sha256=_dG3cSBI8q4_uHqHMOO5kSYqMXn85JL3_9PaH4uk1yQ,832
25
26
  isar/config/maps/default_map.json,sha256=3CdGMr0Qn3PrL4TfUK8I5a-hotMrS_n5DKfaEORJPT4,776
@@ -34,8 +35,6 @@ isar/config/predefined_mission_definition/default_turtlebot.json,sha256=Ka379MLu
34
35
  isar/config/predefined_missions/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
35
36
  isar/config/predefined_missions/default.json,sha256=27-_KSQvYnmhv7edn1eB9jXjtodad29-pvdpT1YRxr0,1325
36
37
  isar/config/predefined_missions/default_turtlebot.json,sha256=yjxr7-q0Yueq4aAyOG0Yw2x9NuxKTBOZDmjg5-BlYOM,1944
37
- isar/config/predefined_poses/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
38
- isar/config/predefined_poses/predefined_poses.py,sha256=fhq8JF00feDLFKNBlyWeFoLfvfs5dVb__C7CmiVbwmQ,25779
39
38
  isar/mission_planner/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
40
39
  isar/mission_planner/local_planner.py,sha256=gNEtln8e-f2mmyP9IM_8lbXo92HNF4rdMrrIxOPMoBY,3073
41
40
  isar/mission_planner/mission_planner_interface.py,sha256=51k6KKXqC8wZ4Mc8ZWo00Nwy8c6yNa81nEZNZelwJeo,485
@@ -64,16 +63,17 @@ isar/services/service_connections/mqtt/robot_info_publisher.py,sha256=5G6ahslydh
64
63
  isar/services/service_connections/stid/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
65
64
  isar/services/utilities/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
66
65
  isar/services/utilities/queue_utilities.py,sha256=Pw3hehSwkXJNeDv-bDVDfs58VOwtt3i5hpiJ2ZpphuQ,1225
66
+ isar/services/utilities/robot_utilities.py,sha256=4-ob4kcIiRN_GXFDBMwBadfbwpYqKEkyzyC40wzvmko,555
67
67
  isar/services/utilities/scheduling_utilities.py,sha256=UUMxhudY2mQRG6Edjq6BG7oxwlqmcu5h6fMyw4Vhl_o,8376
68
68
  isar/services/utilities/threaded_request.py,sha256=py4G-_RjnIdHljmKFAcQ6ddqMmp-ZYV39Ece-dqRqjs,1874
69
69
  isar/state_machine/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
70
- isar/state_machine/state_machine.py,sha256=ceH0WiQNVMYIe7mVuH62L7OPPGrj1Qx2FuToIYBRQlk,21820
70
+ isar/state_machine/state_machine.py,sha256=XwaUEEmPGiH9cuHKpNe09Ch6GXMbVp0Jckc3UHIAG6g,21762
71
71
  isar/state_machine/states_enum.py,sha256=BlrUcBWkM5K6D_UZXRwTaUgGpAagWmVZH6HhDBGzVU4,278
72
72
  isar/state_machine/states/__init__.py,sha256=kErbKPDTwNfCLijvdyN6_AuOqDwR23nu9F0Qovsnir4,218
73
73
  isar/state_machine/states/idle.py,sha256=wKEG3QzmEO3MfFCwbh9vBRZin3sby_cwXhm85Fke9-s,3224
74
74
  isar/state_machine/states/initialize.py,sha256=TVXV5Ps3N4_flM88j9pQiX88kZgLzLwzlJy_6hPbgcA,2359
75
75
  isar/state_machine/states/initiate.py,sha256=j1wvSC3zVODgRkKOVsQROiuWkjihSBtwCs5GsoivLvc,5655
76
- isar/state_machine/states/monitor.py,sha256=bcrLKftME7tWUGCwx_wj6myZToD4BBJT3jq9WMbpd0w,9874
76
+ isar/state_machine/states/monitor.py,sha256=lYtTSLa8KSTuhcH2qltF7Bj0icJ0xCuV2koFEc71enk,9864
77
77
  isar/state_machine/states/off.py,sha256=jjqN_oJMpBtWuY7hP-c9f0w3p2CYCfe-NpmYHHPnmyI,544
78
78
  isar/state_machine/states/offline.py,sha256=IfEZ6-kl6OfJSRT1eKHOey7AU23tKiSHqpwGqclmH_c,2166
79
79
  isar/state_machine/states/paused.py,sha256=TIg1iJvAxGUIfzE_qWp0wrq4Ka0a3zEf3GNwIWLIK0M,1177
@@ -86,7 +86,7 @@ isar/storage/storage_interface.py,sha256=DYDry4I7aZpDHJhsBF6s8zrgokFAc7fdKJKfA8A
86
86
  isar/storage/uploader.py,sha256=JBlgaHYdFFUPlkx0eI0HBhP93fr9PIPTaYp6HG0iMeU,6509
87
87
  isar/storage/utilities.py,sha256=AGqOzhnyPXSStpJjBstqQ4QgUoHJioQB2DJ1NqeWn_w,3136
88
88
  robot_interface/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
89
- robot_interface/robot_interface.py,sha256=TJjB1FNXxkKxen5zwfXdAUqqlTZ1pAl6St9SuCiwv1E,9086
89
+ robot_interface/robot_interface.py,sha256=fGmjW5IKRi7N-7mz0r-XOXx-hgYpH1ScrnRTFB7l_sQ,9539
90
90
  robot_interface/test_robot_interface.py,sha256=FV1urn7SbsMyWBIcTKjsBwAG4IsXeZ6pLHE0mA9EGGs,692
91
91
  robot_interface/models/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
92
92
  robot_interface/models/exceptions/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -100,17 +100,17 @@ robot_interface/models/mission/mission.py,sha256=FjrLagGqhk8x9y_fX7DwvApA_hdc7YJ
100
100
  robot_interface/models/mission/status.py,sha256=C_viZWNTYOncWCdurx7Pko_D9d595QmHuJZBT8YMHUg,724
101
101
  robot_interface/models/mission/task.py,sha256=Qy2XmOmk8HChXMe1y8Dn9PvgA2W98Ypd1VqPPNK8ILM,5118
102
102
  robot_interface/models/robots/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
103
+ robot_interface/models/robots/media.py,sha256=Bo6XisTND9MOsxvJe6mWtKumFCpX6pbEBzEnAKpoIpU,232
103
104
  robot_interface/models/robots/robot_model.py,sha256=pZQsqhn9hh6XE3EjMZhWMzYqg5oJ4CJ4CXeOASKvEf8,452
104
105
  robot_interface/telemetry/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
105
- robot_interface/telemetry/media_connection_type.py,sha256=Z8Jayi5SjBJh_xEd5KdS__A6bM-nofbSAedc6u41iAY,91
106
106
  robot_interface/telemetry/mqtt_client.py,sha256=DkzYZNWFaJkG3AVc0dM4Bj52hZEQj-14Q75zqzQcv9A,2988
107
- robot_interface/telemetry/payloads.py,sha256=FafpIwsOvcTNtaBZqyOX7r5EjG7nZ2uLNhyJo2l5GiI,1767
107
+ robot_interface/telemetry/payloads.py,sha256=JM5E_IHkZpim_zdwc-w52D7dYFBeP4iO1-xupOkHcFQ,1562
108
108
  robot_interface/utilities/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
109
109
  robot_interface/utilities/json_service.py,sha256=nU2Q_3P9Fq9hs6F_wtUjWtHfl_g1Siy-yDhXXSKwHwg,1018
110
110
  robot_interface/utilities/uuid_string_factory.py,sha256=_NQIbBQ56w0qqO0MUDP6aPpHbxW7ATRhK8HnQiBSLkc,76
111
- isar-1.24.2.dist-info/LICENSE,sha256=3fc2-ebLwHWwzfQbulGNRdcNob3SBQeCfEVUDYxsuqw,14058
112
- isar-1.24.2.dist-info/METADATA,sha256=Rh1FBaPlouwNa4sbVMC_qL66uHwrTzkGBrUsbx61WuI,30661
113
- isar-1.24.2.dist-info/WHEEL,sha256=PZUExdf71Ui_so67QXpySuHtCi3-J3wvF4ORK6k_S8U,91
114
- isar-1.24.2.dist-info/entry_points.txt,sha256=TFam7uNNw7J0iiDYzsH2gfG0u1eV1wh3JTw_HkhgKLk,49
115
- isar-1.24.2.dist-info/top_level.txt,sha256=UwIML2RtuQKCyJJkatcSnyp6-ldDjboB9k9JgKipO-U,21
116
- isar-1.24.2.dist-info/RECORD,,
111
+ isar-1.24.4.dist-info/LICENSE,sha256=3fc2-ebLwHWwzfQbulGNRdcNob3SBQeCfEVUDYxsuqw,14058
112
+ isar-1.24.4.dist-info/METADATA,sha256=i17yWOgbHOaHfq_zzUa3fYWYRHN9qdX9XY-msvcJ5f8,30661
113
+ isar-1.24.4.dist-info/WHEEL,sha256=PZUExdf71Ui_so67QXpySuHtCi3-J3wvF4ORK6k_S8U,91
114
+ isar-1.24.4.dist-info/entry_points.txt,sha256=TFam7uNNw7J0iiDYzsH2gfG0u1eV1wh3JTw_HkhgKLk,49
115
+ isar-1.24.4.dist-info/top_level.txt,sha256=UwIML2RtuQKCyJJkatcSnyp6-ldDjboB9k9JgKipO-U,21
116
+ isar-1.24.4.dist-info/RECORD,,
@@ -0,0 +1,13 @@
1
+ from dataclasses import dataclass
2
+ from enum import Enum
3
+
4
+
5
+ class MediaConnectionType(str, Enum):
6
+ LiveKit: str = "LiveKit"
7
+
8
+
9
+ @dataclass
10
+ class MediaConfig:
11
+ url: str
12
+ token: str
13
+ media_connection_type: MediaConnectionType
@@ -3,6 +3,7 @@ from queue import Queue
3
3
  from threading import Thread
4
4
  from typing import Callable, List
5
5
 
6
+ from robot_interface.models.robots.media import MediaConfig
6
7
  from robot_interface.models.initialize import InitializeParams
7
8
  from robot_interface.models.inspection.inspection import Inspection
8
9
  from robot_interface.models.mission.mission import Mission
@@ -224,6 +225,19 @@ class RobotInterface(metaclass=ABCMeta):
224
225
  """
225
226
  raise NotImplementedError
226
227
 
228
+ @abstractmethod
229
+ def generate_media_config(self) -> MediaConfig:
230
+ """
231
+ Generate a JSON containing the url and token needed to establish a media stream
232
+ connection to a robot.
233
+
234
+ Returns
235
+ -------
236
+ MediaConfig
237
+ An object containing the connection information for a media stream connection
238
+ """
239
+ raise NotImplementedError
240
+
227
241
  @abstractmethod
228
242
  def get_telemetry_publishers(
229
243
  self, queue: Queue, isar_id: str, robot_name: str
@@ -6,7 +6,6 @@ from alitra import Pose
6
6
  from transitions import State
7
7
 
8
8
  from robot_interface.models.mission.status import RobotStatus
9
- from robot_interface.telemetry.media_connection_type import MediaConnectionType
10
9
 
11
10
 
12
11
  @dataclass
@@ -56,13 +55,6 @@ class VideoStream:
56
55
  type: str
57
56
 
58
57
 
59
- @dataclass
60
- class MediaConfig(TelemetryPayload):
61
- url: str
62
- token: str
63
- media_connection_type: MediaConnectionType
64
-
65
-
66
58
  @dataclass
67
59
  class RobotStatusPayload:
68
60
  isar_id: str
File without changes
@@ -1,616 +0,0 @@
1
- from alitra import Frame, Orientation, Pose, Position
2
-
3
- # Euler heading to quaternion
4
- # East = 0 deg = (x=0, y=0, z=0, w=1)
5
- # North = 90 deg = (x=0, y=0, z=0.7071, w=0.7071)
6
- # West = 180 deg = (x=0, y=0, z=1, w=0)
7
- # South = 270 deg = (x=0, y=0, z=-0.7071, w=0.7071)
8
-
9
- robot_frame = Frame("robot")
10
- asset_frame = Frame("asset")
11
- predefined_poses = {
12
- #
13
- # K-lab VG2
14
- #
15
- # View from VG2 towards crane
16
- "20-PT-5583": Pose(
17
- position=Position(x=20257.979, y=5310.630, z=14.365, frame=asset_frame),
18
- orientation=Orientation(x=0, y=0, z=0, w=1, frame=asset_frame),
19
- frame=asset_frame,
20
- ),
21
- # Open area picture of fuse box
22
- "EJE-342-0231": Pose(
23
- position=Position(x=20252.559, y=5308.437, z=14.375, frame=asset_frame),
24
- orientation=Orientation(x=0, y=0, z=0, w=1, frame=asset_frame),
25
- frame=asset_frame,
26
- ),
27
- # Big valve straight behind the stairs. East heading
28
- "331-LD-525": Pose(
29
- position=Position(x=20254.540, y=5311.651, z=14.321, frame=asset_frame),
30
- orientation=Orientation(x=0, y=0, z=0, w=1, frame=asset_frame),
31
- frame=asset_frame,
32
- ),
33
- # Small valve close to utility station. East heading
34
- "344-LD-1024": Pose(
35
- position=Position(x=20260.593, y=5312.311, z=14.418, frame=asset_frame),
36
- orientation=Orientation(x=0, y=0, z=0, w=1, frame=asset_frame),
37
- frame=asset_frame,
38
- ),
39
- #
40
- # K-lab inlet area
41
- #
42
- "334-LD-0225": Pose(
43
- position=Position(x=1.63, y=1.724, z=0, frame=robot_frame),
44
- orientation=Orientation(x=0, y=0, z=0.5383686, w=0.8427095, frame=robot_frame),
45
- frame=robot_frame,
46
- ),
47
- "314-LD-1001": Pose(
48
- position=Position(x=24.853, y=23.761, z=0, frame=robot_frame),
49
- orientation=Orientation(x=0, y=0, z=0.998122, w=0.0612579, frame=robot_frame),
50
- frame=robot_frame,
51
- ),
52
- "346-LD-1073": Pose(
53
- position=Position(x=25.005, y=23.607, z=0, frame=robot_frame),
54
- orientation=Orientation(x=0, y=0, z=0.9995287, w=-0.0306988, frame=robot_frame),
55
- frame=robot_frame,
56
- ),
57
- "314-PI-001": Pose(
58
- position=Position(x=25.041, y=23.682, z=0, frame=robot_frame),
59
- orientation=Orientation(x=0, y=0, z=0.8907533, w=0.4544871, frame=robot_frame),
60
- frame=robot_frame,
61
- ),
62
- "300-LD-0025": Pose(
63
- position=Position(x=21.279, y=17.392, z=0, frame=robot_frame),
64
- orientation=Orientation(x=0, y=0, z=0.2006291, w=0.9796673, frame=robot_frame),
65
- frame=robot_frame,
66
- ),
67
- "344-LD-1001": Pose(
68
- position=Position(x=24.853, y=23.761, z=0, frame=robot_frame),
69
- orientation=Orientation(x=0, y=0, z=0.998122, w=0.0612579, frame=robot_frame),
70
- frame=robot_frame,
71
- ),
72
- "15-LD-0059": Pose(
73
- position=Position(x=27.297, y=22.686, z=0, frame=robot_frame),
74
- orientation=Orientation(x=0, y=0, z=0.9631559, w=0.2689439, frame=robot_frame),
75
- frame=robot_frame,
76
- ),
77
- "345-LD-1004": Pose(
78
- position=Position(x=20.293, y=20.982, z=0, frame=robot_frame),
79
- orientation=Orientation(x=0, y=0, z=0.5256679, w=0.8506899, frame=robot_frame),
80
- frame=robot_frame,
81
- ),
82
- # start of narrow passage
83
- "345-LD-003": Pose(
84
- position=Position(x=20.994, y=10.3, z=0, frame=robot_frame),
85
- orientation=Orientation(x=0, y=0, z=0.8963647, w=0.4433175, frame=robot_frame),
86
- frame=robot_frame,
87
- ),
88
- # end of narrow passage
89
- "345-LD-004": Pose(
90
- position=Position(x=16.609, y=15.444, z=0, frame=robot_frame),
91
- orientation=Orientation(x=0, y=0, z=0.999986, w=0.0052963, frame=robot_frame),
92
- frame=robot_frame,
93
- ),
94
- #
95
- # Compressor area K-lab
96
- #
97
- "355-LD-1003": Pose(
98
- position=Position(x=20248.440, y=5247.118, z=14.450, frame=asset_frame),
99
- orientation=Orientation(x=0, y=0, z=-0.054, w=0.998, frame=asset_frame),
100
- frame=asset_frame,
101
- ),
102
- "313-LD-1111": Pose(
103
- position=Position(x=20249.830, y=5246.737, z=14.450, frame=asset_frame),
104
- orientation=Orientation(x=0, y=0, z=0.999, w=-0.041, frame=asset_frame),
105
- frame=asset_frame,
106
- ),
107
- # 313-LD-1104 and 313-PA-101A has the same pose
108
- "313-LD-1104": Pose(
109
- position=Position(x=20250.720, y=5252.582, z=14.450, frame=asset_frame),
110
- orientation=Orientation(x=0, y=0, z=0.935, w=0.356, frame=asset_frame),
111
- frame=asset_frame,
112
- ),
113
- # 313-LD-1104 and 313-PA-101A has the same pose
114
- "313-PA-101A": Pose(
115
- position=Position(x=20252.860, y=5252.368, z=14.450, frame=asset_frame),
116
- orientation=Orientation(x=0, y=0, z=0.935, w=0.357, frame=asset_frame),
117
- frame=asset_frame,
118
- ),
119
- #
120
- # Second Floor K-Lab Compressor area
121
- #
122
- # 300-LD-0066 and 300-XCV-003 has the same pose
123
- # Robot Orientation: 90 deg
124
- "300-LD-0066": Pose(
125
- position=Position(x=20259.220, y=5241.849, z=16.880, frame=asset_frame),
126
- orientation=Orientation(x=0, y=0, z=0.935, w=0.357, frame=asset_frame),
127
- frame=asset_frame,
128
- ),
129
- # 300-LD-0066 and 300-XCV-003 has the same pose
130
- # Robot Orientation: 90 deg
131
- "300-XCV-003": Pose(
132
- position=Position(x=20259.220, y=5241.849, z=16.880, frame=asset_frame),
133
- orientation=Orientation(x=0, y=0, z=0.935, w=0.357, frame=asset_frame),
134
- frame=asset_frame,
135
- ),
136
- # Robot Orientation: 0 deg
137
- "313-LD-1248": Pose(
138
- position=Position(x=20256.540, y=5243.902, z=16.880, frame=asset_frame),
139
- orientation=Orientation(x=0, y=0, z=0.935, w=0.357, frame=asset_frame),
140
- frame=asset_frame,
141
- ),
142
- # Robot Orientation: 0 deg
143
- "313-FG-136": Pose(
144
- position=Position(x=20256.470, y=5243.299, z=16.880, frame=asset_frame),
145
- orientation=Orientation(x=0, y=0, z=0.935, w=0.357, frame=asset_frame),
146
- frame=asset_frame,
147
- ),
148
- # 313-LD-1177 and 313-LD-1135 has the same pose
149
- # Robot Orientation: 270 deg
150
- "313-LD-1177": Pose(
151
- position=Position(x=20254.740, y=5242.001, z=16.880, frame=asset_frame),
152
- orientation=Orientation(x=0, y=0, z=0.935, w=0.357, frame=asset_frame),
153
- frame=asset_frame,
154
- ),
155
- # 313-LD-1177 and 313-LD-1135 has the same pose
156
- # Robot Orientation: 270 deg
157
- "313-LD-1135": Pose(
158
- position=Position(x=20254.740, y=5242.001, z=16.880, frame=asset_frame),
159
- orientation=Orientation(x=0, y=0, z=0.935, w=0.357, frame=asset_frame),
160
- frame=asset_frame,
161
- ),
162
- # Robot Orientation: 270 deg
163
- "313-LD-1133": Pose(
164
- position=Position(x=20252.960, y=5241.896, z=16.880, frame=asset_frame),
165
- orientation=Orientation(x=0, y=0, z=0.935, w=0.357, frame=asset_frame),
166
- frame=asset_frame,
167
- ),
168
- # Robot Orientation: 270 deg
169
- "313-FG-135": Pose(
170
- position=Position(x=20252.100, y=5241.975, z=16.880, frame=asset_frame),
171
- orientation=Orientation(x=0, y=0, z=0.935, w=0.357, frame=asset_frame),
172
- frame=asset_frame,
173
- ),
174
- # 313-LD-1243 and 313-LD-1242 has the same pose
175
- # Robot Orientation: 180 deg
176
- "313-LD-1243": Pose(
177
- position=Position(x=20256.640, y=5243.246, z=16.880, frame=asset_frame),
178
- orientation=Orientation(x=0, y=0, z=0.935, w=0.357, frame=asset_frame),
179
- frame=asset_frame,
180
- ),
181
- # 313-LD-1243 and 313-LD-1242 has the same pose
182
- # Robot Orientation: 180 deg
183
- "313-LD-1242": Pose(
184
- position=Position(x=20256.640, y=5243.246, z=16.880, frame=asset_frame),
185
- orientation=Orientation(x=0, y=0, z=0.935, w=0.357, frame=asset_frame),
186
- frame=asset_frame,
187
- ),
188
- # Robot Orientation: 270 deg
189
- "313-LD-1037": Pose(
190
- position=Position(x=20254.650, y=5242.229, z=16.880, frame=asset_frame),
191
- orientation=Orientation(x=0, y=0, z=0.935, w=0.357, frame=asset_frame),
192
- frame=asset_frame,
193
- ),
194
- # Robot Orientation: 270 deg
195
- "313-LD-1050": Pose(
196
- position=Position(x=20252.560, y=5241.928, z=16.880, frame=asset_frame),
197
- orientation=Orientation(x=0, y=0, z=0.935, w=0.357, frame=asset_frame),
198
- frame=asset_frame,
199
- ),
200
- # Robot Orientation: 270 deg
201
- "313-TT-1102C": Pose(
202
- position=Position(x=20252.250, y=5242.033, z=16.880, frame=asset_frame),
203
- orientation=Orientation(x=0, y=0, z=0.935, w=0.357, frame=asset_frame),
204
- frame=asset_frame,
205
- ),
206
- # 313-LD-1241 and 313-LD-1240 has the same pose
207
- # Robot Orientation: 270 deg
208
- "313-LD-1241": Pose(
209
- position=Position(x=20252.210, y=5241.930, z=16.880, frame=asset_frame),
210
- orientation=Orientation(x=0, y=0, z=0.935, w=0.357, frame=asset_frame),
211
- frame=asset_frame,
212
- ),
213
- # 313-LD-1241 and 313-LD-1240 has the same pose
214
- # Robot Orientation: 270 deg
215
- "313-LD-1240": Pose(
216
- position=Position(x=20252.210, y=5241.930, z=16.880, frame=asset_frame),
217
- orientation=Orientation(x=0, y=0, z=0.935, w=0.357, frame=asset_frame),
218
- frame=asset_frame,
219
- ),
220
- # Robot Orientation: 270 deg
221
- "313-LD-1056": Pose(
222
- position=Position(x=20256.470, y=5241.838, z=16.880, frame=asset_frame),
223
- orientation=Orientation(x=0, y=0, z=0.935, w=0.357, frame=asset_frame),
224
- frame=asset_frame,
225
- ),
226
- # Robot Orientation: 270 deg
227
- "313-LD-1060": Pose(
228
- position=Position(x=20253.920, y=5246.332, z=16.880, frame=asset_frame),
229
- orientation=Orientation(x=0, y=0, z=0.935, w=0.357, frame=asset_frame),
230
- frame=asset_frame,
231
- ),
232
- # Robot Orientation: 90 deg
233
- "313-PT-1012": Pose(
234
- position=Position(x=20252.940, y=5246.394, z=16.880, frame=asset_frame),
235
- orientation=Orientation(x=0, y=0, z=0.935, w=0.357, frame=asset_frame),
236
- frame=asset_frame,
237
- ),
238
- # 313-PT-1061B and 313-LD-1257 has the same pose
239
- # Robot Orientation: 90 deg
240
- "313-PT-1016B": Pose(
241
- position=Position(x=20250.430, y=5246.008, z=16.880, frame=asset_frame),
242
- orientation=Orientation(x=0, y=0, z=0.935, w=0.357, frame=asset_frame),
243
- frame=asset_frame,
244
- ),
245
- # 313-PT-1061B and 313-LD-1257 has the same pose
246
- # Robot Orientation: 90 deg
247
- "313-LD-1257": Pose(
248
- position=Position(x=20250.430, y=5246.008, z=16.880, frame=asset_frame),
249
- orientation=Orientation(x=0, y=0, z=0.935, w=0.357, frame=asset_frame),
250
- frame=asset_frame,
251
- ),
252
- # 355-LD-1079 Robot orientation 90 degrees
253
- "355-LD-1079": Pose(
254
- position=Position(x=20252.630, y=5253.167, z=18.540, frame=asset_frame),
255
- orientation=Orientation(x=0, y=0, z=0.935, w=0.357, frame=asset_frame),
256
- frame=asset_frame,
257
- ),
258
- # 331-EV-1009 Robot orientation 90 degrees
259
- "331-EV-1009": Pose(
260
- position=Position(x=20255.710, y=5252.991, z=18.540, frame=asset_frame),
261
- orientation=Orientation(x=0, y=0, z=0.935, w=0.357, frame=asset_frame),
262
- frame=asset_frame,
263
- ),
264
- # 313-LD-1094 Robot orientation 90 degrees
265
- "313-LD-1094": Pose(
266
- position=Position(x=20255.710, y=5252.980, z=18.540, frame=asset_frame),
267
- orientation=Orientation(x=0, y=0, z=0.935, w=0.357, frame=asset_frame),
268
- frame=asset_frame,
269
- ),
270
- # 313-LD-1095 Robot orientation 135 degrees
271
- "313-LD-1095": Pose(
272
- position=Position(x=20256.860, y=5252.572, z=18.540, frame=asset_frame),
273
- orientation=Orientation(x=0, y=0, z=0.935, w=0.357, frame=asset_frame),
274
- frame=asset_frame,
275
- ),
276
- # 313-LD-1213 Robot orientation 180 degrees
277
- "313-LD-1213": Pose(
278
- position=Position(x=20257.070, y=5250.289, z=18.540, frame=asset_frame),
279
- orientation=Orientation(x=0, y=0, z=0.935, w=0.357, frame=asset_frame),
280
- frame=asset_frame,
281
- ),
282
- # 313-LD-1214 Robot orientation 180 degrees
283
- "313-LD-1214": Pose(
284
- position=Position(x=20257.070, y=5250.289, z=18.540, frame=asset_frame),
285
- orientation=Orientation(x=0, y=0, z=0.935, w=0.357, frame=asset_frame),
286
- frame=asset_frame,
287
- ),
288
- # 300-LD-1001 Robot orientation 235 degrees. Part above in 4th floor
289
- "300-LD-1001": Pose(
290
- position=Position(x=20257.000, y=5248.983, z=18.540, frame=asset_frame),
291
- orientation=Orientation(x=0, y=0, z=0.935, w=0.357, frame=asset_frame),
292
- frame=asset_frame,
293
- ),
294
- # 300-LD-1002 Robot orientation 235 degrees. Part above in 4th floor
295
- "300-LD-1002": Pose(
296
- position=Position(x=20257.000, y=5248.983, z=18.540, frame=asset_frame),
297
- orientation=Orientation(x=0, y=0, z=0.935, w=0.357, frame=asset_frame),
298
- frame=asset_frame,
299
- ),
300
- # 313-JA-001 Robot orientation 270 degrees
301
- "313-JA-001": Pose(
302
- position=Position(x=20255.810, y=5248.977, z=18.540, frame=asset_frame),
303
- orientation=Orientation(x=0, y=0, z=0.935, w=0.357, frame=asset_frame),
304
- frame=asset_frame,
305
- ),
306
- # 313-HH-001 Robot orientation 0 degrees. Should have photo from other side?
307
- # Implementation of handling several photos for same part?
308
- "313-HH-001": Pose(
309
- position=Position(x=20250.810, y=5249.645, z=18.540, frame=asset_frame),
310
- orientation=Orientation(x=0, y=0, z=0.935, w=0.357, frame=asset_frame),
311
- frame=asset_frame,
312
- ),
313
- # EJE-342-1004.08 Robot orientation 0 degrees
314
- "EJE-342-1004.08": Pose(
315
- position=Position(x=20251.050, y=5251.786, z=18.540, frame=asset_frame),
316
- orientation=Orientation(x=0, y=0, z=0.935, w=0.357, frame=asset_frame),
317
- frame=asset_frame,
318
- ),
319
- # EJE-342-0226.10 Robot orientation 90 degrees
320
- "EJE-342-0226.10": Pose(
321
- position=Position(x=20252.070, y=5253.136, z=18.540, frame=asset_frame),
322
- orientation=Orientation(x=0, y=0, z=0.935, w=0.357, frame=asset_frame),
323
- frame=asset_frame,
324
- ),
325
- # EJE-342-1004.03 Robot orientation 90 degrees
326
- "EJE-342-1004.03": Pose(
327
- position=Position(x=20252.630, y=5253.136, z=18.540, frame=asset_frame),
328
- orientation=Orientation(x=0, y=0, z=0.935, w=0.357, frame=asset_frame),
329
- frame=asset_frame,
330
- ),
331
- # 313-KG-001 Robot orientation 90 degrees. Pose on stairs
332
- "313-KG-001": Pose(
333
- position=Position(x=20253.900, y=5253.020, z=18.735, frame=asset_frame),
334
- orientation=Orientation(x=0, y=0, z=0.935, w=0.357, frame=asset_frame),
335
- frame=asset_frame,
336
- ),
337
- # JBZS-313-021 Robot orientation 270 degrees
338
- "JBZS-313-021": Pose(
339
- position=Position(x=20250.000, y=5253.155, z=18.540, frame=asset_frame),
340
- orientation=Orientation(x=0, y=0, z=0.935, w=0.357, frame=asset_frame),
341
- frame=asset_frame,
342
- ),
343
- # JBZS-313-024 Robot orientation 315 degrees
344
- "JBZS-313-024": Pose(
345
- position=Position(x=20250.160, y=5249.555, z=18.540, frame=asset_frame),
346
- orientation=Orientation(x=0, y=0, z=0.935, w=0.357, frame=asset_frame),
347
- frame=asset_frame,
348
- ),
349
- # JBES-313-003 Robot orientation 315 degrees
350
- "JBES-313-003": Pose(
351
- position=Position(x=20250.160, y=5249.555, z=18.540, frame=asset_frame),
352
- orientation=Orientation(x=0, y=0, z=0.935, w=0.357, frame=asset_frame),
353
- frame=asset_frame,
354
- ),
355
- #
356
- # AP520 & AP530
357
- #
358
- # A-VB20-0292 Car seal valve south heading
359
- "A-VB20-0292": Pose(
360
- position=Position(x=309.978, y=108.173, z=536.850, frame=asset_frame),
361
- orientation=Orientation(x=0, y=0, z=-0.7071, w=0.7071, frame=asset_frame),
362
- frame=asset_frame,
363
- ),
364
- # A-VB20-0656 Car seal valve south heading
365
- "A-VB20-0656": Pose(
366
- position=Position(x=309.931, y=103.610, z=536.850, frame=asset_frame),
367
- orientation=Orientation(x=0, y=0, z=-0.7071, w=0.7071, frame=asset_frame),
368
- frame=asset_frame,
369
- ),
370
- # A-VB23-0111 Car seal valve east heading
371
- "A-VB23-0111": Pose(
372
- position=Position(x=319.502, y=90.022, z=536.850, frame=asset_frame),
373
- orientation=Orientation(x=0, y=0, z=0, w=1, frame=asset_frame),
374
- frame=asset_frame,
375
- ),
376
- # A-VB23-0118 Car seal valve west heading
377
- "A-VB23-0118": Pose(
378
- position=Position(x=319.865, y=112.225, z=536.850, frame=asset_frame),
379
- orientation=Orientation(x=0, y=0, z=1, w=0, frame=asset_frame),
380
- frame=asset_frame,
381
- ),
382
- # A-VB50-0119 Car seal valve south heading
383
- "A-VB50-0119": Pose(
384
- position=Position(x=312.504, y=102.436, z=536.850, frame=asset_frame),
385
- orientation=Orientation(x=0, y=0, z=-0.7071, w=0.7071, frame=asset_frame),
386
- frame=asset_frame,
387
- ),
388
- # A-VB50-0150 Car seal valve east heading
389
- "A-VB50-0150": Pose(
390
- position=Position(x=316.401, y=110.011, z=536.850, frame=asset_frame),
391
- orientation=Orientation(x=0, y=0, z=0, w=1, frame=asset_frame),
392
- frame=asset_frame,
393
- ),
394
- # A-VB64-0095 Car seal valve south heading
395
- "A-VB64-0095": Pose(
396
- position=Position(x=310.027, y=105.676, z=536.850, frame=asset_frame),
397
- orientation=Orientation(x=0, y=0, z=-0.7071, w=0.7071, frame=asset_frame),
398
- frame=asset_frame,
399
- ),
400
- # A-VB64-0096 Car seal valve south heading
401
- "A-VB64-0096": Pose(
402
- position=Position(x=310.120, y=104.511, z=536.850, frame=asset_frame),
403
- orientation=Orientation(x=0, y=0, z=-0.7071, w=0.7071, frame=asset_frame),
404
- frame=asset_frame,
405
- ),
406
- # A-VB64-0100 Car seal valve south heading
407
- "A-VB64-0100": Pose(
408
- position=Position(x=310.041, y=100.015, z=536.850, frame=asset_frame),
409
- orientation=Orientation(x=0, y=0, z=-0.7071, w=0.7071, frame=asset_frame),
410
- frame=asset_frame,
411
- ),
412
- # A-VB64-0101 Car seal valve south heading
413
- "A-VB64-0101": Pose(
414
- position=Position(x=310.041, y=100.015, z=536.850, frame=asset_frame),
415
- orientation=Orientation(x=0, y=0, z=-0.7071, w=0.7071, frame=asset_frame),
416
- frame=asset_frame,
417
- ),
418
- # A-VB23-0147 Car seal valve east heading
419
- "A-VB23-0147": Pose(
420
- position=Position(x=333.650, y=112.330, z=536.850, frame=asset_frame),
421
- orientation=Orientation(x=0, y=0, z=0, w=1, frame=asset_frame),
422
- frame=asset_frame,
423
- ),
424
- # A-VB23-0392 Car seal valve east heading
425
- "A-VB23-0392": Pose(
426
- position=Position(x=334.744, y=90.333, z=536.850, frame=asset_frame),
427
- orientation=Orientation(x=0, y=0, z=0, w=1, frame=asset_frame),
428
- frame=asset_frame,
429
- ),
430
- # A-VB23-0539 Car seal valve east heading
431
- "A-VB23-0539": Pose(
432
- position=Position(x=335.099, y=112.361, z=536.850, frame=asset_frame),
433
- orientation=Orientation(x=0, y=0, z=0, w=1, frame=asset_frame),
434
- frame=asset_frame,
435
- ),
436
- # A-VB23-0398 Car seal valve east heading
437
- "A-VB23-0398": Pose(
438
- position=Position(x=343.198, y=87.717, z=536.850, frame=asset_frame),
439
- orientation=Orientation(x=0, y=0, z=0, w=1, frame=asset_frame),
440
- frame=asset_frame,
441
- ),
442
- # A-VB23-0545 Car seal valve east heading
443
- "A-VB23-0545": Pose(
444
- position=Position(x=343.959, y=112.298, z=536.850, frame=asset_frame),
445
- orientation=Orientation(x=0, y=0, z=0, w=1, frame=asset_frame),
446
- frame=asset_frame,
447
- ),
448
- # A-VF50-0153 Car seal valve east heading
449
- "A-VF50-0153": Pose(
450
- position=Position(x=338.766, y=101.248, z=536.850, frame=asset_frame),
451
- orientation=Orientation(x=0, y=0, z=0, w=1, frame=asset_frame),
452
- frame=asset_frame,
453
- ),
454
- # A-VF50-0154 Car seal valve east heading
455
- "A-VF50-0154": Pose(
456
- position=Position(x=337.611, y=109.592, z=536.850, frame=asset_frame),
457
- orientation=Orientation(x=0, y=0, z=0, w=1, frame=asset_frame),
458
- frame=asset_frame,
459
- ),
460
- # A-VB23-0183 Car seal valve east heading
461
- "A-VB23-0183": Pose(
462
- position=Position(x=341.412, y=83.433, z=536.850, frame=asset_frame),
463
- orientation=Orientation(x=0, y=0, z=0, w=1, frame=asset_frame),
464
- frame=asset_frame,
465
- ),
466
- #
467
- # AP430
468
- #
469
- # A-VB20-0039 Car seal valve East
470
- "A-VB20-0039": Pose(
471
- position=Position(x=328.343, y=83.986, z=531.850, frame=asset_frame),
472
- orientation=Orientation(x=0, y=0, z=0, w=1, frame=asset_frame),
473
- frame=asset_frame,
474
- ),
475
- # A-VG23-0104 Car seal valve South
476
- "A-VG23-0104": Pose(
477
- position=Position(x=323.073, y=101.064, z=531.850, frame=asset_frame),
478
- orientation=Orientation(x=0, y=0, z=-0.707, w=0.707, frame=asset_frame),
479
- frame=asset_frame,
480
- ),
481
- # A-VG40-0367 Car seal valve North
482
- "A-VG40-0367": Pose(
483
- position=Position(x=332.231, y=92.935, z=531.850, frame=asset_frame),
484
- orientation=Orientation(x=0, y=0, z=0.707, w=0.707, frame=asset_frame),
485
- frame=asset_frame,
486
- ),
487
- # A-VM23-0399 Car seal valve South
488
- "A-VM23-0399": Pose(
489
- position=Position(x=344.574, y=88.770, z=531.850, frame=asset_frame),
490
- orientation=Orientation(x=0, y=0, z=-0.707, w=0.707, frame=asset_frame),
491
- frame=asset_frame,
492
- ),
493
- # A-VB24-0032 Car seal valve South
494
- "A-VB24-0032": Pose(
495
- position=Position(x=341.830, y=90.141, z=531.850, frame=asset_frame),
496
- orientation=Orientation(x=0, y=0, z=-0.707, w=0.707, frame=asset_frame),
497
- frame=asset_frame,
498
- ),
499
- # Home on JS weather deck
500
- # A-72SP123 Fire extinguisher east heading
501
- "A-72SP123": Pose(
502
- position=Position(x=13.453, y=10.317, z=0, frame=robot_frame),
503
- orientation=Orientation(x=0, y=0, z=0, w=1, frame=robot_frame),
504
- frame=robot_frame,
505
- ),
506
- # Home on JS intermediate deck
507
- # Fire extinguisher east heading
508
- "A-72SP102": Pose(
509
- position=Position(x=17, y=10.9, z=0, frame=robot_frame),
510
- orientation=Orientation(x=0, y=0, z=0, w=1, frame=robot_frame),
511
- frame=robot_frame,
512
- ),
513
- #
514
- # AQ200
515
- #
516
- "VG29-4269": Pose(
517
- position=Position(x=155.5, y=289.8, z=40.8, frame=asset_frame),
518
- orientation=Orientation(x=0, y=0, z=1, w=0, frame=asset_frame),
519
- frame=asset_frame,
520
- ),
521
- "29PT0183": Pose(
522
- position=Position(x=152.5, y=289.9, z=40.8, frame=asset_frame),
523
- orientation=Orientation(x=0, y=0, z=1, w=0, frame=asset_frame),
524
- frame=asset_frame,
525
- ),
526
- "VB64-4037": Pose(
527
- position=Position(x=149.25, y=292.16, z=40.8, frame=asset_frame),
528
- orientation=Orientation(x=0, y=0, z=1, w=0, frame=asset_frame),
529
- frame=asset_frame,
530
- ),
531
- "VG53-4024": Pose(
532
- position=Position(x=151.5, y=286, z=40.8, frame=asset_frame),
533
- orientation=Orientation(x=0, y=0, z=-0.7071, w=0.7071, frame=asset_frame),
534
- frame=asset_frame,
535
- ),
536
- "VF29-4270": Pose(
537
- position=Position(x=153.35, y=285.56, z=40.8, frame=asset_frame),
538
- orientation=Orientation(x=0, y=0, z=0, w=1, frame=asset_frame),
539
- frame=asset_frame,
540
- ),
541
- "VG29-4352": Pose(
542
- position=Position(x=155.2, y=285.63, z=40.8, frame=asset_frame),
543
- orientation=Orientation(x=0, y=0, z=0, w=1, frame=asset_frame),
544
- frame=asset_frame,
545
- ),
546
- "VG29-4249": Pose(
547
- position=Position(x=154.24, y=282.04, z=40.8, frame=asset_frame),
548
- orientation=Orientation(x=0, y=0, z=1, w=0, frame=asset_frame),
549
- frame=asset_frame,
550
- ),
551
- "29LT0112": Pose(
552
- position=Position(x=150.88, y=279.84, z=40.8, frame=asset_frame),
553
- orientation=Orientation(x=0, y=0, z=1, w=0, frame=asset_frame),
554
- frame=asset_frame,
555
- ),
556
- "29XU0188": Pose(
557
- position=Position(x=157.46, y=277.14, z=40.8, frame=asset_frame),
558
- orientation=Orientation(x=0, y=0, z=-0.7071, w=0.7071, frame=asset_frame),
559
- frame=asset_frame,
560
- ),
561
- "VB71-4216": Pose(
562
- position=Position(x=160.75, y=276.86, z=40.8, frame=asset_frame),
563
- orientation=Orientation(x=0, y=0, z=0, w=1, frame=asset_frame),
564
- frame=asset_frame,
565
- ),
566
- "VG29-4337": Pose(
567
- position=Position(x=160.1, y=278.2, z=40.8, frame=asset_frame),
568
- orientation=Orientation(x=0, y=0, z=0.7071, w=0.7071, frame=asset_frame),
569
- frame=asset_frame,
570
- ),
571
- "VG29-4335": Pose(
572
- position=Position(x=160.07, y=279.07, z=40.8, frame=asset_frame),
573
- orientation=Orientation(x=0, y=0, z=0.7071, w=0.7071, frame=asset_frame),
574
- frame=asset_frame,
575
- ),
576
- "VG29-4333": Pose(
577
- position=Position(x=160.01, y=279.78, z=40.8, frame=asset_frame),
578
- orientation=Orientation(x=0, y=0, z=0.7071, w=0.7071, frame=asset_frame),
579
- frame=asset_frame,
580
- ),
581
- "VG29-4331": Pose(
582
- position=Position(x=160.1, y=280.65, z=40.8, frame=asset_frame),
583
- orientation=Orientation(x=0, y=0, z=0.7071, w=0.7071, frame=asset_frame),
584
- frame=asset_frame,
585
- ),
586
- "VG29-4329": Pose(
587
- position=Position(x=160.12, y=281.56, z=40.8, frame=asset_frame),
588
- orientation=Orientation(x=0, y=0, z=0.7071, w=0.7071, frame=asset_frame),
589
- frame=asset_frame,
590
- ),
591
- "VG29-4327": Pose(
592
- position=Position(x=160.08, y=282.39, z=40.8, frame=asset_frame),
593
- orientation=Orientation(x=0, y=0, z=0.7071, w=0.7071, frame=asset_frame),
594
- frame=asset_frame,
595
- ),
596
- "VG29-4325": Pose(
597
- position=Position(x=160.08, y=282.54, z=40.8, frame=asset_frame),
598
- orientation=Orientation(x=0, y=0, z=0.7071, w=0.7071, frame=asset_frame),
599
- frame=asset_frame,
600
- ),
601
- "29PT0214": Pose(
602
- position=Position(x=161.81, y=282.98, z=40.8, frame=asset_frame),
603
- orientation=Orientation(x=0, y=0, z=0, w=1, frame=asset_frame),
604
- frame=asset_frame,
605
- ),
606
- "72SP211": Pose(
607
- position=Position(x=147.07, y=280.34, z=40.8, frame=asset_frame),
608
- orientation=Orientation(x=0, y=0, z=1, w=0, frame=asset_frame),
609
- frame=asset_frame,
610
- ),
611
- "VG63-4001 ": Pose(
612
- position=Position(x=148.19, y=287.14, z=40.8, frame=asset_frame),
613
- orientation=Orientation(x=0, y=0, z=0, w=1, frame=asset_frame),
614
- frame=asset_frame,
615
- ),
616
- }
@@ -1,5 +0,0 @@
1
- from enum import Enum
2
-
3
-
4
- class MediaConnectionType(str, Enum):
5
- LiveKit: str = "LiveKit"
File without changes
File without changes