Skip to content

Software We Use

Written by Max Gardenswartz, Brandon FallinUpdated 2026-11-06Autonomy ParkIndoor Lab

At a glance

Every piece of software the lab uses, with the version, a download link, and lab-specific install notes. Check it before you install anything.

Every piece of software used anywhere in this wiki is listed here, with the version the lab uses and where it matters. The Download column links to each vendor's installation guide, which this wiki does not repeat. What is specific to our lab (version pins, gotchas, extra commands, troubleshooting) is in the Lab Notes below the table.

When you write or edit a page that uses software, check that it has a row here. Add one if it does not.

Software Used For Version We Use Download Docs / Homepage Used On
Ubuntu Operating system on the lab computers. Never update it. 22.04 (22.04.5 in the installation guide) Ubuntu 22.04 releases ubuntu.com Lab Notes
ROS 2 Robot software framework Humble Install ROS 2 Humble ROS 2 Humble docs Lab Notes, Astro, Homebrew Autonomy
Gazebo Simulation Harmonic, latest minor Install Gazebo Harmonic Gazebo docs Lab Notes, Ubuntu in VMware, Ubuntu in VirtualBox
PX4 Flight controller firmware Homebrew: 1.16.2. Astro: 1.15 base inside the Freefly bundle PX4 releases PX4 v1.16 docs PX4 Configuration, Upgrading PX4 Firmware, Astro, Lab Notes
QGroundControl (QGC) Configuring and calibrating PX4 vehicles Guide written for 5.1.5. On Ubuntu 22.04 use 5.0.8 or build from source QGC releases QGC docs PX4 Configuration, Upgrading PX4 Firmware, Lab Notes
MAVROS Connects PX4 (MAVLink) to ROS 2 2.16.0 (tested) MAVROS releases No docs: either look at MAVLink Docs or the source code directly at MAVROS GitHub Lab Notes, Astro, RTK Setup
Micro XRCE-DDS Agent Planned replacement for MAVROS after PX4 1.19.0 is released; only needed because MAVROS does not support torque-level offboard commands Not used yet Agent releases Micro XRCE-DDS docs Lab Notes, Astro
NVIDIA JetPack Operating system and SDK on the Jetsons 6.0 rev 2 JetPack JetPack Jetson Orin Nano Firmware Flashing Guide, Jetsons
NVIDIA SDK Manager Flashing the Jetsons Latest SDK Manager SDK Manager docs Jetson Orin Nano Firmware Flashing Guide
ZED SDK and ROS 2 wrapper ZED 2 camera drivers Latest ZED SDK releases, ROS 2 wrapper Stereolabs docs Homebrew Autonomy
Docker Running robot code on the Jetsons Latest Install Docker Engine on Ubuntu docker.com Homebrew Autonomy, Unitree B1, RTK Setup
ZeroTier VPN to the Autonomy Park network Latest ZeroTier downloads ZeroTier docs ZeroTier VPN Install, File Backup Server
Auterion CLI Installing apps on the Astros Latest Auterion CLI Auterion docs Astro
Mission Planner Updating the Here4 GNSS firmware Latest Mission Planner installer (.msi) Mission Planner docs Updating Here4 GNSS Firmware
OptiTrack Motive Motion capture in the Indoor Lab 2.0.2. Needs the USB license key (see Mocap Calibration). May not run on newer Windows Motive 2.0.2 installer (no login), OptiTrack downloads Motive Mocap Calibration
VMware, VirtualBox Running Ubuntu in a virtual machine Latest VMware Workstation and Fusion, VirtualBox downloads vmware.com, virtualbox.org Ubuntu in VMware, Ubuntu in VirtualBox, Lab Notes
RTKLib Serves RTK corrections to the quadcopters (the caster) 2.4.3 (very stable; no update since 2020) RTKLib releases RTKLib on GitHub RTK Setup, Setting Up RTK on the Astros
Emlid Flow Mobile app that configures the Emlid ground station and rovers Latest App Store, Google Play Emlid Flow, Emlid docs RTK Setup
uv Python environment for this wiki Latest, locked in uv.lock Install uv uv docs Edit the Wiki
Git, Git LFS Version control for this wiki Latest Git downloads, Git LFS git-scm.com, git-lfs.com Edit the Wiki

Lab Notes

Only what the vendor guides lack. The steps for the simulation setup come in this order: ROS 2, QGroundControl, Gazebo, PX4, then MAVROS.

