Vantage Arm Lab is a browser-based robotic-arm simulation and validation platform designed to test robotic control software safely before deployment to physical hardware.
The platform combines a 3D URDF digital twin, custom kinematics, manual and voice control, autonomous PIN entry, deterministic safety validation, and an ESP32/Wokwi electrical proof of concept.
Different interfaces. One trusted robotics pipeline.
The system provides a complete simulation-first environment where engineers can:
- Visualize a 6-DOF robotic arm from URDF
- Inspect joint states and end-effector telemetry
- Control the arm manually in 3D
- Test forward and inverse kinematics
- Execute deterministic voice commands
- Perform autonomous six-digit PIN entry
- Validate safety before motion
- Demonstrate future ESP32-based hardware integration
Input Adapter
↓
Command Normalization
↓
Schema Validation
↓
Command Arbitration
↓
Safety Pre-Check
↓
IK / Motion Planning
↓
Safety Post-Check
↓
Trajectory Generation
↓
Runtime Controller
↓
URDF Digital Twin / Telemetry / Evidence
Every input source uses the same trusted pipeline.
Testing industrial robotic software directly on hardware is often:
- Slow
- Expensive
- Risky
- Difficult to reproduce
Vantage Arm Lab provides a software-in-the-loop validation environment where motion commands can be checked, simulated, measured, and demonstrated before reaching a real robot.
- Phase 1 — See the Arm
- Phase 2 — Move the Arm
- Phase 3 — Talk to the Arm
- Phase 4 — Autonomous PIN Entry
- Phase 5 — Electrical Proof of Concept
Built with:
- React
- TypeScript
- Three.js
- React Three Fiber
- URDF Loader
Capabilities:
- URDF-based robot loading
- Real-time 3D visualization
- Joint-state rendering
- End-effector tracking
- Camera controls
- Key-panel visualization
- Tool-tip and stylus tracking
- Runtime telemetry overlay
Calculates:
- Joint transformations
- End-effector position
- Tool orientation
- Stylus-tip pose
Implemented with:
- Jacobian-based solving
- Damped Least Squares optimization
- Joint-limit enforcement
- Reachability checking
- Iteration and convergence reporting
Supports:
- Cartesian movement
- Joint-space interpolation
- Smooth trajectories
- Safe approach, contact, and retract motion
- Runtime cancellation
- Command arbitration
Supported input sources:
- Dashboard controls
- GUI joystick
- Keyboard
- Voice commands
- Autonomous PIN execution
- Optional AI-generated commands
- Hardware proof-of-concept controls
All commands are converted into validated structured robot commands before execution.
Provides:
- X-axis movement
- Y-axis movement
- Z-axis movement
- Precision mode
- Cartesian jogging
- Speed control
Supports:
- Directional movement
- Speed adjustment
- Precision mode
- Home command
- Emergency stop
- Resume
The platform supports deterministic speech commands such as:
Move up
Move left 5 centimeters
Rotate base 30 degrees
Press key five
Enter PIN 123456
Speech Input
↓
Command Parser
↓
Structured Robot Command
↓
Schema Validation
↓
Safety Validation
↓
Execution
Voice input never bypasses the safety system.
The robotic arm can automatically enter a six-digit PIN using configured key coordinates.
- Validate the PIN
- Validate each key coordinate
- Check reachability
- Calculate the motion path
- Move to the hover position
- Descend the stylus
- Simulate key contact
- Retract safely
- Continue to the next digit
- Generate an execution report
- Position error
- Reachability result
- Joint-limit status
- Motion status
- Per-key progress
- Final execution report
Every motion request passes through deterministic safety validation.
Checks include:
- Command schema validation
- Workspace limits
- Joint limits
- Reachability
- Emergency-stop state
- Runtime busy state
- Motion constraints
- Invalid target rejection
Unsafe commands are rejected before execution.
Optional AI support can convert natural-language requests into structured commands.
Example:
Move slightly toward the panel and press key five twice.
Pipeline:
Natural Language
↓
Structured Command Plan
↓
Deterministic Validation
↓
Safety Supervisor
↓
Robot Execution
AI never directly controls the robot. Every generated command must pass the same deterministic validation and safety pipeline.
The repository includes a complete Wokwi-based circuit and firmware simulation.
- ESP32 controller
- Six servo channels
- Manual 4-way joystick
- Six-digit PIN keypad
- Manual and Auto modes
- OLED telemetry
- Wi-Fi status
- Six key-indicator LEDs
- Ready and Stop indicators
- Emergency stop
- Resume control
- Home command
- Smooth servo movement
- Joint-limit validation
- Structured Serial Monitor events
MODE
1 → 2 → 3 → 4 → 5 → 6
ENTER
The firmware then performs:
Approach key
↓
Press key
↓
Retract
↓
Continue sequence
↓
Return home
hardware/wokwi/sketch.inohardware/wokwi/diagram.jsonhardware/wokwi/libraries.txthardware/wokwi/README.md
Browser Dashboard
↓
Wi-Fi Communication
↓
ESP32 Controller
↓
PCA9685 Servo Driver
↓
6 Servo Motors
The real-hardware design includes:
- Separate regulated servo power
- Common ground
- High-current power planning
- Emergency-stop concept
- PCA9685 expansion
- ESP32 Wi-Fi communication
- Future hardware adapter integration
Schematic file:
The Wokwi simulation uses direct ESP32 PWM for reliable browser simulation. The production hardware design uses a PCA9685 servo driver and external servo power.
- React
- TypeScript
- Vite
- Three.js
- React Three Fiber
- Zustand
- Zod
- Tailwind CSS
- URDF Loader
- gl-matrix
- Custom forward-kinematics engine
- Custom Damped Least Squares IK solver
- Motion planner
- Runtime controller
- Safety supervisor
- Web Worker-based IK execution
- ESP32
- Arduino C++
- Wokwi
- OLED SSD1306
- Servo motors
- 74HC595 LED driver
- Matrix keypad
- Vitest
- React Testing Library
- Playwright
- TypeScript type checking
- ESLint
- GitHub Actions
IUT_FINAL_HACKATHON/
│
├── src/
│ ├── core/
│ │ ├── commands/
│ │ ├── kinematics/
│ │ ├── planning/
│ │ ├── runtime/
│ │ └── safety/
│ ├── robot/
│ │ ├── RobotModelAdapter.ts
│ │ └── robot profiles/
│ ├── scene/
│ │ ├── RobotModel.tsx
│ │ └── keypad rendering/
│ ├── controls/
│ │ ├── joystick/
│ │ ├── keyboard/
│ │ └── voice/
│ ├── workers/
│ │ └── IK worker/
│ └── ui/
│ ├── dashboard/
│ ├── PIN controls/
│ ├── telemetry/
│ └── safety status/
│
├── hardware/
│ ├── wokwi/
│ │ ├── sketch.ino
│ │ ├── diagram.json
│ │ ├── libraries.txt
│ │ └── README.md
│ └── schematics/
│ └── robot-arm-schematic.jpeg
│
├── docs/
│ ├── architecture/
│ ├── testing/
│ ├── electrical-design/
│ └── demo-plan/
│
├── public/
├── package.json
├── vite.config.ts
└── README.md
- Node.js
- npm
- Git
git clone <repository-url>
cd IUT_FINAL_HACKATHONnpm installnpm run devnpm run buildRun the following before release:
npm run typecheck
npm run lint
npm run test
npm run buildFor end-to-end tests:
npm run test:e2e- Open a new ESP32 project in Wokwi.
- Replace the generated
sketch.ino. - Replace the generated
diagram.json. - Replace
libraries.txt. - Start the simulation.
- Press
MODEto switch to Auto mode. - Enter six digits using keys 1–6.
- Press
ENTER. - Observe the servo sequence and Serial Monitor events.
Useful Serial Monitor commands:
HELP
STATUS
HOME
TEST
PANELTEST
MODE AUTO
PIN 123456
STOP
RESUME
Demonstrate:
- URDF loading
- 3D arm rendering
- Joint telemetry
- End-effector tracking
- Key panel
Demonstrate:
- GUI joystick
- Keyboard control
- Cartesian movement
- Precision mode
Demonstrate:
- Speech recognition
- Command parsing
- Structured command generation
- Safe execution
Enter:
123456
Show:
- PIN validation
- Motion planning
- Approach, contact, and retract
- Per-key progress
- Accuracy report
Demonstrate:
- Invalid target rejection
- Joint-limit rejection
- Emergency stop
- Command conflict protection
Demonstrate:
- Wokwi circuit
- ESP32 firmware
- Manual PIN keypad
- Servo movement
- OLED status
- LED indicators
| Requirement | Implementation |
|---|---|
| URDF Visualization | Three.js + URDF Loader |
| Live Dashboard | Runtime telemetry system |
| Forward Kinematics | Custom FK engine |
| Inverse Kinematics | Damped Least Squares IK solver |
| Joystick Control | Cartesian joystick controller |
| Keyboard Control | Keyboard input adapter |
| Voice Control | Speech command parser |
| PIN Automation | Autonomous PIN planner |
| Safety | Deterministic validation pipeline |
| Electrical Design | ESP32 + PCA9685 architecture |
| Circuit Simulation | Wokwi ESP32 simulation |
| Hardware Expansion | Robot adapter abstraction |
The system is designed so that real hardware can be added by replacing the robot adapter layer while keeping the rest of the platform unchanged.
Reusable components include:
- Controls
- Command validation
- Safety
- Kinematics
- Planning
- Runtime
- Telemetry
- Reports
- User interface
- Real robotic-arm integration
- ROS and ROS 2 support
- Computer-vision control
- Finger-gesture control
- Advanced collision avoidance
- Multi-robot simulation
- Cloud telemetry
- Hardware-in-the-loop testing
- AI-assisted motion planning
- Production PCA9685 servo controller
Current implementation includes:
- Browser-based 3D digital twin
- Manual arm control
- Keyboard and joystick control
- Voice-command support
- Autonomous PIN execution
- Safety validation
- Runtime telemetry
- Wokwi hardware proof of concept
- ESP32 firmware
- Electrical schematic
This project was developed for the IUT Hackathon Final Round.
Vantage Arm Lab — IUT Hackathon Team
