This is an old revision of the document!
Table of Contents
Development
Suggested Improvements
While operating the system in the field, a couple items came up as improvements that could be made in the GUI:
- re-read / refresh folders when a dialog / file picker box is opened. If the flight plan or weather files were added while the system was running, opening a dialog box did not show the new files.. we had to re-load the software (or pre-position all files ahead of time) This already works. You must remember to select the right type of file from the drop down menu below the directory view
- a packet counter in the “connect” display (just update once a second) would have helped troubleshoot the applanix network connection issue
- buttons to force
- automatically move to next line segment when the plane goes through the end waypoint
- a way to force “take-off has happened” because restarting in the air, it assumed we never took off again
- the red dots seemed to stop being there around way points… line starts/stops put holes in the real time trajectory
Operating System
Kubuntu 14.04 LTS (64-bit) http://cdimage.ubuntu.com/kubuntu/releases/trusty/release/kubuntu-14.04.1-desktop-amd64.iso
- 2018.12.12 attempting with 16.04 LTS (64-bit)
- And it is trying to upgrade itself to 18.04… oh boy, this is a mistake, just get the fresh ISO
- YEP, that broke itself!
- 2018.12.12 used a fresh install of Kubuntu 18.04.1 LTS from https://kubuntu.org/getkubuntu/
- This seems to have worked
Install the ssh server
sudo apt install openssh-server
IDE
KDevelop
sudo apt-get install kdevelop
I am using version 4.6.0 (with KDE 4.13.3)
Libraries
The graphical framework is QT (http://qt-project.org/)
The mapping library is QGIS (based on QT) (http://www.qgis.org/en/site/)
While the latest version of QT is up to 5.X, I've stayed with the latest version of 4 (4.8.6) as it is compatible with QGIS. I use the Qt-based plotting library qwt (http://qwt.sourceforge.net/) to make any plots, but it is also required by QGIS so is installed during the procedure below. Development is being done with QGIS version 2.14.X as it is the latest long-term release candidate.
I followed the install procedure in the QGIS source, which installs all necessary 3rd party libraries including Qt (https://github.com/qgis/QGIS/blob/master/INSTALL):
- Update local source database
sudo apt-get update
- Install all build dependencies
sudo apt-get install bison cmake doxygen flex git graphviz grass-dev libexpat1-dev libfcgi-dev libgdal-dev libgeos-dev libgsl0-dev libopenscenegraph-dev libosgearth-dev libpq-dev libproj-dev libqca2-dev libqscintilla2-dev libqt4-dev libqt4-opengl-dev libqtwebkit-dev libqwt5-qt4-dev libspatialindex-dev libspatialite-dev libsqlite3-dev lighttpd locales pkg-config poppler-utils pyqt4-dev-tools python-all python-all-dev python-qscintilla2 python-qt4 python-qt4-dev python-qt4-sql python-sip python-sip-dev spawn-fcgi txt2tags xauth xfonts-100dpi xfonts-75dpi xfonts-base xfonts-scalable xvfb
or
sudo apt-get install Y bison Y cmake Y doxygen Y flex Y git Y graphviz Y grass-dev Y libexpat1-dev Y libfcgi-dev Y libgdal-dev Y libgeos-dev Y libgsl0-dev Y libopenscenegraph-dev Y libosgearth-dev Y libpq-dev Y libproj-dev Y libqca2-dev Y libqscintilla2-dev Y libqt4-dev Y libqt4-opengl-dev Y libqtwebkit-dev Y libqwt5-qt4-dev Y libspatialindex-dev Y libspatialite-dev Y libsqlite3-dev Y lighttpd Y locales Y pkg-config Y poppler-utils Y pyqt4-dev-tools Y python-all Y python-all-dev Y python-qscintilla2 Y python-qt4 Y python-qt4-dev Y python-qt4-sql Y python-sip Y python-sip-dev Y spawn-fcgi Y txt2tags Y xauth Y xfonts-100dpi xfonts-75dpi xfonts-base xfonts-scalable Y xvfb
- Prepare the development path. I like to create a work directory and put everything there
mkdir ~/work cd ~/work
- Clone the QGIS git repo
git clone git://github.com/qgis/QGIS.git
- Do a fetch to obtain all the remote branch information
cd QGIS git fetch
- Checkout the 2.14.X branch
git checkout release-2_14
- Qwt 6.2.1 (Plotting library update)
- Download Qwt 6.2.1 for the newest plotting features. The Ubuntu repository currently has version 6.0.0.
cd ~/work svn checkout http://svn.code.sf.net/p/qwt/code/tags/qwt-6.1.2 qwt-6.1.2 cd ~/work/qwt-6.1.2
- Navigate to the qwt-6.2.1 folder and and open qwtconfig.pri. Prepend a # to the line QWT_CONFIG += QwtDesigner
- Make the library and install it
qmake make sudo make install
- Library should install to path /usr/local/qwt-6.1.2/
- Install CMake
sudo apt-get install cmake-curses-gui
- Create a dedicated build directory in the QGIS folder and run cmake
cd ~/work/QGIS mkdir build-master cd build-master ccmake ..
Change the Qwt include and library paths to point to where version 6.1.2 is installed, otherwise it will use whatever version was installed from the Ubuntu repository (6.0.0 as of 4/27/2015)
There is an optional dependency on QwtPolar which we don't need. To remove this (after launching the cmake gui) find QWTPOLAR_INCLUDE_DIR and QWTPOLAR_LIBRARY and delete the path. Change the variable WITH_QWTPOLAR to OFF. Proceed with configuring. (see below for test configuration as of 2016.06.16 on Advantech ARK-1550, settings changed)
Parameter | Value |
---|---|
QWTPOLAR_INCLUDE_DIR | |
QWTPOLAR_LIBRARY | |
QWT_INCLUDE_DIR | /usr/local/qwt-6.1.2-svn/include |
QWT_LIBRARY | /usr/local/qwt-6.1.2-svn/lib/libqwt.so |
WITH_QWTPOLAR | OFF |
- Make and install (-j4 means four jobs at a time)
make -j4 sudo make install
- Download the latest Eigen template library from http://eigen.tuxfamily.org/ . Copy the Eigen folder to /usr/local/include/eigen3. There is nothing to build.
cd ~/Downloads wget http://bitbucket.org/eigen/eigen/get/3.2.8.tar.bz2 cd ~/work tar -jxvf ~/Downloads/3.2.8.tar.bz2 sudo mkdir /usr/local/include/eigen3 sudo rsync -a ~/work/eigen-eigen-07105f7124f9/Eigen/ /usr/local/include/eigen3/Eigen/
- Download libkml-1.3.0 from https://github.com/libkml/libkml/releases and follow the directions for installation.
- Download, compile and install
cd ~/Downloads wget https://github.com/libkml/libkml/archive/1.3.0.tar.gz cd ~/work tar xvf ~/Downloads/1.3.0.tar.gz cd ~/work/libkml-1.3.0 mkdir build; cd build cmake ~/work/libkml-1.3.0/src/ make sudo make install
- Checkout the LVIS Facility GUI repository and open the project file (LVISCommander.kdev4) with KDevelop. You may have to change absolutes paths in the CMakeLists.txt file.
mkdir ~/work/lvisf-gui cd ~/work # svn co svn+ssh://gs694-lvisdev.gsfc.nasa.gov/srv/svn/lvisf-gui # since our Yancich IT Security incident hehe, we have to use the local IP svn co svn+ssh://10.4.1.1/srv/svn/lvisf-gui
</code>
Symlink to QGIS
Create a symlink in the following location to the QGIS install directory Change lvis:lvis and the symlink path to the unique user/setup on your machine
cd /opt sudo mkdir lvisfgui sudo chown -R lvis:lvis lvisfgui cd lvisfgui/ ln -s /home/lvis/work/QGIS