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 +21 -1
- isar/apis/models/start_mission_definition.py +1 -1
- isar/apis/robot_control/robot_controller.py +35 -0
- isar/apis/schedule/scheduling_controller.py +0 -10
- isar/config/keyvault/keyvault_service.py +1 -1
- isar/modules.py +22 -3
- isar/services/utilities/robot_utilities.py +23 -0
- isar/state_machine/state_machine.py +0 -2
- isar/state_machine/states/monitor.py +1 -1
- {isar-1.24.2.dist-info → isar-1.24.4.dist-info}/METADATA +1 -1
- {isar-1.24.2.dist-info → isar-1.24.4.dist-info}/RECORD +18 -18
- robot_interface/models/robots/media.py +13 -0
- robot_interface/robot_interface.py +14 -0
- robot_interface/telemetry/payloads.py +0 -8
- isar/config/predefined_poses/__init__.py +0 -0
- isar/config/predefined_poses/predefined_poses.py +0 -616
- robot_interface/telemetry/media_connection_type.py +0 -5
- {isar-1.24.2.dist-info → isar-1.24.4.dist-info}/LICENSE +0 -0
- {isar-1.24.2.dist-info → isar-1.24.4.dist-info}/WHEEL +0 -0
- {isar-1.24.2.dist-info → isar-1.24.4.dist-info}/entry_points.txt +0 -0
- {isar-1.24.2.dist-info → isar-1.24.4.dist-info}/top_level.txt +0 -0
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.
|
|
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)"
|
|
@@ -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
|
|
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
|
|
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": (
|
|
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,
|
|
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,13 +1,14 @@
|
|
|
1
1
|
isar/__init__.py,sha256=cH8p8bVveu3FUL6kBhldcSlLaoHgD82Kd0-SwSNfGXw,87
|
|
2
|
-
isar/modules.py,sha256=
|
|
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=
|
|
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=
|
|
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=
|
|
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=
|
|
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=
|
|
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=
|
|
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=
|
|
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=
|
|
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.
|
|
112
|
-
isar-1.24.
|
|
113
|
-
isar-1.24.
|
|
114
|
-
isar-1.24.
|
|
115
|
-
isar-1.24.
|
|
116
|
-
isar-1.24.
|
|
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,,
|
|
@@ -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
|
-
}
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|