A DREAM Robotics Agent · v00

KIDA

Kinetic Interactive Drive Automaton

The foundational entry in the Kinetic series, built on the Raspberry Pi 3 Model B. A versatile teleoperated and autonomous scout for remote monitoring and computer vision.

Python Raspberry Pi Freenove HAT Shell MIT License
KIDA's avatar: a human representation of the robot
KIDA · avatar
KIDA from the front: red tank chassis, Raspberry Pi, HC-SR04 sensor and camera on a servo
Front
KIDA from the side: tracks, Raspberry Pi stack and camera mast
Side

Overview

A scout that sees, drives and decides

Phone

An Android app

Hold the stick to drive, let go to stop, with her modes, photos and music as buttons.

Download the APK

Fleet

Hello, dance, Brainfuck

She shakes her camera and dances on the spot, and says the fleet’s Brainfuck phrases on her speaker in RIFT’s conversations.

Control

Multi-protocol

Drive her from the web interface, over VNC, from the desktop remote controller or with a wireless keyboard.

See

Live surveillance

HD video streaming with on-demand photo and video capture.

Infer

Biometric inference

Edge vision processing for real-time gender and age detection, right on the Pi.

Autonomy

Reactive behaviours

Ultrasonic obstacle avoidance and high-contrast line following.

Light

Visual feedback

Customisable RGB lighting for status signals and lighting up her surroundings.

Remote

Desktop controller

The same HUD as the robot, running on another PC, with keyboard, mouse and gamepad support.

Guard

No driving into walls

Whatever drives her — keys, tank, gamepad, web, line following — she won’t go forward into anything within 15 cm. Turning and reversing still work.

Hardware

What she's built from

  1. 01 Raspberry Pi 3B
  2. 02 Freenove Tank Robot HAT v2
  3. 03 Robot tank chassis
  4. 04 2× 5 V DC motors
  5. 05 Raspberry Pi camera
  6. 06 HC-SR04 ultrasonic sensor
  7. 07 3-channel line tracking sensor
  8. 08 2S 18650 battery pack
  9. 09 PC, Android or iPhone + wireless keyboard

Pinout

KIDA uses the v2 HAT from the Freenove Tank Robot. These are its GPIO assignments.

Sensors & outputsGPIO
Ultrasonic TRIG27
Ultrasonic ECHO22
Servo 0 / 1 / 212 / 13 / 19
LED pixel10
IR01 / IR02 / IR0316 / 26 / 21
MotorsGPIO
Left IN1 / IN223 / 24M1+ / M1−
Right IN1 / IN26 / 5M2+ / M2−

Music

What KIDA plays

The tracks on KIDA's music player, straight from audio/music/.

Quick start

From SD card to driving

Install Raspberry Pi OS, clone the repo onto the Pi, then set up the environment:

$ python3 -m venv venv
$ source venv/bin/activate
$ pip install --upgrade pip
$ pip install -r requirements.txt

Run her with Python, or with the shell scripts (give them permission once):

$ python run.py

$ chmod +x make_executables.sh && ./make_executables.sh
$ ./run.sh                     # main environment
$ ./linefollower.sh            # one behaviour on its own
$ ./obstacle_avoidance.sh

Remote controller

The same window as the robot's HUD, running on another PC. The first run creates controller/venv with just pygame and requests.

$ ./run.sh 192.168.1.50                       # Linux / macOS (from controller/)
> run.bat 192.168.1.50                        # Windows
$ python main.py http://192.168.1.50:5003 --fullscreen

Controls

Two ways to drive

1 · Coordinated

Standard WASD vectoring

W/S forward and back, A/D rotate. Smooth, cinematic driving.

2 · Independent

Tank-style tracks

Q/A drive the left bank, W/S the right. Best for heavy terrain and precise pivots.

Keys

KeyAction
TABCycle modes
U / O / LUser control / autonomous / line follower mode
XSpeed control
C / VTake a photo / record video
M / SpacePlay music / stop music

Gamepad

Xbox, PlayStation, Switch Pro and most others work the same on the robot, the remote controller and the web dashboard. Plug one in any time.

ButtonAction
Left stickDrive (analog). Both sticks drive the tracks in the tank scheme
D-padDrive like WASD
A / BCycle speed / stop
X / YPhoto / arc turns on-off
LB / RBPrevious / next mode
Back / StartSave faces / play-pause music

Safety: she stops any remote drive she hasn't heard about for 0.8 s, so a dropped connection or a closed window never leaves her driving.

Connectivity

Join the fleet

SettingValue
WiFi SSIDNORA
Password12345678
RIFT / remote controller port5003

Open her address on port 5003 in any browser on the same network to get the HTML remote controller, or connect through RIFT.

Who's nearby

ESP-NOW + Bluetooth LE: the robots sense each other

Every robot sends a small "I'm here" beacon twice a second. The signal strength says roughly how close each one is, and how it changes says whether it's coming closer, steady or leaving. Coarse, for "who's around": the ultrasonic and ToF sensors still do the precise avoiding.

Zones

Very close to far

Above −45 dBm very close, −60 near, −75 medium, below that far.

Talk

In Brainfuck

Over ESP-NOW each beacon carries a program that prints park, go, wait or hand; the receiver runs it. RIFT decodes them too.

Manners

Who makes way

A parked robot isn't the one moving; a yielding one is making way; a human-driven one gets space; otherwise the alphabet decides, and everyone makes way for MILA.

A Pi can't speak ESP-NOW, so KIDA-00 uses the Pi's own Bluetooth LE to hear NORA, WHIP, KIDA-01 and RIFT and be heard. In autonomous mode she slows down near other robots and gives way when one with right of way is close; in line mode she waits. GET /near shows her list.

Screens

The controllers

Captured without a robot connected, so live values show their offline state.

KIDA's remote controller HUD with camera box, stats and drive pad
Remote controller (pygame)
KIDA's web dashboard
Web dashboard

Windows app

A native window on KIDA-00's page

It opens KIDA-00's own hosted page in a window, so it always looks the same as the page. It remembers the address, and FIND looks on the fleet list of the network you're on. If KIDA-00 doesn't answer, it says so and lets you change the address.

Her Android app now shows her camera. If there's no picture, her page and PC controller say why.

Download KIDA-00-Controller.exe

The DREAM Robotics ecosystem
Minds — DREAM companion · TINA engineer · NINA caretaker · RIFT fleet hub · LYCEA training school
Robots — NORA · MILA · WHIP · KIDA-00 · KIDA-01 · IDA · ARM · NIKA · ARIA · AURA weather · FLORA gardener
Remotes — RITA handheld remote