Cognithesis — an instrument for curiosity

cognithesis.← Return to the engine
← Systems

SILICON / 01

Meet Mongoose

The household robot has a first job, and it's a mosquito-hunting laser on a tank chassis. Driven today by teleoperation from a PS Vita fire-control station, built to grow a frozen-VLM brain. This is the alpha demo that exercises every layer of the stack.

In this entry

Series: Mongoose — Post 1 The robot: live roadmap and dashboard

Status: v0.1 “Wasp Sniper” in progress. Robot built and driving. Stereo camera streaming. PS Vita fire-control operational. Power rails are the blocker. The laser is deliberately deferred until eyewear and interlocks arrive — a robot with a laser and no safety story is a robot you’re not allowed to keep.

0. Cold open: the fire-control station is a PS Vita

[VIDEO PLACEHOLDER — teleop demo]

There is a robot tank on my floor. There is a PS Vita from 2011 on my desk. The Vita is driving the robot.

Left stick: tracks. Right stick: turret, independently. OLED screen: live stereo camera feed streaming off the Raspberry Pi riding the chassis. Laser on a dead-man trigger — let go and it stops. The whole thing is a from-scratch VitaSDK homebrew app speaking the robot’s native binary UDP protocol directly to the Pi relay: MJPEG frames decoded straight to the framebuffer, command packets out, no middleware anywhere in the loop.

The original plan was a PS2 controller. The Vita replaced it, and it’s perfect — it has two sticks and a screen, which turns out to be the exact minimum control surface for a teleoperated weapons platform you’re trying very hard to make into a household robot.

A 2011 handheld is flying a 2026 robot. This is the teleop layer of Mongoose, my general-purpose household robot. This post is the tour: what exists, what it’s for, and why the alpha demo is a mosquito-hunting laser.

1. The long arc

Mongoose is a few things at once, because it has to be:

  • It’s a mosquito-hunting robot. That’s the alpha demo.
  • It’s the custom C++ framework that controls the robot — sensors, motors, control loops, safety interlocks, zero Python in the inference path.
  • It’s eventually a general-purpose household assistant. “Mongoose, change the oil.” “Mongoose, mow the yard.”

The design bet is stated in the architecture doc as one sentence, and it’s the load-bearing one for the whole project:

The mosquito-hunting laser is the alpha demo: a hard, latency-bound, safety-critical closed loop that exercises every layer of the stack. If we can make Mongoose hit mosquitos, we have the substrate for “change the oil.”

Most household-robot projects die by demo: they pick a soft demo (drive around, avoid walls), discover the demo doesn’t stress anything, and then find that the hard parts — perception latency, safety arbitration, closed-loop control — were never actually exercised. The mosquito demo refuses that exit. It demands:

  • Perception→action in ≤100 ms. A mosquito is airborne and moving. This kills any architecture that autoregressively decodes tokens before deciding.
  • A safety story that precedes the laser. The robot must distinguish mosquito from cat from my wife before it fires, and the answer must be structural — hardware interlocks plus a learned threat gate — not a hope.
  • A real-time C++ stack. Camera → VLM → appendage networks → motor commands, all in-process, no garbage-collection pauses between “I see it” and “fire.”

If those three all work, the boring capabilities (patrol, navigation, an arm that carries a dish) are downhill.

2. What exists today (the v0.1 “Wasp Sniper” ledger)

The live version of this is on the project dashboard — here’s the honest snapshot, checked-off items and blockers alike:

✓ Chassis and drivetrain. T800S tank chassis, assembled and driving. The terrain choice is deliberate: a tracked platform that shrugs at lawn, gravel, and the creek approach.

