ZeroClaw Robot Kit
A complete toolkit for building AI-powered robots with ZeroClaw. Designed for Raspberry Pi deployment with offline Ollama inference.
Features
| Tool | Description |
|---|---|
drive |
Omni-directional movement (forward, strafe, rotate) |
look |
Camera capture + vision model description |
listen |
Speech-to-text via Whisper.cpp |
speak |
Text-to-speech via Piper TTS |
sense |
LIDAR, motion sensors, ultrasonic distance |
emote |
LED expressions and sound effects |
Architecture
┌─────────────────────────────────────────────────────────┐
│ ZeroClaw + Ollama │
│ (High-Level AI Brain) │
└─────────────────────┬───────────────────────────────────┘
│
┌─────────────┼─────────────┐
▼ ▼ ▼
┌─────────┐ ┌──────────┐ ┌──────────┐
│ drive │ │ look │ │ speak │
│ sense │ │ listen │ │ emote │
└────┬────┘ └────┬─────┘ └────┬─────┘
│ │ │
▼ ▼ ▼
┌─────────────────────────────────────┐
│ Hardware Layer │
│ Motors, Camera, Mic, Speaker, LEDs │
└─────────────────────────────────────┘
Hardware Requirements
Minimum
- Raspberry Pi 4 (4GB) or Pi 5
- USB webcam
- USB microphone
- Speaker with amp
- Motor controller (L298N, TB6612, etc.)
- 4 DC motors + omni wheels
Recommended
- Raspberry Pi 5 (8GB)
- RPLidar A1 for obstacle avoidance
- LED matrix (8x8) for expressions
- PIR motion sensors
- HC-SR04 ultrasonic sensor
Software Dependencies
# Install on Raspberry Pi OS
# Audio
# Camera
# Ollama (local LLM)
|
# Whisper.cpp (speech-to-text)
&&
# Piper TTS (text-to-speech)
# Or download binary from github.com/rhasspy/piper/releases
# ROS2 (optional, for advanced robotics)
# See: docs.ros.org/en/humble/Installation.html
Quick Start
1. Build ZeroClaw with robot tools
# Clone and build
2. Configure
# Copy config
# Edit for your hardware
3. Test
# Start Ollama
&
# Test in mock mode
# Test with real hardware
# (after configuring robot.toml)
Integration
This crate is currently added as a standalone workspace member. It is not auto-registered in the core runtime by default.
Use it directly from Rust:
use ;
If you want runtime registration in zeroclaw, add a thin adapter that maps this
crate's tools to the project's src/tools::Tool and register it in the factory.
Usage Examples
Play Hide and Seek
User: Let's play hide and seek!
Robot:
1. emote(expression="excited")
2. speak(text="Okay! I'll count to 20. Go hide!")
3. [waits 20 seconds]
4. speak(text="Ready or not, here I come!")
5. sense(action="scan")
6. drive(action="forward", distance=1)
7. look(action="find", prompt="a child hiding")
...
Patrol Mode
User: Patrol the living room
Robot:
1. sense(action="scan", direction="all")
2. drive(action="forward", distance=2)
3. sense(action="motion")
4. look(action="describe")
5. [repeat]
Interactive Conversation
User: [speaks] "Hey Buddy, what do you see?"
Robot:
1. listen(duration=5) → "Hey Buddy, what do you see?"
2. look(action="describe")
3. speak(text="I see a couch, a TV, and some toys on the floor!")
4. emote(expression="happy")
Creating a Bootable USB Tarball
# Package everything needed
# Include models
# Note: Ollama models are large, may want to download on target
# Create tarball
# Copy to USB
Safety Notes
- Test in mock mode first - Always verify behavior before enabling real motors
- Set conservative speed limits - Start with
max_speed = 0.3 - Use emergency stop - Wire a physical E-stop button to the GPIO pin
- Supervise with children - Robot is a toy, not a babysitter
- Obstacle avoidance - Enable LIDAR if available, or keep
confirm_movement = true
License
MIT - Same as ZeroClaw