I’d like to share an open-source project I’ve been working on that might interest the PX4, DevOps, and robotics simulation communities:
PX4 SITL on AWS — Automated Simulation & Validation with ROS 2 and GitHub Actions
Overview
This project enables running PX4 SITL simulations (using Gazebo Harmonic) on AWS EC2 instances, with the entire workflow managed by GitHub Actions. The main goal is to make large-scale, automated testing and validation of offboard control algorithms (ROS 2 + uXRCE-DDS) simple and reproducible.
Key Features:
Automated EC2 provisioning: Spin up on-demand EC2 instances as simulation runners.
ROS 2 + PX4 SITL inside Docker: Pulls a prebuilt Docker image with PX4, ROS 2, and simulation dependencies.
Flexible simulation launch: Start multiple parallel simulations with custom ROS 2 parameters from the GitHub UI (no manual CLI work needed).
Bag recording & S3 storage: Automatically records data to ROS 2 bags and uploads them to S3 for later analysis.
CI/CD Integration: Supports both interactive (manual) runs and CI-triggered simulations (e.g., on release/PR merge).
Automatic log/report generation: After all runs, generates a summary report using the collected data.
Auto shutdown: EC2 instances terminate themselves after the workflow, minimizing cost.
Example Use Cases
Continuous integration/validation of offboard algorithms
Cloud-based batch simulation/testing of new mission logic or parameter sweeps
Quick, reproducible SITL runs without needing a local dev environment.
Repository
The project is open source and available here:
Looking for Feedback & Collaboration
I’d love to get feedback from the PX4 community!
Any thoughts on improvements, integrations, or features you’d find useful?
Interested in collaborating or extending this workflow for your use case?
Want to try it out or need help setting it up? Let me know!
Feel free to reply here or open an issue/discussion in the repo.
Cool project @iftahnaf, in the past I have always wanted a standalone SITL in the cloud instance, but could never find the time to work on this. I haven’t yet read the whole project but looks promising, I’ll probably ask more questions once I’m able to spend more time with this.
For now, have you seen this project? it could potentially complement your work, we use it heavily on PX4-Autopilot ci running on Dronecode’s AWS account
@rroche thanks alot for your reply, I really appreciate it.
I agree, once the development environment is set up, having it packaged in a standalone container brings huge advantages for validation and operations research of the offboard algorithms, especially in terms of scalability and sharing a consistent SITL setup across the team.
The ability to change ROS 2 parameters (and maybe even PX4 parameters later on) at launch time, combined with the scalability of cloud runners, really turns this into a data-generation machine.
The RunsOn project looks amazing. I did check it out, but personally found it a bit more complex to get started with, compared to ec2-github-runner, which was very straightforward to use. That said, I’ll definitely add RunsOn runners to my roadmap.
If I understand correctly, you want to know if you can use the PX4 simulation together with platforms like Arduino IDE to test additional sensors.
If you’re running HITL (hardware-in-the-loop), you can connect real sensors to your flight controller and test them in a simulated environment.
If you want to simulate new sensors in SITL (software-in-the-loop), you can add or modify the model in the simulation configuration files (such as the model’s SDF for Gazebo).
Just to clarify, this project is focused on testing PX4 SITL algorithms with the Gazebo simulator in the cloud, so HITL scenarios aren’t really the main goal here.