wandelbots-api-client 26.2.0.dev61__py3-none-any.whl → 26.2.0.dev63__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (32) hide show
  1. wandelbots_api_client/__init__.py +1 -1
  2. wandelbots_api_client/api_client.py +1 -1
  3. wandelbots_api_client/configuration.py +1 -1
  4. wandelbots_api_client/v2/__init__.py +1 -1
  5. wandelbots_api_client/v2/api/robot_configurations_api.py +278 -0
  6. wandelbots_api_client/v2/api/trajectory_planning_api.py +296 -0
  7. wandelbots_api_client/v2/api/virtual_controller_api.py +3 -3
  8. wandelbots_api_client/v2/api_client.py +1 -1
  9. wandelbots_api_client/v2/configuration.py +1 -1
  10. wandelbots_api_client/v2/models/__init__.py +18 -0
  11. wandelbots_api_client/v2/models/merge_trajectories422_response.py +108 -0
  12. wandelbots_api_client/v2/models/merge_trajectories_error.py +97 -0
  13. wandelbots_api_client/v2/models/merge_trajectories_request.py +114 -0
  14. wandelbots_api_client/v2/models/merge_trajectories_response.py +114 -0
  15. wandelbots_api_client/v2/models/merge_trajectories_response_feedback_inner.py +137 -0
  16. wandelbots_api_client/v2/models/merge_trajectories_segment.py +123 -0
  17. wandelbots_api_client/v2/models/merge_trajectories_validation_error.py +120 -0
  18. wandelbots_api_client/v2/models/motion_group_from_json.py +3 -3
  19. wandelbots_api_client/v2/models/robot_controller_configuration_request.py +110 -0
  20. wandelbots_api_client/v2/models/trajectory_section.py +93 -0
  21. wandelbots_api_client/v2_pydantic/__init__.py +1 -1
  22. wandelbots_api_client/v2_pydantic/api/robot_configurations_api.py +281 -0
  23. wandelbots_api_client/v2_pydantic/api/trajectory_planning_api.py +299 -0
  24. wandelbots_api_client/v2_pydantic/api/virtual_controller_api.py +3 -3
  25. wandelbots_api_client/v2_pydantic/api_client.py +1 -1
  26. wandelbots_api_client/v2_pydantic/configuration.py +1 -1
  27. wandelbots_api_client/v2_pydantic/models.py +101 -2
  28. {wandelbots_api_client-26.2.0.dev61.dist-info → wandelbots_api_client-26.2.0.dev63.dist-info}/METADATA +2 -2
  29. {wandelbots_api_client-26.2.0.dev61.dist-info → wandelbots_api_client-26.2.0.dev63.dist-info}/RECORD +32 -23
  30. {wandelbots_api_client-26.2.0.dev61.dist-info → wandelbots_api_client-26.2.0.dev63.dist-info}/WHEEL +0 -0
  31. {wandelbots_api_client-26.2.0.dev61.dist-info → wandelbots_api_client-26.2.0.dev63.dist-info}/licenses/LICENSE +0 -0
  32. {wandelbots_api_client-26.2.0.dev61.dist-info → wandelbots_api_client-26.2.0.dev63.dist-info}/top_level.txt +0 -0
@@ -13,7 +13,7 @@
13
13
  Do not edit the class manually.
14
14
  """ # noqa: E501
15
15
 
16
- __version__ = "26.2.0.dev61"
16
+ __version__ = "26.2.0.dev63"
17
17
 
18
18
  from . import models
19
19
  from . import api
@@ -91,7 +91,7 @@ class ApiClient:
91
91
  self.default_headers[header_name] = header_value
92
92
  self.cookie = cookie
93
93
  # Set default User-Agent.
94
- self.user_agent = 'Wandelbots-Nova-API-Python-Client/26.2.0.dev61'
94
+ self.user_agent = 'Wandelbots-Nova-API-Python-Client/26.2.0.dev63'
95
95
  self.client_side_validation = configuration.client_side_validation
96
96
 
97
97
  async def __aenter__(self):
@@ -511,7 +511,7 @@ class Configuration:
511
511
  "OS: {env}\n"\
512
512
  "Python Version: {pyversion}\n"\
513
513
  "Version of the API: 1.3.0 dev\n"\
514
- "SDK Package Version: 26.2.0.dev61".\
514
+ "SDK Package Version: 26.2.0.dev63".\
515
515
  format(env=sys.platform, pyversion=sys.version)
516
516
 
517
517
  def get_host_settings(self) -> List[HostSetting]:
@@ -13,7 +13,7 @@
13
13
  Do not edit the class manually.
14
14
  """ # noqa: E501
15
15
 
