@pollen-robotics/reachy-mini-sdk 1.7.3-main.5cd69ad → 1.7.3-main.7654ffe
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/dist/lib/math.d.ts +23 -0
- package/dist/lib/math.d.ts.map +1 -0
- package/dist/lib/math.js +40 -0
- package/dist/lib/math.js.map +1 -0
- package/dist/lib/reachy-mini.d.ts +150 -0
- package/dist/lib/reachy-mini.d.ts.map +1 -0
- package/dist/lib/reachy-mini.js +1452 -0
- package/dist/lib/reachy-mini.js.map +1 -0
- package/dist/lib/types.d.ts +384 -0
- package/dist/lib/types.d.ts.map +1 -0
- package/dist/lib/types.js +9 -0
- package/dist/lib/types.js.map +1 -0
- package/dist/lib/upload-helpers.d.ts +18 -0
- package/dist/lib/upload-helpers.d.ts.map +1 -0
- package/dist/lib/upload-helpers.js +44 -0
- package/dist/lib/upload-helpers.js.map +1 -0
- package/dist/lib/url-helpers.d.ts +63 -0
- package/dist/lib/url-helpers.d.ts.map +1 -0
- package/dist/lib/url-helpers.js +153 -0
- package/dist/lib/url-helpers.js.map +1 -0
- package/dist/reachy-mini-sdk.d.ts +69 -0
- package/dist/reachy-mini-sdk.d.ts.map +1 -0
- package/dist/reachy-mini-sdk.js +68 -0
- package/dist/reachy-mini-sdk.js.map +1 -0
- package/host/dist/chunks/index-CyLPysJS.js +0 -1
- package/host/dist/chunks/mountHost-8f-laxwI.js +0 -1
- package/host/dist/chunks/reachy-mini-B1hlBmDQ.js +1240 -0
- package/host/dist/entry/auto.js +1 -2
- package/host/dist/entry/embed.js +1 -2
- package/host/dist/index.js +1 -2
- package/host/dist/lib/protocol.js +0 -1
- package/host/dist/lib/sdk-types.d.ts +10 -10
- package/host/dist/lib/sdk-types.d.ts.map +1 -1
- package/package.json +16 -13
- package/host/dist/chunks/index-CyLPysJS.js.map +0 -1
- package/host/dist/chunks/mountHost-8f-laxwI.js.map +0 -1
- package/host/dist/chunks/reachy-mini-sdk-eBYlC77N.js +0 -1719
- package/host/dist/chunks/reachy-mini-sdk-eBYlC77N.js.map +0 -1
- package/host/dist/entry/auto.js.map +0 -1
- package/host/dist/entry/embed.js.map +0 -1
- package/host/dist/index.js.map +0 -1
- package/host/dist/lib/protocol.js.map +0 -1
- package/reachy-mini-sdk.d.ts +0 -294
- package/reachy-mini-sdk.js +0 -2618
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Math utilities for the ReachyMini SDK.
|
|
3
|
+
*
|
|
4
|
+
* These are the canonical conversions between human-readable
|
|
5
|
+
* roll/pitch/yaw degrees and the wire format the daemon expects
|
|
6
|
+
* (4×4 rotation matrices, ZYX convention).
|
|
7
|
+
*/
|
|
8
|
+
export declare function degToRad(deg: number): number;
|
|
9
|
+
export declare function radToDeg(rad: number): number;
|
|
10
|
+
/**
|
|
11
|
+
* Roll/pitch/yaw (degrees) → 4×4 rotation matrix (ZYX convention).
|
|
12
|
+
* This is the wire format for the robot's `set_target` command.
|
|
13
|
+
*/
|
|
14
|
+
export declare function rpyToMatrix(rollDeg: number, pitchDeg: number, yawDeg: number): number[][];
|
|
15
|
+
/**
|
|
16
|
+
* Rotation matrix (3×3 or 4×4) → { roll, pitch, yaw } in degrees.
|
|
17
|
+
*/
|
|
18
|
+
export declare function matrixToRpy(m: number[][]): {
|
|
19
|
+
roll: number;
|
|
20
|
+
pitch: number;
|
|
21
|
+
yaw: number;
|
|
22
|
+
};
|
|
23
|
+
//# sourceMappingURL=math.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"math.d.ts","sourceRoot":"","sources":["../../lib/math.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,wBAAgB,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAE5C;AAED,wBAAgB,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAE5C;AAED;;;GAGG;AACH,wBAAgB,WAAW,CACvB,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,GACf,MAAM,EAAE,EAAE,CAWZ;AAED;;GAEG;AACH,wBAAgB,WAAW,CACvB,CAAC,EAAE,MAAM,EAAE,EAAE,GACd;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,CAM9C"}
|
package/dist/lib/math.js
ADDED
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Math utilities for the ReachyMini SDK.
|
|
3
|
+
*
|
|
4
|
+
* These are the canonical conversions between human-readable
|
|
5
|
+
* roll/pitch/yaw degrees and the wire format the daemon expects
|
|
6
|
+
* (4×4 rotation matrices, ZYX convention).
|
|
7
|
+
*/
|
|
8
|
+
export function degToRad(deg) {
|
|
9
|
+
return deg * Math.PI / 180;
|
|
10
|
+
}
|
|
11
|
+
export function radToDeg(rad) {
|
|
12
|
+
return rad * 180 / Math.PI;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Roll/pitch/yaw (degrees) → 4×4 rotation matrix (ZYX convention).
|
|
16
|
+
* This is the wire format for the robot's `set_target` command.
|
|
17
|
+
*/
|
|
18
|
+
export function rpyToMatrix(rollDeg, pitchDeg, yawDeg) {
|
|
19
|
+
const r = degToRad(rollDeg), p = degToRad(pitchDeg), y = degToRad(yawDeg);
|
|
20
|
+
const cy = Math.cos(y), sy = Math.sin(y);
|
|
21
|
+
const cp = Math.cos(p), sp = Math.sin(p);
|
|
22
|
+
const cr = Math.cos(r), sr = Math.sin(r);
|
|
23
|
+
return [
|
|
24
|
+
[cy * cp, cy * sp * sr - sy * cr, cy * sp * cr + sy * sr, 0],
|
|
25
|
+
[sy * cp, sy * sp * sr + cy * cr, sy * sp * cr - cy * sr, 0],
|
|
26
|
+
[-sp, cp * sr, cp * cr, 0],
|
|
27
|
+
[0, 0, 0, 1],
|
|
28
|
+
];
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Rotation matrix (3×3 or 4×4) → { roll, pitch, yaw } in degrees.
|
|
32
|
+
*/
|
|
33
|
+
export function matrixToRpy(m) {
|
|
34
|
+
return {
|
|
35
|
+
roll: radToDeg(Math.atan2(m[2][1], m[2][2])),
|
|
36
|
+
pitch: radToDeg(Math.asin(-m[2][0])),
|
|
37
|
+
yaw: radToDeg(Math.atan2(m[1][0], m[0][0])),
|
|
38
|
+
};
|
|
39
|
+
}
|
|
40
|
+
//# sourceMappingURL=math.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"math.js","sourceRoot":"","sources":["../../lib/math.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,MAAM,UAAU,QAAQ,CAAC,GAAW;IAChC,OAAO,GAAG,GAAG,IAAI,CAAC,EAAE,GAAG,GAAG,CAAC;AAC/B,CAAC;AAED,MAAM,UAAU,QAAQ,CAAC,GAAW;IAChC,OAAO,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC,EAAE,CAAC;AAC/B,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,WAAW,CACvB,OAAe,EACf,QAAgB,EAChB,MAAc;IAEd,MAAM,CAAC,GAAG,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC;IAC1E,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IACzC,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IACzC,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IACzC,OAAO;QACH,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC;QAC5D,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC;QAC5D,CAAC,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC;QAC1B,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;KACf,CAAC;AACN,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,WAAW,CACvB,CAAa;IAEb,OAAO;QACH,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAE,CAAC,CAAC,CAAE,EAAE,CAAC,CAAC,CAAC,CAAE,CAAC,CAAC,CAAE,CAAC,CAAC;QAChD,KAAK,EAAE,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAE,CAAC,CAAC,CAAE,CAAC,CAAC;QACtC,GAAG,EAAE,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAE,CAAC,CAAC,CAAE,EAAE,CAAC,CAAC,CAAC,CAAE,CAAC,CAAC,CAAE,CAAC,CAAC;KAClD,CAAC;AACN,CAAC"}
|
|
@@ -0,0 +1,150 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ReachyMini — Browser SDK for controlling a Reachy Mini robot over WebRTC.
|
|
3
|
+
* See `../reachy-mini-sdk.ts` for the package's barrel and the README for
|
|
4
|
+
* a quick-start guide.
|
|
5
|
+
*/
|
|
6
|
+
import type { ApplyAudioConfigOptions, AudioConfigEntry, AutoConnectOptions, AutoConnectResult, MotionAwaitOptions, MoveData, PlayMoveOptions, PlayMoveResult, PlayUploadedAudioOptions, ReachyMiniInstance, ReachyMiniOptions, RobotInfo, RobotState, SubscribeLogsOptions, UploadAudioOptions } from './types.js';
|
|
7
|
+
export declare class ReachyMini extends EventTarget implements ReachyMiniInstance {
|
|
8
|
+
private readonly _signalingUrl;
|
|
9
|
+
private readonly _clientId;
|
|
10
|
+
private readonly _appName;
|
|
11
|
+
private readonly _videoJitterBufferTargetMs;
|
|
12
|
+
private _autoStartFromUrl;
|
|
13
|
+
private _autoStartAttempted;
|
|
14
|
+
private _state;
|
|
15
|
+
private _robots;
|
|
16
|
+
private _robotState;
|
|
17
|
+
private readonly _preselectedRobotId;
|
|
18
|
+
private _token;
|
|
19
|
+
private _username;
|
|
20
|
+
private _tokenExpires;
|
|
21
|
+
private _sseAbortController;
|
|
22
|
+
_pc: RTCPeerConnection | null;
|
|
23
|
+
private _dc;
|
|
24
|
+
private _sessionId;
|
|
25
|
+
private _selectedRobotId;
|
|
26
|
+
private _pendingRemoteIce;
|
|
27
|
+
_micStream: MediaStream | null;
|
|
28
|
+
private _micMuted;
|
|
29
|
+
private _audioMuted;
|
|
30
|
+
private _micSupported;
|
|
31
|
+
private _latencyMonitorId;
|
|
32
|
+
private _stateRefreshInterval;
|
|
33
|
+
private _versionResolve;
|
|
34
|
+
private _hardwareIdResolve;
|
|
35
|
+
private _volumeResolve;
|
|
36
|
+
private _micVolumeResolve;
|
|
37
|
+
private _applyAudioConfigResolve;
|
|
38
|
+
private _readAudioParameterResolve;
|
|
39
|
+
private readonly _logSubscribers;
|
|
40
|
+
private _broadcastWaiters;
|
|
41
|
+
private _activeMoveUploadId;
|
|
42
|
+
private _activeAudioUploadId;
|
|
43
|
+
private _sessionResolve;
|
|
44
|
+
private _sessionReject;
|
|
45
|
+
private _iceConnected;
|
|
46
|
+
private _dcOpen;
|
|
47
|
+
private readonly _pendingMotionCompletions;
|
|
48
|
+
private _videoElement;
|
|
49
|
+
constructor(options?: ReachyMiniOptions);
|
|
50
|
+
get state(): 'disconnected' | 'connected' | 'streaming';
|
|
51
|
+
get robots(): RobotInfo[];
|
|
52
|
+
get robotState(): RobotState;
|
|
53
|
+
get username(): string | null;
|
|
54
|
+
get isAuthenticated(): boolean;
|
|
55
|
+
get micSupported(): boolean;
|
|
56
|
+
get micMuted(): boolean;
|
|
57
|
+
get audioMuted(): boolean;
|
|
58
|
+
get preselectedRobotId(): string | null;
|
|
59
|
+
get isEmbedded(): boolean;
|
|
60
|
+
/**
|
|
61
|
+
* Internal: try to honour the `autoStartFromUrl` constructor
|
|
62
|
+
* option. Called from the signaling-message handler after every
|
|
63
|
+
* `robotsChanged` emit, so a robot that comes online after the
|
|
64
|
+
* SDK is already `connected` still triggers the auto-start.
|
|
65
|
+
*/
|
|
66
|
+
_maybeAutoStart(): void;
|
|
67
|
+
authenticate(): Promise<boolean>;
|
|
68
|
+
login(): Promise<void>;
|
|
69
|
+
logout(): void;
|
|
70
|
+
connect(token?: string): Promise<void>;
|
|
71
|
+
autoConnect(options?: AutoConnectOptions): Promise<AutoConnectResult>;
|
|
72
|
+
private _fetchOwnedRobots;
|
|
73
|
+
private _waitForRobotInList;
|
|
74
|
+
startSession(robotId: string): Promise<void>;
|
|
75
|
+
private _failSessionRejected;
|
|
76
|
+
stopSession(): Promise<void>;
|
|
77
|
+
disconnect(): void;
|
|
78
|
+
setTarget({ head, antennas, body_yaw }?: {
|
|
79
|
+
head?: number[];
|
|
80
|
+
antennas?: number[];
|
|
81
|
+
body_yaw?: number;
|
|
82
|
+
}): boolean;
|
|
83
|
+
gotoTarget({ head, antennas, body_yaw, duration }: {
|
|
84
|
+
head?: number[];
|
|
85
|
+
antennas?: number[];
|
|
86
|
+
body_yaw?: number;
|
|
87
|
+
duration: number;
|
|
88
|
+
}): boolean;
|
|
89
|
+
setHeadRpyDeg(rollDeg: number, pitchDeg: number, yawDeg: number): boolean;
|
|
90
|
+
setAntennasDeg(rightDeg: number, leftDeg: number): boolean;
|
|
91
|
+
setBodyYawDeg(yawDeg: number): boolean;
|
|
92
|
+
playSound(file: string): boolean;
|
|
93
|
+
setMotorMode(mode: 'enabled' | 'disabled' | 'gravity_compensation'): boolean;
|
|
94
|
+
setMotorTorque(on: boolean, ids?: string[] | null): boolean;
|
|
95
|
+
wakeUp({ timeoutMs }?: MotionAwaitOptions): Promise<void>;
|
|
96
|
+
gotoSleep({ timeoutMs }?: MotionAwaitOptions): Promise<void>;
|
|
97
|
+
private _sendCommandAwaitCompletion;
|
|
98
|
+
private _rejectPendingMotionCompletions;
|
|
99
|
+
isAwake(): boolean;
|
|
100
|
+
ensureAwake(timeoutMs?: number): Promise<boolean>;
|
|
101
|
+
getVersion(): Promise<string | null>;
|
|
102
|
+
getHardwareId(): Promise<string | null>;
|
|
103
|
+
getVolume(): Promise<number | null>;
|
|
104
|
+
setVolume(volume: number): Promise<number | null>;
|
|
105
|
+
getMicrophoneVolume(): Promise<number | null>;
|
|
106
|
+
setMicrophoneVolume(volume: number): Promise<number | null>;
|
|
107
|
+
applyAudioConfig(config: AudioConfigEntry[], { verify }?: ApplyAudioConfigOptions): Promise<boolean>;
|
|
108
|
+
readAudioParameter(name: string): Promise<number[] | null>;
|
|
109
|
+
/**
|
|
110
|
+
* Internal: send a command and await the matching daemon response in a
|
|
111
|
+
* named single-resolver slot. Used by the volume helpers and the
|
|
112
|
+
* XVF3800 audio-config helpers — every one of them has a strict
|
|
113
|
+
* request/response shape where a single in-flight call per slot is
|
|
114
|
+
* sufficient. If a previous request on the same slot is still
|
|
115
|
+
* pending when a new one comes in, the older promise is resolved to
|
|
116
|
+
* `null` so its caller doesn't hang forever.
|
|
117
|
+
*
|
|
118
|
+
* Slot access is passed in as getter/setter closures rather than a
|
|
119
|
+
* key into `this`: that keeps the helper fully generic-checked (T is
|
|
120
|
+
* inferred from the slot's resolver type at each call site) with no
|
|
121
|
+
* indexed-property casts.
|
|
122
|
+
*/
|
|
123
|
+
private _slotRoundtrip;
|
|
124
|
+
sendRaw(data: unknown): boolean;
|
|
125
|
+
subscribeLogs({ onLine, onError }: SubscribeLogsOptions): () => void;
|
|
126
|
+
requestState(): boolean;
|
|
127
|
+
setAudioMuted(muted: boolean): void;
|
|
128
|
+
setMicMuted(muted: boolean): void;
|
|
129
|
+
attachVideo(videoElement: HTMLVideoElement): () => void;
|
|
130
|
+
playMove(motion: MoveData, { audioBlob, audioLeadMs, description, encoding, playFrequency, initialGotoDuration, startTimeoutMs, onProgress, onStarted, }?: PlayMoveOptions): Promise<PlayMoveResult>;
|
|
131
|
+
cancelMove(uploadId?: string | null): boolean;
|
|
132
|
+
uploadAudio(audioBlob: Blob, { description, onProgress }?: UploadAudioOptions): Promise<string>;
|
|
133
|
+
playUploadedAudio(uploadId: string, { timeoutMs }?: PlayUploadedAudioOptions): Promise<{
|
|
134
|
+
started: true;
|
|
135
|
+
}>;
|
|
136
|
+
cancelAudio(uploadId?: string | null): boolean;
|
|
137
|
+
private _emit;
|
|
138
|
+
private _waitForBroadcast;
|
|
139
|
+
private _awaitDataChannelDrain;
|
|
140
|
+
private _sendToServer;
|
|
141
|
+
private _sendCommand;
|
|
142
|
+
private _checkSessionReady;
|
|
143
|
+
private _handleSignalingMessage;
|
|
144
|
+
private _handleEndSession;
|
|
145
|
+
private _handlePeerMessage;
|
|
146
|
+
private _handleRobotMessage;
|
|
147
|
+
/** Snap video playback to live edge if buffered lag exceeds 0.5 s. */
|
|
148
|
+
private _startLatencyMonitor;
|
|
149
|
+
}
|
|
150
|
+
//# sourceMappingURL=reachy-mini.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"reachy-mini.d.ts","sourceRoot":"","sources":["../../lib/reachy-mini.ts"],"names":[],"mappings":"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"}
|