A ROS package for the International Micro Air Vehicle(IMAV) Competition, an yearly international aerial vehicle competition and conference
This package contains the following components:
Planner: A Finite State Machine implementation using the Boost C++ libraries for decision making, state transitions and actions during the mission.
Detector: A detection and pose estimation module to detect the colored mailboxes in the field.
Helipad Detector: A Helipad Detection module for accurate and precise landing on a helipad.
Router: A message reception, checks and feedback system for keeping track of the detected mailboxes between the UAVs. Implemented with help of the multimaster_fkie package used to sync messages among the UAVs.
Collision Avoidance: A collision avoidance module for a multi-UAV system.
Feature Detector: A feature detection module for detection of a house roof and a crashed UAV.
ROS Melodic (stable, tested) with the following packages:
catkin
roscpp
OpenCV
std_msgs
sensor_msgs
nav_msgs
geometry_msgs
message_generation (for creating and using custom messages)
usb_cam (for obtaining images from a camera connected via USB)
cv_bridge (OpenCV compatibility with ROS)
eigen_conversions (Eigen compatibility with ROS)
multimaster_fkie (for Syncing messages among the UAVs)
mkdir -p ~/catkin_ws/src
cd ~/catkin_ws
catkin config --cmake-args -DCMAKE_BUILD_TYPE=Release
catkin init # initialize your catkin workspace
cd ~/catkin_ws/src
git clone git@github.com:gajena/imav2019.git
init . ./imav2019/install/install_https.rosinstall
wstool update
If you have a workspace, then just clone and initialize the package
cd <your-workspace>/src
git clone git@github.com:gajena/imav2019.git
init . ./imav2019/install/install_https.rosinstall
wstool update
Build using either catkin build imav2019
(requires python-catkin-tools) or catkin_make
after cloning and initializing repository
This module detects the centre of a helipad by detecting the two circles around the 'H' by using the ratio of their radii and the 'H' itself.
The image is first converted to a grayscale image which is then blurred to reduce noise. Edges are then detected in the image which is morphologically opened to remove some false detections. Contours are then extracted from this.
Circle Detection: Circles are detected and the ratio of the radii of the circles are matched to the expected ratio to detect accurately the circles enclosing the 'H'.
'H' Detection: The 'H' is detected by finding the corners and the distances between them and matching them to the expected ratio.
For a more detailed description, have a look at the wiki of the repository.
(Maintain a list of references here that would be useful for documentation later.)
sudo apt install mosh