Cargo delivery drone

Hi,

I’m working on a new UAV that comes with a few tricky challenges. One of them is that it weighs around 14 kg but carries a detachable payload of 11 kg. So, it takes off at 25 kg and, after delivering the package mid-mission, continues flying at just 14 kg. The moments of inertia also change significantly, since the cargo is mounted below the main structure and once it’s released, the mass distribution shifts a lot. My concern is that the PID controllers are usually tuned for a specific flight condition, and I’m wondering if I could update the vehicle parameters (mass and inertia) mid-flight to help compensate for the payload drop.

Has anyone worked with drones like this before and could give me some help?

1 Like

Just an Idea, never tried it by myself.

Do flight testing with and without payload and tune the PID controller and note down all the parameters for rate and attitude control.

Create a custom module (code) which you can save in src/modules where you use param_set or param_set_no_notification to change the parameters mid flight using uORB.

I assume, you have assigned an RC channel to drop the payload, lets say channel 7. this channel can be used to switch from with payload to without payload gains in your custom module.

Try in SITL with gazebo or something else and check the behavior before performing directly on your drone.

1 Like

I have to study about this uORB. I never used it (or don’t even know I used, which is even worse), but I’ll see if your idea can work for me. Thank you for the answer!

I had the idea to do something like using a sensor in the gripper and when this sensor states that gripper is open (cargo released) it sends a signal and px4 changes the PID gains. To do it, I would need to write my own airframe and maybe some modules. Am I right?

I don’t think you need to write your own frame.
Yes, you have to write some modules for your use case.
How are you planning to open and close the grip? i assume it would be with any PWM signal from AUX or Main. In that case, your trigger point for PID parameter change can be PWM value of that specific channel. so let’s say PWM > 1000 means grip open and no payload then that can be used as trigger point.

1 Like

Does PX4 have this feature to change some parameters triggered by some signal? Or that is the module I should work on it?

That’s the module, you should work on.