OrbieORBIE.SYS

ORBIE/DOCS/INTERFACE

// 00 — THE INTERFACE

Anything that can read a JPEG can drive this robot.

Every route is a GET. No SDK, no account, no cloud in the middle — the robot runs its own web server and answers to a shell, a browser bar, or any language that can make an HTTP request. The heavy thinking happens wherever you send the frames.

GET /captureA single still, as JPEG.The one to point a vision model at. No firmware changes needed.→ image/jpeg
GET /streamLive MJPEG.Drop it straight into an <img src>.→ multipart/x-mixed-replace
GET /statusEvery sensor, once.Distance in millimetres, temperatures in °C.→ {"distance":37,"temp_ambient":45.0,"temp_object":39.8,"laser":false,"drive":0,"turn":0}
GET /motor?drive=&turn=Drive and steer.Differential drive — the two wheels run against each other to turn.→ ok
GET /laserToggles the laser.One call, no argument. The cat does not need an API key.→ LASER_ON / LASER_OFF
GET /face?expr=Puts an expression on the display.bliss · center · down · happy · heart · left · love · neutral · right · up→ ok / unknown expr
GET /beepSpeaker test tone.→ ok
GET /ota/updatePush new firmware over the air.With /ota/info, /ota/status and /ota/rollback. You can brick-proof your own experiments.→ {"state":"...","percent":0,"message":"..."}
# the robot prints its IP on boot — no mDNS on this build yet
ORBIE=http://192.168.1.42

curl -s $ORBIE/capture -o frame.jpg            # what does it see?
curl -s $ORBIE/status                          # what does it feel?
curl -s "$ORBIE/motor?drive=40&turn=0"         # go and have a look
curl -s "$ORBIE/face?expr=happy"               # and be pleased about it

That is the entire integration surface. Point /capture at whatever model you like, decide something, and call /motor. The robot only has to be honest about what it sees and reliable about what it does.

Routes are read from the published firmware, inFirmware/components/camera/camera_server.c— check them there rather than taking this page’s word for it. Not every route has been verified on hardware yet; the ones we have run are distance, the face and the camera. There is no mDNS name on this build, so you reach it by IP.

SOURCE ON GITHUB →