Skip to content

Labeeb1234/px4_drone

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

34 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

PX4 Drone - Autonomous Testing & Navigation Package

An open-source testing and development package for autonomous drone systems with advanced obstacle avoidance, path planning, and spatial understanding capabilities.

Overview

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)

Key Features

🚁 Autonomous Navigation

  • 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

🧠 Spatial Understanding

  • 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

📊 Perception & Planning Modules

  • 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

System Architecture

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

Prerequisites

  • 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

Required Dependencies

# 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-laserscan

Installation & Setup

1. Clone the Repository

cd ~/catkin_ws/src
git clone https://github.com/Labeeb1234/px4_drone.git
cd ~/catkin_ws

2. Build the Workspace

catkin_make
source devel/setup.bash

3. PX4 Autopilot Setup

Follow the installation guide at PX4 Avoidance to set up the 3DVFH+* local planner.

4. QGroundControl Setup

Download and install QGroundControl for mission planning and drone configuration.

Usage

Launch the Navigation Stack

# 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

Mission Planning

  1. Connect drone via USB or telemetry link to QGroundControl
  2. Plan mission waypoints in QGC interface
  3. Upload mission to drone
  4. Arm and start autonomous flight

Point Cloud Processing

# Capture and save point cloud data
rosrun pcd_saver pcd_saver_node

# Process with SpatialLM
roslaunch spatial_lm spatial_lm.launch

Module Documentation

Fuel Planner (Fast Planner)

High-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.

Local Planner

Real-time obstacle avoidance using 3DVFH+* algorithm:

  • Dynamic reconfigurable parameters
  • Depth sensor integration
  • Velocity command generation
  • Safety constraints enforcement

Avoidance Module

Collision prevention system integrating with PX4 autopilot:

  • Real-time threat detection
  • Emergency maneuvering
  • Failsafe protocols

Point Cloud Saver

Data capture utility for offline analysis:

  • RealSense D435(i) integration
  • PCD format export
  • Timestamped logging

Spatial LM Integration

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

Video Demonstrations

Check out the navigation system in action:

Configuration

Key configuration files are located in fuel_planner/plan_manage/config/:

  • simulation.launch - Simulation parameters
  • kino_algorithm.xml - Kinodynamic planner settings
  • realsense.launch - Depth camera configuration

Adjust these parameters based on your hardware and environment.

Troubleshooting

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

References & Attribution

This project builds upon:


Last Updated: December 2025
Repository: Labeeb1234/px4_drone
Language: C++
Status: Active Development