Maverick latest release

Hi all, I continue in my quest to make an easy to use, upgradable, modular companion computer system :slight_smile:

The first series of releases (1.0.x) were mostly to work out and stabilise the core system before the move into the HLFs (Higher Level Functions) that I have in mind for the future (Web interface, analysis, smartshots, pre-configured ROS stack, SLAM etc).

So, who is Maverick for?

  • Anyone who wants to use companion computers with Ardupilot (or PX4) and doesn’t want to (or doesn’t have the time/knowledge to) spend forever setting one up
  • Developers who want a rich, collaborative environment for companion computer development, or to develop HLFs

What does Maverick do? The Maverick 1.0.x releases are really about the core framework, not functionality yet, but so far it provides:

  • Downloadable, ready to flash, ready to fly images for Raspberry Pi (all models), Odroid XU4, Intel Joule
  • Downloadable VM image for developers in OVA (Open Virtual Appliance) format, should run in VirtualBox, VMware etc
  • Ability to bootstrap from any donor/vendor OS (only Debian/Ubuntu supported so far, but possible to support any base OS) and create custom images
  • Ability to upgrade any previous release to the current release, with no loss of data or even interruption to services (unless the services themselves are being updated).
  • Single ‘maverick’ command provides system/network info, self updating, system configuration, service control
  • Self-contained, consistent software environments and versions across different platforms
  • Automatic detection and configuration of platform hardware and peripherals
  • Easy modular network configuration including managed wireless, monitor/injection, Host Access Point, Avahi, Dnsmasq, DHCP client/server, wifibroadcast
  • Built-in security, firewall, antivirus, scanners
  • Selective, modular Mavlink proxy, Dronekit and MAVROS configuration, supports MAVProxy, mavlink-router, cmavnode
  • Rich web-based IDE (Integrated Development Environment) - Cloud9
  • Full SITL environment with separate mavlink proxy, dronekit and MAVROS instances
  • Extensive consistent software components installed on all platforms - ROS Kinetic, Tensorflow 1.2, OpenCV 3.2, Gstreamer 1.10.4, FPV video (visiond, camera-streaming-daemon), Orb_slam2, RTABMAP, Aruco
  • ArduPllot development environment, compiled ArduPilot for SITL, everything necessary setup to compile and upload to Flight Controllers direct from companion computer
  • Vision functions - automatic detection and configuration of attached digital cameras for FPV (visiond), Precision Landing with vision_landing, experimental collision avoidance with RealSense depth cameras, Thermal Image streaming with Seek Thermal devices (support for Flir One coming soon), experimental SLAM components ORB_SLAM2 and RTABMAP

The core system is very flexible and modular and easy to extend and customise. There is an easy and extensive method of system configuration (a single or optionally multiple hierarchical JSON configuration file). While continuing to improve and refine the core system (including a web interface for configuration and controlling the system), I’m going to turn now to what I call HLFs - Higher Level Functions. These are what companion computers are actually useful for, leveraging the combination of a flight controller and companion computer to perform complex flight functions. A good example of this are the ‘Smartshots’ from the 3DR Solo platform, or the funky new visual control systems from DJI, or the FlytBase platform - however these are all proprietary and closed source - Maverick is and always will be fully open source. Maverick will provide an environment for these HLFs that anyone can pick up and play with, even with very little knowledge of how the underlying technology works, but with enough access that real or casual developers can delve into the inner workings.

An example of an ‘HLF’ is vision_landing:

Another example is the new Mavlink analysis in the 1.1.0 release (and improved in 1.1.1):

To infinity and beyond :slight_smile:


Documentation and Downloads here:
fnoop.github.io

Changelog from the past few releases:

[2017-07-12] 1.1.1 ‘Bugstomp’ Release

  • Lots of network fixes and improvements - in particular support for ‘Connection Sharing’
  • Lots of fixes, improvements and add docs to mavlink data analysis/graphing tool, new dashboards and indexes
  • Refactor puppet installation to gems, locked to version 5.0.0
  • Various bugfixes and doc updates
  • Update gstreamer to 1.12.1

[2017-06-26] 1.1.0 ‘Ooh pretty pictures’ Release

  • Mavlink data analysis/graphing tool
  • System metrics collection and analysis
  • Power and thermal data for Joule platform
  • Automated dataflash log translation
  • Preset graph sets for flight data and EKF analysis
  • Nanosecond time-series database resolution

[2017-06-15] 1.0.6 Release

  • Huge refactor of codebase to Puppet 4
  • Upgrade and refactor of puppet modules
  • Add support for Ubuntu 17.04 and 14.04
  • Add downloadable Ubuntu 16.04 VM developer image
  • Various bugfixes and doc updates

[2017-06-07] 1.0.5 Release

  • Various bugfixes and doc updates
  • Add Tensorflow software
  • Add rtabmap SLAM software
  • Add CUAV MAVProxy image processing software
  • Add Intel RealSense collision avoidance mavlink software
  • Fix orb_slam2 build and install
  • Test and implement first release of vision_landing component
  • Improve ‘maverick status’ output

[2017-05-29] 1.0.4 Release

  • Various bugfixes and doc updates
  • Improved Seek Thermal vision_seek quality and service
  • Refactor python/pip handling to deal with versions
  • Huge speed improvement in configure runs
  • Make number of mavlink proxy endpoints configurable
  • Add localconf parameters to force hardware installs
  • Add Intel camera-streaming-daemon install and configuration, not default yet
  • Streamline all builds and prebuilt images to fit on 8Gb SD/eMMC
  • Improve and correct maverick_network AP parameters, documentation

[2017-05-24] 1.0.3 Release

  • Various bugfixes
  • Streamline Raspberry build to fix on 8Gb SD card
  • More fixes for Raspberry Pi Zero/W - disable autologin and recompile OpenCV for armv6l, fix Cloud9 IDE
  • Improve docs including pretty pictures
  • Add support for Seek Thermal camera and vision_seek daemon/service

[2017-05-18] 1.0.2 Release

  • Various bugfixes
  • Much improved support for Raspberry Pi Zero and Zero W - fixed MAVCesium and Cloud9
  • Improved wifi-setup to faster and more immediate
  • Fixed locales
  • Initial Documentation published and tested for this release

[2017-05-15] 1.0.1 Release

  • Various bugfixes
  • Logitech C920 camera automatic configuration
  • Add JSBSim/Plane to SITL
  • Initial MavCesium support
  • ArduSub, ArduRover, AntennaTracker SITL support
  • SITL config file

[2017-05-10] Initial Release

  • OS Images released: Intel Joule, Odroid XU3/XU4, Raspbery Pi (all models)
  • Additional platforms supported: Beaglebone Black
2 Likes

Thanks @fnoop for the great work.

I’ve been following your work via the repo, and you’ve managed to pull a comprehensive set of features on a extremely easy to use package.

I’m going to test your latest release as soon as my work schedule gives me some slack.

brgds

Luis

ps- @peterbarker we should try to combine these parallel developments on a common fabulastic CC :slight_smile:

Thanks for the nice words @LuisVale :slight_smile:

very interesting. Installing it right now on my XU4.
How can we setup an vpn connection is there an easy way or do I have to separately download OpenVPN?

Andy

No specific VPN support. Others have mentioned it, please do feel free to open an issue for any suggestions or feature requests :slight_smile:

@fnoop Hi . I want to use “flir one pro” or “seek compact pro” with my DJI Phantom 4 . I have seen some topics from you about Maverick which it has been connected to Respbery pi board.
I am new in respbery . May I ask you to help me ?
My Email address : morteza.tavana@gmail.com