mirror of
https://github.com/legop3/MultiRoombaRover.git
synced 2026-09-15 17:12:59 -04:00
46 lines
1.5 KiB
Markdown
46 lines
1.5 KiB
Markdown
# Multi Roomba Rover
|
|
|
|
a remake of my RoombaRover project with a decentralized and embedded approach
|
|
supports multiple roombas
|
|
|
|
on each roomba:
|
|
- a raspberry pi zero 2 w
|
|
- a raspberry pi camera
|
|
- roomba's serial port hooked up to the built in serial port on the raspberry pi
|
|
|
|
pi provisioning:
|
|
- enable serial port
|
|
- disable wifi powersave
|
|
- disable bluetooth
|
|
|
|
## Repo layout
|
|
|
|
- `pi/roverd`: tiny Go daemon that bridges the Create 2 serial port, BRC pin, and the control server via WebSockets.
|
|
- `server`: Node.js process that terminates rover sockets, relays commands to/from the Socket.IO UI, and serves `public/`.
|
|
- `pi/systemd` / `pi/mediamtx`: ready-to-drop systemd units and a minimal mediaMTX config for WebRTC publishing (roverd can optionally supervise the mediamtx service).
|
|
- `docs/pi-deployment.md`: per-rover build + install instructions (cross-compiling on Fedora 43, deploying roverd + mediaMTX).
|
|
|
|
## Quick start
|
|
|
|
```bash
|
|
# build the Pi agent (armv7)
|
|
cd pi/roverd
|
|
mkdir -p ../../dist
|
|
make pi-build
|
|
|
|
# start the server + UI
|
|
cd ../../server
|
|
npm install
|
|
npm run start
|
|
```
|
|
|
|
Deploy a rover by copying the repo + `dist/roverd` to the Pi and running the helper:
|
|
|
|
```bash
|
|
cd ~/MultiRoombaRover
|
|
sudo ./pi/install_roverd.sh --mediamtx
|
|
```
|
|
|
|
Then point each rover's `/etc/roverd.yaml` at `ws://<server>:8080/rover`, enable the sensor stream from the UI, and drive with WASD.
|
|
Use the “Restart Camera” button if you enable media management so roverd can bounce the mediamtx service remotely.
|