ubc-subbots / triton

ROS2 system for the Triton AUV
11 stars 2 forks source link

Implement Gate Detection Algorithm in C++ and Integrate into ROS2 #3

Open loganfillo opened 3 years ago

loganfillo commented 3 years ago

We need to implement the gate detection algorithm from this repo into C++ and then into our ROS2 system. We have designed the algorithm in python but we require it to be in C++ for better performance and to better integrate with ROS2. Since the algorithm primarily uses OpenCV functions, it should be relatively straightforward to implement most parts as OpenCV is implemented in both python and C++. The implementation of the algorithm should be integrated into the ROS2 system as a series of one or more component nodes (depending on how much code is needed for each step of the algorithm, we might want each step to be its own node). These component nodes should be able to be launched in the pipeline.

Resources OpenCV Tutorials Python implementation repo Creating a Library in ROS2

Tasks

loganfillo commented 3 years ago

Copying over from teams: "Basically, in the underwater-object-detection repo, we have designed the gate detection algorithm and have tested it on a small data set of images and videos. What we need to is implement it as a ROS2 package in our triton repo. We want to implement it in C++ as python has poor performance with cv algorithms especially if we want them to be executed as fast as possible in our vision system. You can start looking more into how the gate detection algorithm works and get a good idea of it's overall architecture. Check out the method 'detect' in the 'gate_detector.py' class and try to follow along with it as much as you can. You can skip the first two lines as that functionality won't be needed in the ROS2 implementation so start from the line where the variable 'seg' is defined. I will have a project ticket next week about this with more specific details but you can get a head start on learning about the algorithm if you have the time."