The ExpROVer software intents to add value to the ROV market by enabling the use an open source solution enabling an easy and intuitive user interface, available anywhere and at anytime and ready to support extensions from the open source community.
You can find more information in our website. Alternatively, you can check out this prezi presentation to get an overview of the system.
Every module of the project contains READMEs that better detail that module. This page is intended as a general overview of the system.
To replicate the work on this repository, you need to follow the installation proccess. (You can find a more thorough description on our user manual page.)
-
Make sure you have ROS installed, if not, click the following link:
-
Build all ROS catkin packages:
$ ./build.sh
- After the build is complete, the build script will output a sequence of commands that you should place in your .bashrc (or similar) file to ensure that your system can "see" the newly built components. The following is an example sequence of commands that you should place in your .bashrc file:
CATKIN_WS1_SETUP=/path/to/gt-ros-pkg/setenv.sh
if [ -f ${CATKIN_WS1_SETUP} ]; then
source ${CATKIN_WS1_SETUP}
fi
-
Verify that you are connected to the ROV and to a standard controller (ex: Dualshock, Logitech, etc.)
-
Launch the control interface
$ rosrun videoray deploy.sh
Computer Vision isn't run in real time due to the latency it would cause. It can be run on the video captured from the ROV (during operation, the video feed from the ROV is both streamed and saved to a hard drive, making this possible).
To execute fish detection in a video, run the following command:
python yolo_video.py --input <input_video_path> --output <output_path>
# OR
python yolo_video.py [OPTIONS...] --image, for image detection mode
The communication with the server is based on JSON.
The movement need a vector of three axis (movX, movY, movZ)
{
"type": "move",
"data":
{
"x": "movX",
"y": "movY",
"z": "movZ"
}
}
The rotation is made only by the vertical axis, and is given by degrees
{
"type": "rotate",
"data":
{
"rotation": "axisZ",
}
}
{
"type": "lights",
"data":
{
"active": "true/false"
}
}
You can find more information in our website.
This project is under the license of GPL-3.0. You can find more information in LICENSE.
We would like to particularly thank our mentors, professors Nuno Lau, Francisco Curado and Paulo Lopes, whose guidance and expertise made it possible for us to achieve such a functional, fine-tuned and robust final project.