Smooth Turns for Survey Waypoint Missions

I was wondering if it’s possible (via a parameter or some setting I’m not seeing) to make the turnarounds in a survey waypoint mission be smooth instead of the default pair of 90° turns. In other words, the default turns look like Π and I’d like them to look like U.

Ideally, I’d like to change the waypoint behavior in any waypoint mode to allow a smooth transition through the waypoint, but any solution to achieve a smooth turnaround in survey mode would be very helpful.

I am looking for this because I fly a LiDAR sensor on a large quadcopter (Freefly Alta X) for mapping and other purposes (e.g. we scan terrain, structures, etc with the LiDAR sensor and create highly accurate 3D point clouds from the data). The sharp turns actually impact the quality/accuracy of our point clouds when we process the data.

The high accuracy LiDAR processing that we do requires very accurate trajectory data, which is collected by a high grade GNSS antenna/receiver and a FOG IMU. The software used to process the IMU data is sensitive to large accelerations (i.e. speeding up and slowing down quickly or sharp turns). Additionally, we get better results when the IMU never stops moving. So, the default behavior for turning around in waypoint mode is problematic for two reasons:

  1. It generates relatively large accelerations, and;

  2. It causes the aircraft (and, of course, the LiDAR system attached to it) to come to brief stops at each waypoint.

A smooth turnaround would greatly improve the data quality and allow me to fly more efficiently. Right now, I have to fly out far beyond the extents of my area of interest for the turnarounds to allow the IMU data to “settle” before the system renters the area of interest. Any suggestions would be much appreciated. Thanks in advance!

If you are flying PX4 stack I believe there is a parameter you can futz which controls how a multi-rotor changes direction at a waypoint. You can make it slow down the transitions to smooth it out. There is no way to change the way QGC generates the mission.

Hi Don. Thanks for your reply. Yes, I should have mentioned Alta X is running PX4. Do you know what parameter this is? I’ve seen MPC_Yaw_Mode, but this only changes how the aircraft handles heading at each waypoint. I haven’t seen anything that would make it slow down and smooth out the transition.

I’m not necessarily looking to change how QGC generates the mission. I understand that would be more involved. I guess I’m just looking for some way to create a much smoother turnaround. I’d imagine a parameter that tells the aircraft to begin heading towards the second waypoint before reaching the first could do it. Perhaps an acceptance radius parameter? I don’t think so though because that would just make the aircraft able stop further from the waypoints position. It would still do the sharp turn, just in a less predictable location.

Anyway, do you happen to know what parameter you’re thinking of?

No I don’t. I’d ask the firmware folks on either slack or the PX4 firmware forum.

Another option is to not take images in the turnaround. You can turn that off. And then create a large enough turnaround distance such that the last image at the edge of the survey polygon is not affected by the turn.

Thanks. I’ll check with the firmware folks. Unfortunately, since I’m doing LiDAR you’re suggestion of not taking images in the turns doesn’t apply. For LiDAR processing the entire trajectory needs to be smooth for the best results, even in the areas where you don’t care about the data.

Thanks for your suggestions.

I think it might have something to do with MPC_POS_MODE = Smooth Position Control and jerk limits parameters or something like that.

https://docs.px4.io/master/en/advanced_config/parameter_reference.html

Interesting. I’ll see if mode 1 makes a difference. I think this parameter will only affect movement in manual mode though. I think I have to find the equivalent parameter for autonomous mode. Thanks.

Hi Arktix, did you come right with this? I am also flying an ALTA X with a LIDAR system and am struggling to fix the aggressive waypoint transition.
please let me know. kind regards.

Hi Arktix

Did you find away to make the turns with the Alta-X smooth?

Thanks

Hi @Arktix,

Were you able to resolve this issue?

Regards

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. 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.

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.