Join GitHub today
GitHub is home to over 28 million developers working together to host and review code, manage projects, and build software together.Sign up
90 (References) OS user Installation
Intel is shipping Intel Aero (RTF Drone and Compute Board) with Yocto linux preinstalled and you should download and flash the updated version of this image (details here) to update the hardware when you receive it. This Yocto build is preconfigured and highly customized for Intel Aero.
In parallel to this Intel supported Yocto image, full native Ubuntu* with Intel drivers are now verified by Intel (as user installation). Intel is providing documentation and packages to let you install Ubuntu yourself, manually. We do NOT provide a prepackaged and customized version of Ubuntu. Compared to Yocto, Ubuntu can be interesting for rapid prototyping and software development.
Yocto for a Ready-To-Fly experience or Ubuntu for prototyping and development, you have the choice.
Video recording of the install procedure described in this page: Video: Autonomous Drone Engineer Course - Module C3 - Installing Ubuntu
To keep it simple, please upgrade to the latest version of Yocto and flash the BIOS, FPGA, Flight Controller. Check everything works, then install Ubuntu. It will replace Yocto and keep the BIOS, FPGA and Flight Controller.
- Download Ubuntu 16.04.3 x64 Desktop. Note: do not try a more recent version of Ubuntu.
- Create a bootable disk (refer to the Ubuntu documentation)
- Plug Intel Aero to the wall power supply, the USB-OTG adapter, bootable USB key, hub, keyboard and mouse. Power on
- Type ESC to enter the BIOS
- Select boot manager, select your USB key and press Enter
- Install Ubuntu as you would on a computer
- In terms of options, my preferences are:
- I went with a full disk install (erase Yocto and use all space for Ubuntu)
- I do not install third party proprietary software (flash, mp3)
- I choose to have my session opening automatically (it has networking consequences).
- Connect Intel Aero to the network with internet access (using Ubuntu's network manager)
- Open a terminal
- Add the Intel Aero repository (and key) to your sources:
echo 'deb https://download.01.org/aero/deb xenial main' | sudo tee /etc/apt/sources.list.d/intel-aero.list wget -qO - https://download.01.org/aero/deb/intel-aero-deb.key | sudo apt-key add - sudo apt-get update sudo apt-get upgrade sudo apt-get -y install gstreamer-1.0 libgstreamer-plugins-base1.0-dev libgstrtspserver-1.0-dev gstreamer1.0-vaapi gstreamer1.0-plugins-base gstreamer1.0-plugins-good gstreamer1.0-plugins-bad gstreamer1.0-libav ffmpeg v4l-utils python-pip sudo pip install pymavlink sudo apt-get -y install aero-system sudo reboot
QGroundControl is required to calibrate the Flight Controller and useful to pilot the drone.
When you're using Yocto, the drone is a DHCP server (and WiFi hotspot). So the drone knows the IP of your laptop and is able to send the MAVLink telemetry feed to the right IP. But if you're using Ubuntu, you are probably connected to the same network with variable IPs. Get your laptop IP and run on Aero:
sudo mkdir /etc/mavlink-router/config.d
- create this file:
sudo gedit /etc/mavlink-router/config.d/qgc.confand fill it with:
[UdpEndpoint wifi] Mode = Normal Address = 192.168.1.147
(my laptop IP is 192.168.1.147 but your IP will be different)
- restart the router:
sudo systemctl restart mavlink-router
- launch QGroundControl on your laptop. It should receive automatically the telemetry feed from the drone.
- Follow the setup procedure to calibrate your Flight Controller, unless you've done it already.
will return BIOS, FPGA and OS information, but not yet the Flight Controller version. We'll update the tool very soon. Airmap is not installed yet, so version not reported is expected.
To flash the BIOS that's part of the Aero repo, type
sudo aero-bios-update sudo reboot
OR to flash the latest BIOS release from the Intel Download Center [Link], download the RPM and extract it.
rpm2cpio aero-bios-01.00.16-r1.corei7_64.rpm | cpio -idmv sudo mv BIOSUPDATE.fv /boot sudo reboot
Similar to Yocto:
sudo jam -aprogram /etc/fpga/aero-rtf.jam (
aero-rtf.jam if you are using the RTF drone,
aero-compute-board.jam if you are using the board only).
That's valid only for the Ready To Fly drone.
cd /etc/aerofc/px4/ sudo aerofc-update.sh nuttx-aerofc-v1-default.px4
For more details, refer to the main setup page.
Different hardware sensors:
- If you have the Intel Aero Ready To Fly Drone, you have Intel RealSense R200 Camera included.
- If you buy a third party RealSense Camera, you may have a newer model such as D435 and the special Intel USB3-OTG cable.
Different libraries: The R200 requires the
legacy branch of the SDK, and D435 the main branch.
Different kernel drivers: the kernel driver for Intel RealSense R200 is already included in the Intel Aero repository. Nothing else to do. Do NOT try to install the module from the SDK or with snap.
Intel RealSense SDK - legacy (for R200)
cd sudo apt-get -y install git libusb-1.0-0-dev pkg-config libgtk-3-dev libglfw3-dev cmake git clone -b legacy --single-branch https://github.com/IntelRealSense/librealsense.git cd librealsense mkdir build && cd build cmake ../ -DBUILD_EXAMPLES=true -DBUILD_GRAPHICAL_EXAMPLES=true make sudo make install
Intel RealSense SDK - main branch (for D435)
cd sudo apt-get -y install git libusb-1.0-0-dev pkg-config libgtk-3-dev libglfw3-dev cmake git clone https://github.com/IntelRealSense/librealsense.git cd librealsense mkdir build && cd build cmake ../ -DBUILD_EXAMPLES=true -DBUILD_GRAPHICAL_EXAMPLES=true make sudo make install
Note: For D435, you will need the special Intel USB3-OTG cable. No other USB3-OTG cable will work.
Camera streaming daemon gets installed with
To verify, check:
systemctl status csd
You should see something like:
csd.service - Camera Streaming Daemon Loaded: loaded (/lib/systemd/system/csd.service; disabled; vendor preset: enabled) Active: active (running) since Wed 2017-11-08 17:28:00 PST; 6min ago Main PID: 14616 (csd) CGroup: /system.slice/csd.service └─14616 /usr/bin/csd Nov 08 17:28:00 frelon systemd: Started Camera Streaming Daemon. Nov 08 17:28:00 frelon csd: Could not open conf file '/etc/csd/main.conf' (No such file or directory) Nov 08 17:28:01 frelon csd: Failed to connect to Mir: Failed to connect to server socket: No such file or directory Nov 08 17:28:01 frelon csd: Unable to init server: Could not connect: Connection refused Nov 08 17:28:01 frelon csd: (gst-plugin-scanner:14618): Clutter-CRITICAL **: Unable to initialize Clutter: Could not initialize Nov 08 17:28:01 frelon csd: (gst-plugin-scanner:14618): Clutter-Gst-CRITICAL **: Unable to initialize Clutter Nov 08 17:28:02 frelon csd: AVAHI START
We have started CSD without configuring it manually: it will find the video devices automatically and propose feeds. As a test, use VLC on your computer and open the video2 feed
rtsp://192.168.1.4:8554/video13. On my network, Intel Aero has IP 192.168.1.4 but yours will be different of course (type
ifconfig wlp1s0 to see your IP).
For more understanding, visit https://github.com/01org/camera-streaming-daemon
Optical flow requires you buy and plug a vertical range meter, like a vertical laser. For more details, visit: https://github.com/intel-aero/aero-optical-flow.
Optical Flow also requires a software running on linux. This package gets installed with
aero-system. Optical flow service is disabled by default, enable using:
systemctl enable aero-optical-flow systemctl start aero-optical-flow
Note: do NOT enable the service if you have not installed the vertical range finder (laser).
systemctl status aero-optical-flow
The output would look like:
aero-optical-flow.service - Aero optical flow Loaded: loaded (/lib/systemd/system/aero-optical-flow.service; enabled; vendor preset: enabled) Active: active (running) since Wed 2018-01-03 11:32:35 IST; 1s ago Main PID: 2629 (aero-optical-fl) CGroup: /system.slice/aero-optical-flow.service └─2629 /usr/bin/aero-optical-flow Jan 03 11:32:35 aero-CherryTrail systemd: Started Aero optical flow.
Check the kernel version with
uname -a, you should see:
Linux frelon 4.4.76-aero-1.2 #1 SMP PREEMPT Mon Nov 6 19:42:57 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux
It should have aero in the kernel name.
Number of video devices
To check if the camera drivers are correctly installed, list the video devices with
You should see a list like
/dev/video0 /dev/video1 /dev/video2 ... up to 13. If less than 13, it's a problem (If you see only 3 video devices, it means you booted the wrong kernel).
The order of devices is also important. Check the details with
sudo v4l2-ctl --list-devices
You should see a long listing, including:
Intel RealSense 3D Camera R200 (usb-0000:00:14.0-4): /dev/video11 /dev/video12 /dev/video13
R200 should have the devices 11, 12, 13.
Check if the system is listening for MAVLink messages on port 5760 thanks to MAVLink router (for the Ready To Fly Drone only):
netstat -l|grep 5760
you should see:
tcp 0 0 *:5760 *:* LISTEN
If not, it's a problem. (You may have booted the wrong kernel, or something else is wrong)
cpp-enumerate-devices to see if your camera is detected. On the Ready To Fly Drone, you should see:
Device 0 - Intel RealSense R200: Serial number: 2481009843 Firmware version: 1.0.71.06 USB Port ID: 2-4 Camera info: DEVICE_NAME : Intel RealSense R200 DEVICE_SERIAL_NUMBER: 2481009843 CAMERA_FIRMWARE_VERSION: 1.0.71.06 CAMERA_TYPE : PRQ-Ready OEM_ID : OEM None ISP_FW_VERSION : 0x0 CONTENT_VERSION : 12 MODULE_VERSION : 22.214.171.124 IMAGER_MODEL_NUMBER : 31 CALIBRATION_DATE : 2014-07-04 08:18:35 UTC EMITTER_TYPE : Laser Driver 3 FOCUS_VALUE : 0 LENS_TYPE : Newmax 58.9 x 45.9 degs in VGA 3RD_LENS_TYPE : Newmax 71.7 x 44.2 degs in 1080p LENS_COATING__TYPE : Visible-light block / IR pass 43 nm width 3RD_LENS_COATING_TYPE: IR coating NOMINAL_BASELINE : 70 mm 3RD_NOMINAL_BASELINE: 58 mm Supported options: min max step default COLOR_BACKLIGHT_COMPENSATION : 0 ... 4 1 1 COLOR_BRIGHTNESS : 0 ... 255 1 56 ...
To see the output of a camera, use the SDK tools. Examples:
cpp-capture(graphical). You should something like:
Check the port 8554 is listening with
netstat -l|grep 8554. You should see:
tcp 0 0 *:8554 *:* LISTEN
You now have a working Ubuntu setup working on Intel Aero. If you want to start coding, check the Autonomous Drone Programming with Python page.