This repository contains the ROS packages for the AUV2024 Dreadnought Autonomous Underwater Vehicle (AUV) project. The project aims to develop a robust and capable AUV for various underwater missions.
-
Docker:
-
Contains a custom docker image file for running the entire system on Docker container
-
src:
-
mira_controller: This package handles the control and navigation systems of the AUV.
-
mira_perception: This package handles image processing and perception algorithms.
-
mira_docking: This package contains the code for the docking task.
-
visualize: This package provides visualization tools for debugging and monitoring the AUV's state and sensor data.
-
custom_msgs: This folder contains custom message definitions for communication between the ROS nodes.
Install the required packages, and dependencies
Install Joy node for controller communication
sudo apt-get install ros-noetic-joyInstall cv_bridge and image_transport packages
sudo apt-get install ros-noetic-cv-bridge ros-noetic-image-transportInstall OpenCV (preferably version 4.6)
sudo apt-get install -y libopencv-devBefore running the packages, add the following lines to your ~/.bashrc file:
export ROS_IP=192.168.2.3
export ROS_MASTER_URI=http://192.168.2.1:11311
export ROS_HOSTNAME=192.168.2.3After adding the lines, source your workspace where this repository is cloned:
source /path/to/workspace_name/devel/setup.bashThen, build the packages using catkin_make.
Before running the code, make sure you have completed the setup steps mentioned in the main README file. This includes setting the ROS environment variables and sourcing the workspace.
- Launch the Perception Node
$ roslaunch mira_perception perception.launchThis will start the perception nodes responsible for subscribing camera topics and publishes Aruco id, waypoints and pose.
- Launch the ROV Node
$ roslaunch mira_rov teleop.launchThis will launch the Remotely Operated Vehicle (ROV) node, to move the AUV using the controller using the joystick. Run this till the Aruco market is detected.
- Launch the Docking Node
$ roslaunch mira_docking dock.launchLaunch the docking node, which contains the code for the docking task, and kill the ROV node.
- Launch the Controller Node
$ roslaunch mira_controller controller.launchLaunch the controller node for the AUV to navigate autonomously.