LogoLogo
  • Welcome
  • Vehicle Operation
    • Getting started
    • Auterion Suite
      • Dashboard
      • Fleet Management
        • Vehicles
          • Cloud Features
          • Groups
        • Flights
        • Compliance
      • Manufacturer
        • Service Bulletins
      • Administration
      • User Management
      • Simulations
    • Auterion Mission Control
      • Installation
      • First steps
      • UI Breakdown
        • Navigating between the views
        • Fly View
          • Fly View UI Overview
          • Vehicle status indicator
          • Flight mode selector
          • Quick actions sidebar
          • Connection manager
          • Vehicle Dashboard
          • Flight Map
          • Camera View
          • Monitoring the Flight
          • Flying Manually (RC/Joystick)
          • Flying a Mission
        • Plan View
          • Plan UI Overview
          • Plan tools
            • Mission Menu
            • Waypoint Missions
            • Survey Patterns
              • Area Survey
              • Corridor Scan
          • Mission Summary
          • Mission Editor Tab
            • Start Section
            • Mission Section
            • End Section
            • Extras
          • Terrain visualization
          • GeoFence
          • Rally Points
        • Quick Vehicle Menu
          • Pre-Flight Checklist
          • Connectivity
        • Photo Gallery
        • Settings
        • Pilot Login
      • Useful resources
        • Mission Planning
          • Mission Cloud Sync
          • Terrain Following
          • Import Geo-Awareness data or KML overlays
        • Maps and Custom Overlays
          • Using Offline Maps
          • Importing GeoPDF overlays
        • Track GCS as Smart Asset in Suite
        • Live PX4 Log Streaming
        • Monitor Local Flights with ADS-B
        • GPS Denied Workflow
        • Windows Crash Logs Analysis
        • Screen Recordings
    • Remote Controllers
      • Skynav Remote Controller
        • Installing Mission Control
        • Joystick and Button Mapping
        • Using LTE for Online Maps in the Field
        • Advanced Radio Settings
        • Drop Guards and Chest Strap
        • Unit Serial Number
    • Settings & Maintenance
      • Vehicle Setup
      • WiFi Setup
      • Compass Calibration
      • Safety Setup
      • Joystick Setup
      • Vehicle Web UI
      • Software Update
      • Remote ID
        • How Remote ID works
        • Remote ID indicators in AMC
        • Frequently Asked Questions
    • Precise Flight
  • App development
    • Getting Started
      • Development environment Setup
      • Connecting to a device
      • Application Development
    • App Framework
      • Building your First App
      • Apps API
      • Sensor Data
      • Video Streams
      • Photos
      • Hardware Peripherals
      • Persistent Storage
      • MAVLink
      • Native Docker Compose
      • App Parameters
      • Log App Data to Auterion Suite
        • How to log Time Series Data
        • How to log basic Text Output
      • How to store an App's Binary Data on Skynode
      • User Web Interfaces
      • Build Arguments
      • Debugging apps with SSH
      • Debugging Apps with gdb
      • PX4 Messages in ROS 2
      • DDS / ROS2 Configuration
      • Structuring Applications with Multiple Services
    • Auterion SDK
      • Installation
      • Write Your First App
      • SDK API
      • Flight Mode API
        • Flight Mode API
        • Dynamics in Body Frame
        • Dynamics in Local Frame
        • Go-To in Local Frame
      • System State API
      • Peripheral Actuator Control API
      • Camera API
      • Navigation Input API
        • Global Navigation
        • Local Navigation
      • Visual Tracking API
    • Simulation
      • Virtual Skynode
        • Simulation-Gazebo Reference
        • Simulation-AirSim Reference
        • Connecting from other Computers
        • Resetting Virtual Skynode
        • Multiple Virtual Skynodes on single machine
      • Physical Skynode
    • Resources
      • Cross Compilation - Faster Builds
      • Auterion CLI Reference
      • Troubleshooting
      • App Tutorial
      • Skynode Vision Kit S
        • Set up the Vision Kit
        • Install and test a simple vision app
    • Legacy app workflow
      • App Development
      • MAVLink
      • Using the App Template
      • Example Applications
        • Autopilot Telemetry (C++)
        • Autopilot Telemetry (Python)
        • Photo Gallery
  • Hardware Integration
    • Getting started
      • Required Sensors
      • Wiring Skynode to the Vehicle
      • Actuators Setup
      • Sensors Setup
        • Set Orientations
        • Compass Calibration
        • Gyroscope calibration
        • Accelerometer calibration
        • Level horizon calibration
        • Airspeed calibration
      • Bench Test
      • Tuning
      • Creating Airframe Configurations for APX4
    • Skynode
      • Skynode X
      • Skynode ENT/GOV
      • Skynode X Integration and Development Kit
        • Get Skynode ready
        • Power Skynode
        • Register Skynode
        • Connect Skynode to AMC
        • Sensors and Peripherals
        • Next steps
      • Payloads
        • Generic USB Webcams (UVC)
        • Workswell Wiris Pro
        • Trillium HD40-LV
        • NextVision Gimbals (with TRIP2)
        • Sony Alpha a7R IV
        • Phase One iXM-100
        • Gremsy Gimbals
      • Connectivity
        • USB-C Network Connection
        • WiFi
        • LTE Setup
        • SIYI MK15
        • Microhard Data Link
        • Data Link Wiring
        • Silvus Data Link
        • Doodle Labs Data Link
        • Custom Data Link
        • Ethernet Interface Configuration
      • Skynode LED Meanings
      • Troubleshooting
      • Legacy DSM/DSMX Support
      • Peripherals
        • Power Module
        • 12S Power Module
        • Pixhawk Adapter Board
        • Pixhawk Payload Bus
        • Data Link Module
        • PX4 F9P GPS
        • Freefly RTK GPS
        • Airspeed Sensor
        • LIDAR
        • USB camera
        • See3CAM_24CUG
    • Skynode S
      • Datasheet
      • Interfaces
      • Basic Vehicle Integration
      • Add LTE to Skynode S
      • Skynode S LED status indicator
      • Skynode S flight logs
    • AI Node
      • Datasheet
      • Evaluation Kit
        • Power AI Node
        • Wiring AI Node to Skynode
        • Internet sharing with Skynode
        • Activate AI Node on Suite
      • Dimensions and CAD model
      • Interfaces
      • Connectivity
        • USB Network Connection
        • Serial Debug Connection
        • AI Node as Network Bridge
        • Standalone Internet Access
      • Updating AuterionOS
    • Advanced Airframe Integration
      • Custom power setup
      • Wiring without Breakout Boards
      • Gripper Integration
        • Setting up Payload Delivery with Gripper
      • ESC Calibration
      • Camera Calibration
        • Camera Calibration on a Computer
        • Camera Calibration on Skynode
      • Serial Port Configuration
    • Flight controller customization
      • AMC's Advanced Mode
      • Flight Controller Shell
      • Micro XRCE-DDS
    • AuterionOS Customization
      • OEM Tools Installation
      • Adding SSH keys
      • Changing the Root Password
      • Modifying Environment Variables
      • Pre-install Applications
      • Suite Manufacturer Tools
    • AuterionOS System Guide
      • Introduction
      • Flashing PX4 Binary and Vehicle Config
      • Building and Flashing PX4 Firmware
      • SSH Access
      • Filesystem and partitions
      • Environment Variables Reference
      • Types of AuterionOS Images
      • Mavlink Routing and Endpoints
      • Packaging AuterionOS Image
    • Additional Resources
      • Remote ID
        • How Remote ID works
        • Vehicle Serial Number
        • Communication Diagram
        • Remote ID configuration
        • How Auterion tested
      • Auto-Tuning
  • Release Notes
    • APX4
      • APX4 3.2
        • APX4 3.2.1
      • APX4 3.1
        • APX4 3.1.1
        • APX4 3.1.0
      • APX4 3.0
        • APX4 3.0.8
        • APX4 3.0.5
      • APX4 2.7
        • APX4 2.7.37
        • APX4 2.7.25
        • APX4 2.7.20
        • APX4 2.7.12
        • APX4 2.7.7
        • APX4 2.7.6
      • APX4 2.6
        • APX4 2.6.1
      • APX4 2.5
        • APX4 2.5.14
        • APX4 2.5.13
        • APX4 2.5.8
        • APX4 2.5.7
        • APX4 2.5.5
        • APX4 2.5.4
        • APX4 2.5.0
      • APX4 2.4
        • APX4 2.4.2
        • APX4 2.4.1
      • APX4 2.3
        • APX4 2.3.0
      • APX4 2.2
        • APX4 2.2.2
        • APX4 2.2.0
      • APX4 2.1
        • APX4 2.1.1
        • APX4 2.1.0
      • APX4 2.0
        • APX4 2.0.2
        • APX4 2.0.0
    • AuterionOS
      • AOS for AI Node
        • AI Node AOS 1.1.0
        • AI Node AOS 1.0.2
        • AI Node AOS 1.0.0
        • AI Node AOS 0.7.0
        • AI Node AOS 0.6.1
        • AI Node AOS 0.6.0
        • AI Node AOS 0.5.0
        • AI Node AOS 0.4.0
      • AOS for Skynode
        • AOS 3.7
          • AOS 3.7.14
          • AOS 3.7.9
        • AOS 3.6
          • AOS 3.6.14
        • AOS 3.5
          • AOS 3.5.13
        • AOS 3.3
          • AOS 3.3.9
        • AOS 3.2
          • AOS 3.2.9
        • AOS 2.19
          • AOS 2.19.14
        • AOS 2.15
          • AOS 2.15.10
          • AOS 2.15.7
        • AOS 2.12
          • AOS 2.12.8
        • AOS 2.10
          • AOS 2.10.2
        • AOS 2.8
          • AOS 2.8.1
        • AOS 2.7
          • AOS 2.7.15
        • AOS 2.6
          • AOS 2.6.1
        • AOS 2.5
          • AOS 2.5.14
          • AOS 2.5.13
          • AOS 2.5.8
          • AOS 2.5.7
          • AOS 2.5.5
          • AOS 2.5.4
          • AOS 2.5.0
        • AOS 2.4
          • AOS 2.4.1
        • AOS 2.3
          • AOS 2.3.0
        • AOS 2.2
          • AOS 2.2.2
          • AOS 2.2.0
        • AOS 2.1
          • AOS 2.1.1
          • AOS 2.1.0
        • AOS 2.0
          • AOS 2.0.2
          • AOS 2.0.0
    • Auterion Mission Control
      • AMC 1.34
        • AMC 1.34.19
        • AMC 1.34.14
      • AMC 1.33
        • AMC 1.33.13
      • AMC 1.32
        • AMC 1.32.7
      • AMC 1.30
        • AMC 1.30.17
      • AMC 1.29
        • AMC 1.29.7
      • AMC 1.26
        • AMC 1.26.8
      • AMC 1.22
        • AMC 1.22.3
      • AMC 1.19
        • AMC 1.19.5
      • AMC 1.18
        • AMC 1.18.3-1
        • AMC 1.18.3
      • AMC 1.17
        • AMC 1.17.10
        • AMC 1.17.9
      • AMC 1.15
        • AMC 1.15.0
      • AMC 1.14
        • AMC 1.14.6
        • AMC 1.14.0
      • AMC 1.13
      • AMC 1.12
      • AMC 1.11
      • AMC 1.10
        • AMC 1.10.1
        • AMC 1.10.0
      • AMC 1.9
        • AMC 1.9.1
        • AMC 1.9.0
      • AMC 1.8
    • Hardware
      • Skynode Rev 11 (Jan 2022)
