oyssolbo / Vortex-AUV

Manta v1 AUV software. Purpose built for competing in the International RoboSub competition in San Diego 2021.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

GitHub stars GitHub watchers GitHub forks

Manta AUV software - Vortex NTNU

Website shields.io version ViewCount GitHub contributors Maintenance GitHub pull-requests GitHub pull-requests closed License: MIT

MANTA

Documentation

A Master's thesis explaining the project and features of the Manta software is found in the docs folder: https://github.com/vortexntnu/manta-auv/blob/master/docs/master_thesis_manta_v1_kristoffer_solberg_compressed.pdf

Prerequisites

Linux distributions Bionic (Ubuntu 18.04)
C++ 11 compiler or newer.

1. Install ROS melodic for Ubuntu (If you do not have it already)

Follow the official guide at http://wiki.ros.org/melodic/Installation/Ubuntu

Robot operating system (ROS) provides services designed for heterogeneous computer cluster such as hardware abstraction, low-level device control, implementation of commonly used functionality, message-passing between processes, and package management. The main ROS client libraries (C++, Python, and Lisp) are geared toward a Unix-like system, primarily because of their dependence on large collections of open-source software dependencies.

2. Install the necessary dependencies to interface with drivers, Gazebo etc.


Quick command for installing all dependencies:

sudo apt install protobuf-compiler ros-melodic-rosbridge-server ros-melodic-message-to-tf ros-melodic-geographic-msgs ros-melodic-move-base ros-melodic-move-base-msgs 

Explainations for the dependencies:

  1. Install the protobuf library, which is used as interface to Gazebo.:
     sudo apt-get install protobuf-compiler
    
  2. Install rosbridge-server to interface with sensor and actuator drivers on the physical Manta.
     sudo apt-get install ros-melodic-rosbridge-server
    
  3. Install tf. tf is a package that lets the user keep track of multiple coordinate frames over time:
     sudo apt-get install ros-melodic-message-to-tf
    
  4. Install tf. tf is a package that lets the user keep track of multiple coordinate frames over time:
     sudo apt-get install ros-melodic-geographic-msgs
    
  5. Install move-base-msgs. This is necessary to perform some actions:
     sudo apt-get install ros-melodic-move-base
     sudo apt-get install ros-melodic-move-base-msgs 
    
    

3. Create a ROS workspace


  1. creating a catkin workspace:

    mkdir -p ~/manta_ws/src
    cd ~/manta_ws
    catkin_init_workspace
  2. building the workspace created:

    cd ~/manta_ws/
    catkin build

    Note: if you get the error message "catkin: command not found", run the following command:

    sudo apt-get install python-catkin-tools
  3. source the current workspace:

    echo "source manta_ws/devel/setup.bash" >> ~/.bashrc
  4. close the current terminal.

4. Download and build Vortex AUV


  1. Enter the folder where you want to clone the repostory:

     cd manta_ws/src
  2. Clone the repository:

      git clone https://github.com/vortexntnu/Vortex-AUV.git
      git clone https://github.com/vortexntnu/vortex_msgs.git

Ps. Can also be manually download the zip-folder in the up-right corner and extract the file
inside the src-folder of you workspace

  1. Compile the code by running "catkin build" inside the workspace:
     cd ~/manta_ws/
     catkin build vortex_msgs
     catkin build
    

5. Download and build the customized UUV simulator


MANTA

Figure by: Kristoffer Rakstad Solberg

  1. Enter the folder where you want to clone the repostory:

     cd manta_ws/src
  2. Clone the repository:

     git clone https://github.com/vortexntnu/Vortex-Simulator.git
  3. Clone the repository. WARNING: HIGH CPU LOAD, you might want to build packages separately the first time:

     catkin build

6. Run Manta V1 in Simulation with Gazebo, Smach viewer, Camera pop-up windows etc


  1. Run your simulation world. This will upload Manta (w/ sensor, camera, thrusters etc) and launch robot localization as well. i.e :

     roslaunch simulator_launch cybernetics_pool.launch
  2. Launch all modules required for operating Manta:

     roslaunch auv_setup auv.launch type:=simulator
  3. Execute your state machine of choice. i.e:

     roslaunch finite_state_machine simtest.launch

7. Alternative: Run Manta V1 in Linux minimal on your drone without Gazebo, Smach viewer, Camera pop-up windows etc

MANTA

Figure by: Kristoffer Rakstad Solberg

  1. The main computer for Manta AUV is a ODROID. Find the IP-address of the ODROID:
     nmap 10.42.0.1/24
  2. SSH into the ODROID:
     ssh root@10.42.*INSERT*
  3. Specify your static transforms and initial states in robot_localization/launch and robot_localization/params

MANTA

Figure by: Kristoffer Rakstad Solberg

  1. Run the robot localization for extended Kalman Filter for Aided Inertial Navigation:
     roslaunch robot_localization ekf_novembertest.launch
  2. ARM the thrusters (system specific). For the Manta AUV it will be:
     rostopic pub /mcu_arm std_msgs/String "data: 'arm'"
  3. Run your state machine of choice. This will activate all modules in Manta V1 architecture. i.e:
     roslaunch finite_state_machine odroid_sm
  4. DISARM the thrusters (system specific). For the Manta AUV it will be:
     rostopic pub /mcu_arm std_msgs/String "data: 'ben'"

About

Manta v1 AUV software. Purpose built for competing in the International RoboSub competition in San Diego 2021.

License:MIT License


Languages

Language:C++ 68.5%Language:Python 15.2%Language:CMake 13.6%Language:C 1.7%Language:Makefile 1.0%Language:Shell 0.1%Language:HTML 0.1%