wandelbots-api-client 25.11.0.dev12__py3-none-any.whl → 26.1.0.dev50__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/v2/__init__.py +1 -1
- 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 +530 -2
- wandelbots_api_client/v2/api/program_api.py +12 -12
- 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 +2 -0
- 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/motion_group_description.py +4 -2
- wandelbots_api_client/v2_pydantic/__init__.py +1 -1
- 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 +536 -2
- wandelbots_api_client/v2_pydantic/api/program_api.py +12 -12
- 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 +401 -374
- {wandelbots_api_client-25.11.0.dev12.dist-info → wandelbots_api_client-26.1.0.dev50.dist-info}/METADATA +2 -2
- {wandelbots_api_client-25.11.0.dev12.dist-info → wandelbots_api_client-26.1.0.dev50.dist-info}/RECORD +31 -30
- {wandelbots_api_client-25.11.0.dev12.dist-info → wandelbots_api_client-26.1.0.dev50.dist-info}/WHEEL +0 -0
- {wandelbots_api_client-25.11.0.dev12.dist-info → wandelbots_api_client-26.1.0.dev50.dist-info}/licenses/LICENSE +0 -0
- {wandelbots_api_client-25.11.0.dev12.dist-info → wandelbots_api_client-26.1.0.dev50.dist-info}/top_level.txt +0 -0
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
# generated by datamodel-codegen:
|
|
2
2
|
# filename: public.openapi.yaml
|
|
3
|
-
# timestamp:
|
|
3
|
+
# timestamp: 2026-01-09T13:39:05+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
13
|
|
|
@@ -17,7 +17,7 @@ class NameList(RootModel):
|
|
|
17
17
|
A list of names
|
|
18
18
|
"""
|
|
19
19
|
|
|
20
|
-
root:
|
|
20
|
+
root: list[str]
|
|
21
21
|
"""
|
|
22
22
|
A list of names
|
|
23
23
|
"""
|
|
@@ -127,7 +127,7 @@ class KukaController(BaseModel):
|
|
|
127
127
|
"""
|
|
128
128
|
The RSI server runs inside of the cell.
|
|
129
129
|
"""
|
|
130
|
-
slow_cycle_rate:
|
|
130
|
+
slow_cycle_rate: bool | None = False
|
|
131
131
|
"""
|
|
132
132
|
If true, uses slower cycle time of 12ms instead of 4ms.
|
|
133
133
|
|
|
@@ -284,15 +284,15 @@ class VirtualController(BaseModel):
|
|
|
284
284
|
|
|
285
285
|
kind: Literal['VirtualController'] = 'VirtualController'
|
|
286
286
|
manufacturer: Manufacturer
|
|
287
|
-
type:
|
|
288
|
-
json_: Annotated[
|
|
287
|
+
type: VirtualControllerTypes | None = None
|
|
288
|
+
json_: Annotated[str | None, Field(alias='json')] = None
|
|
289
289
|
"""
|
|
290
290
|
Complete JSON configuration of the virtual robot controller.
|
|
291
291
|
Can be obtained from the physical controller's configuration via [getVirtualControllerConfiguration](getVirtualControllerConfiguration).
|
|
292
292
|
If provided, the `type` field should not be used.
|
|
293
293
|
|
|
294
294
|
"""
|
|
295
|
-
initial_joint_position:
|
|
295
|
+
initial_joint_position: str | None = None
|
|
296
296
|
"""
|
|
297
297
|
Initial joint position of the first motion group from the virtual robot controller.
|
|
298
298
|
Provide the joint position as a JSON array containing 7 float values,
|
|
@@ -323,14 +323,12 @@ class RobotController(BaseModel):
|
|
|
323
323
|
|
|
324
324
|
"""
|
|
325
325
|
configuration: Annotated[
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
YaskawaController,
|
|
333
|
-
],
|
|
326
|
+
AbbController
|
|
327
|
+
| FanucController
|
|
328
|
+
| KukaController
|
|
329
|
+
| UniversalrobotsController
|
|
330
|
+
| VirtualController
|
|
331
|
+
| YaskawaController,
|
|
334
332
|
Field(discriminator='kind'),
|
|
335
333
|
]
|
|
336
334
|
|
|
@@ -360,8 +358,8 @@ class ContainerImage(BaseModel):
|
|
|
360
358
|
"""
|
|
361
359
|
The location of a container image in the form of `<registry>/<image>:<tag>`.
|
|
362
360
|
"""
|
|
363
|
-
credentials:
|
|
364
|
-
secrets:
|
|
361
|
+
credentials: ImageCredentials | None = None
|
|
362
|
+
secrets: list[Secret] | None = None
|
|
365
363
|
"""
|
|
366
364
|
Known secrets for authentication with the container registry.
|
|
367
365
|
"""
|
|
@@ -379,7 +377,7 @@ class ContainerEnvironment(RootModel):
|
|
|
379
377
|
|
|
380
378
|
"""
|
|
381
379
|
|
|
382
|
-
root:
|
|
380
|
+
root: list[ContainerEnvironmentItem]
|
|
383
381
|
"""
|
|
384
382
|
A list of environment variables with name and their value.
|
|
385
383
|
These can be used to configure the containerized application, and turn features on or off.
|
|
@@ -446,11 +444,11 @@ class ContainerResources(BaseModel):
|
|
|
446
444
|
Additional resources that the application requires.
|
|
447
445
|
"""
|
|
448
446
|
|
|
449
|
-
intel_gpu: Annotated[
|
|
447
|
+
intel_gpu: Annotated[int | None, Field(ge=0, le=1)] = None
|
|
450
448
|
"""
|
|
451
449
|
Number of GPUs the application requires.
|
|
452
450
|
"""
|
|
453
|
-
memory_limit: Annotated[
|
|
451
|
+
memory_limit: Annotated[str | None, Field(examples=['1000Mi'])] = None
|
|
454
452
|
"""
|
|
455
453
|
The maximum memory allocated to this application.
|
|
456
454
|
"""
|
|
@@ -478,14 +476,14 @@ class App(BaseModel):
|
|
|
478
476
|
The path of the icon for the App (/$cell/$name/$app_icon).
|
|
479
477
|
"""
|
|
480
478
|
container_image: ContainerImage
|
|
481
|
-
port:
|
|
479
|
+
port: int | None = 8080
|
|
482
480
|
"""
|
|
483
481
|
The port the containerized webserver is listening on.
|
|
484
482
|
"""
|
|
485
|
-
environment:
|
|
486
|
-
storage:
|
|
487
|
-
resources:
|
|
488
|
-
health_path:
|
|
483
|
+
environment: ContainerEnvironment | None = None
|
|
484
|
+
storage: ContainerStorage | None = None
|
|
485
|
+
resources: ContainerResources | None = None
|
|
486
|
+
health_path: str | None = None
|
|
489
487
|
"""
|
|
490
488
|
Defines the URL path suffix used to check the application's health status. The complete health check URL
|
|
491
489
|
is constructed as `/$cell/$name/$health_path`. When the application is working as expected,
|
|
@@ -498,7 +496,7 @@ class App(BaseModel):
|
|
|
498
496
|
automatically restart the application container to restore service.
|
|
499
497
|
|
|
500
498
|
"""
|
|
501
|
-
diagnosis_path:
|
|
499
|
+
diagnosis_path: str | None = None
|
|
502
500
|
"""
|
|
503
501
|
Defines the URL path suffix used to provide an endpoint for diagnosis data collection.
|
|
504
502
|
The complete diagnosis check URL is constructed as `/$cell/$name/$diagnosis_path`.
|
|
@@ -518,13 +516,13 @@ class Cell(BaseModel):
|
|
|
518
516
|
"""
|
|
519
517
|
|
|
520
518
|
name: CellName
|
|
521
|
-
description:
|
|
522
|
-
controllers:
|
|
523
|
-
apps:
|
|
519
|
+
description: CellDescription | None = None
|
|
520
|
+
controllers: list[RobotController] | None = None
|
|
521
|
+
apps: list[App] | None = None
|
|
524
522
|
|
|
525
523
|
|
|
526
524
|
class Error(BaseModel):
|
|
527
|
-
code:
|
|
525
|
+
code: str | None = None
|
|
528
526
|
message: str
|
|
529
527
|
|
|
530
528
|
|
|
@@ -570,7 +568,7 @@ class ServiceStatusPhase(Enum):
|
|
|
570
568
|
class Status(BaseModel):
|
|
571
569
|
severity: ServiceStatusSeverity
|
|
572
570
|
code: ServiceStatusPhase
|
|
573
|
-
reason:
|
|
571
|
+
reason: str | None = None
|
|
574
572
|
|
|
575
573
|
|
|
576
574
|
class ServiceStatus(BaseModel):
|
|
@@ -580,7 +578,7 @@ class ServiceStatus(BaseModel):
|
|
|
580
578
|
|
|
581
579
|
|
|
582
580
|
class ServiceStatusList(RootModel):
|
|
583
|
-
root:
|
|
581
|
+
root: list[ServiceStatus]
|
|
584
582
|
|
|
585
583
|
def __getitem__(self, index: int) -> ServiceStatus:
|
|
586
584
|
"""
|
|
@@ -644,14 +642,14 @@ class BusIOProfinetIpConfig(BaseModel):
|
|
|
644
642
|
|
|
645
643
|
|
|
646
644
|
class BusIOProfinetNetwork(BaseModel):
|
|
647
|
-
device_name: Annotated[
|
|
645
|
+
device_name: Annotated[str | None, Field(examples=['pnDevice'])] = None
|
|
648
646
|
"""
|
|
649
647
|
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
648
|
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
649
|
|
|
652
650
|
"""
|
|
653
|
-
ip_config:
|
|
654
|
-
rema_xml_content:
|
|
651
|
+
ip_config: BusIOProfinetIpConfig | None = None
|
|
652
|
+
rema_xml_content: str | None = None
|
|
655
653
|
"""
|
|
656
654
|
Content of the PROFINET REMA XML file.
|
|
657
655
|
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 +688,7 @@ class BusIOProfinet(BaseModel):
|
|
|
690
688
|
"""
|
|
691
689
|
|
|
692
690
|
bus_type: Literal['profinet'] = 'profinet'
|
|
693
|
-
network_config:
|
|
691
|
+
network_config: BusIOProfinetNetwork | None = None
|
|
694
692
|
"""
|
|
695
693
|
Used to enable IP communication through the same physical ethernet interface while PROFINET driver is active.
|
|
696
694
|
|
|
@@ -709,7 +707,9 @@ class BusIOProfinet(BaseModel):
|
|
|
709
707
|
MAC address of the physical ethernet interface that you want to use for PROFINET communication.
|
|
710
708
|
|
|
711
709
|
"""
|
|
712
|
-
default_route:
|
|
710
|
+
default_route: Annotated[
|
|
711
|
+
BusIOProfinetDefaultRoute | None, Field(deprecated=True)
|
|
712
|
+
] = None
|
|
713
713
|
|
|
714
714
|
|
|
715
715
|
class BusIOProfinetVirtual(BaseModel):
|
|
@@ -722,7 +722,7 @@ class BusIOProfinetVirtual(BaseModel):
|
|
|
722
722
|
|
|
723
723
|
|
|
724
724
|
class BusIOModbusTCPServer(BaseModel):
|
|
725
|
-
network_type:
|
|
725
|
+
network_type: Literal['tcp'] | None = None
|
|
726
726
|
port: Annotated[int, Field(examples=[502], ge=1, le=65534)]
|
|
727
727
|
"""
|
|
728
728
|
Port number of the MODBUS server to establish communication with.
|
|
@@ -766,7 +766,7 @@ class BusIOModbusServer(BaseModel):
|
|
|
766
766
|
|
|
767
767
|
|
|
768
768
|
class BusIOModbusTCPClient(BaseModel):
|
|
769
|
-
network_type:
|
|
769
|
+
network_type: Literal['tcp'] | None = None
|
|
770
770
|
ip: Annotated[str, Field(examples=['192.168.1.100'])]
|
|
771
771
|
"""
|
|
772
772
|
IP address of the MODBUS server to establish communication with.
|
|
@@ -800,13 +800,11 @@ class BusIOModbusVirtual(BaseModel):
|
|
|
800
800
|
|
|
801
801
|
class BusIOType(RootModel):
|
|
802
802
|
root: Annotated[
|
|
803
|
-
|
|
804
|
-
|
|
805
|
-
|
|
806
|
-
|
|
807
|
-
|
|
808
|
-
BusIOModbusVirtual,
|
|
809
|
-
],
|
|
803
|
+
BusIOProfinet
|
|
804
|
+
| BusIOProfinetVirtual
|
|
805
|
+
| BusIOModbusServer
|
|
806
|
+
| BusIOModbusClient
|
|
807
|
+
| BusIOModbusVirtual,
|
|
810
808
|
Field(discriminator='bus_type'),
|
|
811
809
|
]
|
|
812
810
|
|
|
@@ -845,7 +843,7 @@ class Metadata(RootModel):
|
|
|
845
843
|
Additional metadata to add to the backup
|
|
846
844
|
"""
|
|
847
845
|
|
|
848
|
-
root:
|
|
846
|
+
root: dict[str, str]
|
|
849
847
|
|
|
850
848
|
|
|
851
849
|
class ConfigurationArchive(RootModel):
|
|
@@ -883,11 +881,9 @@ class ConfigurationArchiveStatusSuccess(BaseModel):
|
|
|
883
881
|
|
|
884
882
|
class ConfigurationArchiveStatus(RootModel):
|
|
885
883
|
root: Annotated[
|
|
886
|
-
|
|
887
|
-
|
|
888
|
-
|
|
889
|
-
ConfigurationArchiveStatusSuccess,
|
|
890
|
-
],
|
|
884
|
+
ConfigurationArchiveStatusCreating
|
|
885
|
+
| ConfigurationArchiveStatusError
|
|
886
|
+
| ConfigurationArchiveStatusSuccess,
|
|
891
887
|
Field(discriminator='status'),
|
|
892
888
|
]
|
|
893
889
|
"""
|
|
@@ -925,7 +921,7 @@ class License(BaseModel):
|
|
|
925
921
|
"""
|
|
926
922
|
Identification key of the license.
|
|
927
923
|
"""
|
|
928
|
-
license_expiry_date:
|
|
924
|
+
license_expiry_date: date | None = None
|
|
929
925
|
"""
|
|
930
926
|
Expiration date of the license.
|
|
931
927
|
"""
|
|
@@ -941,11 +937,11 @@ class License(BaseModel):
|
|
|
941
937
|
"""
|
|
942
938
|
Amount of times the license can be activated.
|
|
943
939
|
"""
|
|
944
|
-
feature_limitations:
|
|
940
|
+
feature_limitations: dict[str, int] | None = None
|
|
945
941
|
"""
|
|
946
942
|
Feature limitations of the license.
|
|
947
943
|
"""
|
|
948
|
-
feature_flags:
|
|
944
|
+
feature_flags: list[str] | None = None
|
|
949
945
|
"""
|
|
950
946
|
Features enabled by a license.
|
|
951
947
|
"""
|
|
@@ -1101,7 +1097,7 @@ class Vector3d(RootModel):
|
|
|
1101
1097
|
|
|
1102
1098
|
"""
|
|
1103
1099
|
|
|
1104
|
-
root: Annotated[
|
|
1100
|
+
root: Annotated[list[float], Field(max_length=3, min_length=3, title='Vector3d')]
|
|
1105
1101
|
"""
|
|
1106
1102
|
A three-dimensional vector [x, y, z] with double precision.
|
|
1107
1103
|
|
|
@@ -1138,7 +1134,7 @@ class ConvexHull(BaseModel):
|
|
|
1138
1134
|
"""
|
|
1139
1135
|
|
|
1140
1136
|
shape_type: Literal['convex_hull'] = 'convex_hull'
|
|
1141
|
-
vertices:
|
|
1137
|
+
vertices: list[Vector3d]
|
|
1142
1138
|
"""
|
|
1143
1139
|
The list of encapsulated points.
|
|
1144
1140
|
"""
|
|
@@ -1154,7 +1150,7 @@ class RotationVector(RootModel):
|
|
|
1154
1150
|
"""
|
|
1155
1151
|
|
|
1156
1152
|
root: Annotated[
|
|
1157
|
-
|
|
1153
|
+
list[float], Field(max_length=3, min_length=3, title='RotationVector')
|
|
1158
1154
|
]
|
|
1159
1155
|
"""
|
|
1160
1156
|
Defines a rotation in 3D space.
|
|
@@ -1197,8 +1193,8 @@ class Pose(BaseModel):
|
|
|
1197
1193
|
|
|
1198
1194
|
"""
|
|
1199
1195
|
|
|
1200
|
-
position:
|
|
1201
|
-
orientation:
|
|
1196
|
+
position: Vector3d | None = None
|
|
1197
|
+
orientation: RotationVector | None = None
|
|
1202
1198
|
|
|
1203
1199
|
|
|
1204
1200
|
class Collider(BaseModel):
|
|
@@ -1216,27 +1212,25 @@ class Collider(BaseModel):
|
|
|
1216
1212
|
"""
|
|
1217
1213
|
|
|
1218
1214
|
shape: Annotated[
|
|
1219
|
-
|
|
1220
|
-
|
|
1221
|
-
|
|
1222
|
-
|
|
1223
|
-
|
|
1224
|
-
|
|
1225
|
-
|
|
1226
|
-
|
|
1227
|
-
ConvexHull,
|
|
1228
|
-
],
|
|
1215
|
+
Sphere
|
|
1216
|
+
| Box
|
|
1217
|
+
| Rectangle
|
|
1218
|
+
| Plane
|
|
1219
|
+
| Cylinder
|
|
1220
|
+
| Capsule
|
|
1221
|
+
| RectangularCapsule
|
|
1222
|
+
| ConvexHull,
|
|
1229
1223
|
Field(discriminator='shape_type'),
|
|
1230
1224
|
]
|
|
1231
|
-
pose:
|
|
1232
|
-
margin:
|
|
1225
|
+
pose: Pose | None = None
|
|
1226
|
+
margin: float | None = 0
|
|
1233
1227
|
"""
|
|
1234
1228
|
Increases the shape's size in all dimensions. Applied in [mm]. Can be used to keep a safe distance to the shape.
|
|
1235
1229
|
"""
|
|
1236
1230
|
|
|
1237
1231
|
|
|
1238
1232
|
class Link(RootModel):
|
|
1239
|
-
root:
|
|
1233
|
+
root: dict[str, Collider]
|
|
1240
1234
|
|
|
1241
1235
|
|
|
1242
1236
|
class LinkChain(RootModel):
|
|
@@ -1257,7 +1251,7 @@ class LinkChain(RootModel):
|
|
|
1257
1251
|
"""
|
|
1258
1252
|
|
|
1259
1253
|
root: Annotated[
|
|
1260
|
-
|
|
1254
|
+
list[Link],
|
|
1261
1255
|
Field(
|
|
1262
1256
|
examples=[
|
|
1263
1257
|
[
|
|
@@ -1335,7 +1329,7 @@ class ControllerDescription(BaseModel):
|
|
|
1335
1329
|
The data type to describe a robot controller.
|
|
1336
1330
|
"""
|
|
1337
1331
|
|
|
1338
|
-
connected_motion_groups:
|
|
1332
|
+
connected_motion_groups: list[str]
|
|
1339
1333
|
supports_freedrive: bool
|
|
1340
1334
|
"""
|
|
1341
1335
|
Can this controller be moved through freedrive (true), or not (false).
|
|
@@ -1462,7 +1456,7 @@ class Joints(RootModel):
|
|
|
1462
1456
|
|
|
1463
1457
|
"""
|
|
1464
1458
|
|
|
1465
|
-
root:
|
|
1459
|
+
root: list[float]
|
|
1466
1460
|
"""
|
|
1467
1461
|
This structure describes a set of joint values, e.g., positions, currents, torques, of a motion group.
|
|
1468
1462
|
|
|
@@ -1502,7 +1496,7 @@ class MotionGroupStateJointLimitReached(BaseModel):
|
|
|
1502
1496
|
|
|
1503
1497
|
"""
|
|
1504
1498
|
|
|
1505
|
-
limit_reached:
|
|
1499
|
+
limit_reached: list[bool]
|
|
1506
1500
|
"""
|
|
1507
1501
|
If true, operational (soft) jointLimit is reached for specific joint.
|
|
1508
1502
|
"""
|
|
@@ -1546,7 +1540,7 @@ class JoggingPausedNearJointLimit(BaseModel):
|
|
|
1546
1540
|
"""
|
|
1547
1541
|
|
|
1548
1542
|
kind: Literal['PAUSED_NEAR_JOINT_LIMIT'] = 'PAUSED_NEAR_JOINT_LIMIT'
|
|
1549
|
-
joint_indices:
|
|
1543
|
+
joint_indices: list[JointIndice]
|
|
1550
1544
|
|
|
1551
1545
|
|
|
1552
1546
|
class JoggingPausedNearCollision(BaseModel):
|
|
@@ -1573,13 +1567,11 @@ class JoggingDetails(BaseModel):
|
|
|
1573
1567
|
"""
|
|
1574
1568
|
|
|
1575
1569
|
state: Annotated[
|
|
1576
|
-
|
|
1577
|
-
|
|
1578
|
-
|
|
1579
|
-
|
|
1580
|
-
|
|
1581
|
-
JoggingPausedNearCollision,
|
|
1582
|
-
],
|
|
1570
|
+
JoggingRunning
|
|
1571
|
+
| JoggingPausedByUser
|
|
1572
|
+
| JoggingPausedOnIO
|
|
1573
|
+
| JoggingPausedNearJointLimit
|
|
1574
|
+
| JoggingPausedNearCollision,
|
|
1583
1575
|
Field(discriminator='kind'),
|
|
1584
1576
|
]
|
|
1585
1577
|
kind: Literal['JOGGING'] = 'JOGGING'
|
|
@@ -1670,13 +1662,11 @@ class TrajectoryDetails(BaseModel):
|
|
|
1670
1662
|
"""
|
|
1671
1663
|
location: Location
|
|
1672
1664
|
state: Annotated[
|
|
1673
|
-
|
|
1674
|
-
|
|
1675
|
-
|
|
1676
|
-
|
|
1677
|
-
|
|
1678
|
-
TrajectoryPausedOnIO,
|
|
1679
|
-
],
|
|
1665
|
+
TrajectoryRunning
|
|
1666
|
+
| TrajectoryPausedByUser
|
|
1667
|
+
| TrajectoryEnded
|
|
1668
|
+
| TrajectoryWaitForIO
|
|
1669
|
+
| TrajectoryPausedOnIO,
|
|
1680
1670
|
Field(discriminator='kind'),
|
|
1681
1671
|
]
|
|
1682
1672
|
kind: Literal['TRAJECTORY'] = 'TRAJECTORY'
|
|
@@ -1694,13 +1684,13 @@ class Execute(BaseModel):
|
|
|
1694
1684
|
|
|
1695
1685
|
"""
|
|
1696
1686
|
|
|
1697
|
-
joint_position:
|
|
1687
|
+
joint_position: list[float]
|
|
1698
1688
|
"""
|
|
1699
1689
|
Commanded joint position of each joint in [rad]. This command was sent in the time step the corresponding state was received.
|
|
1700
1690
|
|
|
1701
1691
|
"""
|
|
1702
1692
|
details: Annotated[
|
|
1703
|
-
|
|
1693
|
+
JoggingDetails | TrajectoryDetails | None, Field(discriminator='kind')
|
|
1704
1694
|
] = None
|
|
1705
1695
|
|
|
1706
1696
|
|
|
@@ -1737,19 +1727,19 @@ class MotionGroupState(BaseModel):
|
|
|
1737
1727
|
Indicates whether the joint is in a limit for all joints of the motion group.
|
|
1738
1728
|
|
|
1739
1729
|
"""
|
|
1740
|
-
joint_torque:
|
|
1730
|
+
joint_torque: Joints | None = None
|
|
1741
1731
|
"""
|
|
1742
1732
|
Current joint torque of each joint in [Nm].
|
|
1743
1733
|
Is only available if the robot controller supports it, e.g., available for UR controllers.
|
|
1744
1734
|
|
|
1745
1735
|
"""
|
|
1746
|
-
joint_current:
|
|
1736
|
+
joint_current: Joints | None = None
|
|
1747
1737
|
"""
|
|
1748
1738
|
Current at TCP in [A].
|
|
1749
1739
|
Is only available if the robot controller supports it, e.g., available for UR controllers.
|
|
1750
1740
|
|
|
1751
1741
|
"""
|
|
1752
|
-
flange_pose:
|
|
1742
|
+
flange_pose: Pose | None = None
|
|
1753
1743
|
"""
|
|
1754
1744
|
Pose of the flange.
|
|
1755
1745
|
Positions are in [mm].
|
|
@@ -1758,13 +1748,13 @@ class MotionGroupState(BaseModel):
|
|
|
1758
1748
|
For robot arms a flange pose is always returned, for positioners the flange might not be available, depending on the model.
|
|
1759
1749
|
|
|
1760
1750
|
"""
|
|
1761
|
-
tcp:
|
|
1751
|
+
tcp: str | None = None
|
|
1762
1752
|
"""
|
|
1763
1753
|
Unique identifier addressing the active TCP.
|
|
1764
1754
|
Might not be returned for positioners as some do not support TCPs, depending on the model.
|
|
1765
1755
|
|
|
1766
1756
|
"""
|
|
1767
|
-
tcp_pose:
|
|
1757
|
+
tcp_pose: Pose | None = None
|
|
1768
1758
|
"""
|
|
1769
1759
|
Pose of the TCP selected on the robot control panel.
|
|
1770
1760
|
Positions are in [mm].
|
|
@@ -1773,14 +1763,14 @@ class MotionGroupState(BaseModel):
|
|
|
1773
1763
|
Might not be returned for positioners as some do not support TCPs, depending on the model.
|
|
1774
1764
|
|
|
1775
1765
|
"""
|
|
1776
|
-
coordinate_system:
|
|
1766
|
+
coordinate_system: str | None = None
|
|
1777
1767
|
"""
|
|
1778
1768
|
Unique identifier addressing the reference coordinate system of the cartesian data.
|
|
1779
1769
|
Might not be returned for positioners as some do not support TCPs, depending on the model.
|
|
1780
1770
|
Default: world coordinate system of corresponding controller.
|
|
1781
1771
|
|
|
1782
1772
|
"""
|
|
1783
|
-
payload:
|
|
1773
|
+
payload: str | None = None
|
|
1784
1774
|
"""
|
|
1785
1775
|
Unique identifier addressing the active payload.
|
|
1786
1776
|
Only fetchable via GET endpoint, not available in WebSocket.
|
|
@@ -1792,7 +1782,7 @@ class MotionGroupState(BaseModel):
|
|
|
1792
1782
|
Convenience: Signals that NOVA treats measured joint velocities as 0.
|
|
1793
1783
|
|
|
1794
1784
|
"""
|
|
1795
|
-
execute:
|
|
1785
|
+
execute: Execute | None = None
|
|
1796
1786
|
"""
|
|
1797
1787
|
Data that was commanded to the motion group. Includes additional data on NOVA's execution components for executing trajectories and jogging.
|
|
1798
1788
|
This is a convenience field to indicate the last command sent to the motion group.
|
|
@@ -1810,7 +1800,7 @@ class RobotControllerState(BaseModel):
|
|
|
1810
1800
|
"""
|
|
1811
1801
|
Mode of communication and control between NOVA and the robot controller.
|
|
1812
1802
|
"""
|
|
1813
|
-
last_error:
|
|
1803
|
+
last_error: list[str] | None = None
|
|
1814
1804
|
"""
|
|
1815
1805
|
Last error stack encountered during initialization process or after a controller disconnect.
|
|
1816
1806
|
At this stage, it's unclear whether the error is fatal.
|
|
@@ -1837,14 +1827,14 @@ class RobotControllerState(BaseModel):
|
|
|
1837
1827
|
"""
|
|
1838
1828
|
operation_mode: OperationMode
|
|
1839
1829
|
safety_state: SafetyStateType
|
|
1840
|
-
velocity_override: Annotated[
|
|
1830
|
+
velocity_override: Annotated[int | None, Field(ge=1, le=100)] = None
|
|
1841
1831
|
"""
|
|
1842
1832
|
If made available by the robot controller, returns the current velocity override in
|
|
1843
1833
|
[percentage] for movements adjusted on robot control panel.
|
|
1844
1834
|
Valid value range: 1 - 100.
|
|
1845
1835
|
|
|
1846
1836
|
"""
|
|
1847
|
-
motion_groups: Annotated[
|
|
1837
|
+
motion_groups: Annotated[list[MotionGroupState], Field(title='MotionGroupState[]')]
|
|
1848
1838
|
"""
|
|
1849
1839
|
State of indicated motion groups.
|
|
1850
1840
|
In case of state request via controller all configured motion groups are returned.
|
|
@@ -1924,7 +1914,7 @@ class FloatValue(BaseModel):
|
|
|
1924
1914
|
|
|
1925
1915
|
class IOBoundary(RootModel):
|
|
1926
1916
|
root: Annotated[
|
|
1927
|
-
|
|
1917
|
+
BooleanValue | IntegerValue | FloatValue,
|
|
1928
1918
|
Field(discriminator='value_type', title='IOBoundary'),
|
|
1929
1919
|
]
|
|
1930
1920
|
|
|
@@ -1940,20 +1930,20 @@ class IODescription(BaseModel):
|
|
|
1940
1930
|
Name of the input/output. Customize it on the physical controller or in the virtual robot specification.
|
|
1941
1931
|
|
|
1942
1932
|
"""
|
|
1943
|
-
group:
|
|
1933
|
+
group: str | None = None
|
|
1944
1934
|
"""
|
|
1945
1935
|
Name of the input/output group. Customize it on the physical controller or in the virtual robot specification.
|
|
1946
1936
|
|
|
1947
1937
|
"""
|
|
1948
1938
|
direction: IODirection
|
|
1949
1939
|
value_type: IOValueType
|
|
1950
|
-
unit:
|
|
1951
|
-
min:
|
|
1952
|
-
max:
|
|
1940
|
+
unit: UnitType | None = None
|
|
1941
|
+
min: IOBoundary | None = None
|
|
1942
|
+
max: IOBoundary | None = None
|
|
1953
1943
|
|
|
1954
1944
|
|
|
1955
1945
|
class ListIODescriptionsResponse(RootModel):
|
|
1956
|
-
root:
|
|
1946
|
+
root: list[IODescription]
|
|
1957
1947
|
|
|
1958
1948
|
def __getitem__(self, index: int) -> IODescription:
|
|
1959
1949
|
"""
|
|
@@ -2029,7 +2019,7 @@ class IOFloatValue(BaseModel):
|
|
|
2029
2019
|
|
|
2030
2020
|
class IOValue(RootModel):
|
|
2031
2021
|
root: Annotated[
|
|
2032
|
-
|
|
2022
|
+
IOBooleanValue | IOIntegerValue | IOFloatValue,
|
|
2033
2023
|
Field(discriminator='value_type'),
|
|
2034
2024
|
]
|
|
2035
2025
|
|
|
@@ -2039,7 +2029,7 @@ class StreamIOValuesResponse(BaseModel):
|
|
|
2039
2029
|
Array of input/output values.
|
|
2040
2030
|
"""
|
|
2041
2031
|
|
|
2042
|
-
io_values:
|
|
2032
|
+
io_values: list[IOValue]
|
|
2043
2033
|
timestamp: AwareDatetime
|
|
2044
2034
|
"""
|
|
2045
2035
|
Timestamp indicating when the represented information was received from the robot controller.
|
|
@@ -2058,7 +2048,7 @@ class ListIOValuesResponse(RootModel):
|
|
|
2058
2048
|
"""
|
|
2059
2049
|
|
|
2060
2050
|
root: Annotated[
|
|
2061
|
-
|
|
2051
|
+
list[IOValue],
|
|
2062
2052
|
Field(
|
|
2063
2053
|
examples=[
|
|
2064
2054
|
{
|
|
@@ -2211,7 +2201,7 @@ class Orientation(RootModel):
|
|
|
2211
2201
|
|
|
2212
2202
|
"""
|
|
2213
2203
|
|
|
2214
|
-
root: Annotated[
|
|
2204
|
+
root: Annotated[list[float], Field(max_length=4, min_length=3, title='Orientation')]
|
|
2215
2205
|
"""
|
|
2216
2206
|
Describes an orientation in 3D space.
|
|
2217
2207
|
A tree-to-four-dimensional vector [x, y, z, w] with double precision.
|
|
@@ -2244,17 +2234,17 @@ class Orientation(RootModel):
|
|
|
2244
2234
|
|
|
2245
2235
|
|
|
2246
2236
|
class CoordinateSystemData(BaseModel):
|
|
2247
|
-
name:
|
|
2237
|
+
name: str | None = None
|
|
2248
2238
|
"""
|
|
2249
2239
|
Human readable name of this coordinate system.
|
|
2250
2240
|
"""
|
|
2251
|
-
reference_coordinate_system:
|
|
2241
|
+
reference_coordinate_system: str | None = None
|
|
2252
2242
|
"""
|
|
2253
2243
|
The identifier of the reference coordinate system. Empty if world is used.
|
|
2254
2244
|
"""
|
|
2255
|
-
position:
|
|
2256
|
-
orientation:
|
|
2257
|
-
orientation_type:
|
|
2245
|
+
position: Vector3d | None = None
|
|
2246
|
+
orientation: Orientation | None = None
|
|
2247
|
+
orientation_type: OrientationType | None = 'ROTATION_VECTOR'
|
|
2258
2248
|
|
|
2259
2249
|
|
|
2260
2250
|
class CoordinateSystem(CoordinateSystemData):
|
|
@@ -2265,7 +2255,7 @@ class CoordinateSystem(CoordinateSystemData):
|
|
|
2265
2255
|
|
|
2266
2256
|
|
|
2267
2257
|
class ListCoordinateSystemsResponse(RootModel):
|
|
2268
|
-
root:
|
|
2258
|
+
root: list[CoordinateSystem]
|
|
2269
2259
|
|
|
2270
2260
|
def __getitem__(self, index: int) -> CoordinateSystem:
|
|
2271
2261
|
"""
|
|
@@ -2312,7 +2302,7 @@ class ColliderDictionary(RootModel):
|
|
|
2312
2302
|
A collection of identifiable colliders.
|
|
2313
2303
|
"""
|
|
2314
2304
|
|
|
2315
|
-
root:
|
|
2305
|
+
root: dict[str, Collider]
|
|
2316
2306
|
|
|
2317
2307
|
|
|
2318
2308
|
class LimitRange(BaseModel):
|
|
@@ -2320,37 +2310,37 @@ class LimitRange(BaseModel):
|
|
|
2320
2310
|
The upper_limit must be greater then the lower_limit.
|
|
2321
2311
|
"""
|
|
2322
2312
|
|
|
2323
|
-
lower_limit:
|
|
2324
|
-
upper_limit:
|
|
2313
|
+
lower_limit: float | None = None
|
|
2314
|
+
upper_limit: float | None = None
|
|
2325
2315
|
|
|
2326
2316
|
|
|
2327
2317
|
class JointLimits(BaseModel):
|
|
2328
|
-
position:
|
|
2329
|
-
velocity:
|
|
2330
|
-
acceleration:
|
|
2331
|
-
torque:
|
|
2318
|
+
position: LimitRange | None = None
|
|
2319
|
+
velocity: float | None = None
|
|
2320
|
+
acceleration: float | None = None
|
|
2321
|
+
torque: float | None = None
|
|
2332
2322
|
|
|
2333
2323
|
|
|
2334
2324
|
class CartesianLimits(BaseModel):
|
|
2335
|
-
velocity:
|
|
2336
|
-
acceleration:
|
|
2337
|
-
orientation_velocity:
|
|
2338
|
-
orientation_acceleration:
|
|
2325
|
+
velocity: float | None = None
|
|
2326
|
+
acceleration: float | None = None
|
|
2327
|
+
orientation_velocity: float | None = None
|
|
2328
|
+
orientation_acceleration: float | None = None
|
|
2339
2329
|
|
|
2340
2330
|
|
|
2341
2331
|
class LimitSet(BaseModel):
|
|
2342
|
-
joints:
|
|
2343
|
-
tcp:
|
|
2344
|
-
elbow:
|
|
2345
|
-
flange:
|
|
2346
|
-
coupled_shoulder_elbow_joint:
|
|
2332
|
+
joints: list[JointLimits] | None = None
|
|
2333
|
+
tcp: CartesianLimits | None = None
|
|
2334
|
+
elbow: CartesianLimits | None = None
|
|
2335
|
+
flange: CartesianLimits | None = None
|
|
2336
|
+
coupled_shoulder_elbow_joint: JointLimits | None = None
|
|
2347
2337
|
|
|
2348
2338
|
|
|
2349
2339
|
class OperationLimits(BaseModel):
|
|
2350
|
-
auto_limits:
|
|
2351
|
-
manual_limits:
|
|
2352
|
-
manual_t1_limits:
|
|
2353
|
-
manual_t2_limits:
|
|
2340
|
+
auto_limits: LimitSet | None = None
|
|
2341
|
+
manual_limits: LimitSet | None = None
|
|
2342
|
+
manual_t1_limits: LimitSet | None = None
|
|
2343
|
+
manual_t2_limits: LimitSet | None = None
|
|
2354
2344
|
|
|
2355
2345
|
|
|
2356
2346
|
class Payload(BaseModel):
|
|
@@ -2359,8 +2349,8 @@ class Payload(BaseModel):
|
|
|
2359
2349
|
"""
|
|
2360
2350
|
Mass of payload in [kg].
|
|
2361
2351
|
"""
|
|
2362
|
-
center_of_mass:
|
|
2363
|
-
moment_of_inertia:
|
|
2352
|
+
center_of_mass: Vector3d | None = None
|
|
2353
|
+
moment_of_inertia: Vector3d | None = None
|
|
2364
2354
|
|
|
2365
2355
|
|
|
2366
2356
|
class DHParameter(BaseModel):
|
|
@@ -2368,23 +2358,23 @@ class DHParameter(BaseModel):
|
|
|
2368
2358
|
A single set of DH parameters.
|
|
2369
2359
|
"""
|
|
2370
2360
|
|
|
2371
|
-
alpha:
|
|
2361
|
+
alpha: float | None = None
|
|
2372
2362
|
"""
|
|
2373
2363
|
Angle about x-axis in [rad].
|
|
2374
2364
|
"""
|
|
2375
|
-
theta:
|
|
2365
|
+
theta: float | None = None
|
|
2376
2366
|
"""
|
|
2377
2367
|
Angle about z-axis in [rad].
|
|
2378
2368
|
"""
|
|
2379
|
-
a:
|
|
2369
|
+
a: float | None = None
|
|
2380
2370
|
"""
|
|
2381
2371
|
Offset along x-axis in [mm].
|
|
2382
2372
|
"""
|
|
2383
|
-
d:
|
|
2373
|
+
d: float | None = None
|
|
2384
2374
|
"""
|
|
2385
2375
|
Offset along z-axis in [mm].
|
|
2386
2376
|
"""
|
|
2387
|
-
reverse_rotation_direction:
|
|
2377
|
+
reverse_rotation_direction: bool | None = None
|
|
2388
2378
|
"""
|
|
2389
2379
|
True, if rotation direction of joint is reversed.
|
|
2390
2380
|
"""
|
|
@@ -2396,30 +2386,30 @@ class MotionGroupDescription(BaseModel):
|
|
|
2396
2386
|
"""
|
|
2397
2387
|
|
|
2398
2388
|
motion_group_model: MotionGroupModel
|
|
2399
|
-
mounting:
|
|
2389
|
+
mounting: Pose | None = None
|
|
2400
2390
|
"""
|
|
2401
2391
|
The offset from the world frame to the motion group base.
|
|
2402
2392
|
"""
|
|
2403
|
-
tcps: Annotated[
|
|
2404
|
-
|
|
2405
|
-
|
|
2393
|
+
tcps: Annotated[dict[str, TcpOffset] | None, Field(title='TcpOffsetDictionary')] = (
|
|
2394
|
+
None
|
|
2395
|
+
)
|
|
2406
2396
|
"""
|
|
2407
2397
|
Maps a TCP name to its offset relative to the flange coordinate system. Key must be a TCP identifier.
|
|
2408
2398
|
Values are TcpOffsets.
|
|
2409
2399
|
|
|
2410
2400
|
"""
|
|
2411
|
-
safety_zones:
|
|
2401
|
+
safety_zones: ColliderDictionary | None = None
|
|
2412
2402
|
"""
|
|
2413
2403
|
SafetyZones are areas which cannot be entered or where certain limits apply.
|
|
2414
2404
|
"""
|
|
2415
|
-
safety_link_colliders:
|
|
2405
|
+
safety_link_colliders: list[ColliderDictionary] | None = None
|
|
2416
2406
|
"""
|
|
2417
2407
|
The shape of the MotionGroups links to validate against safety zones.
|
|
2418
2408
|
Indexed along the kinematic chain, starting with a static base shape before first joint.
|
|
2419
2409
|
|
|
2420
2410
|
"""
|
|
2421
2411
|
safety_tool_colliders: Annotated[
|
|
2422
|
-
|
|
2412
|
+
dict[str, ColliderDictionary] | None, Field(title='SafetyToolColliders')
|
|
2423
2413
|
] = None
|
|
2424
2414
|
"""
|
|
2425
2415
|
Maps a TCP name to its tool collider. Key must be a TCP identifier.
|
|
@@ -2427,22 +2417,27 @@ class MotionGroupDescription(BaseModel):
|
|
|
2427
2417
|
|
|
2428
2418
|
"""
|
|
2429
2419
|
operation_limits: OperationLimits
|
|
2430
|
-
payloads: Annotated[
|
|
2431
|
-
|
|
2432
|
-
|
|
2420
|
+
payloads: Annotated[dict[str, Payload] | None, Field(title='PayloadDictionary')] = (
|
|
2421
|
+
None
|
|
2422
|
+
)
|
|
2433
2423
|
"""
|
|
2434
2424
|
Maps a payload name to its configuration. Key must be a payload identifier.
|
|
2435
2425
|
Values are payload objects.
|
|
2436
2426
|
|
|
2437
2427
|
"""
|
|
2438
|
-
cycle_time: Annotated[
|
|
2428
|
+
cycle_time: Annotated[int | None, Field(ge=0, le=2147483647)] = None
|
|
2439
2429
|
"""
|
|
2440
2430
|
[ms] cycle time of the motion group controller. A trajectory for this motion group should be computed to this resolution.
|
|
2441
2431
|
"""
|
|
2442
|
-
dh_parameters:
|
|
2432
|
+
dh_parameters: list[DHParameter] | None = None
|
|
2443
2433
|
"""
|
|
2444
2434
|
The DH parameters describing the motion group geometry, starting from base.
|
|
2445
2435
|
"""
|
|
2436
|
+
serial_number: str | None = None
|
|
2437
|
+
"""
|
|
2438
|
+
The serial number of the motion group, if available. If not available, the serial number of the robot controller. If not available, empty.
|
|
2439
|
+
|
|
2440
|
+
"""
|
|
2446
2441
|
|
|
2447
2442
|
|
|
2448
2443
|
class Tool(RootModel):
|
|
@@ -2455,28 +2450,28 @@ class Tool(RootModel):
|
|
|
2455
2450
|
|
|
2456
2451
|
"""
|
|
2457
2452
|
|
|
2458
|
-
root:
|
|
2453
|
+
root: dict[str, Collider]
|
|
2459
2454
|
|
|
2460
2455
|
|
|
2461
2456
|
class CollisionSetup(BaseModel):
|
|
2462
|
-
colliders:
|
|
2457
|
+
colliders: ColliderDictionary | None = None
|
|
2463
2458
|
"""
|
|
2464
2459
|
Colliders are checked against links and tool.
|
|
2465
2460
|
|
|
2466
2461
|
"""
|
|
2467
|
-
link_chain:
|
|
2462
|
+
link_chain: LinkChain | None = None
|
|
2468
2463
|
"""
|
|
2469
2464
|
The shape of the motion groups links to validate against colliders.
|
|
2470
2465
|
Indexed along the kinematic chain, starting with a static base shape before first joint.
|
|
2471
2466
|
The base of the motion group is not checked for collision against the environment.
|
|
2472
2467
|
|
|
2473
2468
|
"""
|
|
2474
|
-
tool:
|
|
2469
|
+
tool: Tool | None = None
|
|
2475
2470
|
"""
|
|
2476
2471
|
Shape of the tool to validate against colliders.
|
|
2477
2472
|
|
|
2478
2473
|
"""
|
|
2479
|
-
self_collision_detection:
|
|
2474
|
+
self_collision_detection: bool | None = True
|
|
2480
2475
|
"""
|
|
2481
2476
|
If true, self-collision detection is enabled for the motion group.
|
|
2482
2477
|
|
|
@@ -2504,7 +2499,7 @@ class CollisionSetups(RootModel):
|
|
|
2504
2499
|
|
|
2505
2500
|
"""
|
|
2506
2501
|
|
|
2507
|
-
root:
|
|
2502
|
+
root: dict[str, CollisionSetup]
|
|
2508
2503
|
|
|
2509
2504
|
|
|
2510
2505
|
class MotionGroupSetup(BaseModel):
|
|
@@ -2513,18 +2508,18 @@ class MotionGroupSetup(BaseModel):
|
|
|
2513
2508
|
"""
|
|
2514
2509
|
[ms] cycle time of the motion group controller. A trajectory for this motion group should be computed to this resolution.
|
|
2515
2510
|
"""
|
|
2516
|
-
mounting:
|
|
2511
|
+
mounting: Pose | None = None
|
|
2517
2512
|
"""
|
|
2518
2513
|
The offset from the world frame to the motion group base.
|
|
2519
2514
|
"""
|
|
2520
|
-
tcp_offset:
|
|
2521
|
-
global_limits:
|
|
2522
|
-
payload:
|
|
2523
|
-
collision_setups:
|
|
2515
|
+
tcp_offset: Pose | None = None
|
|
2516
|
+
global_limits: LimitSet | None = None
|
|
2517
|
+
payload: Payload | None = None
|
|
2518
|
+
collision_setups: CollisionSetups | None = None
|
|
2524
2519
|
|
|
2525
2520
|
|
|
2526
2521
|
class DoubleArray(RootModel):
|
|
2527
|
-
root:
|
|
2522
|
+
root: list[float]
|
|
2528
2523
|
|
|
2529
2524
|
def __getitem__(self, index: int) -> float:
|
|
2530
2525
|
"""
|
|
@@ -2552,23 +2547,70 @@ class DoubleArray(RootModel):
|
|
|
2552
2547
|
|
|
2553
2548
|
|
|
2554
2549
|
class BlendingAuto(BaseModel):
|
|
2555
|
-
min_velocity_in_percent: Annotated[
|
|
2550
|
+
min_velocity_in_percent: Annotated[int | None, Field(ge=0, le=100)] = None
|
|
2556
2551
|
"""
|
|
2557
|
-
Auto-blending is used to keep a constant velocity when blending between two motion commands.
|
|
2552
|
+
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
2553
|
It changes the TCP path around the target point of the motion command.
|
|
2559
|
-
The value represents the percentage of the original velocity.
|
|
2554
|
+
The value represents the percentage of the original velocity. Auto-blending is always performed in cartesian space.
|
|
2560
2555
|
|
|
2561
2556
|
"""
|
|
2562
2557
|
blending_name: Literal['BlendingAuto'] = 'BlendingAuto'
|
|
2563
2558
|
|
|
2564
2559
|
|
|
2560
|
+
class BlendingSpace(Enum):
|
|
2561
|
+
"""
|
|
2562
|
+
Defines the space in which blending is performed.
|
|
2563
|
+
- `JOINT`: Zone blending is performed in joint space
|
|
2564
|
+
- `CARTESIAN`: Auto-blending is performed in cartesian space
|
|
2565
|
+
|
|
2566
|
+
"""
|
|
2567
|
+
|
|
2568
|
+
JOINT = 'JOINT'
|
|
2569
|
+
CARTESIAN = 'CARTESIAN'
|
|
2570
|
+
|
|
2571
|
+
|
|
2565
2572
|
class BlendingPosition(BaseModel):
|
|
2566
|
-
position_zone_radius:
|
|
2573
|
+
position_zone_radius: float | None = None
|
|
2567
2574
|
"""
|
|
2568
2575
|
Specifies the maximum radius in [mm] around the motion command's target point
|
|
2569
2576
|
where the TCP path can be altered to blend the motion command into the following one.
|
|
2570
2577
|
If auto-blending blends too much of the resulting trajectory, use position-blending to restrict the blending zone radius.
|
|
2571
2578
|
|
|
2579
|
+
"""
|
|
2580
|
+
position_zone_percentage: Annotated[float | None, Field(ge=0.0, le=100.0)] = None
|
|
2581
|
+
"""
|
|
2582
|
+
Specifies the maximum blending percentage based on the trajectory length in position space
|
|
2583
|
+
around the motion command's target point. Percentage indicated in 0.0 - 100.0.
|
|
2584
|
+
|
|
2585
|
+
"""
|
|
2586
|
+
orientation_zone_radius: float | None = None
|
|
2587
|
+
"""
|
|
2588
|
+
Specifies the maximum radius in [rad] for orientation blending around the motion command's
|
|
2589
|
+
target orientation. At the target's orientation, the TCP orientation can be altered to blend into the following motion.
|
|
2590
|
+
|
|
2591
|
+
"""
|
|
2592
|
+
orientation_zone_percentage: Annotated[float | None, Field(ge=0.0, le=100.0)] = None
|
|
2593
|
+
"""
|
|
2594
|
+
Specifies the maximum blending percentage for orientation blending
|
|
2595
|
+
based on the trajectory length in orientation space. Percentage indicated in 0.0 - 100.0.
|
|
2596
|
+
|
|
2597
|
+
"""
|
|
2598
|
+
joints_zone_radius: float | None = None
|
|
2599
|
+
"""
|
|
2600
|
+
Specifies the maximum radius in [rad] for joint space blending around the motion command's
|
|
2601
|
+
target joint configuration. At the target joint configuration, the joint path can be altered to blend into the following motion.
|
|
2602
|
+
|
|
2603
|
+
"""
|
|
2604
|
+
joints_zone_percentage: Annotated[float | None, Field(ge=0.0, le=100.0)] = None
|
|
2605
|
+
"""
|
|
2606
|
+
Specifies the maximum blending percentage for joint space blending
|
|
2607
|
+
based on the trajectory length in joint space. Percentage indicated in 0.0 to 100.0.
|
|
2608
|
+
|
|
2609
|
+
"""
|
|
2610
|
+
space: BlendingSpace | None = None
|
|
2611
|
+
"""
|
|
2612
|
+
Defines the space in which blending is performed.
|
|
2613
|
+
|
|
2572
2614
|
"""
|
|
2573
2615
|
blending_name: Literal['BlendingPosition'] = 'BlendingPosition'
|
|
2574
2616
|
|
|
@@ -2579,34 +2621,34 @@ class LimitsOverride(BaseModel):
|
|
|
2579
2621
|
|
|
2580
2622
|
"""
|
|
2581
2623
|
|
|
2582
|
-
joint_velocity_limits:
|
|
2624
|
+
joint_velocity_limits: list[float] | None = None
|
|
2583
2625
|
"""
|
|
2584
2626
|
Maximum joint velocity in [rad/s] for each joint.
|
|
2585
2627
|
Either leave this field empty or set a value for each joint.
|
|
2586
2628
|
|
|
2587
2629
|
"""
|
|
2588
|
-
joint_acceleration_limits:
|
|
2630
|
+
joint_acceleration_limits: list[float] | None = None
|
|
2589
2631
|
"""
|
|
2590
2632
|
Maximum joint acceleration in [rad/s^2] for each joint.
|
|
2591
2633
|
Either leave this field empty or set a value for each joint.
|
|
2592
2634
|
|
|
2593
2635
|
"""
|
|
2594
|
-
tcp_velocity_limit:
|
|
2636
|
+
tcp_velocity_limit: float | None = None
|
|
2595
2637
|
"""
|
|
2596
2638
|
Maximum allowed TCP velocity in [mm/s].
|
|
2597
2639
|
|
|
2598
2640
|
"""
|
|
2599
|
-
tcp_acceleration_limit:
|
|
2641
|
+
tcp_acceleration_limit: float | None = None
|
|
2600
2642
|
"""
|
|
2601
2643
|
Maximum allowed TCP acceleration in [mm/s^2].
|
|
2602
2644
|
|
|
2603
2645
|
"""
|
|
2604
|
-
tcp_orientation_velocity_limit:
|
|
2646
|
+
tcp_orientation_velocity_limit: float | None = None
|
|
2605
2647
|
"""
|
|
2606
2648
|
Maximum allowed TCP rotation velocity in [rad/s].
|
|
2607
2649
|
|
|
2608
2650
|
"""
|
|
2609
|
-
tcp_orientation_acceleration_limit:
|
|
2651
|
+
tcp_orientation_acceleration_limit: float | None = None
|
|
2610
2652
|
"""
|
|
2611
2653
|
Maximum allowed TCP rotation acceleration in [rad/s^2].
|
|
2612
2654
|
|
|
@@ -2637,7 +2679,7 @@ class PathCubicSpline(BaseModel):
|
|
|
2637
2679
|
|
|
2638
2680
|
"""
|
|
2639
2681
|
|
|
2640
|
-
parameters:
|
|
2682
|
+
parameters: list[CubicSplineParameter]
|
|
2641
2683
|
path_definition_name: Literal['PathCubicSpline'] = 'PathCubicSpline'
|
|
2642
2684
|
|
|
2643
2685
|
|
|
@@ -2678,21 +2720,20 @@ class PathJointPTP(BaseModel):
|
|
|
2678
2720
|
|
|
2679
2721
|
class MotionCommand(BaseModel):
|
|
2680
2722
|
blending: Annotated[
|
|
2681
|
-
|
|
2682
|
-
Field(discriminator='blending_name'),
|
|
2723
|
+
BlendingAuto | BlendingPosition | None, Field(discriminator='blending_name')
|
|
2683
2724
|
] = None
|
|
2684
2725
|
"""
|
|
2685
2726
|
Blending alters the TCP path at the target point of a motion command
|
|
2686
2727
|
to ensure that the velocity does not drop to zero between two motion commands.
|
|
2687
2728
|
|
|
2688
2729
|
"""
|
|
2689
|
-
limits_override:
|
|
2730
|
+
limits_override: LimitsOverride | None = None
|
|
2690
2731
|
"""
|
|
2691
2732
|
Limits override is used to override the global limits of the motion group for this segment of the motion.
|
|
2692
2733
|
|
|
2693
2734
|
"""
|
|
2694
2735
|
path: Annotated[
|
|
2695
|
-
|
|
2736
|
+
PathCartesianPTP | PathCubicSpline | PathLine | PathCircle | PathJointPTP,
|
|
2696
2737
|
Field(discriminator='path_definition_name'),
|
|
2697
2738
|
]
|
|
2698
2739
|
|
|
@@ -2711,7 +2752,7 @@ class PlanTrajectoryRequest(BaseModel):
|
|
|
2711
2752
|
To move the robot to the start joint position use the endpoint [streamMoveToTrajectoryViaJointP2P](streamMoveToTrajectoryViaJointP2P).
|
|
2712
2753
|
|
|
2713
2754
|
"""
|
|
2714
|
-
motion_commands:
|
|
2755
|
+
motion_commands: list[MotionCommand]
|
|
2715
2756
|
"""
|
|
2716
2757
|
List of motion commands. A command consists of a path definition (line, circle, joint_ptp, cartesian_ptp, cubic_spline), blending, and limits override.
|
|
2717
2758
|
|
|
@@ -2719,17 +2760,17 @@ class PlanTrajectoryRequest(BaseModel):
|
|
|
2719
2760
|
|
|
2720
2761
|
|
|
2721
2762
|
class JointTrajectory(BaseModel):
|
|
2722
|
-
joint_positions:
|
|
2763
|
+
joint_positions: list[Joints]
|
|
2723
2764
|
"""
|
|
2724
2765
|
List of joint positions [rad] for each sample.
|
|
2725
2766
|
The number of samples must match the number of timestamps provided in the times field.
|
|
2726
2767
|
|
|
2727
2768
|
"""
|
|
2728
|
-
times:
|
|
2769
|
+
times: list[float]
|
|
2729
2770
|
"""
|
|
2730
2771
|
Timestamp for each sample [s].
|
|
2731
2772
|
"""
|
|
2732
|
-
locations:
|
|
2773
|
+
locations: list[Location]
|
|
2733
2774
|
|
|
2734
2775
|
|
|
2735
2776
|
class FeedbackOutOfWorkspace(BaseModel):
|
|
@@ -2737,7 +2778,7 @@ class FeedbackOutOfWorkspace(BaseModel):
|
|
|
2737
2778
|
Requested TCP pose is outside of motion group's workspace.
|
|
2738
2779
|
"""
|
|
2739
2780
|
|
|
2740
|
-
invalid_tcp_pose:
|
|
2781
|
+
invalid_tcp_pose: Pose | None = None
|
|
2741
2782
|
error_feedback_name: Literal['FeedbackOutOfWorkspace'] = 'FeedbackOutOfWorkspace'
|
|
2742
2783
|
|
|
2743
2784
|
|
|
@@ -2758,8 +2799,8 @@ class FeedbackSingularity(BaseModel):
|
|
|
2758
2799
|
|
|
2759
2800
|
"""
|
|
2760
2801
|
|
|
2761
|
-
singularity_type:
|
|
2762
|
-
singular_joint_position:
|
|
2802
|
+
singularity_type: SingularityTypeEnum | None = None
|
|
2803
|
+
singular_joint_position: DoubleArray | None = None
|
|
2763
2804
|
error_feedback_name: Literal['FeedbackSingularity'] = 'FeedbackSingularity'
|
|
2764
2805
|
|
|
2765
2806
|
|
|
@@ -2770,46 +2811,44 @@ class FeedbackJointLimitExceeded(BaseModel):
|
|
|
2770
2811
|
|
|
2771
2812
|
"""
|
|
2772
2813
|
|
|
2773
|
-
joint_index: Annotated[
|
|
2774
|
-
joint_position:
|
|
2814
|
+
joint_index: Annotated[int | None, Field(ge=0, le=2147483647)] = None
|
|
2815
|
+
joint_position: DoubleArray | None = None
|
|
2775
2816
|
error_feedback_name: Literal['FeedbackJointLimitExceeded'] = (
|
|
2776
2817
|
'FeedbackJointLimitExceeded'
|
|
2777
2818
|
)
|
|
2778
2819
|
|
|
2779
2820
|
|
|
2780
2821
|
class CollisionContact(BaseModel):
|
|
2781
|
-
local:
|
|
2782
|
-
root:
|
|
2822
|
+
local: Vector3d | None = None
|
|
2823
|
+
root: Vector3d | None = None
|
|
2783
2824
|
|
|
2784
2825
|
|
|
2785
2826
|
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:
|
|
2827
|
+
id_of_a: str | None = None
|
|
2828
|
+
id_of_b: str | None = None
|
|
2829
|
+
id_of_layer: str | None = None
|
|
2830
|
+
normal_root_on_b: Vector3d | None = None
|
|
2831
|
+
position_on_a: CollisionContact | None = None
|
|
2832
|
+
position_on_b: CollisionContact | None = None
|
|
2792
2833
|
|
|
2793
2834
|
|
|
2794
2835
|
class FeedbackCollision(BaseModel):
|
|
2795
|
-
collisions:
|
|
2796
|
-
joint_position:
|
|
2797
|
-
tcp_pose:
|
|
2836
|
+
collisions: list[Collision] | None = None
|
|
2837
|
+
joint_position: DoubleArray | None = None
|
|
2838
|
+
tcp_pose: Pose | None = None
|
|
2798
2839
|
error_feedback_name: Literal['FeedbackCollision'] = 'FeedbackCollision'
|
|
2799
2840
|
|
|
2800
2841
|
|
|
2801
2842
|
class PlanTrajectoryFailedResponse(BaseModel):
|
|
2802
2843
|
error_feedback: Annotated[
|
|
2803
|
-
|
|
2804
|
-
|
|
2805
|
-
|
|
2806
|
-
|
|
2807
|
-
FeedbackCollision,
|
|
2808
|
-
],
|
|
2844
|
+
FeedbackOutOfWorkspace
|
|
2845
|
+
| FeedbackSingularity
|
|
2846
|
+
| FeedbackJointLimitExceeded
|
|
2847
|
+
| FeedbackCollision,
|
|
2809
2848
|
Field(discriminator='error_feedback_name'),
|
|
2810
2849
|
]
|
|
2811
2850
|
error_location_on_trajectory: Location
|
|
2812
|
-
joint_trajectory:
|
|
2851
|
+
joint_trajectory: JointTrajectory | None = None
|
|
2813
2852
|
"""
|
|
2814
2853
|
The joint trajectory from the start joint position to the error.
|
|
2815
2854
|
|
|
@@ -2817,14 +2856,14 @@ class PlanTrajectoryFailedResponse(BaseModel):
|
|
|
2817
2856
|
|
|
2818
2857
|
|
|
2819
2858
|
class PlanTrajectoryResponse(BaseModel):
|
|
2820
|
-
response:
|
|
2859
|
+
response: JointTrajectory | PlanTrajectoryFailedResponse
|
|
2821
2860
|
|
|
2822
2861
|
|
|
2823
2862
|
class ValidationError(BaseModel):
|
|
2824
|
-
loc: Annotated[
|
|
2863
|
+
loc: Annotated[list[str | int], Field(title='Location')]
|
|
2825
2864
|
msg: Annotated[str, Field(title='Message')]
|
|
2826
2865
|
type: Annotated[str, Field(title='Error Type')]
|
|
2827
|
-
input:
|
|
2866
|
+
input: dict[str, Any]
|
|
2828
2867
|
|
|
2829
2868
|
|
|
2830
2869
|
class ErrorInvalidJointCount(BaseModel):
|
|
@@ -2853,12 +2892,12 @@ class ErrorJointLimitExceeded(BaseModel):
|
|
|
2853
2892
|
|
|
2854
2893
|
"""
|
|
2855
2894
|
|
|
2856
|
-
joint_index: Annotated[
|
|
2895
|
+
joint_index: Annotated[int | None, Field(ge=0, le=2147483647)] = None
|
|
2857
2896
|
"""
|
|
2858
2897
|
Index of the joint exceeding its limits (0-based).
|
|
2859
2898
|
|
|
2860
2899
|
"""
|
|
2861
|
-
joint_position:
|
|
2900
|
+
joint_position: DoubleArray | None = None
|
|
2862
2901
|
"""
|
|
2863
2902
|
The joint position violating the limits.
|
|
2864
2903
|
|
|
@@ -2872,8 +2911,8 @@ class ErrorJointPositionCollision(BaseModel):
|
|
|
2872
2911
|
|
|
2873
2912
|
"""
|
|
2874
2913
|
|
|
2875
|
-
collisions:
|
|
2876
|
-
joint_position:
|
|
2914
|
+
collisions: list[Collision] | None = None
|
|
2915
|
+
joint_position: DoubleArray | None = None
|
|
2877
2916
|
"""
|
|
2878
2917
|
The joint position that collides.
|
|
2879
2918
|
|
|
@@ -2885,13 +2924,10 @@ class ErrorJointPositionCollision(BaseModel):
|
|
|
2885
2924
|
|
|
2886
2925
|
class PlanValidationError(ValidationError):
|
|
2887
2926
|
data: Annotated[
|
|
2888
|
-
|
|
2889
|
-
|
|
2890
|
-
|
|
2891
|
-
|
|
2892
|
-
ErrorJointPositionCollision,
|
|
2893
|
-
]
|
|
2894
|
-
],
|
|
2927
|
+
ErrorInvalidJointCount
|
|
2928
|
+
| ErrorJointLimitExceeded
|
|
2929
|
+
| ErrorJointPositionCollision
|
|
2930
|
+
| None,
|
|
2895
2931
|
Field(discriminator='error_feedback_name'),
|
|
2896
2932
|
] = None
|
|
2897
2933
|
"""
|
|
@@ -2901,7 +2937,7 @@ class PlanValidationError(ValidationError):
|
|
|
2901
2937
|
|
|
2902
2938
|
|
|
2903
2939
|
class Plan422Response(BaseModel):
|
|
2904
|
-
detail: Annotated[
|
|
2940
|
+
detail: Annotated[list[PlanValidationError] | None, Field(title='Detail')] = None
|
|
2905
2941
|
|
|
2906
2942
|
|
|
2907
2943
|
class RRTConnectAlgorithm(BaseModel):
|
|
@@ -2916,25 +2952,25 @@ class RRTConnectAlgorithm(BaseModel):
|
|
|
2916
2952
|
This is a custom implementation optimized for manipulator kinematics and collision checking in industrial contexts.
|
|
2917
2953
|
|
|
2918
2954
|
"""
|
|
2919
|
-
max_iterations: Annotated[
|
|
2955
|
+
max_iterations: Annotated[int | None, Field(ge=1)] = 10000
|
|
2920
2956
|
"""
|
|
2921
2957
|
Maximum number of iterations for the RRT Connect algorithm.
|
|
2922
2958
|
Higher values increase likelihood of success, but also computation time.
|
|
2923
2959
|
|
|
2924
2960
|
"""
|
|
2925
|
-
max_step_size:
|
|
2961
|
+
max_step_size: float | None = 1
|
|
2926
2962
|
"""
|
|
2927
2963
|
Maximum step size for tree extension in joint space.
|
|
2928
2964
|
"""
|
|
2929
|
-
adaptive_step_size:
|
|
2965
|
+
adaptive_step_size: bool | None = True
|
|
2930
2966
|
"""
|
|
2931
2967
|
Adjust the maximum step size during the search based on the recent success rate of tree expansion.
|
|
2932
2968
|
"""
|
|
2933
|
-
apply_smoothing:
|
|
2969
|
+
apply_smoothing: bool | None = True
|
|
2934
2970
|
"""
|
|
2935
2971
|
Apply smoothing after the search has succeeded. This will remove as many intermediate points as possible while keeping the path valid.
|
|
2936
2972
|
"""
|
|
2937
|
-
apply_blending:
|
|
2973
|
+
apply_blending: bool | None = True
|
|
2938
2974
|
"""
|
|
2939
2975
|
Apply blending after the search has succeeded and smoothing has been applied. This will apply the largest viable blending at each intermediate point.
|
|
2940
2976
|
"""
|
|
@@ -2949,7 +2985,7 @@ class MidpointInsertionAlgorithm(BaseModel):
|
|
|
2949
2985
|
This algorithm adds a single midpoint between the start and target joint position to find collision-free paths.
|
|
2950
2986
|
|
|
2951
2987
|
"""
|
|
2952
|
-
max_iterations: Annotated[
|
|
2988
|
+
max_iterations: Annotated[int | None, Field(ge=1)] = 1000
|
|
2953
2989
|
"""
|
|
2954
2990
|
Maximum number of iterations for the midpoint insertion algorithm.
|
|
2955
2991
|
Higher values increase likelyhood of success, but also computation time (linear).
|
|
@@ -2959,7 +2995,7 @@ class MidpointInsertionAlgorithm(BaseModel):
|
|
|
2959
2995
|
|
|
2960
2996
|
class CollisionFreeAlgorithm(RootModel):
|
|
2961
2997
|
root: Annotated[
|
|
2962
|
-
|
|
2998
|
+
RRTConnectAlgorithm | MidpointInsertionAlgorithm,
|
|
2963
2999
|
Field(discriminator='algorithm_name', title='CollisionFreeAlgorithm'),
|
|
2964
3000
|
]
|
|
2965
3001
|
"""
|
|
@@ -3003,7 +3039,7 @@ class ErrorMaxIterationsExceeded(BaseModel):
|
|
|
3003
3039
|
|
|
3004
3040
|
"""
|
|
3005
3041
|
|
|
3006
|
-
max_iterations:
|
|
3042
|
+
max_iterations: int | None = None
|
|
3007
3043
|
"""
|
|
3008
3044
|
The maximum number of iterations that was reached.
|
|
3009
3045
|
|
|
@@ -3030,7 +3066,7 @@ class PlanCollisionFreeResponse(BaseModel):
|
|
|
3030
3066
|
|
|
3031
3067
|
"""
|
|
3032
3068
|
|
|
3033
|
-
response:
|
|
3069
|
+
response: JointTrajectory | PlanCollisionFreeFailedResponse
|
|
3034
3070
|
|
|
3035
3071
|
|
|
3036
3072
|
class JointPositionLimits(RootModel):
|
|
@@ -3039,7 +3075,7 @@ class JointPositionLimits(RootModel):
|
|
|
3039
3075
|
|
|
3040
3076
|
"""
|
|
3041
3077
|
|
|
3042
|
-
root: Annotated[
|
|
3078
|
+
root: Annotated[list[LimitRange], Field(title='JointPositionLimits')]
|
|
3043
3079
|
"""
|
|
3044
3080
|
Joint position limits in [rad], indexed starting from base.
|
|
3045
3081
|
|
|
@@ -3072,27 +3108,27 @@ class JointPositionLimits(RootModel):
|
|
|
3072
3108
|
|
|
3073
3109
|
class InverseKinematicsRequest(BaseModel):
|
|
3074
3110
|
motion_group_model: MotionGroupModel
|
|
3075
|
-
tcp_poses:
|
|
3111
|
+
tcp_poses: list[Pose]
|
|
3076
3112
|
"""
|
|
3077
3113
|
List of TCP poses for which the inverse solutions are computed.
|
|
3078
3114
|
|
|
3079
3115
|
"""
|
|
3080
|
-
tcp_offset:
|
|
3081
|
-
mounting:
|
|
3116
|
+
tcp_offset: Pose | None = None
|
|
3117
|
+
mounting: Pose | None = None
|
|
3082
3118
|
"""
|
|
3083
3119
|
Offset from the world frame to the motion group base.
|
|
3084
3120
|
"""
|
|
3085
|
-
joint_position_limits:
|
|
3086
|
-
collision_setups:
|
|
3121
|
+
joint_position_limits: JointPositionLimits | None = None
|
|
3122
|
+
collision_setups: CollisionSetups | None = None
|
|
3087
3123
|
|
|
3088
3124
|
|
|
3089
3125
|
class InverseKinematicsResponse(BaseModel):
|
|
3090
|
-
joints:
|
|
3126
|
+
joints: list[list[DoubleArray]]
|
|
3091
3127
|
|
|
3092
3128
|
|
|
3093
3129
|
class InverseKinematicsValidationError(ValidationError):
|
|
3094
3130
|
data: Annotated[
|
|
3095
|
-
|
|
3131
|
+
ErrorInvalidJointCount | ErrorJointLimitExceeded | None,
|
|
3096
3132
|
Field(discriminator='error_feedback_name'),
|
|
3097
3133
|
] = None
|
|
3098
3134
|
"""
|
|
@@ -3103,26 +3139,26 @@ class InverseKinematicsValidationError(ValidationError):
|
|
|
3103
3139
|
|
|
3104
3140
|
class InverseKinematics422Response(BaseModel):
|
|
3105
3141
|
detail: Annotated[
|
|
3106
|
-
|
|
3142
|
+
list[InverseKinematicsValidationError] | None, Field(title='Detail')
|
|
3107
3143
|
] = None
|
|
3108
3144
|
|
|
3109
3145
|
|
|
3110
3146
|
class ForwardKinematicsRequest(BaseModel):
|
|
3111
3147
|
motion_group_model: MotionGroupModel
|
|
3112
|
-
joint_positions:
|
|
3148
|
+
joint_positions: list[DoubleArray]
|
|
3113
3149
|
"""
|
|
3114
3150
|
List of joint positions [rad] for which TCP poses are computed.
|
|
3115
3151
|
|
|
3116
3152
|
"""
|
|
3117
|
-
tcp_offset:
|
|
3118
|
-
mounting:
|
|
3153
|
+
tcp_offset: Pose | None = None
|
|
3154
|
+
mounting: Pose | None = None
|
|
3119
3155
|
"""
|
|
3120
3156
|
Offset from the world frame to the motion group base.
|
|
3121
3157
|
"""
|
|
3122
3158
|
|
|
3123
3159
|
|
|
3124
3160
|
class ForwardKinematicsResponse(BaseModel):
|
|
3125
|
-
tcp_poses:
|
|
3161
|
+
tcp_poses: list[Pose]
|
|
3126
3162
|
"""
|
|
3127
3163
|
List of computed TCP poses corresponding to the input joint positions.
|
|
3128
3164
|
|
|
@@ -3130,17 +3166,17 @@ class ForwardKinematicsResponse(BaseModel):
|
|
|
3130
3166
|
|
|
3131
3167
|
|
|
3132
3168
|
class ForwardKinematicsValidationError(ValidationError):
|
|
3133
|
-
data:
|
|
3169
|
+
data: ErrorInvalidJointCount | None = None
|
|
3134
3170
|
|
|
3135
3171
|
|
|
3136
3172
|
class ForwardKinematics422Response(BaseModel):
|
|
3137
3173
|
detail: Annotated[
|
|
3138
|
-
|
|
3174
|
+
list[ForwardKinematicsValidationError] | None, Field(title='Detail')
|
|
3139
3175
|
] = None
|
|
3140
3176
|
|
|
3141
3177
|
|
|
3142
3178
|
class ListTrajectoriesResponse(BaseModel):
|
|
3143
|
-
trajectories:
|
|
3179
|
+
trajectories: list[str] | None = None
|
|
3144
3180
|
"""
|
|
3145
3181
|
Identifiers of trajectories which are currently cached.
|
|
3146
3182
|
Use [addTrajectory](addTrajectory) to add a new trajectory. Adding trajectories is necessary to execute them.
|
|
@@ -3160,7 +3196,7 @@ class AddTrajectoryRequest(BaseModel):
|
|
|
3160
3196
|
an equal number of corresponding timestamps.
|
|
3161
3197
|
|
|
3162
3198
|
"""
|
|
3163
|
-
tcp:
|
|
3199
|
+
tcp: str | None = None
|
|
3164
3200
|
"""
|
|
3165
3201
|
Unique identifier of the tool the trajectory is planned for.
|
|
3166
3202
|
"""
|
|
@@ -3171,13 +3207,13 @@ class TcpRequiredError(BaseModel):
|
|
|
3171
3207
|
Requested motion group requires TCP to be defined.
|
|
3172
3208
|
"""
|
|
3173
3209
|
|
|
3174
|
-
tcp_missing:
|
|
3210
|
+
tcp_missing: dict[str, Any] | None = None
|
|
3175
3211
|
|
|
3176
3212
|
|
|
3177
3213
|
class InconsistentTrajectorySize(BaseModel):
|
|
3178
|
-
joint_position_size:
|
|
3179
|
-
times_size:
|
|
3180
|
-
locations_size:
|
|
3214
|
+
joint_position_size: int | None = None
|
|
3215
|
+
times_size: int | None = None
|
|
3216
|
+
locations_size: int | None = None
|
|
3181
3217
|
|
|
3182
3218
|
|
|
3183
3219
|
class InconsistentTrajectorySizeError(BaseModel):
|
|
@@ -3186,24 +3222,24 @@ class InconsistentTrajectorySizeError(BaseModel):
|
|
|
3186
3222
|
|
|
3187
3223
|
"""
|
|
3188
3224
|
|
|
3189
|
-
inconsistent_trajectory_size:
|
|
3225
|
+
inconsistent_trajectory_size: InconsistentTrajectorySize | None = None
|
|
3190
3226
|
|
|
3191
3227
|
|
|
3192
3228
|
class JointLimitExceededError(BaseModel):
|
|
3193
|
-
joint_limit_exceeded:
|
|
3229
|
+
joint_limit_exceeded: FeedbackJointLimitExceeded | None = None
|
|
3194
3230
|
|
|
3195
3231
|
|
|
3196
3232
|
class CollisionError(BaseModel):
|
|
3197
|
-
collision:
|
|
3233
|
+
collision: FeedbackCollision | None = None
|
|
3198
3234
|
|
|
3199
3235
|
|
|
3200
3236
|
class TorqueExceeded(BaseModel):
|
|
3201
|
-
torque_value:
|
|
3237
|
+
torque_value: float | None = None
|
|
3202
3238
|
"""
|
|
3203
3239
|
The torque value that was exceeded.
|
|
3204
3240
|
|
|
3205
3241
|
"""
|
|
3206
|
-
torque_limit:
|
|
3242
|
+
torque_limit: float | None = None
|
|
3207
3243
|
"""
|
|
3208
3244
|
The value of the torque limit that was exceeded.
|
|
3209
3245
|
|
|
@@ -3211,23 +3247,23 @@ class TorqueExceeded(BaseModel):
|
|
|
3211
3247
|
|
|
3212
3248
|
|
|
3213
3249
|
class TorqueExceededError(BaseModel):
|
|
3214
|
-
torque_exceeded:
|
|
3250
|
+
torque_exceeded: TorqueExceeded | None = None
|
|
3215
3251
|
|
|
3216
3252
|
|
|
3217
3253
|
class InvalidDof(BaseModel):
|
|
3218
|
-
valid_dof:
|
|
3254
|
+
valid_dof: int | None = None
|
|
3219
3255
|
"""
|
|
3220
3256
|
The valid degrees of freedom for the motion group.
|
|
3221
3257
|
|
|
3222
3258
|
"""
|
|
3223
|
-
joint_position:
|
|
3259
|
+
joint_position: list[float] | None = None
|
|
3224
3260
|
"""
|
|
3225
3261
|
The joint position that is out of its limits.
|
|
3226
3262
|
"""
|
|
3227
3263
|
|
|
3228
3264
|
|
|
3229
3265
|
class InvalidDofError(BaseModel):
|
|
3230
|
-
invalid_dof:
|
|
3266
|
+
invalid_dof: InvalidDof | None = None
|
|
3231
3267
|
|
|
3232
3268
|
|
|
3233
3269
|
class NanValue(BaseModel):
|
|
@@ -3235,33 +3271,32 @@ class NanValue(BaseModel):
|
|
|
3235
3271
|
Requested joint position contains NaN values.
|
|
3236
3272
|
"""
|
|
3237
3273
|
|
|
3238
|
-
joint_position:
|
|
3274
|
+
joint_position: list[float] | None = None
|
|
3239
3275
|
"""
|
|
3240
3276
|
The joint position that is out of its limits.
|
|
3241
3277
|
"""
|
|
3242
3278
|
|
|
3243
3279
|
|
|
3244
3280
|
class NanValueError(BaseModel):
|
|
3245
|
-
nan_value:
|
|
3281
|
+
nan_value: NanValue | None = None
|
|
3246
3282
|
"""
|
|
3247
3283
|
Requested joint position contains NaN values.
|
|
3248
3284
|
"""
|
|
3249
3285
|
|
|
3250
3286
|
|
|
3251
3287
|
class AddTrajectoryError(BaseModel):
|
|
3252
|
-
message:
|
|
3253
|
-
location:
|
|
3254
|
-
data:
|
|
3255
|
-
|
|
3256
|
-
|
|
3257
|
-
|
|
3258
|
-
|
|
3259
|
-
|
|
3260
|
-
|
|
3261
|
-
|
|
3262
|
-
|
|
3263
|
-
|
|
3264
|
-
] = None
|
|
3288
|
+
message: str | None = None
|
|
3289
|
+
location: Location | None = None
|
|
3290
|
+
data: (
|
|
3291
|
+
TcpRequiredError
|
|
3292
|
+
| InconsistentTrajectorySizeError
|
|
3293
|
+
| JointLimitExceededError
|
|
3294
|
+
| CollisionError
|
|
3295
|
+
| TorqueExceededError
|
|
3296
|
+
| InvalidDofError
|
|
3297
|
+
| NanValueError
|
|
3298
|
+
| None
|
|
3299
|
+
) = None
|
|
3265
3300
|
|
|
3266
3301
|
|
|
3267
3302
|
class AddTrajectoryResponse(BaseModel):
|
|
@@ -3276,12 +3311,12 @@ class AddTrajectoryResponse(BaseModel):
|
|
|
3276
3311
|
|
|
3277
3312
|
"""
|
|
3278
3313
|
|
|
3279
|
-
trajectory:
|
|
3314
|
+
trajectory: str | None = None
|
|
3280
3315
|
"""
|
|
3281
3316
|
The unique identifier of the trajectory. Use this identifier to execute the trajectory with the [executeTrajectory](executeTrajectory) endpoint.
|
|
3282
3317
|
|
|
3283
3318
|
"""
|
|
3284
|
-
error:
|
|
3319
|
+
error: AddTrajectoryError | None = None
|
|
3285
3320
|
"""
|
|
3286
3321
|
Always check this field first. If this field is present, the trajectory has an error and is only partially or not executable.
|
|
3287
3322
|
|
|
@@ -3324,7 +3359,7 @@ class TrajectoryData(BaseModel):
|
|
|
3324
3359
|
Type specifier for server, set automatically.
|
|
3325
3360
|
|
|
3326
3361
|
"""
|
|
3327
|
-
motion_group:
|
|
3362
|
+
motion_group: str | None = None
|
|
3328
3363
|
"""
|
|
3329
3364
|
Identifier of the motion-group.
|
|
3330
3365
|
"""
|
|
@@ -3334,7 +3369,7 @@ class TrajectoryData(BaseModel):
|
|
|
3334
3369
|
an equal number of corresponding timestamps.
|
|
3335
3370
|
|
|
3336
3371
|
"""
|
|
3337
|
-
tcp:
|
|
3372
|
+
tcp: str | None = None
|
|
3338
3373
|
"""
|
|
3339
3374
|
Unique identifier of the tool the trajectory is planned for.
|
|
3340
3375
|
"""
|
|
@@ -3354,14 +3389,14 @@ class InitializeMovementRequest(BaseModel):
|
|
|
3354
3389
|
|
|
3355
3390
|
"""
|
|
3356
3391
|
trajectory: Annotated[
|
|
3357
|
-
|
|
3392
|
+
TrajectoryId | TrajectoryData, Field(discriminator='message_type')
|
|
3358
3393
|
]
|
|
3359
3394
|
"""
|
|
3360
3395
|
The trajectory which should be executed and locked to the connection.
|
|
3361
3396
|
|
|
3362
3397
|
"""
|
|
3363
|
-
initial_location:
|
|
3364
|
-
response_coordinate_system:
|
|
3398
|
+
initial_location: Location | None = None
|
|
3399
|
+
response_coordinate_system: str | None = None
|
|
3365
3400
|
"""
|
|
3366
3401
|
Unique identifier addressing a coordinate system to which the responses are transformed.
|
|
3367
3402
|
If not set, world coordinate system is used.
|
|
@@ -3449,26 +3484,26 @@ class StartMovementRequest(BaseModel):
|
|
|
3449
3484
|
Type specifier for server, set automatically.
|
|
3450
3485
|
|
|
3451
3486
|
"""
|
|
3452
|
-
direction:
|
|
3453
|
-
target_location:
|
|
3487
|
+
direction: Direction | None = 'DIRECTION_FORWARD'
|
|
3488
|
+
target_location: Location | None = None
|
|
3454
3489
|
"""
|
|
3455
3490
|
The target location to which the motion group moves along the trajectory to.
|
|
3456
3491
|
If `direction` and `target_location` are both specified, target location takes precedence.
|
|
3457
3492
|
If neither is specified, the default is `DIRECTION_FORWARD`.
|
|
3458
3493
|
|
|
3459
3494
|
"""
|
|
3460
|
-
set_outputs:
|
|
3495
|
+
set_outputs: list[SetIO] | None = None
|
|
3461
3496
|
"""
|
|
3462
3497
|
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
3498
|
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
3499
|
|
|
3465
3500
|
"""
|
|
3466
|
-
start_on_io:
|
|
3501
|
+
start_on_io: StartOnIO | None = None
|
|
3467
3502
|
"""
|
|
3468
3503
|
Defines an input/output that is listened to before the movement. Execution starts if the defined comparator evaluates to `true`.
|
|
3469
3504
|
|
|
3470
3505
|
"""
|
|
3471
|
-
pause_on_io:
|
|
3506
|
+
pause_on_io: PauseOnIO | None = None
|
|
3472
3507
|
"""
|
|
3473
3508
|
Defines an input/output that is listened to during the movement. Execution pauses if the defined comparator evaluates to `true`.
|
|
3474
3509
|
|
|
@@ -3512,12 +3547,10 @@ class PlaybackSpeedRequest(BaseModel):
|
|
|
3512
3547
|
|
|
3513
3548
|
class ExecuteTrajectoryRequest(RootModel):
|
|
3514
3549
|
root: Annotated[
|
|
3515
|
-
|
|
3516
|
-
|
|
3517
|
-
|
|
3518
|
-
|
|
3519
|
-
PlaybackSpeedRequest,
|
|
3520
|
-
],
|
|
3550
|
+
InitializeMovementRequest
|
|
3551
|
+
| StartMovementRequest
|
|
3552
|
+
| PauseMovementRequest
|
|
3553
|
+
| PlaybackSpeedRequest,
|
|
3521
3554
|
Field(discriminator='message_type', title='ExecuteTrajectoryRequest'),
|
|
3522
3555
|
]
|
|
3523
3556
|
|
|
@@ -3528,11 +3561,11 @@ class InitializeMovementResponse(BaseModel):
|
|
|
3528
3561
|
|
|
3529
3562
|
"""
|
|
3530
3563
|
|
|
3531
|
-
message:
|
|
3564
|
+
message: str | None = None
|
|
3532
3565
|
"""
|
|
3533
3566
|
Error message in case of invalid InitializeMovementRequest.
|
|
3534
3567
|
"""
|
|
3535
|
-
add_trajectory_error:
|
|
3568
|
+
add_trajectory_error: AddTrajectoryError | None = None
|
|
3536
3569
|
"""
|
|
3537
3570
|
Error can occur if joint trajectory was added by [InitializeMovementRequest](InitializeMovementRequest) and the trajectory is invalid.
|
|
3538
3571
|
|
|
@@ -3548,7 +3581,7 @@ class StartMovementResponse(BaseModel):
|
|
|
3548
3581
|
|
|
3549
3582
|
"""
|
|
3550
3583
|
|
|
3551
|
-
message:
|
|
3584
|
+
message: str | None = None
|
|
3552
3585
|
"""
|
|
3553
3586
|
Error message in case of invalid StartMovementResquest.
|
|
3554
3587
|
"""
|
|
@@ -3563,7 +3596,7 @@ class PauseMovementResponse(BaseModel):
|
|
|
3563
3596
|
|
|
3564
3597
|
"""
|
|
3565
3598
|
|
|
3566
|
-
message:
|
|
3599
|
+
message: str | None = None
|
|
3567
3600
|
"""
|
|
3568
3601
|
Error message in case of invalid PauseMovementResquest.
|
|
3569
3602
|
"""
|
|
@@ -3576,7 +3609,7 @@ class PlaybackSpeedResponse(BaseModel):
|
|
|
3576
3609
|
|
|
3577
3610
|
"""
|
|
3578
3611
|
|
|
3579
|
-
message:
|
|
3612
|
+
message: str | None = None
|
|
3580
3613
|
"""
|
|
3581
3614
|
Error message in case of invalid PlaybackSpeedRequest.
|
|
3582
3615
|
"""
|
|
@@ -3598,13 +3631,11 @@ class MovementErrorResponse(BaseModel):
|
|
|
3598
3631
|
|
|
3599
3632
|
class ExecuteTrajectoryResponse(RootModel):
|
|
3600
3633
|
root: Annotated[
|
|
3601
|
-
|
|
3602
|
-
|
|
3603
|
-
|
|
3604
|
-
|
|
3605
|
-
|
|
3606
|
-
MovementErrorResponse,
|
|
3607
|
-
],
|
|
3634
|
+
InitializeMovementResponse
|
|
3635
|
+
| StartMovementResponse
|
|
3636
|
+
| PauseMovementResponse
|
|
3637
|
+
| PlaybackSpeedResponse
|
|
3638
|
+
| MovementErrorResponse,
|
|
3608
3639
|
Field(discriminator='kind', title='ExecuteTrajectoryResponse'),
|
|
3609
3640
|
]
|
|
3610
3641
|
|
|
@@ -3623,12 +3654,12 @@ class InitializeJoggingRequest(BaseModel):
|
|
|
3623
3654
|
"""
|
|
3624
3655
|
Identifier of the motion group.
|
|
3625
3656
|
"""
|
|
3626
|
-
tcp:
|
|
3657
|
+
tcp: str | None = None
|
|
3627
3658
|
"""
|
|
3628
3659
|
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
3660
|
|
|
3630
3661
|
"""
|
|
3631
|
-
response_coordinate_system:
|
|
3662
|
+
response_coordinate_system: str | None = None
|
|
3632
3663
|
"""
|
|
3633
3664
|
Unique identifier addressing a coordinate system to which the responses are transformed.
|
|
3634
3665
|
If not set, world coordinate system is used.
|
|
@@ -3666,7 +3697,7 @@ class TcpVelocityRequest(BaseModel):
|
|
|
3666
3697
|
"""
|
|
3667
3698
|
translation: Vector3d
|
|
3668
3699
|
rotation: Vector3d
|
|
3669
|
-
use_tool_coordinate_system:
|
|
3700
|
+
use_tool_coordinate_system: bool | None = False
|
|
3670
3701
|
"""
|
|
3671
3702
|
If true, TCP velocities are interpreted in the tool coordinate system, specified by the TCP.
|
|
3672
3703
|
If false, TCP velocities are interpreted in the world coordinate system.
|
|
@@ -3689,12 +3720,10 @@ class PauseJoggingRequest(BaseModel):
|
|
|
3689
3720
|
|
|
3690
3721
|
class ExecuteJoggingRequest(RootModel):
|
|
3691
3722
|
root: Annotated[
|
|
3692
|
-
|
|
3693
|
-
|
|
3694
|
-
|
|
3695
|
-
|
|
3696
|
-
PauseJoggingRequest,
|
|
3697
|
-
],
|
|
3723
|
+
InitializeJoggingRequest
|
|
3724
|
+
| JointVelocityRequest
|
|
3725
|
+
| TcpVelocityRequest
|
|
3726
|
+
| PauseJoggingRequest,
|
|
3698
3727
|
Field(discriminator='message_type', title='ExecuteJoggingRequest'),
|
|
3699
3728
|
]
|
|
3700
3729
|
|
|
@@ -3705,7 +3734,7 @@ class InitializeJoggingResponse(BaseModel):
|
|
|
3705
3734
|
|
|
3706
3735
|
"""
|
|
3707
3736
|
|
|
3708
|
-
message:
|
|
3737
|
+
message: str | None = None
|
|
3709
3738
|
"""
|
|
3710
3739
|
Error message in case of invalid InitializeJoggingRequest.
|
|
3711
3740
|
"""
|
|
@@ -3718,7 +3747,7 @@ class PauseJoggingResponse(BaseModel):
|
|
|
3718
3747
|
|
|
3719
3748
|
"""
|
|
3720
3749
|
|
|
3721
|
-
message:
|
|
3750
|
+
message: str | None = None
|
|
3722
3751
|
"""
|
|
3723
3752
|
Error message in case of invalid PauseJoggingRequest.
|
|
3724
3753
|
"""
|
|
@@ -3731,7 +3760,7 @@ class TcpVelocityResponse(BaseModel):
|
|
|
3731
3760
|
|
|
3732
3761
|
"""
|
|
3733
3762
|
|
|
3734
|
-
message:
|
|
3763
|
+
message: str | None = None
|
|
3735
3764
|
"""
|
|
3736
3765
|
Error message in case of invalid TcpVelocityRequest.
|
|
3737
3766
|
"""
|
|
@@ -3744,7 +3773,7 @@ class JointVelocityResponse(BaseModel):
|
|
|
3744
3773
|
|
|
3745
3774
|
"""
|
|
3746
3775
|
|
|
3747
|
-
message:
|
|
3776
|
+
message: str | None = None
|
|
3748
3777
|
"""
|
|
3749
3778
|
Error message in case of invalid JointVelocityRequest.
|
|
3750
3779
|
"""
|
|
@@ -3753,13 +3782,11 @@ class JointVelocityResponse(BaseModel):
|
|
|
3753
3782
|
|
|
3754
3783
|
class ExecuteJoggingResponse(RootModel):
|
|
3755
3784
|
root: Annotated[
|
|
3756
|
-
|
|
3757
|
-
|
|
3758
|
-
|
|
3759
|
-
|
|
3760
|
-
|
|
3761
|
-
MovementErrorResponse,
|
|
3762
|
-
],
|
|
3785
|
+
InitializeJoggingResponse
|
|
3786
|
+
| PauseJoggingResponse
|
|
3787
|
+
| TcpVelocityResponse
|
|
3788
|
+
| JointVelocityResponse
|
|
3789
|
+
| MovementErrorResponse,
|
|
3763
3790
|
Field(discriminator='kind', title='ExecuteJoggingResponse'),
|
|
3764
3791
|
]
|
|
3765
3792
|
|
|
@@ -3779,14 +3806,14 @@ class Program(BaseModel):
|
|
|
3779
3806
|
title='Unique program identifier',
|
|
3780
3807
|
),
|
|
3781
3808
|
]
|
|
3782
|
-
name: Annotated[
|
|
3783
|
-
description: Annotated[
|
|
3809
|
+
name: Annotated[str | None, Field(title='Program name')] = None
|
|
3810
|
+
description: Annotated[str | None, Field(title='Program description')] = None
|
|
3784
3811
|
app: Annotated[str, Field(title='The app containing the program.')]
|
|
3785
3812
|
input_schema: Annotated[
|
|
3786
|
-
|
|
3813
|
+
dict[str, Any] | None, Field(title='Program input json schema')
|
|
3787
3814
|
] = None
|
|
3788
3815
|
preconditions: Annotated[
|
|
3789
|
-
|
|
3816
|
+
dict[str, Any] | None,
|
|
3790
3817
|
Field(title='Preconditions before the program can be started'),
|
|
3791
3818
|
] = None
|
|
3792
3819
|
|
|
@@ -3796,7 +3823,7 @@ class ProgramStartRequest(BaseModel):
|
|
|
3796
3823
|
The state of a program run.
|
|
3797
3824
|
"""
|
|
3798
3825
|
|
|
3799
|
-
arguments:
|
|
3826
|
+
arguments: dict[str, Any]
|
|
3800
3827
|
"""
|
|
3801
3828
|
The arguments to pass to the program.
|
|
3802
3829
|
"""
|
|
@@ -3827,7 +3854,7 @@ class ProgramRun(BaseModel):
|
|
|
3827
3854
|
"""
|
|
3828
3855
|
Unique identifier of the program
|
|
3829
3856
|
"""
|
|
3830
|
-
app: Annotated[
|
|
3857
|
+
app: Annotated[str | None, Field(title='App Id')] = None
|
|
3831
3858
|
"""
|
|
3832
3859
|
Identifier of the app that produced the program run
|
|
3833
3860
|
"""
|
|
@@ -3835,35 +3862,35 @@ class ProgramRun(BaseModel):
|
|
|
3835
3862
|
"""
|
|
3836
3863
|
State of the program run
|
|
3837
3864
|
"""
|
|
3838
|
-
logs: Annotated[
|
|
3865
|
+
logs: Annotated[str | None, Field(title='Logs')] = None
|
|
3839
3866
|
"""
|
|
3840
3867
|
Logs of the program run
|
|
3841
3868
|
"""
|
|
3842
|
-
stdout: Annotated[
|
|
3869
|
+
stdout: Annotated[str | None, Field(title='Stdout')] = None
|
|
3843
3870
|
"""
|
|
3844
3871
|
Stdout of the program run
|
|
3845
3872
|
"""
|
|
3846
|
-
stderr: Annotated[
|
|
3873
|
+
stderr: Annotated[str | None, Field(title='Stderr')] = None
|
|
3847
3874
|
"""
|
|
3848
3875
|
Stderr of the program run
|
|
3849
3876
|
"""
|
|
3850
|
-
error: Annotated[
|
|
3877
|
+
error: Annotated[str | None, Field(title='Error')] = None
|
|
3851
3878
|
"""
|
|
3852
3879
|
Error message of the program run, if any
|
|
3853
3880
|
"""
|
|
3854
|
-
traceback: Annotated[
|
|
3881
|
+
traceback: Annotated[str | None, Field(title='Traceback')] = None
|
|
3855
3882
|
"""
|
|
3856
3883
|
Traceback of the program run, if any
|
|
3857
3884
|
"""
|
|
3858
|
-
start_time: Annotated[
|
|
3885
|
+
start_time: Annotated[AwareDatetime | None, Field(title='Start Time')] = None
|
|
3859
3886
|
"""
|
|
3860
3887
|
Start time of the program run in RFC3339 format
|
|
3861
3888
|
"""
|
|
3862
|
-
end_time: Annotated[
|
|
3889
|
+
end_time: Annotated[AwareDatetime | None, Field(title='End Time')] = None
|
|
3863
3890
|
"""
|
|
3864
3891
|
End time of the program run in RFC3339 format
|
|
3865
3892
|
"""
|
|
3866
|
-
input_data: Annotated[
|
|
3893
|
+
input_data: Annotated[dict[str, Any] | None, Field(title='Input Data')] = None
|
|
3867
3894
|
"""
|
|
3868
3895
|
Input data of the program run
|
|
3869
3896
|
"""
|
|
@@ -3874,13 +3901,13 @@ class ValidationError2(BaseModel):
|
|
|
3874
3901
|
A validation error of a program.
|
|
3875
3902
|
"""
|
|
3876
3903
|
|
|
3877
|
-
loc: Annotated[
|
|
3904
|
+
loc: Annotated[list[int], Field(title='Location')]
|
|
3878
3905
|
msg: Annotated[str, Field(title='Message')]
|
|
3879
3906
|
type: Annotated[str, Field(title='Error Type')]
|
|
3880
3907
|
|
|
3881
3908
|
|
|
3882
3909
|
class HTTPValidationError(BaseModel):
|
|
3883
|
-
detail: Annotated[
|
|
3910
|
+
detail: Annotated[list[ValidationError2] | None, Field(title='Detail')] = None
|
|
3884
3911
|
|
|
3885
3912
|
|
|
3886
3913
|
class MotionGroupInfo(BaseModel):
|
|
@@ -3902,7 +3929,7 @@ class MotionGroupInfo(BaseModel):
|
|
|
3902
3929
|
|
|
3903
3930
|
|
|
3904
3931
|
class MotionGroupInfos(RootModel):
|
|
3905
|
-
root:
|
|
3932
|
+
root: list[MotionGroupInfo]
|
|
3906
3933
|
|
|
3907
3934
|
def __getitem__(self, index: int) -> MotionGroupInfo:
|
|
3908
3935
|
"""
|
|
@@ -3935,22 +3962,22 @@ class MotionGroupJoints(BaseModel):
|
|
|
3935
3962
|
Everything but positions is optional.
|
|
3936
3963
|
"""
|
|
3937
3964
|
|
|
3938
|
-
positions:
|
|
3965
|
+
positions: list[float]
|
|
3939
3966
|
"""
|
|
3940
3967
|
The joint positions of the motion group.
|
|
3941
3968
|
|
|
3942
3969
|
"""
|
|
3943
|
-
velocities:
|
|
3970
|
+
velocities: list[float] | None = None
|
|
3944
3971
|
"""
|
|
3945
3972
|
The joint velocities of the motion group.
|
|
3946
3973
|
|
|
3947
3974
|
"""
|
|
3948
|
-
accelerations:
|
|
3975
|
+
accelerations: list[float] | None = None
|
|
3949
3976
|
"""
|
|
3950
3977
|
The joint accelerations of the motion group.
|
|
3951
3978
|
|
|
3952
3979
|
"""
|
|
3953
|
-
torques:
|
|
3980
|
+
torques: list[float] | None = None
|
|
3954
3981
|
"""
|
|
3955
3982
|
The joint torques of the motion group.
|
|
3956
3983
|
|
|
@@ -3958,13 +3985,13 @@ class MotionGroupJoints(BaseModel):
|
|
|
3958
3985
|
|
|
3959
3986
|
|
|
3960
3987
|
class RobotTcpData(BaseModel):
|
|
3961
|
-
name:
|
|
3988
|
+
name: str | None = None
|
|
3962
3989
|
"""
|
|
3963
3990
|
A readable and changeable name for frontend visualization.
|
|
3964
3991
|
"""
|
|
3965
3992
|
position: Vector3d
|
|
3966
|
-
orientation:
|
|
3967
|
-
orientation_type:
|
|
3993
|
+
orientation: Orientation | None = None
|
|
3994
|
+
orientation_type: OrientationType | None = 'ROTATION_VECTOR'
|
|
3968
3995
|
|
|
3969
3996
|
|
|
3970
3997
|
class RobotTcp(RobotTcpData):
|
|
@@ -3976,7 +4003,7 @@ class RobotTcp(RobotTcpData):
|
|
|
3976
4003
|
|
|
3977
4004
|
class RobotTcps(RootModel):
|
|
3978
4005
|
root: Annotated[
|
|
3979
|
-
|
|
4006
|
+
list[RobotTcp],
|
|
3980
4007
|
Field(
|
|
3981
4008
|
examples=[
|
|
3982
4009
|
[
|
|
@@ -4082,7 +4109,7 @@ class ExternalJointStreamDatapoint(BaseModel):
|
|
|
4082
4109
|
|
|
4083
4110
|
|
|
4084
4111
|
class ExternalJointStreamDatapoints(RootModel):
|
|
4085
|
-
root:
|
|
4112
|
+
root: list[ExternalJointStreamDatapoint]
|
|
4086
4113
|
|
|
4087
4114
|
def __getitem__(self, index: int) -> ExternalJointStreamDatapoint:
|
|
4088
4115
|
"""
|
|
@@ -4128,7 +4155,7 @@ class MetadataObject(RootModel):
|
|
|
4128
4155
|
A metadata object.
|
|
4129
4156
|
"""
|
|
4130
4157
|
|
|
4131
|
-
root:
|
|
4158
|
+
root: dict[str, str]
|
|
4132
4159
|
|
|
4133
4160
|
|
|
4134
4161
|
class BinaryObject(RootModel):
|
|
@@ -4151,13 +4178,13 @@ class BusIODescription(BaseModel):
|
|
|
4151
4178
|
"""
|
|
4152
4179
|
direction: IODirection
|
|
4153
4180
|
value_type: IOValueType
|
|
4154
|
-
unit:
|
|
4155
|
-
min:
|
|
4156
|
-
max:
|
|
4181
|
+
unit: UnitType | None = None
|
|
4182
|
+
min: IOBoundary | None = None
|
|
4183
|
+
max: IOBoundary | None = None
|
|
4157
4184
|
|
|
4158
4185
|
|
|
4159
4186
|
class ListBusIODescriptionsResponse(RootModel):
|
|
4160
|
-
root:
|
|
4187
|
+
root: list[BusIODescription]
|
|
4161
4188
|
|
|
4162
4189
|
def __getitem__(self, index: int) -> BusIODescription:
|
|
4163
4190
|
"""
|
|
@@ -4198,7 +4225,7 @@ class BusIOsStateEnum(Enum):
|
|
|
4198
4225
|
|
|
4199
4226
|
class BusIOsState(BaseModel):
|
|
4200
4227
|
state: BusIOsStateEnum
|
|
4201
|
-
message:
|
|
4228
|
+
message: str | None = None
|
|
4202
4229
|
"""
|
|
4203
4230
|
A message providing additional information on the input/output service, e.g., BUS service status, encountered errors.
|
|
4204
4231
|
May be empty if no additional information is available.
|
|
@@ -4246,7 +4273,7 @@ class ProfinetSlotDescription(BaseModel):
|
|
|
4246
4273
|
The API identifies the application relation (AR) that is using the slot.
|
|
4247
4274
|
|
|
4248
4275
|
"""
|
|
4249
|
-
subslots:
|
|
4276
|
+
subslots: list[ProfinetSubSlotDescription]
|
|
4250
4277
|
"""
|
|
4251
4278
|
An array of PROFINET subslots.
|
|
4252
4279
|
|
|
@@ -4264,14 +4291,14 @@ class ProfinetDescription(BaseModel):
|
|
|
4264
4291
|
The device identifier of the PROFINET device, identifying the specific device within the vendor's range.
|
|
4265
4292
|
|
|
4266
4293
|
"""
|
|
4267
|
-
slots:
|
|
4268
|
-
device_name: Annotated[
|
|
4294
|
+
slots: list[ProfinetSlotDescription] | None = None
|
|
4295
|
+
device_name: Annotated[str | None, Field(examples=['pnDevice'])] = None
|
|
4269
4296
|
"""
|
|
4270
4297
|
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
4298
|
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
4299
|
|
|
4273
4300
|
"""
|
|
4274
|
-
ip_config:
|
|
4301
|
+
ip_config: BusIOProfinetIpConfig | None = None
|
|
4275
4302
|
|
|
4276
4303
|
|
|
4277
4304
|
class ProfinetIOTypeEnum(Enum):
|
|
@@ -4320,7 +4347,7 @@ class ProfinetIOData(BaseModel):
|
|
|
4320
4347
|
The byte address is used to locate the specific input/output variable within the device's memory or data structure.
|
|
4321
4348
|
|
|
4322
4349
|
"""
|
|
4323
|
-
bit_address: Annotated[
|
|
4350
|
+
bit_address: Annotated[int | None, Field(ge=0, le=7)] = None
|
|
4324
4351
|
"""
|
|
4325
4352
|
The bit address of the input/output variable within the byte or word address.
|
|
4326
4353
|
The bit address is used to specify the exact bit within the byte or word that corresponds to the input/output variable.
|
|
@@ -4342,7 +4369,7 @@ class ProfinetIOs(RootModel):
|
|
|
4342
4369
|
Array of PROFINET input/output variable configurations.
|
|
4343
4370
|
"""
|
|
4344
4371
|
|
|
4345
|
-
root:
|
|
4372
|
+
root: list[ProfinetIO]
|
|
4346
4373
|
"""
|
|
4347
4374
|
Array of PROFINET input/output variable configurations.
|
|
4348
4375
|
"""
|
|
@@ -4473,7 +4500,7 @@ class ModbusIOs(RootModel):
|
|
|
4473
4500
|
Array of MODBUS input/output variable configurations.
|
|
4474
4501
|
"""
|
|
4475
4502
|
|
|
4476
|
-
root:
|
|
4503
|
+
root: list[ModbusIO]
|
|
4477
4504
|
"""
|
|
4478
4505
|
Array of MODBUS input/output variable configurations.
|
|
4479
4506
|
"""
|
|
@@ -4520,7 +4547,7 @@ class ConfigurationResource(BaseModel):
|
|
|
4520
4547
|
"""
|
|
4521
4548
|
Human-readable name of the configuration resource.
|
|
4522
4549
|
"""
|
|
4523
|
-
children:
|
|
4550
|
+
children: ConfigurationResourceArray | None = None
|
|
4524
4551
|
|
|
4525
4552
|
|
|
4526
4553
|
class ConfigurationResourceArray(RootModel):
|
|
@@ -4528,7 +4555,7 @@ class ConfigurationResourceArray(RootModel):
|
|
|
4528
4555
|
Array of configuration resources.
|
|
4529
4556
|
"""
|
|
4530
4557
|
|
|
4531
|
-
root:
|
|
4558
|
+
root: list[ConfigurationResource]
|
|
4532
4559
|
"""
|
|
4533
4560
|
Array of configuration resources.
|
|
4534
4561
|
"""
|