Powered by GitBook
On this page
  • Getting started
  • Installation
  • Downloading the AuterionOS image for Virtual Skynode
  • Launching the Virtual Skynode
  • Virtual FMU app
  • Usage
  • Environment Simulation
  • Gazebo Simulation
  • AirSim Simulation
  • Build and Install Auterion Apps
  • Auterion Mission Control
  1. App development
  2. Simulation

Virtual Skynode

Usage of Virtual Skynode and its apps. Virtual Skynode simulates a Skynode device that can be used for app development

PreviousSimulationNextSimulation-Gazebo Reference

Last updated 3 months ago

The Virtual Skynode allows you to fully simulate a Skynode device running AuterionOS. With Virtual Skynode you get all the benefits of a physical Skynode during app development. For example:

  • Virtual Skynode offers the same APIs for installing and managing apps as a physical Skynode

  • The MAVLink communication inside Virtual Skynode is set up identically to a physical Skynode

  • Apps do not need to be aware that they are being installed in a Virtual Skynode. This significantly simplifies the build workflow of apps

  • Virtual Skynode's simulated hardware closely resembles a real device when it comes to number of CPU cores, amount of system memory, file system partitioning and size etc.

Getting started

Virtual Skynode requires two components:

  1. virtual-skynode launcher package installed through your operating system's package manager

  2. virtual-skynode's AuterionOS image which can be found on

