wandelbots-api-client 25.11.0.dev12__py3-none-any.whl → 26.1.0.dev62__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.
- wandelbots_api_client/__init__.py +1 -1
- wandelbots_api_client/api/motion_api.py +3 -3
- wandelbots_api_client/api_client.py +1 -1
- wandelbots_api_client/configuration.py +1 -1
- wandelbots_api_client/models/__init__.py +3 -1
- wandelbots_api_client/models/virtual_controller_types.py +4 -4
- wandelbots_api_client/v2/__init__.py +1 -1
- wandelbots_api_client/v2/api/__init__.py +2 -0
- wandelbots_api_client/v2/api/bus_inputs_outputs_api.py +579 -0
- wandelbots_api_client/v2/api/jogging_api.py +1 -1
- wandelbots_api_client/v2/api/motion_group_models_api.py +795 -2
- wandelbots_api_client/v2/api/program_api.py +12 -12
- wandelbots_api_client/v2/api/robot_configurations_api.py +291 -0
- wandelbots_api_client/v2/api/trajectory_execution_api.py +1 -1
- wandelbots_api_client/v2/api_client.py +1 -1
- wandelbots_api_client/v2/configuration.py +1 -1
- wandelbots_api_client/v2/models/__init__.py +7 -3
- wandelbots_api_client/v2/models/blending_auto.py +1 -1
- wandelbots_api_client/v2/models/blending_position.py +15 -1
- wandelbots_api_client/v2/models/blending_space.py +37 -0
- wandelbots_api_client/v2/models/initialize_jogging_request.py +2 -4
- wandelbots_api_client/v2/models/inverse_kinematics_request.py +6 -4
- wandelbots_api_client/v2/models/kinematic_model.py +110 -0
- wandelbots_api_client/v2/models/motion_group_description.py +4 -2
- wandelbots_api_client/v2/models/virtual_controller.py +1 -2
- wandelbots_api_client/v2/models/virtual_controller_types.py +1 -1
- wandelbots_api_client/v2_pydantic/__init__.py +1 -1
- wandelbots_api_client/v2_pydantic/api/__init__.py +2 -0
- wandelbots_api_client/v2_pydantic/api/bus_inputs_outputs_api.py +585 -0
- wandelbots_api_client/v2_pydantic/api/jogging_api.py +1 -1
- wandelbots_api_client/v2_pydantic/api/motion_group_models_api.py +804 -2
- wandelbots_api_client/v2_pydantic/api/program_api.py +12 -12
- wandelbots_api_client/v2_pydantic/api/robot_configurations_api.py +294 -0
- wandelbots_api_client/v2_pydantic/api/trajectory_execution_api.py +1 -1
- wandelbots_api_client/v2_pydantic/api_client.py +1 -1
- wandelbots_api_client/v2_pydantic/configuration.py +1 -1
- wandelbots_api_client/v2_pydantic/models.py +471 -527
- wandelbots_api_client/v2_pydantic/virtual_controller_types.py +126 -0
- {wandelbots_api_client-25.11.0.dev12.dist-info → wandelbots_api_client-26.1.0.dev62.dist-info}/METADATA +2 -2
- {wandelbots_api_client-25.11.0.dev12.dist-info → wandelbots_api_client-26.1.0.dev62.dist-info}/RECORD +43 -38
- {wandelbots_api_client-25.11.0.dev12.dist-info → wandelbots_api_client-26.1.0.dev62.dist-info}/WHEEL +0 -0
- {wandelbots_api_client-25.11.0.dev12.dist-info → wandelbots_api_client-26.1.0.dev62.dist-info}/licenses/LICENSE +0 -0
- {wandelbots_api_client-25.11.0.dev12.dist-info → wandelbots_api_client-26.1.0.dev62.dist-info}/top_level.txt +0 -0
|
@@ -1,15 +1,16 @@
|
|
|
1
1
|
# generated by datamodel-codegen:
|
|
2
2
|
# filename: public.openapi.yaml
|
|
3
|
-
# timestamp:
|
|
3
|
+
# timestamp: 2026-01-15T11:45:23+00:00
|
|
4
4
|
|
|
5
5
|
from __future__ import annotations
|
|
6
6
|
|
|
7
7
|
from datetime import date
|
|
8
8
|
from enum import Enum
|
|
9
9
|
from pathlib import Path
|
|
10
|
-
from typing import Annotated, Any,
|
|
10
|
+
from typing import Annotated, Any, Literal
|
|
11
11
|
|
|
12
12
|
from pydantic import AwareDatetime, BaseModel, EmailStr, Field, RootModel
|
|
13
|
+
from .virtual_controller_types import VirtualControllerTypes
|
|
13
14
|
|
|
14
15
|
|
|
15
16
|
class NameList(RootModel):
|
|
@@ -17,7 +18,7 @@ class NameList(RootModel):
|
|
|
17
18
|
A list of names
|
|
18
19
|
"""
|
|
19
20
|
|
|
20
|
-
root:
|
|
21
|
+
root: list[str]
|
|
21
22
|
"""
|
|
22
23
|
A list of names
|
|
23
24
|
"""
|
|
@@ -48,7 +49,7 @@ class NameList(RootModel):
|
|
|
48
49
|
|
|
49
50
|
|
|
50
51
|
class CellName(RootModel):
|
|
51
|
-
root: Annotated[str, Field(pattern='^[a-z][a-z0-9-]{0,30}[a-z0-9]$')]
|
|
52
|
+
root: Annotated[str, Field(pattern='^[a-z][a-z0-9-]{0,30}[a-z0-9]$')] = 'cell'
|
|
52
53
|
"""
|
|
53
54
|
A unique name for the cell used as an identifier for addressing the cell in all API calls.
|
|
54
55
|
It must be a valid k8s label name as defined by [RFC 1123](https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#dns-label-names).
|
|
@@ -127,7 +128,7 @@ class KukaController(BaseModel):
|
|
|
127
128
|
"""
|
|
128
129
|
The RSI server runs inside of the cell.
|
|
129
130
|
"""
|
|
130
|
-
slow_cycle_rate:
|
|
131
|
+
slow_cycle_rate: bool | None = False
|
|
131
132
|
"""
|
|
132
133
|
If true, uses slower cycle time of 12ms instead of 4ms.
|
|
133
134
|
|
|
@@ -151,130 +152,6 @@ class Manufacturer(Enum):
|
|
|
151
152
|
YASKAWA = 'yaskawa'
|
|
152
153
|
|
|
153
154
|
|
|
154
|
-
class VirtualControllerTypes(Enum):
|
|
155
|
-
ABB_IRB1010_037_15 = 'abb-irb1010_037_15'
|
|
156
|
-
ABB_IRB1100_0475_4 = 'abb-irb1100_0475_4'
|
|
157
|
-
ABB_IRB1100_058_4 = 'abb-irb1100_058_4'
|
|
158
|
-
ABB_IRB1200_7 = 'abb-irb1200_7'
|
|
159
|
-
ABB_IRB1300_09_11 = 'abb-irb1300_09_11'
|
|
160
|
-
ABB_IRB1300_115_10 = 'abb-irb1300_115_10'
|
|
161
|
-
ABB_IRB1300_14_12 = 'abb-irb1300_14_12'
|
|
162
|
-
ABB_IRB1300_14_7 = 'abb-irb1300_14_7'
|
|
163
|
-
ABB_IRB1600_12_10 = 'abb-irb1600_12_10'
|
|
164
|
-
ABB_IRB1600_12_6 = 'abb-irb1600_12_6'
|
|
165
|
-
ABB_IRB1600_145_10 = 'abb-irb1600_145_10'
|
|
166
|
-
ABB_IRB1600_145_6 = 'abb-irb1600_145_6'
|
|
167
|
-
ABB_IRB2600_ID_185_15 = 'abb-irb2600ID_185_15'
|
|
168
|
-
ABB_IRB2600_ID_200_8 = 'abb-irb2600ID_200_8'
|
|
169
|
-
ABB_IRB2600_165_12 = 'abb-irb2600_165_12'
|
|
170
|
-
ABB_IRB2600_165_20 = 'abb-irb2600_165_20'
|
|
171
|
-
ABB_IRB2600_185_12 = 'abb-irb2600_185_12'
|
|
172
|
-
ABB_IRB4600_205_45 = 'abb-irb4600_205_45'
|
|
173
|
-
ABB_IRB4600_205_60 = 'abb-irb4600_205_60'
|
|
174
|
-
ABB_IRB4600_250_20 = 'abb-irb4600_250_20'
|
|
175
|
-
ABB_IRB4600_255_40 = 'abb-irb4600_255_40'
|
|
176
|
-
ABB_IRB6730_210_310 = 'abb-irb6730_210_310'
|
|
177
|
-
ABB_IRB6730_240_290 = 'abb-irb6730_240_290'
|
|
178
|
-
FANUC_ARC_MATE_100I_D = 'fanuc-arc_mate_100iD'
|
|
179
|
-
FANUC_ARC_MATE_100I_D16_S = 'fanuc-arc_mate_100iD16S'
|
|
180
|
-
FANUC_ARC_MATE_120I_D = 'fanuc-arc_mate_120iD'
|
|
181
|
-
FANUC_ARC_MATE_120I_D12_L = 'fanuc-arc_mate_120iD12L'
|
|
182
|
-
FANUC_ARC_MATE_120I_D35 = 'fanuc-arc_mate_120iD35'
|
|
183
|
-
FANUC_CR35IB = 'fanuc-cr35ib'
|
|
184
|
-
FANUC_CR7IA = 'fanuc-cr7ia'
|
|
185
|
-
FANUC_CR7IAL = 'fanuc-cr7ial'
|
|
186
|
-
FANUC_CRX10IA = 'fanuc-crx10ia'
|
|
187
|
-
FANUC_CRX10IAL = 'fanuc-crx10ial'
|
|
188
|
-
FANUC_CRX20IAL = 'fanuc-crx20ial'
|
|
189
|
-
FANUC_CRX25IA = 'fanuc-crx25ia'
|
|
190
|
-
FANUC_CRX30IA = 'fanuc-crx30ia'
|
|
191
|
-
FANUC_CRX5IA = 'fanuc-crx5ia'
|
|
192
|
-
FANUC_LR_MATE_200I_D = 'fanuc-lr_mate_200iD'
|
|
193
|
-
FANUC_LR_MATE_200I_D4_S = 'fanuc-lr_mate_200iD4S'
|
|
194
|
-
FANUC_LR_MATE_200I_D7_L = 'fanuc-lr_mate_200iD7L'
|
|
195
|
-
FANUC_M10I_D12 = 'fanuc-m10iD12'
|
|
196
|
-
FANUC_M10I_D16_S = 'fanuc-m10iD16S'
|
|
197
|
-
FANUC_M20I_D25 = 'fanuc-m20iD25'
|
|
198
|
-
FANUC_M20I_D35 = 'fanuc-m20iD35'
|
|
199
|
-
FANUC_M710I_C20_L = 'fanuc-m710iC20L'
|
|
200
|
-
FANUC_M900I_B280_L = 'fanuc-m900iB280L'
|
|
201
|
-
FANUC_M900I_B360_E = 'fanuc-m900iB360E'
|
|
202
|
-
FANUC_R2000IC125L = 'fanuc-r2000ic125l'
|
|
203
|
-
FANUC_R2000IC210F = 'fanuc-r2000ic210f'
|
|
204
|
-
KUKA_KR10_R1100 = 'kuka-kr10_r1100'
|
|
205
|
-
KUKA_KR10_R1100_2 = 'kuka-kr10_r1100_2'
|
|
206
|
-
KUKA_KR10_R900 = 'kuka-kr10_r900'
|
|
207
|
-
KUKA_KR10_R900_2 = 'kuka-kr10_r900_2'
|
|
208
|
-
KUKA_KR120_R2700_2 = 'kuka-kr120_r2700_2'
|
|
209
|
-
KUKA_KR12_R1810_2 = 'kuka-kr12_r1810_2'
|
|
210
|
-
KUKA_KR150_R2 = 'kuka-kr150_r2'
|
|
211
|
-
KUKA_KR16_R1610_2 = 'kuka-kr16_r1610_2'
|
|
212
|
-
KUKA_KR16_R2010_2 = 'kuka-kr16_r2010_2'
|
|
213
|
-
KUKA_KR20_R1810 = 'kuka-kr20_r1810'
|
|
214
|
-
KUKA_KR20_R1810_2 = 'kuka-kr20_r1810_2'
|
|
215
|
-
KUKA_KR120_R3100_2 = 'kuka-kr120_r3100_2'
|
|
216
|
-
KUKA_KR120_R3900_2_K = 'kuka-kr120_r3900_2_k'
|
|
217
|
-
KUKA_KR210_R2700_EXTRA = 'kuka-kr210_r2700_extra'
|
|
218
|
-
KUKA_KR210_R2700_2 = 'kuka-kr210_r2700_2'
|
|
219
|
-
KUKA_KR210_R3100_2 = 'kuka-kr210_r3100_2'
|
|
220
|
-
KUKA_KR210_R3300_2 = 'kuka-kr210_r3300_2'
|
|
221
|
-
KUKA_KR240_R2700 = 'kuka-kr240_r2700'
|
|
222
|
-
KUKA_KR240_R2900 = 'kuka-kr240_r2900'
|
|
223
|
-
KUKA_KR240_R3700_2 = 'kuka-kr240_r3700_2'
|
|
224
|
-
KUKA_KR250_R2700_2 = 'kuka-kr250_r2700_2'
|
|
225
|
-
KUKA_KR270_R2700 = 'kuka-kr270_r2700'
|
|
226
|
-
KUKA_KR30_R2100 = 'kuka-kr30_r2100'
|
|
227
|
-
KUKA_KR30_R3 = 'kuka-kr30_r3'
|
|
228
|
-
KUKA_KR360_L240_3 = 'kuka-kr360_l240_3'
|
|
229
|
-
KUKA_KR3_R540 = 'kuka-kr3_r540'
|
|
230
|
-
KUKA_KR4_R600 = 'kuka-kr4_r600'
|
|
231
|
-
KUKA_KR500_L340_3 = 'kuka-kr500_l340_3'
|
|
232
|
-
KUKA_KR50_R2500 = 'kuka-kr50_r2500'
|
|
233
|
-
KUKA_KR60_R3 = 'kuka-kr60_r3'
|
|
234
|
-
KUKA_KR6_R1820 = 'kuka-kr6_r1820'
|
|
235
|
-
KUKA_KR6_R700_2 = 'kuka-kr6_r700_2'
|
|
236
|
-
KUKA_KR6_R700_SIXX = 'kuka-kr6_r700_sixx'
|
|
237
|
-
KUKA_KR6_R900 = 'kuka-kr6_r900'
|
|
238
|
-
KUKA_KR6_R900_2 = 'kuka-kr6_r900_2'
|
|
239
|
-
KUKA_KR70_R2100 = 'kuka-kr70_r2100'
|
|
240
|
-
KUKA_LBR_IISY_11_R1300 = 'kuka-lbr_iisy_11_r1300'
|
|
241
|
-
UNIVERSALROBOTS_UR10CB = 'universalrobots-ur10cb'
|
|
242
|
-
UNIVERSALROBOTS_UR10E = 'universalrobots-ur10e'
|
|
243
|
-
UNIVERSALROBOTS_UR12E = 'universalrobots-ur12e'
|
|
244
|
-
UNIVERSALROBOTS_UR16E = 'universalrobots-ur16e'
|
|
245
|
-
UNIVERSALROBOTS_UR20E = 'universalrobots-ur20e'
|
|
246
|
-
UNIVERSALROBOTS_UR3E = 'universalrobots-ur3e'
|
|
247
|
-
UNIVERSALROBOTS_UR5CB = 'universalrobots-ur5cb'
|
|
248
|
-
UNIVERSALROBOTS_UR5E = 'universalrobots-ur5e'
|
|
249
|
-
UNIVERSALROBOTS_UR7E = 'universalrobots-ur7e'
|
|
250
|
-
YASKAWA_AR1440 = 'yaskawa-ar1440'
|
|
251
|
-
YASKAWA_AR1730 = 'yaskawa-ar1730'
|
|
252
|
-
YASKAWA_AR2010 = 'yaskawa-ar2010'
|
|
253
|
-
YASKAWA_AR3120 = 'yaskawa-ar3120'
|
|
254
|
-
YASKAWA_AR700 = 'yaskawa-ar700'
|
|
255
|
-
YASKAWA_AR900 = 'yaskawa-ar900'
|
|
256
|
-
YASKAWA_GP110 = 'yaskawa-gp110'
|
|
257
|
-
YASKAWA_GP12 = 'yaskawa-gp12'
|
|
258
|
-
YASKAWA_GP180 = 'yaskawa-gp180'
|
|
259
|
-
YASKAWA_GP180_120 = 'yaskawa-gp180-120'
|
|
260
|
-
YASKAWA_GP20HL = 'yaskawa-gp20hl'
|
|
261
|
-
YASKAWA_GP215 = 'yaskawa-gp215'
|
|
262
|
-
YASKAWA_GP225 = 'yaskawa-gp225'
|
|
263
|
-
YASKAWA_GP25 = 'yaskawa-gp25'
|
|
264
|
-
YASKAWA_GP250 = 'yaskawa-gp250'
|
|
265
|
-
YASKAWA_GP25_12 = 'yaskawa-gp25_12'
|
|
266
|
-
YASKAWA_GP280 = 'yaskawa-gp280'
|
|
267
|
-
YASKAWA_GP35_L = 'yaskawa-gp35L'
|
|
268
|
-
YASKAWA_GP400 = 'yaskawa-gp400'
|
|
269
|
-
YASKAWA_GP50 = 'yaskawa-gp50'
|
|
270
|
-
YASKAWA_GP600 = 'yaskawa-gp600'
|
|
271
|
-
YASKAWA_GP7 = 'yaskawa-gp7'
|
|
272
|
-
YASKAWA_GP8 = 'yaskawa-gp8'
|
|
273
|
-
YASKAWA_GP88 = 'yaskawa-gp88'
|
|
274
|
-
YASKAWA_HC10DTP = 'yaskawa-hc10dtp'
|
|
275
|
-
YASKAWA_HC20DTP = 'yaskawa-hc20dtp'
|
|
276
|
-
|
|
277
|
-
|
|
278
155
|
class VirtualController(BaseModel):
|
|
279
156
|
"""
|
|
280
157
|
The configuration of a virtual robot controller has to contain the manufacturer string,
|
|
@@ -284,15 +161,40 @@ class VirtualController(BaseModel):
|
|
|
284
161
|
|
|
285
162
|
kind: Literal['VirtualController'] = 'VirtualController'
|
|
286
163
|
manufacturer: Manufacturer
|
|
287
|
-
type:
|
|
288
|
-
|
|
164
|
+
type: Annotated[
|
|
165
|
+
str | None,
|
|
166
|
+
Field(
|
|
167
|
+
examples=[
|
|
168
|
+
'abb-irb1200_7',
|
|
169
|
+
'abb-irb1010_037_15',
|
|
170
|
+
'abb-irb2600ID_200_8',
|
|
171
|
+
'fanuc-arc_mate_120iD12L',
|
|
172
|
+
'fanuc-crx10ial',
|
|
173
|
+
'fanuc-lr_mate_200iD4S',
|
|
174
|
+
'fanuc-r2000ic125l',
|
|
175
|
+
'kuka-kr10_r1100_2',
|
|
176
|
+
'kuka-kr210_r2700_extra',
|
|
177
|
+
'kuka-lbr_iisy_11_r1300',
|
|
178
|
+
'universalrobots-ur10cb',
|
|
179
|
+
'yaskawa-ar1440',
|
|
180
|
+
'yaskawa-gp180-120',
|
|
181
|
+
'yaskawa-hc20dtp',
|
|
182
|
+
]
|
|
183
|
+
),
|
|
184
|
+
] = None
|
|
185
|
+
"""
|
|
186
|
+
Preset type of the virtual robot controller.
|
|
187
|
+
See [getRobotConfigurations](getRobotConfigurations) for supported types.
|
|
188
|
+
|
|
189
|
+
"""
|
|
190
|
+
json_: Annotated[str | None, Field(alias='json')] = None
|
|
289
191
|
"""
|
|
290
192
|
Complete JSON configuration of the virtual robot controller.
|
|
291
193
|
Can be obtained from the physical controller's configuration via [getVirtualControllerConfiguration](getVirtualControllerConfiguration).
|
|
292
194
|
If provided, the `type` field should not be used.
|
|
293
195
|
|
|
294
196
|
"""
|
|
295
|
-
initial_joint_position:
|
|
197
|
+
initial_joint_position: str | None = None
|
|
296
198
|
"""
|
|
297
199
|
Initial joint position of the first motion group from the virtual robot controller.
|
|
298
200
|
Provide the joint position as a JSON array containing 7 float values,
|
|
@@ -323,14 +225,12 @@ class RobotController(BaseModel):
|
|
|
323
225
|
|
|
324
226
|
"""
|
|
325
227
|
configuration: Annotated[
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
YaskawaController,
|
|
333
|
-
],
|
|
228
|
+
AbbController
|
|
229
|
+
| FanucController
|
|
230
|
+
| KukaController
|
|
231
|
+
| UniversalrobotsController
|
|
232
|
+
| VirtualController
|
|
233
|
+
| YaskawaController,
|
|
334
234
|
Field(discriminator='kind'),
|
|
335
235
|
]
|
|
336
236
|
|
|
@@ -360,8 +260,8 @@ class ContainerImage(BaseModel):
|
|
|
360
260
|
"""
|
|
361
261
|
The location of a container image in the form of `<registry>/<image>:<tag>`.
|
|
362
262
|
"""
|
|
363
|
-
credentials:
|
|
364
|
-
secrets:
|
|
263
|
+
credentials: ImageCredentials | None = None
|
|
264
|
+
secrets: list[Secret] | None = None
|
|
365
265
|
"""
|
|
366
266
|
Known secrets for authentication with the container registry.
|
|
367
267
|
"""
|
|
@@ -379,7 +279,7 @@ class ContainerEnvironment(RootModel):
|
|
|
379
279
|
|
|
380
280
|
"""
|
|
381
281
|
|
|
382
|
-
root:
|
|
282
|
+
root: list[ContainerEnvironmentItem]
|
|
383
283
|
"""
|
|
384
284
|
A list of environment variables with name and their value.
|
|
385
285
|
These can be used to configure the containerized application, and turn features on or off.
|
|
@@ -446,11 +346,11 @@ class ContainerResources(BaseModel):
|
|
|
446
346
|
Additional resources that the application requires.
|
|
447
347
|
"""
|
|
448
348
|
|
|
449
|
-
intel_gpu: Annotated[
|
|
349
|
+
intel_gpu: Annotated[int | None, Field(ge=0, le=1)] = None
|
|
450
350
|
"""
|
|
451
351
|
Number of GPUs the application requires.
|
|
452
352
|
"""
|
|
453
|
-
memory_limit: Annotated[
|
|
353
|
+
memory_limit: Annotated[str | None, Field(examples=['1000Mi'])] = None
|
|
454
354
|
"""
|
|
455
355
|
The maximum memory allocated to this application.
|
|
456
356
|
"""
|
|
@@ -478,14 +378,14 @@ class App(BaseModel):
|
|
|
478
378
|
The path of the icon for the App (/$cell/$name/$app_icon).
|
|
479
379
|
"""
|
|
480
380
|
container_image: ContainerImage
|
|
481
|
-
port:
|
|
381
|
+
port: int | None = 8080
|
|
482
382
|
"""
|
|
483
383
|
The port the containerized webserver is listening on.
|
|
484
384
|
"""
|
|
485
|
-
environment:
|
|
486
|
-
storage:
|
|
487
|
-
resources:
|
|
488
|
-
health_path:
|
|
385
|
+
environment: ContainerEnvironment | None = None
|
|
386
|
+
storage: ContainerStorage | None = None
|
|
387
|
+
resources: ContainerResources | None = None
|
|
388
|
+
health_path: str | None = None
|
|
489
389
|
"""
|
|
490
390
|
Defines the URL path suffix used to check the application's health status. The complete health check URL
|
|
491
391
|
is constructed as `/$cell/$name/$health_path`. When the application is working as expected,
|
|
@@ -498,7 +398,7 @@ class App(BaseModel):
|
|
|
498
398
|
automatically restart the application container to restore service.
|
|
499
399
|
|
|
500
400
|
"""
|
|
501
|
-
diagnosis_path:
|
|
401
|
+
diagnosis_path: str | None = None
|
|
502
402
|
"""
|
|
503
403
|
Defines the URL path suffix used to provide an endpoint for diagnosis data collection.
|
|
504
404
|
The complete diagnosis check URL is constructed as `/$cell/$name/$diagnosis_path`.
|
|
@@ -517,14 +417,14 @@ class Cell(BaseModel):
|
|
|
517
417
|
|
|
518
418
|
"""
|
|
519
419
|
|
|
520
|
-
name: CellName
|
|
521
|
-
description:
|
|
522
|
-
controllers:
|
|
523
|
-
apps:
|
|
420
|
+
name: Annotated[CellName, Field(default_factory=lambda: CellName('cell'))]
|
|
421
|
+
description: CellDescription | None = None
|
|
422
|
+
controllers: list[RobotController] | None = None
|
|
423
|
+
apps: list[App] | None = None
|
|
524
424
|
|
|
525
425
|
|
|
526
426
|
class Error(BaseModel):
|
|
527
|
-
code:
|
|
427
|
+
code: str | None = None
|
|
528
428
|
message: str
|
|
529
429
|
|
|
530
430
|
|
|
@@ -570,7 +470,7 @@ class ServiceStatusPhase(Enum):
|
|
|
570
470
|
class Status(BaseModel):
|
|
571
471
|
severity: ServiceStatusSeverity
|
|
572
472
|
code: ServiceStatusPhase
|
|
573
|
-
reason:
|
|
473
|
+
reason: str | None = None
|
|
574
474
|
|
|
575
475
|
|
|
576
476
|
class ServiceStatus(BaseModel):
|
|
@@ -580,7 +480,7 @@ class ServiceStatus(BaseModel):
|
|
|
580
480
|
|
|
581
481
|
|
|
582
482
|
class ServiceStatusList(RootModel):
|
|
583
|
-
root:
|
|
483
|
+
root: list[ServiceStatus]
|
|
584
484
|
|
|
585
485
|
def __getitem__(self, index: int) -> ServiceStatus:
|
|
586
486
|
"""
|
|
@@ -644,14 +544,14 @@ class BusIOProfinetIpConfig(BaseModel):
|
|
|
644
544
|
|
|
645
545
|
|
|
646
546
|
class BusIOProfinetNetwork(BaseModel):
|
|
647
|
-
device_name: Annotated[
|
|
547
|
+
device_name: Annotated[str | None, Field(examples=['pnDevice'])] = None
|
|
648
548
|
"""
|
|
649
549
|
Name of Station (NoS) of the PROFINET device. The NoS is used in combination with IPv4 record to identify your device in the PROFINET network.
|
|
650
550
|
The `device_name` will be used as NoS if no REMA XML file is already present on your machine and no `rema_xml_content` is provided.
|
|
651
551
|
|
|
652
552
|
"""
|
|
653
|
-
ip_config:
|
|
654
|
-
rema_xml_content:
|
|
553
|
+
ip_config: BusIOProfinetIpConfig | None = None
|
|
554
|
+
rema_xml_content: str | None = None
|
|
655
555
|
"""
|
|
656
556
|
Content of the PROFINET REMA XML file.
|
|
657
557
|
Is used when PROFINET service is added for the first time to create the REMA XML file that holds data to be kept for the next session.
|
|
@@ -690,7 +590,7 @@ class BusIOProfinet(BaseModel):
|
|
|
690
590
|
"""
|
|
691
591
|
|
|
692
592
|
bus_type: Literal['profinet'] = 'profinet'
|
|
693
|
-
network_config:
|
|
593
|
+
network_config: BusIOProfinetNetwork | None = None
|
|
694
594
|
"""
|
|
695
595
|
Used to enable IP communication through the same physical ethernet interface while PROFINET driver is active.
|
|
696
596
|
|
|
@@ -709,7 +609,9 @@ class BusIOProfinet(BaseModel):
|
|
|
709
609
|
MAC address of the physical ethernet interface that you want to use for PROFINET communication.
|
|
710
610
|
|
|
711
611
|
"""
|
|
712
|
-
default_route:
|
|
612
|
+
default_route: Annotated[
|
|
613
|
+
BusIOProfinetDefaultRoute | None, Field(deprecated=True)
|
|
614
|
+
] = None
|
|
713
615
|
|
|
714
616
|
|
|
715
617
|
class BusIOProfinetVirtual(BaseModel):
|
|
@@ -722,7 +624,7 @@ class BusIOProfinetVirtual(BaseModel):
|
|
|
722
624
|
|
|
723
625
|
|
|
724
626
|
class BusIOModbusTCPServer(BaseModel):
|
|
725
|
-
network_type:
|
|
627
|
+
network_type: Literal['tcp'] | None = None
|
|
726
628
|
port: Annotated[int, Field(examples=[502], ge=1, le=65534)]
|
|
727
629
|
"""
|
|
728
630
|
Port number of the MODBUS server to establish communication with.
|
|
@@ -766,7 +668,7 @@ class BusIOModbusServer(BaseModel):
|
|
|
766
668
|
|
|
767
669
|
|
|
768
670
|
class BusIOModbusTCPClient(BaseModel):
|
|
769
|
-
network_type:
|
|
671
|
+
network_type: Literal['tcp'] | None = None
|
|
770
672
|
ip: Annotated[str, Field(examples=['192.168.1.100'])]
|
|
771
673
|
"""
|
|
772
674
|
IP address of the MODBUS server to establish communication with.
|
|
@@ -800,13 +702,11 @@ class BusIOModbusVirtual(BaseModel):
|
|
|
800
702
|
|
|
801
703
|
class BusIOType(RootModel):
|
|
802
704
|
root: Annotated[
|
|
803
|
-
|
|
804
|
-
|
|
805
|
-
|
|
806
|
-
|
|
807
|
-
|
|
808
|
-
BusIOModbusVirtual,
|
|
809
|
-
],
|
|
705
|
+
BusIOProfinet
|
|
706
|
+
| BusIOProfinetVirtual
|
|
707
|
+
| BusIOModbusServer
|
|
708
|
+
| BusIOModbusClient
|
|
709
|
+
| BusIOModbusVirtual,
|
|
810
710
|
Field(discriminator='bus_type'),
|
|
811
711
|
]
|
|
812
712
|
|
|
@@ -845,7 +745,7 @@ class Metadata(RootModel):
|
|
|
845
745
|
Additional metadata to add to the backup
|
|
846
746
|
"""
|
|
847
747
|
|
|
848
|
-
root:
|
|
748
|
+
root: dict[str, str]
|
|
849
749
|
|
|
850
750
|
|
|
851
751
|
class ConfigurationArchive(RootModel):
|
|
@@ -883,11 +783,9 @@ class ConfigurationArchiveStatusSuccess(BaseModel):
|
|
|
883
783
|
|
|
884
784
|
class ConfigurationArchiveStatus(RootModel):
|
|
885
785
|
root: Annotated[
|
|
886
|
-
|
|
887
|
-
|
|
888
|
-
|
|
889
|
-
ConfigurationArchiveStatusSuccess,
|
|
890
|
-
],
|
|
786
|
+
ConfigurationArchiveStatusCreating
|
|
787
|
+
| ConfigurationArchiveStatusError
|
|
788
|
+
| ConfigurationArchiveStatusSuccess,
|
|
891
789
|
Field(discriminator='status'),
|
|
892
790
|
]
|
|
893
791
|
"""
|
|
@@ -925,7 +823,7 @@ class License(BaseModel):
|
|
|
925
823
|
"""
|
|
926
824
|
Identification key of the license.
|
|
927
825
|
"""
|
|
928
|
-
license_expiry_date:
|
|
826
|
+
license_expiry_date: date | None = None
|
|
929
827
|
"""
|
|
930
828
|
Expiration date of the license.
|
|
931
829
|
"""
|
|
@@ -941,11 +839,11 @@ class License(BaseModel):
|
|
|
941
839
|
"""
|
|
942
840
|
Amount of times the license can be activated.
|
|
943
841
|
"""
|
|
944
|
-
feature_limitations:
|
|
842
|
+
feature_limitations: dict[str, int] | None = None
|
|
945
843
|
"""
|
|
946
844
|
Feature limitations of the license.
|
|
947
845
|
"""
|
|
948
|
-
feature_flags:
|
|
846
|
+
feature_flags: list[str] | None = None
|
|
949
847
|
"""
|
|
950
848
|
Features enabled by a license.
|
|
951
849
|
"""
|
|
@@ -1101,7 +999,7 @@ class Vector3d(RootModel):
|
|
|
1101
999
|
|
|
1102
1000
|
"""
|
|
1103
1001
|
|
|
1104
|
-
root: Annotated[
|
|
1002
|
+
root: Annotated[list[float], Field(max_length=3, min_length=3, title='Vector3d')]
|
|
1105
1003
|
"""
|
|
1106
1004
|
A three-dimensional vector [x, y, z] with double precision.
|
|
1107
1005
|
|
|
@@ -1138,7 +1036,7 @@ class ConvexHull(BaseModel):
|
|
|
1138
1036
|
"""
|
|
1139
1037
|
|
|
1140
1038
|
shape_type: Literal['convex_hull'] = 'convex_hull'
|
|
1141
|
-
vertices:
|
|
1039
|
+
vertices: list[Vector3d]
|
|
1142
1040
|
"""
|
|
1143
1041
|
The list of encapsulated points.
|
|
1144
1042
|
"""
|
|
@@ -1154,7 +1052,7 @@ class RotationVector(RootModel):
|
|
|
1154
1052
|
"""
|
|
1155
1053
|
|
|
1156
1054
|
root: Annotated[
|
|
1157
|
-
|
|
1055
|
+
list[float], Field(max_length=3, min_length=3, title='RotationVector')
|
|
1158
1056
|
]
|
|
1159
1057
|
"""
|
|
1160
1058
|
Defines a rotation in 3D space.
|
|
@@ -1197,8 +1095,8 @@ class Pose(BaseModel):
|
|
|
1197
1095
|
|
|
1198
1096
|
"""
|
|
1199
1097
|
|
|
1200
|
-
position:
|
|
1201
|
-
orientation:
|
|
1098
|
+
position: Vector3d | None = None
|
|
1099
|
+
orientation: RotationVector | None = None
|
|
1202
1100
|
|
|
1203
1101
|
|
|
1204
1102
|
class Collider(BaseModel):
|
|
@@ -1216,27 +1114,25 @@ class Collider(BaseModel):
|
|
|
1216
1114
|
"""
|
|
1217
1115
|
|
|
1218
1116
|
shape: Annotated[
|
|
1219
|
-
|
|
1220
|
-
|
|
1221
|
-
|
|
1222
|
-
|
|
1223
|
-
|
|
1224
|
-
|
|
1225
|
-
|
|
1226
|
-
|
|
1227
|
-
ConvexHull,
|
|
1228
|
-
],
|
|
1117
|
+
Sphere
|
|
1118
|
+
| Box
|
|
1119
|
+
| Rectangle
|
|
1120
|
+
| Plane
|
|
1121
|
+
| Cylinder
|
|
1122
|
+
| Capsule
|
|
1123
|
+
| RectangularCapsule
|
|
1124
|
+
| ConvexHull,
|
|
1229
1125
|
Field(discriminator='shape_type'),
|
|
1230
1126
|
]
|
|
1231
|
-
pose:
|
|
1232
|
-
margin:
|
|
1127
|
+
pose: Pose | None = None
|
|
1128
|
+
margin: float | None = 0
|
|
1233
1129
|
"""
|
|
1234
1130
|
Increases the shape's size in all dimensions. Applied in [mm]. Can be used to keep a safe distance to the shape.
|
|
1235
1131
|
"""
|
|
1236
1132
|
|
|
1237
1133
|
|
|
1238
1134
|
class Link(RootModel):
|
|
1239
|
-
root:
|
|
1135
|
+
root: dict[str, Collider]
|
|
1240
1136
|
|
|
1241
1137
|
|
|
1242
1138
|
class LinkChain(RootModel):
|
|
@@ -1257,7 +1153,7 @@ class LinkChain(RootModel):
|
|
|
1257
1153
|
"""
|
|
1258
1154
|
|
|
1259
1155
|
root: Annotated[
|
|
1260
|
-
|
|
1156
|
+
list[Link],
|
|
1261
1157
|
Field(
|
|
1262
1158
|
examples=[
|
|
1263
1159
|
[
|
|
@@ -1330,12 +1226,51 @@ class LinkChain(RootModel):
|
|
|
1330
1226
|
return iter(self.root)
|
|
1331
1227
|
|
|
1332
1228
|
|
|
1229
|
+
class DHParameter(BaseModel):
|
|
1230
|
+
"""
|
|
1231
|
+
A single set of DH parameters.
|
|
1232
|
+
"""
|
|
1233
|
+
|
|
1234
|
+
alpha: float | None = None
|
|
1235
|
+
"""
|
|
1236
|
+
Angle about x-axis in [rad].
|
|
1237
|
+
"""
|
|
1238
|
+
theta: float | None = None
|
|
1239
|
+
"""
|
|
1240
|
+
Angle about z-axis in [rad].
|
|
1241
|
+
"""
|
|
1242
|
+
a: float | None = None
|
|
1243
|
+
"""
|
|
1244
|
+
Offset along x-axis in [mm].
|
|
1245
|
+
"""
|
|
1246
|
+
d: float | None = None
|
|
1247
|
+
"""
|
|
1248
|
+
Offset along z-axis in [mm].
|
|
1249
|
+
"""
|
|
1250
|
+
reverse_rotation_direction: bool | None = None
|
|
1251
|
+
"""
|
|
1252
|
+
True, if rotation direction of joint is reversed.
|
|
1253
|
+
"""
|
|
1254
|
+
|
|
1255
|
+
|
|
1256
|
+
class KinematicModel(BaseModel):
|
|
1257
|
+
"""
|
|
1258
|
+
Kinematics model described by Denavit-Hartenberg parameters.
|
|
1259
|
+
"""
|
|
1260
|
+
|
|
1261
|
+
dh_parameters: list[DHParameter] | None = None
|
|
1262
|
+
inverse_solver: str | None = None
|
|
1263
|
+
"""
|
|
1264
|
+
Optional name of the inverse kinematics solver.
|
|
1265
|
+
"""
|
|
1266
|
+
|
|
1267
|
+
|
|
1333
1268
|
class ControllerDescription(BaseModel):
|
|
1334
1269
|
"""
|
|
1335
1270
|
The data type to describe a robot controller.
|
|
1336
1271
|
"""
|
|
1337
1272
|
|
|
1338
|
-
connected_motion_groups:
|
|
1273
|
+
connected_motion_groups: list[str]
|
|
1339
1274
|
supports_freedrive: bool
|
|
1340
1275
|
"""
|
|
1341
1276
|
Can this controller be moved through freedrive (true), or not (false).
|
|
@@ -1462,7 +1397,7 @@ class Joints(RootModel):
|
|
|
1462
1397
|
|
|
1463
1398
|
"""
|
|
1464
1399
|
|
|
1465
|
-
root:
|
|
1400
|
+
root: list[float]
|
|
1466
1401
|
"""
|
|
1467
1402
|
This structure describes a set of joint values, e.g., positions, currents, torques, of a motion group.
|
|
1468
1403
|
|
|
@@ -1502,7 +1437,7 @@ class MotionGroupStateJointLimitReached(BaseModel):
|
|
|
1502
1437
|
|
|
1503
1438
|
"""
|
|
1504
1439
|
|
|
1505
|
-
limit_reached:
|
|
1440
|
+
limit_reached: list[bool]
|
|
1506
1441
|
"""
|
|
1507
1442
|
If true, operational (soft) jointLimit is reached for specific joint.
|
|
1508
1443
|
"""
|
|
@@ -1546,7 +1481,7 @@ class JoggingPausedNearJointLimit(BaseModel):
|
|
|
1546
1481
|
"""
|
|
1547
1482
|
|
|
1548
1483
|
kind: Literal['PAUSED_NEAR_JOINT_LIMIT'] = 'PAUSED_NEAR_JOINT_LIMIT'
|
|
1549
|
-
joint_indices:
|
|
1484
|
+
joint_indices: list[JointIndice]
|
|
1550
1485
|
|
|
1551
1486
|
|
|
1552
1487
|
class JoggingPausedNearCollision(BaseModel):
|
|
@@ -1573,13 +1508,11 @@ class JoggingDetails(BaseModel):
|
|
|
1573
1508
|
"""
|
|
1574
1509
|
|
|
1575
1510
|
state: Annotated[
|
|
1576
|
-
|
|
1577
|
-
|
|
1578
|
-
|
|
1579
|
-
|
|
1580
|
-
|
|
1581
|
-
JoggingPausedNearCollision,
|
|
1582
|
-
],
|
|
1511
|
+
JoggingRunning
|
|
1512
|
+
| JoggingPausedByUser
|
|
1513
|
+
| JoggingPausedOnIO
|
|
1514
|
+
| JoggingPausedNearJointLimit
|
|
1515
|
+
| JoggingPausedNearCollision,
|
|
1583
1516
|
Field(discriminator='kind'),
|
|
1584
1517
|
]
|
|
1585
1518
|
kind: Literal['JOGGING'] = 'JOGGING'
|
|
@@ -1670,13 +1603,11 @@ class TrajectoryDetails(BaseModel):
|
|
|
1670
1603
|
"""
|
|
1671
1604
|
location: Location
|
|
1672
1605
|
state: Annotated[
|
|
1673
|
-
|
|
1674
|
-
|
|
1675
|
-
|
|
1676
|
-
|
|
1677
|
-
|
|
1678
|
-
TrajectoryPausedOnIO,
|
|
1679
|
-
],
|
|
1606
|
+
TrajectoryRunning
|
|
1607
|
+
| TrajectoryPausedByUser
|
|
1608
|
+
| TrajectoryEnded
|
|
1609
|
+
| TrajectoryWaitForIO
|
|
1610
|
+
| TrajectoryPausedOnIO,
|
|
1680
1611
|
Field(discriminator='kind'),
|
|
1681
1612
|
]
|
|
1682
1613
|
kind: Literal['TRAJECTORY'] = 'TRAJECTORY'
|
|
@@ -1694,13 +1625,13 @@ class Execute(BaseModel):
|
|
|
1694
1625
|
|
|
1695
1626
|
"""
|
|
1696
1627
|
|
|
1697
|
-
joint_position:
|
|
1628
|
+
joint_position: list[float]
|
|
1698
1629
|
"""
|
|
1699
1630
|
Commanded joint position of each joint in [rad]. This command was sent in the time step the corresponding state was received.
|
|
1700
1631
|
|
|
1701
1632
|
"""
|
|
1702
1633
|
details: Annotated[
|
|
1703
|
-
|
|
1634
|
+
JoggingDetails | TrajectoryDetails | None, Field(discriminator='kind')
|
|
1704
1635
|
] = None
|
|
1705
1636
|
|
|
1706
1637
|
|
|
@@ -1737,19 +1668,19 @@ class MotionGroupState(BaseModel):
|
|
|
1737
1668
|
Indicates whether the joint is in a limit for all joints of the motion group.
|
|
1738
1669
|
|
|
1739
1670
|
"""
|
|
1740
|
-
joint_torque:
|
|
1671
|
+
joint_torque: Joints | None = None
|
|
1741
1672
|
"""
|
|
1742
1673
|
Current joint torque of each joint in [Nm].
|
|
1743
1674
|
Is only available if the robot controller supports it, e.g., available for UR controllers.
|
|
1744
1675
|
|
|
1745
1676
|
"""
|
|
1746
|
-
joint_current:
|
|
1677
|
+
joint_current: Joints | None = None
|
|
1747
1678
|
"""
|
|
1748
1679
|
Current at TCP in [A].
|
|
1749
1680
|
Is only available if the robot controller supports it, e.g., available for UR controllers.
|
|
1750
1681
|
|
|
1751
1682
|
"""
|
|
1752
|
-
flange_pose:
|
|
1683
|
+
flange_pose: Pose | None = None
|
|
1753
1684
|
"""
|
|
1754
1685
|
Pose of the flange.
|
|
1755
1686
|
Positions are in [mm].
|
|
@@ -1758,13 +1689,13 @@ class MotionGroupState(BaseModel):
|
|
|
1758
1689
|
For robot arms a flange pose is always returned, for positioners the flange might not be available, depending on the model.
|
|
1759
1690
|
|
|
1760
1691
|
"""
|
|
1761
|
-
tcp:
|
|
1692
|
+
tcp: str | None = None
|
|
1762
1693
|
"""
|
|
1763
1694
|
Unique identifier addressing the active TCP.
|
|
1764
1695
|
Might not be returned for positioners as some do not support TCPs, depending on the model.
|
|
1765
1696
|
|
|
1766
1697
|
"""
|
|
1767
|
-
tcp_pose:
|
|
1698
|
+
tcp_pose: Pose | None = None
|
|
1768
1699
|
"""
|
|
1769
1700
|
Pose of the TCP selected on the robot control panel.
|
|
1770
1701
|
Positions are in [mm].
|
|
@@ -1773,14 +1704,14 @@ class MotionGroupState(BaseModel):
|
|
|
1773
1704
|
Might not be returned for positioners as some do not support TCPs, depending on the model.
|
|
1774
1705
|
|
|
1775
1706
|
"""
|
|
1776
|
-
coordinate_system:
|
|
1707
|
+
coordinate_system: str | None = None
|
|
1777
1708
|
"""
|
|
1778
1709
|
Unique identifier addressing the reference coordinate system of the cartesian data.
|
|
1779
1710
|
Might not be returned for positioners as some do not support TCPs, depending on the model.
|
|
1780
1711
|
Default: world coordinate system of corresponding controller.
|
|
1781
1712
|
|
|
1782
1713
|
"""
|
|
1783
|
-
payload:
|
|
1714
|
+
payload: str | None = None
|
|
1784
1715
|
"""
|
|
1785
1716
|
Unique identifier addressing the active payload.
|
|
1786
1717
|
Only fetchable via GET endpoint, not available in WebSocket.
|
|
@@ -1792,7 +1723,7 @@ class MotionGroupState(BaseModel):
|
|
|
1792
1723
|
Convenience: Signals that NOVA treats measured joint velocities as 0.
|
|
1793
1724
|
|
|
1794
1725
|
"""
|
|
1795
|
-
execute:
|
|
1726
|
+
execute: Execute | None = None
|
|
1796
1727
|
"""
|
|
1797
1728
|
Data that was commanded to the motion group. Includes additional data on NOVA's execution components for executing trajectories and jogging.
|
|
1798
1729
|
This is a convenience field to indicate the last command sent to the motion group.
|
|
@@ -1810,7 +1741,7 @@ class RobotControllerState(BaseModel):
|
|
|
1810
1741
|
"""
|
|
1811
1742
|
Mode of communication and control between NOVA and the robot controller.
|
|
1812
1743
|
"""
|
|
1813
|
-
last_error:
|
|
1744
|
+
last_error: list[str] | None = None
|
|
1814
1745
|
"""
|
|
1815
1746
|
Last error stack encountered during initialization process or after a controller disconnect.
|
|
1816
1747
|
At this stage, it's unclear whether the error is fatal.
|
|
@@ -1837,14 +1768,14 @@ class RobotControllerState(BaseModel):
|
|
|
1837
1768
|
"""
|
|
1838
1769
|
operation_mode: OperationMode
|
|
1839
1770
|
safety_state: SafetyStateType
|
|
1840
|
-
velocity_override: Annotated[
|
|
1771
|
+
velocity_override: Annotated[int | None, Field(ge=1, le=100)] = None
|
|
1841
1772
|
"""
|
|
1842
1773
|
If made available by the robot controller, returns the current velocity override in
|
|
1843
1774
|
[percentage] for movements adjusted on robot control panel.
|
|
1844
1775
|
Valid value range: 1 - 100.
|
|
1845
1776
|
|
|
1846
1777
|
"""
|
|
1847
|
-
motion_groups: Annotated[
|
|
1778
|
+
motion_groups: Annotated[list[MotionGroupState], Field(title='MotionGroupState[]')]
|
|
1848
1779
|
"""
|
|
1849
1780
|
State of indicated motion groups.
|
|
1850
1781
|
In case of state request via controller all configured motion groups are returned.
|
|
@@ -1924,7 +1855,7 @@ class FloatValue(BaseModel):
|
|
|
1924
1855
|
|
|
1925
1856
|
class IOBoundary(RootModel):
|
|
1926
1857
|
root: Annotated[
|
|
1927
|
-
|
|
1858
|
+
BooleanValue | IntegerValue | FloatValue,
|
|
1928
1859
|
Field(discriminator='value_type', title='IOBoundary'),
|
|
1929
1860
|
]
|
|
1930
1861
|
|
|
@@ -1940,20 +1871,20 @@ class IODescription(BaseModel):
|
|
|
1940
1871
|
Name of the input/output. Customize it on the physical controller or in the virtual robot specification.
|
|
1941
1872
|
|
|
1942
1873
|
"""
|
|
1943
|
-
group:
|
|
1874
|
+
group: str | None = None
|
|
1944
1875
|
"""
|
|
1945
1876
|
Name of the input/output group. Customize it on the physical controller or in the virtual robot specification.
|
|
1946
1877
|
|
|
1947
1878
|
"""
|
|
1948
1879
|
direction: IODirection
|
|
1949
1880
|
value_type: IOValueType
|
|
1950
|
-
unit:
|
|
1951
|
-
min:
|
|
1952
|
-
max:
|
|
1881
|
+
unit: UnitType | None = None
|
|
1882
|
+
min: IOBoundary | None = None
|
|
1883
|
+
max: IOBoundary | None = None
|
|
1953
1884
|
|
|
1954
1885
|
|
|
1955
1886
|
class ListIODescriptionsResponse(RootModel):
|
|
1956
|
-
root:
|
|
1887
|
+
root: list[IODescription]
|
|
1957
1888
|
|
|
1958
1889
|
def __getitem__(self, index: int) -> IODescription:
|
|
1959
1890
|
"""
|
|
@@ -2029,7 +1960,7 @@ class IOFloatValue(BaseModel):
|
|
|
2029
1960
|
|
|
2030
1961
|
class IOValue(RootModel):
|
|
2031
1962
|
root: Annotated[
|
|
2032
|
-
|
|
1963
|
+
IOBooleanValue | IOIntegerValue | IOFloatValue,
|
|
2033
1964
|
Field(discriminator='value_type'),
|
|
2034
1965
|
]
|
|
2035
1966
|
|
|
@@ -2039,7 +1970,7 @@ class StreamIOValuesResponse(BaseModel):
|
|
|
2039
1970
|
Array of input/output values.
|
|
2040
1971
|
"""
|
|
2041
1972
|
|
|
2042
|
-
io_values:
|
|
1973
|
+
io_values: list[IOValue]
|
|
2043
1974
|
timestamp: AwareDatetime
|
|
2044
1975
|
"""
|
|
2045
1976
|
Timestamp indicating when the represented information was received from the robot controller.
|
|
@@ -2058,7 +1989,7 @@ class ListIOValuesResponse(RootModel):
|
|
|
2058
1989
|
"""
|
|
2059
1990
|
|
|
2060
1991
|
root: Annotated[
|
|
2061
|
-
|
|
1992
|
+
list[IOValue],
|
|
2062
1993
|
Field(
|
|
2063
1994
|
examples=[
|
|
2064
1995
|
{
|
|
@@ -2211,7 +2142,7 @@ class Orientation(RootModel):
|
|
|
2211
2142
|
|
|
2212
2143
|
"""
|
|
2213
2144
|
|
|
2214
|
-
root: Annotated[
|
|
2145
|
+
root: Annotated[list[float], Field(max_length=4, min_length=3, title='Orientation')]
|
|
2215
2146
|
"""
|
|
2216
2147
|
Describes an orientation in 3D space.
|
|
2217
2148
|
A tree-to-four-dimensional vector [x, y, z, w] with double precision.
|
|
@@ -2244,17 +2175,17 @@ class Orientation(RootModel):
|
|
|
2244
2175
|
|
|
2245
2176
|
|
|
2246
2177
|
class CoordinateSystemData(BaseModel):
|
|
2247
|
-
name:
|
|
2178
|
+
name: str | None = None
|
|
2248
2179
|
"""
|
|
2249
2180
|
Human readable name of this coordinate system.
|
|
2250
2181
|
"""
|
|
2251
|
-
reference_coordinate_system:
|
|
2182
|
+
reference_coordinate_system: str | None = None
|
|
2252
2183
|
"""
|
|
2253
2184
|
The identifier of the reference coordinate system. Empty if world is used.
|
|
2254
2185
|
"""
|
|
2255
|
-
position:
|
|
2256
|
-
orientation:
|
|
2257
|
-
orientation_type:
|
|
2186
|
+
position: Vector3d | None = None
|
|
2187
|
+
orientation: Orientation | None = None
|
|
2188
|
+
orientation_type: OrientationType | None = 'ROTATION_VECTOR'
|
|
2258
2189
|
|
|
2259
2190
|
|
|
2260
2191
|
class CoordinateSystem(CoordinateSystemData):
|
|
@@ -2265,7 +2196,7 @@ class CoordinateSystem(CoordinateSystemData):
|
|
|
2265
2196
|
|
|
2266
2197
|
|
|
2267
2198
|
class ListCoordinateSystemsResponse(RootModel):
|
|
2268
|
-
root:
|
|
2199
|
+
root: list[CoordinateSystem]
|
|
2269
2200
|
|
|
2270
2201
|
def __getitem__(self, index: int) -> CoordinateSystem:
|
|
2271
2202
|
"""
|
|
@@ -2312,7 +2243,7 @@ class ColliderDictionary(RootModel):
|
|
|
2312
2243
|
A collection of identifiable colliders.
|
|
2313
2244
|
"""
|
|
2314
2245
|
|
|
2315
|
-
root:
|
|
2246
|
+
root: dict[str, Collider]
|
|
2316
2247
|
|
|
2317
2248
|
|
|
2318
2249
|
class LimitRange(BaseModel):
|
|
@@ -2320,37 +2251,37 @@ class LimitRange(BaseModel):
|
|
|
2320
2251
|
The upper_limit must be greater then the lower_limit.
|
|
2321
2252
|
"""
|
|
2322
2253
|
|
|
2323
|
-
lower_limit:
|
|
2324
|
-
upper_limit:
|
|
2254
|
+
lower_limit: float | None = None
|
|
2255
|
+
upper_limit: float | None = None
|
|
2325
2256
|
|
|
2326
2257
|
|
|
2327
2258
|
class JointLimits(BaseModel):
|
|
2328
|
-
position:
|
|
2329
|
-
velocity:
|
|
2330
|
-
acceleration:
|
|
2331
|
-
torque:
|
|
2259
|
+
position: LimitRange | None = None
|
|
2260
|
+
velocity: float | None = None
|
|
2261
|
+
acceleration: float | None = None
|
|
2262
|
+
torque: float | None = None
|
|
2332
2263
|
|
|
2333
2264
|
|
|
2334
2265
|
class CartesianLimits(BaseModel):
|
|
2335
|
-
velocity:
|
|
2336
|
-
acceleration:
|
|
2337
|
-
orientation_velocity:
|
|
2338
|
-
orientation_acceleration:
|
|
2266
|
+
velocity: float | None = None
|
|
2267
|
+
acceleration: float | None = None
|
|
2268
|
+
orientation_velocity: float | None = None
|
|
2269
|
+
orientation_acceleration: float | None = None
|
|
2339
2270
|
|
|
2340
2271
|
|
|
2341
2272
|
class LimitSet(BaseModel):
|
|
2342
|
-
joints:
|
|
2343
|
-
tcp:
|
|
2344
|
-
elbow:
|
|
2345
|
-
flange:
|
|
2346
|
-
coupled_shoulder_elbow_joint:
|
|
2273
|
+
joints: list[JointLimits] | None = None
|
|
2274
|
+
tcp: CartesianLimits | None = None
|
|
2275
|
+
elbow: CartesianLimits | None = None
|
|
2276
|
+
flange: CartesianLimits | None = None
|
|
2277
|
+
coupled_shoulder_elbow_joint: JointLimits | None = None
|
|
2347
2278
|
|
|
2348
2279
|
|
|
2349
2280
|
class OperationLimits(BaseModel):
|
|
2350
|
-
auto_limits:
|
|
2351
|
-
manual_limits:
|
|
2352
|
-
manual_t1_limits:
|
|
2353
|
-
manual_t2_limits:
|
|
2281
|
+
auto_limits: LimitSet | None = None
|
|
2282
|
+
manual_limits: LimitSet | None = None
|
|
2283
|
+
manual_t1_limits: LimitSet | None = None
|
|
2284
|
+
manual_t2_limits: LimitSet | None = None
|
|
2354
2285
|
|
|
2355
2286
|
|
|
2356
2287
|
class Payload(BaseModel):
|
|
@@ -2359,35 +2290,8 @@ class Payload(BaseModel):
|
|
|
2359
2290
|
"""
|
|
2360
2291
|
Mass of payload in [kg].
|
|
2361
2292
|
"""
|
|
2362
|
-
center_of_mass:
|
|
2363
|
-
moment_of_inertia:
|
|
2364
|
-
|
|
2365
|
-
|
|
2366
|
-
class DHParameter(BaseModel):
|
|
2367
|
-
"""
|
|
2368
|
-
A single set of DH parameters.
|
|
2369
|
-
"""
|
|
2370
|
-
|
|
2371
|
-
alpha: Optional[float] = None
|
|
2372
|
-
"""
|
|
2373
|
-
Angle about x-axis in [rad].
|
|
2374
|
-
"""
|
|
2375
|
-
theta: Optional[float] = None
|
|
2376
|
-
"""
|
|
2377
|
-
Angle about z-axis in [rad].
|
|
2378
|
-
"""
|
|
2379
|
-
a: Optional[float] = None
|
|
2380
|
-
"""
|
|
2381
|
-
Offset along x-axis in [mm].
|
|
2382
|
-
"""
|
|
2383
|
-
d: Optional[float] = None
|
|
2384
|
-
"""
|
|
2385
|
-
Offset along z-axis in [mm].
|
|
2386
|
-
"""
|
|
2387
|
-
reverse_rotation_direction: Optional[bool] = None
|
|
2388
|
-
"""
|
|
2389
|
-
True, if rotation direction of joint is reversed.
|
|
2390
|
-
"""
|
|
2293
|
+
center_of_mass: Vector3d | None = None
|
|
2294
|
+
moment_of_inertia: Vector3d | None = None
|
|
2391
2295
|
|
|
2392
2296
|
|
|
2393
2297
|
class MotionGroupDescription(BaseModel):
|
|
@@ -2396,30 +2300,30 @@ class MotionGroupDescription(BaseModel):
|
|
|
2396
2300
|
"""
|
|
2397
2301
|
|
|
2398
2302
|
motion_group_model: MotionGroupModel
|
|
2399
|
-
mounting:
|
|
2303
|
+
mounting: Pose | None = None
|
|
2400
2304
|
"""
|
|
2401
2305
|
The offset from the world frame to the motion group base.
|
|
2402
2306
|
"""
|
|
2403
|
-
tcps: Annotated[
|
|
2404
|
-
|
|
2405
|
-
|
|
2307
|
+
tcps: Annotated[dict[str, TcpOffset] | None, Field(title='TcpOffsetDictionary')] = (
|
|
2308
|
+
None
|
|
2309
|
+
)
|
|
2406
2310
|
"""
|
|
2407
2311
|
Maps a TCP name to its offset relative to the flange coordinate system. Key must be a TCP identifier.
|
|
2408
2312
|
Values are TcpOffsets.
|
|
2409
2313
|
|
|
2410
2314
|
"""
|
|
2411
|
-
safety_zones:
|
|
2315
|
+
safety_zones: ColliderDictionary | None = None
|
|
2412
2316
|
"""
|
|
2413
2317
|
SafetyZones are areas which cannot be entered or where certain limits apply.
|
|
2414
2318
|
"""
|
|
2415
|
-
safety_link_colliders:
|
|
2319
|
+
safety_link_colliders: list[ColliderDictionary] | None = None
|
|
2416
2320
|
"""
|
|
2417
2321
|
The shape of the MotionGroups links to validate against safety zones.
|
|
2418
2322
|
Indexed along the kinematic chain, starting with a static base shape before first joint.
|
|
2419
2323
|
|
|
2420
2324
|
"""
|
|
2421
2325
|
safety_tool_colliders: Annotated[
|
|
2422
|
-
|
|
2326
|
+
dict[str, ColliderDictionary] | None, Field(title='SafetyToolColliders')
|
|
2423
2327
|
] = None
|
|
2424
2328
|
"""
|
|
2425
2329
|
Maps a TCP name to its tool collider. Key must be a TCP identifier.
|
|
@@ -2427,22 +2331,27 @@ class MotionGroupDescription(BaseModel):
|
|
|
2427
2331
|
|
|
2428
2332
|
"""
|
|
2429
2333
|
operation_limits: OperationLimits
|
|
2430
|
-
payloads: Annotated[
|
|
2431
|
-
|
|
2432
|
-
|
|
2334
|
+
payloads: Annotated[dict[str, Payload] | None, Field(title='PayloadDictionary')] = (
|
|
2335
|
+
None
|
|
2336
|
+
)
|
|
2433
2337
|
"""
|
|
2434
2338
|
Maps a payload name to its configuration. Key must be a payload identifier.
|
|
2435
2339
|
Values are payload objects.
|
|
2436
2340
|
|
|
2437
2341
|
"""
|
|
2438
|
-
cycle_time: Annotated[
|
|
2342
|
+
cycle_time: Annotated[int | None, Field(ge=0, le=2147483647)] = None
|
|
2439
2343
|
"""
|
|
2440
2344
|
[ms] cycle time of the motion group controller. A trajectory for this motion group should be computed to this resolution.
|
|
2441
2345
|
"""
|
|
2442
|
-
dh_parameters:
|
|
2346
|
+
dh_parameters: list[DHParameter] | None = None
|
|
2443
2347
|
"""
|
|
2444
2348
|
The DH parameters describing the motion group geometry, starting from base.
|
|
2445
2349
|
"""
|
|
2350
|
+
serial_number: str | None = None
|
|
2351
|
+
"""
|
|
2352
|
+
The serial number of the motion group, if available. If not available, the serial number of the robot controller. If not available, empty.
|
|
2353
|
+
|
|
2354
|
+
"""
|
|
2446
2355
|
|
|
2447
2356
|
|
|
2448
2357
|
class Tool(RootModel):
|
|
@@ -2455,28 +2364,28 @@ class Tool(RootModel):
|
|
|
2455
2364
|
|
|
2456
2365
|
"""
|
|
2457
2366
|
|
|
2458
|
-
root:
|
|
2367
|
+
root: dict[str, Collider]
|
|
2459
2368
|
|
|
2460
2369
|
|
|
2461
2370
|
class CollisionSetup(BaseModel):
|
|
2462
|
-
colliders:
|
|
2371
|
+
colliders: ColliderDictionary | None = None
|
|
2463
2372
|
"""
|
|
2464
2373
|
Colliders are checked against links and tool.
|
|
2465
2374
|
|
|
2466
2375
|
"""
|
|
2467
|
-
link_chain:
|
|
2376
|
+
link_chain: LinkChain | None = None
|
|
2468
2377
|
"""
|
|
2469
2378
|
The shape of the motion groups links to validate against colliders.
|
|
2470
2379
|
Indexed along the kinematic chain, starting with a static base shape before first joint.
|
|
2471
2380
|
The base of the motion group is not checked for collision against the environment.
|
|
2472
2381
|
|
|
2473
2382
|
"""
|
|
2474
|
-
tool:
|
|
2383
|
+
tool: Tool | None = None
|
|
2475
2384
|
"""
|
|
2476
2385
|
Shape of the tool to validate against colliders.
|
|
2477
2386
|
|
|
2478
2387
|
"""
|
|
2479
|
-
self_collision_detection:
|
|
2388
|
+
self_collision_detection: bool | None = True
|
|
2480
2389
|
"""
|
|
2481
2390
|
If true, self-collision detection is enabled for the motion group.
|
|
2482
2391
|
|
|
@@ -2504,7 +2413,7 @@ class CollisionSetups(RootModel):
|
|
|
2504
2413
|
|
|
2505
2414
|
"""
|
|
2506
2415
|
|
|
2507
|
-
root:
|
|
2416
|
+
root: dict[str, CollisionSetup]
|
|
2508
2417
|
|
|
2509
2418
|
|
|
2510
2419
|
class MotionGroupSetup(BaseModel):
|
|
@@ -2513,18 +2422,18 @@ class MotionGroupSetup(BaseModel):
|
|
|
2513
2422
|
"""
|
|
2514
2423
|
[ms] cycle time of the motion group controller. A trajectory for this motion group should be computed to this resolution.
|
|
2515
2424
|
"""
|
|
2516
|
-
mounting:
|
|
2425
|
+
mounting: Pose | None = None
|
|
2517
2426
|
"""
|
|
2518
2427
|
The offset from the world frame to the motion group base.
|
|
2519
2428
|
"""
|
|
2520
|
-
tcp_offset:
|
|
2521
|
-
global_limits:
|
|
2522
|
-
payload:
|
|
2523
|
-
collision_setups:
|
|
2429
|
+
tcp_offset: Pose | None = None
|
|
2430
|
+
global_limits: LimitSet | None = None
|
|
2431
|
+
payload: Payload | None = None
|
|
2432
|
+
collision_setups: CollisionSetups | None = None
|
|
2524
2433
|
|
|
2525
2434
|
|
|
2526
2435
|
class DoubleArray(RootModel):
|
|
2527
|
-
root:
|
|
2436
|
+
root: list[float]
|
|
2528
2437
|
|
|
2529
2438
|
def __getitem__(self, index: int) -> float:
|
|
2530
2439
|
"""
|
|
@@ -2552,23 +2461,70 @@ class DoubleArray(RootModel):
|
|
|
2552
2461
|
|
|
2553
2462
|
|
|
2554
2463
|
class BlendingAuto(BaseModel):
|
|
2555
|
-
min_velocity_in_percent: Annotated[
|
|
2464
|
+
min_velocity_in_percent: Annotated[int | None, Field(ge=0, le=100)] = None
|
|
2556
2465
|
"""
|
|
2557
|
-
Auto-blending is used to keep a constant velocity when blending between two motion commands.
|
|
2466
|
+
Auto-blending is used to keep a constant velocity when blending between two motion commands. To use auto-blending, the TCP velocity limit must be set.
|
|
2558
2467
|
It changes the TCP path around the target point of the motion command.
|
|
2559
|
-
The value represents the percentage of the original velocity.
|
|
2468
|
+
The value represents the percentage of the original velocity. Auto-blending is always performed in cartesian space.
|
|
2560
2469
|
|
|
2561
2470
|
"""
|
|
2562
2471
|
blending_name: Literal['BlendingAuto'] = 'BlendingAuto'
|
|
2563
2472
|
|
|
2564
2473
|
|
|
2474
|
+
class BlendingSpace(Enum):
|
|
2475
|
+
"""
|
|
2476
|
+
Defines the space in which blending is performed.
|
|
2477
|
+
- `JOINT`: Zone blending is performed in joint space
|
|
2478
|
+
- `CARTESIAN`: Auto-blending is performed in cartesian space
|
|
2479
|
+
|
|
2480
|
+
"""
|
|
2481
|
+
|
|
2482
|
+
JOINT = 'JOINT'
|
|
2483
|
+
CARTESIAN = 'CARTESIAN'
|
|
2484
|
+
|
|
2485
|
+
|
|
2565
2486
|
class BlendingPosition(BaseModel):
|
|
2566
|
-
position_zone_radius:
|
|
2487
|
+
position_zone_radius: float | None = None
|
|
2567
2488
|
"""
|
|
2568
2489
|
Specifies the maximum radius in [mm] around the motion command's target point
|
|
2569
2490
|
where the TCP path can be altered to blend the motion command into the following one.
|
|
2570
2491
|
If auto-blending blends too much of the resulting trajectory, use position-blending to restrict the blending zone radius.
|
|
2571
2492
|
|
|
2493
|
+
"""
|
|
2494
|
+
position_zone_percentage: Annotated[float | None, Field(ge=0.0, le=100.0)] = None
|
|
2495
|
+
"""
|
|
2496
|
+
Specifies the maximum blending percentage based on the trajectory length in position space
|
|
2497
|
+
around the motion command's target point. Percentage indicated in 0.0 - 100.0.
|
|
2498
|
+
|
|
2499
|
+
"""
|
|
2500
|
+
orientation_zone_radius: float | None = None
|
|
2501
|
+
"""
|
|
2502
|
+
Specifies the maximum radius in [rad] for orientation blending around the motion command's
|
|
2503
|
+
target orientation. At the target's orientation, the TCP orientation can be altered to blend into the following motion.
|
|
2504
|
+
|
|
2505
|
+
"""
|
|
2506
|
+
orientation_zone_percentage: Annotated[float | None, Field(ge=0.0, le=100.0)] = None
|
|
2507
|
+
"""
|
|
2508
|
+
Specifies the maximum blending percentage for orientation blending
|
|
2509
|
+
based on the trajectory length in orientation space. Percentage indicated in 0.0 - 100.0.
|
|
2510
|
+
|
|
2511
|
+
"""
|
|
2512
|
+
joints_zone_radius: float | None = None
|
|
2513
|
+
"""
|
|
2514
|
+
Specifies the maximum radius in [rad] for joint space blending around the motion command's
|
|
2515
|
+
target joint configuration. At the target joint configuration, the joint path can be altered to blend into the following motion.
|
|
2516
|
+
|
|
2517
|
+
"""
|
|
2518
|
+
joints_zone_percentage: Annotated[float | None, Field(ge=0.0, le=100.0)] = None
|
|
2519
|
+
"""
|
|
2520
|
+
Specifies the maximum blending percentage for joint space blending
|
|
2521
|
+
based on the trajectory length in joint space. Percentage indicated in 0.0 to 100.0.
|
|
2522
|
+
|
|
2523
|
+
"""
|
|
2524
|
+
space: BlendingSpace | None = None
|
|
2525
|
+
"""
|
|
2526
|
+
Defines the space in which blending is performed.
|
|
2527
|
+
|
|
2572
2528
|
"""
|
|
2573
2529
|
blending_name: Literal['BlendingPosition'] = 'BlendingPosition'
|
|
2574
2530
|
|
|
@@ -2579,34 +2535,34 @@ class LimitsOverride(BaseModel):
|
|
|
2579
2535
|
|
|
2580
2536
|
"""
|
|
2581
2537
|
|
|
2582
|
-
joint_velocity_limits:
|
|
2538
|
+
joint_velocity_limits: list[float] | None = None
|
|
2583
2539
|
"""
|
|
2584
2540
|
Maximum joint velocity in [rad/s] for each joint.
|
|
2585
2541
|
Either leave this field empty or set a value for each joint.
|
|
2586
2542
|
|
|
2587
2543
|
"""
|
|
2588
|
-
joint_acceleration_limits:
|
|
2544
|
+
joint_acceleration_limits: list[float] | None = None
|
|
2589
2545
|
"""
|
|
2590
2546
|
Maximum joint acceleration in [rad/s^2] for each joint.
|
|
2591
2547
|
Either leave this field empty or set a value for each joint.
|
|
2592
2548
|
|
|
2593
2549
|
"""
|
|
2594
|
-
tcp_velocity_limit:
|
|
2550
|
+
tcp_velocity_limit: float | None = None
|
|
2595
2551
|
"""
|
|
2596
2552
|
Maximum allowed TCP velocity in [mm/s].
|
|
2597
2553
|
|
|
2598
2554
|
"""
|
|
2599
|
-
tcp_acceleration_limit:
|
|
2555
|
+
tcp_acceleration_limit: float | None = None
|
|
2600
2556
|
"""
|
|
2601
2557
|
Maximum allowed TCP acceleration in [mm/s^2].
|
|
2602
2558
|
|
|
2603
2559
|
"""
|
|
2604
|
-
tcp_orientation_velocity_limit:
|
|
2560
|
+
tcp_orientation_velocity_limit: float | None = None
|
|
2605
2561
|
"""
|
|
2606
2562
|
Maximum allowed TCP rotation velocity in [rad/s].
|
|
2607
2563
|
|
|
2608
2564
|
"""
|
|
2609
|
-
tcp_orientation_acceleration_limit:
|
|
2565
|
+
tcp_orientation_acceleration_limit: float | None = None
|
|
2610
2566
|
"""
|
|
2611
2567
|
Maximum allowed TCP rotation acceleration in [rad/s^2].
|
|
2612
2568
|
|
|
@@ -2637,7 +2593,7 @@ class PathCubicSpline(BaseModel):
|
|
|
2637
2593
|
|
|
2638
2594
|
"""
|
|
2639
2595
|
|
|
2640
|
-
parameters:
|
|
2596
|
+
parameters: list[CubicSplineParameter]
|
|
2641
2597
|
path_definition_name: Literal['PathCubicSpline'] = 'PathCubicSpline'
|
|
2642
2598
|
|
|
2643
2599
|
|
|
@@ -2678,21 +2634,20 @@ class PathJointPTP(BaseModel):
|
|
|
2678
2634
|
|
|
2679
2635
|
class MotionCommand(BaseModel):
|
|
2680
2636
|
blending: Annotated[
|
|
2681
|
-
|
|
2682
|
-
Field(discriminator='blending_name'),
|
|
2637
|
+
BlendingAuto | BlendingPosition | None, Field(discriminator='blending_name')
|
|
2683
2638
|
] = None
|
|
2684
2639
|
"""
|
|
2685
2640
|
Blending alters the TCP path at the target point of a motion command
|
|
2686
2641
|
to ensure that the velocity does not drop to zero between two motion commands.
|
|
2687
2642
|
|
|
2688
2643
|
"""
|
|
2689
|
-
limits_override:
|
|
2644
|
+
limits_override: LimitsOverride | None = None
|
|
2690
2645
|
"""
|
|
2691
2646
|
Limits override is used to override the global limits of the motion group for this segment of the motion.
|
|
2692
2647
|
|
|
2693
2648
|
"""
|
|
2694
2649
|
path: Annotated[
|
|
2695
|
-
|
|
2650
|
+
PathCartesianPTP | PathCubicSpline | PathLine | PathCircle | PathJointPTP,
|
|
2696
2651
|
Field(discriminator='path_definition_name'),
|
|
2697
2652
|
]
|
|
2698
2653
|
|
|
@@ -2711,7 +2666,7 @@ class PlanTrajectoryRequest(BaseModel):
|
|
|
2711
2666
|
To move the robot to the start joint position use the endpoint [streamMoveToTrajectoryViaJointP2P](streamMoveToTrajectoryViaJointP2P).
|
|
2712
2667
|
|
|
2713
2668
|
"""
|
|
2714
|
-
motion_commands:
|
|
2669
|
+
motion_commands: list[MotionCommand]
|
|
2715
2670
|
"""
|
|
2716
2671
|
List of motion commands. A command consists of a path definition (line, circle, joint_ptp, cartesian_ptp, cubic_spline), blending, and limits override.
|
|
2717
2672
|
|
|
@@ -2719,17 +2674,17 @@ class PlanTrajectoryRequest(BaseModel):
|
|
|
2719
2674
|
|
|
2720
2675
|
|
|
2721
2676
|
class JointTrajectory(BaseModel):
|
|
2722
|
-
joint_positions:
|
|
2677
|
+
joint_positions: list[Joints]
|
|
2723
2678
|
"""
|
|
2724
2679
|
List of joint positions [rad] for each sample.
|
|
2725
2680
|
The number of samples must match the number of timestamps provided in the times field.
|
|
2726
2681
|
|
|
2727
2682
|
"""
|
|
2728
|
-
times:
|
|
2683
|
+
times: list[float]
|
|
2729
2684
|
"""
|
|
2730
2685
|
Timestamp for each sample [s].
|
|
2731
2686
|
"""
|
|
2732
|
-
locations:
|
|
2687
|
+
locations: list[Location]
|
|
2733
2688
|
|
|
2734
2689
|
|
|
2735
2690
|
class FeedbackOutOfWorkspace(BaseModel):
|
|
@@ -2737,7 +2692,7 @@ class FeedbackOutOfWorkspace(BaseModel):
|
|
|
2737
2692
|
Requested TCP pose is outside of motion group's workspace.
|
|
2738
2693
|
"""
|
|
2739
2694
|
|
|
2740
|
-
invalid_tcp_pose:
|
|
2695
|
+
invalid_tcp_pose: Pose | None = None
|
|
2741
2696
|
error_feedback_name: Literal['FeedbackOutOfWorkspace'] = 'FeedbackOutOfWorkspace'
|
|
2742
2697
|
|
|
2743
2698
|
|
|
@@ -2758,8 +2713,8 @@ class FeedbackSingularity(BaseModel):
|
|
|
2758
2713
|
|
|
2759
2714
|
"""
|
|
2760
2715
|
|
|
2761
|
-
singularity_type:
|
|
2762
|
-
singular_joint_position:
|
|
2716
|
+
singularity_type: SingularityTypeEnum | None = None
|
|
2717
|
+
singular_joint_position: DoubleArray | None = None
|
|
2763
2718
|
error_feedback_name: Literal['FeedbackSingularity'] = 'FeedbackSingularity'
|
|
2764
2719
|
|
|
2765
2720
|
|
|
@@ -2770,46 +2725,44 @@ class FeedbackJointLimitExceeded(BaseModel):
|
|
|
2770
2725
|
|
|
2771
2726
|
"""
|
|
2772
2727
|
|
|
2773
|
-
joint_index: Annotated[
|
|
2774
|
-
joint_position:
|
|
2728
|
+
joint_index: Annotated[int | None, Field(ge=0, le=2147483647)] = None
|
|
2729
|
+
joint_position: DoubleArray | None = None
|
|
2775
2730
|
error_feedback_name: Literal['FeedbackJointLimitExceeded'] = (
|
|
2776
2731
|
'FeedbackJointLimitExceeded'
|
|
2777
2732
|
)
|
|
2778
2733
|
|
|
2779
2734
|
|
|
2780
2735
|
class CollisionContact(BaseModel):
|
|
2781
|
-
local:
|
|
2782
|
-
root:
|
|
2736
|
+
local: Vector3d | None = None
|
|
2737
|
+
root: Vector3d | None = None
|
|
2783
2738
|
|
|
2784
2739
|
|
|
2785
2740
|
class Collision(BaseModel):
|
|
2786
|
-
id_of_a:
|
|
2787
|
-
id_of_b:
|
|
2788
|
-
id_of_layer:
|
|
2789
|
-
normal_root_on_b:
|
|
2790
|
-
position_on_a:
|
|
2791
|
-
position_on_b:
|
|
2741
|
+
id_of_a: str | None = None
|
|
2742
|
+
id_of_b: str | None = None
|
|
2743
|
+
id_of_layer: str | None = None
|
|
2744
|
+
normal_root_on_b: Vector3d | None = None
|
|
2745
|
+
position_on_a: CollisionContact | None = None
|
|
2746
|
+
position_on_b: CollisionContact | None = None
|
|
2792
2747
|
|
|
2793
2748
|
|
|
2794
2749
|
class FeedbackCollision(BaseModel):
|
|
2795
|
-
collisions:
|
|
2796
|
-
joint_position:
|
|
2797
|
-
tcp_pose:
|
|
2750
|
+
collisions: list[Collision] | None = None
|
|
2751
|
+
joint_position: DoubleArray | None = None
|
|
2752
|
+
tcp_pose: Pose | None = None
|
|
2798
2753
|
error_feedback_name: Literal['FeedbackCollision'] = 'FeedbackCollision'
|
|
2799
2754
|
|
|
2800
2755
|
|
|
2801
2756
|
class PlanTrajectoryFailedResponse(BaseModel):
|
|
2802
2757
|
error_feedback: Annotated[
|
|
2803
|
-
|
|
2804
|
-
|
|
2805
|
-
|
|
2806
|
-
|
|
2807
|
-
FeedbackCollision,
|
|
2808
|
-
],
|
|
2758
|
+
FeedbackOutOfWorkspace
|
|
2759
|
+
| FeedbackSingularity
|
|
2760
|
+
| FeedbackJointLimitExceeded
|
|
2761
|
+
| FeedbackCollision,
|
|
2809
2762
|
Field(discriminator='error_feedback_name'),
|
|
2810
2763
|
]
|
|
2811
2764
|
error_location_on_trajectory: Location
|
|
2812
|
-
joint_trajectory:
|
|
2765
|
+
joint_trajectory: JointTrajectory | None = None
|
|
2813
2766
|
"""
|
|
2814
2767
|
The joint trajectory from the start joint position to the error.
|
|
2815
2768
|
|
|
@@ -2817,14 +2770,14 @@ class PlanTrajectoryFailedResponse(BaseModel):
|
|
|
2817
2770
|
|
|
2818
2771
|
|
|
2819
2772
|
class PlanTrajectoryResponse(BaseModel):
|
|
2820
|
-
response:
|
|
2773
|
+
response: JointTrajectory | PlanTrajectoryFailedResponse
|
|
2821
2774
|
|
|
2822
2775
|
|
|
2823
2776
|
class ValidationError(BaseModel):
|
|
2824
|
-
loc: Annotated[
|
|
2777
|
+
loc: Annotated[list[str | int], Field(title='Location')]
|
|
2825
2778
|
msg: Annotated[str, Field(title='Message')]
|
|
2826
2779
|
type: Annotated[str, Field(title='Error Type')]
|
|
2827
|
-
input:
|
|
2780
|
+
input: dict[str, Any]
|
|
2828
2781
|
|
|
2829
2782
|
|
|
2830
2783
|
class ErrorInvalidJointCount(BaseModel):
|
|
@@ -2853,12 +2806,12 @@ class ErrorJointLimitExceeded(BaseModel):
|
|
|
2853
2806
|
|
|
2854
2807
|
"""
|
|
2855
2808
|
|
|
2856
|
-
joint_index: Annotated[
|
|
2809
|
+
joint_index: Annotated[int | None, Field(ge=0, le=2147483647)] = None
|
|
2857
2810
|
"""
|
|
2858
2811
|
Index of the joint exceeding its limits (0-based).
|
|
2859
2812
|
|
|
2860
2813
|
"""
|
|
2861
|
-
joint_position:
|
|
2814
|
+
joint_position: DoubleArray | None = None
|
|
2862
2815
|
"""
|
|
2863
2816
|
The joint position violating the limits.
|
|
2864
2817
|
|
|
@@ -2872,8 +2825,8 @@ class ErrorJointPositionCollision(BaseModel):
|
|
|
2872
2825
|
|
|
2873
2826
|
"""
|
|
2874
2827
|
|
|
2875
|
-
collisions:
|
|
2876
|
-
joint_position:
|
|
2828
|
+
collisions: list[Collision] | None = None
|
|
2829
|
+
joint_position: DoubleArray | None = None
|
|
2877
2830
|
"""
|
|
2878
2831
|
The joint position that collides.
|
|
2879
2832
|
|
|
@@ -2885,13 +2838,10 @@ class ErrorJointPositionCollision(BaseModel):
|
|
|
2885
2838
|
|
|
2886
2839
|
class PlanValidationError(ValidationError):
|
|
2887
2840
|
data: Annotated[
|
|
2888
|
-
|
|
2889
|
-
|
|
2890
|
-
|
|
2891
|
-
|
|
2892
|
-
ErrorJointPositionCollision,
|
|
2893
|
-
]
|
|
2894
|
-
],
|
|
2841
|
+
ErrorInvalidJointCount
|
|
2842
|
+
| ErrorJointLimitExceeded
|
|
2843
|
+
| ErrorJointPositionCollision
|
|
2844
|
+
| None,
|
|
2895
2845
|
Field(discriminator='error_feedback_name'),
|
|
2896
2846
|
] = None
|
|
2897
2847
|
"""
|
|
@@ -2901,7 +2851,7 @@ class PlanValidationError(ValidationError):
|
|
|
2901
2851
|
|
|
2902
2852
|
|
|
2903
2853
|
class Plan422Response(BaseModel):
|
|
2904
|
-
detail: Annotated[
|
|
2854
|
+
detail: Annotated[list[PlanValidationError] | None, Field(title='Detail')] = None
|
|
2905
2855
|
|
|
2906
2856
|
|
|
2907
2857
|
class RRTConnectAlgorithm(BaseModel):
|
|
@@ -2916,25 +2866,25 @@ class RRTConnectAlgorithm(BaseModel):
|
|
|
2916
2866
|
This is a custom implementation optimized for manipulator kinematics and collision checking in industrial contexts.
|
|
2917
2867
|
|
|
2918
2868
|
"""
|
|
2919
|
-
max_iterations: Annotated[
|
|
2869
|
+
max_iterations: Annotated[int | None, Field(ge=1)] = 10000
|
|
2920
2870
|
"""
|
|
2921
2871
|
Maximum number of iterations for the RRT Connect algorithm.
|
|
2922
2872
|
Higher values increase likelihood of success, but also computation time.
|
|
2923
2873
|
|
|
2924
2874
|
"""
|
|
2925
|
-
max_step_size:
|
|
2875
|
+
max_step_size: float | None = 1
|
|
2926
2876
|
"""
|
|
2927
2877
|
Maximum step size for tree extension in joint space.
|
|
2928
2878
|
"""
|
|
2929
|
-
adaptive_step_size:
|
|
2879
|
+
adaptive_step_size: bool | None = True
|
|
2930
2880
|
"""
|
|
2931
2881
|
Adjust the maximum step size during the search based on the recent success rate of tree expansion.
|
|
2932
2882
|
"""
|
|
2933
|
-
apply_smoothing:
|
|
2883
|
+
apply_smoothing: bool | None = True
|
|
2934
2884
|
"""
|
|
2935
2885
|
Apply smoothing after the search has succeeded. This will remove as many intermediate points as possible while keeping the path valid.
|
|
2936
2886
|
"""
|
|
2937
|
-
apply_blending:
|
|
2887
|
+
apply_blending: bool | None = True
|
|
2938
2888
|
"""
|
|
2939
2889
|
Apply blending after the search has succeeded and smoothing has been applied. This will apply the largest viable blending at each intermediate point.
|
|
2940
2890
|
"""
|
|
@@ -2949,7 +2899,7 @@ class MidpointInsertionAlgorithm(BaseModel):
|
|
|
2949
2899
|
This algorithm adds a single midpoint between the start and target joint position to find collision-free paths.
|
|
2950
2900
|
|
|
2951
2901
|
"""
|
|
2952
|
-
max_iterations: Annotated[
|
|
2902
|
+
max_iterations: Annotated[int | None, Field(ge=1)] = 1000
|
|
2953
2903
|
"""
|
|
2954
2904
|
Maximum number of iterations for the midpoint insertion algorithm.
|
|
2955
2905
|
Higher values increase likelyhood of success, but also computation time (linear).
|
|
@@ -2959,7 +2909,7 @@ class MidpointInsertionAlgorithm(BaseModel):
|
|
|
2959
2909
|
|
|
2960
2910
|
class CollisionFreeAlgorithm(RootModel):
|
|
2961
2911
|
root: Annotated[
|
|
2962
|
-
|
|
2912
|
+
RRTConnectAlgorithm | MidpointInsertionAlgorithm,
|
|
2963
2913
|
Field(discriminator='algorithm_name', title='CollisionFreeAlgorithm'),
|
|
2964
2914
|
]
|
|
2965
2915
|
"""
|
|
@@ -3003,7 +2953,7 @@ class ErrorMaxIterationsExceeded(BaseModel):
|
|
|
3003
2953
|
|
|
3004
2954
|
"""
|
|
3005
2955
|
|
|
3006
|
-
max_iterations:
|
|
2956
|
+
max_iterations: int | None = None
|
|
3007
2957
|
"""
|
|
3008
2958
|
The maximum number of iterations that was reached.
|
|
3009
2959
|
|
|
@@ -3030,7 +2980,7 @@ class PlanCollisionFreeResponse(BaseModel):
|
|
|
3030
2980
|
|
|
3031
2981
|
"""
|
|
3032
2982
|
|
|
3033
|
-
response:
|
|
2983
|
+
response: JointTrajectory | PlanCollisionFreeFailedResponse
|
|
3034
2984
|
|
|
3035
2985
|
|
|
3036
2986
|
class JointPositionLimits(RootModel):
|
|
@@ -3039,7 +2989,7 @@ class JointPositionLimits(RootModel):
|
|
|
3039
2989
|
|
|
3040
2990
|
"""
|
|
3041
2991
|
|
|
3042
|
-
root: Annotated[
|
|
2992
|
+
root: Annotated[list[LimitRange], Field(title='JointPositionLimits')]
|
|
3043
2993
|
"""
|
|
3044
2994
|
Joint position limits in [rad], indexed starting from base.
|
|
3045
2995
|
|
|
@@ -3072,27 +3022,36 @@ class JointPositionLimits(RootModel):
|
|
|
3072
3022
|
|
|
3073
3023
|
class InverseKinematicsRequest(BaseModel):
|
|
3074
3024
|
motion_group_model: MotionGroupModel
|
|
3075
|
-
tcp_poses:
|
|
3025
|
+
tcp_poses: list[Pose]
|
|
3076
3026
|
"""
|
|
3077
3027
|
List of TCP poses for which the inverse solutions are computed.
|
|
3078
3028
|
|
|
3079
3029
|
"""
|
|
3080
|
-
tcp_offset:
|
|
3081
|
-
mounting:
|
|
3030
|
+
tcp_offset: Pose | None = None
|
|
3031
|
+
mounting: Pose | None = None
|
|
3082
3032
|
"""
|
|
3083
3033
|
Offset from the world frame to the motion group base.
|
|
3084
3034
|
"""
|
|
3085
|
-
joint_position_limits:
|
|
3086
|
-
collision_setups:
|
|
3035
|
+
joint_position_limits: JointPositionLimits | None = None
|
|
3036
|
+
collision_setups: CollisionSetups | None = None
|
|
3037
|
+
reference_joint_position: DoubleArray | None = None
|
|
3038
|
+
"""
|
|
3039
|
+
If present, all solutions are shifted to the same periodicity
|
|
3040
|
+
as the reference: Each individual joint angle is shifted
|
|
3041
|
+
by integer multiples of 2 pi (whole revolutions) until it's
|
|
3042
|
+
as close to the reference as possible. The solutions are sorted
|
|
3043
|
+
by ascending distance (L2 norm) from the reference.
|
|
3044
|
+
|
|
3045
|
+
"""
|
|
3087
3046
|
|
|
3088
3047
|
|
|
3089
3048
|
class InverseKinematicsResponse(BaseModel):
|
|
3090
|
-
joints:
|
|
3049
|
+
joints: list[list[DoubleArray]]
|
|
3091
3050
|
|
|
3092
3051
|
|
|
3093
3052
|
class InverseKinematicsValidationError(ValidationError):
|
|
3094
3053
|
data: Annotated[
|
|
3095
|
-
|
|
3054
|
+
ErrorInvalidJointCount | ErrorJointLimitExceeded | None,
|
|
3096
3055
|
Field(discriminator='error_feedback_name'),
|
|
3097
3056
|
] = None
|
|
3098
3057
|
"""
|
|
@@ -3103,26 +3062,26 @@ class InverseKinematicsValidationError(ValidationError):
|
|
|
3103
3062
|
|
|
3104
3063
|
class InverseKinematics422Response(BaseModel):
|
|
3105
3064
|
detail: Annotated[
|
|
3106
|
-
|
|
3065
|
+
list[InverseKinematicsValidationError] | None, Field(title='Detail')
|
|
3107
3066
|
] = None
|
|
3108
3067
|
|
|
3109
3068
|
|
|
3110
3069
|
class ForwardKinematicsRequest(BaseModel):
|
|
3111
3070
|
motion_group_model: MotionGroupModel
|
|
3112
|
-
joint_positions:
|
|
3071
|
+
joint_positions: list[DoubleArray]
|
|
3113
3072
|
"""
|
|
3114
3073
|
List of joint positions [rad] for which TCP poses are computed.
|
|
3115
3074
|
|
|
3116
3075
|
"""
|
|
3117
|
-
tcp_offset:
|
|
3118
|
-
mounting:
|
|
3076
|
+
tcp_offset: Pose | None = None
|
|
3077
|
+
mounting: Pose | None = None
|
|
3119
3078
|
"""
|
|
3120
3079
|
Offset from the world frame to the motion group base.
|
|
3121
3080
|
"""
|
|
3122
3081
|
|
|
3123
3082
|
|
|
3124
3083
|
class ForwardKinematicsResponse(BaseModel):
|
|
3125
|
-
tcp_poses:
|
|
3084
|
+
tcp_poses: list[Pose]
|
|
3126
3085
|
"""
|
|
3127
3086
|
List of computed TCP poses corresponding to the input joint positions.
|
|
3128
3087
|
|
|
@@ -3130,17 +3089,17 @@ class ForwardKinematicsResponse(BaseModel):
|
|
|
3130
3089
|
|
|
3131
3090
|
|
|
3132
3091
|
class ForwardKinematicsValidationError(ValidationError):
|
|
3133
|
-
data:
|
|
3092
|
+
data: ErrorInvalidJointCount | None = None
|
|
3134
3093
|
|
|
3135
3094
|
|
|
3136
3095
|
class ForwardKinematics422Response(BaseModel):
|
|
3137
3096
|
detail: Annotated[
|
|
3138
|
-
|
|
3097
|
+
list[ForwardKinematicsValidationError] | None, Field(title='Detail')
|
|
3139
3098
|
] = None
|
|
3140
3099
|
|
|
3141
3100
|
|
|
3142
3101
|
class ListTrajectoriesResponse(BaseModel):
|
|
3143
|
-
trajectories:
|
|
3102
|
+
trajectories: list[str] | None = None
|
|
3144
3103
|
"""
|
|
3145
3104
|
Identifiers of trajectories which are currently cached.
|
|
3146
3105
|
Use [addTrajectory](addTrajectory) to add a new trajectory. Adding trajectories is necessary to execute them.
|
|
@@ -3160,7 +3119,7 @@ class AddTrajectoryRequest(BaseModel):
|
|
|
3160
3119
|
an equal number of corresponding timestamps.
|
|
3161
3120
|
|
|
3162
3121
|
"""
|
|
3163
|
-
tcp:
|
|
3122
|
+
tcp: str | None = None
|
|
3164
3123
|
"""
|
|
3165
3124
|
Unique identifier of the tool the trajectory is planned for.
|
|
3166
3125
|
"""
|
|
@@ -3171,13 +3130,13 @@ class TcpRequiredError(BaseModel):
|
|
|
3171
3130
|
Requested motion group requires TCP to be defined.
|
|
3172
3131
|
"""
|
|
3173
3132
|
|
|
3174
|
-
tcp_missing:
|
|
3133
|
+
tcp_missing: dict[str, Any] | None = None
|
|
3175
3134
|
|
|
3176
3135
|
|
|
3177
3136
|
class InconsistentTrajectorySize(BaseModel):
|
|
3178
|
-
joint_position_size:
|
|
3179
|
-
times_size:
|
|
3180
|
-
locations_size:
|
|
3137
|
+
joint_position_size: int | None = None
|
|
3138
|
+
times_size: int | None = None
|
|
3139
|
+
locations_size: int | None = None
|
|
3181
3140
|
|
|
3182
3141
|
|
|
3183
3142
|
class InconsistentTrajectorySizeError(BaseModel):
|
|
@@ -3186,24 +3145,24 @@ class InconsistentTrajectorySizeError(BaseModel):
|
|
|
3186
3145
|
|
|
3187
3146
|
"""
|
|
3188
3147
|
|
|
3189
|
-
inconsistent_trajectory_size:
|
|
3148
|
+
inconsistent_trajectory_size: InconsistentTrajectorySize | None = None
|
|
3190
3149
|
|
|
3191
3150
|
|
|
3192
3151
|
class JointLimitExceededError(BaseModel):
|
|
3193
|
-
joint_limit_exceeded:
|
|
3152
|
+
joint_limit_exceeded: FeedbackJointLimitExceeded | None = None
|
|
3194
3153
|
|
|
3195
3154
|
|
|
3196
3155
|
class CollisionError(BaseModel):
|
|
3197
|
-
collision:
|
|
3156
|
+
collision: FeedbackCollision | None = None
|
|
3198
3157
|
|
|
3199
3158
|
|
|
3200
3159
|
class TorqueExceeded(BaseModel):
|
|
3201
|
-
torque_value:
|
|
3160
|
+
torque_value: float | None = None
|
|
3202
3161
|
"""
|
|
3203
3162
|
The torque value that was exceeded.
|
|
3204
3163
|
|
|
3205
3164
|
"""
|
|
3206
|
-
torque_limit:
|
|
3165
|
+
torque_limit: float | None = None
|
|
3207
3166
|
"""
|
|
3208
3167
|
The value of the torque limit that was exceeded.
|
|
3209
3168
|
|
|
@@ -3211,23 +3170,23 @@ class TorqueExceeded(BaseModel):
|
|
|
3211
3170
|
|
|
3212
3171
|
|
|
3213
3172
|
class TorqueExceededError(BaseModel):
|
|
3214
|
-
torque_exceeded:
|
|
3173
|
+
torque_exceeded: TorqueExceeded | None = None
|
|
3215
3174
|
|
|
3216
3175
|
|
|
3217
3176
|
class InvalidDof(BaseModel):
|
|
3218
|
-
valid_dof:
|
|
3177
|
+
valid_dof: int | None = None
|
|
3219
3178
|
"""
|
|
3220
3179
|
The valid degrees of freedom for the motion group.
|
|
3221
3180
|
|
|
3222
3181
|
"""
|
|
3223
|
-
joint_position:
|
|
3182
|
+
joint_position: list[float] | None = None
|
|
3224
3183
|
"""
|
|
3225
3184
|
The joint position that is out of its limits.
|
|
3226
3185
|
"""
|
|
3227
3186
|
|
|
3228
3187
|
|
|
3229
3188
|
class InvalidDofError(BaseModel):
|
|
3230
|
-
invalid_dof:
|
|
3189
|
+
invalid_dof: InvalidDof | None = None
|
|
3231
3190
|
|
|
3232
3191
|
|
|
3233
3192
|
class NanValue(BaseModel):
|
|
@@ -3235,33 +3194,32 @@ class NanValue(BaseModel):
|
|
|
3235
3194
|
Requested joint position contains NaN values.
|
|
3236
3195
|
"""
|
|
3237
3196
|
|
|
3238
|
-
joint_position:
|
|
3197
|
+
joint_position: list[float] | None = None
|
|
3239
3198
|
"""
|
|
3240
3199
|
The joint position that is out of its limits.
|
|
3241
3200
|
"""
|
|
3242
3201
|
|
|
3243
3202
|
|
|
3244
3203
|
class NanValueError(BaseModel):
|
|
3245
|
-
nan_value:
|
|
3204
|
+
nan_value: NanValue | None = None
|
|
3246
3205
|
"""
|
|
3247
3206
|
Requested joint position contains NaN values.
|
|
3248
3207
|
"""
|
|
3249
3208
|
|
|
3250
3209
|
|
|
3251
3210
|
class AddTrajectoryError(BaseModel):
|
|
3252
|
-
message:
|
|
3253
|
-
location:
|
|
3254
|
-
data:
|
|
3255
|
-
|
|
3256
|
-
|
|
3257
|
-
|
|
3258
|
-
|
|
3259
|
-
|
|
3260
|
-
|
|
3261
|
-
|
|
3262
|
-
|
|
3263
|
-
|
|
3264
|
-
] = None
|
|
3211
|
+
message: str | None = None
|
|
3212
|
+
location: Location | None = None
|
|
3213
|
+
data: (
|
|
3214
|
+
TcpRequiredError
|
|
3215
|
+
| InconsistentTrajectorySizeError
|
|
3216
|
+
| JointLimitExceededError
|
|
3217
|
+
| CollisionError
|
|
3218
|
+
| TorqueExceededError
|
|
3219
|
+
| InvalidDofError
|
|
3220
|
+
| NanValueError
|
|
3221
|
+
| None
|
|
3222
|
+
) = None
|
|
3265
3223
|
|
|
3266
3224
|
|
|
3267
3225
|
class AddTrajectoryResponse(BaseModel):
|
|
@@ -3276,12 +3234,12 @@ class AddTrajectoryResponse(BaseModel):
|
|
|
3276
3234
|
|
|
3277
3235
|
"""
|
|
3278
3236
|
|
|
3279
|
-
trajectory:
|
|
3237
|
+
trajectory: str | None = None
|
|
3280
3238
|
"""
|
|
3281
3239
|
The unique identifier of the trajectory. Use this identifier to execute the trajectory with the [executeTrajectory](executeTrajectory) endpoint.
|
|
3282
3240
|
|
|
3283
3241
|
"""
|
|
3284
|
-
error:
|
|
3242
|
+
error: AddTrajectoryError | None = None
|
|
3285
3243
|
"""
|
|
3286
3244
|
Always check this field first. If this field is present, the trajectory has an error and is only partially or not executable.
|
|
3287
3245
|
|
|
@@ -3324,7 +3282,7 @@ class TrajectoryData(BaseModel):
|
|
|
3324
3282
|
Type specifier for server, set automatically.
|
|
3325
3283
|
|
|
3326
3284
|
"""
|
|
3327
|
-
motion_group:
|
|
3285
|
+
motion_group: str | None = None
|
|
3328
3286
|
"""
|
|
3329
3287
|
Identifier of the motion-group.
|
|
3330
3288
|
"""
|
|
@@ -3334,7 +3292,7 @@ class TrajectoryData(BaseModel):
|
|
|
3334
3292
|
an equal number of corresponding timestamps.
|
|
3335
3293
|
|
|
3336
3294
|
"""
|
|
3337
|
-
tcp:
|
|
3295
|
+
tcp: str | None = None
|
|
3338
3296
|
"""
|
|
3339
3297
|
Unique identifier of the tool the trajectory is planned for.
|
|
3340
3298
|
"""
|
|
@@ -3354,14 +3312,14 @@ class InitializeMovementRequest(BaseModel):
|
|
|
3354
3312
|
|
|
3355
3313
|
"""
|
|
3356
3314
|
trajectory: Annotated[
|
|
3357
|
-
|
|
3315
|
+
TrajectoryId | TrajectoryData, Field(discriminator='message_type')
|
|
3358
3316
|
]
|
|
3359
3317
|
"""
|
|
3360
3318
|
The trajectory which should be executed and locked to the connection.
|
|
3361
3319
|
|
|
3362
3320
|
"""
|
|
3363
|
-
initial_location:
|
|
3364
|
-
response_coordinate_system:
|
|
3321
|
+
initial_location: Location | None = None
|
|
3322
|
+
response_coordinate_system: str | None = None
|
|
3365
3323
|
"""
|
|
3366
3324
|
Unique identifier addressing a coordinate system to which the responses are transformed.
|
|
3367
3325
|
If not set, world coordinate system is used.
|
|
@@ -3449,26 +3407,26 @@ class StartMovementRequest(BaseModel):
|
|
|
3449
3407
|
Type specifier for server, set automatically.
|
|
3450
3408
|
|
|
3451
3409
|
"""
|
|
3452
|
-
direction:
|
|
3453
|
-
target_location:
|
|
3410
|
+
direction: Direction | None = 'DIRECTION_FORWARD'
|
|
3411
|
+
target_location: Location | None = None
|
|
3454
3412
|
"""
|
|
3455
3413
|
The target location to which the motion group moves along the trajectory to.
|
|
3456
3414
|
If `direction` and `target_location` are both specified, target location takes precedence.
|
|
3457
3415
|
If neither is specified, the default is `DIRECTION_FORWARD`.
|
|
3458
3416
|
|
|
3459
3417
|
"""
|
|
3460
|
-
set_outputs:
|
|
3418
|
+
set_outputs: list[SetIO] | None = None
|
|
3461
3419
|
"""
|
|
3462
3420
|
Attaches a list of output commands to the trajectory. The outputs are set to the specified values right after the specified location was reached.
|
|
3463
3421
|
If the specified location is located before the start location (forward direction: value is smaller, backward direction: value is bigger), the output is not set.
|
|
3464
3422
|
|
|
3465
3423
|
"""
|
|
3466
|
-
start_on_io:
|
|
3424
|
+
start_on_io: StartOnIO | None = None
|
|
3467
3425
|
"""
|
|
3468
3426
|
Defines an input/output that is listened to before the movement. Execution starts if the defined comparator evaluates to `true`.
|
|
3469
3427
|
|
|
3470
3428
|
"""
|
|
3471
|
-
pause_on_io:
|
|
3429
|
+
pause_on_io: PauseOnIO | None = None
|
|
3472
3430
|
"""
|
|
3473
3431
|
Defines an input/output that is listened to during the movement. Execution pauses if the defined comparator evaluates to `true`.
|
|
3474
3432
|
|
|
@@ -3512,12 +3470,10 @@ class PlaybackSpeedRequest(BaseModel):
|
|
|
3512
3470
|
|
|
3513
3471
|
class ExecuteTrajectoryRequest(RootModel):
|
|
3514
3472
|
root: Annotated[
|
|
3515
|
-
|
|
3516
|
-
|
|
3517
|
-
|
|
3518
|
-
|
|
3519
|
-
PlaybackSpeedRequest,
|
|
3520
|
-
],
|
|
3473
|
+
InitializeMovementRequest
|
|
3474
|
+
| StartMovementRequest
|
|
3475
|
+
| PauseMovementRequest
|
|
3476
|
+
| PlaybackSpeedRequest,
|
|
3521
3477
|
Field(discriminator='message_type', title='ExecuteTrajectoryRequest'),
|
|
3522
3478
|
]
|
|
3523
3479
|
|
|
@@ -3528,11 +3484,11 @@ class InitializeMovementResponse(BaseModel):
|
|
|
3528
3484
|
|
|
3529
3485
|
"""
|
|
3530
3486
|
|
|
3531
|
-
message:
|
|
3487
|
+
message: str | None = None
|
|
3532
3488
|
"""
|
|
3533
3489
|
Error message in case of invalid InitializeMovementRequest.
|
|
3534
3490
|
"""
|
|
3535
|
-
add_trajectory_error:
|
|
3491
|
+
add_trajectory_error: AddTrajectoryError | None = None
|
|
3536
3492
|
"""
|
|
3537
3493
|
Error can occur if joint trajectory was added by [InitializeMovementRequest](InitializeMovementRequest) and the trajectory is invalid.
|
|
3538
3494
|
|
|
@@ -3548,7 +3504,7 @@ class StartMovementResponse(BaseModel):
|
|
|
3548
3504
|
|
|
3549
3505
|
"""
|
|
3550
3506
|
|
|
3551
|
-
message:
|
|
3507
|
+
message: str | None = None
|
|
3552
3508
|
"""
|
|
3553
3509
|
Error message in case of invalid StartMovementResquest.
|
|
3554
3510
|
"""
|
|
@@ -3563,7 +3519,7 @@ class PauseMovementResponse(BaseModel):
|
|
|
3563
3519
|
|
|
3564
3520
|
"""
|
|
3565
3521
|
|
|
3566
|
-
message:
|
|
3522
|
+
message: str | None = None
|
|
3567
3523
|
"""
|
|
3568
3524
|
Error message in case of invalid PauseMovementResquest.
|
|
3569
3525
|
"""
|
|
@@ -3576,7 +3532,7 @@ class PlaybackSpeedResponse(BaseModel):
|
|
|
3576
3532
|
|
|
3577
3533
|
"""
|
|
3578
3534
|
|
|
3579
|
-
message:
|
|
3535
|
+
message: str | None = None
|
|
3580
3536
|
"""
|
|
3581
3537
|
Error message in case of invalid PlaybackSpeedRequest.
|
|
3582
3538
|
"""
|
|
@@ -3598,13 +3554,11 @@ class MovementErrorResponse(BaseModel):
|
|
|
3598
3554
|
|
|
3599
3555
|
class ExecuteTrajectoryResponse(RootModel):
|
|
3600
3556
|
root: Annotated[
|
|
3601
|
-
|
|
3602
|
-
|
|
3603
|
-
|
|
3604
|
-
|
|
3605
|
-
|
|
3606
|
-
MovementErrorResponse,
|
|
3607
|
-
],
|
|
3557
|
+
InitializeMovementResponse
|
|
3558
|
+
| StartMovementResponse
|
|
3559
|
+
| PauseMovementResponse
|
|
3560
|
+
| PlaybackSpeedResponse
|
|
3561
|
+
| MovementErrorResponse,
|
|
3608
3562
|
Field(discriminator='kind', title='ExecuteTrajectoryResponse'),
|
|
3609
3563
|
]
|
|
3610
3564
|
|
|
@@ -3623,17 +3577,11 @@ class InitializeJoggingRequest(BaseModel):
|
|
|
3623
3577
|
"""
|
|
3624
3578
|
Identifier of the motion group.
|
|
3625
3579
|
"""
|
|
3626
|
-
tcp:
|
|
3580
|
+
tcp: str | None = None
|
|
3627
3581
|
"""
|
|
3628
3582
|
Identifier of the tool. Required for robots (all limits, including TCP limits, are respected at all times regardless of the motion). Not required for external axes.
|
|
3629
3583
|
|
|
3630
3584
|
"""
|
|
3631
|
-
response_coordinate_system: Optional[str] = None
|
|
3632
|
-
"""
|
|
3633
|
-
Unique identifier addressing a coordinate system to which the responses are transformed.
|
|
3634
|
-
If not set, world coordinate system is used.
|
|
3635
|
-
|
|
3636
|
-
"""
|
|
3637
3585
|
|
|
3638
3586
|
|
|
3639
3587
|
class JointVelocityRequest(BaseModel):
|
|
@@ -3666,7 +3614,7 @@ class TcpVelocityRequest(BaseModel):
|
|
|
3666
3614
|
"""
|
|
3667
3615
|
translation: Vector3d
|
|
3668
3616
|
rotation: Vector3d
|
|
3669
|
-
use_tool_coordinate_system:
|
|
3617
|
+
use_tool_coordinate_system: bool | None = False
|
|
3670
3618
|
"""
|
|
3671
3619
|
If true, TCP velocities are interpreted in the tool coordinate system, specified by the TCP.
|
|
3672
3620
|
If false, TCP velocities are interpreted in the world coordinate system.
|
|
@@ -3689,12 +3637,10 @@ class PauseJoggingRequest(BaseModel):
|
|
|
3689
3637
|
|
|
3690
3638
|
class ExecuteJoggingRequest(RootModel):
|
|
3691
3639
|
root: Annotated[
|
|
3692
|
-
|
|
3693
|
-
|
|
3694
|
-
|
|
3695
|
-
|
|
3696
|
-
PauseJoggingRequest,
|
|
3697
|
-
],
|
|
3640
|
+
InitializeJoggingRequest
|
|
3641
|
+
| JointVelocityRequest
|
|
3642
|
+
| TcpVelocityRequest
|
|
3643
|
+
| PauseJoggingRequest,
|
|
3698
3644
|
Field(discriminator='message_type', title='ExecuteJoggingRequest'),
|
|
3699
3645
|
]
|
|
3700
3646
|
|
|
@@ -3705,7 +3651,7 @@ class InitializeJoggingResponse(BaseModel):
|
|
|
3705
3651
|
|
|
3706
3652
|
"""
|
|
3707
3653
|
|
|
3708
|
-
message:
|
|
3654
|
+
message: str | None = None
|
|
3709
3655
|
"""
|
|
3710
3656
|
Error message in case of invalid InitializeJoggingRequest.
|
|
3711
3657
|
"""
|
|
@@ -3718,7 +3664,7 @@ class PauseJoggingResponse(BaseModel):
|
|
|
3718
3664
|
|
|
3719
3665
|
"""
|
|
3720
3666
|
|
|
3721
|
-
message:
|
|
3667
|
+
message: str | None = None
|
|
3722
3668
|
"""
|
|
3723
3669
|
Error message in case of invalid PauseJoggingRequest.
|
|
3724
3670
|
"""
|
|
@@ -3731,7 +3677,7 @@ class TcpVelocityResponse(BaseModel):
|
|
|
3731
3677
|
|
|
3732
3678
|
"""
|
|
3733
3679
|
|
|
3734
|
-
message:
|
|
3680
|
+
message: str | None = None
|
|
3735
3681
|
"""
|
|
3736
3682
|
Error message in case of invalid TcpVelocityRequest.
|
|
3737
3683
|
"""
|
|
@@ -3744,7 +3690,7 @@ class JointVelocityResponse(BaseModel):
|
|
|
3744
3690
|
|
|
3745
3691
|
"""
|
|
3746
3692
|
|
|
3747
|
-
message:
|
|
3693
|
+
message: str | None = None
|
|
3748
3694
|
"""
|
|
3749
3695
|
Error message in case of invalid JointVelocityRequest.
|
|
3750
3696
|
"""
|
|
@@ -3753,13 +3699,11 @@ class JointVelocityResponse(BaseModel):
|
|
|
3753
3699
|
|
|
3754
3700
|
class ExecuteJoggingResponse(RootModel):
|
|
3755
3701
|
root: Annotated[
|
|
3756
|
-
|
|
3757
|
-
|
|
3758
|
-
|
|
3759
|
-
|
|
3760
|
-
|
|
3761
|
-
MovementErrorResponse,
|
|
3762
|
-
],
|
|
3702
|
+
InitializeJoggingResponse
|
|
3703
|
+
| PauseJoggingResponse
|
|
3704
|
+
| TcpVelocityResponse
|
|
3705
|
+
| JointVelocityResponse
|
|
3706
|
+
| MovementErrorResponse,
|
|
3763
3707
|
Field(discriminator='kind', title='ExecuteJoggingResponse'),
|
|
3764
3708
|
]
|
|
3765
3709
|
|
|
@@ -3779,14 +3723,14 @@ class Program(BaseModel):
|
|
|
3779
3723
|
title='Unique program identifier',
|
|
3780
3724
|
),
|
|
3781
3725
|
]
|
|
3782
|
-
name: Annotated[
|
|
3783
|
-
description: Annotated[
|
|
3726
|
+
name: Annotated[str | None, Field(title='Program name')] = None
|
|
3727
|
+
description: Annotated[str | None, Field(title='Program description')] = None
|
|
3784
3728
|
app: Annotated[str, Field(title='The app containing the program.')]
|
|
3785
3729
|
input_schema: Annotated[
|
|
3786
|
-
|
|
3730
|
+
dict[str, Any] | None, Field(title='Program input json schema')
|
|
3787
3731
|
] = None
|
|
3788
3732
|
preconditions: Annotated[
|
|
3789
|
-
|
|
3733
|
+
dict[str, Any] | None,
|
|
3790
3734
|
Field(title='Preconditions before the program can be started'),
|
|
3791
3735
|
] = None
|
|
3792
3736
|
|
|
@@ -3796,7 +3740,7 @@ class ProgramStartRequest(BaseModel):
|
|
|
3796
3740
|
The state of a program run.
|
|
3797
3741
|
"""
|
|
3798
3742
|
|
|
3799
|
-
arguments:
|
|
3743
|
+
arguments: dict[str, Any]
|
|
3800
3744
|
"""
|
|
3801
3745
|
The arguments to pass to the program.
|
|
3802
3746
|
"""
|
|
@@ -3827,7 +3771,7 @@ class ProgramRun(BaseModel):
|
|
|
3827
3771
|
"""
|
|
3828
3772
|
Unique identifier of the program
|
|
3829
3773
|
"""
|
|
3830
|
-
app: Annotated[
|
|
3774
|
+
app: Annotated[str | None, Field(title='App Id')] = None
|
|
3831
3775
|
"""
|
|
3832
3776
|
Identifier of the app that produced the program run
|
|
3833
3777
|
"""
|
|
@@ -3835,35 +3779,35 @@ class ProgramRun(BaseModel):
|
|
|
3835
3779
|
"""
|
|
3836
3780
|
State of the program run
|
|
3837
3781
|
"""
|
|
3838
|
-
logs: Annotated[
|
|
3782
|
+
logs: Annotated[str | None, Field(title='Logs')] = None
|
|
3839
3783
|
"""
|
|
3840
3784
|
Logs of the program run
|
|
3841
3785
|
"""
|
|
3842
|
-
stdout: Annotated[
|
|
3786
|
+
stdout: Annotated[str | None, Field(title='Stdout')] = None
|
|
3843
3787
|
"""
|
|
3844
3788
|
Stdout of the program run
|
|
3845
3789
|
"""
|
|
3846
|
-
stderr: Annotated[
|
|
3790
|
+
stderr: Annotated[str | None, Field(title='Stderr')] = None
|
|
3847
3791
|
"""
|
|
3848
3792
|
Stderr of the program run
|
|
3849
3793
|
"""
|
|
3850
|
-
error: Annotated[
|
|
3794
|
+
error: Annotated[str | None, Field(title='Error')] = None
|
|
3851
3795
|
"""
|
|
3852
3796
|
Error message of the program run, if any
|
|
3853
3797
|
"""
|
|
3854
|
-
traceback: Annotated[
|
|
3798
|
+
traceback: Annotated[str | None, Field(title='Traceback')] = None
|
|
3855
3799
|
"""
|
|
3856
3800
|
Traceback of the program run, if any
|
|
3857
3801
|
"""
|
|
3858
|
-
start_time: Annotated[
|
|
3802
|
+
start_time: Annotated[AwareDatetime | None, Field(title='Start Time')] = None
|
|
3859
3803
|
"""
|
|
3860
3804
|
Start time of the program run in RFC3339 format
|
|
3861
3805
|
"""
|
|
3862
|
-
end_time: Annotated[
|
|
3806
|
+
end_time: Annotated[AwareDatetime | None, Field(title='End Time')] = None
|
|
3863
3807
|
"""
|
|
3864
3808
|
End time of the program run in RFC3339 format
|
|
3865
3809
|
"""
|
|
3866
|
-
input_data: Annotated[
|
|
3810
|
+
input_data: Annotated[dict[str, Any] | None, Field(title='Input Data')] = None
|
|
3867
3811
|
"""
|
|
3868
3812
|
Input data of the program run
|
|
3869
3813
|
"""
|
|
@@ -3874,13 +3818,13 @@ class ValidationError2(BaseModel):
|
|
|
3874
3818
|
A validation error of a program.
|
|
3875
3819
|
"""
|
|
3876
3820
|
|
|
3877
|
-
loc: Annotated[
|
|
3821
|
+
loc: Annotated[list[int], Field(title='Location')]
|
|
3878
3822
|
msg: Annotated[str, Field(title='Message')]
|
|
3879
3823
|
type: Annotated[str, Field(title='Error Type')]
|
|
3880
3824
|
|
|
3881
3825
|
|
|
3882
3826
|
class HTTPValidationError(BaseModel):
|
|
3883
|
-
detail: Annotated[
|
|
3827
|
+
detail: Annotated[list[ValidationError2] | None, Field(title='Detail')] = None
|
|
3884
3828
|
|
|
3885
3829
|
|
|
3886
3830
|
class MotionGroupInfo(BaseModel):
|
|
@@ -3902,7 +3846,7 @@ class MotionGroupInfo(BaseModel):
|
|
|
3902
3846
|
|
|
3903
3847
|
|
|
3904
3848
|
class MotionGroupInfos(RootModel):
|
|
3905
|
-
root:
|
|
3849
|
+
root: list[MotionGroupInfo]
|
|
3906
3850
|
|
|
3907
3851
|
def __getitem__(self, index: int) -> MotionGroupInfo:
|
|
3908
3852
|
"""
|
|
@@ -3935,22 +3879,22 @@ class MotionGroupJoints(BaseModel):
|
|
|
3935
3879
|
Everything but positions is optional.
|
|
3936
3880
|
"""
|
|
3937
3881
|
|
|
3938
|
-
positions:
|
|
3882
|
+
positions: list[float]
|
|
3939
3883
|
"""
|
|
3940
3884
|
The joint positions of the motion group.
|
|
3941
3885
|
|
|
3942
3886
|
"""
|
|
3943
|
-
velocities:
|
|
3887
|
+
velocities: list[float] | None = None
|
|
3944
3888
|
"""
|
|
3945
3889
|
The joint velocities of the motion group.
|
|
3946
3890
|
|
|
3947
3891
|
"""
|
|
3948
|
-
accelerations:
|
|
3892
|
+
accelerations: list[float] | None = None
|
|
3949
3893
|
"""
|
|
3950
3894
|
The joint accelerations of the motion group.
|
|
3951
3895
|
|
|
3952
3896
|
"""
|
|
3953
|
-
torques:
|
|
3897
|
+
torques: list[float] | None = None
|
|
3954
3898
|
"""
|
|
3955
3899
|
The joint torques of the motion group.
|
|
3956
3900
|
|
|
@@ -3958,13 +3902,13 @@ class MotionGroupJoints(BaseModel):
|
|
|
3958
3902
|
|
|
3959
3903
|
|
|
3960
3904
|
class RobotTcpData(BaseModel):
|
|
3961
|
-
name:
|
|
3905
|
+
name: str | None = None
|
|
3962
3906
|
"""
|
|
3963
3907
|
A readable and changeable name for frontend visualization.
|
|
3964
3908
|
"""
|
|
3965
3909
|
position: Vector3d
|
|
3966
|
-
orientation:
|
|
3967
|
-
orientation_type:
|
|
3910
|
+
orientation: Orientation | None = None
|
|
3911
|
+
orientation_type: OrientationType | None = 'ROTATION_VECTOR'
|
|
3968
3912
|
|
|
3969
3913
|
|
|
3970
3914
|
class RobotTcp(RobotTcpData):
|
|
@@ -3976,7 +3920,7 @@ class RobotTcp(RobotTcpData):
|
|
|
3976
3920
|
|
|
3977
3921
|
class RobotTcps(RootModel):
|
|
3978
3922
|
root: Annotated[
|
|
3979
|
-
|
|
3923
|
+
list[RobotTcp],
|
|
3980
3924
|
Field(
|
|
3981
3925
|
examples=[
|
|
3982
3926
|
[
|
|
@@ -4082,7 +4026,7 @@ class ExternalJointStreamDatapoint(BaseModel):
|
|
|
4082
4026
|
|
|
4083
4027
|
|
|
4084
4028
|
class ExternalJointStreamDatapoints(RootModel):
|
|
4085
|
-
root:
|
|
4029
|
+
root: list[ExternalJointStreamDatapoint]
|
|
4086
4030
|
|
|
4087
4031
|
def __getitem__(self, index: int) -> ExternalJointStreamDatapoint:
|
|
4088
4032
|
"""
|
|
@@ -4128,7 +4072,7 @@ class MetadataObject(RootModel):
|
|
|
4128
4072
|
A metadata object.
|
|
4129
4073
|
"""
|
|
4130
4074
|
|
|
4131
|
-
root:
|
|
4075
|
+
root: dict[str, str]
|
|
4132
4076
|
|
|
4133
4077
|
|
|
4134
4078
|
class BinaryObject(RootModel):
|
|
@@ -4151,13 +4095,13 @@ class BusIODescription(BaseModel):
|
|
|
4151
4095
|
"""
|
|
4152
4096
|
direction: IODirection
|
|
4153
4097
|
value_type: IOValueType
|
|
4154
|
-
unit:
|
|
4155
|
-
min:
|
|
4156
|
-
max:
|
|
4098
|
+
unit: UnitType | None = None
|
|
4099
|
+
min: IOBoundary | None = None
|
|
4100
|
+
max: IOBoundary | None = None
|
|
4157
4101
|
|
|
4158
4102
|
|
|
4159
4103
|
class ListBusIODescriptionsResponse(RootModel):
|
|
4160
|
-
root:
|
|
4104
|
+
root: list[BusIODescription]
|
|
4161
4105
|
|
|
4162
4106
|
def __getitem__(self, index: int) -> BusIODescription:
|
|
4163
4107
|
"""
|
|
@@ -4198,7 +4142,7 @@ class BusIOsStateEnum(Enum):
|
|
|
4198
4142
|
|
|
4199
4143
|
class BusIOsState(BaseModel):
|
|
4200
4144
|
state: BusIOsStateEnum
|
|
4201
|
-
message:
|
|
4145
|
+
message: str | None = None
|
|
4202
4146
|
"""
|
|
4203
4147
|
A message providing additional information on the input/output service, e.g., BUS service status, encountered errors.
|
|
4204
4148
|
May be empty if no additional information is available.
|
|
@@ -4246,7 +4190,7 @@ class ProfinetSlotDescription(BaseModel):
|
|
|
4246
4190
|
The API identifies the application relation (AR) that is using the slot.
|
|
4247
4191
|
|
|
4248
4192
|
"""
|
|
4249
|
-
subslots:
|
|
4193
|
+
subslots: list[ProfinetSubSlotDescription]
|
|
4250
4194
|
"""
|
|
4251
4195
|
An array of PROFINET subslots.
|
|
4252
4196
|
|
|
@@ -4264,14 +4208,14 @@ class ProfinetDescription(BaseModel):
|
|
|
4264
4208
|
The device identifier of the PROFINET device, identifying the specific device within the vendor's range.
|
|
4265
4209
|
|
|
4266
4210
|
"""
|
|
4267
|
-
slots:
|
|
4268
|
-
device_name: Annotated[
|
|
4211
|
+
slots: list[ProfinetSlotDescription] | None = None
|
|
4212
|
+
device_name: Annotated[str | None, Field(examples=['pnDevice'])] = None
|
|
4269
4213
|
"""
|
|
4270
4214
|
Name of Station (NoS) of the PROFINET device. The NoS is used in combination with IPv4 record to identify your device in the PROFINET network.
|
|
4271
4215
|
The `device_name` will be used as NoS if no REMA XML file is already present on your NOVA instance and no `rema_xml_content` is provided.
|
|
4272
4216
|
|
|
4273
4217
|
"""
|
|
4274
|
-
ip_config:
|
|
4218
|
+
ip_config: BusIOProfinetIpConfig | None = None
|
|
4275
4219
|
|
|
4276
4220
|
|
|
4277
4221
|
class ProfinetIOTypeEnum(Enum):
|
|
@@ -4320,7 +4264,7 @@ class ProfinetIOData(BaseModel):
|
|
|
4320
4264
|
The byte address is used to locate the specific input/output variable within the device's memory or data structure.
|
|
4321
4265
|
|
|
4322
4266
|
"""
|
|
4323
|
-
bit_address: Annotated[
|
|
4267
|
+
bit_address: Annotated[int | None, Field(ge=0, le=7)] = None
|
|
4324
4268
|
"""
|
|
4325
4269
|
The bit address of the input/output variable within the byte or word address.
|
|
4326
4270
|
The bit address is used to specify the exact bit within the byte or word that corresponds to the input/output variable.
|
|
@@ -4342,7 +4286,7 @@ class ProfinetIOs(RootModel):
|
|
|
4342
4286
|
Array of PROFINET input/output variable configurations.
|
|
4343
4287
|
"""
|
|
4344
4288
|
|
|
4345
|
-
root:
|
|
4289
|
+
root: list[ProfinetIO]
|
|
4346
4290
|
"""
|
|
4347
4291
|
Array of PROFINET input/output variable configurations.
|
|
4348
4292
|
"""
|
|
@@ -4473,7 +4417,7 @@ class ModbusIOs(RootModel):
|
|
|
4473
4417
|
Array of MODBUS input/output variable configurations.
|
|
4474
4418
|
"""
|
|
4475
4419
|
|
|
4476
|
-
root:
|
|
4420
|
+
root: list[ModbusIO]
|
|
4477
4421
|
"""
|
|
4478
4422
|
Array of MODBUS input/output variable configurations.
|
|
4479
4423
|
"""
|
|
@@ -4520,7 +4464,7 @@ class ConfigurationResource(BaseModel):
|
|
|
4520
4464
|
"""
|
|
4521
4465
|
Human-readable name of the configuration resource.
|
|
4522
4466
|
"""
|
|
4523
|
-
children:
|
|
4467
|
+
children: ConfigurationResourceArray | None = None
|
|
4524
4468
|
|
|
4525
4469
|
|
|
4526
4470
|
class ConfigurationResourceArray(RootModel):
|
|
@@ -4528,7 +4472,7 @@ class ConfigurationResourceArray(RootModel):
|
|
|
4528
4472
|
Array of configuration resources.
|
|
4529
4473
|
"""
|
|
4530
4474
|
|
|
4531
|
-
root:
|
|
4475
|
+
root: list[ConfigurationResource]
|
|
4532
4476
|
"""
|
|
4533
4477
|
Array of configuration resources.
|
|
4534
4478
|
"""
|