Skip to content

Maleya/pipelineproject

Repository files navigation

Pipeline tracker

The goal of the pipeline tracker was to develop a system that tracks a pipeline autonomously based on Computer Vision and can be integrated in a larger system such as autonomous underwater vehicles (AUV’s). The overarching objective is to enable an AUV to find, follow and inspect pipelines, whereof pipeline tracker represents the first phase.

Developed in Python, the present code analyses data from a multibeam echosounder, that scans the seafloor while moving forward. With usage of the OpenCV library two different methods for line detection were developed and can be selected, Hough transform (line_detect1) or PCA (line_detect2). A buffer is stabilizing the line detection and helps avoiding rapid changes of line rotations. This is according to the real-world application to pipelines, that are in most cases rectilinear and without sharp corners. The code is implemented in ROS and publishes the results of the line detection as nodes and as lines in the videos. Detailed steps can be followed directly in the code, where comments help for better understanding (see /src). The final presentation summarizes the pipeline tracker project, its methods and includes documenting photos of data as well as the resulting videos with detected lines.

The final presentation can be found here: https://docs.google.com/presentation/d/1tERIsS82jEA7BZE8sIjmZ8d3fV63z2_54cgfv__a2Oo/edit?usp=sharing

Example videos

Video 1

Video 2

Installation and usage

Installation

The pipetracker package can installed directly from git. Clone it into your desired package folder, which should be where you keep the ROS packages. For scripts with ROS, do chmod +x script.py .

in workspace dir

workspace_make
cd workspace/devel
chmod +x setup.bash
source ~/workspace/devel/setup.bash
cd ~/pipelineproject/src
chmod +x main.py

Usage

From workspace in terminal 1

roscore

From workspace in terminal 2 to visualize line detection

rviz

From ~/pipelineproject/bags in Terminal 3

rosbag play bag-1.bag
rosbag play bag-2.bag
rosbag play bag-3.bag

From ~/pipelineproject/src Terminal 4

rosrun pipelineproject main.py --method line_detect1 
rosrun pipelineproject main.py --method line_detect2 

In rviz -> Add -> By Topic -> /line_image/Image

About

Underwater pipetracking with OpenCV

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •