Arkflow and Z drop

Hi @RT22,

In this case increasing the deadzone won’t help I think so I’d return RC3_DZ back to 30 or 50.

This is all outside of AP now so I’m just guessing but I think it would be good to look at MP’s RC Calibration page and make sure that around 1500 is output when the throttle stick is in the middle position. This appears to be the issue. From AP’s point of view, the pilot is pulling the throttle down.

While I wish it was a simple parameter to adjust, this is a solid start point. I have multiple GCS’s so I’ll change those out tomorrow and see if that changes anything.

Solid thanks!

I’ll update the thread when I get this sorted.

1 Like

This isn’t on the herelink controller actually. It’s on a GCS that was discontinued a few years ago but I have multiples to test.

Tomorrow I’ll switch to herelink and see if the situation persists.

1 Like

Data from the ARK Flow rangefinder in the logs looks good. It is a 30m sensor, so the only reason to use a separate rangefinder would be if you wanted more range.

1 Like

I changed ground control stations to herelink and it’s the same rate of descent.

So it’s not the GCS.

Arkflow is sending good data.

I’ve been warned against doing this but I’m going to fuze velocities and give it a shot.

Ordered some extra props… haha

Check with Ark Flow to see if the sensor can configure to support higher transfer rate or higher sampling time. In my additional height sensor case, I use 921600 bps serial speed.

If I remember your log correctly, you haven’t Autotune the drone yet. Of course, a low noise and low vibration drone result in a better tune.

1 Like

Hi @RT22,

Feel free to send on a new log but I just want to reiterate that from the previous log that was posted above the issue was very clearly that the pilot throttle stick was pulled low.

The issue was not the rangefinder, not vibration, not tuning.

I’m happy to look at a new log of course.

1 Like

Ok, here’s another log from today.

