paparazzi-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Paparazzi-devel] re: razor imu


From: GARCIA ALVAREZ, ANA
Subject: [Paparazzi-devel] re: razor imu
Date: Thu, 10 Feb 2011 08:39:21 +0100

So,

The IMU_SENS and ACCEL_SENS are written in floating point. And they convert the ADC values in SI physical magnitudes. Furthermore, the real magnitudes are obtained via: real magnitude=sens*(adc value-neutral)

For the accelerometers, I have obtained the following parameter:

SENS==0.0883 

For the gyros with a similar operation I obtain 0.0158663


But with these parameters, the IMU doesn’t react...it’s like they are too small…

I have tested with different sens values, and have found ones which make the PFD react more or less according to the inclinations I apply…but after some seconds it looks like the IMU fixed another position as zero…I have read something about gyro drift, but don’t know if that is what I’m experiencing.

 

On other hand, I was watching only the ACCEL_RAW and GYRO_RAW messages with the message agent. I have looked into messages.xml and can see they should be the unscaled values, but I think I see the unscaled values-neutrals(with sens=1)…but when I add a sens parameter different to zero, instead of the unscaled values I see (I guess sens*(unscaled-neutral))…and then I have also looked into the ap_downlink.h:

 

#ifdef IMU_TYPE_H

#include "subsystems/imu.h"

#define PERIODIC_SEND_IMU_ACCEL_RAW(_chan) { DOWNLINK_SEND_IMU_ACCEL_RAW(_chan, &imu.accel_unscaled.x, &imu.accel_unscaled.y, &imu.accel_unscaled.z)}

#define PERIODIC_SEND_IMU_GYRO_RAW(_chan) { DOWNLINK_SEND_IMU_GYRO_RAW(_chan, &imu.gyro_unscaled.p, &imu.gyro_unscaled.q, &imu.gyro_unscaled.r)}

#define PERIODIC_SEND_IMU_ACCEL(_chan) { DOWNLINK_SEND_IMU_ACCEL_RAW(_chan, &imu.accel.x, &imu.accel.y, &imu.accel.z)}

#define PERIODIC_SEND_IMU_GYRO(_chan) { DOWNLINK_SEND_IMU_GYRO_RAW(_chan, &imu.gyro.p, &imu.gyro.q, &imu.gyro.r)}

#else

#define PERIODIC_SEND_IMU_ACCEL_RAW(_chan) {}

#define PERIODIC_SEND_IMU_GYRO_RAW(_chan) {}

#define PERIODIC_SEND_IMU_ACCEL(_chan) {}

#define PERIODIC_SEND_IMU_GYRO(_chan) {}

#endif

 

And as far I as can understand, it’s like the messages IMU_ACCEL_RAW and IMU_ACCEL are mixed…

I have tried changing in the IMU_ACCEL, the DOWNLINK_SEND part to DOWNLINK_SEND_IMU_ACCEL (without the raw), and then I always see the raw values in the raw message…the problem is that in the other messages IMU_ACEL and IMU_GYRO I see “nad” or something like that, I can’t remember exactly.

 

Sorry it’s such a long message…but I am still trying to make the IMU run, and wonder if I have some hardware issue(I don’t know if I should remove some resistors in the IMU-but feel that this is not the problem), or if I am not well understanding the sens parameter, if calibrating the IMU is not a simple question…

 

Next steps I’ll take will be testing the software branches supposed to work with the IMU(when I first tried them there were errors while compiling)and trying the calibration tool…I don’t know which programs are supposed to be installed to run the script, only python? When I run it by now, I get two nice pictures of my desktop, and nothing more.

 


reply via email to

[Prev in Thread] Current Thread [Next in Thread]