michaelml.dev / Michael_Portfolio.ipynb
Autonomous, voice-controlled wheelchair prototype that maps unknown spaces with LiDAR, supports direct spoken movement commands, and uses layered ROS 2 autonomy for safer hands-free navigation.
[ ]
code · Guido
project = load_project("guido")
project.summary()Output

Guido
Autonomous, voice-controlled wheelchair prototype that maps unknown spaces with LiDAR, supports direct spoken movement commands, and uses layered ROS 2 autonomy for safer hands-free navigation.
ROS 2Nav2SLAM ToolboxLiDARNVIDIA JetsonArduinoPythonC++Voice ControlAutonomous NavigationRoboticsReact
[ ]
code · Problem definition
project = load_project("guido")
project.problem()Output
ProblemWheelchair users need hands-free mobility that can safely map, explore, and navigate unfamiliar spaces.
ApproachUse a layered ROS 2 autonomy stack with voice commands, SLAM Toolbox, frontier exploration, Nav2, LiDAR health checks, and fail-safe motor control.
OutcomeWon Most Innovative Hack among 280+ projects and demonstrated a working small-scale autonomous, voice-controlled wheelchair prototype.
[ ]
code · Constraints
project = load_project("guido")
project.constraints()Output
Constraints
- The robot had to explore spaces without a prebuilt map.
- Sensor noise, serial latency, and motor inconsistency appeared only on physical hardware.
- Motion needed stop, timeout, and stale-data safeguards.
[ ]
code · Role and implementation
project = load_project("guido")
project.implementation()Output
Role and implementation
My role: Developed frontier-based exploration and mapping, designed the modular SLAM/Nav2/supervisor architecture, and helped integrate the Jetson, LiDAR, Arduino, and motion platform.
- Separated command parsing, supervision, mapping, planning, and motor control into ROS 2 nodes.
- Clustered and ranked frontiers by path cost and information gain while blacklisting failed goals.
- Monitored LiDAR, odometry, and TF freshness before allowing motion.
[ ]
code · Architecture
project = load_project("guido")
project.show_architecture()Output
Voice + goalsStructured intent
SupervisorSafety and mode gating
SLAM ToolboxMap + localization
Frontier plannerUnknown-space exploration
Nav2Path execution
Motor bridgeTimeout-safe control
[ ]
code · Demo and media
project = load_project("guido")
project.media()Output

[ ]
code · Evaluation
project = load_project("guido")
project.evaluation()Output
Evaluation
- Tested live LiDAR mapping, voice-to-action control, waypoint execution, and obstacle avoidance.
- Exercised stop and timeout behavior when sensor or motion data became stale.
[ ]
code · Results
project = load_project("guido")
project.results()Output
Results
- Built a working small-scale platform that mapped unknown space and executed autonomous navigation.
- Awarded Most Innovative Hack among 280+ projects.
[ ]
code · Tradeoffs and failures
project = load_project("guido")
project.tradeoffs()Output
Tradeoffs
- The prototype proves the architecture but is not a medical device or full-sized mobility platform.
- Layered safety adds coordination overhead but prevents high-level commands from directly driving motors.
[ ]
code · What I would improve
project = load_project("guido")
project.improvements()Output
Improvements
- Scale the design to a full-sized wheelchair with stronger redundancy and safety validation.
- Improve complex indoor planning, outdoor mapping, and conversational voice interaction.
[ ]
code · Links and repository
project = load_project("guido")
project.links()Output