Hello all!
Im trying to study quadrotor dynamics, control and etc. I have quadrotor with ArduCopter 3.3 and Mission Planner 1.3.33. Getting dataflash logs via MP and making MATLAB files makes me possible to study for example roll angle. So I can see next figures:
Red plots -- numerical differentiation of previous primitives and blue plots -- data from logs, but in case of dot(roll) it is multiplied by 50 and in case of ddot(roll) is multiplied by 2500.
So I have next question: what data is real and why?
Thank you in advance for your reply and I will give all the necessary information to answer.
Replies
HI there,
Your work is very interesting and I was wondering if you mind please sharing how you are extracting the units of time after you convert your dataflash log file into MATLAB?
Thanks
Which fields from the dataflash logs are you using?
It could be that different units are used for roll and dot(roll). I know that APM uses centi-degrees for some variables. It could even be a radians/degrees units issue. Can't think offhand of a conversion factor between units of 50 though...
Thanks for your answer!
I'm taking values from next fields:
roll.signals.roll=ATT(:,4);
roll.signals.vel=IMU(:,3);
roll.signals.acc=IMU(:,7);
I have thought about radians/degrees and cent., etc but there is different information in different places :) For example in Log.pde in Arduino project roll taking as
roll : (int16_t)ahrs.roll_sensor,where
// integer Euler angles (Degrees * 100)
int32_t roll_sensor;
and that it really so (I can see it is console) but it is already degrees in logs..
Looking at the IMU structure, IMU(:,7) is actually the y-axis acceleration.
The IMU data structure had the following fields:
-->disp(IMU_label)
!"LineNo" !
! !
!"TimeMS" !
! !
!"GyrX" !
! !
!"GyrY" !
! !
!"GyrZ" !
! !
!"AccX" !
! !
!"AccY" !
! !
!"AccZ" !
Which fits with the documentation in http://copter.ardupilot.com/wiki/common-downloading-and-analyzing-d...
As far as I'm aware, the APM doesn't log ddot(roll), as the on-board gyros directly measure dot(roll).
Dear Stephen,
thanks for your answer again!
Yes, I have seen this description of ddot(roll) and realized that this is not rotation rates, sorry :)
But anyway, as it follows from documentation:
Roll The vehicle’s actual roll in centi-degrees (roll left is negative, right is positive)
But in MATLAB logs roll is already in degrees (I compare experiment and log) and
GyrX, GyrY, GyrZ The raw gyro rotation rates in degrees/second.
Accelerometers I can count if I know where is problem -- numerical differentiation or log files.
Thank you for your response! It is a little bit closer step for solving my problem! :)