Hot answers tagged

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

The glaring issue I see at the moment is that you are forcing polarity on the I and D terms. In general, you are using a lot of sign checks, sign assignments, and conditional programming. None of that belongs in a PID controller. The entire controller should look like: pError = Input - Output; iError = iError + pError*dt; dError = (pError - previousError);...


10

If permanent magnets are rigidly mounted at a fixed distance from the IMU, they have no effect on the accelerometers and gyros inside the MPU-6050. You can optionally connect the MPU-6050 to an external magnetometer. (It's used to cancel out yaw drift). That magnetometer, if you have one, will be affected by magnets. In theory you could shield the ...


7

Gyro is needed to stabilize angular acceleration. Knowing only your attitude, drone doesn't know how fast on which axis is rotating, knows only where is gravity vector. Gyro gives you feedback on angular acceleration and that's what gives your drone stability. Also, you can use only gyro in your drone, it will stabilize movement, but won't get back to ...


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

I assume that you are looking for an IMU that provides you with an orientation estimation. The complete package is usually called an Attitude and Heading Reference System (AHRS). What really is the most defining criteria is your budget. Getting above 3 degrees/s should be within reach though. We have been working with the XSens MTi and had good enough ...


6

I have used a VN-100 IMU to replace an old one (which could be quite inaccurate). My experience with the VN-100 is quite good. It includes an internal Kalman filter to estimate pitch, roll and yaw (using magnetic sensors), and you can tune the gains on the Kalman filter yourself. How they should be tuned will depend on your application (eg. vibration, usual ...


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

Yes. The px4 software for the pixhawk autopilot has an extended kalman filter that uses an accelerometer, a gyroscope, gps, and mag. A paper describing the a smaller ekf which only estimates attitude can be found on archive.org and code for the full ekf can be found on github with further information on archive.org.


6

You already know the answer - because as you say it contains an accelerometer and a rate gyro. An accelerometer measures linear acceleration, a rate gyro measures angular velocity. These are the only quantities the unit will actually measure. The other properties - whether positions, velocities or accelerations - have to be calculated by the controller. For ...


5

The gyrometer gives you angular velocity about each axis. You simply integrate these values to get the roll, pitch and yaw of the robot. Since this is 2D, all you care about is yaw, and you'll integrate one value. Of course, there are many different ways of integrating the value you read from the gyrometer. The easiest way is to sample the gyro, timestamp ...


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

Simple 3-axis accelerometers will give you an estimate of pitch. However, this will be very noisy, especially when the hand is moving from one pose to another. This is because the direction of acceleration is directly used to estimate the direction of gravity. Thus, this option would only be useful if the hand is not moving. Gyroscopes allow the direction ...


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

How to estimate a robot's position depends on how well you'd like to estimate it. If you just need a rough guess, try odometry, it works OK. For better results, you have to incorporate more sensors. That's an incremental process that involves a lot of sensor fusion, and suddenly, you've built an Extended Kalman Filter. The best way, in my opinion, is to use ...


4

You can use the INS / GPS as updates to the output of your first EKF. This is, in fact, not chaining, but simply conditioning the estimate based on the added information from the INS / GPS. Suppose we have the following functions: $x_{t+1|t}$, $P_{t+1|t}$ = EKF_PREDICT($x_t$, $P_t$, $u_t$), for inputs as state $x$, covariance $P$, and control inputs (...


4

I updated ArduIMU's firmware and successfully got 100hz of output without disabling normalization. Update: Thanks to Kalman filter firmware of ArduIMU I got up to 180hz of output plus removing all noises.


4

I am not allowed to comment, so I have to add a reply. By position, do you mean the location in space (so X, Y coordinates), or orientation (tilt, etc)? If position, you can use the accelerometer values and integrate acceleration to get distance traveled, though this is fairly inaccurate. We have tried to do this for a quadcopter, and the drift due to error ...


4

If your object $O$ has a different orientation from your global frame $S$, and you know what that difference in orientation is, you can create a 4x4 transform matrix between the two: $$ T = \left[ \begin{array}{cc} R & s \\ 0 & 1 \end{array} \right] $$ where $R$ is the 3x3 rotation matrix, $s$ is the 3x1 translation vector, $0$ is a 1x3 row of ...


4

This is a complete re-working of the answer I had originally provided. If you're curious, you can check the edit history and see what was posted earlier. In comments to this question, OP stated that they might be able to get throttle and steering angles for the robot, but they probably wouldn't be accurate. That's okay; it's better than nothing. OP also ...


4

Mags are used in almost all UAVs. It will be useful and it will be a unique source of information. Adding a some shielding between the mag and your computers and power lines will greatly reduced the noise. Noise can be further reduced by twisting all of the wires that carry significant current (wires to motors and ESCs). Be aware that the measurement will ...


3

Ultrasonic transducers are the best bet, in my opinion. However, they might cost you a little over "a few bucks". You have two options: Set two/three ultrasonic Rx/Tx pair along one plane. Trigger them sequentially, in quick succession and triangulate your object in 3D. A drawback of this approach is that the sensor noise would be phenomenal. The other ...


3

by searching for a different topic I found your post and I work with the Sparkfun Razor 9DOF IMU too. Actually it was a pain in the ass to get it all work. First of all you have to do the tutorial razor-9dof-ahrs form ptrbrtz. When this is working you can do the next steps. Btw.: read it carefully and you should be able to do it on your own!!! First I ...


3

The short answer is yes, this can work. The long answer is "Yes, but you need to do a lot of sensor fusion". The technology you're after was conceived about 5 years ago, the academic work is here: https://people.csail.mit.edu/wojciech/MoCap/index.html They combined the accelerometer data with ultrasonic ranges between the joints to improve the position ...


3

Hard to tell in this exact case. I looked up the MPU-6050 specs and I am unsure whether it integrates a digital compass to combat gyro drift. On Sparkfun, it refers to it being a '9 axis fusion algorithm' which implies compass (three axis each for gyro, accel, and magento) but elsewhere it only refers to gyro and accel. I was doing some related work with ...


3

To get relative displacement between two time instants all you need to do is integrate the values given off by the accelerometer (twice for linear displacement) and gyro (once for angular displacement). Due to measurement errors, which can many times be adequately modeled as Gaussian (you might have to estimate a bias and/or scale factor to the measurement),...


3

Using an IMU you can only measure: acceleration, rate of rotation, and direction of magnetic field. You cannot measure velocity, you can only integrate the acceleration to infer velocity. As you can imagine, this leads to velocity drift, which in turn leads to a lot of unbounded position drift. There are three parts to your problem: Infer the robot's ...


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

Unfortunately, with just an IMU there's virtually no way for your quad to know that it's drifting so it can't stop it. For outdoor flight you can add a GPS to detect the drift. For indoor flight, many people use vision systems to detect the drift. Depending on how close you are to walls, you could also look at ultrasonic range sensors to detect drift.


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