Page 1 of 1

Yaw movement not shown in GUI, doesnt fly

Posted: Sat Apr 11, 2015 3:55 am
by Cereal_Killer
Edit 4/16: Ok guys I've got my Tricopter up in the air now and am doing some PID tuning, to remind everyone I'm new to this, tho I'm not new to PID control topology... I've worked with stepper motor controllers as well as heating element controllers. I've actually got it flying forwards / back /side-to-side very stable and I feel the PID's are all pretty good, it doesnt wobble and in angle mode I can completely let go AS LONG AS I DONT TRY TO YAW.
If I stop all horizonal movement I can slowly make a full yaw rotation but if I try to yaw in either direction as I'm moving at all it goes crazy and I have to set it down to not crash, it will try to resist my stick command so hard that it will actually yaw up to 90* backwards of what I want.

I believe my GYRO/ACC settings are somehow not in agreement, I had a real heck of a time getting the roll/pitch axis' setup correct. Could anyone help with this, it seems crazy and honestly I just dont understand what it's doing to better describe it.

sensor overrides:

Code: Select all

      /* enforce your individual sensor orientation - even overrides board specific defaults */
      //#define FORCE_ACC_ORIENTATION(X, Y, Z)  {imu.accADC[ROLL]  =  Y; imu.accADC[PITCH]  = -X; imu.accADC[YAW]  = Z;}
      #define FORCE_GYRO_ORIENTATION(X, Y, Z) {imu.gyroADC[ROLL] = Y; imu.gyroADC[PITCH] = -X; imu.gyroADC[YAW] = Z;}
      //#define FORCE_MAG_ORIENTATION(X, Y, Z)  {imu.magADC[ROLL]  =  X; imu.magADC[PITCH]  =  Y; imu.magADC[YAW]  = Z;}



Hey guys, I know vague thread titles are disliked here, sorry about that, I just didnt know how better to title this "issue"...

So I actually have two questions, the first is [hopefully] simple- Why in every single document I've ever seen about MW on a tricopter say that all motors go CCW yet in the GUI it shows the left front as being CW? I noticed this from the first time I was far enough along to connect the FC board to MWconfig but I decided, after tons of reading I would ignore it but I still cant help but wonder why?


The other thing is more of an issue [maybe]. I've just finished up my build and got the ECS's calibrated, I accidentally bought all CW props (why on earth motors are labeled "CW" and "CCW" but props are "forward" and "reverse" is beyond me!) but the whole time I was playing with it and getting stuff setup and getting accustom to it when I would rotate the frame / FC around in my hand, as if it were yawing around, the little tricopter icon on the screen would yaw around as well. It would always try to exactly mirror the position of the frame in my hands. Now tonight after I calibrated the ECS's (LITERALLY the only change I made was to activate that line, run it then go back and comment it back out) the icon is no longer showing yaw. The graph / plot of the other axes are all moving just the same, the FC is definitely sensing yaw movement (and trying to correct for it by tilting the tail) but the little icon just stays pointing perfectly straight.
If this wont effect flight it's a non-issue, but I wont know that will monday when my LHS is open and I can get the CCW props (aka "forward") so I'm asking here now, just in case it is a problem hopefully I can fix it by the time I'm ready to fly.

Re: couple stranges things in the GUI...

Posted: Sat Apr 11, 2015 7:44 am
by stronnag
It really doesn't matter which props you have on a tri. On mine (2) I always have CW (P) and CCW (S) at the front and which ever of CW/CCW prop I haven't broken at the back. Changing the aft direction also requires changing the 'at rest' angle of rear motor for straight flight with centred yaw.

Re: couple stranges things in the GUI...

Posted: Sun Apr 12, 2015 9:48 am
by Arakon
Tricopter motor directions really don't matter, but having the front two go cw and ccw (or ccw and cw) will take out some of the rotational force because they cancel each other out, so the tail doesn't have to lean as far just to maintain a straight hover.

Re: couple stranges things in the GUI...

Posted: Tue Apr 14, 2015 4:26 am
by Cereal_Killer
Thank's both of you for the clarification on that, makes total sense and I didnt think about that aspect.

