On-Board Software

Hi folks,

In this update, I'm going to talk about the software installed on Spiri and about the different user interfaces available to you.

Flight Control Firmware

  • 4-in-1 ESC – the Littlebee board that governs speed control for the four motor drivers runs BHeliS with d-shot software. This new digital controller increases the number of motor speed adjustments per second, making for smoother flight.

  • Flight Controller – the PixRacer module runs custom PX4-Spiri firmware specially modified for Spiri to enable the fusion of visual data and emergency recovery processes, among other changes, into the core flight control system.

Main Computer System

  • TX1 (or TX2 upgrade) by Nvidia incorporates a quad-core ARM CPU with a 256 CUDA Maxwell (or Pascal) GPU, excellent memory, bus, and core features.

  • Ubuntu 16.04 with Spiri-L4T-1.0 kernel – this is the basic OS and enabler for essential hardware drivers, including our stereo global shutter cameras.

  • ROS Kinetic – this is a high level method for broadcasting and receiving information among robots or processes within a robot. There are numerous open source ROS projects which will work on Spiri.

  • Robot Web Tools with Robot Management System – this powers the web page interface with Spiri

  • MAVROS, MAVProxy – this governs the exchange of data between processes on the main computer and on the flight controller, for example, the communication of SLAM (simultaneous location and mapping) data to the flight controller where it is merged with GPS and other data to increase the accuracy of Spiri's position estimates.

  • ORB_SLAM2 with Pangolin – this enables SLAM on Spiri

  • Various tools and dependencies, including gstreamer, Git, Pangolin, Eigen3, and certain deep learning tools, are also on Spiri.

There will be occasional software and firmware updates. The update process depends on which part of the robot is affected.

You may, once every three months or so, receive an update to program into the flight control board. For this you will need to remove the top shell of Spiri and connect a USB cable between your PC or laptop and the flight control board on the robot. A free, open source ground control program, such as QGroundControl, which will guide you through the process and we will provide support documentation.

You will not need to flash the ESC firmware in any circumstance we foresee, but it is possible to do so. We will provide support documentation.

Updates to any of the software on the main computer (Linux on the TX1) will be sent to you for a basic yes/no confirmation to install. Your files will all be stored on the removable SD card inserted into the carrier board inside the robot. The operating system and all updates to it are sequestered on non-removable storage on the TX1. This should ensure ongoing compatibility.

Filesystem, Removable Storage, On- and Off-Board Storage

  • 8Gb SD card in Flight Control Board (removable) – this is Spiri’s “black box”, the log of all sensor data collected during each flight

  • 16Gb SD card in Main Computer Carrier (removable) – this is where your home/user directory is, it is your on-board app and media center

  • 16Gb solid state drive on Main Computer – this is where the operating system and all factory-installed software is, along with a home/spiri directory for non user-specific access

  • spiri.net/user space – coming soon, basic and premium online media, app, and backup storage

User Interfaces

  • RC – any receiver compatible with the PX4 software and a transmitter will work with Spiri, and we provide instructions for one example, the Orange T-Six and R110XL receiver. RC will override any autonomous controls and put you alone in control of Spiri’s flight

  • Ground Station – any ground control software on your PC or laptop (we provide support for QGroundControl) will give you basic location, direction, and map interfaces

  • RMS – Robot Management System permits video streaming and multistage mission planning from your PC, laptop, tablet or smartphone over Wi-Fi to Spiri, which serves a webpage to your browser of choice. The browser is the user interface for RMS to make and send direct commands, flight plans, and broad autonomous missions while viewing video and other data in real time

  • ssh – secure shell from the unix command line gives you a direct line to Spiri to give it a mission, run a script, app, or other software, and can be used concurrently with RC, RMS, or other modes of communication and control. This is also one way to add to or modify Spiri's programming.

In addition to these user interfaces, we have programmed Spiri to interact with you and its environment in other tangible ways.

  • Spiri can see AR codes, and we have programmed a set of “runes” it reacts to

  • Spiri can respond to voice commands via smartphone

  • Spiri can respond to MIDI messages, that is, you can encode commands in musical figures

We expect these features to be in pre-release review when we begin shipping, and we will announce when they are ready for general release.

We maintain a GitHub repository where mirrors of all the critical systems on board can be found, along with our own software. A public app center is in the works.

Our support pages will contain detailed information on communications and user interfaces, and on how to build apps and features into Spiri if you are a programmer.

We are correcting a few driver and boot sequence issues on Spiri. Next week I'll have more information for you.

part of RMS menu

Caroline Glass