@wandelbots/nova-js 3.2.0-pr.dev-e2e-jogging-test.143.4f02caf → 3.2.0-pr.feat-v2.155.e91b019
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/README.md +60 -50
- package/dist/{AutoReconnectingWebsocket-BI1ckzP8.d.ts → AutoReconnectingWebsocket-CoU4ZyD2.d.cts} +1 -3
- package/dist/AutoReconnectingWebsocket-CoU4ZyD2.d.cts.map +1 -0
- package/dist/{AutoReconnectingWebsocket-Cr7f9016.d.cts → AutoReconnectingWebsocket-D0gTrkzu.d.ts} +1 -3
- package/dist/AutoReconnectingWebsocket-D0gTrkzu.d.ts.map +1 -0
- package/dist/{LoginWithAuth0-0g0wWRUC.js → LoginWithAuth0-CaX7yo7d.js} +58 -5
- package/dist/LoginWithAuth0-CaX7yo7d.js.map +1 -0
- package/dist/{LoginWithAuth0-C82OCyDy.cjs → LoginWithAuth0-DaPnTz2I.cjs} +99 -4
- package/dist/LoginWithAuth0-DaPnTz2I.cjs.map +1 -0
- package/dist/index.cjs +11 -10
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +11 -8
- package/dist/index.d.cts.map +1 -1
- package/dist/index.d.ts +11 -8
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -3
- package/dist/lib/v1/index.cjs +17 -19
- package/dist/lib/v1/index.cjs.map +1 -1
- package/dist/lib/v1/index.d.cts +4 -2
- package/dist/lib/v1/index.d.cts.map +1 -1
- package/dist/lib/v1/index.d.ts +4 -2
- package/dist/lib/v1/index.d.ts.map +1 -1
- package/dist/lib/v1/index.js +7 -10
- package/dist/lib/v1/index.js.map +1 -1
- package/dist/lib/v2/index.cjs +1087 -11
- package/dist/lib/v2/index.cjs.map +1 -1
- package/dist/lib/v2/index.d.cts +256 -7
- package/dist/lib/v2/index.d.cts.map +1 -1
- package/dist/lib/v2/index.d.ts +256 -7
- package/dist/lib/v2/index.d.ts.map +1 -1
- package/dist/lib/v2/index.js +1082 -12
- package/dist/lib/v2/index.js.map +1 -1
- package/dist/wandelscriptUtils-CO5GYRij.js +24 -0
- package/dist/wandelscriptUtils-CO5GYRij.js.map +1 -0
- package/dist/wandelscriptUtils-COHpTIme.d.cts +12 -0
- package/dist/wandelscriptUtils-COHpTIme.d.cts.map +1 -0
- package/dist/wandelscriptUtils-Cl3GBxOp.d.ts +12 -0
- package/dist/wandelscriptUtils-Cl3GBxOp.d.ts.map +1 -0
- package/dist/wandelscriptUtils-DwpJ4jCy.cjs +30 -0
- package/dist/wandelscriptUtils-DwpJ4jCy.cjs.map +1 -0
- package/package.json +2 -2
- package/src/LoginWithAuth0.ts +3 -3
- package/src/index.ts +1 -0
- package/src/lib/converters.ts +5 -23
- package/src/lib/v1/MotionStreamConnection.ts +1 -1
- package/src/lib/v1/NovaClient.ts +6 -0
- package/src/lib/v1/index.ts +6 -0
- package/src/lib/v1/mock/MockNovaInstance.ts +0 -1
- package/src/lib/v1/wandelscriptUtils.ts +22 -0
- package/src/lib/v2/ConnectedMotionGroup.ts +415 -0
- package/src/lib/v2/JoggerConnection.ts +647 -0
- package/src/lib/v2/MotionStreamConnection.ts +222 -0
- package/src/lib/v2/NovaClient.ts +43 -8
- package/src/lib/v2/index.ts +5 -0
- package/src/lib/v2/mock/MockNovaInstance.ts +385 -1
- package/src/lib/v2/motionStateUpdate.ts +76 -0
- package/src/lib/v2/types/vector3.ts +1 -0
- package/src/lib/v2/wandelscriptUtils.ts +27 -0
- package/dist/AutoReconnectingWebsocket-BI1ckzP8.d.ts.map +0 -1
- package/dist/AutoReconnectingWebsocket-Cr7f9016.d.cts.map +0 -1
- package/dist/LoginWithAuth0-0g0wWRUC.js.map +0 -1
- package/dist/LoginWithAuth0-C82OCyDy.cjs.map +0 -1
- package/dist/converters-DP2EIVv6.cjs +0 -108
- package/dist/converters-DP2EIVv6.cjs.map +0 -1
- package/dist/converters-DY6Lf7mb.js +0 -66
- package/dist/converters-DY6Lf7mb.js.map +0 -1
package/dist/lib/v2/index.d.cts
CHANGED
|
@@ -1,8 +1,13 @@
|
|
|
1
|
-
import { AutoReconnectingWebsocket, MockNovaInstance } from "../../AutoReconnectingWebsocket-
|
|
1
|
+
import { AutoReconnectingWebsocket, MockNovaInstance } from "../../AutoReconnectingWebsocket-CoU4ZyD2.cjs";
|
|
2
2
|
import { AxiosInstance } from "axios";
|
|
3
|
-
import
|
|
3
|
+
import * as THREE from "three";
|
|
4
|
+
import * as _wandelbots_nova_api_v20 from "@wandelbots/nova-api/v2";
|
|
5
|
+
import { ApplicationApi, BUSInputsOutputsApi, CellApi, Configuration, ControllerApi, ControllerInputsOutputsApi, JoggingApi, KinematicsApi, MotionGroupApi, MotionGroupDescription, MotionGroupModelsApi, MotionGroupState, Pose, RobotControllerState, StoreCollisionComponentsApi, StoreCollisionSetupsApi, StoreObjectApi, SystemApi, TrajectoryCachingApi, TrajectoryExecutionApi, TrajectoryPlanningApi, VirtualControllerApi, VirtualControllerBehaviorApi, VirtualControllerInputsOutputsApi } from "@wandelbots/nova-api/v2";
|
|
4
6
|
export * from "@wandelbots/nova-api/v2";
|
|
5
7
|
|
|
8
|
+
//#region src/lib/v2/types/vector3.d.ts
|
|
9
|
+
type Vector3Simple = [number, number, number];
|
|
10
|
+
//#endregion
|
|
6
11
|
//#region src/lib/v2/NovaCellAPIClient.d.ts
|
|
7
12
|
type OmitFirstArg<F> = F extends ((x: any, ...args: infer P) => infer R) ? (...args: P) => R : never;
|
|
8
13
|
type UnwrapAxiosResponseReturn<T> = T extends ((...a: any) => any) ? (...a: Parameters<T>) => Promise<Awaited<ReturnType<T>> extends {
|
|
@@ -56,6 +61,158 @@ declare class NovaCellAPIClient {
|
|
|
56
61
|
readonly storeCollisionSetups: WithCellId<StoreCollisionSetupsApi>;
|
|
57
62
|
}
|
|
58
63
|
//#endregion
|
|
64
|
+
//#region src/lib/v2/MotionStreamConnection.d.ts
|
|
65
|
+
/**
|
|
66
|
+
* Store representing the current state of a connected motion group.
|
|
67
|
+
*/
|
|
68
|
+
declare class MotionStreamConnection {
|
|
69
|
+
readonly nova: NovaClient;
|
|
70
|
+
readonly controller: RobotControllerState;
|
|
71
|
+
readonly motionGroup: MotionGroupState;
|
|
72
|
+
readonly description: MotionGroupDescription;
|
|
73
|
+
readonly initialMotionState: MotionGroupState;
|
|
74
|
+
readonly motionStateSocket: AutoReconnectingWebsocket;
|
|
75
|
+
static open(nova: NovaClient, motionGroupId: string): Promise<MotionStreamConnection>;
|
|
76
|
+
rapidlyChangingMotionState: MotionGroupState;
|
|
77
|
+
constructor(nova: NovaClient, controller: RobotControllerState, motionGroup: MotionGroupState, description: MotionGroupDescription, initialMotionState: MotionGroupState, motionStateSocket: AutoReconnectingWebsocket);
|
|
78
|
+
get motionGroupId(): string;
|
|
79
|
+
get controllerId(): string;
|
|
80
|
+
get wandelscriptIdentifier(): string;
|
|
81
|
+
get joints(): {
|
|
82
|
+
index: number;
|
|
83
|
+
}[];
|
|
84
|
+
dispose(): void;
|
|
85
|
+
}
|
|
86
|
+
//#endregion
|
|
87
|
+
//#region src/lib/v2/JoggerConnection.d.ts
|
|
88
|
+
type JoggerConnectionOptions = {
|
|
89
|
+
mode?: JoggerMode;
|
|
90
|
+
timeout?: number;
|
|
91
|
+
/**
|
|
92
|
+
* When an error message is received from the jogging websocket, it
|
|
93
|
+
* will be passed here. If this handler is not provided, the error will
|
|
94
|
+
* instead be thrown as an unhandled error.
|
|
95
|
+
*/
|
|
96
|
+
onError?: (err: unknown) => void;
|
|
97
|
+
tcp?: string;
|
|
98
|
+
orientation?: JoggerOrientation;
|
|
99
|
+
};
|
|
100
|
+
type JoggerMode = "jogging" | "trajectory" | "off";
|
|
101
|
+
type JoggerOrientation = "world" | "tool";
|
|
102
|
+
declare class JoggerConnection {
|
|
103
|
+
readonly motionStream: MotionStreamConnection;
|
|
104
|
+
readonly options: JoggerConnectionOptions | undefined;
|
|
105
|
+
ENDPOINT_JOGGING: string;
|
|
106
|
+
ENDPOINT_TRAJECTORY: string;
|
|
107
|
+
DEFAULT_MODE: JoggerMode;
|
|
108
|
+
DEFAULT_TCP: string;
|
|
109
|
+
DEFAULT_INIT_TIMEOUT: number;
|
|
110
|
+
DEFAULT_ORIENTATION: JoggerOrientation;
|
|
111
|
+
mode: JoggerMode;
|
|
112
|
+
joggingSocket: AutoReconnectingWebsocket | null;
|
|
113
|
+
trajectorySocket: AutoReconnectingWebsocket | null;
|
|
114
|
+
timeout: number;
|
|
115
|
+
tcp: string;
|
|
116
|
+
orientation: JoggerOrientation;
|
|
117
|
+
onError?: (err: unknown) => void;
|
|
118
|
+
/**
|
|
119
|
+
* Initialize the jogging connection using jogging endpoint or trajectory endpoint depending on the selected mode.
|
|
120
|
+
*
|
|
121
|
+
* @param nova - The Nova client instance
|
|
122
|
+
* @param motionGroupId - The ID of the motion group to connect to
|
|
123
|
+
* @param options - Configuration options for the jogger connection
|
|
124
|
+
* @param options.mode - The jogging mode to initialize:
|
|
125
|
+
* - "jogging": Continuous jogging mode with persistent websocket for real-time velocity commands
|
|
126
|
+
* - "trajectory": Incremental jogging mode for fixed-distance motions via trajectory planning
|
|
127
|
+
* - "off": No jogging enabled, all websockets closed (default)
|
|
128
|
+
* @param options.timeout - Timeout in milliseconds for websocket initialization (default: 5000ms)
|
|
129
|
+
* @param options.tcp - TCP frame to use for motions (default: from motion group)
|
|
130
|
+
* //param options.coordinateSystem - Coordinate system for jogging commands (default: "world"). Please note: Currently not implemented
|
|
131
|
+
* @param options.orientation - If set to "tool", jogging TcpVelocityRequest will use `use_tool_coordinate_system` option (default: "world")
|
|
132
|
+
* @param options.onError - Error handler for websocket errors
|
|
133
|
+
* @returns Promise resolving to initialized JoggerConnection instance
|
|
134
|
+
*/
|
|
135
|
+
static open(nova: NovaClient, motionGroupId: string, options?: JoggerConnectionOptions): Promise<JoggerConnection>;
|
|
136
|
+
constructor(motionStream: MotionStreamConnection, options?: JoggerConnectionOptions | undefined);
|
|
137
|
+
updateOptions(options: Partial<JoggerConnectionOptions>): Promise<void>;
|
|
138
|
+
get motionGroupId(): string;
|
|
139
|
+
get nova(): NovaClient;
|
|
140
|
+
get numJoints(): number;
|
|
141
|
+
stop(): Promise<void>;
|
|
142
|
+
dispose(): Promise<void[]>;
|
|
143
|
+
setJoggingMode(mode: JoggerMode, skipReinitializeIfSameMode?: boolean): Promise<void>;
|
|
144
|
+
initializeJoggingWebsocket(): Promise<void>;
|
|
145
|
+
/**
|
|
146
|
+
* Jogging: Start rotation of a single robot joint at the specified velocity
|
|
147
|
+
*/
|
|
148
|
+
rotateJoints({
|
|
149
|
+
joint,
|
|
150
|
+
direction,
|
|
151
|
+
velocityRadsPerSec
|
|
152
|
+
}: {
|
|
153
|
+
/** Index of the joint to rotate */
|
|
154
|
+
joint: number;
|
|
155
|
+
/** Direction of rotation ("+" or "-") */
|
|
156
|
+
direction: "+" | "-";
|
|
157
|
+
/** Speed of the rotation in radians per second */
|
|
158
|
+
velocityRadsPerSec: number;
|
|
159
|
+
}): Promise<void>;
|
|
160
|
+
/**
|
|
161
|
+
* Jogging: Start the TCP moving along a specified axis at a given velocity
|
|
162
|
+
*/
|
|
163
|
+
translateTCP({
|
|
164
|
+
axis,
|
|
165
|
+
direction,
|
|
166
|
+
velocityMmPerSec
|
|
167
|
+
}: {
|
|
168
|
+
axis: "x" | "y" | "z";
|
|
169
|
+
direction: "-" | "+";
|
|
170
|
+
velocityMmPerSec: number;
|
|
171
|
+
}): Promise<void>;
|
|
172
|
+
/**
|
|
173
|
+
* Jogging: Start the TCP rotating around a specified axis at a given velocity
|
|
174
|
+
*/
|
|
175
|
+
rotateTCP({
|
|
176
|
+
axis,
|
|
177
|
+
direction,
|
|
178
|
+
velocityRadsPerSec
|
|
179
|
+
}: {
|
|
180
|
+
axis: "x" | "y" | "z";
|
|
181
|
+
direction: "-" | "+";
|
|
182
|
+
velocityRadsPerSec: number;
|
|
183
|
+
}): Promise<void>;
|
|
184
|
+
/**
|
|
185
|
+
* Trajectory jogging:
|
|
186
|
+
*
|
|
187
|
+
* Move the robot by a fixed distance in a single cartesian
|
|
188
|
+
* axis, either rotating or translating relative to the TCP.
|
|
189
|
+
* Promise resolves only after the motion has completed.
|
|
190
|
+
*/
|
|
191
|
+
runIncrementalCartesianMotion({
|
|
192
|
+
currentTcpPose,
|
|
193
|
+
currentJoints,
|
|
194
|
+
coordSystemId,
|
|
195
|
+
velocityInRelevantUnits,
|
|
196
|
+
axis,
|
|
197
|
+
direction,
|
|
198
|
+
motion
|
|
199
|
+
}: {
|
|
200
|
+
currentTcpPose: Pose;
|
|
201
|
+
currentJoints: Vector3Simple;
|
|
202
|
+
coordSystemId: string;
|
|
203
|
+
velocityInRelevantUnits: number;
|
|
204
|
+
axis: "x" | "y" | "z";
|
|
205
|
+
direction: "-" | "+";
|
|
206
|
+
motion: {
|
|
207
|
+
type: "rotate";
|
|
208
|
+
distanceRads: number;
|
|
209
|
+
} | {
|
|
210
|
+
type: "translate";
|
|
211
|
+
distanceMm: number;
|
|
212
|
+
};
|
|
213
|
+
}): Promise<void>;
|
|
214
|
+
}
|
|
215
|
+
//#endregion
|
|
59
216
|
//#region src/lib/v2/NovaClient.d.ts
|
|
60
217
|
type NovaClientConfig = {
|
|
61
218
|
/**
|
|
@@ -87,10 +244,6 @@ type NovaClientConfigWithDefaults = NovaClientConfig & {
|
|
|
87
244
|
cellId: string;
|
|
88
245
|
};
|
|
89
246
|
/**
|
|
90
|
-
* EXPERIMENTAL
|
|
91
|
-
*
|
|
92
|
-
* This client provides a starting point to migrate NOVA api v2.
|
|
93
|
-
* As v2 is still in development, this client has to be considered unstable
|
|
94
247
|
*
|
|
95
248
|
* Client for connecting to a Nova instance and controlling robots.
|
|
96
249
|
*/
|
|
@@ -109,7 +262,103 @@ declare class NovaClient {
|
|
|
109
262
|
* on the returned object.
|
|
110
263
|
*/
|
|
111
264
|
openReconnectingWebsocket(path: string): AutoReconnectingWebsocket;
|
|
265
|
+
/**
|
|
266
|
+
* Connect to the motion state websocket(s) for a given motion group
|
|
267
|
+
*/
|
|
268
|
+
connectMotionStream(motionGroupId: string): Promise<MotionStreamConnection>;
|
|
269
|
+
/**
|
|
270
|
+
* Connect to the jogging websocket(s) for a given motion group
|
|
271
|
+
*/
|
|
272
|
+
connectJogger(motionGroupId: string, options?: JoggerConnectionOptions): Promise<JoggerConnection>;
|
|
273
|
+
connectMotionGroups(motionGroupIds: string[]): Promise<ConnectedMotionGroup[]>;
|
|
274
|
+
connectMotionGroup(motionGroupId: string): Promise<ConnectedMotionGroup>;
|
|
275
|
+
}
|
|
276
|
+
//#endregion
|
|
277
|
+
//#region src/lib/v2/ConnectedMotionGroup.d.ts
|
|
278
|
+
type RobotTcpLike = {
|
|
279
|
+
id: string;
|
|
280
|
+
readable_name: string;
|
|
281
|
+
position: Vector3Simple;
|
|
282
|
+
orientation: Vector3Simple;
|
|
283
|
+
};
|
|
284
|
+
type MotionGroupOption = {
|
|
285
|
+
selectionId: string;
|
|
286
|
+
};
|
|
287
|
+
/**
|
|
288
|
+
* Store representing the current state of a connected motion group.
|
|
289
|
+
*/
|
|
290
|
+
declare class ConnectedMotionGroup {
|
|
291
|
+
readonly nova: NovaClient;
|
|
292
|
+
readonly controller: RobotControllerState;
|
|
293
|
+
readonly motionGroup: MotionGroupState;
|
|
294
|
+
readonly initialMotionState: MotionGroupState;
|
|
295
|
+
readonly motionStateSocket: AutoReconnectingWebsocket;
|
|
296
|
+
readonly isVirtual: boolean;
|
|
297
|
+
readonly tcps: RobotTcpLike[];
|
|
298
|
+
readonly description: MotionGroupDescription;
|
|
299
|
+
readonly initialControllerState: RobotControllerState;
|
|
300
|
+
readonly controllerStateSocket: AutoReconnectingWebsocket;
|
|
301
|
+
static connect(nova: NovaClient, motionGroupId: string): Promise<ConnectedMotionGroup>;
|
|
302
|
+
connectedJoggingSocket: WebSocket | null;
|
|
303
|
+
planData: any | null;
|
|
304
|
+
joggingVelocity: number;
|
|
305
|
+
rapidlyChangingMotionState: MotionGroupState;
|
|
306
|
+
controllerState: RobotControllerState;
|
|
307
|
+
/**
|
|
308
|
+
* Reflects activation state of the motion group / robot servos. The
|
|
309
|
+
* movement controls in the UI should only be enabled in the "active" state
|
|
310
|
+
*/
|
|
311
|
+
activationState: "inactive" | "activating" | "deactivating" | "active";
|
|
312
|
+
constructor(nova: NovaClient, controller: RobotControllerState, motionGroup: MotionGroupState, initialMotionState: MotionGroupState, motionStateSocket: AutoReconnectingWebsocket, isVirtual: boolean, tcps: RobotTcpLike[], description: MotionGroupDescription, initialControllerState: RobotControllerState, controllerStateSocket: AutoReconnectingWebsocket);
|
|
313
|
+
get motionGroupId(): string;
|
|
314
|
+
get controllerId(): string;
|
|
315
|
+
get modelFromController(): string;
|
|
316
|
+
get wandelscriptIdentifier(): string;
|
|
317
|
+
/** Jogging velocity in radians for rotation and joint movement */
|
|
318
|
+
get joggingVelocityRads(): number;
|
|
319
|
+
get joints(): {
|
|
320
|
+
index: number;
|
|
321
|
+
}[];
|
|
322
|
+
get dhParameters(): _wandelbots_nova_api_v20.DHParameter[] | undefined;
|
|
323
|
+
get safetyZones(): {
|
|
324
|
+
[key: string]: _wandelbots_nova_api_v20.Collider;
|
|
325
|
+
} | undefined;
|
|
326
|
+
/** Gets the robot mounting position offset in 3D viz coordinates */
|
|
327
|
+
get mountingPosition(): [number, number, number];
|
|
328
|
+
/** Gets the robot mounting position rotation in 3D viz coordinates */
|
|
329
|
+
get mountingQuaternion(): THREE.Quaternion;
|
|
330
|
+
/**
|
|
331
|
+
* Whether the controller is currently in a safety state
|
|
332
|
+
* corresponding to an emergency stop
|
|
333
|
+
*/
|
|
334
|
+
get isEstopActive(): boolean;
|
|
335
|
+
/**
|
|
336
|
+
* Whether the controller is in a safety state
|
|
337
|
+
* that may be non-functional for robot pad purposes
|
|
338
|
+
*/
|
|
339
|
+
get isMoveableSafetyState(): boolean;
|
|
340
|
+
/**
|
|
341
|
+
* Whether the controller is in an operation mode that allows movement
|
|
342
|
+
*/
|
|
343
|
+
get isMoveableOperationMode(): boolean;
|
|
344
|
+
/**
|
|
345
|
+
* Whether the robot is currently active and can be moved, based on the
|
|
346
|
+
* safety state, operation mode and servo toggle activation state.
|
|
347
|
+
*/
|
|
348
|
+
get canBeMoved(): boolean;
|
|
349
|
+
deactivate(): Promise<void>;
|
|
350
|
+
activate(): Promise<void>;
|
|
351
|
+
toggleActivation(): void;
|
|
352
|
+
dispose(): void;
|
|
353
|
+
setJoggingVelocity(velocity: number): void;
|
|
112
354
|
}
|
|
113
355
|
//#endregion
|
|
114
|
-
|
|
356
|
+
//#region src/lib/v2/wandelscriptUtils.d.ts
|
|
357
|
+
/**
|
|
358
|
+
* Convert a Pose object representing a motion group position
|
|
359
|
+
* into a string which represents that pose in Wandelscript.
|
|
360
|
+
*/
|
|
361
|
+
declare function poseToWandelscriptString(pose: Pick<Pose, "position" | "orientation">): string;
|
|
362
|
+
//#endregion
|
|
363
|
+
export { ConnectedMotionGroup, JoggerConnection, JoggerConnectionOptions, JoggerMode, JoggerOrientation, MotionGroupOption, MotionStreamConnection, NovaCellAPIClient, NovaClient, NovaClientConfig, RobotTcpLike, Vector3Simple, WithCellId, WithUnwrappedAxiosResponse, poseToWandelscriptString };
|
|
115
364
|
//# sourceMappingURL=index.d.cts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.cts","names":[],"sources":["../../../src/lib/v2/NovaCellAPIClient.ts","../../../src/lib/v2/NovaClient.ts"],"sourcesContent":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.cts","names":[],"sources":["../../../src/lib/v2/types/vector3.ts","../../../src/lib/v2/NovaCellAPIClient.ts","../../../src/lib/v2/MotionStreamConnection.ts","../../../src/lib/v2/JoggerConnection.ts","../../../src/lib/v2/NovaClient.ts","../../../src/lib/v2/ConnectedMotionGroup.ts","../../../src/lib/v2/wandelscriptUtils.ts"],"sourcesContent":[],"mappings":"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"}
|
package/dist/lib/v2/index.d.ts
CHANGED
|
@@ -1,8 +1,13 @@
|
|
|
1
|
-
import { AutoReconnectingWebsocket, MockNovaInstance } from "../../AutoReconnectingWebsocket-
|
|
1
|
+
import { AutoReconnectingWebsocket, MockNovaInstance } from "../../AutoReconnectingWebsocket-D0gTrkzu.js";
|
|
2
2
|
import { AxiosInstance } from "axios";
|
|
3
|
-
import
|
|
3
|
+
import * as THREE from "three";
|
|
4
|
+
import * as _wandelbots_nova_api_v20 from "@wandelbots/nova-api/v2";
|
|
5
|
+
import { ApplicationApi, BUSInputsOutputsApi, CellApi, Configuration, ControllerApi, ControllerInputsOutputsApi, JoggingApi, KinematicsApi, MotionGroupApi, MotionGroupDescription, MotionGroupModelsApi, MotionGroupState, Pose, RobotControllerState, StoreCollisionComponentsApi, StoreCollisionSetupsApi, StoreObjectApi, SystemApi, TrajectoryCachingApi, TrajectoryExecutionApi, TrajectoryPlanningApi, VirtualControllerApi, VirtualControllerBehaviorApi, VirtualControllerInputsOutputsApi } from "@wandelbots/nova-api/v2";
|
|
4
6
|
export * from "@wandelbots/nova-api/v2";
|
|
5
7
|
|
|
8
|
+
//#region src/lib/v2/types/vector3.d.ts
|
|
9
|
+
type Vector3Simple = [number, number, number];
|
|
10
|
+
//#endregion
|
|
6
11
|
//#region src/lib/v2/NovaCellAPIClient.d.ts
|
|
7
12
|
type OmitFirstArg<F> = F extends ((x: any, ...args: infer P) => infer R) ? (...args: P) => R : never;
|
|
8
13
|
type UnwrapAxiosResponseReturn<T> = T extends ((...a: any) => any) ? (...a: Parameters<T>) => Promise<Awaited<ReturnType<T>> extends {
|
|
@@ -56,6 +61,158 @@ declare class NovaCellAPIClient {
|
|
|
56
61
|
readonly storeCollisionSetups: WithCellId<StoreCollisionSetupsApi>;
|
|
57
62
|
}
|
|
58
63
|
//#endregion
|
|
64
|
+
//#region src/lib/v2/MotionStreamConnection.d.ts
|
|
65
|
+
/**
|
|
66
|
+
* Store representing the current state of a connected motion group.
|
|
67
|
+
*/
|
|
68
|
+
declare class MotionStreamConnection {
|
|
69
|
+
readonly nova: NovaClient;
|
|
70
|
+
readonly controller: RobotControllerState;
|
|
71
|
+
readonly motionGroup: MotionGroupState;
|
|
72
|
+
readonly description: MotionGroupDescription;
|
|
73
|
+
readonly initialMotionState: MotionGroupState;
|
|
74
|
+
readonly motionStateSocket: AutoReconnectingWebsocket;
|
|
75
|
+
static open(nova: NovaClient, motionGroupId: string): Promise<MotionStreamConnection>;
|
|
76
|
+
rapidlyChangingMotionState: MotionGroupState;
|
|
77
|
+
constructor(nova: NovaClient, controller: RobotControllerState, motionGroup: MotionGroupState, description: MotionGroupDescription, initialMotionState: MotionGroupState, motionStateSocket: AutoReconnectingWebsocket);
|
|
78
|
+
get motionGroupId(): string;
|
|
79
|
+
get controllerId(): string;
|
|
80
|
+
get wandelscriptIdentifier(): string;
|
|
81
|
+
get joints(): {
|
|
82
|
+
index: number;
|
|
83
|
+
}[];
|
|
84
|
+
dispose(): void;
|
|
85
|
+
}
|
|
86
|
+
//#endregion
|
|
87
|
+
//#region src/lib/v2/JoggerConnection.d.ts
|
|
88
|
+
type JoggerConnectionOptions = {
|
|
89
|
+
mode?: JoggerMode;
|
|
90
|
+
timeout?: number;
|
|
91
|
+
/**
|
|
92
|
+
* When an error message is received from the jogging websocket, it
|
|
93
|
+
* will be passed here. If this handler is not provided, the error will
|
|
94
|
+
* instead be thrown as an unhandled error.
|
|
95
|
+
*/
|
|
96
|
+
onError?: (err: unknown) => void;
|
|
97
|
+
tcp?: string;
|
|
98
|
+
orientation?: JoggerOrientation;
|
|
99
|
+
};
|
|
100
|
+
type JoggerMode = "jogging" | "trajectory" | "off";
|
|
101
|
+
type JoggerOrientation = "world" | "tool";
|
|
102
|
+
declare class JoggerConnection {
|
|
103
|
+
readonly motionStream: MotionStreamConnection;
|
|
104
|
+
readonly options: JoggerConnectionOptions | undefined;
|
|
105
|
+
ENDPOINT_JOGGING: string;
|
|
106
|
+
ENDPOINT_TRAJECTORY: string;
|
|
107
|
+
DEFAULT_MODE: JoggerMode;
|
|
108
|
+
DEFAULT_TCP: string;
|
|
109
|
+
DEFAULT_INIT_TIMEOUT: number;
|
|
110
|
+
DEFAULT_ORIENTATION: JoggerOrientation;
|
|
111
|
+
mode: JoggerMode;
|
|
112
|
+
joggingSocket: AutoReconnectingWebsocket | null;
|
|
113
|
+
trajectorySocket: AutoReconnectingWebsocket | null;
|
|
114
|
+
timeout: number;
|
|
115
|
+
tcp: string;
|
|
116
|
+
orientation: JoggerOrientation;
|
|
117
|
+
onError?: (err: unknown) => void;
|
|
118
|
+
/**
|
|
119
|
+
* Initialize the jogging connection using jogging endpoint or trajectory endpoint depending on the selected mode.
|
|
120
|
+
*
|
|
121
|
+
* @param nova - The Nova client instance
|
|
122
|
+
* @param motionGroupId - The ID of the motion group to connect to
|
|
123
|
+
* @param options - Configuration options for the jogger connection
|
|
124
|
+
* @param options.mode - The jogging mode to initialize:
|
|
125
|
+
* - "jogging": Continuous jogging mode with persistent websocket for real-time velocity commands
|
|
126
|
+
* - "trajectory": Incremental jogging mode for fixed-distance motions via trajectory planning
|
|
127
|
+
* - "off": No jogging enabled, all websockets closed (default)
|
|
128
|
+
* @param options.timeout - Timeout in milliseconds for websocket initialization (default: 5000ms)
|
|
129
|
+
* @param options.tcp - TCP frame to use for motions (default: from motion group)
|
|
130
|
+
* //param options.coordinateSystem - Coordinate system for jogging commands (default: "world"). Please note: Currently not implemented
|
|
131
|
+
* @param options.orientation - If set to "tool", jogging TcpVelocityRequest will use `use_tool_coordinate_system` option (default: "world")
|
|
132
|
+
* @param options.onError - Error handler for websocket errors
|
|
133
|
+
* @returns Promise resolving to initialized JoggerConnection instance
|
|
134
|
+
*/
|
|
135
|
+
static open(nova: NovaClient, motionGroupId: string, options?: JoggerConnectionOptions): Promise<JoggerConnection>;
|
|
136
|
+
constructor(motionStream: MotionStreamConnection, options?: JoggerConnectionOptions | undefined);
|
|
137
|
+
updateOptions(options: Partial<JoggerConnectionOptions>): Promise<void>;
|
|
138
|
+
get motionGroupId(): string;
|
|
139
|
+
get nova(): NovaClient;
|
|
140
|
+
get numJoints(): number;
|
|
141
|
+
stop(): Promise<void>;
|
|
142
|
+
dispose(): Promise<void[]>;
|
|
143
|
+
setJoggingMode(mode: JoggerMode, skipReinitializeIfSameMode?: boolean): Promise<void>;
|
|
144
|
+
initializeJoggingWebsocket(): Promise<void>;
|
|
145
|
+
/**
|
|
146
|
+
* Jogging: Start rotation of a single robot joint at the specified velocity
|
|
147
|
+
*/
|
|
148
|
+
rotateJoints({
|
|
149
|
+
joint,
|
|
150
|
+
direction,
|
|
151
|
+
velocityRadsPerSec
|
|
152
|
+
}: {
|
|
153
|
+
/** Index of the joint to rotate */
|
|
154
|
+
joint: number;
|
|
155
|
+
/** Direction of rotation ("+" or "-") */
|
|
156
|
+
direction: "+" | "-";
|
|
157
|
+
/** Speed of the rotation in radians per second */
|
|
158
|
+
velocityRadsPerSec: number;
|
|
159
|
+
}): Promise<void>;
|
|
160
|
+
/**
|
|
161
|
+
* Jogging: Start the TCP moving along a specified axis at a given velocity
|
|
162
|
+
*/
|
|
163
|
+
translateTCP({
|
|
164
|
+
axis,
|
|
165
|
+
direction,
|
|
166
|
+
velocityMmPerSec
|
|
167
|
+
}: {
|
|
168
|
+
axis: "x" | "y" | "z";
|
|
169
|
+
direction: "-" | "+";
|
|
170
|
+
velocityMmPerSec: number;
|
|
171
|
+
}): Promise<void>;
|
|
172
|
+
/**
|
|
173
|
+
* Jogging: Start the TCP rotating around a specified axis at a given velocity
|
|
174
|
+
*/
|
|
175
|
+
rotateTCP({
|
|
176
|
+
axis,
|
|
177
|
+
direction,
|
|
178
|
+
velocityRadsPerSec
|
|
179
|
+
}: {
|
|
180
|
+
axis: "x" | "y" | "z";
|
|
181
|
+
direction: "-" | "+";
|
|
182
|
+
velocityRadsPerSec: number;
|
|
183
|
+
}): Promise<void>;
|
|
184
|
+
/**
|
|
185
|
+
* Trajectory jogging:
|
|
186
|
+
*
|
|
187
|
+
* Move the robot by a fixed distance in a single cartesian
|
|
188
|
+
* axis, either rotating or translating relative to the TCP.
|
|
189
|
+
* Promise resolves only after the motion has completed.
|
|
190
|
+
*/
|
|
191
|
+
runIncrementalCartesianMotion({
|
|
192
|
+
currentTcpPose,
|
|
193
|
+
currentJoints,
|
|
194
|
+
coordSystemId,
|
|
195
|
+
velocityInRelevantUnits,
|
|
196
|
+
axis,
|
|
197
|
+
direction,
|
|
198
|
+
motion
|
|
199
|
+
}: {
|
|
200
|
+
currentTcpPose: Pose;
|
|
201
|
+
currentJoints: Vector3Simple;
|
|
202
|
+
coordSystemId: string;
|
|
203
|
+
velocityInRelevantUnits: number;
|
|
204
|
+
axis: "x" | "y" | "z";
|
|
205
|
+
direction: "-" | "+";
|
|
206
|
+
motion: {
|
|
207
|
+
type: "rotate";
|
|
208
|
+
distanceRads: number;
|
|
209
|
+
} | {
|
|
210
|
+
type: "translate";
|
|
211
|
+
distanceMm: number;
|
|
212
|
+
};
|
|
213
|
+
}): Promise<void>;
|
|
214
|
+
}
|
|
215
|
+
//#endregion
|
|
59
216
|
//#region src/lib/v2/NovaClient.d.ts
|
|
60
217
|
type NovaClientConfig = {
|
|
61
218
|
/**
|
|
@@ -87,10 +244,6 @@ type NovaClientConfigWithDefaults = NovaClientConfig & {
|
|
|
87
244
|
cellId: string;
|
|
88
245
|
};
|
|
89
246
|
/**
|
|
90
|
-
* EXPERIMENTAL
|
|
91
|
-
*
|
|
92
|
-
* This client provides a starting point to migrate NOVA api v2.
|
|
93
|
-
* As v2 is still in development, this client has to be considered unstable
|
|
94
247
|
*
|
|
95
248
|
* Client for connecting to a Nova instance and controlling robots.
|
|
96
249
|
*/
|
|
@@ -109,7 +262,103 @@ declare class NovaClient {
|
|
|
109
262
|
* on the returned object.
|
|
110
263
|
*/
|
|
111
264
|
openReconnectingWebsocket(path: string): AutoReconnectingWebsocket;
|
|
265
|
+
/**
|
|
266
|
+
* Connect to the motion state websocket(s) for a given motion group
|
|
267
|
+
*/
|
|
268
|
+
connectMotionStream(motionGroupId: string): Promise<MotionStreamConnection>;
|
|
269
|
+
/**
|
|
270
|
+
* Connect to the jogging websocket(s) for a given motion group
|
|
271
|
+
*/
|
|
272
|
+
connectJogger(motionGroupId: string, options?: JoggerConnectionOptions): Promise<JoggerConnection>;
|
|
273
|
+
connectMotionGroups(motionGroupIds: string[]): Promise<ConnectedMotionGroup[]>;
|
|
274
|
+
connectMotionGroup(motionGroupId: string): Promise<ConnectedMotionGroup>;
|
|
275
|
+
}
|
|
276
|
+
//#endregion
|
|
277
|
+
//#region src/lib/v2/ConnectedMotionGroup.d.ts
|
|
278
|
+
type RobotTcpLike = {
|
|
279
|
+
id: string;
|
|
280
|
+
readable_name: string;
|
|
281
|
+
position: Vector3Simple;
|
|
282
|
+
orientation: Vector3Simple;
|
|
283
|
+
};
|
|
284
|
+
type MotionGroupOption = {
|
|
285
|
+
selectionId: string;
|
|
286
|
+
};
|
|
287
|
+
/**
|
|
288
|
+
* Store representing the current state of a connected motion group.
|
|
289
|
+
*/
|
|
290
|
+
declare class ConnectedMotionGroup {
|
|
291
|
+
readonly nova: NovaClient;
|
|
292
|
+
readonly controller: RobotControllerState;
|
|
293
|
+
readonly motionGroup: MotionGroupState;
|
|
294
|
+
readonly initialMotionState: MotionGroupState;
|
|
295
|
+
readonly motionStateSocket: AutoReconnectingWebsocket;
|
|
296
|
+
readonly isVirtual: boolean;
|
|
297
|
+
readonly tcps: RobotTcpLike[];
|
|
298
|
+
readonly description: MotionGroupDescription;
|
|
299
|
+
readonly initialControllerState: RobotControllerState;
|
|
300
|
+
readonly controllerStateSocket: AutoReconnectingWebsocket;
|
|
301
|
+
static connect(nova: NovaClient, motionGroupId: string): Promise<ConnectedMotionGroup>;
|
|
302
|
+
connectedJoggingSocket: WebSocket | null;
|
|
303
|
+
planData: any | null;
|
|
304
|
+
joggingVelocity: number;
|
|
305
|
+
rapidlyChangingMotionState: MotionGroupState;
|
|
306
|
+
controllerState: RobotControllerState;
|
|
307
|
+
/**
|
|
308
|
+
* Reflects activation state of the motion group / robot servos. The
|
|
309
|
+
* movement controls in the UI should only be enabled in the "active" state
|
|
310
|
+
*/
|
|
311
|
+
activationState: "inactive" | "activating" | "deactivating" | "active";
|
|
312
|
+
constructor(nova: NovaClient, controller: RobotControllerState, motionGroup: MotionGroupState, initialMotionState: MotionGroupState, motionStateSocket: AutoReconnectingWebsocket, isVirtual: boolean, tcps: RobotTcpLike[], description: MotionGroupDescription, initialControllerState: RobotControllerState, controllerStateSocket: AutoReconnectingWebsocket);
|
|
313
|
+
get motionGroupId(): string;
|
|
314
|
+
get controllerId(): string;
|
|
315
|
+
get modelFromController(): string;
|
|
316
|
+
get wandelscriptIdentifier(): string;
|
|
317
|
+
/** Jogging velocity in radians for rotation and joint movement */
|
|
318
|
+
get joggingVelocityRads(): number;
|
|
319
|
+
get joints(): {
|
|
320
|
+
index: number;
|
|
321
|
+
}[];
|
|
322
|
+
get dhParameters(): _wandelbots_nova_api_v20.DHParameter[] | undefined;
|
|
323
|
+
get safetyZones(): {
|
|
324
|
+
[key: string]: _wandelbots_nova_api_v20.Collider;
|
|
325
|
+
} | undefined;
|
|
326
|
+
/** Gets the robot mounting position offset in 3D viz coordinates */
|
|
327
|
+
get mountingPosition(): [number, number, number];
|
|
328
|
+
/** Gets the robot mounting position rotation in 3D viz coordinates */
|
|
329
|
+
get mountingQuaternion(): THREE.Quaternion;
|
|
330
|
+
/**
|
|
331
|
+
* Whether the controller is currently in a safety state
|
|
332
|
+
* corresponding to an emergency stop
|
|
333
|
+
*/
|
|
334
|
+
get isEstopActive(): boolean;
|
|
335
|
+
/**
|
|
336
|
+
* Whether the controller is in a safety state
|
|
337
|
+
* that may be non-functional for robot pad purposes
|
|
338
|
+
*/
|
|
339
|
+
get isMoveableSafetyState(): boolean;
|
|
340
|
+
/**
|
|
341
|
+
* Whether the controller is in an operation mode that allows movement
|
|
342
|
+
*/
|
|
343
|
+
get isMoveableOperationMode(): boolean;
|
|
344
|
+
/**
|
|
345
|
+
* Whether the robot is currently active and can be moved, based on the
|
|
346
|
+
* safety state, operation mode and servo toggle activation state.
|
|
347
|
+
*/
|
|
348
|
+
get canBeMoved(): boolean;
|
|
349
|
+
deactivate(): Promise<void>;
|
|
350
|
+
activate(): Promise<void>;
|
|
351
|
+
toggleActivation(): void;
|
|
352
|
+
dispose(): void;
|
|
353
|
+
setJoggingVelocity(velocity: number): void;
|
|
112
354
|
}
|
|
113
355
|
//#endregion
|
|
114
|
-
|
|
356
|
+
//#region src/lib/v2/wandelscriptUtils.d.ts
|
|
357
|
+
/**
|
|
358
|
+
* Convert a Pose object representing a motion group position
|
|
359
|
+
* into a string which represents that pose in Wandelscript.
|
|
360
|
+
*/
|
|
361
|
+
declare function poseToWandelscriptString(pose: Pick<Pose, "position" | "orientation">): string;
|
|
362
|
+
//#endregion
|
|
363
|
+
export { ConnectedMotionGroup, JoggerConnection, JoggerConnectionOptions, JoggerMode, JoggerOrientation, MotionGroupOption, MotionStreamConnection, NovaCellAPIClient, NovaClient, NovaClientConfig, RobotTcpLike, Vector3Simple, WithCellId, WithUnwrappedAxiosResponse, poseToWandelscriptString };
|
|
115
364
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","names":[],"sources":["../../../src/lib/v2/NovaCellAPIClient.ts","../../../src/lib/v2/NovaClient.ts"],"sourcesContent":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","names":[],"sources":["../../../src/lib/v2/types/vector3.ts","../../../src/lib/v2/NovaCellAPIClient.ts","../../../src/lib/v2/MotionStreamConnection.ts","../../../src/lib/v2/JoggerConnection.ts","../../../src/lib/v2/NovaClient.ts","../../../src/lib/v2/ConnectedMotionGroup.ts","../../../src/lib/v2/wandelscriptUtils.ts"],"sourcesContent":[],"mappings":"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"}
|