I've built a Tricopter which has worked OK using a KK controller board. Recently, I decided to upgrade to an Arducopter board in the hope of better performance and much greater functionality. However, I'm having a few problems with the Tail / Yaw servo.
- On startup, the servo slams hard to the right and I'm worried it may break the tilt mechanism (it's a big servo). After 5 seconds or so, the servo comes back to mid position. I suspect the servo is being initialised to one end of travel rather than mid point.
- The servo responds to physical movement of the platform even though the board is disarmed. Seems the servo is not included in the arm/disarm process.
- Movement of the servo, due to stick input, seems restricted, particularly to the right. In flight, the tail motor normally sits tilted slightly to the right, countering the prop rotation, so with this restriction, only very minimal right yaw is possible.
- The servo movement (again due to stick input) is very jerky, stops at odd angles, doesn't centre when stick is released, and generally doesn't seem to move well at all.
Any suggestions on solutions to my problems?
Replies
Duy,
I think I've found the line of code you are referring to in output_motors_disarmed()?
The rear motor is on channel 4 while the servo is on channel 7. So it seems to me that rather than do the change you suggest, I would need to add the following line of code below the one you refer to:
APM_RC.OutputCh(CH_7, g.rc_3.radio_min + 300);
Is output_motors_disarmed() called immediately on power up?
Rob, I guess the arm/disarm is only a minor issue, if a problem at all. The real issue is that it doesn't fly at all well, yawing left and right (almost) uncontrollably. KK seem to be able to do it OK.
Duy, thanks for the suggested code change. I hadn't considered the need for my own version of the code and not sure that I have the time to get up to speed with building new code. Maybe I'll suggest this as a bug fix.
So, is the instability a problem with the parameters or (as others on this Forum seem to suggest) a problem with the code not well developed? If the latter, I'd be happy to offer my services/platform for testing.
Is there anyone who is running Arducopter successfully on a Tri?
- On startup, the servo slams hard to the right and I'm worried it may break the tilt mechanism (it's a big servo). After 5 seconds or so, the servo comes back to mid position. I suspect the servo is being initialised to one end of travel rather than mid point.
A: this is from here
APM_RC.OutputCh(CH_4, g.rc_3.radio_min);
you should change code as: APM_RC.OutputCh(CH_4, g.rc_3.radio_min + 300);
In fact, the Tri code is not good this time. I were very tired to load new code then changed and still had many problems with yaw.
So now, I build a hex, it is much better.
Cheers,
Duy
I haven't seen many tris on this board, all quads-octos. So not a lot of guys have experience with servos. I have a traditional heli, so slightly similar to your tri.
The servo moving on startup is kind of normal. Although, in my experience it hasn't been enough to cause problems. My servos bind at full throw, but on start-up, it doesn't go to full throw. The only time I have that problem is when I'm flashing a new program. The only solution is to un-power the servos. This can be done without too much difficulty.
Yes, the servos are not controlled by arming. I think this is because your setup is sort of a hybrid between helis and quads. On helis, our servos are always armed as well. This is probably a good idea because our ESC control doesn't go through the board at all. It's direct to receiver. If the servos were ever disarmed, it could lead to a problem where you're spooling up the main motor, and if the servos are dis-armed, then it could cause big problems.
On my heli, yes, the servo movement is weird on the bench. But it flies well.