Multiple Virtual Skynodes on single machine
How to run multiple instances of Virtual Skynode on a single machine to emulate multiple vehicles
Multiple instances of Virtual Skynode can be run when the following conditions are met:
Each instance must use a separate storage directory. Use the
--storage
launch argument to control thisEach instance must use a separate root filesystem image. Use the
--rootfs
launch argument to control thisEach instance must use a separate unique IPv4 address in the same subnet. Use the
--guest-ip
launch argument to control this.Each instance should be configured to have a unique MAVLink system_id after launch. See Mav System ID below.
For AOS versions 4.1.11 and later, any simulation mode is configurable. For AOS version older 4.1.2, each instance's virtual FMU must be configured to use the "self-containd" simulation without Gazebo:

Example Launch
Example launch commands for three separate virtual skynode instances:
# Copy the root filesystem twice
cp rootfs rootfs2
cp rootfs rootfs3
mv rootfs rootfs1
Launch the first instance:
virtual-skynode run --rootfs rootfs-1.qcow2 --storage ./storage1 --guest-ip 10.41.200.2
Launch the second instance:
virtual-skynode run --rootfs rootfs-2.qcow2 --storage ./storage2 --guest-ip 10.41.200.3
Launch the third instance:
virtual-skynode run --rootfs rootfs-3.qcow2 --storage ./storage3 --guest-ip 10.41.200.4
Mav System ID
In case one wants to simulate a specific vehicle ID or run multiple skynodes in parallel, the vehicle ID can be set via the app's web UI.

After modifying the instance ID, reload your simulation. For multiple skynodes, in order to avoid conflicts by the same ID on various virtual devices, it is recommened to start the different virtual devices separately the first time and confiure them propperly, before running all together.
For Gazebo simulation, ensure to the the initial position properly. Otherwise your vehicles will be stacked.
Caveats
Each instance of Virtual Skynode will consume CPU, RAM and disk space. Running multiple Virtual Skynode instances is therefore only viable on more powerful machines.
Last updated