@wandelbots/nova-api 25.7.0-dev.9 → 25.7.0-rc.2

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.
package/v2/api.ts CHANGED
@@ -210,6 +210,12 @@ export interface App {
210
210
  * @memberof App
211
211
  */
212
212
  'storage'?: ContainerStorage;
213
+ /**
214
+ *
215
+ * @type {ContainerResources}
216
+ * @memberof App
217
+ */
218
+ 'resources'?: ContainerResources;
213
219
  /**
214
220
  * Defines the URL path suffix used to check the application\'s health status. The complete health check URL is constructed as `/$cell/$name/$health_path`. When the application is working as expected, the endpoint returns an HTTP 200 status code. If not specified, the system will default to using the application icon path suffix (the value of `app_icon`) as the health check endpoint, resulting in `/$cell/$name/$app_icon`. If the health check fails (no response or non-200 status code), the system will automatically restart the application container to restore service.
215
221
  * @type {string}
@@ -514,13 +520,13 @@ export interface Collision {
514
520
  * @type {string}
515
521
  * @memberof Collision
516
522
  */
517
- 'id_of_world'?: string;
523
+ 'id_of_layer'?: string;
518
524
  /**
519
525
  * A three-dimensional vector [x, y, z] with double precision.
520
526
  * @type {Array<number>}
521
527
  * @memberof Collision
522
528
  */
523
- 'normal_world_on_b'?: Array<number>;
529
+ 'normal_root_on_b'?: Array<number>;
524
530
  /**
525
531
  *
526
532
  * @type {CollisionContact}
@@ -551,7 +557,7 @@ export interface CollisionContact {
551
557
  * @type {Array<number>}
552
558
  * @memberof CollisionContact
553
559
  */
554
- 'world'?: Array<number>;
560
+ 'root'?: Array<number>;
555
561
  }
556
562
  /**
557
563
  *
@@ -567,110 +573,42 @@ export interface CollisionError {
567
573
  'collision'?: FeedbackCollision;
568
574
  }
569
575
  /**
570
- *
576
+ * @type CollisionFreeAlgorithm
577
+ * Configuration for collision-free path planning algorithms. Different algorithms may have different parameters and behavior.
571
578
  * @export
572
- * @interface CollisionMotionGroup
573
579
  */
574
- export interface CollisionMotionGroup {
575
- /**
576
- * A link chain is a kinematic chain of links that is connected via joints. A motion group can be used to control the motion of the joints in a link chain. A link is a group of colliders that is attached to the link reference frame. The reference frame of a link is obtained after applying all sets of Denavit-Hartenberg-parameters from base to (including) the link index. This means that the reference frame of the link is on the rotation axis of the next joint in the kinematic chain. Example: For a motion group with 2 joints, the collider reference frame (CRF) for link 1 is on the rotation axis of joint 2. The chain looks like: - Origin >> Mounting >> Base >> (CRF Base) Joint 0 >> Link 0 >> (CRF Link 0) Joint 1 >> Link 1 >> (CRF Link 1) Flange (CRF Tool) >> TCP Adjacent links in the kinematic chain of the motion group are not checked for mutual collision.
577
- * @type {Array<{ [key: string]: Collider; }>}
578
- * @memberof CollisionMotionGroup
579
- */
580
- 'link_chain'?: Array<{ [key: string]: Collider; }>;
581
- /**
582
- * Defines the shape of a tool. A tool is a dictionary of colliders. All colliders that make up a tool are attached to the flange frame of the motion group.
583
- * @type {{ [key: string]: Collider; }}
584
- * @memberof CollisionMotionGroup
585
- */
586
- 'tool'?: { [key: string]: Collider; };
587
- }
580
+ export type CollisionFreeAlgorithm = MidpointInsertionAlgorithm | RRTConnectAlgorithm;
581
+
588
582
  /**
589
583
  *
590
584
  * @export
591
- * @interface CollisionMotionGroupAssembly
585
+ * @interface CollisionSetup
592
586
  */
593
- export interface CollisionMotionGroupAssembly {
594
- /**
595
- * References a stored link chain.
596
- * @type {string}
597
- * @memberof CollisionMotionGroupAssembly
598
- */
599
- 'stored_link_chain'?: string;
587
+ export interface CollisionSetup {
600
588
  /**
601
- * References a stored tool.
602
- * @type {string}
603
- * @memberof CollisionMotionGroupAssembly
589
+ * A collection of identifiable colliders.
590
+ * @type {{ [key: string]: Collider; }}
591
+ * @memberof CollisionSetup
604
592
  */
605
- 'stored_tool'?: string;
593
+ 'colliders'?: { [key: string]: Collider; };
606
594
  /**
607
595
  * A link chain is a kinematic chain of links that is connected via joints. A motion group can be used to control the motion of the joints in a link chain. A link is a group of colliders that is attached to the link reference frame. The reference frame of a link is obtained after applying all sets of Denavit-Hartenberg-parameters from base to (including) the link index. This means that the reference frame of the link is on the rotation axis of the next joint in the kinematic chain. Example: For a motion group with 2 joints, the collider reference frame (CRF) for link 1 is on the rotation axis of joint 2. The chain looks like: - Origin >> Mounting >> Base >> (CRF Base) Joint 0 >> Link 0 >> (CRF Link 0) Joint 1 >> Link 1 >> (CRF Link 1) Flange (CRF Tool) >> TCP Adjacent links in the kinematic chain of the motion group are not checked for mutual collision.
608
596
  * @type {Array<{ [key: string]: Collider; }>}
609
- * @memberof CollisionMotionGroupAssembly
597
+ * @memberof CollisionSetup
610
598
  */
611
599
  'link_chain'?: Array<{ [key: string]: Collider; }>;
612
600
  /**
613
601
  * Defines the shape of a tool. A tool is a dictionary of colliders. All colliders that make up a tool are attached to the flange frame of the motion group.
614
602
  * @type {{ [key: string]: Collider; }}
615
- * @memberof CollisionMotionGroupAssembly
603
+ * @memberof CollisionSetup
616
604
  */
617
605
  'tool'?: { [key: string]: Collider; };
618
- }
619
- /**
620
- * Defines the collision scene. There are two types of objects in the scene: - `colliders`: Each collider is attached directly to the origin of the scene: Origin >> Collider - `motion-groups`: Each motion group is assigned a kinematic chain of links with a special collider, called tool, attached to the last element. The motion group is attached to the origin of the scene via its mounting: Origin >> Mounting >> Motion Group Base >> […]
621
- * @export
622
- * @interface CollisionScene
623
- */
624
- export interface CollisionScene {
625
- /**
626
- * A collection of identifiable colliders.
627
- * @type {{ [key: string]: Collider; }}
628
- * @memberof CollisionScene
629
- */
630
- 'colliders'?: { [key: string]: Collider; };
631
- /**
632
- * Maps a Wandelbots NOVA motion group to its configuration in the collision scene. Key must be a motion group identifier. Values are collision motion group objects. A collision motion group defines a motion group in the collision scene. The motion group is attached to the origin of the scene. To relocate the motion group, configure its mounting offset on the physical controller. This ensures that the definition of motion commands and collision scenes use the same coordinate system. The kinematic chain looks like this: - Origin >> Mounting >> Base >> Joint 0 >> Link 0 >> Joint 1 >> […] >> TCP A `tool` is treated like another link attached to the end (flange) of the kinematic chain. All tool colliders are described in the flange frame.
633
- * @type {{ [key: string]: CollisionMotionGroup; }}
634
- * @memberof CollisionScene
635
- */
636
- 'motion_groups'?: { [key: string]: CollisionMotionGroup; };
637
- }
638
- /**
639
- * Defines the collision scene assembly. Merges all referenced and new scene components into a single scene. Previously added components with identical identifiers are overwritten within the same group. There is one group for each of the following components: - Colliders attached to the origin of the scene, - Tool per motion group, and - For each link per motion group. The scene is assembled by adding components in the following order. 1. stored_scenes 2. scene 3. stored_colliders 4. colliders 5. stored_link_chains and stored_tools (per motion group) 6. link_chains and tools (per motion group)
640
- * @export
641
- * @interface CollisionSceneAssembly
642
- */
643
- export interface CollisionSceneAssembly {
644
- /**
645
- * Add stored scenes to the scene via their identifiers. The scenes are merged based on their order in the array. The scene at index zero serves as base. Following scenes overwrite components with identical identifiers, see [Collision Scene Assembly](Collision Scene Assembly).
646
- * @type {Array<string>}
647
- * @memberof CollisionSceneAssembly
648
- */
649
- 'stored_scenes'?: Array<string>;
650
- /**
651
- *
652
- * @type {CollisionScene}
653
- * @memberof CollisionSceneAssembly
654
- */
655
- 'scene'?: CollisionScene;
656
- /**
657
- * Add stored colliders to the scene via their identifiers. The colliders are added to the the origin of the scene.
658
- * @type {Array<string>}
659
- * @memberof CollisionSceneAssembly
660
- */
661
- 'stored_colliders'?: Array<string>;
662
606
  /**
663
- * A collection of identifiable colliders.
664
- * @type {{ [key: string]: Collider; }}
665
- * @memberof CollisionSceneAssembly
666
- */
667
- 'colliders'?: { [key: string]: Collider; };
668
- /**
669
- * Maps a Wandelbots NOVA motion group to its assembly configuration in the collision scene. Key must be a motion group identifier. A collision motion group defines a motion group in the collision scene. The motion group is attached to the origin of the scene. To relocate the motion group, configure its mounting offset on the physical controller. This ensures that the definition of motion commands and collision scenes use the same coordinate system. The kinematic chain looks like this: - Origin >> Mounting >> Base >> Joint 0 >> Link 0 >> Joint 1 >> […] >> TCP A `tool` is treated like another link attached to the end (flange) of the kinematic chain. All tool colliders are described in the flange frame.
670
- * @type {{ [key: string]: CollisionMotionGroupAssembly; }}
671
- * @memberof CollisionSceneAssembly
607
+ * If true, self-collision detection is enabled for the motion group. Self-collision detection checks if links in the kinematic chain of the motion group collide with each other. Adjacent links in the kinematic chain of the motion group are not checked for mutual collision. The tool is treated like a link at the end of the kinematic chain. It is checked against all links except the last one. Default is true.
608
+ * @type {boolean}
609
+ * @memberof CollisionSetup
672
610
  */
673
- 'motion_groups'?: { [key: string]: CollisionMotionGroupAssembly; };
611
+ 'self_collision_detection'?: boolean;
674
612
  }
675
613
  /**
676
614
  * Comparator for the comparison of two values. The comparator is used to compare two values and return a boolean result. The default comparator is unknown.
@@ -851,6 +789,25 @@ export interface ContainerImageSecretsInner {
851
789
  */
852
790
  'name': string;
853
791
  }
792
+ /**
793
+ * Additional resources that the application requires.
794
+ * @export
795
+ * @interface ContainerResources
796
+ */
797
+ export interface ContainerResources {
798
+ /**
799
+ * Number of GPUs the application requires.
800
+ * @type {number}
801
+ * @memberof ContainerResources
802
+ */
803
+ 'intel_gpu'?: number;
804
+ /**
805
+ * The maximum memory allocated to this application.
806
+ * @type {string}
807
+ * @memberof ContainerResources
808
+ */
809
+ 'memory_limit'?: string;
810
+ }
854
811
  /**
855
812
  * The path and capacity of a volume that retains data across application restarts. The maximal requestable capacity is 300Mi. If you need more capacity consider using [storeObject](storeObject).
856
813
  * @export
@@ -1127,24 +1084,126 @@ export type Direction = typeof Direction[keyof typeof Direction];
1127
1084
 
1128
1085
 
1129
1086
  /**
1130
- *
1087
+ * The provided joint data does not match the expected number of joints for this motion group.
1131
1088
  * @export
1132
- * @interface EndOfTrajectory
1089
+ * @interface ErrorInvalidJointCount
1133
1090
  */
1134
- export interface EndOfTrajectory {
1091
+ export interface ErrorInvalidJointCount {
1092
+ /**
1093
+ * The expected number of joints for this motion group.
1094
+ * @type {number}
1095
+ * @memberof ErrorInvalidJointCount
1096
+ */
1097
+ 'expected_joint_count': number;
1098
+ /**
1099
+ * The number of provided joints.
1100
+ * @type {number}
1101
+ * @memberof ErrorInvalidJointCount
1102
+ */
1103
+ 'provided_joint_count': number;
1135
1104
  /**
1136
1105
  *
1137
1106
  * @type {string}
1138
- * @memberof EndOfTrajectory
1107
+ * @memberof ErrorInvalidJointCount
1139
1108
  */
1140
- 'kind': EndOfTrajectoryKindEnum;
1109
+ 'error_feedback_name': ErrorInvalidJointCountErrorFeedbackNameEnum;
1141
1110
  }
1142
1111
 
1143
- export const EndOfTrajectoryKindEnum = {
1144
- EndOfTrajectory: 'END_OF_TRAJECTORY'
1112
+ export const ErrorInvalidJointCountErrorFeedbackNameEnum = {
1113
+ ErrorInvalidJointCount: 'ErrorInvalidJointCount'
1114
+ } as const;
1115
+
1116
+ export type ErrorInvalidJointCountErrorFeedbackNameEnum = typeof ErrorInvalidJointCountErrorFeedbackNameEnum[keyof typeof ErrorInvalidJointCountErrorFeedbackNameEnum];
1117
+
1118
+ /**
1119
+ * A reference joint position (start or target) exceeds the configured joint limits.
1120
+ * @export
1121
+ * @interface ErrorJointLimitExceeded
1122
+ */
1123
+ export interface ErrorJointLimitExceeded {
1124
+ /**
1125
+ * Index of the joint exceeding its limits (0-based).
1126
+ * @type {number}
1127
+ * @memberof ErrorJointLimitExceeded
1128
+ */
1129
+ 'joint_index'?: number;
1130
+ /**
1131
+ *
1132
+ * @type {Array<number>}
1133
+ * @memberof ErrorJointLimitExceeded
1134
+ */
1135
+ 'joint_position'?: Array<number>;
1136
+ /**
1137
+ *
1138
+ * @type {string}
1139
+ * @memberof ErrorJointLimitExceeded
1140
+ */
1141
+ 'error_feedback_name': ErrorJointLimitExceededErrorFeedbackNameEnum;
1142
+ }
1143
+
1144
+ export const ErrorJointLimitExceededErrorFeedbackNameEnum = {
1145
+ ErrorJointLimitExceeded: 'ErrorJointLimitExceeded'
1146
+ } as const;
1147
+
1148
+ export type ErrorJointLimitExceededErrorFeedbackNameEnum = typeof ErrorJointLimitExceededErrorFeedbackNameEnum[keyof typeof ErrorJointLimitExceededErrorFeedbackNameEnum];
1149
+
1150
+ /**
1151
+ * A reference joint position (e.g. start or target joint position) results in collisions that prevent processing.
1152
+ * @export
1153
+ * @interface ErrorJointPositionCollision
1154
+ */
1155
+ export interface ErrorJointPositionCollision {
1156
+ /**
1157
+ *
1158
+ * @type {Array<Collision>}
1159
+ * @memberof ErrorJointPositionCollision
1160
+ */
1161
+ 'collisions'?: Array<Collision>;
1162
+ /**
1163
+ *
1164
+ * @type {Array<number>}
1165
+ * @memberof ErrorJointPositionCollision
1166
+ */
1167
+ 'joint_position'?: Array<number>;
1168
+ /**
1169
+ *
1170
+ * @type {string}
1171
+ * @memberof ErrorJointPositionCollision
1172
+ */
1173
+ 'error_feedback_name': ErrorJointPositionCollisionErrorFeedbackNameEnum;
1174
+ }
1175
+
1176
+ export const ErrorJointPositionCollisionErrorFeedbackNameEnum = {
1177
+ ErrorJointPositionCollision: 'ErrorJointPositionCollision'
1178
+ } as const;
1179
+
1180
+ export type ErrorJointPositionCollisionErrorFeedbackNameEnum = typeof ErrorJointPositionCollisionErrorFeedbackNameEnum[keyof typeof ErrorJointPositionCollisionErrorFeedbackNameEnum];
1181
+
1182
+ /**
1183
+ * The collision-free planning algorithm reached its maximum iteration limit without finding a valid path. Increase max_iterations or modify the start/target positions.
1184
+ * @export
1185
+ * @interface ErrorMaxIterationsExceeded
1186
+ */
1187
+ export interface ErrorMaxIterationsExceeded {
1188
+ /**
1189
+ * The maximum number of iterations that was reached.
1190
+ * @type {number}
1191
+ * @memberof ErrorMaxIterationsExceeded
1192
+ */
1193
+ 'max_iterations'?: number;
1194
+ /**
1195
+ *
1196
+ * @type {string}
1197
+ * @memberof ErrorMaxIterationsExceeded
1198
+ */
1199
+ 'error_feedback_name': ErrorMaxIterationsExceededErrorFeedbackNameEnum;
1200
+ }
1201
+
1202
+ export const ErrorMaxIterationsExceededErrorFeedbackNameEnum = {
1203
+ ErrorMaxIterationsExceeded: 'ErrorMaxIterationsExceeded'
1145
1204
  } as const;
1146
1205
 
1147
- export type EndOfTrajectoryKindEnum = typeof EndOfTrajectoryKindEnum[keyof typeof EndOfTrajectoryKindEnum];
1206
+ export type ErrorMaxIterationsExceededErrorFeedbackNameEnum = typeof ErrorMaxIterationsExceededErrorFeedbackNameEnum[keyof typeof ErrorMaxIterationsExceededErrorFeedbackNameEnum];
1148
1207
 
1149
1208
  /**
1150
1209
  * Details about the state of the motion execution. The details are either for a jogging or a trajectory. If NOVA is not controlling this motion group at the moment, this field is omitted.
@@ -1423,18 +1482,97 @@ export type FloatValueValueTypeEnum = typeof FloatValueValueTypeEnum[keyof typeo
1423
1482
  /**
1424
1483
  *
1425
1484
  * @export
1426
- * @interface GetModeResponse
1485
+ * @interface ForwardKinematics422Response
1427
1486
  */
1428
- export interface GetModeResponse {
1487
+ export interface ForwardKinematics422Response {
1429
1488
  /**
1430
1489
  *
1431
- * @type {RobotSystemMode}
1432
- * @memberof GetModeResponse
1490
+ * @type {Array<ForwardKinematicsValidationError>}
1491
+ * @memberof ForwardKinematics422Response
1433
1492
  */
1434
- 'robot_system_mode': RobotSystemMode;
1493
+ 'detail'?: Array<ForwardKinematicsValidationError>;
1494
+ }
1495
+ /**
1496
+ *
1497
+ * @export
1498
+ * @interface ForwardKinematicsRequest
1499
+ */
1500
+ export interface ForwardKinematicsRequest {
1501
+ /**
1502
+ * String identifiying the model of a motion group.
1503
+ * @type {string}
1504
+ * @memberof ForwardKinematicsRequest
1505
+ */
1506
+ 'motion_group_model': string;
1507
+ /**
1508
+ * List of joint positions [rad] for which TCP poses are computed.
1509
+ * @type {Array<Array<number>>}
1510
+ * @memberof ForwardKinematicsRequest
1511
+ */
1512
+ 'joint_positions': Array<Array<number>>;
1513
+ /**
1514
+ *
1515
+ * @type {Pose}
1516
+ * @memberof ForwardKinematicsRequest
1517
+ */
1518
+ 'tcp_offset'?: Pose;
1519
+ /**
1520
+ * Offset from the world frame to the motion group base.
1521
+ * @type {Pose}
1522
+ * @memberof ForwardKinematicsRequest
1523
+ */
1524
+ 'mounting'?: Pose;
1525
+ }
1526
+ /**
1527
+ *
1528
+ * @export
1529
+ * @interface ForwardKinematicsResponse
1530
+ */
1531
+ export interface ForwardKinematicsResponse {
1532
+ /**
1533
+ * List of computed TCP poses corresponding to the input joint positions.
1534
+ * @type {Array<Pose>}
1535
+ * @memberof ForwardKinematicsResponse
1536
+ */
1537
+ 'tcp_poses': Array<Pose>;
1538
+ }
1539
+ /**
1540
+ *
1541
+ * @export
1542
+ * @interface ForwardKinematicsValidationError
1543
+ */
1544
+ export interface ForwardKinematicsValidationError {
1545
+ /**
1546
+ *
1547
+ * @type {Array<ValidationErrorLocInner>}
1548
+ * @memberof ForwardKinematicsValidationError
1549
+ */
1550
+ 'loc': Array<ValidationErrorLocInner>;
1551
+ /**
1552
+ *
1553
+ * @type {string}
1554
+ * @memberof ForwardKinematicsValidationError
1555
+ */
1556
+ 'msg': string;
1557
+ /**
1558
+ *
1559
+ * @type {string}
1560
+ * @memberof ForwardKinematicsValidationError
1561
+ */
1562
+ 'type': string;
1563
+ /**
1564
+ *
1565
+ * @type {{ [key: string]: any; }}
1566
+ * @memberof ForwardKinematicsValidationError
1567
+ */
1568
+ 'input': { [key: string]: any; };
1569
+ /**
1570
+ *
1571
+ * @type {ErrorInvalidJointCount}
1572
+ * @memberof ForwardKinematicsValidationError
1573
+ */
1574
+ 'data'?: ErrorInvalidJointCount;
1435
1575
  }
1436
-
1437
-
1438
1576
  /**
1439
1577
  *
1440
1578
  * @export
@@ -1947,6 +2085,19 @@ export interface InvalidDofInvalidDof {
1947
2085
  */
1948
2086
  'joint_position'?: Array<number>;
1949
2087
  }
2088
+ /**
2089
+ *
2090
+ * @export
2091
+ * @interface InverseKinematics422Response
2092
+ */
2093
+ export interface InverseKinematics422Response {
2094
+ /**
2095
+ *
2096
+ * @type {Array<InverseKinematicsValidationError>}
2097
+ * @memberof InverseKinematics422Response
2098
+ */
2099
+ 'detail'?: Array<InverseKinematicsValidationError>;
2100
+ }
1950
2101
  /**
1951
2102
  *
1952
2103
  * @export
@@ -1984,11 +2135,11 @@ export interface InverseKinematicsRequest {
1984
2135
  */
1985
2136
  'joint_position_limits'?: Array<LimitRange>;
1986
2137
  /**
1987
- * Collision scenes to be respected by the motion planner. Each contains the single motion group which is planned for. Scenes are checked individually along the trajectory and independently of other scenes. To respect the safety zones of the controller, fetch the safety zones, link and tool shapes from the controller and add one scene made up of those. To respect the safety zones of the controller and check for collision: 1. Fetch the safety zones, link and tool shapes from the controller. 2. Add the fetched zones, links and tools to a scene. 3. Create other scenes from your own 3D data as needed. 4. Execute this endpoint. 5. The response highlights the scenes in which a collision was detected by key.
1988
- * @type {{ [key: string]: SingleMotionGroupCollisionScene; }}
2138
+ * Collision layers to be respected by the motion planner when planning for a single motion group. Each setup represents one layer, e.g. the safety zones and shapes or a fine grained tool and workpiece model. Layers are checked individually along the trajectory and independently of other layers. To respect the safety zones of the controller and check for collision: 1. Fetch the safety zones, link and tool shapes from the controller. 2. Add the fetched zones, links and tools to a layer. 3. Create other layers from your own 3D data as needed. 4. Plan trajectory. 5. The response highlights the layer in which a collision was detected by key.
2139
+ * @type {{ [key: string]: CollisionSetup; }}
1989
2140
  * @memberof InverseKinematicsRequest
1990
2141
  */
1991
- 'collision_scenes'?: { [key: string]: SingleMotionGroupCollisionScene; };
2142
+ 'collision_setups'?: { [key: string]: CollisionSetup; };
1992
2143
  }
1993
2144
  /**
1994
2145
  *
@@ -2003,6 +2154,50 @@ export interface InverseKinematicsResponse {
2003
2154
  */
2004
2155
  'joints': Array<Array<Array<number>>>;
2005
2156
  }