Ubuntu

All the park's equipment requires Ubuntu 22.04.5 (Jammy Jellyfish) for complete functionality of the park's resources (ROS 2 Humble needs it). Keep the version you installed and never update Ubuntu.

For a complete tutorial on running Linux in a virtual machine on Windows for a general ROS 2 project, see Ubuntu in VMware (written steps) or Ubuntu in VirtualBox (video). Apple Silicon Macs are not covered by either: they need an ARM-based Ubuntu, and some things, such as GPU acceleration for Gazebo, will not work.

Virtual Machine Disk Space

For general tutorials and work, 20 GB of allocated disk space works well. For larger projects with PX4 and Gazebo, 20 GB is not sufficient. Allocate a minimum of 40 GB, and 50 to 60 GB for good overall performance.

ROS 2 Humble

The installation steps are exactly the same as in the vendor guide linked above. A video walkthrough:

To test the installation, run the talker example from the vendor guide in one terminal:

source /opt/ros/humble/setup.bash
ros2 run demo_nodes_cpp talker

Run the listener in another terminal:

source /opt/ros/humble/setup.bash
ros2 run demo_nodes_py listener

The talker should say it is publishing messages and the listener should say it heard them. This verifies both the C++ and Python APIs.

QGroundControl (QGC)

QGC 5.1.x and Later Has No Ubuntu 22.04 Binary

QGC 5.1.x and later do not provide binaries for Ubuntu 22.04. On Ubuntu 22.04 you must build QGC from scratch. QGC 5.0.8 is fine to use for the foreseeable future.

In a new terminal, add yourself to the dialout group, remove ModemManager, and install the packages QGC needs:

sudo usermod -a -G dialout $USER
sudo apt-get remove modemmanager -y
sudo apt install gstreamer1.0-plugins-bad gstreamer1.0-libav gstreamer1.0-gl -y
sudo apt install libfuse2 -y
sudo apt install libxcb-xinerama0 libxkbcommon-x11-0 libxcb-cursor-dev -y

Download QGroundControl.AppImage from the download link, move it to a folder of your choice (for example ~/Downloads), make it executable, and run it:

chmod +x ~/Downloads/QGroundControl.AppImage
~/Downloads/QGroundControl.AppImage

Gazebo

PX4 SITL uses Gazebo Harmonic. Install it following the vendor guide linked above.

Planned Change: MAVROS to uXRCE-DDS

The lab plans to move offboard control of the quadcopters from MAVROS to the Micro XRCE-DDS Agent (uXRCE-DDS), PX4's native connection to ROS 2. Nothing changes yet: MAVROS is still the path described on this page as of 2026-10-21.

Why: MAVROS does not support torque-level offboard commands, and uXRCE-DDS does. In the lab's current setup, though, using uXRCE-DDS means giving up RTK. As of PX4 1.17.0 (and so 1.16.2), the Micro XRCE-DDS Agent exposes no topic for serving RTK corrections. With MAVROS, an NTRIP client on a companion computer publishes them to <mavros_namespace>/mavros/gps_rtk/send_rtcm.

A PX4 change Max test flew for the PX4 devs addresses that. PX4 pull request #29368 will let ROS 2 applications send RTK (RTCM) corrections to PX4 over uXRCE-DDS. As of 2026-11-10 it is merged, butis not part of any stable PX4 release (the release that will include it: Unknown). To experiment with torque-level control together with RTK, you must build mainline PX4 and port every parameter to the current PX4 parameter reference.

MAVROS

In a new terminal, install MAVROS and its dependencies:

sudo apt install ros-humble-mavros ros-humble-mavros-extras
sudo apt install ros-humble-geographic-msgs
sudo apt install geographiclib-tools
sudo apt install libgeographic-dev
sudo apt install geographiclib-doc

Create the GeographicLib directories if they do not exist:

sudo mkdir -p /usr/share/GeographicLib/geoids
sudo mkdir -p /usr/share/GeographicLib/gravity
sudo mkdir -p /usr/share/GeographicLib/magnetic

Install the egm96-5 dataset manually:

sudo geographiclib-get-geoids egm96-5

With PX4 running in a separate terminal (see above), launch MAVROS. It connects to PX4 over MAVLink. Autonomy Park SITL does this for you.

source /opt/ros/humble/setup.bash
ros2 launch mavros px4.launch fcu_url:="udp://:[email protected]:14557"