Please refer to the UT AUTOmata reference manual for instructions on setting up the dependencies:
We use clang-format in a pre-commit hook to format staged changes in C++ files. The file must first be symlinked into the local .git folder.
# In the top-level directory:
$ ln -s ../../.githooks/pre-commit .git/hooks/
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:
eigen_tutorial.cc
file for example most common Eigen usage, and the official Eigen tutorials for more extensive documentation.simple_queue_test.cc
for usage of the simple priority queue.The ./make script automatically updates the
$ROS_PACKAGE_PATH
to include this project directory before building
executables. However, make sure that the prerequisite
packages are in $ROS_PACKAGE_PATH
.
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