Create new waypoint behavior

I’d like to run autonomous missions on a multi-rotor where the aircraft banks smoothly through waypoints as opposed the stopping/slowing, turning, and accelerating again. I’d like the multi-rotor to behave like a fixed wing aircraft and simply bank through the turns while maintaining speed, or decelerating a minimal amount when necessary (for example, in a sharp turn). I’m particularly interested in having this banking behavior for survey missions (lawnmower pattern), but I think it would also be useful to have this behavior for other waypoints missions.

I have tried achieving this by adjusting various existing parameters (as suggested in my other posts), but I have not found a way to achieve a true banking turn. I’m thinking I’ll need to create a custom waypoint type with the desired behavior. Can someone point me to where the existing waypoint behavior is in the PX4 stack? Can anyone suggest resources on creating a new type of waypoint/waypoint behavior?

Just wanted to update this thread since I know others are having the same issue with Alta X.

As @bresch mentioned here, he was awesome enough to add l1-style navigation logic to v1.12 of PX4, which is not yet in full release (thank you @bresch !).You can check out his pull request on GitHub here: https://github.com/PX4/PX4-Autopilot/pull/16376. If you use the master branch of PX4 it is already in there.

Unfortunately, in my case I need to wait for Freefly to update the Alta X’s firmware to include PX4 1.12 before I can utilize it on the Alta X I fly my lidar system on. My company does not want to take the risk of loading an “experimental” firmware on the aircraft before Freefly has tested it and put out an official release. A little overly cautious in my opinion, but not my decision in the end.

I have been in touch with Freely multiple times about this issue and they have assured me that they’re aware of the l1-style navigation logic being added to PX4 v1.12 and they are actively working on adding banked/smoother turns to waypoint missions in an upcoming version of the Alta X firmware. They have not told me when they expect that firmware to be released.

In the meantime, I’ll share some parameter changes that I’ve found useful in smoothing out the turns. It doesn’t result in a full banking turn, but it’s better than the default settings. Here is the most current set of parameters and their values I’ve been using:

MPC_Yaw_Mode: Along Trajectory
MPC_POS_Mode: Smooth Position Control
MPC_ Jerk_Auto: 4-6m/s (currently testing 5m/s)
MPC_Jerk_Max: 2.5-5m/s (currently using 3m/s)
Nav_Acc_Rad: 4-10m (currently using 6m)
YawRAuto_Max: 20-45 deg/s (currently testing 30deg/s)

If you would like Freefly to add banked turning behavior/l1-style navigation logic to the Alta X I would recommend emailing them to let them know it’s a feature you want if you haven’t already done so. The more people who let them know they need it the more likely/faster they will get it to us. For now, I hope the above parameter suggestions are helpful to some people.

1 Like

Also experimenting with MIS_YAW_ERR values of 12-90deg. Not sure yet if this helps or hurts. I will update if I find a value/range of values that seem useful.