An open-source testing and development package for autonomous drone systems with advanced obstacle avoidance, path planning, and spatial understanding capabilities.
This repository contains a complete autonomous drone system built on the PX4 autopilot stack. It integrates multiple planning and perception modules to enable safe autonomous navigation in complex environments.
Hardware Configuration:
- Platform: S500 Quadrotor Frame
- Total Weight: ~2.0 kg (including all computational boards)
- Development Environment: ROS Noetic on Ubuntu 20.04 (Focal Fossa)
- 3DVFH+ Local Planner*: Advanced obstacle avoidance and dynamic path replanning
- Fuel Planner: Fast trajectory generation for agile autonomous flight
- Real-time Processing: High-quality trajectory outputs within milliseconds
- Unknown Environment Support: Fully autonomous flight in cluttered, dynamic environments
- SpatialLM Integration: Point cloud understanding using LLM models
- Object Detection: Advanced perception on processed point cloud data
- Semantic Navigation: Understand spatial layouts and relationships using natural language
- RealSense D435(i) Support: Integrated depth camera processing
- Point Cloud Processing:
pcd_saver- Capture and save point cloud data - Exploration Management:
fuel_planner/exploration_manager- Autonomous exploration strategies - Local Planning:
local_planner- Real-time obstacle avoidance - Avoidance Systems:
avoidance- Advanced collision avoidance algorithms
px4_drone/
├── avoidance/ # Collision avoidance module
├── fuel_planner/ # Fast trajectory planning system
│ ├── exploration_manager/
│ └── plan_manage/
├── local_planner/ # Local navigation and obstacle avoidance
├── pcd_saver/ # Point cloud data capture
└── README.md
- OS: Ubuntu 20.04 (Focal Fossa)
- ROS: ROS Noetic
- PX4 Autopilot: Latest stable version
- QGC: QGroundControl (Mission planning GUI)
- C++ Compiler: C++11 or higher
- Depth Camera: RealSense D435
# Install ROS Noetic
sudo apt-get install ros-noetic-desktop-full
# Install PX4 dependencies
sudo apt-get install python3-pip python3-numpy
pip3 install --user pyserial pyulog
# Install additional tools
sudo apt-get install ros-noetic-realsense2-camera
sudo apt-get install ros-noetic-pointcloud-to-laserscancd ~/catkin_ws/src
git clone https://github.com/Labeeb1234/px4_drone.git
cd ~/catkin_wscatkin_make
source devel/setup.bashFollow the installation guide at PX4 Avoidance to set up the 3DVFH+* local planner.
Download and install QGroundControl for mission planning and drone configuration.
# Terminal 1: Start RViz visualization
roslaunch px4_drone visualization. launch
# Terminal 2: Start autonomous navigation system
roslaunch px4_drone navigation.launch
# Terminal 3: (Optional) Start point cloud saver
roslaunch pcd_saver pcd_saver.launch- Connect drone via USB or telemetry link to QGroundControl
- Plan mission waypoints in QGC interface
- Upload mission to drone
- Arm and start autonomous flight
# Capture and save point cloud data
rosrun pcd_saver pcd_saver_node
# Process with SpatialLM
roslaunch spatial_lm spatial_lm.launchHigh-performance trajectory planning system for aggressive autonomous flight:
- Online mapping with depth images
- Kinodynamic path searching (A* algorithm variant)
- B-spline trajectory optimization
- Heading/yaw angle planning
See fuel_planner/README.md for detailed documentation.
Real-time obstacle avoidance using 3DVFH+* algorithm:
- Dynamic reconfigurable parameters
- Depth sensor integration
- Velocity command generation
- Safety constraints enforcement
Collision prevention system integrating with PX4 autopilot:
- Real-time threat detection
- Emergency maneuvering
- Failsafe protocols
Data capture utility for offline analysis:
- RealSense D435(i) integration
- PCD format export
- Timestamped logging
This project includes SpatialLM - a point cloud understanding LLM model:
Capabilities:
- Object detection on 3D point clouds
- Spatial relationship understanding
- Natural language spatial queries
- Scene interpretation for autonomous decision-making
Check out the navigation system in action:
Key configuration files are located in fuel_planner/plan_manage/config/:
simulation.launch- Simulation parameterskino_algorithm.xml- Kinodynamic planner settingsrealsense.launch- Depth camera configuration
Adjust these parameters based on your hardware and environment.
Issue: Drone not responding to commands
- Solution: Check USB connection, verify baud rate, restart autopilot
Issue: Poor obstacle detection
- Solution: Check camera calibration, ensure adequate lighting, verify depth sensor connection
Issue: Slow trajectory generation
- Solution: Reduce map resolution, enable GPU acceleration, optimize downsampling parameters
This project builds upon:
- PX4 Avoidance - 3DVFH+* implementation
- Fast-Planner - Trajectory optimization
- SpatialLM - Spatial understanding
Last Updated: December 2025
Repository: Labeeb1234/px4_drone
Language: C++
Status: Active Development