The installation of both components is explained in the following section.

Installation

In order to use the Virtual Skynode, the launcher has to be installed on the developer machine first.

The following instructions were tested on Ubuntu 22.04:

Verify that your system supports Kernel-based Virtual Machine (KVM) by running:

sudo apt install cpu-checker
sudo kvm-ok

If this check does not return positively, CPU virtualization is most likely disabled in the BIOS. Virtual Skynode can be used without KVM, but this comes with a heavy performance penalty as the Virtual Skynode CPU will then be fully emulated in software.

Add the public Auterion debian package repository to apt:

curl -1sLf 'https://dl.cloudsmith.io/public/auterion/public/setup.deb.sh'| sudo -E bash

Install the Virtual Skynode:

sudo apt update
sudo apt install virtual-skynode

If you are working on a Mac:

brew tap Auterion/auterion
brew install virtual-skynode

Downloading the AuterionOS image for Virtual Skynode

You have to be part the Skynode Developer program to obtain AuterionOS for Virtual Skynode

Launching the Virtual Skynode

Ensure that you are currently in the directory that contains the downloaded AuterionOS rootfs and run (replace <VERSION-NUMBER>):

virtual-skynode run --rootfs virtual-skynode-rootfs-<VERSION-NUMBER>.qcow2 --storage ~/.virtual-skynode --guest-ip 10.41.200.2

