Skip to content
This repository was archived by the owner on Aug 5, 2022. It is now read-only.

Structure

Murilo Belluzzo edited this page Mar 15, 2017 · 4 revisions

Code Structure

avoidance

This is where the implementations for obstacle avoidance algorithms are. Each pair of .cc/.hh files provides a different algorithm. The available algorithms are:

  • Quadcopter Shift Avoidance
  • Quadcopter Stop Avoidance
  • Quadcopter VFF Avoidance

All algorithms in this folder provide a specialization of the class CollisionAvoidanceStrategy. For more details on the provided algorithms, check Avoidance.

cmake

This is where the CMake files needed to find the library dependencies are kept. Right now only GLM and Realsense libraries need those custom files.

common

This is where the base abstractions of the code are. Pretty much any object that may have multiple functional implementation should be defined in this folder. The header common.hh is the project's main header and keeps the definition of the base classes used throughout the project, like QuadCopter, Detector, and CollisionAvoidanceStrategy. The functional implementation of those abstractions are provided in their specific folder, e.g. vehicles, detector and avoidance.

communication

This is where the glue code for Gazebo is. The code here is responsible for managing a single instance of GazeboContext and share it among the code.

detection

This is where the implementations for obstacle detection algorithms are. Each pair of .cc/.hh files provide a different algorithm. The available algorithms are:

  • Depth Image Obstacle Detector
  • Depth Image Polar Histogram Detector
  • Depth Image Simple Detector
  • Depth Image Straight Line Detector

All algorithms in this folder provide a specialization of the class Detector. For more details on the provided algorithms, check Detectors.

modules

This is where the project submodules are. The two submodules are:

  • Gazebo Realsense : Provide a simulated version of Intel Realsense Camera to the used with Gazebo
  • Mavlink Vehicles : Manages connection with the vehicle and handles MAVLink messages

Right now Gazebo Realsense is part of this repo, but it should move to its own project page in the future.

samples

This is where the project code samples are. Those are intended as reference for the development of new tools using the library. The available samples are:

  • simple.cc : Basic library usage.
  • polarhist_test.cc : Simple sample that shows how to use Depth Image Polar Histogram Detector.

For more information about the samples, check Samples.

sensors

This is where the functional implementations of sensors are. Right now the only supported sensor is the Depth Camera. The available implementations are:

  • Gazebo Realsense Camera
  • Realsense Camera

For details about the sensors, check Sensors.

simulation

Most files in this directory are associated with Gazebo Realsense submodule and will move to its own repo in the future.

testbed

This is where the automated test infrastructure is. The most important file in this directory is testbed.sh. It is responsible for loading the simulator, the autopilot and the coav-control binary to run the test algorithms in the provided gazebo world test files. For more information about creating and adding new test cases, check Testbed.

tests

This is where the internal tests for the project are. Simulation tests should not be in this folder, they should be in testbed instead.

tools

This is where the library tools are located. There are two tools available in the project:

  • coav-control : This is the main tool of the library. It allows all Detectors and Avoidance Strategies to be executed, on real or simulated environment.
  • vdebug : Visual debug

For more information about the tools, check Tools.

utils

Generic code structures.

vehicles

This is where the implementations of vehicles are. Right now the only supported vehicle is the QuadCopter. Despite the name, it applies for Multicopters in general. Each pair of .cc/.hh files provide a different vehicle implementation. The available vehicles are:

  • Gazebo QuadCopter : Use gazebo to simulate the vehicle
  • Mav QuadCopter : Communicates to a MAVLink Vehicle

For more information about vehicles, check Vehicles.

Clone this wiki locally