Domain-specific Language for ArduPilot Drones

We are a team of researchers from Vanderbilt University and Carnegie Mellon University, working on a project to develop a domain-specific language (DSL) aimed at simplifying the process of drone application development by modeling commonly used drone features and behaviors. Your expertise in the field of ArduPilot drone development is highly valuable to us, and we would greatly appreciate your participation in answering some questions:

  1. Have you utilized any existing domain-specific languages for UAV development? If yes, kindly specify which ones and share your experience with them.

  2. As an ArduPilot developer, what specific challenges or pain points do you encounter while programming UAVs? Are there any aspects that you find particularly complex or time-consuming?

  3. What quality of service requirements for drone applications do you find difficult to verify within your current design workflow? For example, some of the requirements in this context could be (1) ensuring security guarantees for communication between the drone and the ground station, (2) maintaining the drone’s energy consumption below a certain threshold, and (3) ensuring the drone eventually visits all pre-defined waypoints.

  4. ArduPilot uses the MAVLink protocol, which currently lacks support for the encryption of communication traffic between the ground station and drone hardware. We are curious to know your perspective on why the encryption mechanism hasn’t been implemented so far. Additionally, have you encountered scenarios where encryption was needed? Are there any third-party libraries available for encryption, such as MAVROS plugins, that you are aware of?

  5. ArduPilot provides the option of using Lua scripting to add new behaviors without modifying the core flight code. Have you utilized the Lua script feature, and if so, what are some of your preferred features? Do you consider it a domain-specific language for drone development?

  6. In your expert opinion, what are the essential features and capabilities that a domain-specific language for UAV development should possess?

Furthermore, if you have any other insights, suggestions, or thoughts regarding the design of a domain-specific language for UAV development, we are eager to hear them. Your feedback is invaluable to the success of our research.

Thank you for considering our request. We genuinely appreciate your time and contributions.

Sincerely,
V-SPELLS Team from Vanderbilt University / Carnegie Mellon University

1 Like
  1. ROS using MAVROS as a MavLink bridge. But is is not great. Have high hopes on native ROS2 support.

  2. MAVROS is not great, we ended up having to extend it and improve it. Getting state information is sometimes difficult.

  3. Reliability is the main requirement for autonomous operation, as such state information for preventive maintenance, situational awareness, and problem mitigation are key.

  4. Not a problem at all, the modems have AES128 or AES256 hardware encryption. That is why is not addressed in Mavlink at all. No need for it.

  5. yes, it can extend the code beautifully.

  6. lightweight and fast. Please help us bring native ROS2 support to ardupilot.

1 Like

Hi Simon,

I’m actually a CMU student who just about to start my thesis on DSL for complex drone plan descriptions. Currently I am working in edge computing lab in CMU. Is there a way that I could reach out to your team members in CMU for any consultations?

Best,
Anthony(Xiangliang)

Hi Anthony,

It’s good to hear from you! Our team would love to chat with you.

You are welcome to reach out to us via email (Simon cchu2@andrew.cmu.edu, Eunsuk eunsukk@andrew.cmu.edu, Sumon sumonb@andrew.cmu.edu).

We appreciate your interest in our project!

Simon