Skip to content

Latest commit

 

History

History
59 lines (36 loc) · 2.06 KB

README.md

File metadata and controls

59 lines (36 loc) · 2.06 KB

Software Overview of Rowbot

System Requirements

Requirement Weight Description
REQ-1 10 Localization system accurately tracks motion.
REQ-2 10 Mapping system accurately generates map of environment.
REQ-3 8 Mapping system accurately detects known environments at initialization.
REQ-4 7 System can be controlled remotely.
REQ-5 4 System saves sensor data to disk for later analysis.
REQ-6 4 System saves motion data to disk for later analysis.

Localization

Rowbot uses an Error-State Extended Kalman Filter (ES-EKF). This is a variation of the Extended Kalman Filter (EKF) which estimates state errors as opposed to directly estimating the state. For an excellent overview of the EKF, see section 3.3 of Probabilistic Robotics (Thrun, Burgard, Fox).

Here is a high-level overview of the EKF implemented in ekfmodule.

The Iterative Closest Point (ICP) Algorithm

The ICP algorithm processes sequential LiDAR range scans in order to provide movement estimates over time. As the name suggests, the ICP algorithm estimates motion by aligning point cloud data.

Here is an overview of the ICP process implemented in icpmodule.

Building the Source Code

To compile the Rowbot project:

  1. Navigate to the Rowbot root folder,

     cd Rowbot/
    
  2. Run CMake to generate make instructions. Instructions are defined in CMakeLists.txt

     cmake .
    
  3. Run generated Makefile,

     make
    
  4. Assuming compilation succeeded without error, the generated executable can be run,

     ./main