What catches my eye the most is the delta between CTUN Alt vs Salt (achieved altitude vs achieved rangefinder altitude or DAlt vs DSalt.

This is with a new ground control station (Herelink). Terrain is my back yard with minor obstacles (picnic table etc). Bright, sunny day. I also did a few attempts over a concrete slab and had the same experience.

Hi @RT22,

Thanks for the log.

Re the Alt vs SAlt different. The “Alt” field is not actually the altitude above home but instead the altitude above EKF origin. We could change this to be altitude above home but internally the controllers are all based on offsets from the EKF origin.

In general one wouldn’t compare DAlt and DSalt because one of the altitudes is an altitude above home while the other is desired altitude above terrain (aka desired sonar alt). Instead, if we want to judge whether the altitude controllers are performing correctly or not we compare DAlt vs Alt (desired vs actual altitude above home) or DSalt vs SAlt (desired vs actual altitude above terrain).

So here is the DAlt vs Alt and the two match quite well.

Here is DSalt vs Salt and it also looks quite good with the two matching each other (the actual should slightly follow the desired).

Again in this log when we look at the RC input for channel 3 (throttle) we see that the pilot is just jamming the throttle completely up and then completely down. I’m pretty sure that if you try other modes like Brake and Guided you’ll find the vehicle holds altitude. So the issue is with the RC.

Have you checked MP’s RC calibration screen to ensure that when you release the throttle stick the throttle goes to the middle position?

When I connect with my herelink and then open MP (which automatically connects to the vehicle through the herelink because I’ve enabled my Herelink to connect to my local Wifi) then I see this.

Thank you.

I’ll look at RC calibration again but I’ve changed 3 different ground control stations and I’ve had the same consistent issue. 2 Herelink and 1 joystick.

Strangely enough, the drone begins to descend as soon as I reduce throttle input from from 100% to, say, 80%. It’s falling when I do anything less than full throttle. One might suspect the thrust/weight ratio is off but that’s definitely not the case since the actual thrust/weight ratio is about 3:1 without payload.

To give a clear signal in the logs, I release to center stick so we at least have a nice contrast in input. However, anything less than 90% and we’re falling.

I’ll recalibrate the GCS’s again though and update new logs.

Thanks again for your patience!

Hi @RT22,

Sure, no problem. The issue is very clearly the RC. Let’s focus on that.

If you’re using a joystick connected to QGC then maybe you’ve got “Center stick is zero throttle” selected.

Also if you’re using a Joystick on a Windows PC it may be necessary to do the windows Joystick calibration.

You may have to provide a photo on how are the connections. Have you multiplex multiple radio control system?

Hi Jai.GAY,

No, this is just changing out one radio system at a time. Each GCS was initially calibrated separately, at different times, different computers, using different radios (herelink, fpv, microhard, etc). I’ll recalibrate the herelink GCS with the air unit as rmackay9 suggested. This is probably the best place to start since we’re all familiar with the system / less variables.

A photo would just be a picture of the Herelink controller and the air module. haha

Hi rmackay9,

I redid calibration on the herelink controller. Starting from pairing with the air unit and all the way through the calibration.

Center stick is zero throttle. No exponential thrust.

I do however have a dead zone on channel 3 (throttle) with a value of 50. If you don’t recommend this, I’ll remove the dead zone but for anyone reading this in the future, here’s my logic in adding the dead zone:

The problem, as rmackay9 noted, appears to be that the throttle is sending a descend value despite being at center stick so to eliminate this (aside from recalibrating), I’m trying to filter out minor movements–much like how a steering wheel works on a heavy machinery; you have a lot of play in the wheel before the vehicle starts turning (heavy things shouldn’t be allowed to quickly change direction). That’s my logic here at least, as I understand the software to function. Anyone feel free to correct me on that though.

Hi @RT22,

I think that “Center stick is zero throttle” is actually incorrect. It should be “Full down stick is zero throttle”

If full down stick is zero throttle and the stick naturally returns to center rather than down (spring loaded), we’ll naturally come back to 50% throttle when the pilot releases the sticks.

The problem with that, given the 3:1 or 2:1 thrust ratio depending on payload, is that the drone will require constant throttle input to maintain altitude which defeats the purpose of loiter mode—and also relearning the controller.

It’s a bit of an issue because a couple years ago I had an x class (4:1 ratio) with bottom stick as zero. Since the GCS is spring loaded, we went from 0-90 mph in just a couple seconds on arming, went up to 200 feet and I had to force land it which ended up just crashing.

All that is to say, the requirement is to let go of the sticks and the drone should hover in place without gps.

Oh dear, sound like you are first time flying a drone. Hmmm, and you immediately jump into 18" propeller drone. You are lucky if you are not injured. I think you have more things to read up first. please familiarize yourself what are the differences between Alt Hold, Loiter and Stabilize modes.

PILOT_THR_BHV,7
RC3_TRIM, low throttle stick value.

That’s some solid input Gay.

Just make sure to tell anyone on this forum they should not build drones if they have any issues with Ardupilot.

In my mind, “Center stick is zero throttle” means that at center stick, the Herelink will output a PWM throttle value of 1000 us. The Herelink doesn’t transmit a throttle value to the motors, the onboard flight controller running Ardupilot deals with that. Herelink only sends PWM values for each axis (Aileron axis, Elevator axis, Rudder axis and Throttle axis). Those are the original names of each command sent out from an RC transmitter.

Ardupilot interprets these commands depending on the flight mode. For example, in Loiter, the Elevator/Aileron/Throttle commands are converted to forward/sideways/vertical velocity commands. When AP receives a throttle command of 1000, it interprets that as “descend as fast as possible”. When it receives 1500, AP interprets that as “hover”. The internal PID loops and motor mixer use these velocity commands to generate the throttle values to send to each motor. These throttle values are not the same thing as the throttle command that comes out of your RC transmitter.

If the Herelink outputs a throttle command of 1000 or 1100 at center stick, this is 100% the cause of your issue. At center stick, the throttle command sent out of the Herelink should be 1500.

In my mind, “Full down stick is zero throttle” means the Herelink will output 1000 when the throttle stick is full down, and 1500 when it is centered, which is what you want! I currently don’t have a Herelink lying around to check, my colleague has left with both of ours.

EDIT: If you want even more detail (but this will not help your issue):
One of the outputs of the PID loops is a value called “thrust”. This corresponds to the average throttle that will be sent out to your motors, and then the Mixer adds and subtracts values to that “thrust” value depending on the roll/pitch/yaw commands and errors. From your message, it seems you are worried that your throttle command from your RC transmitter will translate directly into “thrust”. In loiter, this is not the case. It would be the case for flight modes like Stabilize, but you’re not flying in Stabilize (your issue with your old 4:1 X-Class drone probably happened because you were in Stabilize mode). In loiter, for hover, AP uses the MOT_THST_HOVER parameter to approximate the thrust required for hover, but then the Integrator error (the “I” in PID) will adjust the “thrust” if the drone rises or descents when MOT_THST_HOVER is being used. This happens in the first few seconds of flight. So it’s always good practice to set MOT_THST_HOVER as close as possible to the “thrust” value. To find out what value to use for MOT_THST_HOVER, try to hover as best as you can, then look at the CTUN.ThO value in the logs. You can also enable MOT_HOVER_LEARN, and it will estimate what is the thrust value for hover. You can view the calculated value with CTUN.ThH.

But again, your issue is most likely that the RC transmitter is not outputting 1500 when you center your stick. When AP receives a throttle command of 1500, then it will use and adjust MOT_THST_HOVER to send to the mixer, which then creates the throttle command for each individual motor.

1 Like

@RT22,

If you could try changing the check box to “Full down stick is zero throttle” and give it a test that would be great.

Re the comment, “the drone will require constant throttle input to maintain altitude” this is not true for Loiter mode (or AltHold, PosHold, etc) becauise these modes include an altitude controller. The pilot’s throttle stick does not directly control the thrust output, instead it is an input to the altitude controller.