16
- __version__ = "26.2.0.dev61"
16
+ __version__ = "26.2.0.dev63"
17
17
 
18
18
  from . import models
19
19
  from . import api
@@ -24,6 +24,8 @@ from urllib.parse import quote
24
24
 
25
25
  from pydantic import StrictStr
26
26
  from typing import List
27
+ from wandelbots_api_client.v2.models.robot_controller import RobotController
28
+ from wandelbots_api_client.v2.models.robot_controller_configuration_request import RobotControllerConfigurationRequest
27
29
 
28
30
  from wandelbots_api_client.v2.api_client import ApiClient, RequestSerialized
29
31
  from wandelbots_api_client.v2.api_response import ApiResponse
@@ -41,6 +43,282 @@ class RobotConfigurationsApi:
41
43
  api_client = ApiClient.get_default()
42
44
  self.api_client = api_client
43
45
 
46
+ @validate_call
47
+ async def get_controller_config_from_arp_scan(
48
+ self,
49
+ robot_controller_configuration_request: RobotControllerConfigurationRequest,
50
+ _request_timeout: Union[
51
+ None,
52
+ Annotated[StrictFloat, Field(gt=0)],
53
+ Tuple[
54
+ Annotated[StrictFloat, Field(gt=0)],
55
+ Annotated[StrictFloat, Field(gt=0)]
56
+ ]
57
+ ] = None,
58
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
59
+ _content_type: Optional[StrictStr] = None,
60
+ _headers: Optional[Dict[StrictStr, Any]] = None,
61
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
62
+ ) -> List[RobotController]:
63
+ """Robot Controller Configurations
64
+
65
+ Returns all robot controller configurations that match the provided [ARP scan result](#/operations/getArpScan).
66
+
67
+ :param robot_controller_configuration_request: (required)
68
+ :type robot_controller_configuration_request: RobotControllerConfigurationRequest
69
+ :param _request_timeout: timeout setting for this request. If one
70
+ number provided, it will be total request
71
+ timeout. It can also be a pair (tuple) of
72
+ (connection, read) timeouts.
73
+ :type _request_timeout: int, tuple(int, int), optional
74
+ :param _request_auth: set to override the auth_settings for an a single
75
+ request; this effectively ignores the
76
+ authentication in the spec for a single request.
77
+ :type _request_auth: dict, optional
78
+ :param _content_type: force content-type for the request.
79
+ :type _content_type: str, Optional
80
+ :param _headers: set to override the headers for a single
81
+ request; this effectively ignores the headers
82
+ in the spec for a single request.
83
+ :type _headers: dict, optional
84
+ :param _host_index: set to override the host_index for a single
85
+ request; this effectively ignores the host_index
86
+ in the spec for a single request.
87
+ :type _host_index: int, optional
88
+ :return: Returns the result object.
89
+ """ # noqa: E501
90
+
91
+ _param = self._get_controller_config_from_arp_scan_serialize(
92
+ robot_controller_configuration_request=robot_controller_configuration_request,
93
+ _request_auth=_request_auth,
94
+ _content_type=_content_type,
95
+ _headers=_headers,
96
+ _host_index=_host_index
97
+ )
98
+
99
+ _response_types_map: Dict[str, Optional[str]] = {
100
+ '200': "List[RobotController]",
101
+ '404': None,
102
+ '500': None,
103
+ }
104
+ response_data = await self.api_client.call_api(
105
+ *_param,
106
+ _request_timeout=_request_timeout
107
+ )
108
+ await response_data.read()
109
+ return self.api_client.response_deserialize(
110
+ response_data=response_data,
111
+ response_types_map=_response_types_map,
112
+ ).data
113
+
114
+
115
+ @validate_call
116
+ async def get_controller_config_from_arp_scan_with_http_info(
117
+ self,
118
+ robot_controller_configuration_request: RobotControllerConfigurationRequest,
119
+ _request_timeout: Union[
120
+ None,
121
+ Annotated[StrictFloat, Field(gt=0)],
122
+ Tuple[
123
+ Annotated[StrictFloat, Field(gt=0)],
124
+ Annotated[StrictFloat, Field(gt=0)]
125
+ ]
126
+ ] = None,
127
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
128
+ _content_type: Optional[StrictStr] = None,
129
+ _headers: Optional[Dict[StrictStr, Any]] = None,
130
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
131
+ ) -> ApiResponse[List[RobotController]]:
132
+ """Robot Controller Configurations
133
+
134
+ Returns all robot controller configurations that match the provided [ARP scan result](#/operations/getArpScan).
135
+
136
+ :param robot_controller_configuration_request: (required)
137
+ :type robot_controller_configuration_request: RobotControllerConfigurationRequest
138
+ :param _request_timeout: timeout setting for this request. If one
139
+ number provided, it will be total request
140
+ timeout. It can also be a pair (tuple) of
141
+ (connection, read) timeouts.
142
+ :type _request_timeout: int, tuple(int, int), optional
143
+ :param _request_auth: set to override the auth_settings for an a single
144
+ request; this effectively ignores the
145
+ authentication in the spec for a single request.
146
+ :type _request_auth: dict, optional
147
+ :param _content_type: force content-type for the request.
148
+ :type _content_type: str, Optional
149
+ :param _headers: set to override the headers for a single
150
+ request; this effectively ignores the headers
151
+ in the spec for a single request.
152
+ :type _headers: dict, optional
153
+ :param _host_index: set to override the host_index for a single
154
+ request; this effectively ignores the host_index
155
+ in the spec for a single request.
156
+ :type _host_index: int, optional
157
+ :return: Returns the result object.
158
+ """ # noqa: E501
159
+
160
+ _param = self._get_controller_config_from_arp_scan_serialize(
161
+ robot_controller_configuration_request=robot_controller_configuration_request,
162
+ _request_auth=_request_auth,
163
+ _content_type=_content_type,
164
+ _headers=_headers,
165
+ _host_index=_host_index
166
+ )
167
+
168
+ _response_types_map: Dict[str, Optional[str]] = {
169
+ '200': "List[RobotController]",
170
+ '404': None,
171
+ '500': None,
172
+ }
173
+ response_data = await self.api_client.call_api(
174
+ *_param,
175
+ _request_timeout=_request_timeout
176
+ )
177
+ await response_data.read()
178
+ return self.api_client.response_deserialize(
179
+ response_data=response_data,
180
+ response_types_map=_response_types_map,
181
+ )
182
+
183
+
184
+ @validate_call
185
+ async def get_controller_config_from_arp_scan_without_preload_content(
186
+ self,
187
+ robot_controller_configuration_request: RobotControllerConfigurationRequest,
188
+ _request_timeout: Union[
189
+ None,
190
+ Annotated[StrictFloat, Field(gt=0)],
191
+ Tuple[
192
+ Annotated[StrictFloat, Field(gt=0)],
193
+ Annotated[StrictFloat, Field(gt=0)]
194
+ ]
195
+ ] = None,
196
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
197
+ _content_type: Optional[StrictStr] = None,
198
+ _headers: Optional[Dict[StrictStr, Any]] = None,
199
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
200
+ ) -> RESTResponseType:
201
+ """Robot Controller Configurations
202
+
203
+ Returns all robot controller configurations that match the provided [ARP scan result](#/operations/getArpScan).
204
+
205
+ :param robot_controller_configuration_request: (required)
206
+ :type robot_controller_configuration_request: RobotControllerConfigurationRequest
207
+ :param _request_timeout: timeout setting for this request. If one
208
+ number provided, it will be total request
209
+ timeout. It can also be a pair (tuple) of
210
+ (connection, read) timeouts.
211
+ :type _request_timeout: int, tuple(int, int), optional
212
+ :param _request_auth: set to override the auth_settings for an a single
213
+ request; this effectively ignores the
214
+ authentication in the spec for a single request.
215
+ :type _request_auth: dict, optional
216
+ :param _content_type: force content-type for the request.
217
+ :type _content_type: str, Optional
218
+ :param _headers: set to override the headers for a single
219
+ request; this effectively ignores the headers
220
+ in the spec for a single request.
221
+ :type _headers: dict, optional
222
+ :param _host_index: set to override the host_index for a single
223
+ request; this effectively ignores the host_index
224
+ in the spec for a single request.
225
+ :type _host_index: int, optional
226
+ :return: Returns the result object.
227
+ """ # noqa: E501
228
+
229
+ _param = self._get_controller_config_from_arp_scan_serialize(
230
+ robot_controller_configuration_request=robot_controller_configuration_request,
231
+ _request_auth=_request_auth,
232
+ _content_type=_content_type,
233
+ _headers=_headers,
234
+ _host_index=_host_index
235
+ )
236
+
237
+ _response_types_map: Dict[str, Optional[str]] = {
238
+ '200': "List[RobotController]",
239
+ '404': None,
240
+ '500': None,
241
+ }
242
+ response_data = await self.api_client.call_api(
243
+ *_param,
244
+ _request_timeout=_request_timeout
245
+ )
246
+ return response_data.response
247
+
248
+
249
+ def _get_controller_config_from_arp_scan_serialize(
250
+ self,
251
+ robot_controller_configuration_request,
252
+ _request_auth,
253
+ _content_type,
254
+ _headers,
255
+ _host_index,
256
+ ) -> RequestSerialized:
257
+
258
+ _host = None
259
+
260
+ _collection_formats: Dict[str, str] = {
261
+ }
262
+
263
+ _path_params: Dict[str, str] = {}
264
+ _query_params: List[Tuple[str, str]] = []
265
+ _header_params: Dict[str, Optional[str]] = _headers or {}
266
+ _form_params: List[Tuple[str, str]] = []
267
+ _files: Dict[str, Union[str, bytes]] = {}
268
+ _body_params: Optional[bytes] = None
269
+
270
+ # process the path parameters
271
+ # process the query parameters
272
+ # process the header parameters
273
+ # process the form parameters
274
+ # process the body parameter
275
+ if robot_controller_configuration_request is not None:
276
+ _body_params = robot_controller_configuration_request
277
+
278
+
279
+ # set the HTTP header `Accept`
280
+ _header_params['Accept'] = self.api_client.select_header_accept(
281
+ [
282
+ 'application/json'
283
+ ]
284
+ )
285
+
286
+ # set the HTTP header `Content-Type`
287
+ if _content_type:
288
+ _header_params['Content-Type'] = _content_type
289
+ else:
290
+ _default_content_type = (
291
+ self.api_client.select_header_content_type(
292
+ [
293
+ 'application/json'
294
+ ]
295
+ )
296
+ )
297
+ if _default_content_type is not None:
298
+ _header_params['Content-Type'] = _default_content_type
299
+
300
+ # authentication setting
301
+ _auth_settings: List[str] = [
302
+ 'BearerAuth'
303
+ ]
304
+
305
+ return self.api_client.param_serialize(
306
+ method='POST',
307
+ resource_path='/v2/experimental/system/network/controllers',
308
+ path_params=_path_params,
309
+ query_params=_query_params,
310
+ header_params=_header_params,
311
+ body=_body_params,
312
+ post_params=_form_params,
313
+ files=_files,
314
+ auth_settings=_auth_settings,
315
+ collection_formats=_collection_formats,
316
+ _host=_host,
317
+ _request_auth=_request_auth
318
+ )
319
+
320
+
321
+
44
322
  @validate_call
