- Robot Type: Caretaker (software, runs on the PC beside RIFT)
Site: cursedprograms.github.io/NINA
The fleet's caretaker. NINA watches every robot and says what's wrong, and why, before you have to go looking.
| What | Why | |
|---|---|---|
| Fleet | Every robot RIFT knows (GET /fleet): answering or not, and how fast |
Two misses in a row = offline; she says when it's back |
| NORA | Her web server's speed, her uptime (/talk now), her drive mode and who changed it (/sensors mode + msrc) |
A slow page freezes NORA's whole loop; uptime falling back means she rebooted (a power dip?); a mode change nobody made gets flagged |
| This PC | Which WiFi it's on | NORA "offline" often just means Windows hopped back to a network with internet |
| Serial ports | Ports appearing and disappearing, with a guess at which board it is | Listed only, never opened: opening a port resets an Arduino and fights the program that owns it |
Everything goes to her log. She says the important things out loud (Windows text-to-speech) and writes them to RIFT's mission log. She also keeps TINA, the fleet's engineer, in the picture: everything she notices as it happens, and a snapshot of the fleet every 30 s, so TINA starts every job knowing the fleet.
NINA asks every robot how it is: moving or standing still, turning, wheels locked, playing music, its mode,
from its own status page (NORA's /sensors, MILA's and the others' /status) or from readings the robot sends her
(POST /report {"name", "state": {...}, "sensors": {"front": 23.5}}). GET /checkups shows what each one says.
She also watches their distance sensors. One that reads nothing (0, -1, 999) or exactly the same value for
StuckMinutes gets a checkup, like a doctor's:
- "MILA, are you standing still?"
- Moving, yet the reading never changes: the sensor is stuck - she tells you, out loud.
- Standing still: she moves it a little (forward for a front/back sensor, a small turn for a side one), measures again, and moves it back. Changed = healthy, it was only parked. Unchanged = she tells you.
- Can't tell, or can't move it: she says what she saw and what would let her test it.
She only moves a robot that is standing still in manual mode, and only with the key you give her in
Passwords (NORA's wheel-lock password, MILA's and WHIP's PINs). Without it she never moves anyone.
A robot in distress. She also watches for a robot in trouble, and only warns you, out loud and in the mission log: she never stops a robot herself. A robot moving nonstop for DistressMinutes, turning in nearly every reading for PanicMinutes (bouncing off walls), or moving while another robot's radio stays right on top of it for GluedMinutes (stronger than -35 dBm in RIFT's /near: something stuck to it, like RITA glued onto NORA). The same warning waits 30 minutes before she says it again. Lock the robot with RIFT's Lock all, or its own lock.
run.batrun.bat sets up venv the first time, then starts NINA. Her page is at http://127.0.0.1:5012/.
She registers with RIFT every 10 s (type: caretaker, web:5012, talk:5012), so she shows up on RIFT's dashboard and in MILA's fleet list, and joins the Brainfuck conversations (GET /chirp?u=0-13 beeps the phrase on the PC speaker, in her own pitch).
options.bat opens the options menu (the same one every bot has) for config.json:
| Setting | Default | |
|---|---|---|
Port |
5012 |
her page and API |
RiftHost / RiftPort |
127.0.0.1 / 5000 |
where RIFT runs |
NoraHost / NoraSsid |
192.168.4.1 / NORA |
NORA's address and WiFi name |
CheckSeconds |
5 |
how often she looks |
SlowMs |
2000 |
slower than this is worth a warning |
Speak / Voice / VoicePitch |
on / Zira / 0.85 |
her voice and her chirp pitch |
MissionLog |
on | write problems to RIFT's mission log |
TinaUrl |
http://127.0.0.1:5013 |
where TINA is, for her fleet news |
StuckMinutes |
10 |
a sensor on one value this long gets a checkup |
DistressMinutes |
15 |
a robot moving nonstop this long: she warns you (0 = off) |
PanicMinutes |
3 |
turning in nearly every reading this long (bouncing off walls): she warns you |
GluedMinutes |
5 |
another robot's radio right on top of a moving one this long: she warns you |
Passwords |
empty | NORA / MILA / WHIP keys, so she may move them a little to test a sensor |
GET /status: everything she knows (robots, NORA, WiFi, ports, recent events)GET /events: her log, newest firstGET /ping,GET /chirp?u=0-13
Her colours come from her avatar (colour_scheme.xml): slate blue-grey surfaces, her red-cross red as the accent, her crimson dress and a warm cream. Her page, her options menu and the site all use them.
Minds — DREAM companion · TINA engineer · NINA caretaker · RIFT fleet hub · LYCEA training school
Robots — NORA · MILA · WHIP · KIDA-00 · KIDA-01 · IDA · ARM · NIKA
Remotes — RITA handheld remote