# SIG-DRG 2026-08-06 — Session Notes

Participants:
  - Anuraj R | UTC+0300
  - Spencer Norwick U-0700
  - Maier
  - rafa (UTC+1)
  - shreeram
  - Giovanni Merlino | UTC+2
  - christopher boette | utc-4

---

## 📖 The Reading
Not clearly identified in the discussion. This session was a live demo and working discussion rather than a text-based reading group meeting. The central artifact was Anuraj R's "Agrobotkit" repository (hosted under the group's robotics GitHub org) and the associated robot gateway / MCP server.

## 🧭 Overview
Anuraj R gave a live demonstration of a small (~$80) four-wheeled robot kit he assembled and programmed, showing how he ported its stock software to a custom FastAPI HTTP server and connected it to the group's robot gateway/MCP server so that a browser-based Claude agent could teleoperate it. The discussion covered the technical architecture (adapters, plugins, gateway, tunneling), how the build was done with AI coding agents, ideas for future features, and a recurring open problem of how to *verify* that a robot actually performed a task. The group also began planning a hands-on workshop where participants would assemble and register robots on the marketplace.

## 💡 Key Points & Themes

**The robot and its hardware (Anuraj R)**
- ~$80 kit, assembled over roughly two weekends (~6 hours total; could be done in ~3 hours straight). Assembly videos exist but are "not very clear."
- Hardware: four DC motors, two servos for camera/ultrasonic pan-tilt, ultrasonic sensor, ADC for battery voltage, LEDs, and mecanum-style wheels allowing sideways/angled ("drift") motion.
- Runs on a Raspberry Pi Zero (512 MB RAM, ~$50). A Pi 4/5 with more RAM would cost far more (~$300–350) but could run ROS onboard.
- No wheel encoders — rotation is done open-loop by timing motor commands rather than closed-loop feedback.
- An "ultrasonic scan" pans the sensor to take ~4 distance measurements as a crude LIDAR-like snapshot; display is rough. A small 2D LIDAR is seen as the easiest path to real mapping.

**Software architecture (Anuraj R)**
- Ported the vendor software (TCP/WebSocket based) to a custom FastAPI HTTP server, making it fully independent of the vendor's code.
- Adding a new robot = writing a plugin: an adapter to the robot's transport layer (HTTP here, but could be WebSocket, or ROS 2 over Zenoh) plus tool calls exposed in the FastAPI server, ingested and loaded into the gateway.
- Gateway exposes the endpoint via a tunnel (ngrok or Cloudflare tunnels).
- Users connect by adding a custom connector (remote URL) in the browser-based Claude client and then talking to the robot in natural language.
- A calibration script handles motor-direction inconsistencies from assembly: it rotates motors, asks which direction each moved, and saves a config file loaded on server startup. A setup/install script also creates a systemd service so the HTTP server starts automatically on boot.

**Building with AI coding agents (Anuraj R, responding to rafa)**
- The HTTP server for this robot took ~2 hours with Claude Code; rewriting the plugin plus gateway integration was roughly ~4 hours total.
- Not truly "one-shot": technical prompting was needed (e.g. for the systemd service). A non-technical person could get there but would burn far more tokens.
- Performance tuning example: the I²C code was initially writing ~32 transactions per motor, causing slowness; after finding the inefficiency and applying hacks, he got it ~10x faster, now running at ~310 Hz (aiming toward ~1 kHz for real-time ROS control).
- Anuraj R said he felt no meaningful difference between "Opus 4.x" and "Opus 5" for his workflow, partly because he keeps himself "in control" — reviewing the files being written and maintaining a "bird's eye view" of the codebase. He noted he "feels" Python/C/C++ code more than TypeScript, and that steering an agent well requires knowing the right keywords and having some sense of what each module does.

**Deployment topology**
- The gateway is not run on the robot itself (Pi Zero has too little RAM — ~1 GB is considered the minimum for the gateway). Currently the gateway runs on Anuraj R's laptop, exposed via ngrok, while the cloud agent runs remotely (e.g. "somewhere in San Francisco").
- With a Pi 4 onboard, the gateway could run directly on the robot.

**Safety / onboard logic (Anuraj R)**
- Safety features like emergency braking must run *on the robot*, not on a remote server — e.g. distance sensors at multiple points that stop the robot below a threshold, implemented on the Pi.

**Workshop planning**
- Idea: participants buy and assemble the same kit ~1 week before the workshop, register robots on the marketplace, and pay each other to get tasks done — growing the number of robots on the network.
- Assembling in two days may be hard for beginners; participants who don't own a robot could still set up a Claude Code agent to interact with others' robots and learn the setup process.
- Spencer Norwick said he'd be willing to buy a kit.

