APSync

APSync is a project sponsored by eLab which simplifies the setup of companion computers so that they can be used to provide additional functionality to ArduPilot and also to ease integration with internet services.

The current release automatically creates a Wifi Access Point on startup, allows DataFlash logging to the companion copmuter and “simple” real-time video streaming from a camera on the drone to the ground station.

The supported companion computers are the RPi3, NVidia TX1 and Intel Edison.

Note

Video streaming from the Intel Edison is not supported (yet).

Installation instructions are at the bottom of this page.

Warning

The APSync project is still in beta. Only the first stage (Wifi Access Point & DataFlash logging) is complete. Please get involved by reporting issues in the ArduPilot Forums. Deveopers can help improve APSync by submitting PRs to ArduPilot/companion and/or discuss with others developers in Gitter’s ArduPilot/companion chat room!

Wifi Access Point & DataFlash logging

../_images/apsync-wifiap-dflogger.png

On start-up an access point is created with name “ardupilot”. The password is “ardupilot” on TX1 and RPi, “enRouteArduPilot” on the Intel Edison.

The user can connect to this access point and then easily connect to ardupilot running on the flight controller by setting their ground station (including Mission Planner) to connect using “UDP”, port 14550.

Dataflash logs are streamed to the companion computer via mavlink and stored on the companion computer’s filesystem (as well as on the pixhawk’s dataflash). Dataflash log files can then be quickly downloaded (over wifi) using a script (Windows users may use apsync-download-logs) or you may pull the SD card out of the companion computer.

Data Syncronisation with Web server or Corporate server

../_images/apsync-wifiap-datasync.png

The contents of a configurable list of directories will be automatically uploaded to a configurable web server address.

This should allow the pilot to simply bring the vehicle back in range of a trusted wifi access point, reboot the vehicle and have it automatically connect and upload all datafiles including logs, pictures, videos.

Warning

The APSync project is still in beta. This Data Syncronisation portion is not implemented (yet).

Simple Configuration Web page

../_images/apsync-configurator.png

A light weight webserver runs on the companion computer (using CherryPy). The user can connect to the drone using a known URL (http://10.0.1.128:8000) and change configuration information including:

  • wifi access point name and password
  • list of trusted wifi access points
  • list of log file directories and web server url (i.e. upload target)

Warning

The APSync project is still in beta. This Simple Configuration portion is only partially implemented and currently only allows starting and stopping the simple video stream.

Flexible Video

../_images/apsync-flexible-video.png

A video manager will run on the companion computer that informs the ground station of which video streams are available. The live video is streamed from the vehicle to the ground station using UDP to a port specified by the ground station. This allows more reliable and flexible streaming as the ground station can discover valid formats and control where the stream is sent.

Warning

The APSync project is still in beta. This Flexible Video portion is not implemented yet. Currently a single video stream is sent to the IP address of the first ground station that requests telemetry data.

Installing APSync

Images for the supported boards can be found in firmware.ardupilot.org.

Please follow the instructions for installing these images on the wiki page for each board (RPi3, NVidia TX1 and Intel Edison).

The flight controller (i.e. Pixhawk or similar) should be configured to communicate with the companion computer by setting the following parameters and then reboot the board:

Connecting with SSH

You can connect to the companion computer with a terminal emulator such as Putty by connecting to the board’s wifi access point and then ssh to 10.0.1.128 username: apsync, password: apsync