Skip to content

This App controls a DJI drone using the DJI MSDK in coordination with the Traffic Control. This is a part of the AutonomousDroneDeliverySystem.

Notifications You must be signed in to change notification settings

Andreas-Menzel/ADDS-DJI-AndroidApp

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

56 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ADDS-DJI-AndroidApp

Bridging the Gap: Direct DJI Drone Control for Seamless Integration with the ADDS project

The ADDS-DJI-AndroidApp serves as a key component in the Autonomous Drone Delivery System project ecosystem, managing the interaction between your drone and the ADDS-FlightControl service.

Note: This application requires the ADDS-FlightControl service for data management and mission planning.

Setup

Discover the possibilities of the ADDS-DJI-AndroidApp without needing to connect to a DJI drone by simply installing the .apk file provided in the releases. This offers a great way to familiarize yourself with the app's interface and its features.

However, if you're eager to utilize this app with an actual DJI drone, there's a minor setup required. You'll need to update the flightControlUrl variable to match your ADDS-FlightControl instance. You can find this variable inside the /app/src/main/java/com/andreasmenzel/adds_dji/Managers/FlightControlManager.java file:

private final String flightControlUrl = "http://<flight_control_url>:<port>/";

After making this adjustment, you're ready to upload the app to your device using Android Studio. This will enable you to harness the full potential of the ADDS-DJI-AndroidApp, offering a seamless, efficient, and autonomous drone control experience.

Documentation

Comprehensive documentation for the ADDS-DJI-AndroidApp is readily available in the Javadoc folder of this repository. The Javadoc was generated by Android Studio and provides detailed information about the classes, methods, and data structures used in the application.

To access the documentation, navigate to the Javadoc folder and open the index.html file in a web browser. You can then browse through the documentation, which is organized by package and class.

How it Works

Upon launch, the ADDS-DJI-AndroidApp verifies all required permissions. Once these have been granted, you're able to select your drone's ID and then click "GO FLY" to enter the main screen.

Initialize App-Screen

At this stage, the app seamlessly links with the ADDS-FlightControl service, fetching the existing infrastructure data and initializing automatic updates if any modifications have been detected.

Initialize App-Screen

To ensure the reliability of the ADDS-DJI-AndroidApp and facilitate comprehensive testing, which is especially important for further development, multiple testing- and demo-modes have been implemented:

Takeoff/Landing

Tests the basic takeoff and landing functionality.

See this mode in action: Youtube

Takeoff/LandingDemo-Screen

VirtualStickBasic

This mode facilitates the testing of the DJI Virtual Stick functionality. In this mode, the app emulates a virtual remote, empowering it with the ability to control the drone as if manually operated by a pilot.

See this mode in action: Youtube

VirtualStickBasicDemo-Screen

VirtualStickCross

Similar to the VirtualStickBasic demo mode, the app also uses a virtual remote. However, in this case, the app manipulates the virtual joysticks to command the drone to execute a straightforward X or cross pattern flight path, effectively providing a more complex demonstration of the drone's capabilities.

See this mode in action (simulated): Youtube

See this mode in action (real-world): Youtube

VirtualStickCrossDemo-Screen

BasicWaypointMission

This mode allows you to manually control the drone while marking waypoints throughout the flight. Once marked, the drone can replicate the trajectory of your flight by revisiting these waypoints, providing a hands-off demonstration of the drone's navigational abilities.

See this mode in action: Youtube

BasicWaypointMissionDemo-Screen

InfrastructureWaypointMission

In the InfrastructureWaypointMission mode, the app not only utilizes the infrastructure data saved in and managed by the ADDS-FlightControl service, but also actively communicates with ADDS-FlightControl to ensure safe and orderly flight operations. Upon selecting the starting intersection and the list of corridors that the drone should follow, the app requests flight permissions from the ADDS-FlightControl service before the drone enters a flight corridor. This ensures that the drone has the appropriate clearances before it starts navigating along the designated flight paths, reinforcing the safety and efficiency of operations within the ADDS ecosystem. This mode offers a comprehensive demonstration of the drone's autonomous flight capabilities, emphasizing the integration and interactivity between the drone, the app, and the ADDS-FlightControl service.

See this mode in action: Youtube

InfrastructureWaypointMissionDemo-Screen

AdvancedWaypointMission

In the AdvancedWaypointMission mode, the app takes drone automation to a new level. Here, you only need to specify the destination intersection. Once the destination is set, the app communicates with the ADDS-FlightControl service to request a suitable flight path.

The ADDS-FlightControl service calculates the most efficient route for the drone to follow, which is typically the shortest and fastest path. In instances where the optimal path is unavailable due to other drones currently using or having reserved certain sections of the route, the ADDS-FlightControl system has the functionality to navigate around these constraints. It accomplishes this by calculating an alternate route that avoids the occupied corridors, thus ensuring the continuity of drone operations.

This mode represents the heart of the Autonomous Drone Delivery System, where complex path planning, real-time traffic management, and autonomous control come together to create a sophisticated and reliable drone navigation solution.

See this mode in action: Youtube

AdvancedWaypointMissionDemo-Screen

Feedback

Your feedback and suggestions are always welcome. Please feel free to raise an issue, submit a pull request, or contact me directly.

Disclaimer: Please remember that this software is provided 'as is', with no guarantees of suitability for any particular purpose or warranties of any kind, either expressed or implied.

💡 Clarification on Content Creation and Contributions

Please note that this README file, as well as the release notes associated with this repository, were created with the assistance of OpenAI's GPT-4, a powerful language model. However, it's important to emphasize that all other elements of this repository, including but not limited to documentation, code, images, etc., were personally created by me, unless explicitly stated otherwise. The AI model served solely as a tool to help formulate these textual content, while the conceptualization, execution, and finalization of the entire project were carried out independently.

About

This App controls a DJI drone using the DJI MSDK in coordination with the Traffic Control. This is a part of the AutonomousDroneDeliverySystem.

Topics

Resources

Stars

Watchers

Forks

Languages