**Future directions (Anuraj R)**
- Feed camera snapshots to the (multimodal) agent for perception/recognition (partly implemented, e.g. pointing the robot at an orange cap).
- Add a 2D LIDAR on a Pi 4 to enable mapping.
- Biggest planned step: ROS integration. Idea to add middleware to the gateway that understands ROS messages so the gateway acts as a remote ROS node, opening up the large existing market of ROS-native robots. Not yet designed/implemented.

**Feature ideas from others**
- Christopher Boette: a low-battery warning so the robot has a sense of its own state and can signal when it needs charging; explore closed-loop tasks like "find a red ball and explore until you reach it"; test how it behaves in Claude Code's different harness with a verifiable task.

## 🔀 Questions & Disagreements
- **Verification of work (Spencer Norwick, raised repeatedly):** How can a robot prove it actually did a task, especially without reliable video/undeniable confirmation? Spencer floated a "proof of work" notion — using expended power/compute/motor rotation as evidence, and having the operator put something at stake so tasks can't be spoofed. Anuraj R agreed this comes up frequently and said he has no clear answer; he pointed toward reputation-based approaches (analogous to human trust building over repeated contracts; referenced an ERC reputation standard) and possibly a blockchain-based tracking mechanism.
- **Closed-loop control (Spencer Norwick):** With no wheel encoders, can data be fed back to the model (IMU, cameras) to enable commands like "drive until you meet the wall"? Anuraj R noted an IMU could be added but its accuracy is uncertain; camera snapshots and a LIDAR are the likelier feedback paths.
- **Localization / avoiding loops (Christopher Boette):** How does the robot know where it has already been so it doesn't loop? Anuraj R discussed SLAM/monocular mapping (needs onboard compute) and Bluetooth beacon-based triangulation as a low-compute alternative.
- **Workshop scope (Spencer Norwick):** Is the workshop about a participant setting up and demoing their own robot, or about others remoting into someone's robot? Anuraj R indicated both are possible depending on time and participants' ability to assemble.
- **How one-shot will this become? (rafa):** Whether model capability is on a trajectory toward "one-shot, set up my robot on the network." Anuraj R was cautious — meaningful technical steering is still required today.
- **Gateway hosting (Giovanni Merlino):** Whether the gateway must be self-hosted or shared, and its hardware requirements. Anuraj R: any computer with ~1 GB+ RAM; typically you'd run your own gateway; no shared gateway currently (a shared one would add latency).

## 🔗 References Mentioned
- **Agrobotkit** — Anuraj R's repository (to be posted in the group channel), under the protocol/institute robotics group GitHub org.
- **Robot gateway / MCP server** — the group's existing gateway that plugins/adapters connect to.
- **Claude / Claude Code**, **Codex** — AI coding agents and the browser-based Claude client used for teleoperation.
- **"Opus 4.x" vs "Opus 5"** — model versions Anuraj R compared (found no meaningful difference for his workflow).
- **ROS / ROS 2**, **Zenoh**, **DDS** — robotics middleware for future integration; SLAM modules in ROS mentioned for mapping.
- **FastAPI** — HTTP server framework used.
- **ngrok** and **Cloudflare tunnels** — tunneling options in the gateway.
- **I²C** — the sensor/motor bus that was a performance bottleneck.
- **ERC 8004 (as spoken, "ERC eight zero zero four")** reputation standard — cited as a possible reputation model for verification.
- **ESP32** — the platform of Christopher Boette's similar robot.
- **Bluetooth beacon triangulation** — proposed low-compute localization method.

## ✅ Action Items & Next Time
- **Anuraj R:** post the Agrobotkit repo link in the group channel.
- **Anuraj R:** continue porting the marketplace/pricing tools (currently only teleoperation is fully done); noted he'll need help from Rafael (rafa) to port the marketplace code.
- **Anuraj R:** plans to set up a Raspberry Pi 4 with a 2D LIDAR to experiment with mapping and the "find a red ball / explore" task; explore ROS-message middleware for the gateway.
- **Giovanni Merlino:** to check what robot kits/UGVs are available in his lab (some are ROS-native and could integrate more easily); offered to help on the ROS integration once even early-stage repos are shared.
- **Anuraj R (to Giovanni):** share the repo so Giovanni's team can help and integrate lab UGVs.
- **Workshop:** interested participants should buy and assemble the kit ~1 week ahead and register on the marketplace; those without a robot can set up a Claude Code agent to interact with others' robots. Spencer Norwick indicated willingness to buy a kit.
- **General:** anyone wanting to get a robot on the network or with questions should post in the group channel. No specific next reading/topic was set; the session ended early.

## ⭐ Memorable Quotes
- **Anuraj R:** "You will eventually get here, but it's not just straight prompting."
- **Anuraj R:** "I always view at least the files that are being written... I kind of feel what the code is doing."
- **Anuraj R:** "How would you verify if a robot has done something it claims to have done? Yeah. Actually, I don't have an answer, but I keep thinking about it."
