النسخة الاخيرة.pdf
Document Details
Uploaded by WellConnectedRoentgenium2343
Matrouh University
2024
Tags
Related
- Two_dimensional_arrays_Advanced Computer Science.pdf
- TS ECET 2024 Computer Science Engineering Syllabus PDF
- 12th_Computer-Science_EM - www.tntextbooks.in.pdf
- Lyceum International School Grade 8 Computer Science Exam PDF - July 2023
- Computer Science Lab 1st Stage 1st Semester PDF
- gate-computer-science-and-information-technology-2019-9789352868469-9789353061166-9352868463_compress-1-578.pdf
Full Transcript
Matrouh University Faculty of Computers and Artificial Intelligence Graduation Project 2024 Hawkeye Amany Khalifa 202611030024 Al-shimaa Ahmed 202611010023 Ahmed Mazloum 202611010011 Ehab Abo Hegazy...
Matrouh University Faculty of Computers and Artificial Intelligence Graduation Project 2024 Hawkeye Amany Khalifa 202611030024 Al-shimaa Ahmed 202611010023 Ahmed Mazloum 202611010011 Ehab Abo Hegazy 202611010029 Estabrq Abo Affan 202611010018 Supervisor Dr.Ahmed Adel Esmail 2024 1|Page Acknowledgement Firstly, we would like to thank Allah and express our gratitude to all those who share their knowledge and offer their help to let us understand and complete this project. Then we are so grateful to our supervisor.Dr. Ahmed Adel Ismail, For the guidance, inspiration, and constructive suggestions that helped us in the preparation and execution of the project. we would like to acknowledge all the assistance and contributions of Faculty of Computer and Artificial Intelligence of Matrouh University and Eng.Badr Gamal for supporting us with all. that is needed starting from the books and ending with the full care that it provided us with, to help us to be professionals in the fields of computer science and Information Technology. We sincerely thank our parents, families, and friends for all the support, encouragement, and patience they have provided us with throughout the project. 2|Page Table of Contents 1 Chapter one: Introduction……………………………………………………10 1.1 Problem definition…………………………………………………………………12 1.2 Objectives………………………………………………………………………….12 1.3 Tools……………………………………………………………………………….13 1.4 Risk and Concerns………………………………………………………………....13 2 Chapter two: System Overview……………………………………………...14 2.1 Functional System Requirements………………………………………………….15 2.1.1 Software requirements…………………………………………………..15 2.1.2 Hardware requirements…………………………………………………15 2.2 System User Identification…………………………………………………………16 2.3 Functional user requirements………………………………………………………16 2.4 Non-functional requirements………………………………………………………16 2.4.1 Usability requirements………………………………………………….16 2.4.2 Reliability requirements………………………………………………...16 2.4.3 Security requirements…………………………………………………...16 2.4.4 Performance & Capability requirements………………………………..17 2.4.5 Maintainability &Upgradability requirements………………………….17 3 Chapter three: System Requirements………………………………………18 3.1 Challenges………………………………………………………………………….19 3.2 Key Benefits………………………………………………………………………..19 3.3 Software Feasibility………………………………………………………………..19 3.3.1 Economic feasibility…………………………………………………….19 3.3.2 Technical feasibility…………………………………………………….19 3.3.3 Behavioral feasibility…………………………………………………..20 4 chapter Four: System Analysis………………………………………………21 4.1 Overview…………………………………………………………………………...22 4.2 Goals……………………………………………………………………………….22 4.3 Diagrams…………………………………………………………………………...22 4.3.1 Use case…………………………………………………………………22 4.3.2 Flowchart………………………………………………………………..24 5 Chapter Five: Functionality…………………………………………………25 6 Chapter Six: Implementation………………………………………………..32 7 Future works………………………………………………………………….59 8 Conclusion…………………………………………………………………….61 9 Recommendations…………………………………………………………….62 References…………………………………………………………………….63 3|Page Abstract Hawkeye is an operating system of drone hardware. Hawkeye focuses on creating a simulated security drone and a mobile app for controlling it. Using Gazebo simulation, the drone navigates using the Gazebo simulation. Users can interact with the drone using the mobile app. Our approach offers a practical and economical means to enhance security surveillance. Gazebo Simulation is a 3D dynamic simulator with the ability to accurately and efficiently simulate the population of robots in complex indoor and outdoor environments. Although like game engines, Gazebo offers physical simulation at a much higher degree of fidelity, a suit of sensors, and interfaces for both users and programs. 4|Page Related Projects FlytBase is a company that Deploys drones for surveillance, aerial monitoring and security patrols. Automate and schedule routine missions and remotely control the drones to monitor the property 24x7 and respond to breaches in real time. The difference between flytBase and Hawkeye is that flytBase use real-time responding on breaches which may lead to some undesired results, disadvantages and challenges associated with this technology. These include: Technical Limitations: - Battery Life: Drones typically have limited flight times due to battery constraints, which can limit their effectiveness in prolonged breach scenarios. Cost: - Initial Investment: High-quality drones and their necessary support systems (charging stations, maintenance equipment) can be expensive. - Maintenance and Repairs: Regular maintenance is required to keep drones operational, and repairs can be costly. Operational Challenges: - Training Requirements: Operators need to be well-trained to effectively control drones and respond to breaches, necessitating investment in training programs. Security Risks: - Cybersecurity Threats: Drones can be vulnerable to hacking, which could lead to unauthorized access or control. Limited Payload Capacity: - Drones generally have limited payload capacities, restricted the types and amounted of equipment or supplies they can carry to a breach site. Ethical Considerations: - The use of drones for real-time response may raise ethical questions regarding the use of autonomous or semi-autonomous systems in potentially life-threatening situations. 5|Page The Role of Computer Science and Information Technology in Hawkeye Computer Science Computer Science is a multifaceted discipline that encompasses the study of computation, algorithms, and the design of computer systems. It explores both theoretical foundations and practical applications in various domains, including software engineering, artificial intelligence, data science, computer graphics, and cybersecurity. Computer scientists apply mathematical and computational principles to analyze and solve complex problems, develop innovative technologies, and advance the field of computing. Fields of Computer Science Software Engineering: Software engineering focuses on the systematic development, maintenance, and evolution of software systems. Software engineers apply principles of computer science to design, implement, test, and deploy software solutions that meet the requirements of users and stakeholders. They use software development methodologies such as Agile, Scrum, and DevOps to manage the software development lifecycle and ensure the quality, reliability, and scalability of software products. Artificial Intelligence (AI): Artificial Intelligence deals with the development of intelligent systems that can perceive, reason, learn, and act autonomously. AI encompasses subfields such as machine learning, natural language processing, computer vision, and robotics. Computer scientists working in AI develop algorithms, models, and techniques to enable machines to exhibit human-like intelligence and behavior, solve complex problems, and make informed decisions in real-world environments. Data Science: Data Science involves the extraction of actionable insights from large datasets using statistical, mathematical, and computational techniques. Data scientists leverage computer science principles to analyze, visualize, and interpret data to support decision-making processes in various domains such as business, healthcare, finance, and engineering. They use tools and technologies such as Python, R, SQL, and machine learning frameworks to process, analyze, and extract valuable knowledge from data. 6|Page Computer Graphics: Computer Graphics focuses on the creation, manipulation, and rendering of visual content using computers. It includes areas such as 2D and 3D graphics, animation, virtual reality (VR), and augmented reality (AR). Computer graphics researchers and practitioners develop algorithms, techniques, and tools to generate realistic and interactive visualizations, simulations, and virtual environments for applications in entertainment, education, design, and scientific visualization. Cybersecurity: Cybersecurity deals with protecting computer systems, networks, and data from malicious attacks, unauthorized access, and data breaches. Computer scientists working in cybersecurity develop techniques and tools to assess security risks, detect vulnerabilities, and mitigate threats in complex and dynamic computing environments. They design and implement security measures such as encryption, authentication, access control, and intrusion detection to safeguard digital assets and information from cyber threats. Role of Computer Science in Hawkeye In Hawkeye, computer science plays a pivotal role in several key aspects: Simulation Development: Computer science principles are applied to develop algorithms and models for simulating drone operations within a virtual environment. Researchers and engineers use techniques from computer graphics, artificial intelligence, and robotics to create realistic simulations of drone flight, navigation, and obstacle detection. They develop algorithms for simulating environmental factors, sensor inputs, and drone behaviors to replicate real-world scenarios and challenges. Operating System Implementation: Computer science concepts are utilized to design and implement an intelligent operating system for the simulated drone. This involves developing algorithms for autonomous flight, sensor integration, and real-time decision- making. Computer scientists design software architectures, algorithms, and data structures to manage drone operations, control sensors, process sensor data, and execute mission plans efficiently and effectively. Algorithm Development: Computer science methodologies are applied to devise robust algorithms for obstacle detection, alarm triggering, and security measures. Researchers and engineers develop algorithms for processing sensor data, detecting obstacles, and generating alerts in real-time. They use techniques such as machine learning, computer vision, and signal processing to analyze sensor inputs, identify potential threats, and respond to security incidents proactively. Integration and Communication: Computer science expertise is essential for establishing seamless communication between the simulated drone and the real mobile application. Researchers and engineers design communication protocols, data formats, and interfaces for real- time interaction between the drone simulation and the mobile application. They develop software components, libraries, and APIs to facilitate data exchange, command execution, and status monitoring between the drone and the mobile application. 7|Page By leveraging computer science principles and practices, the project aims to create a sophisticated and realistic simulation environment for security drone operations. Computer scientists play a crucial role in designing, implementing, and optimizing the software components and algorithms that enable the drone system to navigate, detect obstacles, and communicate with the mobile application effectively. Their expertise in areas such as simulation, operating systems, algorithms, and communication protocols ensures the reliability, scalability, and performance of the drone system in various scenarios and environments. Information Technology Information Technology (IT) encompasses the use of computers, networks, and telecommunications to manage and process data for various purposes. It involves a wide array of technologies, methodologies, and practices aimed at facilitating the storage, retrieval, transmission, and manipulation of information. IT professionals leverage their expertise to design, implement, and maintain technology solutions that meet the needs of organizations and individuals. Fields of Information Technology Network Administration: Network administration involves the management, configuration, and optimization of computer networks to ensure seamless communication and data exchange. Network administrators are responsible for setting up network infrastructure, monitoring network performance, troubleshooting connectivity issues, and implementing security measures to protect against unauthorized access and cyber threats. Web Development: Web development encompasses the creation and maintenance of websites and web applications. Web developers use programming languages such as HTML, CSS, and JavaScript to design user interfaces, develop interactive features, and ensure cross-browser compatibility. They also work with web servers, databases, and content management systems to deliver dynamic and responsive web experiences. Cybersecurity: Cybersecurity focuses on protecting computer systems, networks, and data from malicious attacks, unauthorized access, and data breaches. Cybersecurity professionals employ a range of techniques and tools to assess security risks, detect vulnerabilities, and implement preventive measures such as firewalls, antivirus software, encryption, and intrusion detection systems. They also conduct regular security audits and incident response to mitigate security incidents and minimize the impact of cyber threats. Mobile App Development: Mobile app development involves the design, development, and deployment of applications for mobile devices such as smartphones and tablets. Mobile app developers use programming languages such as Java, Kotlin, Swift, or Flutter to create native or cross-platform applications that run on iOS and Android platforms. They focus on delivering engaging user experiences, optimizing performance, and ensuring compatibility with different devices and screen sizes. 8|Page Role of Information Technology in Hawkeye Information technology plays a crucial role in several key aspects of Hawkeye: Mobile Application Development: Information technology professionals leverage their expertise in mobile app development to design and build mobile applications for controlling simulated drones. They work closely with project stakeholders to understand requirements, define features, and develop user interfaces that are intuitive, responsive, and user-friendly. They also integrate functionality for real-time monitoring, drone control, and security alerts, ensuring seamless interaction between the user and the drone system. Network Infrastructure: Information technology principles are applied to establish and maintain the network infrastructure required for communication between the simulated drone and the mobile application. Network engineers design network topology, configure network devices, and optimize network performance to ensure reliable and secure data transmission. They implement protocols such as TCP/IP, UDP, and HTTP to facilitate communication between the drone simulation and the mobile application, and they deploy security measures such as firewalls, VPNs, and intrusion detection systems to protect against cyber threats and unauthorized access. Security Measures: Information technology expertise is essential for implementing robust security measures to safeguard the drone system against cyber threats, data breaches, and unauthorized access. Security specialists conduct risk assessments, identify vulnerabilities, and develop security policies and procedures to protect sensitive data and ensure compliance with regulatory requirements. They deploy encryption techniques to secure data transmission between the drone simulation and the mobile application, implement access control mechanisms to restrict unauthorized access to system resources, and monitor system logs for suspicious activities and security incidents. They also provide user training and awareness programs to educate users about security best practices and minimize the risk of human error. By leveraging information technology principles and practices, the project aims to ensure the practical implementation, usability, and security of the drone system. Information technology professionals play a vital role in designing, implementing, and maintaining the technology infrastructure that supports the project objectives and enables seamless communication and interaction between the simulated drone and the mobile application. Their expertise in network administration, web development, cybersecurity, and mobile app development ensures that the drone system operates efficiently, securely, and reliably, meeting the needs of users and stakeholders. This comprehensive overview highlights the critical roles of both computer science and information technology in Hawkeye, covering key aspects such as simulation development, mobile application development, network infrastructure, security measures, and more. Both disciplines contribute essential expertise and methodologies to ensure the success of the project and the effective deployment of the simulated security drone system. 9|Page 1 CHAPTER ONE: INTRODUCTION 10 | P a g e - In the realm of security surveillance, the demand for cost-effective and efficient solutions continues to drive innovation. Drones have emerged as a promising technology for enhancing surveillance capabilities due to their mobility, versatility, and ability to access hard-to-reach areas. However, many aspiring developers and researchers find it difficult to get started due to the high expense of hardware development. Revolutionize your property security with our state-of-the-art project featuring drones and a mobile application. Our system offers a dynamic defense mechanism by deploying drones for regular patrols and scanning for potential threats. The user-friendly mobile app empowers you to customize patrol schedules, view live drone footage, and put security control at your fingertips. Experience peace of mind and enhanced protection with this cutting-edge fusion of drone technology and mobile accessibility, redefining the future of property security. Powered by Gazebo simulation technology, our simulated drone replicates real-world drone operations, including navigation. By utilizing advanced algorithms and modeling techniques, we aim to create a realistic simulation that accurately reflects the challenges and complexities of security surveillance scenarios. To complement the simulated drone, we have developed a mobile application that enables users to remotely communicate the drone and receive real-time feedback on its operations. Our application tries to solve this problem by leveraging cutting-edge drone technology. The application allows the user to specify the coordinates of the location they want to patrol along its borders by entering waypoints, which are then sent to the drone, which autonomously takes on the task, flies over, and captures streaming videos of the area before transmitting them to the mobile application for display. To ensure communication between the simulated drone and the real flutter program, both must be linked to the internet and the Firebase cloud. The ROS2/Flutter bridge allows for easy communication between your ROS2-powered drone system and the mobile application written with Flutter. Hawkeye prioritizes software development for security drones, but recognizes the need for hardware integration for successful deployment. Therefore, we envision our simulation to serve as a valuable tool for future hardware development efforts, allowing developers to test and refine their designs in a simulated environment before investing in physical prototypes. This documentation provides a complete description of Hawkeye, including its system architecture, implementation methodology, testing procedures, and future directions. We believe our technique provides a realistic and cost-effective option for improving security surveillance capabilities, making it applicable to a broader range of applications and sectors. 11 | P a g e 1.1 PROBLEM DEFINITION Hawkeye solves security problem. Traditional security systems, particularly those relying solely on stationary cameras, encounter limitations in effectively monitoring large and complex environments, Fixed cameras have limited mobility and may not cover large or dynamically changing areas effectively. Can be vulnerable to tampering, vandalism, or intentional obstruction, compromising their effectiveness. Have a limited field of view, and blind spots may exist, reducing overall coverage and it goes off when electricity is out Additionally, securing expansive areas adjacent to fences poses a significant challenge, often necessitating the deployment of multiple cameras or personnel for comprehensive coverage. To solve these difficulties, Hawkeye intends to improve security surveillance by using simulated drones. Drones provide unprecedented mobility and agility, allowing for efficient monitoring of large regions, including those next to fences. We hope to overcome the constraints of traditional security systems by utilizing simulated drone technology, delivering cost-effective and scalable options for enterprises looking to improve their security measures. Drones, for example, provide an aerial perspective, giving them a comprehensive picture of broad areas as well as the capacity to cover dynamic or difficult-to-reach situations. Drones are very mobile, allowing them to adapt to changing security needs and cover different locations as needed. 1.2 OBJECTIVES Simulated Drone Development: Develop a simulated drone model capable of autonomous flight and securing the property within a virtual environment, leveraging Gazebo simulation technology. Operating System Implementation: Design and implement an intelligent operating system for the simulated drone, incorporating advanced algorithms for navigation and send feedback. Mobile Application Development: Create a mobile application allowing users to communicate the simulated drone. 1 Integration of Drone and Mobile App: Establish seamless communication between the simulated drone and the mobile application, enabling users to initiate and communicate with the drone and receive feedback. 2 Security Integration: Implement strong security measures to safeguard the system. 12 | P a g e 1.3 TOOLS Gazebo Simulation ROS 2 (Robot Operating System 2) Flutter Framework Visual Studio Ubuntu 22.04 Operating System Mavros 2 / Mavlink Mavproxy QGround Control Firebase 1.4 Risks and concerns Technical Complexity: Developing a simulated drone and mobile app integration involves intricate technical challenges, potentially leading to delays or unexpected issues. Communication Latency: Delays in data transmission between the drone and app could impact responsiveness. Security Vulnerabilities: Ensuring data security and encryption is critical to prevent unauthorized access. 13 | P a g e 2- CHAPTER-TWO: SYSTEM-OVERVIEW 14 | P a g e 2.1 FUNCTIONAL SYSTEM REQUIREMENTS 2.1.1 Software Requirements Software Tools Minimum Requirements Gazebo Simulation Linux Operating System Linux Technology Flutter IDE Android Studio ROS 2 Linux (Ubuntu 20.04 or later) 2.1.2 Hardware Requirements Hardware Tools Minimum Requirements Processor i5 or above Ram 16 GB Computer for Simulation Laptop or PC or microcontroller Mobile Device for Application Deployment Android 11 or above Hard Disk 160 GB 15 | P a g e 2.2 SYSTEM USER’S IDENTIFICATIONS 1.Administrator This user has administrative privileges and is responsible for system setup, configuration, maintenance, and management. 2.Security Personnel: These users are tasked with monitoring the security drone via the mobile application. 3.End Users: Individuals or organizations utilizing the security system for surveillance purposes. 2.3 FUNCTIONAL USER REQUIREMENTS 1-Drone Control: Users can send way points to the drone via the mobile app. 2-Remote Surveillance: Initiate and monitor drone patrols remotely, specifying routes and waypoints. 3-Authentication: Ensure secure access to the application with user authentication mechanisms. 2.4 NON-FUNCTIONAL REQUIREMENTS 2.4.1 Usability Requirements Ease of use of the mobile app. with clear buttons and helpful messages. It should work smoothly, and if something goes wrong, it should show what happened and how to fix it. Taking feedback from users and testing the app with them will help make it even better. 2.4.2 Reliability & Up-time Requirements The system must consistently work without interruptions, ensuring users can access it whenever they need it. Implementing automatic fault detection and recovery techniques, along with regular maintenance and backups, will maintain reliability and reduce downtime. 2.4.3 Security Requirements Ensuring drone security for sensitive operations involves multiple key measures: 1-Communication Security: Encrypt all communications, use secure authentication, and utilize redundant channels. 2-Data Security: Encrypt data during transit and at rest, and use secure storage options. 3-Firmware and Software Security: Make sure to update software on a regular basis and use integrity checks. 4-Access Control: Implement RBAC and multi-factor authentication (MFA). 5-Physical Security: Make drones tamper-resistant and store them securely. 6-Cybersecurity measures include firewalls, intrusion detection systems (IDS), and constant monitoring. 7. Operational Security: Secure mission planning, create contingency plans, and maintain regulatory compliance. 8-Security Training: Offer extensive training and hold frequent security awareness seminars. 9-Redundancy and Fail-Safes: Implement redundant systems and automated response 16 | P a g e protocols. 2.4.4 Performance & Capability Requirements When defining drone performance and capabilities requirements, flying performance, cargo capacity, autonomy, navigation, communication, safety, environmental resilience, power management, and software integration are all important considerations. Flight time, range, speed, altitude, payload weight, GPS accuracy, obstacle detection, control range, real-time data transmission, return-to-home features, regulatory compliance, weather resistance, battery life, and API/SDK support are among the key parameters. These standards ensure that the drone is suitable for purposes such as delivery, surveillance, research, or recreation by ensuring robust, reliable, and secure operation in a variety of environments. 2.4.5 Maintainability & Upgradeability Requirements Maintainability and upgradeability for drones involve designing systems that allow for easy maintenance and updates. This includes modular components for quick replacement and repair, standardized parts for compatibility, and accessible software interfaces for firmware updates. Comprehensive documentation and diagnostics tools are essential for troubleshooting and repairs. The design should support scalability, enabling the integration of new technologies and enhancements without significant overhauls. Regular software updates should be streamlined to address vulnerabilities and add new features. These requirements ensure that drones remain functional, secure, and up-to-date with minimal downtime and effort. 17 | P a g e 3-CHAPTER THREE: SYSTEM REQUIREMENTS 18 | P a g e 3.1 CHALLENGES Developing our simulated security drone system and mobile app comes with challenges. We must ensure realistic simulation, smooth integration of the drone and app, solid security, scalability, and user-friendly design. Due to high cost of hardware, we chose simulation and left hardware tasks to hardware specialists. Overcoming these challenges careful planning and teamwork. 3.2 KEY BENEFITS Improved Security Surveillance: The project enhances surveillance capabilities, enabling real- time monitoring. Remote Monitoring: Users gain the ability to monitor security situations remotely. Scalability: The solution can adapt to increased demand without sacrificing performance, ensuring its effectiveness as operations expand. User Empowerment: The intuitive mobile application interface allows users to control the drone. Drone simulation: ensures component integration well before building real prototype and visualize how it will be in real life. 3.3 SOFTWARE FEASIBILITY 3.3.1 Economic Feasibility Economically, the project looks promising because it saves money up front by employing simulation instead of purchasing expensive hardware. It is also adaptable, meaning it can accommodate a variety of budgets and needs. By determining whether the advantages outweigh the expenses, we can show that it is a cost-effective way to improve security surveillance. 3.3.2 Technical Feasibility To deploy the application, the only technical aspects needed are mentioned below: Operating environment Ubuntu 20.04 (or similar Linux distribution). Gazebo Simulation. Visual Studio Code. ROS 2 (Robot Operating System 2). Flutter Mavproxy / QGround Control 19 | P a g e 3.3.3 Behavioral Feasibility ensuring that the drone's controls are intuitive and user-friendly, and that it can operate reliably under expected conditions (various weather scenarios, different terrains). It also involves verifying that the drone's autonomous functions, such as navigation perform as expected without requiring excessive manual intervention. In addition, the drone must follow safety regulations, successfully handle emergency circumstances, and integrate seamlessly into existing workflows and regulatory frameworks. Behavioral feasibility assures that the drone system is not only technically sound, but also practical and effective in real-world applications. 20 | P a g e 4-CHAPTER FOUR: SYSTEM ANALYSIS 21 | P a g e 4.1 OVERVIEW Our system comprises diverse components catering to wide range of user needs. The first part facilitates drone simulation, the second part focuses on mobile application development, and the third part ensures seamless integration between both. 4.2 GOALS Our system has many goals to achieve here we will explain in detail: - Develop a simulated drone capable of autonomous flight and security tasks. - Develop a mobile application for monitoring and communicating with the drone. - Establish seamless communication between the drone and the mobile application. - Develop a user-friendly system for ease of operation and maintenance. 4.3 DIAGRAMS 4.3.1 Use Case In system analysis, one of the graphical representations of data movement through the system is the use case diagram which provides a story of how a system, and its actors, will be utilized to achieve a specific goal. The main components of use case diagram: Actors: A role that a user plays with respect to the system, including human users and other systems. Use case: A set of scenarios that describe an interaction between a user and a system, including alternatives. System boundary: rectangle diagram representing the boundary between the actors and the system. Association: communication between an actor and use case; represented by a solid line. The figure shows the ability of the User, Administrator, and Security personnel. End Users Utilize the security system for surveillance, login and sign up. Administrator Configures and manages the system. Security Personnel Monitors and controls the security drone via the mobile application. 22 | P a g e Figure 4.3.1 Use case 23 | P a g e 4.3.2 Flowchart diagram An activity diagram is a type of diagram used in Unified Modelling Language (UML) to represent the flow of activities or operations in a system. It is particularly useful for modelling the dynamic aspects of a system, such as the workflow. Figure 4.3.2 24 | P a g e 5-CHAPTER FIVE: FUNCTIONALITY 25 | P a g e 5.1 Simulated Drone Functionality 5.1.1Autonomous Navigation Description: The simulated drone navigates autonomously within the Gazebo simulation environment and QGround control station. ROS 2 nodes: subscribe to the flutter node for waypoints then publishes to another node for drone initialization. MAVLink: The protocol used for communication between drones and ground control stations MAVProxy: A command-line-based ground control station software that uses MAVLink. MAVROS2: A ROS 2 package that bridges ROS 2 and MAVLink, allowing integration between ROS 2 applications and MAVLink-enabled drones. Sensor Integration: allow developers to create realistic and complex environments for testing autonomous navigation algorithms. Each sensor type has specific parameters that can be adjusted to mimic real-world conditions, including noise, drift, resolution, and environmental interactions. This simulated data is crucial for validating the performance and robustness of navigation systems before deploying them in real-world applications. - GPS (Global Positioning System) - IMU (Inertial Measurement Unit) - LiDAR (Light Detection and Ranging) - Sonar/Ultrasonic Sensors - Barometer/Altimeter - RADAR (Radio Detection and Ranging) - Wheel Encoders - Proximity Sensors (IR) 5.1.2Communication with Mobile App Description: The simulated drone communicates with the mobile application. Data Transmission: send way points to the simulated drone then the drone stream videos for area where flies around it. Communication Technology: Communication is facilitated using ROS 2- Flutter Bridge. 5.1.3 Video Streaming to App Description: The drone streams video feed to the mobile application. Implementation: Utilizes camera sensors on the drone to capture video. Transmission: Video data is transmitted in real-time to the app for display. 26 | P a g e 5.2Mobile Application Functionality 5.2.1 User Interface Description: The mobile application boasts a user-friendly interface designed using Flutter. Splash Screen: Provides an app logo when the app is launched. Login and Signup Screens: Facilitate user authentication and account creation. Sign Up Page: Enables new users to create an account within the app. Home Page: Serves as the main screen, providing access to main app functionality to make drone start to fly after sending waypoints to it in the next app page. Waypoints Page: Allows users to input waypoints that send to drone node by sending waypoints to firestore cloud to be called by drone for the drone's navigation. - Firebase is a cloud database providing diverse services such as authentication, cloud Firestore , and other services. However, we only utilize these two services. - Cloud Firestore is a database where we can upload data and read from it. This is what we are doing in the application. When the user wants to move the drone, they input the locations they want the drone to go to on this page. These locations are stored in the database, and the drone subsequently retrieves this data and moves accordingly based on it. Video streaming Screen: Display videos sent by drone. 5.2.2 Authentication and Security Description: The application ensures secure access via firebase authentication mechanisms. User Authentication: Login and Registration authentication processes are handled securely. Data Security: firebase ensures data-at-rest security 5.3 System Integration 5.3.1Integration Architecture Description: The overall system architecture integrates the simulated drone and the mobile application. Components Interaction: The user initializes the flutter app to send the waypoints to firebase. - Firebase acts as a cloud to save the exchanged data between flutter and ROS 2. - The node subscribes to the info, prints it on the terminal then writes it to file and saves it. - Initialize the QGround control, Mavproxy, and the drone model, run the nodes. - Insert the waypoints file to mavproxy to initialize the auto flight. - Fly, capture live streaming video and send it to ROS 2 node that publishes it to the firestore and displays it on the flutter app. 27 | P a g e Figure 4.3.2 28 | P a g e 5.4 Testing and Validation 5.4.1Testing Procedures Description: Outline the testing procedures for validating the integration and functionality of the drone simulation, Flutter app, and ROS 2 node. And specify the sequence of steps for each testing phase, including setup, execution, and verification. Test Cases: Develop specific test cases relevant to Hawkeye: 1- Autonomous Flight Functionality: Test Case 1: Verify that the drone simulation successfully receives navigation commands from the Flutter app. Test Case 2: Ensure that the ROS 2 node accurately interprets and processes the received navigation commands to generate waypoints. Test Case 3: Validate the format and content of the generated waypoints file, ensuring compatibility with the MAVProxy editor. 2- Real-Time Video Transmission: Test Case 4: Confirm that the drone streams real-time video to the Flutter app without significant latency. Test Case 5: Verify the clarity and stability of the video feed displayed in the Flutter app. 5.4.2 Validation Results Description: the result of testing was promising as the initial project requirements ensured they accurately reflect the desired functionality and objectives of the system. Performance Metrics: Waypoint Transmission Latency: Performance Metric: Measure the time taken for the Flutter app to send navigation commands to the ROS 2 node and for the ROS 2 node to process and transmit waypoints to the drone simulation. Target: Minimize latency to ensure real-time responsiveness and accurate waypoint navigation. Issues Identified: High latency may result in delays in waypoint transmission, impacting the drone's ability to navigate autonomously. 29 | P a g e Video Streaming Quality: Performance Metric: Assess the clarity, resolution, and stability of the real-time video feed transmitted from the drone to the Flutter app. Target: Achieve high-quality video streaming to provide users with clear and immersive visuals of the drone's surroundings. Issues Identified: Poor video quality, buffering, or frame drops may degrade the user experience and hinder situational awareness during drone operation. System Responsiveness: Performance Metric: Evaluate the responsiveness of the system to user inputs, such as waypoint commands and control adjustments. Target: Ensure prompt execution of commands and smooth interaction between the Flutter app, ROS 2 node, and drone simulation. Issues Identified: Lag or unresponsiveness in executing commands may lead to a disjointed user experience and hinder effective drone control. Compatibility with MAVProxy Editor: Performance Metric: Verify the compatibility of the generated waypoints file with the MAVProxy editor for autonomous flight planning. Target: Ensure seamless integration with the MAVProxy editor to enable users to easily upload and execute flight plans on the drone. Issues Identified: Incompatibility or formatting errors in the generated waypoints file may prevent successful uploading or execution of flight plans. User Interface Responsiveness: Performance Metric: Assess the responsiveness and fluidity of the Flutter app's user interface during interaction and navigation. Target: Provide users with a smooth and intuitive interface for controlling the drone and accessing real-time video feeds. Issues Identified: UI lag, glitches, or unresponsive controls may frustrate users and impede their ability to effectively operate the drone and view video streams. 30 | P a g e User Feedback: 1- Intuitive Interface: Feedback: Users praised the intuitive design of the Flutter app interface, noting its simplicity and ease of use for controlling the drone and accessing real-time video feeds. Impact: the intuitive interface enhances user experience and facilitates smooth interaction with the drone simulation system. 2- Responsive Controls: Feedback: appreciated responsiveness of the controls within the Flutter app, highlighting the seamless execution of navigation commands and adjustments during drone operation. Impact: control responsiveness reflects the effectiveness of the system in translating user inputs into immediate actions, enhancing user satisfaction and confidence in drone control. 3-High-Quality Video Streaming: Feedback: the high-quality and stable video streaming capability of the system, noting the clear and immersive visuals provided by the real-time video feed from the drone. Impact: video streaming quality indicates that the system delivers an engaging and informative viewing experience, enabling users to effectively monitor the drone's surroundings. 4-Efficient Waypoint Transmission: Feedback: efficiency of the system in transmitting navigation waypoints from the Flutter app to the ROS 2 node and subsequently to the drone simulation, nothing minimal latency and reliable waypoint execution. Impact: waypoint transmission efficiency signifies that the system enables seamless and timely execution of autonomous flight plans, enhancing user confidence in the system's reliability and performance. 5-Smooth Integration with MAVProxy Editor: Feedback: seamless integration of the generated waypoints file with the MAVProxy editor, highlighting the ease of uploading and executing flight plans on the drone. Impact: integration with the MAVProxy editor indicates that the system simplifies the flight planning process, empowering users to efficiently create and execute autonomous missions with the drone. 31 | P a g e 6-CHAPTER SIX: IMPLEMENTATION 32 | P a g e 6.1 System Architecture 6.1.1Overview Description: Provide an overview of the system architecture. Components: Simulated Drone: Operates within the Gazebo simulation environment, mavproxy ,mavlink , mavros 2, and QGround control. Mobile Application: Developed using Flutter framework. ROS 2 Nodes: Facilitate communication between the drone and the app. Interactions: The mobile app communicates with the drone via ROS 2 nodes, allowing users to communicate with drone's navigation and receive video feed. 6.2 Simulated Drone 6.2.1 Gazebo Simulation Setup Description: The Gazebo simulation environment provides a virtual space for the drone to operate. World Configuration: since the gazebo is a mesh – tree, we must insert the model and build the world every time we need to initialize it. Setup Ubuntu 22.04 as dual booting to run Gazebo efficiently Drone Model: Iris- with standoffs and camera. Figure 6.2.1 Simulated Drone 33 | P a g e 6.2.2 ROS 2 Integration Description: The drone is integrated with ROS 2 for communication. Nodes and Topics: ROS 2 nodes handle communication between the drone and the mobile app through designated topics. - Install ROS 2 using ROS 2 Humble Documentations Setup work space for ROS2 Mkdir src to include our packages Each package includes its nodes 6.2.3 Autonomous Navigation Implementation Path Planning: takes the saved file with the coordinates sent from the application and insert it to mavproxy GUI to make the drone navigate autonomously Code Snippets: drone takes waypoints files to be read by mavproxy for Autonomous Navigation. Figure 6.2.3 Way points 34 | P a g e Figure 6.2.3 Drone on Ground station 35 | P a g e 6.3 Mobile Application 6.3.1 Development Environment Tools and Frameworks: The mobile application is developed using Flutter framework and Dart. Setup: The development environment includes necessary dependencies such as Firebase plugins. Firebase CLI Overview: Description: The Firebase CLI is a set of commands that can be run in the command line interface (CLI) to connect Firebase with Flutter, ROS2, or any other platform. Installation: Firebase CLI must be installed on the device first to use these commands. Authentication Commands: firebase login: Allows logging in with the account created on the Firebase console website. firebase projects: list: Lists the projects associated with the logged-in account. After running firebase projects: list, additional steps are provided to connect the project, such as selecting it from the list and choosing which services to use. Firebase Overview: Description: Firebase is a cloud database. It offers various services like authentication and cloud Firestore. However, we are only utilizing these two services. Cloud Firestore: This database allows us to upload data and also read from it. In our application, when the user wants to move the drone, they input the locations they want the drone to go to on this page. These locations are then stored in the database, and the drone subsequently retrieves this data and moves accordingly based on it. Firebase CLI and Its Benefits: Description: The Firebase CLI serves as a faster and easier alternative to the Firebase website. It facilitates the connection of Firebase with different platforms and expedites the process. 6.3.2 User Interface Implementation Design: The UI design follows Design principles for a cohesive user experience. Screens and Layouts: The app includes screens for login, signup, waypoints input, and home navigation. 36 | P a g e Splash Screen: Provides a app logo when the app is launched. Figure 6.3.2.1 37 | P a g e Login and Signup Screens: Facilitate user authentication and account creation Figure 6.3.2.2 38 | P a g e Sign Up Page: Enables new users to create an account within the app. Figure 6.3.2.3 39 | P a g e Home Page: Serves as the main screen, providing access to main app functionality to make drone start to fly after sending waypoints to it in the next app page. Figure 6.3.2.4 40 | P a g e Waypoints Page: Allows users to input waypoints that send to drone node by sent waypoints to firestore cloud to be called by drone for the drone's navigation. Figure 6.3.2.5 41 | P a g e Firebase is a cloud database providing various services such as authentication, cloud Firestore , and other services. However, we only utilize these two services. Cloud Firestore is a database where we can upload data and also read from it. This is what we are doing in the application. When the user wants to move the drone, they input the locations they want the drone to go to on this page. These locations are then stored in the database, and the drone subsequently retrieves this data and moves accordingly based on it. Figure 6.3.2.6 42 | P a g e Video streaming Screen: Display videos sent by drone. Figure 6.3.2.7 Navigation: Users can navigate between screens using Flutter's navigation system. First The application begins by displaying a logo screen upon opening. Following this it presents the user with a Login and Sign-up page then, it navigates to home page, then to video displaying page. 43 | P a g e 6.3.3 Communication with Drone - First launch the simulation: Run single UAV Open a terminal and run the commands below: cd ~/ardupilot/Tools/autotest./sim_vehicle.py -v ArduCopter -f gazebo-iris --console -I0 Open a new terminal and run: gazebo --verbose ~/ardupilot_gazebo/worlds/iris_ardupilot.world After seeing "APM: EKF2 IMU0 is using GPS" message in console, you can use the commands below in the first terminal for takeoff test: mode guided arm throttle takeoff 5 Communication Technologies: Ros2 Flutter bridge is used for real-time communication between the app and ROS 2. Data Handling: Data packets containing control commands and video feed are exchanged between the app and the ROS 2. Code Snippets: this code sends waypoints to drone via firestore cloud. 44 | P a g e Figure 6.3.3 45 | P a g e 6.3.4 Authentication and Security Authentication Mechanisms: Firebase authentication is implemented for secure user login and signup processes. Data Security: firestore provides data encryption for data-at-rest. Code Snippets: firebase login: Allows logging in with the account created on the Firebase console website. 6.4 System Integration 6.4.1 Integration Approach Strategy: The integration strategy involves establishing a seamless connection between the simulated drone and the mobile application using ROS 2 middleware. Challenges: some potential challenges that arise during the integration process of the simulated drone and the mobile application using ROS 2 middleware: 1- Compatibility Issues: - Challenge: Ensuring compatibility between the ROS 2 middleware and both the simulated drone and the mobile application platforms (e.g., Android, iOS). - Solution: Thoroughly researching compatibility requirements and leveraging ROS 2 libraries and tools that support the targeted platforms. Testing compatibility early in the development process can help identify and address compatibility issues promptly. 2-Data Synchronization: - Challenge: Synchronizing data between the simulated drone and the mobile application in real- time, especially considering potential network delays and latency. - Solution: Implementing robust synchronization mechanisms, such as message queuing or timestamped data exchange protocols, to ensure timely and accurate data transfer between the components. Optimizing network configurations and employing efficient data serialization techniques can also help mitigate synchronization challenges. 3-Communication Protocol Complexity: - Challenge: Managing the complexity of communication protocols between the simulated drone, mobile application, and ROS 2 middleware, including message formatting, encoding, and decoding. - Solution: Utilizing standardized communication protocols supported by ROS 2, such as DDS (Data Distribution Service), and leveraging ROS 2 middleware features for message serialization and deserialization. Implementing clear documentation and abstraction layers can help simplify the integration process and facilitate protocol management. 46 | P a g e 4-Resource Constraints: - Challenge: Dealing with resource constraints, such as limited computational power and memory, particularly on mobile devices, while ensuring efficient operation of the integrated system. - Solution: Optimizing resource utilization through efficient code design, minimizing unnecessary computations, and leveraging hardware acceleration where possible. Implementing strategies such as data compression and message prioritization can help mitigate resource constraints and optimize system performance. 5-Security Considerations: - Challenge: Addressing security concerns related to data transmission and communication between the simulated drone and the mobile application, especially when operating over public networks. - Solution: Implementing secure communication protocols, such as TLS (Transport Layer Security), and encrypting sensitive data transmitted between the components. Employing authentication mechanisms and access controls to restrict unauthorized access to the system can help enhance security. 6-Testing and Debugging Complexity: - Challenge: Testing and debugging the integrated system across multiple components and platforms, including the simulated drone, mobile application, and ROS 2 middleware. - Solution: Implementing comprehensive testing strategies, including unit testing, integration testing, and system testing, to validate the functionality and performance of each component and the integrated system as a whole. Utilizing debugging tools and logging mechanisms to identify and troubleshoot issues efficiently can streamline the testing and debugging process. 6.4.2 Data Flow Implementation Data Flow: The application includes a login feature for authentication and authorization. After logging in, the user can enter the location that the drone needs to fly to for capturing videos. Once the user provides the waypoint, the drone flies to the specified location and streams live video footage. The streaming videos captured by the drone are then sent back to the application, where they are displayed for the user to view in real- time. Middleware: ROS 2 middleware facilitates message passing and data exchange between the components. - MAVLink: The protocol used for communication between drones and ground control stations. - MAVProxy: A command-line-based ground control station software that uses MAVLink. - MAVROS2: A ROS 2 package that bridges ROS 2 and MAVLink, allowing integration between ROS 2 applications and MAVLink-enabled drones. 47 | P a g e Code Snippets: 1- Code that takes waypoints from flutter app via firestore cloud then put it on a text file with specific heading MAVProxy can read. Figure 6.4.2.1 48 | P a g e 2- Code that sends streaming videos to application. Figure 6.4.2.2 49 | P a g e 6.4.3 Testing and Debugging Testing Methods: 1- Unit Testing: - Description: Test individual components or modules of the system in isolation to verify their correctness and functionality. - Implementation: Develop unit tests for key functionalities of the simulated drone, mobile application, and ROS 2 middleware components. Test cases should cover various scenarios and edge cases to ensure robustness. 2- Integration Testing: - Description: Test the interactions and integration between different components of the system to ensure seamless communication and functionality. - Implementation: Conduct integration tests to verify the communication between the simulated drone and the mobile application via ROS 2 middleware. Test cases should validate message passing, data synchronization, and protocol adherence. 3- System Testing: - Description: Test the system as a whole to evaluate its behavior and performance under real- world conditions. - Implementation: Perform system tests to assess the end-to-end functionality of the integrated system, including simulated drone control, mobile application interaction, and ROS 2 middleware operation. Test cases should cover typical usage scenarios and stress testing to identify potential issues. 4-User Acceptance Testing (UAT): - Description: Involve end-users to evaluate the system's usability, effectiveness, and satisfaction with the user interface and features. - Implementation: Conduct UAT sessions with target users to gather feedback on the mobile application's interface, control mechanisms, and overall user experience. Incorporate user feedback to iterate on the design and improve user satisfaction. 5-Performance Testing: - Description: Evaluate the performance of the system under various conditions, such as different network speeds, message loads, and computational loads. - Implementation: Perform performance tests to measure latency in message transmission, responsiveness of the mobile application interface, and resource utilization of the simulated drone and mobile devices. Analyze test results to identify performance bottlenecks and optimize system efficiency. 50 | P a g e 6-Security Testing: -Description: Assess the security of the system to identify vulnerabilities and ensure the confidentiality, integrity, and availability of data and communication channels. - Implementation: Conduct security tests to verify secure communication protocols, encryption mechanisms, and access controls implemented in the system. Perform penetration testing and vulnerability assessments to identify and mitigate security risks. 7- Regression Testing: -Description: Re-test previously validated functionalities to ensure that recent changes or updates have not introduced new defects or regressions. - Implementation: Execute regression tests after system updates, bug fixes, or enhancements to verify the continued correctness and stability of the integrated system. Automate regression tests where possible to streamline the testing process. Debugging Tools: 1- ROS 2 Command Line Tools: -Description: ROS 2 provides command-line tools for debugging and monitoring various aspects of the system. - Usage: Tools such as ros2 topic echo, ros2 node info, and ros2 service list can be used to inspect topics, nodes, and services, respectively, to diagnose communication issues and monitor data flow between components. 2-RViz: - Description: RViz is a visualization tool for ROS that allows you to visualize data from sensors, such as cameras and lidars, and display robot models and trajectories. - Usage: Use RViz to visualize the simulated drone's sensor data, such as camera feeds or simulated lidar scans, to verify their correctness and identify any anomalies or discrepancies. 3-Gazebo Simulator: - Description: Gazebo is a physics-based simulator often used in ROS for simulating robots and their environments. - Usage: Use Gazebo to simulate the behavior of the drone in various environments and scenarios, allowing you to debug control algorithms, sensor fusion, and collision detection. 51 | P a g e 4-ROS Debugging Tools: - Description: ROS provides various debugging tools, including logging mechanisms and runtime introspection utilities. - Usage: Utilize ROS logging macros (ROS_INFO, ROS_DEBUG, etc.) to output diagnostic messages and debug information from nodes. Additionally, use rqt_console and rqt_logger_level to monitor and adjust logging levels dynamically during runtime. 5-Mobile Application Debugging Tools: -Description: Mobile development platforms (e.g., Android Studio for Android or Xcode for iOS) provide debugging tools for diagnosing issues in mobile applications. -Usage: Use the built-in debuggers and profilers in Android Studio or Xcode to inspect variables, analyze performance, and identify runtime errors or crashes in the mobile application code. 6-Wireshark: - Description: Wireshark is a network protocol analyzer that allows you to capture and inspect network traffic. - Usage: Use Wireshark to capture network packets exchanged between the simulated drone, mobile application, and ROS 2 middleware, helping to diagnose communication issues and protocol errors. Test Results: 1- Unit Testing Results: - Successful unit tests ensure that individual components, such as the drone simulation, mobile app features, and ROS 2 nodes, function correctly in isolation. 2-Integration Testing Results: - Integration testing verifies the communication and interaction between different components of the system, ensuring seamless integration and interoperability. 3-System Testing Results: - System testing evaluates the end-to-end functionality and performance of the integrated system, including simulated drone control, mobile app responsiveness, and ROS 2 middleware operation. 4-User Acceptance Testing (UAT) Feedback: - gathering feedback from end-users to evaluate the usability, effectiveness, and satisfaction with the integrated system. indicating satisfaction with the mobile app interface, ease of drone control, and quality of video streaming. 52 | P a g e 5-Performance Testing Metrics: - Performance testing assesses the system's performance under various conditions, measuring factors such as latency, responsiveness, and resource utilization. 6-Security Testing Findings: - identifies vulnerabilities and ensures the confidentiality, integrity, and availability of data and communication channels. 6.5 Deployment 6.5.1 Deployment Environment Environment: The deployment environment for the project consists of two main components: the simulated drone and the mobile application. Simulated Drone: The simulated drone operates within a Gazebo simulation environment on a local machine. This environment includes various configurations and models to replicate real- world scenarios for the drone. - QGround Control: provides ground station for the drone operation - Mavproxy: provides GUI to insert waypoints file and, mapping and arming the drone. Mobile Application: The mobile application is built using Flutter and can be deployed on both Android and iOS devices. The application connects to the Firebase backend for data storage and retrieval. Infrastructure: Cloud Services: Firebase is utilized as the primary cloud service for authentication, real-time database (Firestore), and storage. This ensures seamless data synchronization and accessibility across different network environments. Local Servers: The Gazebo simulation and ROS 2 nodes run on a local server or a powerful development machine that can handle the computational demands of the simulation and real-time processing. 53 | P a g e 6.5.2 Deployment Process Process Steps: Preparation: Ensure all dependencies and libraries for both the mobile application and the Gazebo simulation are installed. This includes setting up Flutter, Firebase CLI, ROS 2, Gazebo, Ardupilot, mavros2, mavproxy, and mavlink. Configuration: Configure Firebase for the mobile application and ROS 2 by setting up authentication, Firestore, and any other required services. This involves initializing Firebase in the Flutter project and adding necessary configurations. Building: Build the mobile application using Flutter. This includes compiling the code and preparing it for deployment on both Android and iOS platforms. - Build the ROS 2 node by navigating to the workspace and write ‘ Colcon build ‘in the terminal to build the packages after every change in the code. Then source the workspace. Simulation Setup: Set up the Gazebo simulation environment and launch the model, mavproxy, and necessary ROS 2 nodes for the simulated drone. This includes configuring the simulation world, installing nodes, setting waypoints, and ensuring communication with the mobile app. Deployment: Deploy the mobile application to the target devices (Android/iOS). Deploy the simulation setup on the local server or development machine. Testing: Conduct thorough testing to ensure all components function as expected. This includes testing the mobile app, Firebase integration, the communication between the app and the ROS 2, ros2 – mavros2 communication, mavproxy and drone communication. Automation: CI/CD Tools: Use Continuous Integration and Continuous Deployment (CI/CD) tools such as GitHub Actions or Bitrise for automating the build, test, and deployment process of the mobile application. Firebase CLI Scripts: Utilize Firebase CLI scripts for automated setup and management of Firebase services. This includes automating tasks such as database migrations and environment setup. Mavproxy CLI: used to arm the drone and take it off then change to auto mode to accomplish fully autonomous navigation. 54 | P a g e Challenges: Network Issues: Ensuring stable communication between the mobile application and the simulated drone, especially when they are on different networks. Resolution: Implement robust error handling and retry mechanisms in the communication protocols. Compatibility: Ensuring compatibility across different devices and operating systems for mobile applications. Resolution: Perform extensive testing on various devices and use platform- specific configurations to handle differences. Simulation Performance: Managing the performance and resource utilization of the Gazebo simulation environment. Resolution: Optimize the simulation setup and utilize powerful hardware to run the simulations smoothly. 6.5.3 Maintenance and Updates Maintenance Plan: Monitoring: Regularly monitor the system for any issues or performance bottlenecks. Use monitoring tools and logs to identify and resolve problems promptly. User Feedback: Collect and analyze user feedback to identify areas for improvement and address any usability issues. Update Mechanism: Automated Updates: Use Firebase Remote Config to push minor updates and configurations to the mobile application without requiring a full redeployment. App Store Updates: For major updates, use the respective app stores (Google Play Store and Apple App Store) to distribute new versions of the mobile application. Patch Management: Implement a systematic approach for applying patches and security updates to both the mobile application and the simulation environment. This includes automated scripts for deploying patches and ensuring all components are up to date. 55 | P a g e 6.4 FRONT-END OF APPLICATION 6.4.1 FLUTTER 6.4.1.1 Why Flutter? Flutter is an open-source software development kit which enables smooth and easy cross- platform mobile app development. You can build high quality natively compiled apps for iOS and Android quickly, without having to write the code for the two apps separately. All you need is one codebase for both platforms. Flutter has numerous advantages over its competitors. These advantages are inherent in the programming language and in the set of development tools that allow Flutter to solve issues that other languages cannot cope with. 1. One codebase for all platforms Gone are the days of having to write a code for Android and another codebase for iOS devices. Flutter‟s code reusability allows you to write just one codebase and use it on not only for mobile Android and iOS but even for web, desktop and more. This cuts development time significantly, removes cost and enables you launch your app that much faster. 2. “It is all Widgets” principle offers countless possibilities Flutter‟s custom widgets are an absolute delight when it comes to creating great visuals for your app. At the same time, you don‟t have to worry about the UI on different devices. 3. Rich libraries Flutter uses the Sika Graphics Library which is a fast and mature open source graphics library. It redraws the UI every time a view changes. The result? A quick loading and smooth app experience. 4. Fast testing with hot reloads The hot reload feature make the app development much quicker. With Flutter there is no need to reload the app to see every single change you make in the code. You can easily make changes in your app in real time, so you have more opportunity to experiment with the code and fix bugs on the go. 6.4.1.2 Some Libraries used cupertino_icons: ^1.0.2 firebase_core: ^2.24.2 get: ^4.6.6 google_fonts: ^6.1.0 firebase_auth: ^4.16.0 shared_preferences: ^2.2.2 cloud_firestore: ^4.14.0 App Features : Login. Register. Home. 56 | P a g e Waypoint page. Display Video streaming. 6.4.2 Why Ros 2? ROS (Robot Operating System) 2 is chosen over ROS 1 for several reasons, primarily related to improvements in architecture, performance, and functionality. Here are some key reasons why ROS 2 is often preferred: 1. Improved Communication Middleware: DDS (Data Distribution Service): ROS 2 uses DDS as its communication middleware, which offers better performance, reliability, and flexibility compared to the custom ROS 1 communication system. DDS is an industry standard for real-time systems and provides features such as quality of service (QoS) settings that can be tuned for specific application needs. 2. Real-Time Capabilities Real-Time Performance: ROS 2 is designed with real-time performance in mind, allowing for deterministic behavior and better handling of timing constraints critical for robotic applications. This is essential for tasks that require precise timing, such as robot control and sensor fusion. 3. Better Support for Embedded Systems Lightweight and Scalable: ROS 2 is designed to be more modular and lightweight, making it suitable for a wider range of hardware, including resource-constrained embedded systems. This allows ROS 2 to be used in a broader spectrum of robotics applications, from small IoT devices to large industrial robots. 4. Security Improvements Built-In Security: ROS 2 incorporates security features such as authentication, encryption, and access control directly into the core framework. This is crucial for applications where security is a priority, such as in industrial, healthcare, and autonomous systems. 57 | P a g e 5. Cross-Platform Support Windows and Other OS Support: While ROS 1 was primarily developed for Linux, ROS 2 offers better cross- platform support, including Windows and real-time operating systems (RTOS). This expands the potential user base and makes it easier to integrate ROS 2 into diverse environments. 6. Modular Architecture More Modular: ROS 2 is designed with a more modular architecture, allowing for greater flexibility in system design. This modularity helps in creating more maintainable and scalable robotic systems. 7. Backward Compatibility and Migration Migration Tools: While transitioning from ROS 1 to ROS 2 involves some effort, there are tools and guidelines provided by the ROS community to assist in the migration process. This ensures that existing ROS 1 projects can be ported to ROS 2 with a structured approach. 6.4.2.1 Some Libraries used in ROS 2 Rclpy Colcon Time OS Node 58 | P a g e Future Works Future Work: Integrating Hardware for Enhanced Security Surveillance As we reflect on the achievements of Hawkeye, it becomes evident that there are exciting opportunities for further advancement and innovation. One of the key areas we aim to explore in the future is the integration of hardware components to augment the capabilities of our simulated drone system and mobile application. This next phase of development holds the promise of elevating our security surveillance solution to new heights, enabling more robust obstacle detection and security enforcement. Creating Custom Drone Hardware Central to our future work is the creation of custom hardware tailored specifically for the needs of our security drone system. This entails the design and development of drone hardware components such as sensors, cameras, processors, and communication modules. By customizing the hardware to our specifications, we can optimize performance, reliability, and compatibility with our software framework. Implementing Obstacle Detection and Security Measures Once the custom hardware is developed and integrated into the drone system, we can leverage its capabilities to enhance obstacle detection and security enforcement. Advanced sensors, such as LiDAR and infrared cameras, can be employed to detect obstacles with greater precision and accuracy, even in challenging environmental conditions. Additionally, onboard processing capabilities can enable real-time analysis of sensor data, allowing the drone to autonomously respond to security threats and take proactive measures to mitigate risks. Implementing object detection and tracking the implementation of advanced object detection and tracking capabilities within the drone simulation system is proposed. This enhancement would involve integrating machine learning algorithms and computer vision techniques to enable the simulated drone to detect and track objects in real-time. Such functionality would significantly expand the system's potential applications, including autonomous navigation, obstacle avoidance, and surveillance tasks. By leveraging ROS 2's robust middleware and leveraging the computational power of modern mobile devices, the integration of object detection and tracking would provide users with a more dynamic and intelligent simulation experience, paving the way for more sophisticated and autonomous drone operations. 59 | P a g e Conclusion In conclusion, the future development of our security surveillance project holds immense potential for advancing the capabilities of autonomous drone systems. By integrating custom hardware components, implementing advanced obstacle detection algorithms, object detection and tracking and enhancing security enforcement measures, we aim to create a comprehensive solution that addresses the evolving needs of security surveillance. With continued innovation and collaboration, we are confident in our ability to redefine the standards of security technology and make meaningful contributions to enhancing safety and security in diverse environments 60 | P a g e CONCLUSION In conclusion, Hawkeye successfully integrated a simulated drone with a mobile application using ROS 2, demonstrating the potential of combining advanced robotics with user-friendly mobile interfaces. We achieved significant milestones, including robust simulation, effective communication, and autonomous navigation. Despite the challenges faced, our project stands as a testament to the power of interdisciplinary collaboration and technological innovation. This work lays a solid foundation for future advancements in autonomous drone systems, promising enhanced security surveillance and broader applications. 61 | P a g e Recommendations To further enhance the capabilities and effectiveness of our security surveillance system, we recommend the following actions: 1.Collaboration with Industry Experts: Partner with industry leaders in hardware manufacturing and AI development to leverage their expertise and accelerate the development of custom drone components and advanced algorithms. 2.Field Testing and Iteration: Conduct extensive field testing of the integrated hardware and software systems in various real-world environments to identify potential issues and refine the technology. 3. User Feedback Integration: Gather and incorporate feedback from end-users, such as security personnel and surveillance operators, to ensure the system meets practical needs and usability standards. 4.Scalability and Cost Optimization: Focus on designing scalable solutions that can be deployed across different environments and optimizing costs to make the technology accessible to a broader range of users. 62 | P a g e REFERENCES Flutter. (n.d.). Docs | Flutter. https://docs.flutter.dev/ FlytBase. (2023). Automate Your Site Security System with FlytBase. Fully Autonomous Drone Security Solution | FlytBase. https://www.flytbase.com/security-and-surveillance Monemati. (2023). multiuav-gazebo-simulation. monemati/multiuav-gazebo- simulation. https://github.com/monemati/multiuav-gazebo-simulation Open Robotics. (2023). Docs / Gazebo Harmonic. Gazebo - Docs: Tutorials. https://gazebosim.org/docs/harmonic/tutorials Open Robotics. (2024). ROS 2 Documentation | ROS 2 Humble. ROS 2 Documentation - ROS 2. https://docs.ros.org/en/humble/index.html 63 | P a g e