High Speed Auto Mission

I think this is because your vertical jerk used in manual modes is set too low. Maybe we should have a pilot jerk parameter.
PILOT_ACCEL_Z = 2 x PILOT_SPEED_UP
PSC_JERK_Z = 2 x PILOT_ACCEL_Z

You might like to reduce the speed up and down to more reasonable numbers like 10 to 15 m/s.

Looks like you should set -

  • PSC_VELXY_FF to 1.0
  • ATC_SLEW_YAW 27000 (increase yaw speed to the same as your manual yaw speed)
  • WPNAV_ACCEL 1500 (use more of your lean angle potential)
  • WPNAV_JERK 30 (get all the way to 15 m/ss quickly 2 x WPNAV_ACCEL for half a second)

You should also update to the latest release as there are a few fixes that you should have.

Nice video! I look forward to the next one!

1 Like

Your logs for your second run just got up and I can see that you increased your accel to 55m/s^2, nice!
Jerk too is up to 30 m/s^3, also very nice!
It looks like you also worked out your PSC_JERK_Z parameter without my help too! :slight_smile:

ATC_SLEW_YAW can still get increased

Really nice job! My parameters above were meant to be a nice next step for you but you skipped that step :slight_smile:

1 Like

Yes nice work, you are getting there fast :grinning:
I see you have INS_ACCEL_FILTER at 10Hz. Perhaps a hold-over from earlier in the tuning process? Default 20Hz works for me.

Thank you!!! :slight_smile: It makes a lot of fun to play with it.

I will try if PSC_JERK_Z was the problem for manual piloting.
It was set to 20, and I increased it to 1000.

PSC_VELXY_FF was also set to 0 for some reasonā€¦ I changed it to 1.

There is some strange stuff going on in the first round of my track. Second and third were at a constant speed, but in the first the copter slows down for no reason and speeds up againā€¦ I was happy to hear the copter scream, which I want it to do all the time, but it seems like an error thereā€¦

I see that the max pitch Angle is 74.5Ā°ā€¦ I think I will disable the Armin_Check for parameteres and set it to 85Ā°.

Thank you Dave. I changed it to 20Hz :slight_smile:

Ah I seeā€¦ It ripped of my telemetry cable in that moment ^^

If you have the battery for it I would interested to see how it performs with plenty of distance between 2 waypoints to get up to stabilized speed. You could use DO_CHANGE_SPEED commands to juice it for a couple legs and slow it back down for others. This is how I tested on the smaller/faster 4" that didnā€™t have much capacity. Particularly when you are pulling big current at sped!

Nothing. It replaced ā€œLeashā€ Navigation in 4.1. You are using it :grinning:

1 Like

Iā€™m unfamiliar and curious about these. I see how you have the Onewire protocol configured on Serial2 and there is ESC Telemetry available and driving the Dynamic Notch filter. But what ESC protocol is being used? The Servo parameters are set to PWM.

It is a newly integrated into Ardupilot (hopefully released in 4.1.2). The ESC data is send over a single serial connection. You can connect up to 12 motors over one serial including telemetry. It is send with 500k Baud with full duplex or 2m Baud with half duplex :slight_smile: .

1 Like

Yea, thatā€™s cool but donā€™t you have to set Dshot protocol in Ardupilot for Dhot to be enabled? All other ESCā€™s, whether they support Dshot or not, if sent PWM will be in PWM mode.

The signal is over a UART

I strongly recomend you leave it at 10 Hz. This keeps the throttle variation lower and minimises the impact on the attitude controller. You want to reserve the fast response loops for the control that needs fast response. The more controllers you put into the same response time the more likely you are to get interatctions that destroy your performance.

In general you want the lowest filter settings that donā€™t limit your performance and in alt hold I have not seen a good reason to go over 10 Hz.

This only reduces your reliability and the aircrafts ability to hold your throttle at maximum.

1 Like

It was set to ~0.6 when I looked I thought. But all good.

You can probably find a better middle ground in the 25 to 100 range but 1000 will tell you if this is the problem.


This isnā€™t the case, you never actually get up to a constant speed. What is happening is these legs are too short given your relativly low acceleration. You set it to 15m/s as I suggested but that was down from 55 m/s^2 in the last run. Sorry my suggestion of 15 was conservative, I didnā€™t want to suggest you go too far too fast. Given your angle limits 20 to 30 m/s^2 is a good range.

If you let the aircraft try to carry more speed through the corners increase WPNAV_RADIUS to 10000 (100m). That will let the copter turn as fast as it can given your limits.

1 Like

Flew again today. I believe I changed WPNAV_RADIUS, but it was still 100. Have to try that again. It was very windy, I think I lost speed because of that. The last Autotune was made on a calm dayā€¦ it seems like it isnā€™t that robust against wind and starts oscillating quiet fast.
But besides that it was behaving very nice and smooth! I noticed, that YAW is more responsive, but not as I would expect it. Iā€™ve made some testing (Video also in Dropbox) where is only used Roll and Pitch to rotate the copter over the YAW-Axis. I talked with @amilcarlucas and the current thought is, that the priority system prioritized roll and pitch for some reason.
I thought my next step is to increase MOT_SPIN_MAX now to 1 and reduce pitch and roll accel and jerk until YAW works as expected. Then I will increase the maximum angle. I think the copter can handle something around 88Ā°.

I also noticed that the length of the track seems to limit the maximum speed while the acceleration keeps the same. I hope it can accelerate to max speed within two meters, so I like to improve that :smiley:

Hmmmm, that is an interesting findā€¦

I suspect that is due to the new way I am controlling the attitude here. I may need to revert to the old methodā€¦

If I was to give you some code could you test it for me?

Given your lean angle limits you canā€™t get to 30 m/s in less than 9m even if you start at your maximum lean angle.

Your absolute maximum parameters would be something like:
WPNAV_ACCEL 5000
WPNAV_JERK 200

That is pretty much the limit of your attitude controller.

I just uploaded the logs witch changed WPNAV_ACCESS and '_JERK. I had a little bit of fight with the ESC telemetry, but now it is working perfectly. But I think I have changed something into the wrong direction, because it is flying very slow and gently though the track. I have to check every parameter again.

Of cause I test your code :smiley: . Send me the file or part of the code I compile it myself, cause I am using the OneWire branchā€¦

I canā€™t work out why it went so slow. I would suggest setting your Jerk back to 30. There may be a check that is overriding it or something.

Here is the code with what I suspect is the loiter fix:

All the checks should pass soon.

I changed the code. As far as I can see this has not changed the behaviour. You can see it in the log at 15:14. I think I can fix that by other Stabilize Pitch and Roll ACCEL Parameter and more robust and precise Rate PIDs.

Changing WPNAV_JERK back to 30 fixed the slow flight. Is the maximum 127 caused by a int8_t?

I think it was a quiet good attempt. It reached 41m/s in a short moment. If there is a longer straight line the GPS has time to settle, then I will see the real speed. @ [dkemxr] have you tilted your GPS backwards? I get glitches if the copter is tilted forward to far.

Sadly I have no video from the crash in the endā€¦ I think I will not try ā€œrelativeā€ Waypoints in the near future again :sweat_smile:

No, itā€™s just mounted flat to the top plate in the front. A Matek M8Q-5883 on the 4" and a generic M8N on the 5".

Could you give me a link to the GIT repo you were running in that flight?

It is a float. I will do some work her with your parameters to see if I can find it.

I am using this repository and the branch ā€œwp_nav_testā€.