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
Linux distributions Bionic (Ubuntu 18.04)
C++ 11 compiler or newer.
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.
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:
- Install the protobuf library, which is used as interface to Gazebo.:
sudo apt-get install protobuf-compiler
- Install rosbridge-server to interface with sensor and actuator drivers on the physical Manta.
sudo apt-get install ros-melodic-rosbridge-server
- 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
- 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
- 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
-
creating a catkin workspace:
mkdir -p ~/manta_ws/src cd ~/manta_ws catkin_init_workspace
-
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
-
source the current workspace:
echo "source manta_ws/devel/setup.bash" >> ~/.bashrc
-
close the current terminal.
-
Enter the folder where you want to clone the repostory:
cd manta_ws/src
-
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
- Compile the code by running "catkin build" inside the workspace:
cd ~/manta_ws/ catkin build vortex_msgs catkin build
Figure by: Kristoffer Rakstad Solberg
-
Enter the folder where you want to clone the repostory:
cd manta_ws/src
-
Clone the repository:
git clone https://github.com/vortexntnu/Vortex-Simulator.git
-
Clone the repository. WARNING: HIGH CPU LOAD, you might want to build packages separately the first time:
catkin build
-
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
-
Launch all modules required for operating Manta:
roslaunch auv_setup auv.launch type:=simulator
-
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
Figure by: Kristoffer Rakstad Solberg
- The main computer for Manta AUV is a ODROID. Find the IP-address of the ODROID:
nmap 10.42.0.1/24
- SSH into the ODROID:
ssh root@10.42.*INSERT*
- Specify your static transforms and initial states in robot_localization/launch and robot_localization/params
Figure by: Kristoffer Rakstad Solberg
- Run the robot localization for extended Kalman Filter for Aided Inertial Navigation:
roslaunch robot_localization ekf_novembertest.launch
- ARM the thrusters (system specific). For the Manta AUV it will be:
rostopic pub /mcu_arm std_msgs/String "data: 'arm'"
- Run your state machine of choice. This will activate all modules in Manta V1 architecture. i.e:
roslaunch finite_state_machine odroid_sm
- DISARM the thrusters (system specific). For the Manta AUV it will be:
rostopic pub /mcu_arm std_msgs/String "data: 'ben'"