Skip to content

docs(sim): add Try PX4 quick-start and pre-built packages reference#26957

Merged
mrpollo merged 11 commits into
mainfrom
mrpollo/deb-package-docs
Apr 9, 2026
Merged

docs(sim): add Try PX4 quick-start and pre-built packages reference#26957
mrpollo merged 11 commits into
mainfrom
mrpollo/deb-package-docs

Conversation

@mrpollo
Copy link
Copy Markdown
Contributor

@mrpollo mrpollo commented Apr 2, 2026

Adds documentation for the SITL containers and .deb packages introduced in #26495. The containers are now live on Docker Hub: px4io/px4-sitl:latest and px4io/px4-sitl-gazebo:latest.

The main addition is a Try PX4 Simulation page that leads with a single docker run command and gets someone flying in under a minute. It lives in Getting Started, right after Recommended Hardware/Setup, so it's one of the first things new users see.

The existing .deb package reference has been moved from packaging/px4_sitl_deb.md to simulation/px4_sitl.md and expanded to cover both containers and .deb packages on one page. Sections are ordered by how people use them: what's available, install, configure, connect QGC/MAVSDK, connect ROS 2.

Other changes:

  • README now has a "Try PX4" section with the docker one-liner above "Build from Source"
  • Landing page (index.md) reworked to lead with "Try PX4" before "For Developers"
  • Toolchain page (dev_env.md) gets a tip redirecting simulation-only users to pre-built packages
  • getting_started.md and SUMMARY.md updated with links to the new pages
  • Simulation index tip updated to mention containers alongside .deb packages

The SIH container image is published as px4io/px4-sitl (renamed from px4io/px4-sitl-sih) so the default lightweight option carries the simplest name. The Gazebo image remains px4io/px4-sitl-gazebo.

Also upgrades all GitHub Actions in the SITL workflow to Node.js 24 compatible versions (actions/checkout@v6, actions/cache@v5, actions/upload-artifact@v7, actions/download-artifact@v8, docker/setup-buildx-action@v4, docker/build-push-action@v7) to fix the Node.js 20 deprecation warning ahead of the June 2026 deadline.

@github-actions
Copy link
Copy Markdown

github-actions Bot commented Apr 2, 2026

/en/sim_sih/index.md

  • LinkedInternalPageMissing: This linked file is missing: px4_simulation_quickstart.md

@mrpollo
Copy link
Copy Markdown
Contributor Author

mrpollo commented Apr 2, 2026

@farhangnaderi, could you put your academic hat on, forget everything you know about PX4 for a second, and try to go through the docs on this PR? It introduces a new SITL container (~30mb) that can run SITL. I'm being kinda bold here and promoting this feature as "try PX4 in 1 easy step."

@mrpollo mrpollo force-pushed the mrpollo/deb-package-docs branch 2 times, most recently from c55c60a to 3c8bfc8 Compare April 2, 2026 22:39
mrpollo added 3 commits April 8, 2026 09:07
… update

- Add docs/en/dev_setup/try_px4.md: one-command quick start with Docker
- Add docs/en/simulation/px4_sitl.md: reference for .deb packages and
  container images (replaces packaging/px4_sitl_deb.md)
- Update README.md with "Try PX4" section and docker run one-liner
- Update landing page, Getting Started, toolchain page, simulation index,
  and SUMMARY.md with links to new pages
- All container references use :latest tag

Signed-off-by: Ramon Roche <mrpollo@gmail.com>
Document all container port mappings (QGC, MAVSDK, uXRCE-DDS,
MAVSim Viewer) with a quick-reference table.

Signed-off-by: Ramon Roche <mrpollo@gmail.com>
@hamishwillee hamishwillee force-pushed the mrpollo/deb-package-docs branch from e2fcbe1 to 0f7eaf8 Compare April 7, 2026 23:07
Comment thread README.md Outdated
hamishwillee and others added 2 commits April 7, 2026 17:49
The Docker image previously published as px4io/px4-sitl-sih is renamed
to px4io/px4-sitl. The Gazebo image remains px4io/px4-sitl-gazebo.

Signed-off-by: Ramon Roche <mrpollo@gmail.com>
@mrpollo mrpollo force-pushed the mrpollo/deb-package-docs branch from 3843695 to 09b9154 Compare April 8, 2026 00:50
@github-actions
Copy link
Copy Markdown

github-actions Bot commented Apr 8, 2026

💡 Commit messages could be improved

Not blocking, but these commit messages could use some cleanup.

Commit Message Suggestion
a4bc3a2f20 Rename the files and simplify the quickstart Missing conventional commit format (e.g. "feat(ekf2): add something")
59bfcc7661 Fixes for quickstart and move it up top Missing conventional commit format (e.g. "feat(ekf2): add something")
334e9fb915 Minor comments Missing conventional commit format (e.g. "feat(ekf2): add something")
696d9ba3fd Apply suggestion from @hamishwillee Missing conventional commit format (e.g. "feat(ekf2): add something")

See the commit message convention for details.


