@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.
Files changed (66) hide show
  1. package/README.md +60 -50
  2. package/dist/{AutoReconnectingWebsocket-BI1ckzP8.d.ts → AutoReconnectingWebsocket-CoU4ZyD2.d.cts} +1 -3
  3. package/dist/AutoReconnectingWebsocket-CoU4ZyD2.d.cts.map +1 -0
  4. package/dist/{AutoReconnectingWebsocket-Cr7f9016.d.cts → AutoReconnectingWebsocket-D0gTrkzu.d.ts} +1 -3
  5. package/dist/AutoReconnectingWebsocket-D0gTrkzu.d.ts.map +1 -0
  6. package/dist/{LoginWithAuth0-0g0wWRUC.js → LoginWithAuth0-CaX7yo7d.js} +58 -5
  7. package/dist/LoginWithAuth0-CaX7yo7d.js.map +1 -0
  8. package/dist/{LoginWithAuth0-C82OCyDy.cjs → LoginWithAuth0-DaPnTz2I.cjs} +99 -4
  9. package/dist/LoginWithAuth0-DaPnTz2I.cjs.map +1 -0
  10. package/dist/index.cjs +11 -10
  11. package/dist/index.cjs.map +1 -1
  12. package/dist/index.d.cts +11 -8
  13. package/dist/index.d.cts.map +1 -1
  14. package/dist/index.d.ts +11 -8
  15. package/dist/index.d.ts.map +1 -1
  16. package/dist/index.js +3 -3
  17. package/dist/lib/v1/index.cjs +17 -19
  18. package/dist/lib/v1/index.cjs.map +1 -1
  19. package/dist/lib/v1/index.d.cts +4 -2
  20. package/dist/lib/v1/index.d.cts.map +1 -1
  21. package/dist/lib/v1/index.d.ts +4 -2
  22. package/dist/lib/v1/index.d.ts.map +1 -1
  23. package/dist/lib/v1/index.js +7 -10
  24. package/dist/lib/v1/index.js.map +1 -1
  25. package/dist/lib/v2/index.cjs +1087 -11
  26. package/dist/lib/v2/index.cjs.map +1 -1
  27. package/dist/lib/v2/index.d.cts +256 -7
  28. package/dist/lib/v2/index.d.cts.map +1 -1
  29. package/dist/lib/v2/index.d.ts +256 -7
  30. package/dist/lib/v2/index.d.ts.map +1 -1
  31. package/dist/lib/v2/index.js +1082 -12
  32. package/dist/lib/v2/index.js.map +1 -1
  33. package/dist/wandelscriptUtils-CO5GYRij.js +24 -0
  34. package/dist/wandelscriptUtils-CO5GYRij.js.map +1 -0
  35. package/dist/wandelscriptUtils-COHpTIme.d.cts +12 -0
  36. package/dist/wandelscriptUtils-COHpTIme.d.cts.map +1 -0
  37. package/dist/wandelscriptUtils-Cl3GBxOp.d.ts +12 -0
  38. package/dist/wandelscriptUtils-Cl3GBxOp.d.ts.map +1 -0
  39. package/dist/wandelscriptUtils-DwpJ4jCy.cjs +30 -0
  40. package/dist/wandelscriptUtils-DwpJ4jCy.cjs.map +1 -0
  41. package/package.json +2 -2
  42. package/src/LoginWithAuth0.ts +3 -3
  43. package/src/index.ts +1 -0
  44. package/src/lib/converters.ts +5 -23
  45. package/src/lib/v1/MotionStreamConnection.ts +1 -1
  46. package/src/lib/v1/NovaClient.ts +6 -0
  47. package/src/lib/v1/index.ts +6 -0
  48. package/src/lib/v1/mock/MockNovaInstance.ts +0 -1
  49. package/src/lib/v1/wandelscriptUtils.ts +22 -0
  50. package/src/lib/v2/ConnectedMotionGroup.ts +415 -0
  51. package/src/lib/v2/JoggerConnection.ts +647 -0
  52. package/src/lib/v2/MotionStreamConnection.ts +222 -0
  53. package/src/lib/v2/NovaClient.ts +43 -8
  54. package/src/lib/v2/index.ts +5 -0
  55. package/src/lib/v2/mock/MockNovaInstance.ts +385 -1
  56. package/src/lib/v2/motionStateUpdate.ts +76 -0
  57. package/src/lib/v2/types/vector3.ts +1 -0
  58. package/src/lib/v2/wandelscriptUtils.ts +27 -0
  59. package/dist/AutoReconnectingWebsocket-BI1ckzP8.d.ts.map +0 -1
  60. package/dist/AutoReconnectingWebsocket-Cr7f9016.d.cts.map +0 -1
  61. package/dist/LoginWithAuth0-0g0wWRUC.js.map +0 -1
  62. package/dist/LoginWithAuth0-C82OCyDy.cjs.map +0 -1
  63. package/dist/converters-DP2EIVv6.cjs +0 -108
  64. package/dist/converters-DP2EIVv6.cjs.map +0 -1
  65. package/dist/converters-DY6Lf7mb.js +0 -66
  66. package/dist/converters-DY6Lf7mb.js.map +0 -1
@@ -1,8 +1,13 @@
1
- import { AutoReconnectingWebsocket, MockNovaInstance } from "../../AutoReconnectingWebsocket-Cr7f9016.cjs";
1
+ import { AutoReconnectingWebsocket, MockNovaInstance } from "../../AutoReconnectingWebsocket-CoU4ZyD2.cjs";
2
2
  import { AxiosInstance } from "axios";
3
- import { ApplicationApi, BUSInputsOutputsApi, CellApi, Configuration, ControllerApi, ControllerInputsOutputsApi, JoggingApi, KinematicsApi, MotionGroupApi, MotionGroupModelsApi, StoreCollisionComponentsApi, StoreCollisionSetupsApi, StoreObjectApi, SystemApi, TrajectoryCachingApi, TrajectoryExecutionApi, TrajectoryPlanningApi, VirtualControllerApi, VirtualControllerBehaviorApi, VirtualControllerInputsOutputsApi } from "@wandelbots/nova-api/v2";
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
- export { NovaCellAPIClient, NovaClient, NovaClientConfig, WithCellId, WithUnwrappedAxiosResponse };
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":"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"}
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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"}
@@ -1,8 +1,13 @@
1
- import { AutoReconnectingWebsocket, MockNovaInstance } from "../../AutoReconnectingWebsocket-BI1ckzP8.js";
1
+ import { AutoReconnectingWebsocket, MockNovaInstance } from "../../AutoReconnectingWebsocket-D0gTrkzu.js";
2
2
  import { AxiosInstance } from "axios";
3
- import { ApplicationApi, BUSInputsOutputsApi, CellApi, Configuration, ControllerApi, ControllerInputsOutputsApi, JoggingApi, KinematicsApi, MotionGroupApi, MotionGroupModelsApi, StoreCollisionComponentsApi, StoreCollisionSetupsApi, StoreObjectApi, SystemApi, TrajectoryCachingApi, TrajectoryExecutionApi, TrajectoryPlanningApi, VirtualControllerApi, VirtualControllerBehaviorApi, VirtualControllerInputsOutputsApi } from "@wandelbots/nova-api/v2";
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
- export { NovaCellAPIClient, NovaClient, NovaClientConfig, WithCellId, WithUnwrappedAxiosResponse };
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":"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"}
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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"}