Maverick - Companion Computer System

Hi, not sure if this section is just for APSync or Companion Computers in general? Please feel free to move if it’s not in the right place :slight_smile:

About 18 months-2 years ago it became clear to me that Companion Computers, or a ‘higher level’ function to flight controllers, was going to be super important to UAVs. It also became clear that unlike ArduPilot there was a lack of organised development of CCs, or any way to do so, as they are quite a different problem to flight controller logic. So, I started on some research and a little project to try and come up with a solution to this problem. Unfortunately, I didn’t really know what I was doing so it took me a little while to research and learn the necessary technology and skills to tackle this problem. Still optimistic, I dove in the deep end and started experimenting. An experiment became a Proof of Concept, became an Alpha, became a Beta, became … somewhat of an obsession. So eventually I had to say enough is enough, release the damn thing. At which point I started testing things, found lots of things didn’t work, fixed those things, tested again… rinse, lather repeat…

Anyway, I think it’s reasonably useable enough now to release into the world for other people to try. Fly little bird, fly!

Many thanks to the brave guinea pigs who have taken the time to download and try this, and to provide invaluable feedback. In case it’s not obvious, I would hold off for at least a couple of point releases before you start flying this on spaceships, passenger airlines etc… Also, please don’t judge this as a finished product. It’s more of a beginning, a framework for people to collaborate with. The actual functionality is probably only 10% complete so far - it’s the concept that is important at this point, not what it does.


Great to see this @fnoop!

By the way, feel free to do a blog post on Creating a blog post is as easy as doing what you did here but set the category to “Blog”. Also for Blogs it’s best to put a picture or video at the top so it can be seen when is opened.

Nice work, don’t have a Joule yet, and I see the Edison is not yet available
will keep following

Hi fnoop,
I’d like to use maverick on my raspberrypi 2 (or 3 asap I’ll get the board) starting from my image (stretch lite with minimal GUI based on PIXEL).
I’ve followed your guidelines for bootstrap maverick but when I try to setup the flight enviroment (maverick --env=flight configure) Evaluation Error: Unknown variable: ‘java_home’ . at /srv/maverick/software/maverick/manifests/maverick-modules/maverick_intelligence/manifests/tensorflow.pp:29:71 on node …" as in the fire below


Do I need to install tensorflow before to enable maverick in flight mode?
Can you help?

You don’t have to install tensorflow, and if you’re bootstrapping I would strongly recommend you turn it off. I think it took more than 24 hours to build the last time I tried! And the java build setup is very specific to the environment, so possible it doesn’t support stretch yet. Stretch will be supported in the next version (1.1.4):

1 Like

If you hit any bugs/problems, first look through the github issues and see if it is already listed, and if not please raise a new issue there. It’s the fastest way to get a response.

1 Like

ok. actually my image is based on stretch so I wait for next version (1.1.4)


I have tested it lightly on stretch and didn’t come up with any particular problems, but it was a stripped out version that didn’t have all the components enabled and it was the master branch, not the release branch. If you need any help feel free to drop by the gitter channel:

Ok. I will continue to try with my image and keep u informed. I will disable most of the (heavy) modules

I’ve installed maverick in bootstrapping mode following the instructions-
Now I’d like to enable “flight” enviroment in a “STRIPPED” version, how should I modify the localconf.json? Actually I’d like to enable the very very minimum set of modules listed below

  • Cloud9
  • Desktop (my stripped version :slight_smile: )
  • Flight Controller
  • MAVlink (with mavcesium - fundamental because I’d like to impklement a sort of “softOSD” using raspicamera)
  • maverick_web

A copy of the one I’ve defined (but not yet launched “maverick --env=flight configure” is attached, suggestions/hints/comments more than welcome localconf.json.txt (4.6 KB)

thanks a lot

I succeded to install maverick on raspbian stretch lite with a (very) stripped GUI (minimal PIXEL).
From the first tests it works, still to understand how to activate few modules (e.g. MAVCesium)

Great, thanks for letting us know :slight_smile:

You can find the localconf parameters related to mavcesium here:

There was quite a bit of work done on it recently that might not be in the stable branch yet. If you go to the maverick URL in a browser (eg. http://maverick-raspberry.local), you should see a link to mavcesium there. You need to be running one MAVproxy instance.

If you need any help getting it running, you can ask in the gitter channel:

Hey there @fnoop - are there images for the Beaglebone? It appears to be supported but there doesn’t seem to be an image for it on

Hi! Afraid not, my BBB died a long time ago. If you’re keen to give it a go I could upload a minimal build profile for the Beaglebone, there isn’t one so I must have dropped support before I started the platform profiles (
The basics should build fine on Ubuntu - I made sure it was supported up to about 9-12 months ago, but there may be issues here and there for newer components that I never tested with the Beagle.

I’m pretty keen on that! I could try the Ubuntu build in the meantime as well.