52 lines
1.4 KiB
Markdown
52 lines
1.4 KiB
Markdown
|
|
# rom-control
|
||
|
|
|
||
|
|
Robust client for the Jibo ROM WebSocket API. Provides a discord.js-style OOP interface with promises, rich event objects, and automatic session management.
|
||
|
|
|
||
|
|
```js
|
||
|
|
const { Client, AttentionMode } = require('rom-control');
|
||
|
|
|
||
|
|
const jibo = new Client({ host: '192.168.1.217' });
|
||
|
|
|
||
|
|
jibo.once('ready', async () => {
|
||
|
|
await jibo.behavior.setAttention(AttentionMode.Engaged);
|
||
|
|
await jibo.behavior.say('<anim cat="excited" nonBlocking="true"/> Hello!');
|
||
|
|
});
|
||
|
|
|
||
|
|
jibo.on('trackCreate', async (track) => {
|
||
|
|
await track.lookAt();
|
||
|
|
});
|
||
|
|
|
||
|
|
jibo.on('hotword', async (event) => {
|
||
|
|
const result = await jibo.audio.awaitSpeech();
|
||
|
|
console.log('Heard:', result.speech);
|
||
|
|
});
|
||
|
|
|
||
|
|
jibo.connect();
|
||
|
|
```
|
||
|
|
|
||
|
|
## Install
|
||
|
|
|
||
|
|
```
|
||
|
|
npm install rom-control
|
||
|
|
```
|
||
|
|
|
||
|
|
## Features
|
||
|
|
|
||
|
|
- Promise-based API — every action resolves when physically complete
|
||
|
|
- Manager classes: `client.behavior`, `client.audio`, `client.camera`, `client.display`, `client.assets`
|
||
|
|
- Rich event objects: `Track`, `Photo`, `SpeechResult`, `HotwordEvent`, `GestureEvent`, and more
|
||
|
|
- Live entity tracking map (`client.tracks`)
|
||
|
|
- Auto-reconnect, auto-heartbeat, and auto-subscribe
|
||
|
|
- Local ASR speech recognition (no cloud required)
|
||
|
|
- Wakeword detection via on-robot ASR service
|
||
|
|
- ESM and CJS exports
|
||
|
|
|
||
|
|
## Documentation
|
||
|
|
|
||
|
|
See [API.md](./API.md) for full reference.
|
||
|
|
|
||
|
|
## Requirements
|
||
|
|
|
||
|
|
- Node.js ≥ 16
|
||
|
|
- A Jibo robot running ROM firmware on your local network
|