Software We Use
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"