Running this command will launch the Virtual Skynode using the downloaded version of AuterionOS. It will also (if not already present) create a storage repo in ~/.virtual-skynode that will be used as persistent storage for all apps and files that will be created/uploaded to the Virtual Skynode.

The IP specified in --guest-ip can be used to interface with the running Virtual Skynode. You can choose any IP in the 10.41.200.0/24 subnet. If you are looking for an interactive setup you can also just type virtual-skynode.

Virtual FMU app

The backbone of any Virtual Skynode setup is formed by the Virtual-FMU app. This app runs the PX4 Autopilot code on your Virtual Skynode and allows you to use PX4 as you would on a real Skynode.

The Virtual FMU is automatically installed as a system default app on your Virtual Skynode

Usage

  1. Virtual FMU starts in self-contained SIH mode by default. This mode doesn't require an external gazebo instance, you can directly connect with Auterion Mission Control and fly.

Environment Simulation

As an alternative to running in self-contained SIH mode, the Virtual FMU app can also run external simulators like Gazebo Sim and AirSim. These can provide more accurate physics simulation and photorealistic environments useful for developing visual pipelines.

Gazebo Simulation

Auterion provides a meta Debian package called simulation-gazebo that essentially acts as a wrapper for default Gazebo Sim. It sets several environmental variables that are required to create a network connection between Gazebo and the Virtual FMU app.

