Click on image to open youtube video of simulation.
Please refer to the UT AUTOmata reference manual for instructions on setting up the dependencies:
- Make sure you're logged into your GitHub account.
- Create a new repo with the same name under your GitHub account. Dont initialize that with anything.
git clone <this repository url>
(found in the upper right)cd <cloned_repo>
git push --mirror <your new repository url>
git clone <your repository url>
(found in the upper right)- After you have cloned the repo, add it to your ROS path by adding the following line to the end of
~/.bashrc
:For example:export ROS_PACKAGE_PATH=$ROS_PACKAGE_PATH:[Local path to your repo]
export ROS_PACKAGE_PATH=$ROS_PACKAGE_PATH:/home/joydeepb/cs393r_starter
- Reload
.bashrc
so that the path is updated:source ~/.bashrc
cd <cloned_repo>
make -j
There are three main executables: navigation
, particle_filter
, and slam
. Each executable has a corresponding .h
and .cc
file that defines the class for the implementation. An associated *_main.cc
file abstracts away ROS-specific details. For example, the particle_filter
executable consists of three files:
src
└── particle_filter
├── particle_filter.cc
├── particle_filter.h
└── particle_filter_main.cc
Every header file includes documentation in comments for the variables and subroutines.
The project compiles with Eigen for linear algebra and coordinate geometry, the amrl_shared_lib for commonly used robotics subroutines, and a custom simple priority queue implementation. Some useful references on how to use the libraries:
- See the included
eigen_tutorial.cc
file for example most common Eigen usage, and the official Eigen tutorials for more extensive documentation. - See the included
simple_queue_test.cc
for usage of the simple priority queue.
Make sure you recompile your code between changes.
- To run navigation:
./bin/navigation
- To run the particle filter:
./bin/particle_filter
- To run SLAM:
./bin/slam