45
323
  async def get_robot_configurations(
46
324
  self,
@@ -24,6 +24,8 @@ from urllib.parse import quote
24
24
 
25
25
  from pydantic import Field, StrictStr
26
26
  from typing_extensions import Annotated
27
+ from wandelbots_api_client.v2.models.merge_trajectories_request import MergeTrajectoriesRequest
28
+ from wandelbots_api_client.v2.models.merge_trajectories_response import MergeTrajectoriesResponse
27
29
  from wandelbots_api_client.v2.models.plan_collision_free_request import PlanCollisionFreeRequest
28
30
  from wandelbots_api_client.v2.models.plan_collision_free_response import PlanCollisionFreeResponse
29
31
  from wandelbots_api_client.v2.models.plan_trajectory_request import PlanTrajectoryRequest
@@ -45,6 +47,300 @@ class TrajectoryPlanningApi:
45
47
  api_client = ApiClient.get_default()
46
48
  self.api_client = api_client
47
49
 
50
+ @validate_call
51
+ async def merge_trajectories(
52
+ self,
53
+ cell: Annotated[StrictStr, Field(description="Unique identifier addressing a cell in all API calls. ")],
54
+ merge_trajectories_request: MergeTrajectoriesRequest,
55
+ _request_timeout: Union[
56
+ None,
57
+ Annotated[StrictFloat, Field(gt=0)],
58
+ Tuple[
59
+ Annotated[StrictFloat, Field(gt=0)],
60
+ Annotated[StrictFloat, Field(gt=0)]
61
+ ]
62
+ ] = None,
63
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
64
+ _content_type: Optional[StrictStr] = None,
65
+ _headers: Optional[Dict[StrictStr, Any]] = None,
66
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
67
+ ) -> MergeTrajectoriesResponse:
68
+ """Merge Trajectories
69
+
70
+ <!-- theme: danger --> > **Experimental** Merges a list of joint trajectories into a single trajectory with collision-aware blending. This endpoint merges a list of separate trajectories by connecting them via blending. The blending is performed with collision checking to ensure the merged trajectory is safe to execute. Timescaling will be applied to the blended area to ensure all limits are respected.
71
+
72
+ :param cell: Unique identifier addressing a cell in all API calls. (required)
73
+ :type cell: str
74
+ :param merge_trajectories_request: (required)
75
+ :type merge_trajectories_request: MergeTrajectoriesRequest
76
+ :param _request_timeout: timeout setting for this request. If one
77
+ number provided, it will be total request
78
+ timeout. It can also be a pair (tuple) of
79
+ (connection, read) timeouts.
80
+ :type _request_timeout: int, tuple(int, int), optional
81
+ :param _request_auth: set to override the auth_settings for an a single
82
+ request; this effectively ignores the
83
+ authentication in the spec for a single request.
84
+ :type _request_auth: dict, optional
85
+ :param _content_type: force content-type for the request.
86
+ :type _content_type: str, Optional
87
+ :param _headers: set to override the headers for a single
88
+ request; this effectively ignores the headers
89
+ in the spec for a single request.
90
+ :type _headers: dict, optional
91
+ :param _host_index: set to override the host_index for a single
92
+ request; this effectively ignores the host_index
93
+ in the spec for a single request.
94
+ :type _host_index: int, optional
95
+ :return: Returns the result object.
96
+ """ # noqa: E501
97
+
98
+ _param = self._merge_trajectories_serialize(
99
+ cell=cell,
100
+ merge_trajectories_request=merge_trajectories_request,
101
+ _request_auth=_request_auth,
102
+ _content_type=_content_type,
103
+ _headers=_headers,
104
+ _host_index=_host_index
105
+ )
106
+
107
+ _response_types_map: Dict[str, Optional[str]] = {
108
+ '200': "MergeTrajectoriesResponse",
109
+ '404': None,
110
+ '422': "MergeTrajectories422Response",
111
+ '500': None,
112
+ }
113
+ response_data = await self.api_client.call_api(
114
+ *_param,
115
+ _request_timeout=_request_timeout
116
+ )
117
+ await response_data.read()
118
+ return self.api_client.response_deserialize(
119
+ response_data=response_data,
120
+ response_types_map=_response_types_map,
121
+ ).data
122
+
123
+
124
+ @validate_call
125
+ async def merge_trajectories_with_http_info(
126
+ self,
127
+ cell: Annotated[StrictStr, Field(description="Unique identifier addressing a cell in all API calls. ")],
128
+ merge_trajectories_request: MergeTrajectoriesRequest,
129
+ _request_timeout: Union[
130
+ None,
131
+ Annotated[StrictFloat, Field(gt=0)],
132
+ Tuple[
133
+ Annotated[StrictFloat, Field(gt=0)],
134
+ Annotated[StrictFloat, Field(gt=0)]
135
+ ]
136
+ ] = None,
137
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
138
+ _content_type: Optional[StrictStr] = None,
139
+ _headers: Optional[Dict[StrictStr, Any]] = None,
140
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
141
+ ) -> ApiResponse[MergeTrajectoriesResponse]:
142
+ """Merge Trajectories
143
+
144
+ <!-- theme: danger --> > **Experimental** Merges a list of joint trajectories into a single trajectory with collision-aware blending. This endpoint merges a list of separate trajectories by connecting them via blending. The blending is performed with collision checking to ensure the merged trajectory is safe to execute. Timescaling will be applied to the blended area to ensure all limits are respected.
145
+
146
+ :param cell: Unique identifier addressing a cell in all API calls. (required)
147
+ :type cell: str
148
+ :param merge_trajectories_request: (required)
149
+ :type merge_trajectories_request: MergeTrajectoriesRequest
150
+ :param _request_timeout: timeout setting for this request. If one
151
+ number provided, it will be total request
152
+ timeout. It can also be a pair (tuple) of
153
+ (connection, read) timeouts.
154
+ :type _request_timeout: int, tuple(int, int), optional
155
+ :param _request_auth: set to override the auth_settings for an a single
156
+ request; this effectively ignores the
157
+ authentication in the spec for a single request.
158
+ :type _request_auth: dict, optional
159
+ :param _content_type: force content-type for the request.
160
+ :type _content_type: str, Optional
161
+ :param _headers: set to override the headers for a single
162
+ request; this effectively ignores the headers
163
+ in the spec for a single request.
164
+ :type _headers: dict, optional
165
+ :param _host_index: set to override the host_index for a single
166
+ request; this effectively ignores the host_index
167
+ in the spec for a single request.
168
+ :type _host_index: int, optional
169
+ :return: Returns the result object.
170
+ """ # noqa: E501
171
+
172
+ _param = self._merge_trajectories_serialize(
173
+ cell=cell,
174
+ merge_trajectories_request=merge_trajectories_request,
175
+ _request_auth=_request_auth,
176
+ _content_type=_content_type,
177
+ _headers=_headers,
178
+ _host_index=_host_index
179
+ )
180
+
181
+ _response_types_map: Dict[str, Optional[str]] = {
182
+ '200': "MergeTrajectoriesResponse",
183
+ '404': None,
184
+ '422': "MergeTrajectories422Response",
185
+ '500': None,
186
+ }
187
+ response_data = await self.api_client.call_api(
188
+ *_param,
189
+ _request_timeout=_request_timeout
190
+ )
191
+ await response_data.read()
192
+ return self.api_client.response_deserialize(
193
+ response_data=response_data,
194
+ response_types_map=_response_types_map,
195
+ )
196
+
197
+
198
+ @validate_call
199
+ async def merge_trajectories_without_preload_content(
200
+ self,
201
+ cell: Annotated[StrictStr, Field(description="Unique identifier addressing a cell in all API calls. ")],
202
+ merge_trajectories_request: MergeTrajectoriesRequest,
203
+ _request_timeout: Union[
204
+ None,
205
+ Annotated[StrictFloat, Field(gt=0)],
206
+ Tuple[
207
+ Annotated[StrictFloat, Field(gt=0)],
208
+ Annotated[StrictFloat, Field(gt=0)]
209
+ ]
210
+ ] = None,
211
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
212
+ _content_type: Optional[StrictStr] = None,
213
+ _headers: Optional[Dict[StrictStr, Any]] = None,
214
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
215
+ ) -> RESTResponseType:
216
+ """Merge Trajectories
217
+
218
+ <!-- theme: danger --> > **Experimental** Merges a list of joint trajectories into a single trajectory with collision-aware blending. This endpoint merges a list of separate trajectories by connecting them via blending. The blending is performed with collision checking to ensure the merged trajectory is safe to execute. Timescaling will be applied to the blended area to ensure all limits are respected.
219
+
220
+ :param cell: Unique identifier addressing a cell in all API calls. (required)
221
+ :type cell: str
222
+ :param merge_trajectories_request: (required)
223
+ :type merge_trajectories_request: MergeTrajectoriesRequest
224
+ :param _request_timeout: timeout setting for this request. If one
225
+ number provided, it will be total request
226
+ timeout. It can also be a pair (tuple) of
227
+ (connection, read) timeouts.
228
+ :type _request_timeout: int, tuple(int, int), optional
229
+ :param _request_auth: set to override the auth_settings for an a single
230
+ request; this effectively ignores the
231
+ authentication in the spec for a single request.
232
+ :type _request_auth: dict, optional
233
+ :param _content_type: force content-type for the request.
234
+ :type _content_type: str, Optional
235
+ :param _headers: set to override the headers for a single
236
+ request; this effectively ignores the headers
237
+ in the spec for a single request.
238
+ :type _headers: dict, optional
239
+ :param _host_index: set to override the host_index for a single
240
+ request; this effectively ignores the host_index
241
+ in the spec for a single request.
242
+ :type _host_index: int, optional
243
+ :return: Returns the result object.
244
+ """ # noqa: E501
245
+
246
+ _param = self._merge_trajectories_serialize(
247
+ cell=cell,
248
+ merge_trajectories_request=merge_trajectories_request,
249
+ _request_auth=_request_auth,
250
+ _content_type=_content_type,
251
+ _headers=_headers,
252
+ _host_index=_host_index
253
+ )
254
+
255
+ _response_types_map: Dict[str, Optional[str]] = {
256
+ '200': "MergeTrajectoriesResponse",
257
+ '404': None,
258
+ '422': "MergeTrajectories422Response",
259
+ '500': None,
260
+ }
261
+ response_data = await self.api_client.call_api(
262
+ *_param,
263
+ _request_timeout=_request_timeout
264
+ )
265
+ return response_data.response
266
+
267
+
268
+ def _merge_trajectories_serialize(
269
+ self,
270
+ cell,
271
+ merge_trajectories_request,
272
+ _request_auth,
273
+ _content_type,
274
+ _headers,
275
+ _host_index,
276
+ ) -> RequestSerialized:
277
+
278
+ _host = None
279
+
280
+ _collection_formats: Dict[str, str] = {
281
+ }
282
+
283
+ _path_params: Dict[str, str] = {}
284
+ _query_params: List[Tuple[str, str]] = []
285
+ _header_params: Dict[str, Optional[str]] = _headers or {}
286
+ _form_params: List[Tuple[str, str]] = []
287
+ _files: Dict[str, Union[str, bytes]] = {}
288
+ _body_params: Optional[bytes] = None
289
+
290
+ # process the path parameters
291
+ if cell is not None:
292
+ _path_params['cell'] = cell
293
+ # process the query parameters
294
+ # process the header parameters
295
+ # process the form parameters
296
+ # process the body parameter
297
+ if merge_trajectories_request is not None:
298
+ _body_params = merge_trajectories_request
299
+
300
+
301
+ # set the HTTP header `Accept`
302
+ _header_params['Accept'] = self.api_client.select_header_accept(
303
+ [
304
+ 'application/json'
305
+ ]
306
+ )
307
+
308
+ # set the HTTP header `Content-Type`
309
+ if _content_type:
310
+ _header_params['Content-Type'] = _content_type
311
+ else:
312
+ _default_content_type = (
313
+ self.api_client.select_header_content_type(
314
+ [
315
+ 'application/json'
316
+ ]
317
+ )
318
+ )
319
+ if _default_content_type is not None:
320
+ _header_params['Content-Type'] = _default_content_type
321
+
322
+ # authentication setting
323
+ _auth_settings: List[str] = [
324
+ 'BearerAuth'
325
+ ]
326
+
327
+ return self.api_client.param_serialize(
328
+ method='POST',
329
+ resource_path='/experimental/cells/{cell}/trajectory-planning/merge-trajectories',
330
+ path_params=_path_params,
331
+ query_params=_query_params,
332
+ header_params=_header_params,
333
+ body=_body_params,
334
+ post_params=_form_params,
335
+ files=_files,
336
+ auth_settings=_auth_settings,
337
+ collection_formats=_collection_formats,
338
+ _host=_host,
339
+ _request_auth=_request_auth
340
+ )
341
+
342
+
343
+
48
344
  @validate_call
49
345
  async def plan_collision_free(
50
346
  self,
@@ -394,7 +394,7 @@ class VirtualControllerApi:
394
394
  ) -> None:
395
395
  """Add Motion Group
396
396
 
397
- Adds a motion group configuration for the virtual robot controller. Fields: - Only one of **motion_group_model** or **json** should be set. - **motion_group_model**: Identifies a single motion group. See [getMotionGroupModels](#/operations/getMotionGroupModels) for supported types. - **json**: Full JSON configuration of the virtual robot controller. This can be obtained from the physical controller's configuration via [getVirtualControllerConfiguration](#/operations/getVirtualControllerConfiguration). - **extracted_motion_group_id** (required when using json): The motion group identifier to extract from the provided JSON configuration. - **motion_group**: Unique identifier for the motion group to be added. - **initial_joint_position**: Specifies the initial joint position for the added motion group. <!-- theme: info --> > #### NOTE > > When a motion group is added, **the virtual robot is restarted** to apply the new configuration. > > During this restart: > - Robot visualization can temporarily disappear or appear outdated in the UI. > - Motion group changes are not immediately visible in visualizations. > - All connections to virtual robot are closed and re-established, which introduces a short delay before the system is fully operational again. > > The API call itself **does not wait until the restart and re-synchronization are complete**. > This means that immediately after a successful response, the new motion group may not yet be available for use.
397
+ Adds a motion group configuration for the virtual robot controller. Fields: - Only one of **motion_group_model** or **json_data** should be set. - **motion_group_model**: Identifies a single motion group. See [getMotionGroupModels](#/operations/getMotionGroupModels) for supported types. - **json_data**: Full JSON configuration of the virtual robot controller. This can be obtained from the physical controller's configuration via [getVirtualControllerConfiguration](#/operations/getVirtualControllerConfiguration). - **extracted_motion_group_id** (required when using json_data): The motion group identifier to extract from the provided JSON configuration. - **motion_group**: Unique identifier for the motion group to be added. - **initial_joint_position**: Specifies the initial joint position for the added motion group. <!-- theme: info --> > #### NOTE > > When a motion group is added, **the virtual robot is restarted** to apply the new configuration. > > During this restart: > - Robot visualization can temporarily disappear or appear outdated in the UI. > - Motion group changes are not immediately visible in visualizations. > - All connections to virtual robot are closed and re-established, which introduces a short delay before the system is fully operational again. > > The API call itself **does not wait until the restart and re-synchronization are complete**. > This means that immediately after a successful response, the new motion group may not yet be available for use.
398
398
 
399
399
  :param cell: Unique identifier addressing a cell in all API calls. (required)
400
400
  :type cell: str
@@ -471,7 +471,7 @@ class VirtualControllerApi:
471
471
  ) -> ApiResponse[None]:
472
472
  """Add Motion Group
473
473
 
474
- Adds a motion group configuration for the virtual robot controller. Fields: - Only one of **motion_group_model** or **json** should be set. - **motion_group_model**: Identifies a single motion group. See [getMotionGroupModels](#/operations/getMotionGroupModels) for supported types. - **json**: Full JSON configuration of the virtual robot controller. This can be obtained from the physical controller's configuration via [getVirtualControllerConfiguration](#/operations/getVirtualControllerConfiguration). - **extracted_motion_group_id** (required when using json): The motion group identifier to extract from the provided JSON configuration. - **motion_group**: Unique identifier for the motion group to be added. - **initial_joint_position**: Specifies the initial joint position for the added motion group. <!-- theme: info --> > #### NOTE > > When a motion group is added, **the virtual robot is restarted** to apply the new configuration. > > During this restart: > - Robot visualization can temporarily disappear or appear outdated in the UI. > - Motion group changes are not immediately visible in visualizations. > - All connections to virtual robot are closed and re-established, which introduces a short delay before the system is fully operational again. > > The API call itself **does not wait until the restart and re-synchronization are complete**. > This means that immediately after a successful response, the new motion group may not yet be available for use.
474
+ Adds a motion group configuration for the virtual robot controller. Fields: - Only one of **motion_group_model** or **json_data** should be set. - **motion_group_model**: Identifies a single motion group. See [getMotionGroupModels](#/operations/getMotionGroupModels) for supported types. - **json_data**: Full JSON configuration of the virtual robot controller. This can be obtained from the physical controller's configuration via [getVirtualControllerConfiguration](#/operations/getVirtualControllerConfiguration). - **extracted_motion_group_id** (required when using json_data): The motion group identifier to extract from the provided JSON configuration. - **motion_group**: Unique identifier for the motion group to be added. - **initial_joint_position**: Specifies the initial joint position for the added motion group. <!-- theme: info --> > #### NOTE > > When a motion group is added, **the virtual robot is restarted** to apply the new configuration. > > During this restart: > - Robot visualization can temporarily disappear or appear outdated in the UI. > - Motion group changes are not immediately visible in visualizations. > - All connections to virtual robot are closed and re-established, which introduces a short delay before the system is fully operational again. > > The API call itself **does not wait until the restart and re-synchronization are complete**. > This means that immediately after a successful response, the new motion group may not yet be available for use.
475
475
 
476
476
  :param cell: Unique identifier addressing a cell in all API calls. (required)
477
477
  :type cell: str
@@ -548,7 +548,7 @@ class VirtualControllerApi:
548
548
  ) -> RESTResponseType:
549
549
  """Add Motion Group
550
550
 
551
- Adds a motion group configuration for the virtual robot controller. Fields: - Only one of **motion_group_model** or **json** should be set. - **motion_group_model**: Identifies a single motion group. See [getMotionGroupModels](#/operations/getMotionGroupModels) for supported types. - **json**: Full JSON configuration of the virtual robot controller. This can be obtained from the physical controller's configuration via [getVirtualControllerConfiguration](#/operations/getVirtualControllerConfiguration). - **extracted_motion_group_id** (required when using json): The motion group identifier to extract from the provided JSON configuration. - **motion_group**: Unique identifier for the motion group to be added. - **initial_joint_position**: Specifies the initial joint position for the added motion group. <!-- theme: info --> > #### NOTE > > When a motion group is added, **the virtual robot is restarted** to apply the new configuration. > > During this restart: > - Robot visualization can temporarily disappear or appear outdated in the UI. > - Motion group changes are not immediately visible in visualizations. > - All connections to virtual robot are closed and re-established, which introduces a short delay before the system is fully operational again. > > The API call itself **does not wait until the restart and re-synchronization are complete**. > This means that immediately after a successful response, the new motion group may not yet be available for use.
551
+ Adds a motion group configuration for the virtual robot controller. Fields: - Only one of **motion_group_model** or **json_data** should be set. - **motion_group_model**: Identifies a single motion group. See [getMotionGroupModels](#/operations/getMotionGroupModels) for supported types. - **json_data**: Full JSON configuration of the virtual robot controller. This can be obtained from the physical controller's configuration via [getVirtualControllerConfiguration](#/operations/getVirtualControllerConfiguration). - **extracted_motion_group_id** (required when using json_data): The motion group identifier to extract from the provided JSON configuration. - **motion_group**: Unique identifier for the motion group to be added. - **initial_joint_position**: Specifies the initial joint position for the added motion group. <!-- theme: info --> > #### NOTE > > When a motion group is added, **the virtual robot is restarted** to apply the new configuration. > > During this restart: > - Robot visualization can temporarily disappear or appear outdated in the UI. > - Motion group changes are not immediately visible in visualizations. > - All connections to virtual robot are closed and re-established, which introduces a short delay before the system is fully operational again. > > The API call itself **does not wait until the restart and re-synchronization are complete**. > This means that immediately after a successful response, the new motion group may not yet be available for use.
552
552
 
553
553
  :param cell: Unique identifier addressing a cell in all API calls. (required)
554
554
  :type cell: str