This comment will be automatically removed once the issues are resolved.

Comment thread docs/en/dev_setup/getting_started.md Outdated
Comment thread docs/en/dev_setup/px4_simulation_quickstart.md Outdated
Comment thread docs/en/dev_setup/px4_simulation_quickstart.md Outdated
Comment thread docs/en/simulation/px4_sitl_prebuilt_packages.md
Comment thread docs/en/simulation/px4_sitl_prebuilt_packages.md
Comment thread README.md Outdated
Comment thread docs/en/SUMMARY.md Outdated
* origin/main:
  ci(apt): gate apt mirror swap on runs-on at the workflow level
  ci(apt): extract AWS apt mirror swap into shared script
  ci(ubuntu): use AWS regional mirror for apt in compile workflow
  ci(deb): publish SIH image as px4io/px4-sitl
  ci(deb): use AWS regional mirror for apt in deb build container
  fix(packaging): resolve host.docker.internal as IPv4 in SIH entrypoint
  ci(container): add build_ref input to allow dispatch against arbitrary refs

# Conflicts:
#	.github/workflows/build_deb_package.yml
@mrpollo
Copy link
Copy Markdown
Contributor Author

mrpollo commented Apr 8, 2026

@hamishwillee, your edits make sense to me. I also merged my work and renamed the container image from px4-sitl-sh to px4-sitl, which makes it easier to remember too. Lastly, the IPv6 issue is already fixed. Let me know if you can try the instructions and if you succeed.

Copy link
Copy Markdown
Contributor

@hamishwillee hamishwillee left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@mrpollo I cut back the quickstart now it is in the intro and the development stuff doesn't belong. The cut out information was already in the prebuilt package topic, so I see not loss. I've fixed up the other open questions.

I tried running the SIH container. It starts clean and fast. I couldn't connect to it, but the error looks like a local problem with the UDP port (I am hammering lots of things at the moment). I will try again tonight, but I am approving because I think this is good. Not merging because you might want to have other review or testing.

After this we do need to add the hawkeye stuff - ideally in that same container and ideally linked into the SIH start.

@mrpollo mrpollo merged commit 9adda29 into main Apr 9, 2026
97 checks passed
@mrpollo mrpollo deleted the mrpollo/deb-package-docs branch April 9, 2026 15:51
@mrpollo
Copy link
Copy Markdown
Contributor Author

mrpollo commented Apr 9, 2026

This is amaziiiiing 🏆

@farhangnaderi
Copy link
Copy Markdown
Contributor

farhangnaderi commented Apr 9, 2026

@mrpollo Sorry I wasnt notified by this. Thank you very much for your effort. I like this.

As a new comer I tried running and these are what I experienced:

  1. It is a one step IF you know docker. (I had the permission denied error which needs docker to be added to user group)
  2. docker run --rm -it -p 14550:14550/udp px4io/px4-sitl:latest already hooks to a port and QGC doesnt bind on Linux. but docker run --rm -it --network host px4io/px4-sitl:latest works which means I had to go and check the extra steps.

So maybe for the quickstart:

PX4 Simulation QuickStart

First install Docker (a free tool that runs containers).
The following command will then run a PX4 quadrotor simulation that you can connect to QGroundControl, MAVSDK or ROS 2 (on Linux, macOS, and Windows):

docker run --rm -it --network host px4io/px4-sitl:latest

That's it — open QGroundControl and fly!

::: warning Troubleshooting
"Permission denied" error (Linux)
Add your user to the docker group:

sudo usermod -aG docker $USER
newgrp docker

Then run the docker command again.

:::

::: tip
To try other vehicle types append the corresponding line below to the command:

-e PX4_SIM_MODEL=sihsim_airplane # Plane
-e PX4_SIM_MODEL=sihsim_standard_vtol # Standard VTOL
-e PX4_SIM_MODEL=sihsim_rover # Ackermann rover

For more information and options see Container Images (in Pre-built SITL Packages) and SIH Simulation.
:::

@mrpollo
Copy link
Copy Markdown
Contributor Author

mrpollo commented Apr 9, 2026

Thanks @farhangnaderi, regarding docker/containers, you right that we are expecting users to have docker already setup, and some hints as to how to troubleshoot might be nice, but maybe not in the quickstart page.

On the --network host vs specifying ports, that was actually the first problem I ran into, it would have been super nice to just have the one liner, but the -p should have worked for everyone assuming no port conflicts. Maybe what we should do here is to have a tab component to keep the page clean. This way we only show one command by default, and hide the other in a tab, a tab for Linux and another for macOS/Windows, whoever I'm not sure we have such component in the docs

@hamishwillee
Copy link
Copy Markdown
Contributor

This is really good. I've always thought we needed an easy way for no brainer testing and now we have it.

I tried --network host and that option does not bind on my computer - silently no connection. The port does.

A tab might work. But probably a details twistie better. Say as little as possible. Link to docker debugging info elsewhere.

::: details Troubleshooting
Blah vlah
:::

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants