@wandelbots/nova-js 3.6.1-pr.270.f77f20a → 3.7.0-pr.267.1acb341

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.
@@ -1,346 +0,0 @@
1
- import { r as MockNovaInstance, t as AutoReconnectingWebsocket } from "./AutoReconnectingWebsocket-9Of5_BJe.cjs";
2
- import { AxiosInstance } from "axios";
3
- import { ApplicationApi, CellApi, Configuration, ControllerApi, ControllerIOsApi, ControllerInstance, CoordinateSystemsApi, DeviceConfigurationApi, Joints, LibraryProgramApi, LibraryProgramMetadataApi, LibraryRecipeApi, LibraryRecipeMetadataApi, MotionApi, MotionGroupApi, MotionGroupInfosApi, MotionGroupJoggingApi, MotionGroupKinematicApi, MotionGroupPhysical, MotionGroupSpecification, MotionGroupStateResponse, Mounting, Pose, ProgramApi, ProgramValuesApi, RobotControllerState, RobotTcp, SafetySetup, StoreCollisionComponentsApi, StoreCollisionScenesApi, StoreObjectApi, SystemApi, TcpPose, VirtualRobotApi, VirtualRobotBehaviorApi, VirtualRobotModeApi, VirtualRobotSetupApi } from "@wandelbots/nova-api/v1";
4
- import * as THREE from "three";
5
-
6
- //#region src/lib/v1/wandelscriptUtils.d.ts
7
- /**
8
- * Convert a Pose object representing a motion group position
9
- * into a string which represents that pose in Wandelscript.
10
- */
11
- declare function poseToWandelscriptString(pose: Pick<Pose, "position" | "orientation">): string;
12
- //#endregion
13
- //#region src/lib/v1/ConnectedMotionGroup.d.ts
14
- type MotionGroupOption = {
15
- selectionId: string;
16
- } & MotionGroupPhysical;
17
- /**
18
- * Store representing the current state of a connected motion group.
19
- */
20
- declare class ConnectedMotionGroup {
21
- readonly nova: NovaClient;
22
- readonly controller: ControllerInstance;
23
- readonly motionGroup: MotionGroupPhysical;
24
- readonly initialMotionState: MotionGroupStateResponse;
25
- readonly motionStateSocket: AutoReconnectingWebsocket;
26
- readonly isVirtual: boolean;
27
- readonly tcps: RobotTcp[];
28
- readonly motionGroupSpecification: MotionGroupSpecification;
29
- readonly safetySetup: SafetySetup;
30
- readonly mounting: Mounting | null;
31
- readonly initialControllerState: RobotControllerState;
32
- readonly controllerStateSocket: AutoReconnectingWebsocket;
33
- static connect(nova: NovaClient, motionGroupId: string, controllers: ControllerInstance[]): Promise<ConnectedMotionGroup>;
34
- connectedJoggingCartesianSocket: WebSocket | null;
35
- connectedJoggingJointsSocket: WebSocket | null;
36
- planData: any | null;
37
- joggingVelocity: number;
38
- rapidlyChangingMotionState: MotionGroupStateResponse;
39
- controllerState: RobotControllerState;
40
- /**
41
- * Reflects activation state of the motion group / robot servos. The
42
- * movement controls in the UI should only be enabled in the "active" state
43
- */
44
- activationState: "inactive" | "activating" | "deactivating" | "active";
45
- constructor(nova: NovaClient, controller: ControllerInstance, motionGroup: MotionGroupPhysical, initialMotionState: MotionGroupStateResponse, motionStateSocket: AutoReconnectingWebsocket, isVirtual: boolean, tcps: RobotTcp[], motionGroupSpecification: MotionGroupSpecification, safetySetup: SafetySetup, mounting: Mounting | null, initialControllerState: RobotControllerState, controllerStateSocket: AutoReconnectingWebsocket);
46
- get motionGroupId(): string;
47
- get controllerId(): string;
48
- get modelFromController(): string | undefined;
49
- get wandelscriptIdentifier(): string;
50
- /** Jogging velocity in radians for rotation and joint movement */
51
- get joggingVelocityRads(): number;
52
- get joints(): {
53
- index: number;
54
- }[];
55
- get dhParameters(): import("@wandelbots/nova-api/v1").DHParameter[] | undefined;
56
- get safetyZones(): import("@wandelbots/nova-api/v1").SafetySetupSafetyZone[] | undefined;
57
- /** Gets the robot mounting position offset in 3D viz coordinates */
58
- get mountingPosition(): [number, number, number];
59
- /** Gets the robot mounting position rotation in 3D viz coordinates */
60
- get mountingQuaternion(): THREE.Quaternion;
61
- /**
62
- * Whether the controller is currently in a safety state
63
- * corresponding to an emergency stop
64
- */
65
- get isEstopActive(): boolean;
66
- /**
67
- * Whether the controller is in a safety state
68
- * that may be non-functional for robot pad purposes
69
- */
70
- get isMoveableSafetyState(): boolean;
71
- /**
72
- * Whether the controller is in an operation mode that allows movement
73
- */
74
- get isMoveableOperationMode(): boolean;
75
- /**
76
- * Whether the robot is currently active and can be moved, based on the
77
- * safety state, operation mode and servo toggle activation state.
78
- */
79
- get canBeMoved(): boolean;
80
- deactivate(): Promise<void>;
81
- activate(): Promise<void>;
82
- toggleActivation(): void;
83
- dispose(): void;
84
- setJoggingVelocity(velocity: number): void;
85
- }
86
- //#endregion
87
- //#region src/lib/v1/MotionStreamConnection.d.ts
88
- /**
89
- * Store representing the current state of a connected motion group.
90
- */
91
- declare class MotionStreamConnection {
92
- readonly nova: NovaClient;
93
- readonly controller: ControllerInstance;
94
- readonly motionGroup: MotionGroupPhysical;
95
- readonly initialMotionState: MotionGroupStateResponse;
96
- readonly motionStateSocket: AutoReconnectingWebsocket;
97
- static open(nova: NovaClient, motionGroupId: string): Promise<MotionStreamConnection>;
98
- rapidlyChangingMotionState: MotionGroupStateResponse;
99
- constructor(nova: NovaClient, controller: ControllerInstance, motionGroup: MotionGroupPhysical, initialMotionState: MotionGroupStateResponse, motionStateSocket: AutoReconnectingWebsocket);
100
- get motionGroupId(): string;
101
- get controllerId(): string;
102
- get modelFromController(): string | undefined;
103
- get wandelscriptIdentifier(): string;
104
- get joints(): {
105
- index: number;
106
- }[];
107
- dispose(): void;
108
- }
109
- //#endregion
110
- //#region src/lib/v1/JoggerConnection.d.ts
111
- type JoggerConnectionOpts = {
112
- /**
113
- * When an error message is received from the jogging websocket, it
114
- * will be passed here. If this handler is not provided, the error will
115
- * instead be thrown as an unhandled error.
116
- */
117
- onError?: (err: unknown) => void;
118
- };
119
- declare class JoggerConnection {
120
- readonly motionStream: MotionStreamConnection;
121
- readonly opts: JoggerConnectionOpts;
122
- cartesianWebsocket: AutoReconnectingWebsocket | null;
123
- jointWebsocket: AutoReconnectingWebsocket | null;
124
- cartesianJoggingOpts: {
125
- tcpId?: string;
126
- coordSystemId?: string;
127
- };
128
- static open(nova: NovaClient, motionGroupId: string, opts?: JoggerConnectionOpts): Promise<JoggerConnection>;
129
- constructor(motionStream: MotionStreamConnection, opts?: JoggerConnectionOpts);
130
- get motionGroupId(): string;
131
- get nova(): NovaClient;
132
- get numJoints(): number;
133
- get activeJoggingMode(): "cartesian" | "joint" | "increment";
134
- get activeWebsocket(): AutoReconnectingWebsocket | null;
135
- stop(): Promise<void>;
136
- dispose(): void;
137
- setJoggingMode(mode: "cartesian" | "joint" | "increment", cartesianJoggingOpts?: {
138
- tcpId?: string;
139
- coordSystemId?: string;
140
- }): void;
141
- /**
142
- * Start rotation of a single robot joint at the specified velocity
143
- */
144
- startJointRotation({
145
- joint,
146
- direction,
147
- velocityRadsPerSec
148
- }: {
149
- /** Index of the joint to rotate */joint: number; /** Direction of rotation ("+" or "-") */
150
- direction: "+" | "-"; /** Speed of the rotation in radians per second */
151
- velocityRadsPerSec: number;
152
- }): Promise<void>;
153
- /**
154
- * Start the TCP moving along a specified axis at a given velocity
155
- */
156
- startTCPTranslation({
157
- axis,
158
- direction,
159
- velocityMmPerSec
160
- }: {
161
- axis: "x" | "y" | "z";
162
- direction: "-" | "+";
163
- velocityMmPerSec: number;
164
- }): Promise<void>;
165
- /**
166
- * Start the TCP rotating around a specified axis at a given velocity
167
- */
168
- startTCPRotation({
169
- axis,
170
- direction,
171
- velocityRadsPerSec
172
- }: {
173
- axis: "x" | "y" | "z";
174
- direction: "-" | "+";
175
- velocityRadsPerSec: number;
176
- }): Promise<void>;
177
- /**
178
- * Move the robot by a fixed distance in a single cartesian
179
- * axis, either rotating or translating relative to the TCP.
180
- * Promise resolves only after the motion has completed.
181
- */
182
- runIncrementalCartesianMotion({
183
- currentTcpPose,
184
- currentJoints,
185
- coordSystemId,
186
- velocityInRelevantUnits,
187
- axis,
188
- direction,
189
- motion
190
- }: {
191
- currentTcpPose: TcpPose;
192
- currentJoints: Joints;
193
- coordSystemId: string;
194
- velocityInRelevantUnits: number;
195
- axis: "x" | "y" | "z";
196
- direction: "-" | "+";
197
- motion: {
198
- type: "rotate";
199
- distanceRads: number;
200
- } | {
201
- type: "translate";
202
- distanceMm: number;
203
- };
204
- }): Promise<void>;
205
- /**
206
- * Rotate a single robot joint by a fixed number of radians
207
- * Promise resolves only after the motion has completed.
208
- */
209
- runIncrementalJointRotation({
210
- joint,
211
- currentJoints,
212
- velocityRadsPerSec,
213
- direction,
214
- distanceRads
215
- }: {
216
- joint: number;
217
- currentJoints: Joints;
218
- velocityRadsPerSec: number;
219
- direction: "-" | "+";
220
- distanceRads: number;
221
- }): Promise<void>;
222
- }
223
- //#endregion
224
- //#region src/lib/v1/NovaCellAPIClient.d.ts
225
- type OmitFirstArg<F> = F extends ((x: any, ...args: infer P) => infer R) ? (...args: P) => R : never;
226
- type UnwrapAxiosResponseReturn<T> = T extends ((...a: any) => any) ? (...a: Parameters<T>) => Promise<Awaited<ReturnType<T>> extends {
227
- data: infer D;
228
- } ? D : never> : never;
229
- type WithCellId<T> = { [P in keyof T]: UnwrapAxiosResponseReturn<OmitFirstArg<T[P]>> };
230
- type WithUnwrappedAxiosResponse<T> = { [P in keyof T]: UnwrapAxiosResponseReturn<T[P]> };
231
- /**
232
- * API client providing type-safe access to all the Nova API REST endpoints
233
- * associated with a specific cell id.
234
- */
235
- declare class NovaCellAPIClient {
236
- readonly cellId: string;
237
- readonly opts: Configuration & {
238
- axiosInstance?: AxiosInstance;
239
- mock?: boolean;
240
- };
241
- constructor(cellId: string, opts: Configuration & {
242
- axiosInstance?: AxiosInstance;
243
- mock?: boolean;
244
- });
245
- /**
246
- * Some TypeScript sorcery which alters the API class methods so you don't
247
- * have to pass the cell id to every single one, and de-encapsulates the
248
- * response data
249
- */
250
- private withCellId;
251
- /**
252
- * As withCellId, but only does the response unwrapping
253
- */
254
- private withUnwrappedResponsesOnly;
255
- readonly system: WithUnwrappedAxiosResponse<SystemApi>;
256
- readonly cell: WithUnwrappedAxiosResponse<CellApi>;
257
- readonly deviceConfig: WithCellId<DeviceConfigurationApi>;
258
- readonly motionGroup: WithCellId<MotionGroupApi>;
259
- readonly motionGroupInfos: WithCellId<MotionGroupInfosApi>;
260
- readonly controller: WithCellId<ControllerApi>;
261
- readonly program: WithCellId<ProgramApi>;
262
- readonly programValues: WithCellId<ProgramValuesApi>;
263
- readonly controllerIOs: WithCellId<ControllerIOsApi>;
264
- readonly motionGroupKinematic: WithCellId<MotionGroupKinematicApi>;
265
- readonly motion: WithCellId<MotionApi>;
266
- readonly coordinateSystems: WithCellId<CoordinateSystemsApi>;
267
- readonly application: WithCellId<ApplicationApi>;
268
- readonly applicationGlobal: WithUnwrappedAxiosResponse<ApplicationApi>;
269
- readonly motionGroupJogging: WithCellId<MotionGroupJoggingApi>;
270
- readonly virtualRobot: WithCellId<VirtualRobotApi>;
271
- readonly virtualRobotSetup: WithCellId<VirtualRobotSetupApi>;
272
- readonly virtualRobotMode: WithCellId<VirtualRobotModeApi>;
273
- readonly virtualRobotBehavior: WithCellId<VirtualRobotBehaviorApi>;
274
- readonly libraryProgramMetadata: WithCellId<LibraryProgramMetadataApi>;
275
- readonly libraryProgram: WithCellId<LibraryProgramApi>;
276
- readonly libraryRecipeMetadata: WithCellId<LibraryRecipeMetadataApi>;
277
- readonly libraryRecipe: WithCellId<LibraryRecipeApi>;
278
- readonly storeObject: WithCellId<StoreObjectApi>;
279
- readonly storeCollisionComponents: WithCellId<StoreCollisionComponentsApi>;
280
- readonly storeCollisionScenes: WithCellId<StoreCollisionScenesApi>;
281
- }
282
- //#endregion
283
- //#region src/lib/v1/NovaClient.d.ts
284
- type NovaClientConfig = {
285
- /**
286
- * Url of the deployed Nova instance to connect to
287
- * e.g. https://saeattii.instance.wandelbots.io
288
- */
289
- instanceUrl: string | "https://mock.example.com";
290
- /**
291
- * Identifier of the cell on the Nova instance to connect this client to.
292
- * If omitted, the default identifier "cell" is used.
293
- **/
294
- cellId?: string;
295
- /**
296
- * Username for basic auth to the Nova instance.
297
- * @deprecated use accessToken instead
298
- */
299
- username?: string;
300
- /**
301
- * Password for basic auth to the Nova instance.
302
- * @deprecated use accessToken instead
303
- */
304
- password?: string;
305
- /**
306
- * Access token for Bearer authentication.
307
- */
308
- accessToken?: string;
309
- } & Omit<Configuration, "isJsonMime" | "basePath">;
310
- type NovaClientConfigWithDefaults = NovaClientConfig & {
311
- cellId: string;
312
- };
313
- /**
314
- * Client for connecting to a Nova instance and controlling robots.
315
- * @deprecated The nova v1 client is deprecated. Please use the v2 client from `@wandelbots/nova-js/v2` instead.
316
- */
317
- declare class NovaClient {
318
- readonly api: NovaCellAPIClient;
319
- readonly config: NovaClientConfigWithDefaults;
320
- readonly mock?: MockNovaInstance;
321
- readonly instanceUrl: URL;
322
- authPromise: Promise<string | null> | null;
323
- accessToken: string | null;
324
- constructor(config: NovaClientConfig);
325
- renewAuthentication(): Promise<void>;
326
- makeWebsocketURL(path: string): string;
327
- /**
328
- * Retrieve an AutoReconnectingWebsocket to the given path on the Nova instance.
329
- * If you explicitly want to reconnect an existing websocket, call `reconnect`
330
- * on the returned object.
331
- */
332
- openReconnectingWebsocket(path: string): AutoReconnectingWebsocket;
333
- /**
334
- * Connect to the motion state websocket(s) for a given motion group
335
- */
336
- connectMotionStream(motionGroupId: string): Promise<MotionStreamConnection>;
337
- /**
338
- * Connect to the jogging websocket(s) for a given motion group
339
- */
340
- connectJogger(motionGroupId: string): Promise<JoggerConnection>;
341
- connectMotionGroups(motionGroupIds: string[]): Promise<ConnectedMotionGroup[]>;
342
- connectMotionGroup(motionGroupId: string): Promise<ConnectedMotionGroup>;
343
- }
344
- //#endregion
345
- export { WithUnwrappedAxiosResponse as a, MotionStreamConnection as c, poseToWandelscriptString as d, WithCellId as i, ConnectedMotionGroup as l, NovaClientConfig as n, JoggerConnection as o, NovaCellAPIClient as r, JoggerConnectionOpts as s, NovaClient as t, MotionGroupOption as u };
346
- //# sourceMappingURL=NovaClient-4PG1cMau.d.cts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"NovaClient-4PG1cMau.d.cts","names":[],"sources":["../src/lib/v1/wandelscriptUtils.ts","../src/lib/v1/ConnectedMotionGroup.ts","../src/lib/v1/MotionStreamConnection.ts","../src/lib/v1/JoggerConnection.ts","../src/lib/v1/NovaCellAPIClient.ts","../src/lib/v1/NovaClient.ts"],"mappings":"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"}