2157
+ /**
2158
+ *
2159
+ * @export
2160
+ * @interface InverseKinematicsValidationError
2161
+ */
2162
+ export interface InverseKinematicsValidationError {
2163
+ /**
2164
+ *
2165
+ * @type {Array<ValidationErrorLocInner>}
2166
+ * @memberof InverseKinematicsValidationError
2167
+ */
2168
+ 'loc': Array<ValidationErrorLocInner>;
2169
+ /**
2170
+ *
2171
+ * @type {string}
2172
+ * @memberof InverseKinematicsValidationError
2173
+ */
2174
+ 'msg': string;
2175
+ /**
2176
+ *
2177
+ * @type {string}
2178
+ * @memberof InverseKinematicsValidationError
2179
+ */
2180
+ 'type': string;
2181
+ /**
2182
+ *
2183
+ * @type {{ [key: string]: any; }}
2184
+ * @memberof InverseKinematicsValidationError
2185
+ */
2186
+ 'input': { [key: string]: any; };
2187
+ /**
2188
+ *
2189
+ * @type {InverseKinematicsValidationErrorAllOfData}
2190
+ * @memberof InverseKinematicsValidationError
2191
+ */
2192
+ 'data'?: InverseKinematicsValidationErrorAllOfData;
2193
+ }
2194
+ /**
2195
+ * @type InverseKinematicsValidationErrorAllOfData
2196
+ * Optional data further specifying the validation error.
2197
+ * @export
2198
+ */
2199
+ export type InverseKinematicsValidationErrorAllOfData = { error_feedback_name: 'ErrorInvalidJointCount' } & ErrorInvalidJointCount | { error_feedback_name: 'ErrorJointLimitExceeded' } & ErrorJointLimitExceeded;
2200
+
2006
2201
  /**
2007
2202
  * State of jogging execution. This state is sent during jogging movement, response-rate closest to the nearest multiple of controller step-rate but not exceeding the configured rate. The jogging state can be one of the following: - RUNNING: Jogging is active. - PAUSED_BY_USER: User has paused jogging. - PAUSED_NEAR_JOINT_LIMIT: Jogging was paused because a joint is is near its limit. - PAUSED_NEAR_COLLISION: Jogging was paused because the motion group neared a collision. - PAUSED_ON_IO: Jogging was paused because of an I/O event.
2008
2203
  * @export
@@ -2033,45 +2228,157 @@ export type JoggingDetailsKindEnum = typeof JoggingDetailsKindEnum[keyof typeof
2033
2228
  * @type JoggingDetailsState
2034
2229
  * @export
2035
2230
  */
2036
- export type JoggingDetailsState = PausedByUser | PausedNearCollision | PausedNearJointLimit | PausedOnIO | Running;
2231
+ export type JoggingDetailsState = JoggingPausedByUser | JoggingPausedNearCollision | JoggingPausedNearJointLimit | JoggingPausedOnIO | JoggingRunning;
2037
2232
 
2038
2233
  /**
2039
2234
  *
2040
2235
  * @export
2041
- * @interface JointLimitExceeded
2236
+ * @interface JoggingPausedByUser
2042
2237
  */
