Skip to content
/ cs393r Public

CS 393R Graduate Autonomous Robots, Fall 2021 | Autobots

Notifications You must be signed in to change notification settings

elvout/cs393r

Repository files navigation

cs393r | Autobots

Setup

Prerequisites

Please refer to the UT AUTOmata reference manual for instructions on setting up the dependencies:

Code Formatting

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/

Code Overview

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:

Building

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.

Running the Code

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