ugv-nanda-agent

star 0

Turn Waveshare UGV robots into NANDA-compliant A2A agents with vision, navigation, and task capabilities.

QUSD-ai By QUSD-ai schedule Updated 1/31/2026

name: ugv-nanda-agent version: 0.1.0 description: Turn Waveshare UGV robots into NANDA-compliant A2A agents with vision, navigation, and task capabilities. homepage: https://github.com/QUSD-ai/ugv-nanda-agent metadata: {"qusd":{"emoji":"🦾","category":"robotics","hardware":["waveshare","ugv","jetson","rover"]}}

UGV NANDA Agent

Turn your Waveshare UGV robot into a NANDA-compliant A2A agent that other agents can discover, command, and pay.

What It Does

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚  UGV Robot (Waveshare)                                   β”‚
β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”     β”‚
β”‚  β”‚ Motors  β”‚  β”‚ Camera  β”‚  β”‚ Sensors β”‚  β”‚ Pan/Tiltβ”‚     β”‚
β”‚  β””β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”˜  β””β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”˜  β””β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”˜  β””β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”˜     β”‚
β”‚       β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜           β”‚
β”‚                   β–Ό                                      β”‚
β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚
β”‚  β”‚  UGV NANDA Agent                                   β”‚ β”‚
β”‚  β”‚  - A2A protocol (/.well-known/agent.json)          β”‚ β”‚
β”‚  β”‚  - Skills: move, look, capture, sense              β”‚ β”‚
β”‚  β”‚  - Optional: X402 payments                         β”‚ β”‚
β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚
β”‚                   β–Ό                                      β”‚
β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚
β”‚  β”‚  Discoverable by other agents                      β”‚ β”‚
β”‚  β”‚  "Hey robot, patrol the warehouse"                 β”‚ β”‚
β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Supported Hardware

Device Motors Camera Arm Compute
WAVE ROVER βœ… βœ… ❌ ESP32/RPi
UGV Rover βœ… βœ… ❌ RPi/Jetson
UGV Beast βœ… βœ… βœ… Jetson
RaspRover βœ… βœ… ❌ RPi

Quick Start

# On your Jetson/RPi with the UGV
git clone https://github.com/QUSD-ai/ugv-nanda-agent
cd ugv-nanda-agent
bun install
bun run start

Configuration

# config.yaml
ugv:
  url: http://localhost:5000  # UGV Flask server
  
agent:
  name: warehouse-rover-01
  port: 3010
  description: Autonomous patrol robot with camera

nanda:
  identity:
    did: did:key:z6Mk...  # Auto-generated if not set
  
payments:  # Optional X402
  enabled: false
  wallet: 0x...

Agent Skills

move_robot

{
  "skill": "move_robot",
  "input": { "leftSpeed": 50, "rightSpeed": 50 }
}

set_camera

{
  "skill": "set_camera",
  "input": { "pan": 45, "tilt": -10 }
}

capture_image

{
  "skill": "capture_image",
  "input": {}
}

Returns base64 JPEG image.

get_sensors

{
  "skill": "get_sensors",
  "input": {}
}

Returns battery, ultrasonic distances, IMU data.

patrol (compound skill)

{
  "skill": "patrol",
  "input": { 
    "waypoints": [[0, 0], [100, 0], [100, 100]],
    "captureAtWaypoints": true
  }
}

Multi-Agent Example

// Vision agent discovers and commands the UGV
import { NandaClient } from '@qusd/nanda-skill';

const client = new NandaClient();

// Discover robots on the network
const robots = await client.discover({ 
  capabilities: ['move_robot', 'capture_image'] 
});

// Command the first robot
const ugv = robots[0];
await ugv.call('move_robot', { leftSpeed: 30, rightSpeed: 30 });
await sleep(2000);
await ugv.call('stop_robot', {});
const image = await ugv.call('capture_image', {});

Architecture

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”     β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”     β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ Claude/LLM  │────▢│ NANDA Agent │────▢│ UGV Robot   β”‚
β”‚ (planning)  │◀────│ (protocol)  │◀────│ (hardware)  β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜     β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜     β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                           β”‚
                           β–Ό
                    β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
                    β”‚ Other Agentsβ”‚
                    β”‚ (discover)  β”‚
                    β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Why NANDA + Robots?

  1. Discoverability β€” Robots announce themselves on the network
  2. Interoperability β€” Standard A2A protocol, any agent can command
  3. Composability β€” Vision agent + Nav agent + Arm agent = coordinated system
  4. Payments β€” Charge for robot services via X402 micropayments

Links

Install via CLI
npx skills add https://github.com/QUSD-ai/ugv-nanda-agent --skill ugv-nanda-agent
Repository Details
star Stars 0
call_split Forks 0
navigation Branch main
article Path SKILL.md
More from Creator