Skip to content
Michael_Portfolio.ipynb
MR
File browser
Michael_Portfolio.ipynb
profile.jpg
resume.pdf

One editable portfolio notebook. Edits survive refreshes in this tab and reset when the tab closes or the notebook is reset.

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 project preview

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
Guido project media
[ ]
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
GitHub Demo Project page
Python 3 · PyodideWorker: CPUConnecting…Command modeLn 1, Col 1