This repository presents the outcomes of the ROB-550 BotLab course at University of Michigan. University of Michigan’s mobile robot - Mbot Classic [1], is implemented along with controls, SLAM (Simultaneous Localization and Mapping) system, and camera vision to interact with its surroundings. For basic control system, wheel odometry, a Bosch BHI160B IMU (Inertial Measurement Unit) and PID (Proportional - Integral - Derivative) control are applied. Through fine-tuning the control values, motion errors are corrected and thus it ensures desired motion along its path. SLAM system is implemented by integrating occupancy grid mapping for representation of the world and the widely-used particle filter estimation method with RPLiDAR sensor for localization. Arducam 5MP OV5647 camera module is equipped for real-time image capturing. The performance and accuracy of the implementation is analyzed and tested through a series of experiments.
Table of content
-
Smart Motion Controller
-
Pure Pursuit Motion Controller
- Smart Motion Controller (left) and Pure Pursuit Motion Controller(right)
-
Particle Filter Update Time vs Particle Number
-
SLAM RMSE and STD
-
Robot SLAM Pose and Particles
- mbot_autonomy
- mbot_bridge
- mbot_firmware
- mbot_gui
- mbot_lcm_base
- mbot_web_app-v2.0.0
- rplidar_lcm_driver
- mbot_plot
- mbot_vision
No need to touch these files.
- media - where I store media that used for README instructions
- Run the following command in the same directory in different tabs
$ cd mbot_ws/mbot_autonomy/build/
$ ./mbot_motion_controller
$ ./motion_planning_server
$ ./exploration- Run initial SLAM mode
$ ./mbot_slamor
- Run random initial pose localization mode after map construction
$ ./mbot_slam --random-initial-pos --localization-only --map [path/to/recodedMap]- Run the image publisher
$ cd mbot_ws/mbot_vision
$ python3 tag_cone_lcm_publisher.py- (Optional) Run lcm logger to record data
$ cd mbot_ws/mbot_plot
$ lcm-logger [logFileName]Refer to mbot_plot for scripts and instructions
[1] ROB 550 Web Page : https://rob550-docs.github.io/docs/botlab/getting-started.html









