Heli: H_RSC_CRITICAL

91 views
Skip to first unread message

jolyon

unread,
Aug 28, 2015, 7:21:21 PM8/28/15
to drones-discuss
Rob,

Just went for first flight of 3.3-rc10 (and rc9 for that matter). Did not go well, had insane tail spin before spool-up was complete - no damage though.

Turns out that H_RSC_CRITICAL turns off tail control if the RSC signal drops below 500 (for me that is 1500 on my radio). Meaning that by default, any RSC setting used for a lower RPM has zero tail control.

It would make sense to make the default for this param 0.

It would also make sense to keep tail control enabled below the critical rotor speed because the rotor still generates torque at low rotor speeds, even if its not generating lift. It does however make a lot of sense to disable tail control when the main motor is off, but that feature has been around for a while.

Joly

Robert Lefebvre

unread,
Aug 28, 2015, 11:12:33 PM8/28/15
to drones-discuss
Hi Joly, sorry about that.

Do I understand this was with a direct drive fixed pitch tail?

--
You received this message because you are subscribed to the Google Groups "drones-discuss" group.
To unsubscribe from this group and stop receiving emails from it, send an email to drones-discus...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Jolyon Saunders

unread,
Aug 28, 2015, 11:14:40 PM8/28/15
to drones-...@googlegroups.com

No problem, small issues are to be expected with release candidates :)

This was with conventional belt drive tail

You received this message because you are subscribed to a topic in the Google Groups "drones-discuss" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/drones-discuss/YkjHByurzv0/unsubscribe.
To unsubscribe from this group and all its topics, send an email to drones-discus...@googlegroups.com.

Robert Lefebvre

unread,
Aug 28, 2015, 11:18:44 PM8/28/15
to drones-discuss
Ok, so the problem must then be with the attempt to stop the tail pushing after arming.  I haven't had a problem with this code though. Can you better explain what happened?  I normally fly off grass with a very slow spoolup (low torque).  You must be on a smooth surface?

Jolyon Saunders

unread,
Aug 28, 2015, 11:28:55 PM8/28/15
to drones-...@googlegroups.com

Spool up was off grass, long slow spoolup.

I have 2 rpm modes set in my radio. Ch8 sets the RPM for the ESC:

- Motor off, CH8 in = 1000
- RPM 1, CH8 in = 1500
- RPM 2, CH8 in = 2000

What's happening is that when I try to fly the low RPM mode, the CH8 signal is somehow below H_RSC_CRITICAL (set at default 500), which causes pix to disable tail control, even when armed and CH8 on.

If I set H_RSC_CRITICAL to 0, its fine.

Robert Lefebvre

unread,
Aug 29, 2015, 12:09:33 AM8/29/15
to drones-discuss
Ah, so I think the issue is that you aren't getting above RSC_Critical.  If you moved Critical to 400, or set your CH8 to 1510, probably would be OK.

So, need to figure out, what is reasonable here.  This should only occur on take-off, once you go above critical, flight control should be locked-in until you disarm.

I figured 500 was a reasonable default, but maybe it should be 400?

The trade-off here is that, setting RSC Critical too low, will cause incidents where pilots can land in Alt_Hold or greater, stop the motor, then restart before it has stopped, and it will try to take off too soon.

jolyon

unread,
Aug 29, 2015, 9:08:42 PM8/29/15
to drones-discuss
The safest option would be to default to 0, and make users set it up. Especially if using RSC as a passthrough like in my case.

Could you explain it a bit more detail? The reason I ask is I'm not sure why we need to disable tail control at levels below the critical rotor speed since the motor could still be generating torque. Makes sense to disable take-of etc, but still need tail control. Or have I got this wrong?

Robert Lefebvre

unread,
Aug 31, 2015, 12:07:25 AM8/31/15
to drones-discuss
The intention was never to disable tail control when the rotor speed drops below critical.  There's really two things going on here.

If the user is flying around, say in Alt Hold, and then lands, shuts off the motor, then restarts the motor, the copter would try to take off again before the rotor had fully restarted.  This was because Rotor_Runup_Complete()  would latch on until speed dropped all the way to zero. So I created this critical speed to try to halve the time it took, and estimate a speed below which wouldn't try to take off again.

In future, I also plan to use Critical speed for a few other things.

Then the other thing going on, was an attempt to fix the way helicopters were always yawing right when taking off after arming.  The problem there, was that since helicopters were always stabilizing, even when disarmed, the arming command was interpreted as an attempt to yaw right, so, they would store a yaw target up to 10° off current heading, and I think even start to build up an I-term.  This caused, in some cases, a 90° yaw right once lifting off.

So, there's some logic I created where, if we are disarmed, we make no attempt to actually hold the heading.  Rate commands still go through, but we just reset target heading continuously to current heading.  But this didn't quite work as often, you would be holding the stick over, even after it had armed.  The transition from disarmed to armed was never totally clear.

So now I have it where, if we are going from disarmed to armed state, we also wait for rotor speed to go above critical, before we lock in to a heading.  This was all working well.  Unfortunately, the function I was using to do that in the Rate controller, got changed by somebody else to not only reset the target heading, but also zero-out any rate requests, and this includes roll/pitch as well.

You will notice that, after you arm, but before the rotor is fully running, there is zero servo movement.

I think this will have to be fixed before 3.3 is released unfortunately.

It is not intended, and should not happen, that servos will stop moving when going from armed-and-running state to armed-and-not-running state.  It is only intended that yaw heading only, will get reset to current heading, when the copter is in this state where we have just armed, but haven't started the motor yet.



On 29 August 2015 at 21:08, jolyon <futur...@gmail.com> wrote:
The safest option would be to default to 0, and make users set it up. Especially if using RSC as a passthrough like in my case.

Could you explain it a bit more detail? The reason I ask is I'm not sure why we need to disable tail control at levels below the critical rotor speed since the motor could still be generating torque. Makes sense to disable take-of etc, but still need tail control. Or have I got this wrong?

Jason Franciosa

unread,
Aug 31, 2015, 12:20:09 AM8/31/15
to drones-discuss
I noticed this same behavior yesterday when doing first test flights with Arducopter Traditional Heli. As soon as we armed in stabilize mode we no longer had control of cyclic, elevator, or rudder. We decided to just shut it down and take it home as it was not comforting not having swash control on spool up for a untuned airframe.

I will look forward to the fix for this, or, use 3.2 for initial testing if we go to the field before it is released.

Robert Lefebvre

unread,
Aug 31, 2015, 12:47:05 AM8/31/15
to drones-discuss
Yeah, I'll try to get a change worked out tomorrow, but this week for sure.  Should be pretty straight forward. 
Reply all
Reply to author
Forward
0 new messages