I'm waiting on a new DSMX receiver before I can fly it so I've been thinking back to the second issue again. The icon still isnt showing yaw movement. Here's another thing, it takes 6-10 times for the GUI to be able to completely connect to it. The process goes like this:
Plug it in to com3
open GUI
press the COM3 button, it doesnt connect
press disconnect
press COM3 button, doesnt work
press disconnect
press the reconnect button this time, it half way works (it loads about half of the stuff, the RC data but not the GYRO data
press disconect
press connect, arduino locks up and OLED goes blank then restarts
once that happens it works the next time, every time. The next time after the OLED re-initalizes it can finally make the foll connection to the GUI.

Re: Yaw movement not shown in GUI, doesnt fly

Posted: Fri Apr 17, 2015 2:39 pm
by Cereal_Killer
Hey guy's, noticed I updated the thread title and OP. So to answer my own question NO THE MODEL WILL NOT FLY IF THE LITTLE ICON DOESNT SHOW YAW! Well it'll fly a little bit, but not correctly or controllable at all.

I was able to solve it tho and get it flying by changing forced sensor orientation. I finally found the default orientation so it was easier to figure out.

This is my new forced orientations

Code: Select all

      /* enforce your individual sensor orientation - even overrides board specific defaults */
      #define FORCE_ACC_ORIENTATION(X, Y, Z)  {imu.accADC[ROLL]  =  -X; imu.accADC[PITCH]  = Y; imu.accADC[YAW]  = Z;}
      #define FORCE_GYRO_ORIENTATION(X, Y, Z) {imu.gyroADC[ROLL] = Y; imu.gyroADC[PITCH] =  -X; imu.gyroADC[YAW] = -Z;}
      //#define FORCE_MAG_ORIENTATION(X, Y, Z)  {imu.magADC[ROLL]  =  X; imu.magADC[PITCH]  =  Y; imu.magADC[YAW]  = Z;}




And this is the default sensor orientation found on MW Wiki

Code: Select all

//default board orientation
#if !defined(ACC_ORIENTATION)
 #define ACC_ORIENTATION(X, Y, Z)  {accADC[ROLL]  = X; accADC[PITCH]  = Y; accADC[YAW]  = Z;}
#endif
#if !defined(GYRO_ORIENTATION)
 #define GYRO_ORIENTATION(X, Y, Z) {gyroADC[ROLL] = X; gyroADC[PITCH] = Y; gyroADC[YAW] = Z;}
#endif
#if !defined(MAG_ORIENTATION)
 #define MAG_ORIENTATION(X, Y, Z)  {magADC[ROLL]  = X; magADC[PITCH]  = Y; magADC[YAW]  = Z;}
#endif



Only thing I wonder now is why the heck the X and Y axis' dont match in my MPU6050, is that always the case or is mine crazy?

Re: Yaw movement not shown in GUI, doesnt fly

Posted: Sat Apr 18, 2015 1:16 am
by Cereal_Killer
Well still having problems, now when I take off it starts to spin and full opposite yaw doesn't even slow it down. I'm using two CW and one CCW prop (one each up front and another CW on the tail).

I'm thinking maybe my two Z axis' are still mismatched?

Re: Yaw movement not shown in GUI, doesnt fly

Posted: Mon Apr 20, 2015 5:04 pm
by Cereal_Killer
I finally got it all dialed in, dont understand why the axis' in the sensor dont match, is it like that on all MPU6050's or is my setup crazy?

Anyway here's the final sensor overrides. Again it is flying very well now.


Code: Select all

      /* enforce your individual sensor orientation - even overrides board specific defaults */
      #define FORCE_ACC_ORIENTATION(X, Y, Z)  {imu.accADC[ROLL]  =  -X; imu.accADC[PITCH]  = -Y; imu.accADC[YAW]  = Z;}
      #define FORCE_GYRO_ORIENTATION(X, Y, Z) {imu.gyroADC[ROLL] = Y; imu.gyroADC[PITCH] =  -X; imu.gyroADC[YAW] = -Z;}
      //#define FORCE_MAG_ORIENTATION(X, Y, Z)  {imu.magADC[ROLL]  =  X; imu.magADC[PITCH]  =  Y; imu.magADC[YAW]  = Z;}



One other thing I'm going to post here for other people is a page of the wiki I found very helpful in diagnosing what the sensors should be showing on the raw data display.

How should be the sensor axis directions

TILT the MULTI to the RIGHT (left side up):
MAG_ROLL, ACC_ROLL and GYRO_ROLL goes up
MAG_Z and ACC_Z goes down

TILT the MULTI forward (tail up):
MAG_PITCH, ACC_PITCH and GYRO_PITCH goes up
MAG_Z and ACC_Z goes down

Rotating the copter clockwise (YAW):
GYRO_YAW goes up


The copter stays level:
MAG_Z is positive ; ACC_Z is positive