How ankkitcodes/autonomous-drone-navigation works
The main implemented workflow captures camera frames, detects obstacles, chooses a movement command, updates a bounded simulated drone position, and displays the camera and simulation views. The ROS 2 package is a separate, partial integration: its camera node publishes images, while its status listener consumes a status topic; the sampled code does not connect ROS messages to the detection or navigation pipeline. Simulation and Gazebo are README capabilities, but a Gazebo implementation is not present in the tree.
Main entry points: camera.py Camera Workflow · camera_node.py ROS Camera Node · obstacle_detection.py Obstacle Detection · navigation.py Movement Decision
Components 13
Vision and Navigation
- Camera Workflow
src/camera.py - Obstacle Detection
src/obstacle_detection.py - Movement Decision
src/navigation.py
Drone Simulation
- Drone Controller
src/drone_controller.py
ROS 2 Integration
- ROS Camera Node
ros2/drone_navigation/drone_navigation/camera_node.py - Status Listener
ros2/drone_navigation/drone_navigation/status_listener.py - Image Topic
- Status Topic
Other components
- Operator
- Camera Device
- Visual Displays
- Status Publisher
- YOLO Model
Connections 11
- Operator → Camera Workflow: starts
- Camera Workflow → Camera Device: reads frames
- Camera Workflow → Obstacle Detection: detects obstacles
- Obstacle Detection → YOLO Model: runs inference
- Camera Workflow → Movement Decision: chooses movement
- Camera Workflow → Drone Controller: moves drone
- Camera Workflow → Visual Displays: displays views
- ROS Camera Node → Camera Device: reads frames
- ROS Camera Node → Image Topic: publishes images
- Status Publisher → Status Topic: publishes status
- Status Topic → Status Listener: delivers status