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.
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.