XTDrone: PX4, ROS and Gazebo Simulation for UAV Algorithms
UAV Simulation Platform based on PX4, ROS and Gazebo
At a glance
- What is it?
- XTDrone is an open source UAV simulation platform for developers working with PX4, ROS and Gazebo. It supports individual vehicles, coordinated aircraft and several unmanned systems, but its README delegates detailed setup to an external Chinese manual.
- Who is it for?
- Adopt XTDrone when an algorithm needs a documented PX4 and ROS simulation context, especially for UAV control, perception, planning or multi-aircraft coordination. Do not treat the repository as a complete installation package or assume that every ROS version is supported.
- Can I use it commercially?
- Yes. MIT is a permissive licence: you can use, modify and sell software built on it, as long as you keep its copyright and licence notices.
- Is it still maintained?
- Yes. The repository last received commits 9 days ago.
- What is it written in?
- Mainly C++, according to GitHub's language statistics.
Answers come from the project's GitHub data, last synced on October 22, 2026, and from our analysis. They are not legal advice.
Editorial analysis
XTDrone's role in UAV algorithm development
XTDrone addresses the gap between testing a UAV algorithm as an isolated program and exercising it with flight-control, sensor and planning components in a simulated environment. The README describes a platform built around PX4, ROS and Gazebo. Its stated audience is developers who want to validate algorithms before deploying them on real UAVs. Examples listed in the README include stereo SLAM, visual-inertial navigation, dense visual reconstruction, 2D and 3D laser SLAM, 2D and 3D motion planning, object detection and tracking, formations, precision landing, fixed-wing and compound-wing vehicles, ground vehicles, boats and an aerial robotic arm. The breadth is useful for research and teaching, although the README presents these as supported use cases rather than a formal compatibility matrix. XTDrone also has a separate ROS2 version, XTDrone2, linked from the README. That distinction matters because this repository should not be assumed to document the current ROS2 workflow.
PX4, ROS and Gazebo simulation architecture
Based on the repository description, XTDrone connects a PX4 flight-control environment with ROS and Gazebo rather than functioning as a standalone flight simulator. The README includes separate architecture diagrams for a single UAV and for multiple UAVs, and links to papers describing the design. In practical terms, that architecture gives an algorithm a simulated vehicle, an environment and interfaces through which control, sensing, localization, planning and coordination behavior can be exercised. The repository layout reinforces that modular view. Directories include `control/`, `sensing/`, `motion_planning/`, `coordination/`, `communication/`, `sitl_config/`, `robocup/` and `contributer_demo/`, with a separate `ros2/` entry. These names indicate areas of implementation and examples, but the README does not document their internal APIs or startup order. The multi-UAV paper and diagrams are therefore the relevant sources for understanding coordination structure. The README does not establish that all examples run unchanged in one environment.
Installing XTDrone and preparing the first simulation
The repository does not provide a complete installation recipe in the README. It directs readers to the XTDrone usage documentation at `https://www.yuque.com/xtdrone/manual_cn`. There are no installation commands, environment variables, PX4 commit, ROS distribution, Gazebo version or operating-system requirements in the README, so a reproducible command sequence cannot be reproduced safely. The repository's ROS2 entry should also be checked rather than automatically selected, because the README explicitly points to the separate XTDrone2 project for ROS2. Before the first launch, confirm the manual's dependency versions, workspace layout, PX4 version, Gazebo integration and whether the chosen example belongs to the ROS1-oriented repository or the ROS2 project. The README states that examples cover many vehicle types, but it does not provide the command that selects a particular vehicle. Without those details, installation is only partially documented.
Choosing a XTDrone experiment by research goal
The repository is broader than a multirotor simulator, despite its association with PX4. The README names four-axis and six-axis multirotors, fixed-wing aircraft, quadplanes, tailsitters and tiltrotors under compound-wing systems. It also lists ground vehicles, boats and a robotic arm as other unmanned systems. This makes XTDrone relevant when a research question depends on different motion models or coordination arrangements. For example, a student working on stereo vision can use the listed stereo SLAM example as a starting point, while a planning project can examine the motion-planning directory and the documented 2D, 3D and swarm-planning examples. The README does not state that these examples share one common workflow, nor does it identify which are demonstrations, tests or complete applications. The correct interpretation is that XTDrone supplies a platform and example areas, not that every capability is packaged as a uniform API.
What XTDrone does not document
A major limitation is the gap between feature breadth and setup specificity. The README links to an external manual but does not include dependency versions, launch commands, configuration file names, simulator arguments or a troubleshooting guide. It also does not document rollback, a release process or compatibility guarantees. There are no GitHub releases listed, so a release-based upgrade path cannot be assumed. The repository is not archived, and its last push was on 2026-10-14, which indicates recent repository activity based on the recorded push date. That does not by itself guarantee compatibility with a particular PX4, ROS or Gazebo combination. The project also points to XTDrone2 for ROS2, so users must establish whether they are following the legacy ROS-oriented repository or the separate XTDrone2 project before copying configuration files.
XTDrone and alternative simulation approaches
The real alternative is to build a separate PX4 and ROS simulation stack around Gazebo, PX4 SITL and the algorithm's own workspace. That approach gives the developer direct control over branch versions, launch files and integration code, but it also requires assembling and maintaining the connections between flight control, simulation, sensors and ROS nodes. XTDrone instead packages those concerns as a UAV-focused platform, adds vehicle and algorithm example areas, and documents a hierarchical multi-UAV architecture. Its trade-off is less visible in this repository: users must consult the external manual and related papers to reproduce the setup. A hand-built stack may be preferable when the project requires a ROS distribution or PX4 revision that XTDrone does not document. XTDrone is more suitable when its example structure and documented simulation assumptions already match the research task.
Editorial conclusion
Adopt XTDrone when an algorithm needs a documented PX4 and ROS simulation context, especially for UAV control, perception, planning or multi-aircraft coordination. Do not treat the repository as a complete installation package or assume that every ROS version is supported. Verify first which ROS distribution, PX4 version, Gazebo version and platform-specific setup instructions apply to the intended experiment.
Frequently asked questions
What is XTDrone used for?
XTDrone is a UAV simulation platform based on PX4, ROS and Gazebo. The README lists algorithm validation involving SLAM, navigation, planning, perception, formations, precision landing and several vehicle types.
Does XTDrone support ROS2?
The README points to a separate project, XTDrone2, for the ROS2 version of the platform. This repository contains a `ros2/` entry, but the README does not explain whether that directory is the complete ROS2 distribution or how it relates to XTDrone2.
How do I install XTDrone?
The README does not include installation commands or dependency versions. It directs users to the XTDrone usage manual at `https://www.yuque.com/xtdrone/manual_cn`, where the setup procedure is documented.
Official sources
Add this badge to your README
If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.
[](https://hysenlabs.com/projects/robin-shaun-xtdrone)Was this useful?