Offset X frame configs. Just changing angles, or manually setting roll/pitch factors? Digging through code, need help!

OK, in summary I have a TBS discovery and I want to do a better job of setting up its odd angle arms to work with the APM.  I feel like understand this would also be great for testing and adding new platforms like a spider Octa, hexa V, etc.

I've made pictures because I feel they can better convey information.  Basically, I've found the angles on my non-pure X frame (not 45* spacing) from the horizontal and vertical lines.  I tried do a simple edit of these values (see picture 3), but it didn't see very stable over the normal X with the same PID settings.

I also looked at how the Octa V is setup, and I'm thinking that is the best way to tackle this problem, but I don't quite understand how I might map these values out for this setup.  Who wrote the V code?  Could they share any insight?

Here is the normal X frame, and the rough Roll/Pitch factor that gets applied after the add_motor function by my calculations. 

I then looked at the Octa V and saw how it skipped the add motor function and just wrote raw roll/pitch factors.  I mapped them here to try to better understand how their placement would change my offset X.


So can I get away with my angle changes running add_motors, or do I need to find out what the real roll/pitch factors for this offset should be?


Edit: Updated pictures.

Views: 6252

Reply to This

Replies to This Discussion

Based on this, I modified the code off AP_MotorsQuad.cpp (see joined file), and add in APM_Config.h


it seems to be better for me, can someone can also test and share PID ?


I'm running Dimitri's angle based setup currently and it's flying great.  What motors and props are you running?

I'm running Turnigy L2210C-1200kv with Graupner 9x5 propellers

Could you give me your motor setup in AP_MotorsQuad.cpp ?

The attached Excel file explain what is the method I used.


Using Dimitir's angles, the add_motor function is coming up with pretty much the same raw values you found, so either using add_motors with angles or add_motors_raw with raw values is going to be about the same. 

I'm running stock DJI motors so I don't know how well my PID's will match up.  I'm going to do some more testing today and let you know how things are flying.   

Forgot to attach. 



I noticed this thread as I too have a Disco with an APM.

I don't know anything about code editing but have done some looking up.

If I was to use the Arduino IDE to edit the code, How do I navigate to the section of the code that I'd need to include/replace the values to/with?

I've looked at the 2.9 rc5 fw and can't see where I'd put it?

Many thanks in advance

Is the 14deg angle base in the above V-frame diagram where the FC is, or is the base at the bottom of the V formed by the motor arms?

If it is at the base of the motor arms, then the total angle for both arms is 28deg, right?

I'm playing with the V to figure out my motor spacing and total craft size.



I didn't make that design, but I believe it's from the APM to that arm. If you haven't, please see this wiki page.

Thanks, Josh. I have seen that page.

I'm thinking that the APM is at the CG. The motors don't fit a circle like the TBS does. Specific info is scarce on the V, even checking the Mikrokopter forums.


Actually thinking of your CG makes sense. Looking at the pitch/roll V frame picture I made.  Note how danni gave the full pitch force on motors 8 and 4, but greatly cut back on the roll factor.  

I think that I want to give this a try, beinging a total newbie, how to I load apmotorsquad.pp file in to my APM?



Reply to Discussion


© 2019   Created by Chris Anderson.   Powered by

Badges  |  Report an Issue  |  Terms of Service