# Tag Info

12

"LSB RMS" means the root-mean-squared value of the total noise in least significant bits of the digital channel. Roughly, that's the standard deviation of the noise times the weight of one step of the digital value. "$\mu g/\sqrt{Hz}$" means the power spectral density in micro-g's ($1\mu g \simeq 0.000098 m/s^2$). If the power spectral density is flat, ...

11

In controls this is known as disturbance rejection. In order to sustain your motion in the presence of high winds you need the controller to be as responsive as possible, and an accelerometer would help. A fast loop rate will also help. You also have to deal with the nonlinearities of thrust, drag, weight, and lift. Depending on the design of your ...

8

The only way to get a velocity from an accelerometer is to numerically integrate the output of the accelerometer. That is, $$v = v_0 + a*dT \\$$ where $dT$ is the elapsed time between accelerometer readings. This means that you need to find the initial velocity $v_0$, and that an accelerometer cannot give an absolute velocity reading, only relative. ...

7

You should really read the datasheet that acs linked in a comment to your question. The device you're using has a set of 16-bit analog to digital converters (ADCs) that convert the actual outputs of the gyroscopes and accelerometers to a digital format the microcontrollers can process. The device outputs positive and negative accelerations and speeds, ...

7

A couple things, the first is that the controller does not really care what the "real" values are. Everything is relative, if the controller sees that it is sinking it will increase the thrust until it is not sinking. If it is tilting too far to the left it will decrease the right thrust and increase the left thrust. (Here is a good resource if you want to ...

6

It is possibly a bias in the accelerometer. The measured non-zero results (like yours) are the bias. No idea if the magnitude of these biases is right, i.e., you may be experiencing more error than you should expect from a bias. To be clear, you can subtract this bias from your estimate of acceleration. However, you should be sure that the bias doesn't ...

6

The answer is that 3-axis accelerometers don't have a left handed coordinate system just for the gravity. In static condition (i.e. if the accelerometer is not accelerating with respect to any inertial frame) they measure the opposite of gravity acceleration, not the gravity acceleration itself. In more general terms, the accelerometers measure the ...

6

There are lots of ways to solve this problem, which falls into the category of Control Engineering. There are two standard approaches: Classical Control: The control command has to be proportional to a linear combination of the error, the rate of change of the error, and the integral over time of the error, a.k.a. a PID controller. This approach ...

5

Generally, for indoor flight, commercial quadcopters do not measure position. Instead, they measure the change in position so as to prevent the quadrotor from moving when it should not. So while accelerometers are not great for maintaining an estimate of the quadrotors position they can be used to stabilize the system, i.e. to determine what commands needed ...

5

First, here's what you CAN do with those sensors. Assuming you are not constantly accelerating you can use the accelerometer to know which direction is "down" (the gyro can be used as well for faster updates). If there aren't any magnetic field disturbances, you can also use the compass to know which direction is forward. Usually this is done using either an ...

5

Am I correct in saying that this would not require a gyro, just a 3 (2?) axis accelerometer, to detect pitch and roll, then adjust the ailerons and elevator to compensate? No. The opposite is true. The accelerometer will be almost useless to detect rotations on a platform that's experiencing unknown accelerations. Your plane will be subject to two force ...

5

As the name of the accelerometer implies, you measure the acceleration on your system excluding that from the gravitational force. When your sensor is at rest, you measure the acceleration from the force that you use to counteract the gravitational force. This is how you can fix your orientation vs the gravity vector. When the sensor is accelerated, as would ...

5

Increasing the sampling frequency of the sensor doesn't improve it's accuracy or precision. That is a feature of the sensor which you usually cannot change. If you try to estimate your position by integrating accelerations alone, you definitely will accumulate error over time, because every sensor is noisy. If you want to use the accelerometers to determine ...

5

Assuming your vehicle is roughly horizontal to the ground, you won't be able get a good estimate of yaw from the accelerometer. Consider the nominal case: when your accelerometer is pointing straight down (Ax=0, Ay=0, Az=g) the reading will never change as you change yaw angle. Normally, to get yaw angle vehicles use a magnometer (measure earth's magnetic ...

5

You're trying to do numeric integration, which takes the form: $$\mbox{integrated value } +=\mbox{derivative} * \mbox{elapsed time}$$ What you have instead of elapsed time is some value called speed. Try setting up your numeric integration code on an interrupt, where the interrupt timing is what you would use in place of elapsed time. I'm not sure what ...

5

Most "meters" of all varieties include up to three degrees of freedom simply to observe all three dimensions of reality we find ourselves in. That said, every object in our three space has three additional dimensions of rotation. Therefore an unconstrained object is typically said to have six degrees of freedom. I had to search nine to understand. ...

5

Cross-axis sensitivity: A reading on one axis creates a false reading on another axis. This could be because the signal traces are close together and capacitive coupling induces a voltage on the adjacent trace. Axis misalignment: The x-axis of the sensor is not aligned with the x-axis of the package, so when you are expecting an x-axis reading because you ...

5

If the drone is not falling (holding height in the sky), and it's not accelerating in any particular direction, then the accelerometer should be reading: $$a = \left[ \begin{array}{} g_x \\ g_y \\ g_z \end{array}\right]$$ where $g_N$ is the component of gravity along each axis. If the drone is upright and stationary, and the accelerometer is oriented ...

4

Think in terms of your control loop speed. A typical fast control loop speed is 1kHz. Some robots use a faster rate, some slower. Usually your control loop speed is higher than you really need it to be. So each control frame lasts for 1000us. Within this control frame you need to: Sample your sensors Perform the control calculations Send the new outputs to ...

4

OK. I'm too lazy to read the document, but in general you can model the sensor response as $$\alpha_m = S \alpha + b$$ where $\alpha$ is the actual acceleration in three dimensions with respect to the accelerometer body (including the acceleration due to gravity), $\alpha_m$ is the measured acceleration from the accelerometer, $b$ is an offset, and $S$ is ...

4

The mechanics of your vehicle are not extremely relevant here; I will assume that the motion your vehicle induces on the sensors will be within their specifications. Entire volumes have been written on "sensor fusion", which is the act of combining measurements from multiple sensors (e.g. your gyro, accelerometer, and compass). Doing this 100% accurately ...

4

There are quite a few things wrong here. I'll split them into two sections: technical errors, and coding warnings. Technical Errors: You are not calculating your angles from accelerometer readings correctly. Consider the arguments in general - they are the normalized accelerometer readings on each axis. You then take the inverse cosine of these. So, if ...

3

Is ... GPS data ... fused with the accelerometer data? Yes, many aircraft use sensor-fusion techniques so both GPS data and accelerometer data effect the estimated X, Y, Z position. Often they use a Kalman filter to do the data fusion. ( kalman-filter; Why do I need a Kalman filter? ) Measuring X,Y,Z accurately for each photo is important for assembling ...

3

I realize this question is 2 years old, but I have direct recent experience with this. The way I did this is with 6 rotated cube positions with 1000 points at each position, so a total of 6000 samples. I'm assuming Matlab/numpy nomenclature, where NxM means N rows and M columns. I assume an equation like Ax = B where B is the measured values matrix (...

3

What you want is a three-axis (or sometimes triple-axis, three-axes) accelerometer, which will allow you to detect the magnitude and direction of the acceleration. If you want to detect the acceleration of one part relative to another part, then you need an accelerometer for each part. I2C is a reasonably standard sensor protocol. I2C accelerometers are ...

3

You can theoretically use just an accelerometer for determining motion, but it may not be accurate enough to achieve your goals. The big problem with accelerometers is drift over time (i.e., errors in the acceleration measurement get integrated twice), so your position accuracy significantly decreases over time. The severity of this problem depends on the ...

3

There is a project on Google Code called MMA7361-library. The GE Tech Wiki has a simple example showing how to use this library. Copied inline below for posterity. #include <AcceleroMMA7361.h> AcceleroMMA7361 accelero; int x; int y; int z; void setup() { Serial.begin(9600); accelero.begin(13, 12, 11, 10, A0, A1, A2); accelero.setARefVoltage(5); //...

3

Gyroscopes will only give you the rate of change of the yaw angle, not the absolute yaw angle. Unless you plan to set the yaw angle initially and have it drift further and further into garbage values (as you integrate the rate of change), you'll need another sensor to provide periodic updates on your actual yaw. This could be a magnetometer (compass), or ...

3

I went through the header files of the 12cdev lib and I figured it out. you have to first add the line VectorInt16 gyro; to your motion variables, then you add the line mpu.dmpGetGyro(&gyro, fifoBuffer); to your outputs.

3

This is really simple. First of all, you need to understand how the sensor works. In other words, you need understand whether the measurements is coming from linear or nonlinear model. Second, what is the type of the sensor's noise? CASE STUDY: Let's say you want to simulate DC Voltemeter to measure a battery's voltage of 5 Volt. In an ideal case, the ...

Only top voted, non community-wiki answers of a minimum length are eligible