Installation

If you have not done so already, setup simulation-gazebo by following the instructions here: Simulation-Gazebo Reference

Switch to Gazebo Simulation Mode

  1. Run simulation-gazebo to launch gazebo. This should open up a Gazebo Sim window

  2. Go to the Virtual FMU configuration browser tab

  3. Click the Simulation mode dropdown menu and select the desired simulation mode

  4. Then click the "Reload Simulation" button

If you don't have gazebo running on your host, you will see the following warning: WARN [gz_bridge] Service call timed out as Gazebo has not been detected

If everything has been installed correctly you should see the vehicle show up in your Gazebo Sim window.

AirSim Simulation

Auterion offers a meta debian package for Ubuntu called simulation-airsim that simplifies the setup required to start an AirSim simulation. This is meant to be run in conjunction with Virtual Skynode.

Installation

If you have not done so already, setup simulation-airsim by following the instructions here: Simulation-AirSim Reference

Switch to AirSim simulation mode

  1. Run simulation-airsim to launch AirSim. This should open up a AirSim window

  2. Go to the Virtual FMU configuration browser tab

  3. Click the Simulation mode dropdown menu and select the desired simulation mode

  4. Then click the "Reload Simulation" button

  5. Change the "Camera Topic" setting of "gst-ros-bridge" app to /camera/airsim/image_raw to get video feed in AMC

Build and Install Auterion Apps

Your Auterion apps that you have built for Skynode will fail to install on Virtual Skynode. This is because apps for Skynode target the linux/arm64 architecture, whereas apps for Virtual Skynode running on your machine need to target linux/amd64.

auterion-cli app build --simulation

Auterion Mission Control

You can also connect Auterion Mission Control (AMC) to the Virtual FMU. To do so open the AMC settings and select the tab "Settings/Comm Links". There create a new comm link configuration with the following settings:

Setting
Value

Name

Can be an arbitrary string

Type

TCP

Automatically Connect on Start

True or False, based on personal preference

High Latency

False

Host Address

10.41.200.2

TCP Port

5790

Click on the created comm link and select "Connect" at the bottom.

In order to run Virtual Skynode, you have to download AuterionOS for Virtual Skynode by visiting and then browsing the Downloads > App Developer Tools page.

If you want to run a different AuterionOS rootfs, make sure to use a different storage location or clear your current storage location by .

Check that Virtual Skynode is up and running by visiting the IPv4 address specified at launch. By default this is :

When you run the virtual-skynode command for the first time, it initiates an app installation process. Do not prematurely stop the virtual-skynode process before it successfully completes the installation. If you do so, it may result in a corrupt configuration, which cannot automatically recover and you will have to . You can ensure the installation is complete with the web interface in Dashboard panel.

With Virtual Skynode running visit its web interface at

Go to the Apps page

Find the Virtual FMU app (com.auterion.virtual-fmu) and click the Configure button next to it. This should open a new browser tab. This is the web interface of the Virtual FMU where the simulation environment can be modified or interacted with

To build your Auterion app for Virtual Skynode, you can follow the workflow:

This will produce a *-simulation.auterionos artifact compatible with Virtual Skynode. You can now install your app either via auterion-cli app install, or navigating the web interface at to Dashboard > Install Software.

Suite
https://suite.auterion.com
resetting your Virtual Skynode
http://10.41.200.2
reset your Virtual Skynode
http://10.41.200.2
http://10.41.200.2
Application Development
Download section in Auterion Suite where the AuterionOS image for Virtual Skynode can be found
Virtual Skynode web interface
Virtual FMU webpage: switch to Gazebo Sim Mode
Virtual FMU webpage: switch to AirSim Mode
Example setup of a Comm Link for Virtual Skynode with AMC