-
Notifications
You must be signed in to change notification settings - Fork 1
Batool #1
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Open
batoolfazal
wants to merge
28
commits into
main
Choose a base branch
from
Batool
base: main
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Batool #1
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
- Implemented doubly linked list for flight data storage - Added hash map for O(1) data retrieval - Created waypoint buffer system - Integrated quadcopter control system - Added GPS and IMU data structures - Included Python script for test data generation
Added GPS and IMU data structures - GPSData.h/cpp: GPS coordinates with Haversine distance calculation - IMUData.h/cpp: Orientation data (roll, pitch, yaw) with level check - DroneSensors.h: Master header grouping sensor components
- Includes Quadcopter.h and MotorControl.h - Provides single include point for all control components - Organizes motor control system modules
- Includes DroneLogger.h, WaypointBuffer.h, FlightHashMap.h, ErrorLog.h - Provides single include point for all logging components - Organizes telemetry system modules
Add doubly linked list logger interface - Defines FlightData struct with next/prev pointers - Declares DroneLogger class with CRUD operations - Supports forward and backward traversal
Implement doubly linked list flight logger - Reads CSV flight data into doubly linked list - Provides O(N) forward/backward traversal - Calculates max altitude, average velocity, total distance - Uses Haversine formula for GPS distance calculation
Add hash map for fast data retrieval - Defines FlightHashMap class interface - Supports O(1) average lookup by key - Provides insert, get, exists operations
Implement hash map for flight data caching - Uses unordered_map for O(1) timestamp lookup - Provides fast retrieval of specific flight moments - Supports key existence checking and display
Add waypoint buffer interface - Defines WaypointNode struct for linked list - Declares WaypointBuffer class for data buffering - Supports O(1) insertion at tail
Implemented waypoint buffer system - Uses singly linked list for sequential buffering - Provides O(1) insertion for streaming GPS data - Supports buffer display and count operations
Added error logging system interface - Declares ErrorLog class with severity levels - Supports warning, critical, and info logging - Provides timestamped file logging
Implemented timestamped error logging - Logs to file with timestamp and severity level - Supports warning, critical, and info messages - Provides console and file output simultaneously
Add quadcopter motor control interface - Defines Motor struct with PWM control - Declares QuadcopterSystem class for 4-motor control - Supports arm, disarm, and stabilization operations
Implement quadcopter motor control system - Controls 4 motors with PWM signals (0-100%) - Implements stabilization using roll/pitch corrections - Supports motor arming/disarming and status display
Add motor control utility interface - Declares PWM calculation functions - Provides safety check utilities - Supports emergency stop functionality
Implement motor control utilities - Calculates PWM with clamping (0-100% range) - Validates safe PWM ranges - Provides emergency motor stop function
Added telemetry system demo program - Loads flight data from CSV into doubly linked list - Simulates drone flight with motor control - Demonstrates forward/backward list traversal - Calculates and displays flight statistics
Add flight data generator script - Generates 50 simulated GPS waypoints - Creates realistic flight profile (takeoff, cruise, landing) - Includes GPS, IMU, velocity, battery, and signal data - Outputs to DroneFlightLog.csv for testing
Dynamic Hazard Detection System with O(1) lookup Implements real-time dynamic hazard detection using hash maps for optimal performance in drone pathfinding applications. Features: - O(1) average-time hazard lookup using unordered_map with integer keys - Time-based automatic expiration of temporary hazards - Multiple hazard types: BIRD, DRONE, WEATHER, DEBRIS, AIRCRAFT - Severity levels (1-5 scale) for risk assessment - Path safety verification for complete route checking - Python-based hazard data generator for testing scenarios - File I/O for persistent hazard logging and reload capability Testing: - Includes comprehensive demo with 10,000 O(1) lookup test - Three scenario generators: light (5), medium (15), heavy (30) hazards - Path safety testing with sample routes - Time-based expiration simulation This feature completes the D-2 requirement for the CS221 drone route planning project, demonstrating efficient dynamic obstacle detection suitable for real-time navigation system
Updated README to improve clarity
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
No description provided.