Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions .github/actions/build-deb/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ runs:
steps:
- name: Restore ccache
id: ccache-restore
uses: actions/cache/restore@v4
uses: actions/cache/restore@v5
with:
path: ~/.ccache
key: ${{ inputs.ccache-key-prefix }}-${{ github.ref_name }}-${{ github.sha }}
Expand Down Expand Up @@ -52,7 +52,7 @@ runs:
run: ccache -s

- name: Save ccache
uses: actions/cache/save@v4
uses: actions/cache/save@v5
if: always()
with:
path: ~/.ccache
Expand Down Expand Up @@ -108,7 +108,7 @@ runs:
echo "PASS: gazebo package validation successful"

- name: Upload .deb artifacts
uses: actions/upload-artifact@v4
uses: actions/upload-artifact@v7
with:
name: ${{ inputs.artifact-name }}
path: build/px4_sitl_${{ inputs.target }}/*.deb
Expand Down
14 changes: 7 additions & 7 deletions .github/workflows/build_deb_package.yml
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ jobs:
should_push: ${{ steps.push.outputs.should_push }}
steps:
- uses: runs-on/action@v2
- uses: actions/checkout@v4
- uses: actions/checkout@v6
with:
fetch-tags: true
submodules: false
Expand Down Expand Up @@ -93,13 +93,13 @@ jobs:
apt-get update && apt-get install -y git
git config --global --add safe.directory $(realpath .)

- uses: actions/checkout@v4
- uses: actions/checkout@v6
with:
fetch-depth: 0
fetch-tags: true

- name: Cache apt packages
uses: actions/cache@v4
uses: actions/cache@v5
with:
path: /var/cache/apt/archives
key: apt-${{ matrix.target }}-${{ matrix.codename }}-${{ matrix.arch }}-${{ hashFiles('Tools/setup/ubuntu.sh') }}
Expand Down Expand Up @@ -132,13 +132,13 @@ jobs:
- { image: gazebo, target: default, arch: arm64, runner: arm64, platform: "linux/arm64", dockerfile: Dockerfile.gazebo }
steps:
- uses: runs-on/action@v2
- uses: actions/checkout@v4
- uses: actions/checkout@v6
with:
submodules: false
fetch-depth: 1

- name: Download Noble .deb artifact
uses: actions/download-artifact@v4
uses: actions/download-artifact@v8
with:
name: px4-sitl-debs-${{ matrix.target }}-noble-${{ matrix.arch }}
path: docker-context
Expand All @@ -153,13 +153,13 @@ jobs:
echo "${{ secrets.GITHUB_TOKEN }}" | docker login ghcr.io -u "${{ github.actor }}" --password-stdin

- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
uses: docker/setup-buildx-action@v4
with:
driver: docker-container
platforms: ${{ matrix.platform }}

- name: Build and push container image
uses: docker/build-push-action@v6
uses: docker/build-push-action@v7
with:
context: docker-context
file: Tools/packaging/${{ matrix.dockerfile }}
Expand Down
12 changes: 11 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -65,7 +65,17 @@ PX4 is an open-source autopilot stack for drones and unmanned vehicles. It suppo

<sub>…and many more: helicopters, autogyros, airships, submarines, boats, and other experimental platforms. These frames have basic support but are not part of the regular flight-test program. See the <a href="https://docs.px4.io/main/en/airframes/airframe_reference.html">full airframe reference</a>.</sub>

## Quick Start
## Try PX4

Run PX4 in simulation with a single command. No build tools, no dependencies beyond Docker:

```bash
docker run --rm -it -p 14550:14550/udp px4io/px4-sitl-sih:latest
```

Open [QGroundControl](https://qgroundcontrol.com) and fly. See [Try PX4 Simulation](https://docs.px4.io/main/en/dev_setup/try_px4) for more options.

## Build from Source

```bash
git clone https://github.com/PX4/PX4-Autopilot.git --recursive
Expand Down
2 changes: 2 additions & 0 deletions docs/en/SUMMARY.md
Original file line number Diff line number Diff line change
Expand Up @@ -438,6 +438,7 @@
- [Development](development/development.md)
- [Getting Started](dev_setup/getting_started.md)
- [Recommended Hardware/Setup](dev_setup/config_initial.md)
- [Try PX4 Simulation](dev_setup/try_px4.md)
- [Toolchain Installation](dev_setup/dev_env.md)
- [Ubuntu Setup](dev_setup/dev_env_linux_ubuntu.md)
- [Windows Setup](dev_setup/dev_env_windows_wsl.md)
Expand Down Expand Up @@ -473,6 +474,7 @@
- [Worlds](sim_gazebo_classic/worlds.md)
- [Multi-Vehicle Sim](sim_gazebo_classic/multi_vehicle_simulation.md)
- [Simulate Failsafes](simulation/failsafes.md)
- [Pre-built Packages](simulation/px4_sitl.md)
- [Hardware](hardware/index.md)
- [Flight Controller Reference Design](hardware/reference_design.md)
- [Manufacturer’s Board Support Guide](hardware/board_support_guide.md)
Expand Down
5 changes: 5 additions & 0 deletions docs/en/dev_setup/dev_env.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,10 @@
# Setting up a Developer Environment (Toolchain)

::: tip
You only need a toolchain if you want to **modify and build** PX4 from source.
If you just want to run PX4 simulation without changing the code, use a pre-built [Docker container or .deb package](try_px4.md) instead.
:::

The _supported platforms_ for PX4 development are:

- [Ubuntu Linux (24.04/22.04)](../dev_setup/dev_env_linux_ubuntu.md)
Expand Down
1 change: 1 addition & 0 deletions docs/en/dev_setup/getting_started.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
This section contains topics about getting started with PX4 development:

- [Initial Setup](../dev_setup/config_initial.md)
- [Try PX4 Simulation](../dev_setup/try_px4.md) -- run PX4 in simulation without a build environment
- [Toolchain Installation](../dev_setup/dev_env.md)
- [Building the Code](../dev_setup/building_px4.md)
- [Writing an Application](../modules/hello_sky.md)
Expand Down
53 changes: 53 additions & 0 deletions docs/en/dev_setup/try_px4.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
# Try PX4 Simulation

PX4 runs a full autopilot in simulation, on your laptop, with nothing to install besides Docker.
One command and you have a flying vehicle ready for QGroundControl, MAVSDK, or ROS 2.

```bash
docker run --rm -it -p 14550:14550/udp px4io/px4-sitl-sih:latest
```

That's it. PX4 is running. Open [QGroundControl](https://qgroundcontrol.com) and fly.

No hardware, no build environment, no dependencies beyond [Docker](https://docs.docker.com/get-docker/). Read on for more options.

## What This Runs

The command above starts a **lightweight simulation** where the physics run inside PX4 itself. It starts instantly and works everywhere, but it is headless (no 3D window). You can still monitor the vehicle in QGroundControl, and there are [additional visualization options](../sim_sih/index.md) if you need them.

If you need a **3D environment** with cameras, LiDAR, and custom worlds, PX4 also supports [Gazebo](../sim_gazebo_gz/index.md). Gazebo requires more setup (graphics forwarding, GPU access) so it is better suited as a [native install](../simulation/px4_sitl.md) or [built from source](building_px4.md). See the [simulator comparison table](../simulation/index.md#simulator-comparison) for a full feature breakdown.

## Container (any OS)

Containers package PX4 and all its dependencies into a single download so you don't have to install anything on your system. Just install [Docker](https://docs.docker.com/get-docker/) (a free tool that runs containers) and you're ready to go. Works on Linux, macOS, and Windows.

```bash
docker run --rm -it -p 14550:14550/udp px4io/px4-sitl-sih:latest
```

PX4 starts a simulated quadcopter. You land in the PX4 shell (`pxh>`).
Open [QGroundControl](https://qgroundcontrol.com) and it auto-connects on UDP port 14550.

For other vehicle types, environment variables, and configuration, see the full [SIH Simulation](../sim_sih/index.md) guide.

## Native Install (Ubuntu)

If you're on Ubuntu and prefer to install PX4 simulation (SITL) directly on your system instead of using a container, download a `.deb` package. This installs PX4 SITL as a regular application, no Docker required. Both lightweight and Gazebo 3D packages are available.

Available for Ubuntu 22.04 and 24.04. Download from the [PX4 Releases](https://github.com/PX4/PX4-Autopilot/releases) page, then:

```bash
sudo apt install ./px4_*.deb
PX4_SIM_MODEL=sihsim_quadx px4
```

For Gazebo packages, multi-instance, ROS 2 integration, and all configuration options, see the [Pre-built SITL Packages](../simulation/px4_sitl.md) guide.

## Now What?

PX4 is running. Here's what to try next:

1. **Fly around.** Open [QGroundControl](https://qgroundcontrol.com), it connects automatically. Arm the vehicle, take off, and explore the flight modes.
2. **Control it with code.** Use [MAVSDK](https://mavsdk.mavlink.io/) to write a program that commands the vehicle: takeoff, fly a mission, land. Works in any language with a MAVLink connection.
3. **Connect ROS 2.** PX4 publishes vehicle state and accepts commands over [uXRCE-DDS](../ros2/user_guide.md). If ROS 2 is your stack, you can subscribe to topics and send setpoints from ROS nodes.
4. **Go deeper.** Ready to modify PX4 itself? Head to the next page to set up a development environment and build from source.
8 changes: 5 additions & 3 deletions docs/en/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -21,11 +21,13 @@ Documented changes since the stable release are captured in the evolving [releas

</div>

## Try PX4

No hardware needed. Run PX4 in simulation with a single command using [Docker or a .deb package](dev_setup/try_px4.md). Connect [QGroundControl](https://qgroundcontrol.com), [MAVSDK](https://mavsdk.mavlink.io/), or [ROS 2](ros2/index.md) and start flying immediately.

## For Developers

:::tip
Building on PX4 or extending the platform? Start here: [Development Guide](development/development.md). Set up your [dev environment](dev_setup/config_initial.md), [build from source](dev_setup/building_px4.md), run [SITL simulation](simulation/index.md), or integrate via [ROS 2](ros2/index.md) and [MAVSDK](https://mavsdk.mavlink.io/).
:::
Want to modify PX4 or build from source? Start with the [Development Guide](development/development.md): set up your [dev environment](dev_setup/dev_env.md), [build the code](dev_setup/building_px4.md), and run [SITL simulation](simulation/index.md).

## Getting Started

Expand Down
4 changes: 4 additions & 0 deletions docs/en/simulation/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,10 @@ See [PX4-Autopilot#23602](https://github.com/PX4/PX4-Autopilot/issues/23602) for

There are also a number of [Community Supported Simulators](../simulation/community_supported_simulators.md).

:::tip
To run PX4 SITL without setting up a build environment, [pre-built packages and containers](px4_sitl.md) are available.
:::

### Simulator Comparison

| Feature | Gazebo | SIH |
Expand Down
Loading
Loading