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 such as Wily (Ubuntu 15.10), Xenial (Ubuntu 16.04) and Jessie (Debian 8)
C++ 11 compiler or newer.
This should take no more than 3 minutes. If you have another version of linux but Ubuntu, follow this guide: http://wiki.ros.org/kinetic/Installation. It is very important that you follow the installation guide and instructions on how to run the guide EXACTLY as stated or you will get running errors. Simply copy and paste the commands to your terminal command window
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.
-
Setup your computer to accept software from packages.ros.org:
$ sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'
-
Set up your keys:
$ sudo apt-key adv --keyserver hkp://ha.pool.sks-keyservers.net:80 --recv-key 421C365BD9FF1F717815A3895523BAEEB01FA116
-
Update:
$ sudo apt-get update
-
Installation:
$ sudo apt-get install ros-kinetic-desktop-full
-
Before you can use ROS, you will need to initialize rosdep:
$ sudo rosdep init $ rosdep update
-
Environment setup:
$ echo "source /opt/ros/kinetic/setup.bash" >> ~/.bashrc $ source ~/.bashrc
Run the shell script for install dependencies:
```bash
$ sh install-prereq.sh
or install manually the remaining 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-kinetic-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-kinetic-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-kinetic-geographic-msgs
- Install move-base-msgs. This is necessary to perform some actions:
$ sudo apt-get install ros-kinetic-move-base $ sudo apt-get install ros-kinetic-move-base-msgs
-
creating a catkin workspace:
$ mkdir -p ~/manta_ws/src $ cd ~/manta_ws/src $ catkin_init_workspace
-
building the workspace created:
$ cd ~/manta_ws/ $ catkin build
-
source the current workspace and Gazebo model:
$ echo "source manta_ws/devel/setup.bash" >> ~/.bashrc $ echo "export GAZEBO_MODEL_PATH=/home/youruser/manta_ws/src/manta_gazebo:$GAZEBO_MODEL_PATH" >> ~/.bashrc $ echo "export ROS_PACKAGE_PATH=/home/youruser/manta_ws:$ROS_PACKAGE_PATH" >> ~/.bashrc
-
close the current window.
-
Open a new window. To make sure the workspace is properly overlayed:
$ echo $ROS_PACKAGE_PATH /home/youruser/manta_ws/src:/opt/ros/kinetic/share
-
Enter the folder where you want to clone the repostory:
$ cd manta_ws/src
-
Clone the repository:
$ git clone https://github.com/vortexntnu/Manta-AUV.git $ git clone https://github.com/vortexntnu/vortex_msgs.git
Ps. You can also 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/uuv-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 vortex manta_simulator.launch
-
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'"