Hi,
After transition sometimes the stationary tail prop is nicely aligned with the airflow, other times its is directly across. Is there a way to ‘mix’ an RC channel to the motor output to give it a nudge without affecting its normal function?
Thanks.
Im thinking this will need a script but for me, it will take a lot of study.
It should probably go something like -
If motor 3 rpm = 0
and rc channelX > y PWM
Then short pulse motor 3
What ESC firmware?
AM32 for example has some brake on stop functionality and the brake force can be adjusted.
I use it for a folding prop to force it to fold instead of keep spinning forever and eventually hit ground during landing.
If the ESC brakes the tail-sitter it should automatically align with the fuselage.
Not a tough script to write and aligns with some thrust test stand work I did recently (using overrides to force motor behavior).
But I think the mechanical solution (folding prop) presented above is a lot cleaner than trying to bump the motor until you’re satisfied with the prop position.
If you really want to try a script, I could likely write it in short order. I can present a method to ground test such that we can be assured that it won’t wreck that pretty copter!
I’ve seen T-Motor offer several models of motors with locking mechanism, specifically for VTOL
Thanks, Ive seen those but they are really in a different weight (and expense) category than my 4kg machine.
Hi @Yuri_Rage.
I do actually have a folding prop on the tail at the moment (just because I had the right size in my spares box) but it still mostly stops in an awkward position as shown.
I would be grateful if you could knock up quick script. I would probably be able to experiment with the pulse strength/time to achieve a small nudge. Id like to do some cruise experiments to see if it makes much efficiency differance, as I gone to lengths to design as low-drag as possible for a VTOL.
So, thanks if you could do that. I really need to get to grips with scripts. Its a big gap in my ardupilot knowlage.
This was a really quick bunch of copy paste that I tested very briefly in SITL.
You get the following parameters:
- BUMP_ENABLE: set non-zero to enable the feature
- BUMP_MOT: set motor index number to bump (3)
- BUMP_FN: set scripting aux function (300-307)
- BUMP_THR: set 0 to 1 (default is 0.1, which is 10% of the full PWM range)
- BUMP_MS: bump duration in milliseconds
Set an RCx_OPTION to the same value as BUMP_FN and use that channel to effect the motor bump. You’ll have to hold that switch high for at least 100ms (e.g., if you put it on a momentary switch, give it a slightly long press).
I did not include any protection against “bumping” during normal operation of the motor because I have no reasonable way to test that. I’ll leave that as an exercise for you to complete if the script even works at all the way you want.
To ground test, set BUMP_THR above MOT_SPIN_ARM, then arm the copter and actuate the switch. The motor should spin up briefly.
motor-bump.lua (2.5 KB)
Fantastic. Thanks so much. I was actually just reading about LUA writing and feeling quite dumb.
Ill give it a try soon.
This should be a pretty good intro, though I did use a couple of “advanced” techniques.
The logic should be fairly clear.
My use of rc:get_aux_cached()
means that you can use an RC input or the Aux Function tab of Mission Planner to trigger the feature.
My use of a protected_wrapper()
function helps the script to bail out gracefully if an error is encountered. It is self-referential, as all AP scripts tend to be if they are to run continuously. Thus, the wrapper re-schedules itself to run again every 100ms, essentially turning into an infinite loop.
The BUMP_THR could be .01 for instance?
Yes. You’ll have to experiment with the throttle and duration to get something workable. I’d suggest using the value of MOT_SPIN_ARM as a starting point.
Taking it further, its probably possible to extend the motor shaft and attach a micro rotary magnetic encoder so the bump is automatic until the right angle is reached, taking care it dosent interfere with the motors normal operation. Thats probably what T-motor ones referred to above are doing.
Likely yes. That adds a lot of complexity, both mechanically and in software.
@Vince_Hogg what airframe is this? Did you 3D print some of the parts?
@Vince_Hogg Congrats! That’s awesome. I didn’t know if it was the Heewing Ranger or other… did you use typical filament or did you go with a lightweight for r/c aircraft?
No worries on sharing the files.
Its standard filament. I first did it in grey PLA but even the winter sun caused it to sag so I did it again in ASA. Its on the hover weight limit of my motor setup (3.6Kg) so it may benefit from LW filament (but they often look terrible).