Compile and run qgroundcontrol for Linux Ubuntu .
Perquisites:
Open a terminal and check the followings:
# ubuntu version
cat /etc/lsb-release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=13.04
DISTRIB_CODENAME=raring
DISTRIB_DESCRIPTION="Ubuntu 13.04"
# compiler (gcc and g++) versions (should be 4.7.X or greater)
g++ --version
g++ (Ubuntu/Linaro 4.7.3-1ubuntu1) 4.7.3
gcc --version
gcc (Ubuntu/Linaro 4.7.3-1ubuntu1) 4.7.3
#install following packages (qt,regex,sdl,osg,osgearth,osg phonon...I hope they are all)
sudo apt-get update
sudo apt-get install build-essential
sudo apt-get install libopenscenegraph-dev
sudo apt-get install regexxer
sudo apt-get install libsdl1.2-dev
sudo apt-get install flite-dev
sudo apt-get install libosgViewer
sudo apt-get install libosgearth-dev
sudo apt-get install libphonon(4) # try with 4 or without
sudo apt-get install phonon-backend-gstreamer
sudo apt-get install qt4-default
sudo apt-get install libqt4-dev (optional)
#(I don't know if this is mandatory, I just have it in history)
sudo apt-get install libglade2.0-cil-dev
sudo apt-get install git
Repos:
# get the sources for mavlink from git, and build it
git clone https://github.com/mavlink/mavlink
cd mavlink
mkdir build
cd build
cmake .. #<----------------------------correction from qmake ..
make configure
make
sudo make install
# if you get any errors (repo changes always), in building mavlink crap,
just forget it and, https://github.com/downloads/mavlink/mavlink/mavlink-1.0.9.deb
and install it with package manager. Right click, open with 'package|system|* whatever installer'
then continue with the procedure...
#get the sources for qgroundcontrol, and build ir
git clone git://github.com/mavlink/qgroundcontrol.git
cd qgroundcontrol
git clone http://github.com/LorenzMeier/qupgrade/
qmake qgroundcontrol.pro
make
# If you get linker errors as: Geometry::set*Array and View::checkErrors type of..
#apply the attached patch. PATCH.TXT obsolette
#apply this patch: patch2.txt
# fixes for linkage errors and FlightModes current PWM value
#Read here how to apply a patch file to a tree (Linux): howto-patch
#then continue
make clean && make
# it should build without errors
# copy the qml/ resources folder where the qgroundcontrol binary was made
cp -r qml /release
cd release
# start qground control application
./qgroundcontol
#select APM. Now let's connect the USB cable from PC to the 3DR arducopter 2.5/6
#open another terminal, and clean the kernel message log
sudo dmesg -c # clean the log
# insert the usb cable from the PC to the APM 2.5(6). (for telemetry connection radio 3DR scroll a bit down)
sudo dmesg -c # check (visually in the output) the device tty* which was installed... ttyACM0
[30856.087388] usb 3-2: new full-speed USB device number 3 using xhci_hcd
[30856.160058] usb 3-2: New USB device found, idVendor=2341, idProduct=0010
[30856.160066] usb 3-2: New USB device strings: Mfr=1, Product=2, SerialNumber=220
[30856.160072] usb 3-2: Product: Arduino Mega 2560
[30856.160076] usb 3-2: Manufacturer: Arduino (www.arduino.cc)
[30856.160081] usb 3-2: SerialNumber: 64036363039351715080
[30856.160398] usb 3-2: ep 0x82 - rounding interval to 1024 microframes, ep desc says 2040 microframes
[30856.162093] cdc_acm 3-2:1.0: ttyACM0: USB ACM device
Go on the right top corner of the QGrouncControl and select ttyACM0 and the speed 115200
Click: Connect.
Using 3DR Telemetry Radio module 915 MHz
The mavlink build manually, above did not do it's magic, so on top of it, I installed the Debian binary package.
Download @ https://github.com/mavlink/mavlink/downloads the: mavlink-1.0.9.deb
in to your ~/Downloads folder. Open a file browser, right-click it and Open it
with Ubuntu Software Centre (or Debian installer). Install. Ignore all the messages
about the stability of the package. After install it might say INSTALL again. Just exit the
Installer, if you have seen the progress bar going to the end.
Close the connection to APM. Unplug the USB.Close the qgroundcontrol application.
Power the APM from a USB power or from the battery (don't forget the safety procedures).
Make sure the radio (s) TX/RX are plugged, RX on APM, ant TX on the USB.
Look here for details: http://code.google.com/p/ardupilot-mega/wiki/3DRadio
Check the dmesg when you plug the USB radio module. On my computer it assigns it to ttyUSB0 device.
Start qgroundcontrol. Change the device by clicking on the [ttyACM0] (previous your device) square
(right-top corner) to ttyUSB0 (new dmesg detected device), and Bit rate to 57600. Press CONNECT.
#The patch has been updated to add current PWM feature to flight modes page: (Nov/23/2013)
-re-edited on Nov 22 (added the radio 3DR mavlink guideline)
-re-edited on Nov 23 (added current PWM on flight modes page to tune up the PWM's)
Ubuntu 14-04 86_64 x86_64 GNU/Linux
Qgc source code is the same as the one in Ubuntu 13.XX.
required packages for compiling.
sudo apt-get install libsdl-dev
sudo apt-get install phonon-backend-gstreamer
sudo apt-get install libphonon4qt5-dev
sudo apt-get install flite-dev
sudo apt-get install libprotoc-dev libosgearth-dev
qmake ./qgroundcontrol.pro
make
Comments
On:
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=14.04
DISTRIB_CODENAME=trusty
DISTRIB_DESCRIPTION="Ubuntu 14.04.1 LTS"
just
sudo apt-get install apmplanner2
Don't bother doing this on 12.04
Which steps are not clear enough? I can expand if you are more specific.
I am running Lubuntu 13.10 how can i install this i am very new to Linux systems
Thanks!
Tank you,
Hi, ($find -L ./ -type l -> Bump... no links) I wrote the guide, going back on
my history, greping mavlink and qgroundcontrol.
I tried to reconstruct as accurate, but you know, is Linux and things are Linux-like.
It might be a command I use while while I was trying things here and there from different
repositories. t looks like that ln is not required with the repositories specified in the guidline.
I'll fix it, Thank you..
Hi,
thank you Marius for the instructions and the patch :). I'm running Ubuntu 13.04 and followed the instructions. At the step
ln -s mavlink/pymavlink/generator/C/include_v0.9/mavlink_conversions.h mavlink/pymavlink/generator/C/include_v0.1/mavlink_conversions.h
I stuck as I get
Lenovo:~/Downloads/MP/mavlink$ ln -s mavlink/pymavlink/generator/C/include_v0.9/mavlink_conversions.h mavlink/pymavlink/generator/C/include_v0.1/mavlink_conversions.h
ln: failed to create symbolic link ‘mavlink/pymavlink/generator/C/include_v0.1/mavlink_conversions.h’: No such file or directory
and yes there is no mavlink_conversions.h in /include_v0.9.
as I'm still very noob to Linux I don't know what to do. any help is highly appreciated
thanks
Dieter
The 'toUpper()', is not my code, but I'll fix it slowly...
Hi,
As ususal in Linus everytinh is approximative....
In the working folder, where you run the ./qgroundcotrol copy the qml folder
cp -r ./qml ./release/
cp -r ./qml build-release/
..ohh, I have not seen the question. I use APM, bu the splashscreen menu has these options.
Hi,I'll keep an eye on the build from time to time. If I have updates I'll post them here. I am not a maintainer of qgroundcontrol. It seems that the project is not built on Linux at all because the unsolved externals (set*Array) from openScene libraries are not part of linux distro.
find -name 'libosg*' | xargs readelf -s | grep 'set*Array' yields noting