Skip to content

Autonomous Mobile Robot Navigation and Vision System for Warehouse Exploration on Mbot Classic

Notifications You must be signed in to change notification settings

CharlesChang012/ROB-550_Botlab

Repository files navigation

ROB 550 Botlab-w25 @ UMich

Overview

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

Results

A* in autonomous frontier exploration

Astar exploration

PID controll for navigation through maze with waypoints

  • Smart Motion Controller

    Maze smart motion controller low speed Maze smart motion controller high speed
  • Pure Pursuit Motion Controller

    Maze pure pursuit motion controller low speed Maze pure pursuit motion controller high speed

PID controll for navigation in square with waypoints

  • Smart Motion Controller (left) and Pure Pursuit Motion Controller(right)
    Square smart motion controller low speed Square pure pursuit motion controller low speed

Particle Filter Performances

  • Particle Filter Update Time vs Particle Number

    Particle Filter Update Time vs Particle Number
  • SLAM RMSE and STD

    SLAM RMSE and STD
  • Robot SLAM Pose and Particles

    Robot SLAM pose particle

Code structure

Relevant

Irrelevant

No need to touch these files.

  • media - where I store media that used for README instructions

How to start?

Start SLAM

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

or

  • Run random initial pose localization mode after map construction
$ ./mbot_slam --random-initial-pos --localization-only --map [path/to/recodedMap]
  1. Run the image publisher
$ cd  mbot_ws/mbot_vision
$ python3 tag_cone_lcm_publisher.py
  1. (Optional) Run lcm logger to record data
$ cd mbot_ws/mbot_plot
$ lcm-logger [logFileName]

Plot Results

Refer to mbot_plot for scripts and instructions

Reference

[1] ROB 550 Web Page : https://rob550-docs.github.io/docs/botlab/getting-started.html

About

Autonomous Mobile Robot Navigation and Vision System for Warehouse Exploration on Mbot Classic

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published