Mobile Robotics

This project was for ROB550: Robotics Systems Lab at the University of Michigan. The task was to implement the controls and perception to an autonomous mobile robot in order to explore and map previously unobserved environments. I was part of a 3 person team for this project.

Relevant Skills and Topics:

  • C++

  • LCM

  • SLAM

  • Path Planning

  • Motion Control

Velocity and Motion Controller

Implemented hierarchical PID controller for both velocity and motion controller using the RC control library.

Simultaneous Localization and Mapping

Implemented Monte Carlo Localization and Occupancy Grid mapping in order to perform SLAM, where the updated pose would provide updates on the constructed occupancy grid map and vice versa.

k

Map generated from a maze that the robot followed with given waypoints. Brown indicates the odometry readings, and blue represents the SLAM pose, in order to highlight the necessity for SLAM and sensor fusion for mobile robotics applications.

Path Planning and Exploration

Implemented A* path planning with L2 heuristic. Exploration was done by identifying frontiers (unexplored areas), and setting the centroid of the envelope of the frontiers as the waypoint to travel to.

Previous
Previous

Neural Radiance Fields (NERFs)

Next
Next

Bayesian Inference for Linear Models and Decision Making