✓ Pan/tilt turret. DS3218 servos, yaw and pitch, microsecond-precision control via the ELEGOO Mega firmware running a Yahboom-style serial protocol ($pitch:1500#, $servo:yaw,pitch#, $pos#). The firmware also relays the C1001 60GHz mmWave radar sitting on the turret — that’s for the mosquito-hunting phase, where wingbeat micro-Doppler is the detection story.

✓ Stereo camera streaming. V4L2 zero-copy MJPEG capture on the Pi relay — hardware JPEG encode, zero CPU cost, frames out over UDP. The relay is a thin, honest C++ bridge: CH340 USB to the chassis motors, POSIX serial to the turret, V4L2 to the cameras, binary UDP to everything else. It does exactly two smart things (motor dedup, servo smoothing at alpha=0.4 to absorb WiFi jitter, both rate-limited to 30 Hz) and refuses to do more.

✓ The library. One mongoose.hpp and a src tree — chassis, turret, camera, protocol, server, robot — that every binary links against. The relay is a bridge; the library is the spine.

✓ PS Vita fire-control station. As above. VitaSDK, native UDP, framebuffer-direct video decode, dead-man trigger.

○ Power rails — the blocker. The design is done: a 2S3P bank from eufy packs feeding 19V/12V/7.4V/6V rails, riding the front deck above the plate (terrain clearance, plus counterweight against the rear platform mass). The assembly is the current “kick it back into gear” item. Everything else waits on it because a robot that runs off bench wires is furniture.

○ The brain mount. An AOOSTAR MACO mini-PC will ride the 19V rail as the compute brain. This machine was chosen with the same paranoia as everything else on this project, and it’s the same silicon family as the box from Part 2 of Drivers From Scratch — the HX370 with its unified-memory trick where CPU, iGPU, and NPU read the same physical DRAM. The robot brain post is coming; the short version is that unified memory is what makes a 100ms perception→action loop physically possible.

○ AI-aimed turret. Deferred to the appendage network post — that’s the research line: a frozen vision-language model on the iGPU, tiny trained heads reading its hidden state, motor commands in microseconds.

○ Laser. Re-scoped to v3.0 “Sentinel” — outdoor operations. This is the part I want to be precise about: the laser is not delayed because it’s hard. It’s delayed because the bring-up requires certified OD5+ eyewear, hardware interlocks, and open sky with dirt backstops instead of drywall. The first laser mission is a wasp nest — a stationary target, ideal for a first engagement — and it will happen on a test range (the creek, which features ample fire-retardant flowing year-round). A robot with a weapon gets exactly one chance to not be an idiot with it.

3. The milestones ahead (the public roadmap, quoted)

The dashboard carries the whole arc; I’m quoting it because it was written to be read:

  • v0.5 “Mosquito Hunter” — the mmWave radars go active: micro-Doppler wingbeat detection, matched filter banks tuned to mosquito flight frequencies, patrol mode, and active-defense rehearsal with dry-fire until the laser era. The research underneath (frozen-VLM appendages) has already started — EXP-001 through 003 are logged.
  • v1.0 “Iron Arm” — a 7-DOF asymmetric arm with a generic fused 12V tool-head bay so the arm, a trimmer spindle, and eventually the laser share one power interface. The heavy servos are already acquired (80kg/70kg/60kg/42kg — the 70kg brushless is the standout).
  • v1.5 “Home Guard” — Ring camera integration, room-to-room navigation, an ESP32 spotter network.
  • v2.0 “Butler” — the household assistant era: SLAM, object manipulation, dish duty.
  • v3.0 “Sentinel” — the laser era begins, outdoors, with a fire extinguisher attachment listed in complete sincerity. (“Not actually a joke for a laser robot.”)

4. Why write this down

Two reasons. First, the selfish one: this blog is my project ledger, and Mongoose has the most moving parts of anything I’m building. Public milestones are a forcing function — the power-rail bank gets assembled this month because the internet can now see that it hasn’t been.

Second: the stack underneath this robot is the most complete expression of everything else on this site. The compute is the hardware from the Drivers From Scratch series. The inference engine is notix, the same op taxonomy that runs my M4 kernels. The memory is nebula, the vector database that powers this site’s search. The perception research is the appendage line — and the micro-transformer frontier is PRISM. Mongoose is where all of it has to work at the same time, in 100 milliseconds, without hitting the cat.

Next posts in the series: the appendage research note (what EXP-001–003 actually showed), the robot brain (unified memory and the ≤100ms loop), and the build posts with real pictures once the power rails are welded.

The wasp nest is on notice.

← Back to systems