Inspiration

In America, 1 in 4 people have to live with a disability, and for a couple wheelchair users, being able to move around whether it be around the home or to get to work requires either physical effort or assistance. We aimed to build something that gave people more independence, by merging autonomy and voice control we created a system that lets users move on their terms.


What it does

Guido is an autonomous, voice-controlled smaller scale wheelchair that helps users navigate the world without needing a joystick. Users can speak commands to move, set destinations, or trigger navigation. Guido then handles everything else in the background.

It builds a real-time map of its surroundings using LiDAR, detects and avoids obstacles, and can autonomously drive to set waypoints. The system supports both direct control (like “move forward” or “turn left”) and higher-level navigation, where users can select a destination and let Guido take over.


Technical Deep Dive

The most important thing technically is that Guido is structured as a layered autonomy system not a monolithic script. We split command handling, supervisory logic, and Nav2 execution into separate nodes so high level commands never directly control motion. For navigation, we separate mapping from localization, we use SLAM Toolbox to maintain map and pose, then feed Nav2 with saved map goals through a dedicated bridge. When Guido is in exploration mode, we implemented frontier based planning that finds the boundary between known and unknown cells, clusters candidate frontiers, ranks them by path cost and information gain, and blacklists timed out frontiers so the robot does not get stuck retrying bad goals. On top of that, we added health monitoring for scan, odometry, and TF freshness, plus stop and timeout behavior in both the supervisor and motor bridge, so the system fails safely :D

How we built it

We built Guido completely from scratch, both hardware and software.

Hardware

  • NVIDIA Jetson Orin Nano (main compute unit)
  • LD19 360° LiDAR sensor
  • Arduino with motor driver shield
  • MPU6050 gyroscope/accelerometer
  • Dual DC motors with encoders

Software

  • ROS 2 (Humble) on Ubuntu
  • LiDAR-based SLAM for mapping and localization
  • Serial bridge between Jetson and Arduino for real-time motor control
  • Voice-to-text pipeline that streams commands into the system
  • Lightweight agent layer for interpreting commands and triggering actions

Challenges we ran into

One of the biggest challenges was navigation into unknown environments. Guido cannot have prior knowledge of a space, so it needs to explore and build maps in real time while still staying safe.

Other challenges were:

  • Reliable real-time voice recognition
  • Synchronizing sensor data with movement commands
  • Maintaining stable serial communication between Jetson and Arduino

Getting all of these systems to work together consistently was one of the hardest parts.


Accomplishments that we're proud of

  • Building a fully working autonomous at scale wheelchair system from scratch
  • Real-time LiDAR mapping and obstacle avoidance
  • Voice-to-action pipeline that directly controls movement
  • A modular ROS-based architecture that can scale over time
  • End-to-end integration of hardware and software

What we learned

We learned how complex real-world robotics is compared to simulations. Small issues like latency, sensor noise, or motor inconsistencies can have a big impact on behavior.

We also learned:

  • How to design reliable real-time systems
  • How to structure ROS-based robotics projects
  • The importance of safety and fail-safes
  • How to connect high-level AI systems with low-level hardware control

What's next for Guido

Next, we want to scale Guido to a full-sized, real-world wheelchair platform and improve reliability in real environments.

We’re also planning to:

  • Improve path planning and navigation in complex spaces
  • Integrate with mapping systems for outdoor navigation
  • Make voice interaction more natural and conversational
  • Add stronger safety and redundancy systems

The goal is to take Guido from a prototype to something people can rely on every day.


Built With

  • ROS 2
  • NVIDIA Jetson Orin Nano
  • LiDAR (LD19)
  • Arduino
  • Python
  • C++
  • SLAM Toolbox
  • Vosk / ElevenLabs (speech-to-text)
  • Google ADK
  • React
  • TailwindCSS

Built With

+ 18 more
Share this project:

Updates