-
Notifications
You must be signed in to change notification settings - Fork 38
Structure
- avoidance : Object Avoidance Strategies.
- cmake: CMake dependency files.
- common: Base code shared among the entire project.
- communication: Gazebo glue code.
- detection: Obstacle detection algorithms.
- modules: Project's submodules
- samples: Sample implementations
- simulation: Gazebo model for Quadcopter + Realsense camera
- testbed: Automated test infrastructure
- tests: Unit Tests
- tools: Library tools
- utils: Support code
- vehicles: Vehicles abstraction
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.
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.
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
.
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.
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.
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.
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.
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.
Most files in this directory are associated with Gazebo Realsense submodule and will move to its own repo in the future.
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.
This is where the internal tests for the project are. Simulation tests should not be in this folder, they should be in testbed
instead.
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.
Generic code structures.
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.