GzUav 0.2

Release Notes

Pre-release warning!

The GzUav 0.2 release has not been finalised yet. Information in this page, including .deb/.zip files, may change without notice.

Changelog

This release mainly rearranges installed files in order to comply with the FHS. It also features a debian/ subfolder with metadata needed to build the project as an Ubuntu package and experimental camera with gimbal support.

Installation

If you are an Ubuntu user you will probably want to follow the instructions in the first subsection (Ubuntu 18.04 LTS .deb precompiled package). Advanced Ubuntu users, or those who use a different Linux distribution, can build GzUav from source as described in the second subsection.

Ubuntu 18.04 LTS .deb precompiled package (amd64)

Please install Gazebo 9 along with GzUav. For the convenience of the reader, the following instructions also include the Gazebo installation command, which can be skipped if already installed:

# Step 1: Install Gazebo
curl -sSL http://get.gazebosim.org | sh

# Step 2: Download the GzUav package
wget https://gzuav.dmi.unict.it/archive/gzuav-0.2-amd64.deb

# Step 3: Install it
sudo apt install ./gzuav-0.2-amd64.deb

Alternative method: Source code .zip file

It is assumed that Gazebo (and, in particular, its libgazebo9-dev package) is already installed. Please note that some commands may seem to freeze while they are actually downloading subprojects (such as ArduPilot and Ns-3).

# Step 1: Prerequisites other than Gazebo
sudo apt install build-essential cmake git python-future libgsl-dev

# Step 2: Download the GzUav source code
wget https://gzuav.dmi.unict.it/archive/gzuav-0.2.zip

# Step 3: Extract it
unzip gzuav-0.2.zip
cd gzuav-0.2

# Step 4: Build the GzUav core components
mkdir build
cd build
cmake .. -DCMAKE_INSTALL_PREFIX=../install
make
make install

# Step 5: Download and build Ns-3 from source (including the GzUav-provided external-sync module)
sudo apt install mercurial
cd ../ns-3
./setup-environment.sh
cd ns-3-allinone
./build.py --enable-examples -- --build-profile=release

Note: Unlike the .deb precompiled package method, the installation method described above requires adding install/bin and ns-3/ns-3-allinone/ns-3-dev/build/src/external-sync/examples to your PATH environment variable, as well as setting LD_LIBRARY_PATH to the ns-3/ns-3-allinone/ns-3-dev/build/lib directory. The following section describes this process in detail.

Using GzUav if it was compiled from source code .zip file

Assuming that you extracted gzuav-0.2.zip in the /home/john/gzuav-0.2 directory, you will have to run the following commands every time you open a terminal in which GzUav is to be used:

export PATH=/home/john/gzuav-0.2/install/bin:/home/john/gzuav-0.2/ns-3/ns-3-allinone/ns-3-dev/build/src/external-sync/examples:$PATH
export LD_LIBRARY_PATH=/home/john/gzuav-0.2/ns-3/ns-3-allinone/ns-3-dev/build/lib

Tips:

  1. When you run such commands, please double-check that they are spelled correctly and the paths are valid.
  2. After running the export commands, you can run which gzuavserver and which ns3-dev-external-sync-wifi to verify that the PATH was set correctly; in both cases, the full path to each executable should be printed in response. If, instead, you get no output or an error similar to which: no xxx in zzz, then the PATH environment variable is set incorrectly.
  3. You can also run ns3-dev-external-sync-wifi (without additional arguments) and verify that no error while loading shared libraries appears in the output. If it does, then the LD_LIBRARY_PATH environment variable is set incorrectly. If, instead, you see a few lines ending with a Cannot connect to the Simulation Controller error, then you are ready to run your first simulation!

Running your first simulation

A set of tutorials is available at the GzUav website.