A project for ROB 550: Robotics Systems Lab course taught in University of Michigan, Ann Arbor. Due to the COVID-19 pandemic this project was migrated to an online project. An overview of this project:
-
Acting
- Planar kinematics of a differential-drive ground robot
- Motion models with uncertainty
-
Perception
- Quadrature Encoders
- MEMS Inertial Measurement Unit
- 2D LIDAR Rangefinders
-
Reasoning
- Monte Carlo Localization
- Simultaneous Localization and Mapping
- A* search
- Path planning
- a script to log the sensor data needed for SLAM so you can easily create your own log files for testing
- a script for setting environment variables needed for running Vx applications
- run this script before running botgui in a terminal on your laptop
- run via
. setenv.sh
-- note the space
-
Mapping
lcm-logplayer-gui <log_file.log>
and uncheck all SLAM channels but SLAM_POSE./botgui
./slam --mapping-only
-
Action Model
lcm-logplayer-gui <log_file.log>
and uncheck all SLAM channels./botgui
./slam --action-only
-
Sensor Model
lcm-logplayer-gui <log_file.log>
and uncheck all SLAM channels./botgui
./slam --localization-only <map_file.map>
-
Full SLAM
lcm-logplayer-gui <log_file.log>
and uncheck all SLAM channels./botgui
./slam
-
Obstacle Distance Grid
lcm-logplayer-gui <log_file.log>
and uncheck all SLAM channels./botgui
- View the generated obstacle distance grid by ticking “Show Obstacle Distances” in botgui
-
A* Algorithm
cd <path_to_dir>/src/sim
python3 sim.py <map_file.map>
./timesync
./botgui
./motion_controller
./slam --localization-only <map_file.map>
- Right-click on the botgui to drive the robot to that location
-
Frontier exploration
cd <path_to_dir>/src/sim
python3 sim.py <map_file.map>
./timesync
./botgui
./motion_controller
./slam
./exploration
Check the final report for detailed explanation and results.
- where all built binaries are located
- where data needed to run parts of the assignment are located
- log files and target files for SLAM and exploration are here
- where the .lcm type definitions are located
- the generated types are stored in src/lcmtypes
- where static libraries are saved during the build process
- where all source code for botlab is located
- subdirectories have a further description of their contents