2043
- export interface JointLimitExceeded {
2238
+ export interface JoggingPausedByUser {
2044
2239
  /**
2045
2240
  *
2046
- * @type {FeedbackJointLimitExceeded}
2047
- * @memberof JointLimitExceeded
2241
+ * @type {string}
2242
+ * @memberof JoggingPausedByUser
2048
2243
  */
2049
- 'joint_limit_exceeded'?: FeedbackJointLimitExceeded;
2244
+ 'kind': JoggingPausedByUserKindEnum;
2050
2245
  }
2246
+
2247
+ export const JoggingPausedByUserKindEnum = {
2248
+ PausedByUser: 'PAUSED_BY_USER'
2249
+ } as const;
2250
+
2251
+ export type JoggingPausedByUserKindEnum = typeof JoggingPausedByUserKindEnum[keyof typeof JoggingPausedByUserKindEnum];
2252
+
2051
2253
  /**
2052
2254
  *
2053
2255
  * @export
2054
- * @interface JointLimits
2256
+ * @interface JoggingPausedNearCollision
2055
2257
  */
2056
- export interface JointLimits {
2057
- /**
2058
- *
2059
- * @type {LimitRange}
2060
- * @memberof JointLimits
2061
- */
2062
- 'position'?: LimitRange;
2258
+ export interface JoggingPausedNearCollision {
2063
2259
  /**
2064
2260
  *
2065
- * @type {number}
2066
- * @memberof JointLimits
2261
+ * @type {string}
2262
+ * @memberof JoggingPausedNearCollision
2067
2263
  */
2068
- 'velocity'?: number;
2264
+ 'kind': JoggingPausedNearCollisionKindEnum;
2069
2265
  /**
2070
2266
  *
2071
- * @type {number}
2072
- * @memberof JointLimits
2267
+ * @type {string}
2268
+ * @memberof JoggingPausedNearCollision
2073
2269
  */
2074
- 'acceleration'?: number;
2270
+ 'description': string;
2271
+ }
2272
+
2273
+ export const JoggingPausedNearCollisionKindEnum = {
2274
+ PausedNearCollision: 'PAUSED_NEAR_COLLISION'
2275
+ } as const;
2276
+
2277
+ export type JoggingPausedNearCollisionKindEnum = typeof JoggingPausedNearCollisionKindEnum[keyof typeof JoggingPausedNearCollisionKindEnum];
2278
+
2279
+ /**
2280
+ *
2281
+ * @export
2282
+ * @interface JoggingPausedNearJointLimit
2283
+ */
2284
+ export interface JoggingPausedNearJointLimit {
2285
+ /**
2286
+ *
2287
+ * @type {string}
2288
+ * @memberof JoggingPausedNearJointLimit
2289
+ */
2290
+ 'kind': JoggingPausedNearJointLimitKindEnum;
2291
+ /**
2292
+ *
2293
+ * @type {Array<number>}
2294
+ * @memberof JoggingPausedNearJointLimit
2295
+ */
2296
+ 'joint_indices': Array<number>;
2297
+ }
2298
+
2299
+ export const JoggingPausedNearJointLimitKindEnum = {
2300
+ PausedNearJointLimit: 'PAUSED_NEAR_JOINT_LIMIT'
2301
+ } as const;
2302
+
2303
+ export type JoggingPausedNearJointLimitKindEnum = typeof JoggingPausedNearJointLimitKindEnum[keyof typeof JoggingPausedNearJointLimitKindEnum];
2304
+
2305
+ /**
2306
+ *
2307
+ * @export
2308
+ * @interface JoggingPausedOnIO
2309
+ */
2310
+ export interface JoggingPausedOnIO {
2311
+ /**
2312
+ *
2313
+ * @type {string}
2314
+ * @memberof JoggingPausedOnIO
2315
+ */
2316
+ 'kind': JoggingPausedOnIOKindEnum;
2317
+ }
2318
+
2319
+ export const JoggingPausedOnIOKindEnum = {
2320
+ PausedOnIo: 'PAUSED_ON_IO'
2321
+ } as const;
2322
+
2323
+ export type JoggingPausedOnIOKindEnum = typeof JoggingPausedOnIOKindEnum[keyof typeof JoggingPausedOnIOKindEnum];
2324
+
2325
+ /**
2326
+ *
2327
+ * @export
2328
+ * @interface JoggingRunning
2329
+ */
2330
+ export interface JoggingRunning {
2331
+ /**
2332
+ *
2333
+ * @type {string}
2334
+ * @memberof JoggingRunning
2335
+ */
2336
+ 'kind': JoggingRunningKindEnum;
2337
+ }
2338
+
2339
+ export const JoggingRunningKindEnum = {
2340
+ Running: 'RUNNING'
2341
+ } as const;
2342
+
2343
+ export type JoggingRunningKindEnum = typeof JoggingRunningKindEnum[keyof typeof JoggingRunningKindEnum];
2344
+
2345
+ /**
2346
+ *
2347
+ * @export
2348
+ * @interface JointLimitExceeded
2349
+ */
2350
+ export interface JointLimitExceeded {
2351
+ /**
2352
+ *
2353
+ * @type {FeedbackJointLimitExceeded}
2354
+ * @memberof JointLimitExceeded
2355
+ */
2356
+ 'joint_limit_exceeded'?: FeedbackJointLimitExceeded;
2357
+ }
2358
+ /**
2359
+ *
2360
+ * @export
2361
+ * @interface JointLimits
2362
+ */
2363
+ export interface JointLimits {
2364
+ /**
2365
+ *
2366
+ * @type {LimitRange}
2367
+ * @memberof JointLimits
2368
+ */
2369
+ 'position'?: LimitRange;
2370
+ /**
2371
+ *
2372
+ * @type {number}
2373
+ * @memberof JointLimits
2374
+ */
2375
+ 'velocity'?: number;
2376
+ /**
2377
+ *
2378
+ * @type {number}
2379
+ * @memberof JointLimits
2380
+ */
2381
+ 'acceleration'?: number;
2075
2382
  /**
2076
2383
  *
2077
2384
  * @type {number}
@@ -2473,6 +2780,32 @@ export const Manufacturer = {
2473
2780
  export type Manufacturer = typeof Manufacturer[keyof typeof Manufacturer];
2474
2781
 
2475
2782
 
2783
+ /**
2784
+ * Midpoint insertion algorithm configuration for collision-free path planning. This algorithm iteratively inserts midpoints between the start and target joint position to find collision-free paths.
2785
+ * @export
2786
+ * @interface MidpointInsertionAlgorithm
2787
+ */
2788
+ export interface MidpointInsertionAlgorithm {
2789
+ /**
2790
+ * Algorithm discriminator.
2791
+ * @type {string}
2792
+ * @memberof MidpointInsertionAlgorithm
2793
+ */
2794
+ 'algorithm_name': MidpointInsertionAlgorithmAlgorithmNameEnum;
2795
+ /**
2796
+ * Maximum number of iterations for the midpoint insertion algorithm. Higher values increase likelyhood of success, but also computation time (linear).
2797
+ * @type {number}
2798
+ * @memberof MidpointInsertionAlgorithm
2799
+ */
2800
+ 'max_iterations'?: number;
2801
+ }
2802
+
2803
+ export const MidpointInsertionAlgorithmAlgorithmNameEnum = {
2804
+ MidpointInsertionAlgorithm: 'MidpointInsertionAlgorithm'
2805
+ } as const;
2806
+
2807
+ export type MidpointInsertionAlgorithmAlgorithmNameEnum = typeof MidpointInsertionAlgorithmAlgorithmNameEnum[keyof typeof MidpointInsertionAlgorithmAlgorithmNameEnum];
2808
+
2476
2809
  /**
2477
2810
  *
2478
2811
  * @export
@@ -2653,6 +2986,55 @@ export interface MotionGroupJoints {
2653
2986
  */
2654
2987
  'torques'?: Array<number>;
2655
2988
  }
2989
+ /**
2990
+ *
2991
+ * @export
2992
+ * @interface MotionGroupSetup
2993
+ */
2994
+ export interface MotionGroupSetup {
2995
+ /**
2996
+ * String identifiying the model of a motion group.
2997
+ * @type {string}
2998
+ * @memberof MotionGroupSetup
2999
+ */
3000
+ 'motion_group_model': string;
3001
+ /**
3002
+ * [ms] cycle time of the motion group controller. A trajectory for this motion group should be computed to this resolution.
3003
+ * @type {number}
3004
+ * @memberof MotionGroupSetup
3005
+ */
3006
+ 'cycle_time': number;
3007
+ /**
3008
+ * The offset from the world frame to the motion group base.
3009
+ * @type {Pose}
3010
+ * @memberof MotionGroupSetup
3011
+ */
3012
+ 'mounting'?: Pose;
3013
+ /**
3014
+ *
3015
+ * @type {Pose}
3016
+ * @memberof MotionGroupSetup
3017
+ */
3018
+ 'tcp_offset'?: Pose;
3019
+ /**
3020
+ *
3021
+ * @type {LimitSet}
3022
+ * @memberof MotionGroupSetup
3023
+ */
3024
+ 'global_limits'?: LimitSet;
3025
+ /**
3026
+ *
3027
+ * @type {Payload}
3028
+ * @memberof MotionGroupSetup
3029
+ */
3030
+ 'payload'?: Payload;
3031
+ /**
3032
+ * Collision layers to be respected by the motion planner when planning for a single motion group. Each setup represents one layer, e.g. the safety zones and shapes or a fine grained tool and workpiece model. Layers are checked individually along the trajectory and independently of other layers. To respect the safety zones of the controller and check for collision: 1. Fetch the safety zones, link and tool shapes from the controller. 2. Add the fetched zones, links and tools to a layer. 3. Create other layers from your own 3D data as needed. 4. Plan trajectory. 5. The response highlights the layer in which a collision was detected by key.
3033
+ * @type {{ [key: string]: CollisionSetup; }}
3034
+ * @memberof MotionGroupSetup
3035
+ */
3036
+ 'collision_setups'?: { [key: string]: CollisionSetup; };
3037
+ }
2656
3038
  /**
2657
3039
  * Presents the current state of the motion group.
2658
3040
  * @export
@@ -3187,146 +3569,110 @@ export interface PauseOnIO {
3187
3569
  /**
3188
3570
  *
3189
3571
  * @export
3190
- * @interface PausedByRequest
3572
+ * @interface Payload
3191
3573
  */
3192
- export interface PausedByRequest {
3574
+ export interface Payload {
3193
3575
  /**
3194
3576
  *
3195
3577
  * @type {string}
3196
- * @memberof PausedByRequest
3578
+ * @memberof Payload
3579
+ */
3580
+ 'name': string;
3581
+ /**
3582
+ * Mass of payload in [kg].
3583
+ * @type {number}
3584
+ * @memberof Payload
3585
+ */
3586
+ 'payload': number;
3587
+ /**
3588
+ * A three-dimensional vector [x, y, z] with double precision.
3589
+ * @type {Array<number>}
3590
+ * @memberof Payload
3591
+ */
3592
+ 'center_of_mass'?: Array<number>;
3593
+ /**
3594
+ * A three-dimensional vector [x, y, z] with double precision.
3595
+ * @type {Array<number>}
3596
+ * @memberof Payload
3197
3597
  */
3198
- 'kind': PausedByRequestKindEnum;
3598
+ 'moment_of_inertia'?: Array<number>;
3199
3599
  }
3200
-
3201
- export const PausedByRequestKindEnum = {
3202
- PausedByUser: 'PAUSED_BY_USER'
3203
- } as const;
3204
-
3205
- export type PausedByRequestKindEnum = typeof PausedByRequestKindEnum[keyof typeof PausedByRequestKindEnum];
3206
-
3207
3600
  /**
3208
3601
  *
3209
3602
  * @export
3210
- * @interface PausedByUser
3603
+ * @interface Plan422Response
3211
3604
  */
3212
- export interface PausedByUser {
3605
+ export interface Plan422Response {
3213
3606
  /**
3214
3607
  *
3215
- * @type {string}
3216
- * @memberof PausedByUser
3608
+ * @type {Array<PlanValidationError>}
3609
+ * @memberof Plan422Response
3217
3610
  */
3218
- 'kind': PausedByUserKindEnum;
3611
+ 'detail'?: Array<PlanValidationError>;
3219
3612
  }
3220
-
3221
- export const PausedByUserKindEnum = {
3222
- PausedByUser: 'PAUSED_BY_USER'
3223
- } as const;
3224
-
3225
- export type PausedByUserKindEnum = typeof PausedByUserKindEnum[keyof typeof PausedByUserKindEnum];
3226
-
3227
3613
  /**
3228
- *
3614
+ * Response when collision-free trajectory planning fails. Contains specific feedback about why the planning failed.
3229
3615
  * @export
3230
- * @interface PausedNearCollision
3616
+ * @interface PlanCollisionFreeFailedResponse
3231
3617
  */
3232
- export interface PausedNearCollision {
3618
+ export interface PlanCollisionFreeFailedResponse {
3233
3619
  /**
3234
3620
  *
3235
- * @type {string}
3236
- * @memberof PausedNearCollision
3621
+ * @type {ErrorMaxIterationsExceeded}
3622
+ * @memberof PlanCollisionFreeFailedResponse
3237
3623
  */
3238
- 'kind': PausedNearCollisionKindEnum;
3239
- /**
3240
- *
3241
- * @type {string}
3242
- * @memberof PausedNearCollision
3243
- */
3244
- 'description': string;
3624
+ 'error_feedback': ErrorMaxIterationsExceeded;
3245
3625
  }
3246
-
3247
- export const PausedNearCollisionKindEnum = {
3248
- PausedNearCollision: 'PAUSED_NEAR_COLLISION'
3249
- } as const;
3250
-
3251
- export type PausedNearCollisionKindEnum = typeof PausedNearCollisionKindEnum[keyof typeof PausedNearCollisionKindEnum];
3252
-
3253
3626
  /**
3254
3627
  *
3255
3628
  * @export
3256
- * @interface PausedNearJointLimit
3629
+ * @interface PlanCollisionFreeRequest
3257
3630
  */
3258
- export interface PausedNearJointLimit {
3631
+ export interface PlanCollisionFreeRequest {
3632
+ /**
3633
+ * The data to assemble the robot setup can be retrieved from [getMotionGroupDescription](getMotionGroupDescription) endpoint.
3634
+ * @type {MotionGroupSetup}
3635
+ * @memberof PlanCollisionFreeRequest
3636
+ */
3637
+ 'motion_group_setup': MotionGroupSetup;
3259
3638
  /**
3260
3639
  *
3261
- * @type {string}
3262
- * @memberof PausedNearJointLimit
3640
+ * @type {Array<number>}
3641
+ * @memberof PlanCollisionFreeRequest
3263
3642
  */
3264
- 'kind': PausedNearJointLimitKindEnum;
3643
+ 'start_joint_position': Array<number>;
3265
3644
  /**
3266
3645
  *
3267
3646
  * @type {Array<number>}
3268
- * @memberof PausedNearJointLimit
3647
+ * @memberof PlanCollisionFreeRequest
3269
3648
  */
3270
- 'joint_indices': Array<number>;
3271
- }
3272
-
3273
- export const PausedNearJointLimitKindEnum = {
3274
- PausedNearJointLimit: 'PAUSED_NEAR_JOINT_LIMIT'
3275
- } as const;
3276
-
3277
- export type PausedNearJointLimitKindEnum = typeof PausedNearJointLimitKindEnum[keyof typeof PausedNearJointLimitKindEnum];
3278
-
3279
- /**
3280
- *
3281
- * @export
3282
- * @interface PausedOnIO
3283
- */
3284
- export interface PausedOnIO {
3649
+ 'target': Array<number>;
3285
3650
  /**
3286
3651
  *
3287
- * @type {string}
3288
- * @memberof PausedOnIO
3652
+ * @type {CollisionFreeAlgorithm}
3653
+ * @memberof PlanCollisionFreeRequest
3289
3654
  */
3290
- 'kind': PausedOnIOKindEnum;
3655
+ 'algorithm': CollisionFreeAlgorithm;
3291
3656
  }
3292
-
3293
- export const PausedOnIOKindEnum = {
3294
- PausedOnIo: 'PAUSED_ON_IO'
3295
- } as const;
3296
-
3297
- export type PausedOnIOKindEnum = typeof PausedOnIOKindEnum[keyof typeof PausedOnIOKindEnum];
3298
-
3299
3657
  /**
3300
- *
3658
+ * Response from collision-free trajectory planning. Contains either a successful joint trajectory or failure information.
3301
3659
  * @export
3302
- * @interface Payload
3660
+ * @interface PlanCollisionFreeResponse
3303
3661
  */
3304
- export interface Payload {
3662
+ export interface PlanCollisionFreeResponse {
3305
3663
  /**
3306
3664
  *
3307
- * @type {string}
3308
- * @memberof Payload
3665
+ * @type {PlanCollisionFreeResponseResponse}
3666
+ * @memberof PlanCollisionFreeResponse
3309
3667
  */
3310
- 'name': string;
3311
- /**
3312
- * Mass of payload in [kg].
3313
- * @type {number}
3314
- * @memberof Payload
3315
- */
3316
- 'payload': number;
3317
- /**
3318
- * A three-dimensional vector [x, y, z] with double precision.
3319
- * @type {Array<number>}
3320
- * @memberof Payload
3321
- */
3322
- 'center_of_mass'?: Array<number>;
3323
- /**
3324
- * A three-dimensional vector [x, y, z] with double precision.
3325
- * @type {Array<number>}
3326
- * @memberof Payload
3327
- */
3328
- 'moment_of_inertia'?: Array<number>;
3668
+ 'response': PlanCollisionFreeResponseResponse;
3329
3669
  }
3670
+ /**
3671
+ * @type PlanCollisionFreeResponseResponse
3672
+ * @export
3673
+ */
3674
+ export type PlanCollisionFreeResponseResponse = JointTrajectory | PlanCollisionFreeFailedResponse;
3675
+
3330
3676
  /**
3331
3677
  *
3332
3678
  * @export
@@ -3366,10 +3712,10 @@ export type PlanTrajectoryFailedResponseErrorFeedback = FeedbackCollision | Feed
3366
3712
  export interface PlanTrajectoryRequest {
3367
3713
  /**
3368
3714
  * The data to assemble the robot setup can be retrieved from [getMotionGroupDescription](getMotionGroupDescription) endpoint.
3369
- * @type {RobotSetup}
3715
+ * @type {MotionGroupSetup}
3370
3716
  * @memberof PlanTrajectoryRequest
3371
3717
  */
3372
- 'robot_setup': RobotSetup;
3718
+ 'motion_group_setup': MotionGroupSetup;
3373
3719
  /**
3374
3720
  *
3375
3721
  * @type {Array<number>}
@@ -3402,6 +3748,50 @@ export interface PlanTrajectoryResponse {
3402
3748
  */
3403
3749
  export type PlanTrajectoryResponseResponse = JointTrajectory | PlanTrajectoryFailedResponse;
3404
3750
 
3751
+ /**
3752
+ *
3753
+ * @export
3754
+ * @interface PlanValidationError
3755
+ */
3756
+ export interface PlanValidationError {
3757
+ /**
3758
+ *
3759
+ * @type {Array<ValidationErrorLocInner>}
3760
+ * @memberof PlanValidationError
3761
+ */
3762
+ 'loc': Array<ValidationErrorLocInner>;
3763
+ /**
3764
+ *
3765
+ * @type {string}
3766
+ * @memberof PlanValidationError
3767
+ */
3768
+ 'msg': string;
3769
+ /**
3770
+ *
3771
+ * @type {string}
3772
+ * @memberof PlanValidationError
3773
+ */
3774
+ 'type': string;
3775
+ /**
3776
+ *
3777
+ * @type {{ [key: string]: any; }}
3778
+ * @memberof PlanValidationError
3779
+ */
3780
+ 'input': { [key: string]: any; };
3781
+ /**
3782
+ *
3783
+ * @type {PlanValidationErrorAllOfData}
3784
+ * @memberof PlanValidationError
3785
+ */
3786
+ 'data'?: PlanValidationErrorAllOfData;
3787
+ }
3788
+ /**
3789
+ * @type PlanValidationErrorAllOfData
3790
+ * Optional data further specifying the validation error.
3791
+ * @export
3792
+ */
3793
+ export type PlanValidationErrorAllOfData = { error_feedback_name: 'ErrorInvalidJointCount' } & ErrorInvalidJointCount | { error_feedback_name: 'ErrorJointLimitExceeded' } & ErrorJointLimitExceeded | { error_feedback_name: 'ErrorJointPositionCollision' } & ErrorJointPositionCollision;
3794
+
3405
3795
  /**
3406
3796
  * Defines an x/y-plane with infinite size.
3407
3797
  * @export
@@ -3493,6 +3883,32 @@ export interface Pose {
3493
3883
  */
3494
3884
  'orientation'?: Array<number>;
3495
3885
  }
3886
+ /**
3887
+ * <!-- theme: danger --> > **Experimental** RRT Connect algorithm configuration for collision-free path planning. Rapidly-exploring Random Trees (RRT) builds trees of valid configurations by randomly sampling the joint space and connecting feasible points. RRT Connect grows two trees simultaneously from start and target positions until they meet. This is a custom implementation optimized for manipulator kinematics and collision checking in industrial contexts.
3888
+ * @export
3889
+ * @interface RRTConnectAlgorithm
3890
+ */
3891
+ export interface RRTConnectAlgorithm {
3892
+ /**
3893
+ * Algorithm discriminator.
3894
+ * @type {string}
3895
+ * @memberof RRTConnectAlgorithm
3896
+ */
3897
+ 'algorithm_name': RRTConnectAlgorithmAlgorithmNameEnum;
3898
+ /**
3899
+ * Maximum number of iterations for the RRT Connect algorithm. Higher values increase likelihood of success, but also computation time.
3900
+ * @type {number}
3901
+ * @memberof RRTConnectAlgorithm
3902
+ */
3903
+ 'max_iterations'?: number;
3904
+ }
3905
+
3906
+ export const RRTConnectAlgorithmAlgorithmNameEnum = {
3907
+ RrtConnectAlgorithm: 'RRTConnectAlgorithm'
3908
+ } as const;
3909
+
3910
+ export type RRTConnectAlgorithmAlgorithmNameEnum = typeof RRTConnectAlgorithmAlgorithmNameEnum[keyof typeof RRTConnectAlgorithmAlgorithmNameEnum];
3911
+
3496
3912
  /**
3497
3913
  * Defines an x/y-plane with finite size. Centred around the z-axis.
3498
3914
  * @export
@@ -3584,7 +4000,7 @@ export type ReleaseChannel = typeof ReleaseChannel[keyof typeof ReleaseChannel];
3584
4000
  */
3585
4001
  export interface RobotController {
3586
4002
  /**
3587
- * A unique name of the Controller inside the Cell. It must be a valid k8s label name as defined by [RFC 1035](https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#rfc-1035-label-names).
4003
+ * Unique name of controller within the cell. It must be a valid k8s label name as defined by [RFC 1035](https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#rfc-1035-label-names).
3588
4004
  * @type {string}
3589
4005
  * @memberof RobotController
3590
4006
  */
@@ -3608,6 +4024,18 @@ export type RobotControllerConfiguration = AbbController | FanucController | Kuk
3608
4024
  * @interface RobotControllerState
3609
4025
  */
3610
4026
  export interface RobotControllerState {
4027
+ /**
4028
+ * Mode of communication and control between NOVA and the robot controller.
4029
+ * @type {RobotSystemMode}
4030
+ * @memberof RobotControllerState
4031
+ */
4032
+ 'mode': RobotSystemMode;
4033
+ /**
4034
+ * Last error stack encountered during initialization process or after a controller disconnect. At this stage, it\'s unclear whether the error is fatal. Evaluate `last_error` to decide whether to remove the controller using `deleteController`. Examples: - Delete required: Host resolution fails repeatedly due to an incorrect IP. - Delete not required: Temporary network delay caused a disconnect; the system will auto-reconnect.
4035
+ * @type {Array<string>}
4036
+ * @memberof RobotControllerState
4037
+ */
4038
+ 'last_error'?: Array<string>;
3611
4039
  /**
3612
4040
  * Timestamp indicating when the represented information was received from the robot controller.
3613
4041
  * @type {string}
@@ -3654,66 +4082,17 @@ export interface RobotControllerState {
3654
4082
 
3655
4083
 
3656
4084
  /**
3657
- *
3658
- * @export
3659
- * @interface RobotSetup
3660
- */
3661
- export interface RobotSetup {
3662
- /**
3663
- * String identifiying the model of a motion group.
3664
- * @type {string}
3665
- * @memberof RobotSetup
3666
- */
3667
- 'motion_group_model': string;
3668
- /**
3669
- * [ms] cycle time of the motion group controller. A trajectory for this motion group should be computed to this resolution.
3670
- * @type {number}
3671
- * @memberof RobotSetup
3672
- */
3673
- 'cycle_time': number;
3674
- /**
3675
- * The offset from the world frame to the motion group base.
3676
- * @type {Pose}
3677
- * @memberof RobotSetup
3678
- */
3679
- 'mounting'?: Pose;
3680
- /**
3681
- *
3682
- * @type {Pose}
3683
- * @memberof RobotSetup
3684
- */
3685
- 'tcp_offset'?: Pose;
3686
- /**
3687
- *
3688
- * @type {LimitSet}
3689
- * @memberof RobotSetup
3690
- */
3691
- 'global_limits'?: LimitSet;
3692
- /**
3693
- *
3694
- * @type {Payload}
3695
- * @memberof RobotSetup
3696
- */
3697
- 'payload'?: Payload;
3698
- /**
3699
- * Collision scenes to be respected by the motion planner. Each contains the single motion group which is planned for. Scenes are checked individually along the trajectory and independently of other scenes. To respect the safety zones of the controller, fetch the safety zones, link and tool shapes from the controller and add one scene made up of those. To respect the safety zones of the controller and check for collision: 1. Fetch the safety zones, link and tool shapes from the controller. 2. Add the fetched zones, links and tools to a scene. 3. Create other scenes from your own 3D data as needed. 4. Execute this endpoint. 5. The response highlights the scenes in which a collision was detected by key.
3700
- * @type {{ [key: string]: SingleMotionGroupCollisionScene; }}
3701
- * @memberof RobotSetup
3702
- */
3703
- 'collision_scenes'?: { [key: string]: SingleMotionGroupCollisionScene; };
3704
- }
3705
- /**
3706
- * The system mode of the robot system. ### ROBOT_SYSTEM_MODE_UNDEFINED Indicates that the robot controller is currently performing a mode transition. ### ROBOT_SYSTEM_MODE_DISCONNECT There is no communication with the robot controller at all. All connections are closed. No command is sent to the robot controller while in this mode. No input/output interaction is possible in this mode! All move requests will be rejected in this mode! ### ROBOT_SYSTEM_MODE_MONITOR A connection to the robot controller is established to only read the robot controller state. No command is sent to the robot controller while in this mode. It is possible to receive input/output information. All move requests will be rejected in this mode! ### ROBOT_SYSTEM_MODE_CONTROL An active connection is established with the robot controller and the robot system is cyclic commanded to stay in its actual position. The robot controller state is received in the cycle time of the robot controller. Requests via the MotionService and JoggingService will be processed and executed in this mode. Input/Output interaction is possible in this mode! **In this mode the robot system can be commanded to move.** ### ROBOT_SYSTEM_MODE_FREE_DRIVE Like ROBOT_SYSTEM_MODE_MONITOR a connection to the robot controller is established to only read the robot controller state. The difference is that the motion groups can be moved by the user (Free Drive). Thus, the servo motors are turned on. All move requests will be rejected in this mode! **This mode is not supported by every robot!** Use [getSupportedModes](getSupportedModes) to evaluate if the device support free drive.
4085
+ * Defines the current system mode of the robot system, including NOVA communicating with the robot controller. ### MODE_CONTROLLER_NOT_CONFIGURED No controller with the specified identifier is configured. Call [addRobotController](addRobotController) to register a controller. ### MODE_INITIALIZING Indicates that a connection to the robot controller is established or reestablished in case of a disconnect. On success, the controller is set to MODE_MONITOR. On failure, the initialization process is retried until successful or cancelled by the user. ### MODE_MONITOR Read-only mode with an active controller connection. - Receives robot state and I/O signals - Move requests are rejected - No commands are sent to the controller ### MODE_CONTROL Active control mode. **Movement is possible in this mode** The robot is cyclically commanded to hold its current position. The robot state is received in sync with the controller cycle. Motion and jogging requests are accepted and executed. Input/Output interaction is enabled. ### MODE_FREE_DRIVE Read-only mode with servo motors enabled for manual movement (Free Drive). Move requests are rejected. Not supported by all robots: Use [getSupportedModes](getSupportedModes) to check Free Drive availability.
3707
4086
  * @export
3708
4087
  * @enum {string}
3709
4088
  */
3710
4089
 
3711
4090
  export const RobotSystemMode = {
3712
- RobotSystemModeUndefined: 'ROBOT_SYSTEM_MODE_UNDEFINED',
3713
- RobotSystemModeDisconnect: 'ROBOT_SYSTEM_MODE_DISCONNECT',
3714
- RobotSystemModeMonitor: 'ROBOT_SYSTEM_MODE_MONITOR',
3715
- RobotSystemModeControl: 'ROBOT_SYSTEM_MODE_CONTROL',
3716
- RobotSystemModeFreeDrive: 'ROBOT_SYSTEM_MODE_FREE_DRIVE'
4091
+ ModeControllerNotConfigured: 'MODE_CONTROLLER_NOT_CONFIGURED',
4092
+ ModeInitializing: 'MODE_INITIALIZING',
4093
+ ModeMonitor: 'MODE_MONITOR',
4094
+ ModeControl: 'MODE_CONTROL',
4095
+ ModeFreeDrive: 'MODE_FREE_DRIVE'
3717
4096
  } as const;
3718
4097
 
3719
4098
  export type RobotSystemMode = typeof RobotSystemMode[keyof typeof RobotSystemMode];
@@ -3791,52 +4170,6 @@ export interface RobotTcpData {
3791
4170
  }
3792
4171
 
3793
4172
 
3794
- /**
3795
- *
3796
- * @export
3797
- * @interface Running
3798
- */
3799
- export interface Running {
3800
- /**
3801
- *
3802
- * @type {string}
3803
- * @memberof Running
3804
- */
3805
- 'kind': RunningKindEnum;
3806
- }
3807
-
3808
- export const RunningKindEnum = {
3809
- Running: 'RUNNING'
3810
- } as const;
3811
-
3812
- export type RunningKindEnum = typeof RunningKindEnum[keyof typeof RunningKindEnum];
3813
-
3814
- /**
3815
- *
3816
- * @export
3817
- * @interface Running1
3818
- */
3819
- export interface Running1 {
3820
- /**
3821
- *
3822
- * @type {string}
3823
- * @memberof Running1
3824
- */
3825
- 'kind': Running1KindEnum;
3826
- /**
3827
- * Remaining time in milliseconds (ms) to reach the end of the motion.
3828
- * @type {number}
3829
- * @memberof Running1
3830
- */
3831
- 'time_to_end': number;
3832
- }
3833
-
3834
- export const Running1KindEnum = {
3835
- Running: 'RUNNING'
3836
- } as const;
3837
-
3838
- export type Running1KindEnum = typeof Running1KindEnum[keyof typeof Running1KindEnum];
3839
-
3840
4173
  /**
3841
4174
  * Current safety state of the configured robot controller. Operation modes in which the attached motion groups can be moved are: - SAFETY_STATE_NORMAL - SAFETY_STATE_REDUCED All other modes are considered as non-operational.
3842
4175
  * @export
@@ -4011,37 +4344,6 @@ export const SettableRobotSystemMode = {
4011
4344
  export type SettableRobotSystemMode = typeof SettableRobotSystemMode[keyof typeof SettableRobotSystemMode];
4012
4345
 
4013
4346
 
4014
- /**
4015
- *
4016
- * @export
4017
- * @interface SingleMotionGroupCollisionScene
4018
- */
4019
- export interface SingleMotionGroupCollisionScene {
4020
- /**
4021
- * A collection of identifiable colliders.
4022
- * @type {{ [key: string]: Collider; }}
4023
- * @memberof SingleMotionGroupCollisionScene
4024
- */
4025
- 'static_colliders'?: { [key: string]: Collider; };
4026
- /**
4027
- * A link chain is a kinematic chain of links that is connected via joints. A motion group can be used to control the motion of the joints in a link chain. A link is a group of colliders that is attached to the link reference frame. The reference frame of a link is obtained after applying all sets of Denavit-Hartenberg-parameters from base to (including) the link index. This means that the reference frame of the link is on the rotation axis of the next joint in the kinematic chain. Example: For a motion group with 2 joints, the collider reference frame (CRF) for link 1 is on the rotation axis of joint 2. The chain looks like: - Origin >> Mounting >> Base >> (CRF Base) Joint 0 >> Link 0 >> (CRF Link 0) Joint 1 >> Link 1 >> (CRF Link 1) Flange (CRF Tool) >> TCP Adjacent links in the kinematic chain of the motion group are not checked for mutual collision.
4028
- * @type {Array<{ [key: string]: Collider; }>}
4029
- * @memberof SingleMotionGroupCollisionScene
4030
- */
4031
- 'link_chain'?: Array<{ [key: string]: Collider; }>;
4032
- /**
4033
- * Defines the shape of a tool. A tool is a dictionary of colliders. All colliders that make up a tool are attached to the flange frame of the motion group.
4034
- * @type {{ [key: string]: Collider; }}
4035
- * @memberof SingleMotionGroupCollisionScene
4036
- */
4037
- 'tool'?: { [key: string]: Collider; };
4038
- /**
4039
- * If true, self-collision detection is enabled for the motion group. See LinkChain documentation for details. Default is true.
4040
- * @type {boolean}
4041
- * @memberof SingleMotionGroupCollisionScene
4042
- */
4043
- 'motion_group_self_collision_detection'?: boolean;
4044
- }
4045
4347
  /**
4046
4348
  *
4047
4349
  * @export
@@ -4100,7 +4402,7 @@ export interface StartMovementRequest {
4100
4402
  * @type {Direction}
4101
4403
  * @memberof StartMovementRequest
4102
4404
  */
4103
- 'direction': Direction;
4405
+ 'direction'?: Direction;
4104
4406
  /**
4105
4407
  * Attaches a list of output commands to the trajectory. The outputs are set to the specified values right after the specified location was reached. 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.
4106
4408
  * @type {Array<IOValue>}
@@ -4390,50 +4692,156 @@ export interface TrajectoryDetails {
4390
4692
  */
4391
4693
  'state': TrajectoryDetailsState;
4392
4694
  /**
4393
- * Discriminator for OpenApi generators, which is always \"TRAJECTORY\" for this schema.
4695
+ * Discriminator for OpenApi generators, which is always \"TRAJECTORY\" for this schema.
4696
+ * @type {string}
4697
+ * @memberof TrajectoryDetails
4698
+ */
4699
+ 'kind': TrajectoryDetailsKindEnum;
4700
+ }
4701
+
4702
+ export const TrajectoryDetailsKindEnum = {
4703
+ Trajectory: 'TRAJECTORY'
4704
+ } as const;
4705
+
4706
+ export type TrajectoryDetailsKindEnum = typeof TrajectoryDetailsKindEnum[keyof typeof TrajectoryDetailsKindEnum];
4707
+
4708
+ /**
4709
+ * @type TrajectoryDetailsState
4710
+ * @export
4711
+ */
4712
+ export type TrajectoryDetailsState = TrajectoryEnded | TrajectoryPausedByUser | TrajectoryPausedOnIO | TrajectoryRunning | TrajectoryWaitForIO;
4713
+
4714
+ /**
4715
+ *
4716
+ * @export
4717
+ * @interface TrajectoryEnded
4718
+ */
4719
+ export interface TrajectoryEnded {
4720
+ /**
4721
+ *
4722
+ * @type {string}
4723
+ * @memberof TrajectoryEnded
4724
+ */
4725
+ 'kind': TrajectoryEndedKindEnum;
4726
+ }
4727
+
4728
+ export const TrajectoryEndedKindEnum = {
4729
+ EndOfTrajectory: 'END_OF_TRAJECTORY'
4730
+ } as const;
4731
+
4732
+ export type TrajectoryEndedKindEnum = typeof TrajectoryEndedKindEnum[keyof typeof TrajectoryEndedKindEnum];
4733
+
4734
+ /**
4735
+ *
4736
+ * @export
4737
+ * @interface TrajectoryId
4738
+ */
4739
+ export interface TrajectoryId {
4740
+ /**
4741
+ * Type specifier for server, set automatically.
4742
+ * @type {string}
4743
+ * @memberof TrajectoryId
4744
+ */
4745
+ 'message_type'?: TrajectoryIdMessageTypeEnum;
4746
+ /**
4747
+ * The identifier of the trajectory which was returned by the [addTrajectory](addTrajectory) endpoint.
4748
+ * @type {string}
4749
+ * @memberof TrajectoryId
4750
+ */
4751
+ 'id': string;
4752
+ }
4753
+
4754
+ export const TrajectoryIdMessageTypeEnum = {
4755
+ TrajectoryId: 'TrajectoryId'
4756
+ } as const;
4757
+
4758
+ export type TrajectoryIdMessageTypeEnum = typeof TrajectoryIdMessageTypeEnum[keyof typeof TrajectoryIdMessageTypeEnum];
4759
+
4760
+ /**
4761
+ *
4762
+ * @export
4763
+ * @interface TrajectoryPausedByUser
4764
+ */
4765
+ export interface TrajectoryPausedByUser {
4766
+ /**
4767
+ *
4768
+ * @type {string}
4769
+ * @memberof TrajectoryPausedByUser
4770
+ */
4771
+ 'kind': TrajectoryPausedByUserKindEnum;
4772
+ }
4773
+
4774
+ export const TrajectoryPausedByUserKindEnum = {
4775
+ PausedByUser: 'PAUSED_BY_USER'
4776
+ } as const;
4777
+
4778
+ export type TrajectoryPausedByUserKindEnum = typeof TrajectoryPausedByUserKindEnum[keyof typeof TrajectoryPausedByUserKindEnum];
4779
+
4780
+ /**
4781
+ *
4782
+ * @export
4783
+ * @interface TrajectoryPausedOnIO
4784
+ */
4785
+ export interface TrajectoryPausedOnIO {
4786
+ /**
4787
+ *
4394
4788
  * @type {string}
4395
- * @memberof TrajectoryDetails
4789
+ * @memberof TrajectoryPausedOnIO
4396
4790
  */
4397
- 'kind': TrajectoryDetailsKindEnum;
4791
+ 'kind': TrajectoryPausedOnIOKindEnum;
4398
4792
  }
4399
4793
 
4400
- export const TrajectoryDetailsKindEnum = {
4401
- Trajectory: 'TRAJECTORY'
4794
+ export const TrajectoryPausedOnIOKindEnum = {
4795
+ PausedOnIo: 'PAUSED_ON_IO'
4402
4796
  } as const;
4403
4797
 
4404
- export type TrajectoryDetailsKindEnum = typeof TrajectoryDetailsKindEnum[keyof typeof TrajectoryDetailsKindEnum];
4798
+ export type TrajectoryPausedOnIOKindEnum = typeof TrajectoryPausedOnIOKindEnum[keyof typeof TrajectoryPausedOnIOKindEnum];
4405
4799
 
4406
4800
  /**
4407
- * @type TrajectoryDetailsState
4801
+ *
4408
4802
  * @export
4803
+ * @interface TrajectoryRunning
4409
4804
  */
4410
- export type TrajectoryDetailsState = EndOfTrajectory | PausedByRequest | PausedOnIO | Running1 | WaitForIO;
4805
+ export interface TrajectoryRunning {
4806
+ /**
4807
+ *
4808
+ * @type {string}
4809
+ * @memberof TrajectoryRunning
4810
+ */
4811
+ 'kind': TrajectoryRunningKindEnum;
4812
+ /**
4813
+ * Remaining time in milliseconds (ms) to reach the end of the motion.
4814
+ * @type {number}
4815
+ * @memberof TrajectoryRunning
4816
+ */
4817
+ 'time_to_end': number;
4818
+ }
4819
+
4820
+ export const TrajectoryRunningKindEnum = {
4821
+ Running: 'RUNNING'
4822
+ } as const;
4823
+
4824
+ export type TrajectoryRunningKindEnum = typeof TrajectoryRunningKindEnum[keyof typeof TrajectoryRunningKindEnum];
4411
4825
 
4412
4826
  /**
4413
4827
  *
4414
4828
  * @export
4415
- * @interface TrajectoryId
4829
+ * @interface TrajectoryWaitForIO
4416
4830
  */
4417
- export interface TrajectoryId {
4418
- /**
4419
- * Type specifier for server, set automatically.
4420
- * @type {string}
4421
- * @memberof TrajectoryId
4422
- */
4423
- 'message_type'?: TrajectoryIdMessageTypeEnum;
4831
+ export interface TrajectoryWaitForIO {
4424
4832
  /**
4425
- * The identifier of the trajectory which was returned by the [addTrajectory](addTrajectory) endpoint.
4833
+ *
4426
4834
  * @type {string}
4427
- * @memberof TrajectoryId
4835
+ * @memberof TrajectoryWaitForIO
4428
4836
  */
4429
- 'id': string;
4837
+ 'kind': TrajectoryWaitForIOKindEnum;
4430
4838
  }
4431
4839
 
4432
- export const TrajectoryIdMessageTypeEnum = {
4433
- TrajectoryId: 'TrajectoryId'
4840
+ export const TrajectoryWaitForIOKindEnum = {
4841
+ WaitForIo: 'WAIT_FOR_IO'
4434
4842
  } as const;
4435
4843
 
4436
- export type TrajectoryIdMessageTypeEnum = typeof TrajectoryIdMessageTypeEnum[keyof typeof TrajectoryIdMessageTypeEnum];
4844
+ export type TrajectoryWaitForIOKindEnum = typeof TrajectoryWaitForIOKindEnum[keyof typeof TrajectoryWaitForIOKindEnum];
4437
4845
 
4438
4846
  /**
4439
4847
  * The unit of input/output value.
@@ -4522,6 +4930,12 @@ export interface ValidationError {
4522
4930
  * @memberof ValidationError
4523
4931
  */
4524
4932
  'type': string;
4933
+ /**
4934
+ *
4935
+ * @type {{ [key: string]: any; }}
4936
+ * @memberof ValidationError
4937
+ */
4938
+ 'input': { [key: string]: any; };
4525
4939
  }
4526
4940
  /**
4527
4941
  * @type ValidationErrorLocInner
@@ -4564,7 +4978,7 @@ export interface VirtualController {
4564
4978
  * @type {string}
4565
4979
  * @memberof VirtualController
4566
4980
  */
4567
- 'position'?: string;
4981
+ 'initial_joint_position'?: string;
4568
4982
  }
4569
4983
 
4570
4984
  export const VirtualControllerKindEnum = {
@@ -4614,6 +5028,7 @@ export const VirtualControllerTypes = {
4614
5028
  FanucCrx20ial: 'fanuc-crx20ial',
4615
5029
  FanucCrx25ia: 'fanuc-crx25ia',
4616
5030
  FanucCrx30ia: 'fanuc-crx30ia',
5031
+ FanucCrx5ia: 'fanuc-crx5ia',
4617
5032
  FanucLrMate200iD: 'fanuc-lr_mate_200iD',
4618
5033
  FanucLrMate200iD4S: 'fanuc-lr_mate_200iD4S',
4619
5034
  FanucLrMate200iD7L: 'fanuc-lr_mate_200iD7L',
@@ -4621,6 +5036,7 @@ export const VirtualControllerTypes = {
4621
5036
  FanucM10iD16S: 'fanuc-m10iD16S',
4622
5037
  FanucM20iD25: 'fanuc-m20iD25',
4623
5038
  FanucM20iD35: 'fanuc-m20iD35',
5039
+ FanucM710iC20L: 'fanuc-m710iC20L',
4624
5040
  FanucM900iB280L: 'fanuc-m900iB280L',
4625
5041
  FanucM900iB360E: 'fanuc-m900iB360E',
4626
5042
  FanucR2000ic125l: 'fanuc-r2000ic125l',
@@ -4711,26 +5127,6 @@ export interface VirtualRobotConfiguration {
4711
5127
  */
4712
5128
  'content': string;
4713
5129
  }
4714
- /**
4715
- *
4716
- * @export
4717
- * @interface WaitForIO
4718
- */
4719
- export interface WaitForIO {
4720
- /**
4721
- *
4722
- * @type {string}
4723
- * @memberof WaitForIO
4724
- */
4725
- 'kind': WaitForIOKindEnum;
4726
- }
4727
-
4728
- export const WaitForIOKindEnum = {
4729
- WaitForIo: 'WAIT_FOR_IO'
4730
- } as const;
4731
-
4732
- export type WaitForIOKindEnum = typeof WaitForIOKindEnum[keyof typeof WaitForIOKindEnum];
4733
-
4734
5130
  /**
4735
5131
  * The value to compare with the current value of the input/output.
4736
5132
  * @export
@@ -4786,7 +5182,7 @@ export type YaskawaControllerKindEnum = typeof YaskawaControllerKindEnum[keyof t
4786
5182
  export const ApplicationApiAxiosParamCreator = function (configuration?: Configuration) {
4787
5183
  return {
4788
5184
  /**
4789
- * Install a basic, containerized web application to the cell to control robots with a customized frontend. Prerequisites: A Docker hub account or similar container registry account, with valid credentials. After adding the application to the cell, open the application on the Wandelbots NOVA home screen. Read [build your application](/docs/docs/development/) for more information. <!-- theme: none --> > #### Predefined Environment Variables > - `NOVA_API`: The endpoint where the API is reachable from the container serving the Application. > - `BASE_PATH`: The root path of the deployed Application. It will be reachable via: http://$host/$BASE_PATH > - `CELL_NAME`: The name of the cell where the application is deployed.
5185
+ * Install a basic, containerized web application to the cell to control robots with a customized frontend. Prerequisites: A Docker hub account or similar container registry account, with valid credentials. After adding the application to the cell, open the application on the Wandelbots NOVA home screen. Read [build your application](/docs/docs/development/) for more information. <!-- theme: none --> > #### Predefined Environment Variables > - `NOVA_API`: The API endpoint accessible from within the application container. > - `NATS_BROKER`: The NATS broker endpoint accessible from within the application container. > - `BASE_PATH`: The application\'s root path, accessible at http://$host/$BASE_PATH > - `CELL_NAME`: The name of the cell hosting the deployed application.
4790
5186
  * @summary Add Application
4791
5187
  * @param {string} cell Unique identifier addressing a cell in all API calls.
4792
5188
  * @param {App} app
@@ -5092,7 +5488,7 @@ export const ApplicationApiFp = function(configuration?: Configuration) {
5092
5488
  const localVarAxiosParamCreator = ApplicationApiAxiosParamCreator(configuration)
5093
5489
  return {
5094
5490
  /**
5095
- * Install a basic, containerized web application to the cell to control robots with a customized frontend. Prerequisites: A Docker hub account or similar container registry account, with valid credentials. After adding the application to the cell, open the application on the Wandelbots NOVA home screen. Read [build your application](/docs/docs/development/) for more information. <!-- theme: none --> > #### Predefined Environment Variables > - `NOVA_API`: The endpoint where the API is reachable from the container serving the Application. > - `BASE_PATH`: The root path of the deployed Application. It will be reachable via: http://$host/$BASE_PATH > - `CELL_NAME`: The name of the cell where the application is deployed.
5491
+ * Install a basic, containerized web application to the cell to control robots with a customized frontend. Prerequisites: A Docker hub account or similar container registry account, with valid credentials. After adding the application to the cell, open the application on the Wandelbots NOVA home screen. Read [build your application](/docs/docs/development/) for more information. <!-- theme: none --> > #### Predefined Environment Variables > - `NOVA_API`: The API endpoint accessible from within the application container. > - `NATS_BROKER`: The NATS broker endpoint accessible from within the application container. > - `BASE_PATH`: The application\'s root path, accessible at http://$host/$BASE_PATH > - `CELL_NAME`: The name of the cell hosting the deployed application.
5096
5492
  * @summary Add Application
5097
5493
  * @param {string} cell Unique identifier addressing a cell in all API calls.
5098
5494
  * @param {App} app
@@ -5189,7 +5585,7 @@ export const ApplicationApiFactory = function (configuration?: Configuration, ba
5189
5585
  const localVarFp = ApplicationApiFp(configuration)
5190
5586
  return {
5191
5587
  /**
5192
- * Install a basic, containerized web application to the cell to control robots with a customized frontend. Prerequisites: A Docker hub account or similar container registry account, with valid credentials. After adding the application to the cell, open the application on the Wandelbots NOVA home screen. Read [build your application](/docs/docs/development/) for more information. <!-- theme: none --> > #### Predefined Environment Variables > - `NOVA_API`: The endpoint where the API is reachable from the container serving the Application. > - `BASE_PATH`: The root path of the deployed Application. It will be reachable via: http://$host/$BASE_PATH > - `CELL_NAME`: The name of the cell where the application is deployed.
5588
+ * Install a basic, containerized web application to the cell to control robots with a customized frontend. Prerequisites: A Docker hub account or similar container registry account, with valid credentials. After adding the application to the cell, open the application on the Wandelbots NOVA home screen. Read [build your application](/docs/docs/development/) for more information. <!-- theme: none --> > #### Predefined Environment Variables > - `NOVA_API`: The API endpoint accessible from within the application container. > - `NATS_BROKER`: The NATS broker endpoint accessible from within the application container. > - `BASE_PATH`: The application\'s root path, accessible at http://$host/$BASE_PATH > - `CELL_NAME`: The name of the cell hosting the deployed application.
5193
5589
  * @summary Add Application
5194
5590
  * @param {string} cell Unique identifier addressing a cell in all API calls.
5195
5591
  * @param {App} app
@@ -5268,7 +5664,7 @@ export const ApplicationApiFactory = function (configuration?: Configuration, ba
5268
5664
  */
5269
5665
  export class ApplicationApi extends BaseAPI {
5270
5666
  /**
5271
- * Install a basic, containerized web application to the cell to control robots with a customized frontend. Prerequisites: A Docker hub account or similar container registry account, with valid credentials. After adding the application to the cell, open the application on the Wandelbots NOVA home screen. Read [build your application](/docs/docs/development/) for more information. <!-- theme: none --> > #### Predefined Environment Variables > - `NOVA_API`: The endpoint where the API is reachable from the container serving the Application. > - `BASE_PATH`: The root path of the deployed Application. It will be reachable via: http://$host/$BASE_PATH > - `CELL_NAME`: The name of the cell where the application is deployed.
5667
+ * Install a basic, containerized web application to the cell to control robots with a customized frontend. Prerequisites: A Docker hub account or similar container registry account, with valid credentials. After adding the application to the cell, open the application on the Wandelbots NOVA home screen. Read [build your application](/docs/docs/development/) for more information. <!-- theme: none --> > #### Predefined Environment Variables > - `NOVA_API`: The API endpoint accessible from within the application container. > - `NATS_BROKER`: The NATS broker endpoint accessible from within the application container. > - `BASE_PATH`: The application\'s root path, accessible at http://$host/$BASE_PATH > - `CELL_NAME`: The name of the cell hosting the deployed application.
5272
5668
  * @summary Add Application
5273
5669
  * @param {string} cell Unique identifier addressing a cell in all API calls.
5274
5670
  * @param {App} app
@@ -6262,52 +6658,6 @@ export const ControllerApiAxiosParamCreator = function (configuration?: Configur
6262
6658
 
6263
6659
 
6264
6660
 
6265
- setSearchParams(localVarUrlObj, localVarQueryParameter);
6266
- let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
6267
- localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};
6268
-
6269
- return {
6270
- url: toPathString(localVarUrlObj),
6271
- options: localVarRequestOptions,
6272
- };
6273
- },
6274
- /**
6275
- * Get the current robot system mode of a registered robot controller. The robot system mode indicates if a robot controller can be used. See [setDefaultMode](setDefaultMode) for more information about the different modes. The mode is influenced by the operating mode of the robot controller. The operating mode can be changed via [setDefaultMode](setDefaultMode). Request the current operating mode of the robot controller via [getCurrentRobotControllerState](getCurrentRobotControllerState).
6276
- * @summary Current Mode
6277
- * @param {string} cell Unique identifier addressing a cell in all API calls.
6278
- * @param {string} controller Unique identifier to address a controller in the cell.
6279
- * @param {*} [options] Override http request option.
6280
- * @throws {RequiredError}
6281
- */
6282
- getMode: async (cell: string, controller: string, options: RawAxiosRequestConfig = {}): Promise<RequestArgs> => {
6283
- // verify required parameter 'cell' is not null or undefined
6284
- assertParamExists('getMode', 'cell', cell)
6285
- // verify required parameter 'controller' is not null or undefined
6286
- assertParamExists('getMode', 'controller', controller)
6287
- const localVarPath = `/cells/{cell}/controllers/{controller}/mode`
6288
- .replace(`{${"cell"}}`, encodeURIComponent(String(cell)))
6289
- .replace(`{${"controller"}}`, encodeURIComponent(String(controller)));
6290
- // use dummy base URL string because the URL constructor only accepts absolute URLs.
6291
- const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
6292
- let baseOptions;
6293
- if (configuration) {
6294
- baseOptions = configuration.baseOptions;
6295
- }
6296
-
6297
- const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options};
6298
- const localVarHeaderParameter = {} as any;
6299
- const localVarQueryParameter = {} as any;
6300
-
6301
- // authentication BasicAuth required
6302
- // http basic authentication required
6303
- setBasicAuthToObject(localVarRequestOptions, configuration)
6304
-
6305
- // authentication BearerAuth required
6306
- // http bearer authentication required
6307
- await setBearerAuthToObject(localVarHeaderParameter, configuration)
6308
-
6309
-
6310
-
6311
6661
  setSearchParams(localVarUrlObj, localVarQueryParameter);
6312
6662
  let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
6313
6663
  localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};
@@ -6503,7 +6853,7 @@ export const ControllerApiAxiosParamCreator = function (configuration?: Configur
6503
6853
  };
6504
6854
  },
6505
6855
  /**
6506
- * Switch between monitor and control usage as default for a robot controller. Monitoring mode is used to read information from the robot controller and control mode is used to command the robot system. As long as the robot controller is connected via network monitoring mode is always possible. To switch to control mode the robot controller must be in `automatic` or `manual` operating mode and safety state \'normal\' or \'reduced\'. If the robot controller is in `manual` operating mode, you have manually confirm the control usage activation on the robot control panel. This manual confirmation can\'t be replaced with this API. Without manual confirmation the robot controller will stay in monitor mode. The robot system will try to activate the required operation mode for the requested usage unless no active call requires a different mode. > **NOTE** > > Some robot controllers prevent the external activation of automatic operating mode. In this case, changing the operating mode manually at the robot controller is mandatory. > **NOTE** > > The current operation mode and safety state can be requested via [getCurrentRobotControllerState](getCurrentRobotControllerState). If a mode change is not possible, the response lists reasons for the failed change.
6856
+ * Switch between monitor and control usage as default for a robot controller. Monitoring mode is used to read information from the robot controller and control mode is used to command the robot system. As long as the robot controller is connected via network monitoring mode is always possible. To switch to control mode the robot controller must be in `automatic` or `manual` operating mode and safety state \'normal\' or \'reduced\'. If the robot controller is in `manual` operating mode, you have manually confirm the control usage activation on the robot control panel. This manual confirmation can\'t be replaced with this API. Without manual confirmation the robot controller will stay in monitor mode. The robot system will try to activate the required operation mode for the requested usage unless no active call requires a different mode. > **NOTE** > > `setDefaultMode` enables the robot controller to stay in control mode to keep the motors activated. > This allows for faster execution of sequential movements as no mode switches are required. > **NOTE** > > Some robot controllers prevent the external activation of automatic operating mode. In this case, changing the operating mode manually at the robot controller is mandatory. > **NOTE** > > The current operation mode and safety state can be requested via [getCurrentRobotControllerState](getCurrentRobotControllerState). If a mode change is not possible, the response lists reasons for the failed change.
6507
6857
  * @summary Set Default Mode
6508
6858
  * @param {string} cell Unique identifier addressing a cell in all API calls.
6509
6859
  * @param {string} controller Unique identifier to address a controller in the cell.
@@ -6607,15 +6957,16 @@ export const ControllerApiAxiosParamCreator = function (configuration?: Configur
6607
6957
  };
6608
6958
  },
6609
6959
  /**
6610
- * <!-- theme: danger --> > Websocket endpoint Receive updates of the state of a robot controller.
6960
+ * <!-- theme: danger --> > Websocket endpoint Receive updates of the state of a robot controller. The stream can be opened before the controller is registered. To register a controller, call [addRobotController](addRobotController). While connecting, the stream sends initialization updates. Once the controller reaches `MODE_MONITOR`, it sends controller state updates.
6611
6961
  * @summary Stream State
6612
6962
  * @param {string} cell Unique identifier addressing a cell in all API calls.
6613
6963
  * @param {string} controller Unique identifier to address a controller in the cell.
6614
6964
  * @param {number} [responseRate]
6965
+ * @param {number} [addControllerTimeout]
6615
6966
  * @param {*} [options] Override http request option.
6616
6967
  * @throws {RequiredError}
6617
6968
  */
6618
- streamRobotControllerState: async (cell: string, controller: string, responseRate?: number, options: RawAxiosRequestConfig = {}): Promise<RequestArgs> => {
6969
+ streamRobotControllerState: async (cell: string, controller: string, responseRate?: number, addControllerTimeout?: number, options: RawAxiosRequestConfig = {}): Promise<RequestArgs> => {
6619
6970
  // verify required parameter 'cell' is not null or undefined
6620
6971
  assertParamExists('streamRobotControllerState', 'cell', cell)
6621
6972
  // verify required parameter 'controller' is not null or undefined
@@ -6646,6 +6997,10 @@ export const ControllerApiAxiosParamCreator = function (configuration?: Configur
6646
6997
  localVarQueryParameter['response_rate'] = responseRate;
6647
6998
  }
6648
6999
 
7000
+ if (addControllerTimeout !== undefined) {
7001
+ localVarQueryParameter['add_controller_timeout'] = addControllerTimeout;
7002
+ }
7003
+
6649
7004
 
6650
7005
 
6651
7006
  setSearchParams(localVarUrlObj, localVarQueryParameter);
@@ -6812,20 +7167,6 @@ export const ControllerApiFp = function(configuration?: Configuration) {
6812
7167
  const localVarOperationServerBasePath = operationServerMap['ControllerApi.getCurrentRobotControllerState']?.[localVarOperationServerIndex]?.url;
6813
7168
  return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
6814
7169
  },
6815
- /**
6816
- * Get the current robot system mode of a registered robot controller. The robot system mode indicates if a robot controller can be used. See [setDefaultMode](setDefaultMode) for more information about the different modes. The mode is influenced by the operating mode of the robot controller. The operating mode can be changed via [setDefaultMode](setDefaultMode). Request the current operating mode of the robot controller via [getCurrentRobotControllerState](getCurrentRobotControllerState).
6817
- * @summary Current Mode
6818
- * @param {string} cell Unique identifier addressing a cell in all API calls.
6819
- * @param {string} controller Unique identifier to address a controller in the cell.
6820
- * @param {*} [options] Override http request option.
6821
- * @throws {RequiredError}
6822
- */
6823
- async getMode(cell: string, controller: string, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<GetModeResponse>> {
6824
- const localVarAxiosArgs = await localVarAxiosParamCreator.getMode(cell, controller, options);
6825
- const localVarOperationServerIndex = configuration?.serverIndex ?? 0;
6826
- const localVarOperationServerBasePath = operationServerMap['ControllerApi.getMode']?.[localVarOperationServerIndex]?.url;
6827
- return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
6828
- },
6829
7170
  /**
6830
7171
  * Get the configuration for a robot controller.
6831
7172
  * @summary Robot Controller
@@ -6883,7 +7224,7 @@ export const ControllerApiFp = function(configuration?: Configuration) {
6883
7224
  return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
6884
7225
  },
6885
7226
  /**
6886
- * Switch between monitor and control usage as default for a robot controller. Monitoring mode is used to read information from the robot controller and control mode is used to command the robot system. As long as the robot controller is connected via network monitoring mode is always possible. To switch to control mode the robot controller must be in `automatic` or `manual` operating mode and safety state \'normal\' or \'reduced\'. If the robot controller is in `manual` operating mode, you have manually confirm the control usage activation on the robot control panel. This manual confirmation can\'t be replaced with this API. Without manual confirmation the robot controller will stay in monitor mode. The robot system will try to activate the required operation mode for the requested usage unless no active call requires a different mode. > **NOTE** > > Some robot controllers prevent the external activation of automatic operating mode. In this case, changing the operating mode manually at the robot controller is mandatory. > **NOTE** > > The current operation mode and safety state can be requested via [getCurrentRobotControllerState](getCurrentRobotControllerState). If a mode change is not possible, the response lists reasons for the failed change.
7227
+ * Switch between monitor and control usage as default for a robot controller. Monitoring mode is used to read information from the robot controller and control mode is used to command the robot system. As long as the robot controller is connected via network monitoring mode is always possible. To switch to control mode the robot controller must be in `automatic` or `manual` operating mode and safety state \'normal\' or \'reduced\'. If the robot controller is in `manual` operating mode, you have manually confirm the control usage activation on the robot control panel. This manual confirmation can\'t be replaced with this API. Without manual confirmation the robot controller will stay in monitor mode. The robot system will try to activate the required operation mode for the requested usage unless no active call requires a different mode. > **NOTE** > > `setDefaultMode` enables the robot controller to stay in control mode to keep the motors activated. > This allows for faster execution of sequential movements as no mode switches are required. > **NOTE** > > Some robot controllers prevent the external activation of automatic operating mode. In this case, changing the operating mode manually at the robot controller is mandatory. > **NOTE** > > The current operation mode and safety state can be requested via [getCurrentRobotControllerState](getCurrentRobotControllerState). If a mode change is not possible, the response lists reasons for the failed change.
6887
7228
  * @summary Set Default Mode
6888
7229
  * @param {string} cell Unique identifier addressing a cell in all API calls.
6889
7230
  * @param {string} controller Unique identifier to address a controller in the cell.
@@ -6913,16 +7254,17 @@ export const ControllerApiFp = function(configuration?: Configuration) {
6913
7254
  return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
6914
7255
  },
6915
7256
  /**
6916
- * <!-- theme: danger --> > Websocket endpoint Receive updates of the state of a robot controller.
7257
+ * <!-- theme: danger --> > Websocket endpoint Receive updates of the state of a robot controller. The stream can be opened before the controller is registered. To register a controller, call [addRobotController](addRobotController). While connecting, the stream sends initialization updates. Once the controller reaches `MODE_MONITOR`, it sends controller state updates.
6917
7258
  * @summary Stream State
6918
7259
  * @param {string} cell Unique identifier addressing a cell in all API calls.
6919
7260
  * @param {string} controller Unique identifier to address a controller in the cell.
6920
7261
  * @param {number} [responseRate]
7262
+ * @param {number} [addControllerTimeout]
6921
7263
  * @param {*} [options] Override http request option.
6922
7264
  * @throws {RequiredError}
6923
7265
  */
6924
- async streamRobotControllerState(cell: string, controller: string, responseRate?: number, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<RobotControllerState>> {
6925
- const localVarAxiosArgs = await localVarAxiosParamCreator.streamRobotControllerState(cell, controller, responseRate, options);
7266
+ async streamRobotControllerState(cell: string, controller: string, responseRate?: number, addControllerTimeout?: number, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<RobotControllerState>> {
7267
+ const localVarAxiosArgs = await localVarAxiosParamCreator.streamRobotControllerState(cell, controller, responseRate, addControllerTimeout, options);
6926
7268
  const localVarOperationServerIndex = configuration?.serverIndex ?? 0;
6927
7269
  const localVarOperationServerBasePath = operationServerMap['ControllerApi.streamRobotControllerState']?.[localVarOperationServerIndex]?.url;
6928
7270
  return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
@@ -7023,17 +7365,6 @@ export const ControllerApiFactory = function (configuration?: Configuration, bas
7023
7365
  getCurrentRobotControllerState(cell: string, controller: string, options?: RawAxiosRequestConfig): AxiosPromise<RobotControllerState> {
7024
7366
  return localVarFp.getCurrentRobotControllerState(cell, controller, options).then((request) => request(axios, basePath));
7025
7367
  },
7026
- /**
7027
- * Get the current robot system mode of a registered robot controller. The robot system mode indicates if a robot controller can be used. See [setDefaultMode](setDefaultMode) for more information about the different modes. The mode is influenced by the operating mode of the robot controller. The operating mode can be changed via [setDefaultMode](setDefaultMode). Request the current operating mode of the robot controller via [getCurrentRobotControllerState](getCurrentRobotControllerState).
7028
- * @summary Current Mode
7029
- * @param {string} cell Unique identifier addressing a cell in all API calls.
7030
- * @param {string} controller Unique identifier to address a controller in the cell.
7031
- * @param {*} [options] Override http request option.
7032
- * @throws {RequiredError}
7033
- */
7034
- getMode(cell: string, controller: string, options?: RawAxiosRequestConfig): AxiosPromise<GetModeResponse> {
7035
- return localVarFp.getMode(cell, controller, options).then((request) => request(axios, basePath));
7036
- },
7037
7368
  /**
7038
7369
  * Get the configuration for a robot controller.
7039
7370
  * @summary Robot Controller
@@ -7079,7 +7410,7 @@ export const ControllerApiFactory = function (configuration?: Configuration, bas
7079
7410
  return localVarFp.listRobotControllers(cell, options).then((request) => request(axios, basePath));
7080
7411
  },
7081
7412
  /**
7082
- * Switch between monitor and control usage as default for a robot controller. Monitoring mode is used to read information from the robot controller and control mode is used to command the robot system. As long as the robot controller is connected via network monitoring mode is always possible. To switch to control mode the robot controller must be in `automatic` or `manual` operating mode and safety state \'normal\' or \'reduced\'. If the robot controller is in `manual` operating mode, you have manually confirm the control usage activation on the robot control panel. This manual confirmation can\'t be replaced with this API. Without manual confirmation the robot controller will stay in monitor mode. The robot system will try to activate the required operation mode for the requested usage unless no active call requires a different mode. > **NOTE** > > Some robot controllers prevent the external activation of automatic operating mode. In this case, changing the operating mode manually at the robot controller is mandatory. > **NOTE** > > The current operation mode and safety state can be requested via [getCurrentRobotControllerState](getCurrentRobotControllerState). If a mode change is not possible, the response lists reasons for the failed change.
7413
+ * Switch between monitor and control usage as default for a robot controller. Monitoring mode is used to read information from the robot controller and control mode is used to command the robot system. As long as the robot controller is connected via network monitoring mode is always possible. To switch to control mode the robot controller must be in `automatic` or `manual` operating mode and safety state \'normal\' or \'reduced\'. If the robot controller is in `manual` operating mode, you have manually confirm the control usage activation on the robot control panel. This manual confirmation can\'t be replaced with this API. Without manual confirmation the robot controller will stay in monitor mode. The robot system will try to activate the required operation mode for the requested usage unless no active call requires a different mode. > **NOTE** > > `setDefaultMode` enables the robot controller to stay in control mode to keep the motors activated. > This allows for faster execution of sequential movements as no mode switches are required. > **NOTE** > > Some robot controllers prevent the external activation of automatic operating mode. In this case, changing the operating mode manually at the robot controller is mandatory. > **NOTE** > > The current operation mode and safety state can be requested via [getCurrentRobotControllerState](getCurrentRobotControllerState). If a mode change is not possible, the response lists reasons for the failed change.
7083
7414
  * @summary Set Default Mode
7084
7415
  * @param {string} cell Unique identifier addressing a cell in all API calls.
7085
7416
  * @param {string} controller Unique identifier to address a controller in the cell.
@@ -7103,16 +7434,17 @@ export const ControllerApiFactory = function (configuration?: Configuration, bas
7103
7434
  return localVarFp.streamFreeDrive(cell, controller, responseRate, options).then((request) => request(axios, basePath));
7104
7435
  },
7105
7436
  /**
7106
- * <!-- theme: danger --> > Websocket endpoint Receive updates of the state of a robot controller.
7437
+ * <!-- theme: danger --> > Websocket endpoint Receive updates of the state of a robot controller. The stream can be opened before the controller is registered. To register a controller, call [addRobotController](addRobotController). While connecting, the stream sends initialization updates. Once the controller reaches `MODE_MONITOR`, it sends controller state updates.
7107
7438
  * @summary Stream State
7108
7439
  * @param {string} cell Unique identifier addressing a cell in all API calls.
7109
7440
  * @param {string} controller Unique identifier to address a controller in the cell.
7110
7441
  * @param {number} [responseRate]
7442
+ * @param {number} [addControllerTimeout]
7111
7443
  * @param {*} [options] Override http request option.
7112
7444
  * @throws {RequiredError}
7113
7445
  */
7114
- streamRobotControllerState(cell: string, controller: string, responseRate?: number, options?: RawAxiosRequestConfig): AxiosPromise<RobotControllerState> {
7115
- return localVarFp.streamRobotControllerState(cell, controller, responseRate, options).then((request) => request(axios, basePath));
7446
+ streamRobotControllerState(cell: string, controller: string, responseRate?: number, addControllerTimeout?: number, options?: RawAxiosRequestConfig): AxiosPromise<RobotControllerState> {
7447
+ return localVarFp.streamRobotControllerState(cell, controller, responseRate, addControllerTimeout, options).then((request) => request(axios, basePath));
7116
7448
  },
7117
7449
  /**
7118
7450
  * Update the configuration of a robot controller. Reconfigure certain options of a robot controller, or deploy a specific container image of a robot controller. <!-- theme: warning --> > **WARNING** > > Using it in conjunction with the settings app may lead to unpredictable behavior.
@@ -7219,19 +7551,6 @@ export class ControllerApi extends BaseAPI {
7219
7551
  return ControllerApiFp(this.configuration).getCurrentRobotControllerState(cell, controller, options).then((request) => request(this.axios, this.basePath));
7220
7552
  }
7221
7553
 
7222
- /**
7223
- * Get the current robot system mode of a registered robot controller. The robot system mode indicates if a robot controller can be used. See [setDefaultMode](setDefaultMode) for more information about the different modes. The mode is influenced by the operating mode of the robot controller. The operating mode can be changed via [setDefaultMode](setDefaultMode). Request the current operating mode of the robot controller via [getCurrentRobotControllerState](getCurrentRobotControllerState).
7224
- * @summary Current Mode
7225
- * @param {string} cell Unique identifier addressing a cell in all API calls.
7226
- * @param {string} controller Unique identifier to address a controller in the cell.
7227
- * @param {*} [options] Override http request option.
7228
- * @throws {RequiredError}
7229
- * @memberof ControllerApi
7230
- */
7231
- public getMode(cell: string, controller: string, options?: RawAxiosRequestConfig) {
7232
- return ControllerApiFp(this.configuration).getMode(cell, controller, options).then((request) => request(this.axios, this.basePath));
7233
- }
7234
-
7235
7554
  /**
7236
7555
  * Get the configuration for a robot controller.
7237
7556
  * @summary Robot Controller
@@ -7285,7 +7604,7 @@ export class ControllerApi extends BaseAPI {
7285
7604
  }
7286
7605
 
7287
7606
  /**
7288
- * Switch between monitor and control usage as default for a robot controller. Monitoring mode is used to read information from the robot controller and control mode is used to command the robot system. As long as the robot controller is connected via network monitoring mode is always possible. To switch to control mode the robot controller must be in `automatic` or `manual` operating mode and safety state \'normal\' or \'reduced\'. If the robot controller is in `manual` operating mode, you have manually confirm the control usage activation on the robot control panel. This manual confirmation can\'t be replaced with this API. Without manual confirmation the robot controller will stay in monitor mode. The robot system will try to activate the required operation mode for the requested usage unless no active call requires a different mode. > **NOTE** > > Some robot controllers prevent the external activation of automatic operating mode. In this case, changing the operating mode manually at the robot controller is mandatory. > **NOTE** > > The current operation mode and safety state can be requested via [getCurrentRobotControllerState](getCurrentRobotControllerState). If a mode change is not possible, the response lists reasons for the failed change.
7607
+ * Switch between monitor and control usage as default for a robot controller. Monitoring mode is used to read information from the robot controller and control mode is used to command the robot system. As long as the robot controller is connected via network monitoring mode is always possible. To switch to control mode the robot controller must be in `automatic` or `manual` operating mode and safety state \'normal\' or \'reduced\'. If the robot controller is in `manual` operating mode, you have manually confirm the control usage activation on the robot control panel. This manual confirmation can\'t be replaced with this API. Without manual confirmation the robot controller will stay in monitor mode. The robot system will try to activate the required operation mode for the requested usage unless no active call requires a different mode. > **NOTE** > > `setDefaultMode` enables the robot controller to stay in control mode to keep the motors activated. > This allows for faster execution of sequential movements as no mode switches are required. > **NOTE** > > Some robot controllers prevent the external activation of automatic operating mode. In this case, changing the operating mode manually at the robot controller is mandatory. > **NOTE** > > The current operation mode and safety state can be requested via [getCurrentRobotControllerState](getCurrentRobotControllerState). If a mode change is not possible, the response lists reasons for the failed change.
7289
7608
  * @summary Set Default Mode
7290
7609
  * @param {string} cell Unique identifier addressing a cell in all API calls.
7291
7610
  * @param {string} controller Unique identifier to address a controller in the cell.
@@ -7313,17 +7632,18 @@ export class ControllerApi extends BaseAPI {
7313
7632
  }
7314
7633
 
7315
7634
  /**
7316
- * <!-- theme: danger --> > Websocket endpoint Receive updates of the state of a robot controller.
7635
+ * <!-- theme: danger --> > Websocket endpoint Receive updates of the state of a robot controller. The stream can be opened before the controller is registered. To register a controller, call [addRobotController](addRobotController). While connecting, the stream sends initialization updates. Once the controller reaches `MODE_MONITOR`, it sends controller state updates.
7317
7636
  * @summary Stream State
7318
7637
  * @param {string} cell Unique identifier addressing a cell in all API calls.
7319
7638
  * @param {string} controller Unique identifier to address a controller in the cell.
7320
7639
  * @param {number} [responseRate]
7640
+ * @param {number} [addControllerTimeout]
7321
7641
  * @param {*} [options] Override http request option.
7322
7642
  * @throws {RequiredError}
7323
7643
  * @memberof ControllerApi
7324
7644
  */
7325
- public streamRobotControllerState(cell: string, controller: string, responseRate?: number, options?: RawAxiosRequestConfig) {
7326
- return ControllerApiFp(this.configuration).streamRobotControllerState(cell, controller, responseRate, options).then((request) => request(this.axios, this.basePath));
7645
+ public streamRobotControllerState(cell: string, controller: string, responseRate?: number, addControllerTimeout?: number, options?: RawAxiosRequestConfig) {
7646
+ return ControllerApiFp(this.configuration).streamRobotControllerState(cell, controller, responseRate, addControllerTimeout, options).then((request) => request(this.axios, this.basePath));
7327
7647
  }
7328
7648
 
7329
7649
  /**
@@ -8007,6 +8327,52 @@ export class JoggingApi extends BaseAPI {
8007
8327
  */
8008
8328
  export const KinematicsApiAxiosParamCreator = function (configuration?: Configuration) {
8009
8329
  return {
8330
+ /**
8331
+ * Returns the TCP poses for a list of given joint positions.
8332
+ * @summary Forward kinematics
8333
+ * @param {string} cell Unique identifier addressing a cell in all API calls.
8334
+ * @param {ForwardKinematicsRequest} [forwardKinematicsRequest]
8335
+ * @param {*} [options] Override http request option.
8336
+ * @throws {RequiredError}
8337
+ */
8338
+ forwardKinematics: async (cell: string, forwardKinematicsRequest?: ForwardKinematicsRequest, options: RawAxiosRequestConfig = {}): Promise<RequestArgs> => {
8339
+ // verify required parameter 'cell' is not null or undefined
8340
+ assertParamExists('forwardKinematics', 'cell', cell)
8341
+ const localVarPath = `/cells/{cell}/kinematic/forward`
8342
+ .replace(`{${"cell"}}`, encodeURIComponent(String(cell)));
8343
+ // use dummy base URL string because the URL constructor only accepts absolute URLs.
8344
+ const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
8345
+ let baseOptions;
8346
+ if (configuration) {
8347
+ baseOptions = configuration.baseOptions;
8348
+ }
8349
+
8350
+ const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options};
8351
+ const localVarHeaderParameter = {} as any;
8352
+ const localVarQueryParameter = {} as any;
8353
+
8354
+ // authentication BasicAuth required
8355
+ // http basic authentication required
8356
+ setBasicAuthToObject(localVarRequestOptions, configuration)
8357
+
8358
+ // authentication BearerAuth required
8359
+ // http bearer authentication required
8360
+ await setBearerAuthToObject(localVarHeaderParameter, configuration)
8361
+
8362
+
8363
+
8364
+ localVarHeaderParameter['Content-Type'] = 'application/json';
8365
+
8366
+ setSearchParams(localVarUrlObj, localVarQueryParameter);
8367
+ let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
8368
+ localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};
8369
+ localVarRequestOptions.data = serializeDataIfNeeded(forwardKinematicsRequest, localVarRequestOptions, configuration)
8370
+
8371
+ return {
8372
+ url: toPathString(localVarUrlObj),
8373
+ options: localVarRequestOptions,
8374
+ };
8375
+ },
8010
8376
  /**
8011
8377
  * Returns the reachable joint positions for a list of given poses.
8012
8378
  * @summary Inverse kinematics
@@ -8063,6 +8429,20 @@ export const KinematicsApiAxiosParamCreator = function (configuration?: Configur
8063
8429
  export const KinematicsApiFp = function(configuration?: Configuration) {
8064
8430
  const localVarAxiosParamCreator = KinematicsApiAxiosParamCreator(configuration)
8065
8431
  return {
8432
+ /**
8433
+ * Returns the TCP poses for a list of given joint positions.
8434
+ * @summary Forward kinematics
8435
+ * @param {string} cell Unique identifier addressing a cell in all API calls.
8436
+ * @param {ForwardKinematicsRequest} [forwardKinematicsRequest]
8437
+ * @param {*} [options] Override http request option.
8438
+ * @throws {RequiredError}
8439
+ */
8440
+ async forwardKinematics(cell: string, forwardKinematicsRequest?: ForwardKinematicsRequest, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<ForwardKinematicsResponse>> {
8441
+ const localVarAxiosArgs = await localVarAxiosParamCreator.forwardKinematics(cell, forwardKinematicsRequest, options);
8442
+ const localVarOperationServerIndex = configuration?.serverIndex ?? 0;
8443
+ const localVarOperationServerBasePath = operationServerMap['KinematicsApi.forwardKinematics']?.[localVarOperationServerIndex]?.url;
8444
+ return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
8445
+ },
8066
8446
  /**
8067
8447
  * Returns the reachable joint positions for a list of given poses.
8068
8448
  * @summary Inverse kinematics
@@ -8087,6 +8467,17 @@ export const KinematicsApiFp = function(configuration?: Configuration) {
8087
8467
  export const KinematicsApiFactory = function (configuration?: Configuration, basePath?: string, axios?: AxiosInstance) {
8088
8468
  const localVarFp = KinematicsApiFp(configuration)
8089
8469
  return {
8470
+ /**
8471
+ * Returns the TCP poses for a list of given joint positions.
8472
+ * @summary Forward kinematics
8473
+ * @param {string} cell Unique identifier addressing a cell in all API calls.
8474
+ * @param {ForwardKinematicsRequest} [forwardKinematicsRequest]
8475
+ * @param {*} [options] Override http request option.
8476
+ * @throws {RequiredError}
8477
+ */
8478
+ forwardKinematics(cell: string, forwardKinematicsRequest?: ForwardKinematicsRequest, options?: RawAxiosRequestConfig): AxiosPromise<ForwardKinematicsResponse> {
8479
+ return localVarFp.forwardKinematics(cell, forwardKinematicsRequest, options).then((request) => request(axios, basePath));
8480
+ },
8090
8481
  /**
8091
8482
  * Returns the reachable joint positions for a list of given poses.
8092
8483
  * @summary Inverse kinematics
@@ -8108,6 +8499,19 @@ export const KinematicsApiFactory = function (configuration?: Configuration, bas
8108
8499
  * @extends {BaseAPI}
8109
8500
  */
8110
8501
  export class KinematicsApi extends BaseAPI {
8502
+ /**
8503
+ * Returns the TCP poses for a list of given joint positions.
8504
+ * @summary Forward kinematics
8505
+ * @param {string} cell Unique identifier addressing a cell in all API calls.
8506
+ * @param {ForwardKinematicsRequest} [forwardKinematicsRequest]
8507
+ * @param {*} [options] Override http request option.
8508
+ * @throws {RequiredError}
8509
+ * @memberof KinematicsApi
8510
+ */
8511
+ public forwardKinematics(cell: string, forwardKinematicsRequest?: ForwardKinematicsRequest, options?: RawAxiosRequestConfig) {
8512
+ return KinematicsApiFp(this.configuration).forwardKinematics(cell, forwardKinematicsRequest, options).then((request) => request(this.axios, this.basePath));
8513
+ }
8514
+
8111
8515
  /**
8112
8516
  * Returns the reachable joint positions for a list of given poses.
8113
8517
  * @summary Inverse kinematics
@@ -10042,27 +10446,27 @@ export class StoreCollisionComponentsApi extends BaseAPI {
10042
10446
 
10043
10447
 
10044
10448
  /**
10045
- * StoreCollisionScenesApi - axios parameter creator
10449
+ * StoreCollisionSetupsApi - axios parameter creator
10046
10450
  * @export
10047
10451
  */
10048
- export const StoreCollisionScenesApiAxiosParamCreator = function (configuration?: Configuration) {
10452
+ export const StoreCollisionSetupsApiAxiosParamCreator = function (configuration?: Configuration) {
10049
10453
  return {
10050
10454
  /**
10051
- * Deletes the stored scene. <!-- theme: danger --> > This will delete persistently stored data.
10052
- * @summary Delete Scene
10455
+ * Deletes the stored collision setup. <!-- theme: danger --> > This will delete persistently stored data.
10456
+ * @summary Delete Collision Setup
10053
10457
  * @param {string} cell Unique identifier addressing a cell in all API calls.
10054
- * @param {string} scene Unique identifier addressing a collision scene.
10458
+ * @param {string} setup Identifier of the collision setup
10055
10459
  * @param {*} [options] Override http request option.
10056
10460
  * @throws {RequiredError}
10057
10461
  */
10058
- deleteStoredCollisionScene: async (cell: string, scene: string, options: RawAxiosRequestConfig = {}): Promise<RequestArgs> => {
10462
+ deleteStoredCollisionSetup: async (cell: string, setup: string, options: RawAxiosRequestConfig = {}): Promise<RequestArgs> => {
10059
10463
  // verify required parameter 'cell' is not null or undefined
10060
- assertParamExists('deleteStoredCollisionScene', 'cell', cell)
10061
- // verify required parameter 'scene' is not null or undefined
10062
- assertParamExists('deleteStoredCollisionScene', 'scene', scene)
10063
- const localVarPath = `/cells/{cell}/store/collision/scenes/{scene}`
10464
+ assertParamExists('deleteStoredCollisionSetup', 'cell', cell)
10465
+ // verify required parameter 'setup' is not null or undefined
10466
+ assertParamExists('deleteStoredCollisionSetup', 'setup', setup)
10467
+ const localVarPath = `/cells/{cell}/store/collision/setups/{setup}`
10064
10468
  .replace(`{${"cell"}}`, encodeURIComponent(String(cell)))
10065
- .replace(`{${"scene"}}`, encodeURIComponent(String(scene)));
10469
+ .replace(`{${"setup"}}`, encodeURIComponent(String(setup)));
10066
10470
  // use dummy base URL string because the URL constructor only accepts absolute URLs.
10067
10471
  const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
10068
10472
  let baseOptions;
@@ -10094,21 +10498,21 @@ export const StoreCollisionScenesApiAxiosParamCreator = function (configuration?
10094
10498
  };
10095
10499
  },
10096
10500
  /**
10097
- * Returns the stored scene.
10098
- * @summary Get Scene
10501
+ * Returns the stored collision setup.
10502
+ * @summary Get Collision Setup
10099
10503
  * @param {string} cell Unique identifier addressing a cell in all API calls.
10100
- * @param {string} scene Unique identifier addressing a collision scene.
10504
+ * @param {string} setup Identifier of the collision setup
10101
10505
  * @param {*} [options] Override http request option.
10102
10506
  * @throws {RequiredError}
10103
10507
  */
10104
- getStoredCollisionScene: async (cell: string, scene: string, options: RawAxiosRequestConfig = {}): Promise<RequestArgs> => {
10508
+ getStoredCollisionSetup: async (cell: string, setup: string, options: RawAxiosRequestConfig = {}): Promise<RequestArgs> => {
10105
10509
  // verify required parameter 'cell' is not null or undefined
10106
- assertParamExists('getStoredCollisionScene', 'cell', cell)
10107
- // verify required parameter 'scene' is not null or undefined
10108
- assertParamExists('getStoredCollisionScene', 'scene', scene)
10109
- const localVarPath = `/cells/{cell}/store/collision/scenes/{scene}`
10510
+ assertParamExists('getStoredCollisionSetup', 'cell', cell)
10511
+ // verify required parameter 'setup' is not null or undefined
10512
+ assertParamExists('getStoredCollisionSetup', 'setup', setup)
10513
+ const localVarPath = `/cells/{cell}/store/collision/setups/{setup}`
10110
10514
  .replace(`{${"cell"}}`, encodeURIComponent(String(cell)))
10111
- .replace(`{${"scene"}}`, encodeURIComponent(String(scene)));
10515
+ .replace(`{${"setup"}}`, encodeURIComponent(String(setup)));
10112
10516
  // use dummy base URL string because the URL constructor only accepts absolute URLs.
10113
10517
  const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
10114
10518
  let baseOptions;
@@ -10140,16 +10544,16 @@ export const StoreCollisionScenesApiAxiosParamCreator = function (configuration?
10140
10544
  };
10141
10545
  },
10142
10546
  /**
10143
- * Returns a list of stored scenes.
10144
- * @summary List Scenes
10547
+ * Returns a list of stored collision setups.
10548
+ * @summary List Collision Setups
10145
10549
  * @param {string} cell Unique identifier addressing a cell in all API calls.
10146
10550
  * @param {*} [options] Override http request option.
10147
10551
  * @throws {RequiredError}
10148
10552
  */
10149
- listStoredCollisionScenes: async (cell: string, options: RawAxiosRequestConfig = {}): Promise<RequestArgs> => {
10553
+ listStoredCollisionSetups: async (cell: string, options: RawAxiosRequestConfig = {}): Promise<RequestArgs> => {
10150
10554
  // verify required parameter 'cell' is not null or undefined
10151
- assertParamExists('listStoredCollisionScenes', 'cell', cell)
10152
- const localVarPath = `/cells/{cell}/store/collision/scenes`
10555
+ assertParamExists('listStoredCollisionSetups', 'cell', cell)
10556
+ const localVarPath = `/cells/{cell}/store/collision/setups`
10153
10557
  .replace(`{${"cell"}}`, encodeURIComponent(String(cell)));
10154
10558
  // use dummy base URL string because the URL constructor only accepts absolute URLs.
10155
10559
  const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
@@ -10182,24 +10586,24 @@ export const StoreCollisionScenesApiAxiosParamCreator = function (configuration?
10182
10586
  };
10183
10587
  },
10184
10588
  /**
10185
- * Creates or replaces the stored collision scene. The scene is assembled from components as defined in the request body. <!-- theme: info --> > This endpoint allows indicating previously stored components. > Components used within the request will be copied into the new or updated scene. An error is returned if an indicated component does not exist.
10186
- * @summary Store Scene
10589
+ * Stores collision setup. If the collision setup does not exist, it will be created. If the collision setup exists, it will be updated.
10590
+ * @summary Store Collision Setup
10187
10591
  * @param {string} cell Unique identifier addressing a cell in all API calls.
10188
- * @param {string} scene Unique identifier addressing a collision scene.
10189
- * @param {CollisionSceneAssembly} collisionSceneAssembly
10592
+ * @param {string} setup Identifier of the collision setup
10593
+ * @param {CollisionSetup} collisionSetup
10190
10594
  * @param {*} [options] Override http request option.
10191
10595
  * @throws {RequiredError}
10192
10596
  */
10193
- storeCollisionScene: async (cell: string, scene: string, collisionSceneAssembly: CollisionSceneAssembly, options: RawAxiosRequestConfig = {}): Promise<RequestArgs> => {
10597
+ storeCollisionSetup: async (cell: string, setup: string, collisionSetup: CollisionSetup, options: RawAxiosRequestConfig = {}): Promise<RequestArgs> => {
10194
10598
  // verify required parameter 'cell' is not null or undefined
10195
- assertParamExists('storeCollisionScene', 'cell', cell)
10196
- // verify required parameter 'scene' is not null or undefined
10197
- assertParamExists('storeCollisionScene', 'scene', scene)
10198
- // verify required parameter 'collisionSceneAssembly' is not null or undefined
10199
- assertParamExists('storeCollisionScene', 'collisionSceneAssembly', collisionSceneAssembly)
10200
- const localVarPath = `/cells/{cell}/store/collision/scenes/{scene}`
10599
+ assertParamExists('storeCollisionSetup', 'cell', cell)
10600
+ // verify required parameter 'setup' is not null or undefined
10601
+ assertParamExists('storeCollisionSetup', 'setup', setup)
10602
+ // verify required parameter 'collisionSetup' is not null or undefined
10603
+ assertParamExists('storeCollisionSetup', 'collisionSetup', collisionSetup)
10604
+ const localVarPath = `/cells/{cell}/store/collision/setups/{setup}`
10201
10605
  .replace(`{${"cell"}}`, encodeURIComponent(String(cell)))
10202
- .replace(`{${"scene"}}`, encodeURIComponent(String(scene)));
10606
+ .replace(`{${"setup"}}`, encodeURIComponent(String(setup)));
10203
10607
  // use dummy base URL string because the URL constructor only accepts absolute URLs.
10204
10608
  const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
10205
10609
  let baseOptions;
@@ -10226,7 +10630,7 @@ export const StoreCollisionScenesApiAxiosParamCreator = function (configuration?
10226
10630
  setSearchParams(localVarUrlObj, localVarQueryParameter);
10227
10631
  let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
10228
10632
  localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};
10229
- localVarRequestOptions.data = serializeDataIfNeeded(collisionSceneAssembly, localVarRequestOptions, configuration)
10633
+ localVarRequestOptions.data = serializeDataIfNeeded(collisionSetup, localVarRequestOptions, configuration)
10230
10634
 
10231
10635
  return {
10232
10636
  url: toPathString(localVarUrlObj),
@@ -10237,182 +10641,182 @@ export const StoreCollisionScenesApiAxiosParamCreator = function (configuration?
10237
10641
  };
10238
10642
 
10239
10643
  /**
10240
- * StoreCollisionScenesApi - functional programming interface
10644
+ * StoreCollisionSetupsApi - functional programming interface
10241
10645
  * @export
10242
10646
  */
10243
- export const StoreCollisionScenesApiFp = function(configuration?: Configuration) {
10244
- const localVarAxiosParamCreator = StoreCollisionScenesApiAxiosParamCreator(configuration)
10647
+ export const StoreCollisionSetupsApiFp = function(configuration?: Configuration) {
10648
+ const localVarAxiosParamCreator = StoreCollisionSetupsApiAxiosParamCreator(configuration)
10245
10649
  return {
10246
10650
  /**
10247
- * Deletes the stored scene. <!-- theme: danger --> > This will delete persistently stored data.
10248
- * @summary Delete Scene
10651
+ * Deletes the stored collision setup. <!-- theme: danger --> > This will delete persistently stored data.
10652
+ * @summary Delete Collision Setup
10249
10653
  * @param {string} cell Unique identifier addressing a cell in all API calls.
10250
- * @param {string} scene Unique identifier addressing a collision scene.
10654
+ * @param {string} setup Identifier of the collision setup
10251
10655
  * @param {*} [options] Override http request option.
10252
10656
  * @throws {RequiredError}
10253
10657
  */
10254
- async deleteStoredCollisionScene(cell: string, scene: string, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<void>> {
10255
- const localVarAxiosArgs = await localVarAxiosParamCreator.deleteStoredCollisionScene(cell, scene, options);
10658
+ async deleteStoredCollisionSetup(cell: string, setup: string, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<void>> {
10659
+ const localVarAxiosArgs = await localVarAxiosParamCreator.deleteStoredCollisionSetup(cell, setup, options);
10256
10660
  const localVarOperationServerIndex = configuration?.serverIndex ?? 0;
10257
- const localVarOperationServerBasePath = operationServerMap['StoreCollisionScenesApi.deleteStoredCollisionScene']?.[localVarOperationServerIndex]?.url;
10661
+ const localVarOperationServerBasePath = operationServerMap['StoreCollisionSetupsApi.deleteStoredCollisionSetup']?.[localVarOperationServerIndex]?.url;
10258
10662
  return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
10259
10663
  },
10260
10664
  /**
10261
- * Returns the stored scene.
10262
- * @summary Get Scene
10665
+ * Returns the stored collision setup.
10666
+ * @summary Get Collision Setup
10263
10667
  * @param {string} cell Unique identifier addressing a cell in all API calls.
10264
- * @param {string} scene Unique identifier addressing a collision scene.
10668
+ * @param {string} setup Identifier of the collision setup
10265
10669
  * @param {*} [options] Override http request option.
10266
10670
  * @throws {RequiredError}
10267
10671
  */
10268
- async getStoredCollisionScene(cell: string, scene: string, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<CollisionScene>> {
10269
- const localVarAxiosArgs = await localVarAxiosParamCreator.getStoredCollisionScene(cell, scene, options);
10672
+ async getStoredCollisionSetup(cell: string, setup: string, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<CollisionSetup>> {
10673
+ const localVarAxiosArgs = await localVarAxiosParamCreator.getStoredCollisionSetup(cell, setup, options);
10270
10674
  const localVarOperationServerIndex = configuration?.serverIndex ?? 0;
10271
- const localVarOperationServerBasePath = operationServerMap['StoreCollisionScenesApi.getStoredCollisionScene']?.[localVarOperationServerIndex]?.url;
10675
+ const localVarOperationServerBasePath = operationServerMap['StoreCollisionSetupsApi.getStoredCollisionSetup']?.[localVarOperationServerIndex]?.url;
10272
10676
  return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
10273
10677
  },
10274
10678
  /**
10275
- * Returns a list of stored scenes.
10276
- * @summary List Scenes
10679
+ * Returns a list of stored collision setups.
10680
+ * @summary List Collision Setups
10277
10681
  * @param {string} cell Unique identifier addressing a cell in all API calls.
10278
10682
  * @param {*} [options] Override http request option.
10279
10683
  * @throws {RequiredError}
10280
10684
  */
10281
- async listStoredCollisionScenes(cell: string, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<{ [key: string]: CollisionScene; }>> {
10282
- const localVarAxiosArgs = await localVarAxiosParamCreator.listStoredCollisionScenes(cell, options);
10685
+ async listStoredCollisionSetups(cell: string, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<{ [key: string]: CollisionSetup; }>> {
10686
+ const localVarAxiosArgs = await localVarAxiosParamCreator.listStoredCollisionSetups(cell, options);
10283
10687
  const localVarOperationServerIndex = configuration?.serverIndex ?? 0;
10284
- const localVarOperationServerBasePath = operationServerMap['StoreCollisionScenesApi.listStoredCollisionScenes']?.[localVarOperationServerIndex]?.url;
10688
+ const localVarOperationServerBasePath = operationServerMap['StoreCollisionSetupsApi.listStoredCollisionSetups']?.[localVarOperationServerIndex]?.url;
10285
10689
  return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
10286
10690
  },
10287
10691
  /**
10288
- * Creates or replaces the stored collision scene. The scene is assembled from components as defined in the request body. <!-- theme: info --> > This endpoint allows indicating previously stored components. > Components used within the request will be copied into the new or updated scene. An error is returned if an indicated component does not exist.
10289
- * @summary Store Scene
10692
+ * Stores collision setup. If the collision setup does not exist, it will be created. If the collision setup exists, it will be updated.
10693
+ * @summary Store Collision Setup
10290
10694
  * @param {string} cell Unique identifier addressing a cell in all API calls.
10291
- * @param {string} scene Unique identifier addressing a collision scene.
10292
- * @param {CollisionSceneAssembly} collisionSceneAssembly
10695
+ * @param {string} setup Identifier of the collision setup
10696
+ * @param {CollisionSetup} collisionSetup
10293
10697
  * @param {*} [options] Override http request option.
10294
10698
  * @throws {RequiredError}
10295
10699
  */
10296
- async storeCollisionScene(cell: string, scene: string, collisionSceneAssembly: CollisionSceneAssembly, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<CollisionScene>> {
10297
- const localVarAxiosArgs = await localVarAxiosParamCreator.storeCollisionScene(cell, scene, collisionSceneAssembly, options);
10700
+ async storeCollisionSetup(cell: string, setup: string, collisionSetup: CollisionSetup, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<CollisionSetup>> {
10701
+ const localVarAxiosArgs = await localVarAxiosParamCreator.storeCollisionSetup(cell, setup, collisionSetup, options);
10298
10702
  const localVarOperationServerIndex = configuration?.serverIndex ?? 0;
10299
- const localVarOperationServerBasePath = operationServerMap['StoreCollisionScenesApi.storeCollisionScene']?.[localVarOperationServerIndex]?.url;
10703
+ const localVarOperationServerBasePath = operationServerMap['StoreCollisionSetupsApi.storeCollisionSetup']?.[localVarOperationServerIndex]?.url;
10300
10704
  return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
10301
10705
  },
10302
10706
  }
10303
10707
  };
10304
10708
 
10305
10709
  /**
10306
- * StoreCollisionScenesApi - factory interface
10710
+ * StoreCollisionSetupsApi - factory interface
10307
10711
  * @export
10308
10712
  */
10309
- export const StoreCollisionScenesApiFactory = function (configuration?: Configuration, basePath?: string, axios?: AxiosInstance) {
10310
- const localVarFp = StoreCollisionScenesApiFp(configuration)
10713
+ export const StoreCollisionSetupsApiFactory = function (configuration?: Configuration, basePath?: string, axios?: AxiosInstance) {
10714
+ const localVarFp = StoreCollisionSetupsApiFp(configuration)
10311
10715
  return {
10312
10716
  /**
10313
- * Deletes the stored scene. <!-- theme: danger --> > This will delete persistently stored data.
10314
- * @summary Delete Scene
10717
+ * Deletes the stored collision setup. <!-- theme: danger --> > This will delete persistently stored data.
10718
+ * @summary Delete Collision Setup
10315
10719
  * @param {string} cell Unique identifier addressing a cell in all API calls.
10316
- * @param {string} scene Unique identifier addressing a collision scene.
10720
+ * @param {string} setup Identifier of the collision setup
10317
10721
  * @param {*} [options] Override http request option.
10318
10722
  * @throws {RequiredError}
10319
10723
  */
10320
- deleteStoredCollisionScene(cell: string, scene: string, options?: RawAxiosRequestConfig): AxiosPromise<void> {
10321
- return localVarFp.deleteStoredCollisionScene(cell, scene, options).then((request) => request(axios, basePath));
10724
+ deleteStoredCollisionSetup(cell: string, setup: string, options?: RawAxiosRequestConfig): AxiosPromise<void> {
10725
+ return localVarFp.deleteStoredCollisionSetup(cell, setup, options).then((request) => request(axios, basePath));
10322
10726
  },
10323
10727
  /**
10324
- * Returns the stored scene.
10325
- * @summary Get Scene
10728
+ * Returns the stored collision setup.
10729
+ * @summary Get Collision Setup
10326
10730
  * @param {string} cell Unique identifier addressing a cell in all API calls.
10327
- * @param {string} scene Unique identifier addressing a collision scene.
10731
+ * @param {string} setup Identifier of the collision setup
10328
10732
  * @param {*} [options] Override http request option.
10329
10733
  * @throws {RequiredError}
10330
10734
  */
10331
- getStoredCollisionScene(cell: string, scene: string, options?: RawAxiosRequestConfig): AxiosPromise<CollisionScene> {
10332
- return localVarFp.getStoredCollisionScene(cell, scene, options).then((request) => request(axios, basePath));
10735
+ getStoredCollisionSetup(cell: string, setup: string, options?: RawAxiosRequestConfig): AxiosPromise<CollisionSetup> {
10736
+ return localVarFp.getStoredCollisionSetup(cell, setup, options).then((request) => request(axios, basePath));
10333
10737
  },
10334
10738
  /**
10335
- * Returns a list of stored scenes.
10336
- * @summary List Scenes
10739
+ * Returns a list of stored collision setups.
10740
+ * @summary List Collision Setups
10337
10741
  * @param {string} cell Unique identifier addressing a cell in all API calls.
10338
10742
  * @param {*} [options] Override http request option.
10339
10743
  * @throws {RequiredError}
10340
10744
  */
10341
- listStoredCollisionScenes(cell: string, options?: RawAxiosRequestConfig): AxiosPromise<{ [key: string]: CollisionScene; }> {
10342
- return localVarFp.listStoredCollisionScenes(cell, options).then((request) => request(axios, basePath));
10745
+ listStoredCollisionSetups(cell: string, options?: RawAxiosRequestConfig): AxiosPromise<{ [key: string]: CollisionSetup; }> {
10746
+ return localVarFp.listStoredCollisionSetups(cell, options).then((request) => request(axios, basePath));
10343
10747
  },
10344
10748
  /**
10345
- * Creates or replaces the stored collision scene. The scene is assembled from components as defined in the request body. <!-- theme: info --> > This endpoint allows indicating previously stored components. > Components used within the request will be copied into the new or updated scene. An error is returned if an indicated component does not exist.
10346
- * @summary Store Scene
10749
+ * Stores collision setup. If the collision setup does not exist, it will be created. If the collision setup exists, it will be updated.
10750
+ * @summary Store Collision Setup
10347
10751
  * @param {string} cell Unique identifier addressing a cell in all API calls.
10348
- * @param {string} scene Unique identifier addressing a collision scene.
10349
- * @param {CollisionSceneAssembly} collisionSceneAssembly
10752
+ * @param {string} setup Identifier of the collision setup
10753
+ * @param {CollisionSetup} collisionSetup
10350
10754
  * @param {*} [options] Override http request option.
10351
10755
  * @throws {RequiredError}
10352
10756
  */
10353
- storeCollisionScene(cell: string, scene: string, collisionSceneAssembly: CollisionSceneAssembly, options?: RawAxiosRequestConfig): AxiosPromise<CollisionScene> {
10354
- return localVarFp.storeCollisionScene(cell, scene, collisionSceneAssembly, options).then((request) => request(axios, basePath));
10757
+ storeCollisionSetup(cell: string, setup: string, collisionSetup: CollisionSetup, options?: RawAxiosRequestConfig): AxiosPromise<CollisionSetup> {
10758
+ return localVarFp.storeCollisionSetup(cell, setup, collisionSetup, options).then((request) => request(axios, basePath));
10355
10759
  },
10356
10760
  };
10357
10761
  };
10358
10762
 
10359
10763
  /**
10360
- * StoreCollisionScenesApi - object-oriented interface
10764
+ * StoreCollisionSetupsApi - object-oriented interface
10361
10765
  * @export
10362
- * @class StoreCollisionScenesApi
10766
+ * @class StoreCollisionSetupsApi
10363
10767
  * @extends {BaseAPI}
10364
10768
  */
10365
- export class StoreCollisionScenesApi extends BaseAPI {
10769
+ export class StoreCollisionSetupsApi extends BaseAPI {
10366
10770
  /**
10367
- * Deletes the stored scene. <!-- theme: danger --> > This will delete persistently stored data.
10368
- * @summary Delete Scene
10771
+ * Deletes the stored collision setup. <!-- theme: danger --> > This will delete persistently stored data.
10772
+ * @summary Delete Collision Setup
10369
10773
  * @param {string} cell Unique identifier addressing a cell in all API calls.
10370
- * @param {string} scene Unique identifier addressing a collision scene.
10774
+ * @param {string} setup Identifier of the collision setup
10371
10775
  * @param {*} [options] Override http request option.
10372
10776
  * @throws {RequiredError}
10373
- * @memberof StoreCollisionScenesApi
10777
+ * @memberof StoreCollisionSetupsApi
10374
10778
  */
10375
- public deleteStoredCollisionScene(cell: string, scene: string, options?: RawAxiosRequestConfig) {
10376
- return StoreCollisionScenesApiFp(this.configuration).deleteStoredCollisionScene(cell, scene, options).then((request) => request(this.axios, this.basePath));
10779
+ public deleteStoredCollisionSetup(cell: string, setup: string, options?: RawAxiosRequestConfig) {
10780
+ return StoreCollisionSetupsApiFp(this.configuration).deleteStoredCollisionSetup(cell, setup, options).then((request) => request(this.axios, this.basePath));
10377
10781
  }
10378
10782
 
10379
10783
  /**
10380
- * Returns the stored scene.
10381
- * @summary Get Scene
10784
+ * Returns the stored collision setup.
10785
+ * @summary Get Collision Setup
10382
10786
  * @param {string} cell Unique identifier addressing a cell in all API calls.
10383
- * @param {string} scene Unique identifier addressing a collision scene.
10787
+ * @param {string} setup Identifier of the collision setup
10384
10788
  * @param {*} [options] Override http request option.
10385
10789
  * @throws {RequiredError}
10386
- * @memberof StoreCollisionScenesApi
10790
+ * @memberof StoreCollisionSetupsApi
10387
10791
  */
10388
- public getStoredCollisionScene(cell: string, scene: string, options?: RawAxiosRequestConfig) {
10389
- return StoreCollisionScenesApiFp(this.configuration).getStoredCollisionScene(cell, scene, options).then((request) => request(this.axios, this.basePath));
10792
+ public getStoredCollisionSetup(cell: string, setup: string, options?: RawAxiosRequestConfig) {
10793
+ return StoreCollisionSetupsApiFp(this.configuration).getStoredCollisionSetup(cell, setup, options).then((request) => request(this.axios, this.basePath));
10390
10794
  }
10391
10795
 
10392
10796
  /**
10393
- * Returns a list of stored scenes.
10394
- * @summary List Scenes
10797
+ * Returns a list of stored collision setups.
10798
+ * @summary List Collision Setups
10395
10799
  * @param {string} cell Unique identifier addressing a cell in all API calls.
10396
10800
  * @param {*} [options] Override http request option.
10397
10801
  * @throws {RequiredError}
10398
- * @memberof StoreCollisionScenesApi
10802
+ * @memberof StoreCollisionSetupsApi
10399
10803
  */
10400
- public listStoredCollisionScenes(cell: string, options?: RawAxiosRequestConfig) {
10401
- return StoreCollisionScenesApiFp(this.configuration).listStoredCollisionScenes(cell, options).then((request) => request(this.axios, this.basePath));
10804
+ public listStoredCollisionSetups(cell: string, options?: RawAxiosRequestConfig) {
10805
+ return StoreCollisionSetupsApiFp(this.configuration).listStoredCollisionSetups(cell, options).then((request) => request(this.axios, this.basePath));
10402
10806
  }
10403
10807
 
10404
10808
  /**
10405
- * Creates or replaces the stored collision scene. The scene is assembled from components as defined in the request body. <!-- theme: info --> > This endpoint allows indicating previously stored components. > Components used within the request will be copied into the new or updated scene. An error is returned if an indicated component does not exist.
10406
- * @summary Store Scene
10809
+ * Stores collision setup. If the collision setup does not exist, it will be created. If the collision setup exists, it will be updated.
10810
+ * @summary Store Collision Setup
10407
10811
  * @param {string} cell Unique identifier addressing a cell in all API calls.
10408
- * @param {string} scene Unique identifier addressing a collision scene.
10409
- * @param {CollisionSceneAssembly} collisionSceneAssembly
10812
+ * @param {string} setup Identifier of the collision setup
10813
+ * @param {CollisionSetup} collisionSetup
10410
10814
  * @param {*} [options] Override http request option.
10411
10815
  * @throws {RequiredError}
10412
- * @memberof StoreCollisionScenesApi
10816
+ * @memberof StoreCollisionSetupsApi
10413
10817
  */
10414
- public storeCollisionScene(cell: string, scene: string, collisionSceneAssembly: CollisionSceneAssembly, options?: RawAxiosRequestConfig) {
10415
- return StoreCollisionScenesApiFp(this.configuration).storeCollisionScene(cell, scene, collisionSceneAssembly, options).then((request) => request(this.axios, this.basePath));
10818
+ public storeCollisionSetup(cell: string, setup: string, collisionSetup: CollisionSetup, options?: RawAxiosRequestConfig) {
10819
+ return StoreCollisionSetupsApiFp(this.configuration).storeCollisionSetup(cell, setup, collisionSetup, options).then((request) => request(this.axios, this.basePath));
10416
10820
  }
10417
10821
  }
10418
10822
 
@@ -10975,16 +11379,14 @@ export class StoreObjectApi extends BaseAPI {
10975
11379
  export const SystemApiAxiosParamCreator = function (configuration?: Configuration) {
10976
11380
  return {
10977
11381
  /**
10978
- * Retrieves a configuration backup based on provided resource identifiers.
11382
+ * Retrieves a configuration backup based on provided resource identifiers. If an empty array of resources is provided, a backup for all resources will be retrieved.
10979
11383
  * @summary Retrieve Configuration Backup
10980
- * @param {Array<string>} resources List of resource identifiers to included in the backup and restore operations.
11384
+ * @param {Array<string>} [resources] List of resource identifiers to include in the retrieval.
10981
11385
  * @param {{ [key: string]: string; }} [metadata] Additional metadata to add to the backup
10982
11386
  * @param {*} [options] Override http request option.
10983
11387
  * @throws {RequiredError}
10984
11388
  */
10985
- backupConfiguration: async (resources: Array<string>, metadata?: { [key: string]: string; }, options: RawAxiosRequestConfig = {}): Promise<RequestArgs> => {
10986
- // verify required parameter 'resources' is not null or undefined
10987
- assertParamExists('backupConfiguration', 'resources', resources)
11389
+ backupConfiguration: async (resources?: Array<string>, metadata?: { [key: string]: string; }, options: RawAxiosRequestConfig = {}): Promise<RequestArgs> => {
10988
11390
  const localVarPath = `/system/configuration`;
10989
11391
  // use dummy base URL string because the URL constructor only accepts absolute URLs.
10990
11392
  const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
@@ -11372,14 +11774,14 @@ export const SystemApiFp = function(configuration?: Configuration) {
11372
11774
  const localVarAxiosParamCreator = SystemApiAxiosParamCreator(configuration)
11373
11775
  return {
11374
11776
  /**
11375
- * Retrieves a configuration backup based on provided resource identifiers.
11777
+ * Retrieves a configuration backup based on provided resource identifiers. If an empty array of resources is provided, a backup for all resources will be retrieved.
11376
11778
  * @summary Retrieve Configuration Backup
11377
- * @param {Array<string>} resources List of resource identifiers to included in the backup and restore operations.
11779
+ * @param {Array<string>} [resources] List of resource identifiers to include in the retrieval.
11378
11780
  * @param {{ [key: string]: string; }} [metadata] Additional metadata to add to the backup
11379
11781
  * @param {*} [options] Override http request option.
11380
11782
  * @throws {RequiredError}
11381
11783
  */
11382
- async backupConfiguration(resources: Array<string>, metadata?: { [key: string]: string; }, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<File>> {
11784
+ async backupConfiguration(resources?: Array<string>, metadata?: { [key: string]: string; }, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<File>> {
11383
11785
  const localVarAxiosArgs = await localVarAxiosParamCreator.backupConfiguration(resources, metadata, options);
11384
11786
  const localVarOperationServerIndex = configuration?.serverIndex ?? 0;
11385
11787
  const localVarOperationServerBasePath = operationServerMap['SystemApi.backupConfiguration']?.[localVarOperationServerIndex]?.url;
@@ -11497,14 +11899,14 @@ export const SystemApiFactory = function (configuration?: Configuration, basePat
11497
11899
  const localVarFp = SystemApiFp(configuration)
11498
11900
  return {
11499
11901
  /**
11500
- * Retrieves a configuration backup based on provided resource identifiers.
11902
+ * Retrieves a configuration backup based on provided resource identifiers. If an empty array of resources is provided, a backup for all resources will be retrieved.
11501
11903
  * @summary Retrieve Configuration Backup
11502
- * @param {Array<string>} resources List of resource identifiers to included in the backup and restore operations.
11904
+ * @param {Array<string>} [resources] List of resource identifiers to include in the retrieval.
11503
11905
  * @param {{ [key: string]: string; }} [metadata] Additional metadata to add to the backup
11504
11906
  * @param {*} [options] Override http request option.
11505
11907
  * @throws {RequiredError}
11506
11908
  */
11507
- backupConfiguration(resources: Array<string>, metadata?: { [key: string]: string; }, options?: RawAxiosRequestConfig): AxiosPromise<File> {
11909
+ backupConfiguration(resources?: Array<string>, metadata?: { [key: string]: string; }, options?: RawAxiosRequestConfig): AxiosPromise<File> {
11508
11910
  return localVarFp.backupConfiguration(resources, metadata, options).then((request) => request(axios, basePath));
11509
11911
  },
11510
11912
  /**
@@ -11595,15 +11997,15 @@ export const SystemApiFactory = function (configuration?: Configuration, basePat
11595
11997
  */
11596
11998
  export class SystemApi extends BaseAPI {
11597
11999
  /**
11598
- * Retrieves a configuration backup based on provided resource identifiers.
12000
+ * Retrieves a configuration backup based on provided resource identifiers. If an empty array of resources is provided, a backup for all resources will be retrieved.
11599
12001
  * @summary Retrieve Configuration Backup
11600
- * @param {Array<string>} resources List of resource identifiers to included in the backup and restore operations.
12002
+ * @param {Array<string>} [resources] List of resource identifiers to include in the retrieval.
11601
12003
  * @param {{ [key: string]: string; }} [metadata] Additional metadata to add to the backup
11602
12004
  * @param {*} [options] Override http request option.
11603
12005
  * @throws {RequiredError}
11604
12006
  * @memberof SystemApi
11605
12007
  */
11606
- public backupConfiguration(resources: Array<string>, metadata?: { [key: string]: string; }, options?: RawAxiosRequestConfig) {
12008
+ public backupConfiguration(resources?: Array<string>, metadata?: { [key: string]: string; }, options?: RawAxiosRequestConfig) {
11607
12009
  return SystemApiFp(this.configuration).backupConfiguration(resources, metadata, options).then((request) => request(this.axios, this.basePath));
11608
12010
  }
11609
12011
 
@@ -12324,7 +12726,53 @@ export class TrajectoryExecutionApi extends BaseAPI {
12324
12726
  export const TrajectoryPlanningApiAxiosParamCreator = function (configuration?: Configuration) {
12325
12727
  return {
12326
12728
  /**
12327
- * Plans a new trajectory for a single motion group. Describe the trajectory as a sequence of motion commands that the robots TCP should follow. Use the following workflow to execute a planned trajectory: 1. Plan a trajectory. 2. Optional: Load the planned trajectory into the cache using the [addTrajectory](addTrajectory) endpoint. 3. Execute the (cached) trajectory using the [executeTrajectory](executeTrajectory) endpoint. If the trajectory is not executable, the [PlanTrajectoryResponse](PlanTrajectoryResponse) will contain the joint trajectory up until the error, e.g. all samples until a collision occurs. EXCEPTION: If a CartesianPTP or JointPTP motion command has an invalid target, the response will contain the trajectory up until the start of the invalid PTP motion.
12729
+ * Plans a collision-free trajectory for a single motion group using point-to-point (PTP) motions. This endpoint is specifically designed for collision-free path planning algorithms that find a trajectory from a start joint position to a target position while avoiding obstacles. Use the following workflow to execute a planned collision-free trajectory: 1. Plan a collision-free trajectory. 2. Optional: Load the planned trajectory into the cache using the [addTrajectory](addTrajectory) endpoint. 3. Execute the (cached) trajectory using the [executeTrajectory](executeTrajectory) endpoint. If the trajectory planning fails due to collision or algorithm constraints, the response will contain error information about the failure.
12730
+ * @summary Plan Collision-Free Trajectory
12731
+ * @param {string} cell Unique identifier addressing a cell in all API calls.
12732
+ * @param {PlanCollisionFreeRequest} [planCollisionFreeRequest]
12733
+ * @param {*} [options] Override http request option.
12734
+ * @throws {RequiredError}
12735
+ */
12736
+ planCollisionFree: async (cell: string, planCollisionFreeRequest?: PlanCollisionFreeRequest, options: RawAxiosRequestConfig = {}): Promise<RequestArgs> => {
12737
+ // verify required parameter 'cell' is not null or undefined
12738
+ assertParamExists('planCollisionFree', 'cell', cell)
12739
+ const localVarPath = `/cells/{cell}/trajectory-planning/plan-collision-free`
12740
+ .replace(`{${"cell"}}`, encodeURIComponent(String(cell)));
12741
+ // use dummy base URL string because the URL constructor only accepts absolute URLs.
12742
+ const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
12743
+ let baseOptions;
12744
+ if (configuration) {
12745
+ baseOptions = configuration.baseOptions;
12746
+ }
12747
+
12748
+ const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options};
12749
+ const localVarHeaderParameter = {} as any;
12750
+ const localVarQueryParameter = {} as any;
12751
+
12752
+ // authentication BasicAuth required
12753
+ // http basic authentication required
12754
+ setBasicAuthToObject(localVarRequestOptions, configuration)
12755
+
12756
+ // authentication BearerAuth required
12757
+ // http bearer authentication required
12758
+ await setBearerAuthToObject(localVarHeaderParameter, configuration)
12759
+
12760
+
12761
+
12762
+ localVarHeaderParameter['Content-Type'] = 'application/json';
12763
+
12764
+ setSearchParams(localVarUrlObj, localVarQueryParameter);
12765
+ let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
12766
+ localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};
12767
+ localVarRequestOptions.data = serializeDataIfNeeded(planCollisionFreeRequest, localVarRequestOptions, configuration)
12768
+
12769
+ return {
12770
+ url: toPathString(localVarUrlObj),
12771
+ options: localVarRequestOptions,
12772
+ };
12773
+ },
12774
+ /**
12775
+ * Plans a new trajectory for a single motion group. Describe the trajectory as a sequence of motion commands that the robots TCP should follow. Use the following workflow to execute a planned trajectory: 1. Plan a trajectory. 2. Optional: Load the planned trajectory into the cache using the [addTrajectory](addTrajectory) endpoint. 3. Execute the (cached) trajectory using the [executeTrajectory](executeTrajectory) endpoint. If the trajectory is not executable, the [PlanTrajectoryResponse](PlanTrajectoryResponse) will contain the joint trajectory up until the error, e.g. all samples until a collision occurs. EXCEPTION: If a CartesianPTP or JointPTP motion command has an invalid target, the response will contain the trajectory up until the start of the invalid PTP motion.
12328
12776
  * @summary Plan Trajectory
12329
12777
  * @param {string} cell Unique identifier addressing a cell in all API calls.
12330
12778
  * @param {PlanTrajectoryRequest} [planTrajectoryRequest]
@@ -12380,7 +12828,21 @@ export const TrajectoryPlanningApiFp = function(configuration?: Configuration) {
12380
12828
  const localVarAxiosParamCreator = TrajectoryPlanningApiAxiosParamCreator(configuration)
12381
12829
  return {
12382
12830
  /**
12383
- * Plans a new trajectory for a single motion group. Describe the trajectory as a sequence of motion commands that the robots TCP should follow. Use the following workflow to execute a planned trajectory: 1. Plan a trajectory. 2. Optional: Load the planned trajectory into the cache using the [addTrajectory](addTrajectory) endpoint. 3. Execute the (cached) trajectory using the [executeTrajectory](executeTrajectory) endpoint. If the trajectory is not executable, the [PlanTrajectoryResponse](PlanTrajectoryResponse) will contain the joint trajectory up until the error, e.g. all samples until a collision occurs. EXCEPTION: If a CartesianPTP or JointPTP motion command has an invalid target, the response will contain the trajectory up until the start of the invalid PTP motion.
12831
+ * Plans a collision-free trajectory for a single motion group using point-to-point (PTP) motions. This endpoint is specifically designed for collision-free path planning algorithms that find a trajectory from a start joint position to a target position while avoiding obstacles. Use the following workflow to execute a planned collision-free trajectory: 1. Plan a collision-free trajectory. 2. Optional: Load the planned trajectory into the cache using the [addTrajectory](addTrajectory) endpoint. 3. Execute the (cached) trajectory using the [executeTrajectory](executeTrajectory) endpoint. If the trajectory planning fails due to collision or algorithm constraints, the response will contain error information about the failure.
12832
+ * @summary Plan Collision-Free Trajectory
12833
+ * @param {string} cell Unique identifier addressing a cell in all API calls.
12834
+ * @param {PlanCollisionFreeRequest} [planCollisionFreeRequest]
12835
+ * @param {*} [options] Override http request option.
12836
+ * @throws {RequiredError}
12837
+ */
12838
+ async planCollisionFree(cell: string, planCollisionFreeRequest?: PlanCollisionFreeRequest, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<PlanCollisionFreeResponse>> {
12839
+ const localVarAxiosArgs = await localVarAxiosParamCreator.planCollisionFree(cell, planCollisionFreeRequest, options);
12840
+ const localVarOperationServerIndex = configuration?.serverIndex ?? 0;
12841
+ const localVarOperationServerBasePath = operationServerMap['TrajectoryPlanningApi.planCollisionFree']?.[localVarOperationServerIndex]?.url;
12842
+ return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
12843
+ },
12844
+ /**
12845
+ * Plans a new trajectory for a single motion group. Describe the trajectory as a sequence of motion commands that the robots TCP should follow. Use the following workflow to execute a planned trajectory: 1. Plan a trajectory. 2. Optional: Load the planned trajectory into the cache using the [addTrajectory](addTrajectory) endpoint. 3. Execute the (cached) trajectory using the [executeTrajectory](executeTrajectory) endpoint. If the trajectory is not executable, the [PlanTrajectoryResponse](PlanTrajectoryResponse) will contain the joint trajectory up until the error, e.g. all samples until a collision occurs. EXCEPTION: If a CartesianPTP or JointPTP motion command has an invalid target, the response will contain the trajectory up until the start of the invalid PTP motion.
12384
12846
  * @summary Plan Trajectory
12385
12847
  * @param {string} cell Unique identifier addressing a cell in all API calls.
12386
12848
  * @param {PlanTrajectoryRequest} [planTrajectoryRequest]
@@ -12404,7 +12866,18 @@ export const TrajectoryPlanningApiFactory = function (configuration?: Configurat
12404
12866
  const localVarFp = TrajectoryPlanningApiFp(configuration)
12405
12867
  return {
12406
12868
  /**
12407
- * Plans a new trajectory for a single motion group. Describe the trajectory as a sequence of motion commands that the robots TCP should follow. Use the following workflow to execute a planned trajectory: 1. Plan a trajectory. 2. Optional: Load the planned trajectory into the cache using the [addTrajectory](addTrajectory) endpoint. 3. Execute the (cached) trajectory using the [executeTrajectory](executeTrajectory) endpoint. If the trajectory is not executable, the [PlanTrajectoryResponse](PlanTrajectoryResponse) will contain the joint trajectory up until the error, e.g. all samples until a collision occurs. EXCEPTION: If a CartesianPTP or JointPTP motion command has an invalid target, the response will contain the trajectory up until the start of the invalid PTP motion.
12869
+ * Plans a collision-free trajectory for a single motion group using point-to-point (PTP) motions. This endpoint is specifically designed for collision-free path planning algorithms that find a trajectory from a start joint position to a target position while avoiding obstacles. Use the following workflow to execute a planned collision-free trajectory: 1. Plan a collision-free trajectory. 2. Optional: Load the planned trajectory into the cache using the [addTrajectory](addTrajectory) endpoint. 3. Execute the (cached) trajectory using the [executeTrajectory](executeTrajectory) endpoint. If the trajectory planning fails due to collision or algorithm constraints, the response will contain error information about the failure.
12870
+ * @summary Plan Collision-Free Trajectory
12871
+ * @param {string} cell Unique identifier addressing a cell in all API calls.
12872
+ * @param {PlanCollisionFreeRequest} [planCollisionFreeRequest]
12873
+ * @param {*} [options] Override http request option.
12874
+ * @throws {RequiredError}
12875
+ */
12876
+ planCollisionFree(cell: string, planCollisionFreeRequest?: PlanCollisionFreeRequest, options?: RawAxiosRequestConfig): AxiosPromise<PlanCollisionFreeResponse> {
12877
+ return localVarFp.planCollisionFree(cell, planCollisionFreeRequest, options).then((request) => request(axios, basePath));
12878
+ },
12879
+ /**
12880
+ * Plans a new trajectory for a single motion group. Describe the trajectory as a sequence of motion commands that the robots TCP should follow. Use the following workflow to execute a planned trajectory: 1. Plan a trajectory. 2. Optional: Load the planned trajectory into the cache using the [addTrajectory](addTrajectory) endpoint. 3. Execute the (cached) trajectory using the [executeTrajectory](executeTrajectory) endpoint. If the trajectory is not executable, the [PlanTrajectoryResponse](PlanTrajectoryResponse) will contain the joint trajectory up until the error, e.g. all samples until a collision occurs. EXCEPTION: If a CartesianPTP or JointPTP motion command has an invalid target, the response will contain the trajectory up until the start of the invalid PTP motion.
12408
12881
  * @summary Plan Trajectory
12409
12882
  * @param {string} cell Unique identifier addressing a cell in all API calls.
12410
12883
  * @param {PlanTrajectoryRequest} [planTrajectoryRequest]
@@ -12425,7 +12898,20 @@ export const TrajectoryPlanningApiFactory = function (configuration?: Configurat
12425
12898
  */
12426
12899
  export class TrajectoryPlanningApi extends BaseAPI {
12427
12900
  /**
12428
- * Plans a new trajectory for a single motion group. Describe the trajectory as a sequence of motion commands that the robots TCP should follow. Use the following workflow to execute a planned trajectory: 1. Plan a trajectory. 2. Optional: Load the planned trajectory into the cache using the [addTrajectory](addTrajectory) endpoint. 3. Execute the (cached) trajectory using the [executeTrajectory](executeTrajectory) endpoint. If the trajectory is not executable, the [PlanTrajectoryResponse](PlanTrajectoryResponse) will contain the joint trajectory up until the error, e.g. all samples until a collision occurs. EXCEPTION: If a CartesianPTP or JointPTP motion command has an invalid target, the response will contain the trajectory up until the start of the invalid PTP motion.
12901
+ * Plans a collision-free trajectory for a single motion group using point-to-point (PTP) motions. This endpoint is specifically designed for collision-free path planning algorithms that find a trajectory from a start joint position to a target position while avoiding obstacles. Use the following workflow to execute a planned collision-free trajectory: 1. Plan a collision-free trajectory. 2. Optional: Load the planned trajectory into the cache using the [addTrajectory](addTrajectory) endpoint. 3. Execute the (cached) trajectory using the [executeTrajectory](executeTrajectory) endpoint. If the trajectory planning fails due to collision or algorithm constraints, the response will contain error information about the failure.
12902
+ * @summary Plan Collision-Free Trajectory
12903
+ * @param {string} cell Unique identifier addressing a cell in all API calls.
12904
+ * @param {PlanCollisionFreeRequest} [planCollisionFreeRequest]
12905
+ * @param {*} [options] Override http request option.
12906
+ * @throws {RequiredError}
12907
+ * @memberof TrajectoryPlanningApi
12908
+ */
12909
+ public planCollisionFree(cell: string, planCollisionFreeRequest?: PlanCollisionFreeRequest, options?: RawAxiosRequestConfig) {
12910
+ return TrajectoryPlanningApiFp(this.configuration).planCollisionFree(cell, planCollisionFreeRequest, options).then((request) => request(this.axios, this.basePath));
12911
+ }
12912
+
12913
+ /**
12914
+ * Plans a new trajectory for a single motion group. Describe the trajectory as a sequence of motion commands that the robots TCP should follow. Use the following workflow to execute a planned trajectory: 1. Plan a trajectory. 2. Optional: Load the planned trajectory into the cache using the [addTrajectory](addTrajectory) endpoint. 3. Execute the (cached) trajectory using the [executeTrajectory](executeTrajectory) endpoint. If the trajectory is not executable, the [PlanTrajectoryResponse](PlanTrajectoryResponse) will contain the joint trajectory up until the error, e.g. all samples until a collision occurs. EXCEPTION: If a CartesianPTP or JointPTP motion command has an invalid target, the response will contain the trajectory up until the start of the invalid PTP motion.
12429
12915
  * @summary Plan Trajectory
12430
12916
  * @param {string} cell Unique identifier addressing a cell in all API calls.
12431
12917
  * @param {PlanTrajectoryRequest} [planTrajectoryRequest]