15

I'm going to give you a high-level overview without going into much math. The purpose here is to give you a somewhat intuitive understanding of what is going on, and hopefully this will help the more mathematical resources make more sense. I'm mostly going to focus on the unscented transform, and how it relates to the UKF. Random variables Alright, the ...


9

You have asked two questions. As I interpret them they are: Is it necessary to linearize the odometry motion model for use with an extended Kalman filter (EKF)? Is it better to use the odometry motion model instead of the velocity motion model. Regarding question 1, the short answer is "yes." The guarantees of the Kalman filter (KF) only apply to linear ...


8

A few notes first, First, as you mentioned, you can't just pull out a submatrix and do an update on it. You can do a propogation step on a submatrix, however. This is because of the cross-covariance terms (which "spread" information across different parts of the state). This is why having a more accurate estimate of your heading will lead to more accurate ...


8

Covariance is defined as $\begin{align} C &= \mathbb{E}(XX^T) - \mathbb{E}(X)\mathbb{E}(X^T) \end{align}$ where, in your case, $X \in \mathbb{R}^6$ is your state vector and $C$ is the covariance matrix you already have. For the transformed state $X'=R X$, with $R \in \mathbb{R}^{6\times 6}$ in your case, this becomes $\begin{align} C' &= \mathbb{...


8

It is both acceptable and standard to use camera observations with a Kalman filter if you are talking about landmark positions in pixel or real-world space. Pixel space observations are usually randomly Caushy distributed but it turns out the Gaussian Kalman filter works pretty well in this case. The method you're describing using the Mahalonobis distance ...


7

They are exactly the same. Information matricies (aka precision matricies) are the inverse of covariance matricies. Follow this. The covariance update $$P_{+} = (I-KH)P$$ can be expanded by the definition of $K$ to be $$ P_{+} = P - KHP $$ $$ P_{+} = P - PH^T (HPH^T+R)^{-1} HP $$ Now apply the matrix inversion lemma, and we have: $$ P_{+} = P - PH^T (HPH^...


6

I would model this as a one-state system (x), with the gyro as the control input. The gyro noise becomes state input noise, the compass noise becomes measurement noise. So your system model becomes $$\hat{\dot \theta} = \omega_{gyro} + w$$ $$\hat y = \hat x$$ where $\hat y$ is the filter's estimate of direction, which you compare to the compass direction ...


6

First, be careful when using the term "observable" with respect to Kalman filters. It has a precise mathematical meaning that basically determines whether or not the filter is even possible. With respect to your question, you need to select a subset of the observation and measurement noise covariance matrices depending on which measurements are available. ...


6

Here are a few possible points of consideration. Certainly the UKF has many counterpoints where it has an advantage too. The most obvious advantage is computation power. Don't forget that traditionally, these filters are implemented on embedded systems with very limited computational resources. Also, while I don't have much experience with UKFs myself, one ...


6

Hi and welcome to the wide, ambiguous, sometimes confusing world of research. But seriously, looking at 20 years of papers will sometimes produce these confusions. Let's look at what's going on. In the first reference, what they are saying is: An INS/Gyro is nice, but has an error in it. That error changes (drifts) over time. Therefore, the error in the ...


6

Assuming a constant update of 5Hz, your sample time is (1/5) = 0.2s. Get one position of the target, p1. Get a second position of the target, p2. Target speed is the difference in position divided by difference in time: $$ v = (p_2 - p_1)/dT \\ v = (p_2 - p_1)/0.2 $$ Now predict where they will be in the future, where future is $x$ seconds from now: $$...


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

There are actually several issues in this question which I will answer separately. 1) Error is: $$\sqrt{(x_m-x_{gt})^2}$$ No, error is just $$(x_m - x_{gt})$$ This may be part of your problem with zero means because any error distribution will have a positive mean if you force all errors to be positive. 2) My error distribution does not have zero mean. ...


6

I realize this question already has an accepted answer, but I'd like to provide some additional input. The question of sensor fusion is a good one, but, depending on the application, you don't typically want to "convert" (i.e., integrate twice) the IMU to obtain xyz position. Frankly, in my experience, the best way to approach fusing GPS and IMU data for a ...


5

The Jacobian is of size $2\times 4$ because you have four state elements and two measurement equations. The Jacobian of the measurement model is the matrix where each $i,j$ element corresponds to the partial derivative of the $i$th measurement equation with respect to the $j$th state element.


5

I just see your post now and it is maybe too late to really help you... but in case you are still interested in this: I think that I identified your problem. You write the innovation covariance matrix in the following way E = jacobian measure * P * jacobian measure It might be alright in theory but what happens is that if your algorithm is effective and ...


5

In my understanding, $\epsilon_{t}$ accounts for the uncertainties of the state model. Uncertainties come from real life imperfections, for example the wheels are not completely round, or the weight distribution is not even, or the motors don't perform exactly as predicted by the model. So when the robot executes a straight movement, it is expected to ...


5

Here is one toy case where off-diagonal elements are non-zero. Consider a state vector that includes the position of both the left and right wheels instead of just a single position for the robot. Now if the left wheel has a position of 100m then you know the right wheel will also have a position of roughly 100m (depending on the axle length). As the left ...


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

It sounds like you're using the camera frames to get a PnP solution, or something along those lines. A linear Kalman filter will usually work OK for most purposes if you're using roll/pitch/yaw and pose measurements coming from the camera algorithm. This is always the first port of call because it's much easier than EKF/UKF/etc. If this does not give ...


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 ...


5

A good choice for sensor fusion with the MPU6050 is a second order complementary filter, which I used for the orientation estimation in a project. The complementary filter is computational cheap and so a good choice for a microcontroller. A paper about the implementation you can find here: http://www.academia.edu/6261055/...


5

In short answer: yes Kalman filter is a special case of an $H_2$ observer Yes Yes ... LQG is just Kalman filter + LQR controller, which are both special cases of $H_2$ Depends on use case. $H_2$ minimizes maximum error while $H_{\infty}$ minimizes error function 2-norm Very complicated The somewhat longer answer: $H_2$ and $H_{\infty}$ control are both ...


4

I have read the book, and found it unnecessarily obtuse. Unfortunately, the code snippets will not be very helpful, since they will probably look exactly like the equations, while using a matrix library like Eigen, OpenCV, boost, or just Matlab. To get a good understanding of a Kalman Filter, you should start with a review of multi-variate Gaussian random ...


4

$\mu_{t-1}$ is the state estimate from the last time step, $x_{t-1}$ is the actual state (a random variable) in the last time step. Basically it goes like this: in the traditional Kalman filter, you have linear models that tells us how states evolve and measurements are made. In the EKF you have non-linear models but want to use the Kalman filter equations,...


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

This is called "data association" in tracking literature. When you measure the position of an object, you need to know which object it was you measured. If you can estimate this probability, then you are free to choose the most likely association. This is a heavily researched topic, but boils down to Bayesian analysis. Here's a simple way: Assume we have ...


4

The two links that I found most useful were Kalman Filter for Undergrads1 and Kalman Filter for Dummies. They're not high on the theory though. and Student Dave's Kalman Filter Tutorial. The last one has matlab code that you can play with and is easy to follow.


4

To get a feeling for the covariance matrix - without getting into the math details here - its best to start with a 2x2 matrix. Then remember that the covariance matrix is an extension of the concept of variance into the multivariate case. In the 1D case, variance is a statistic for a single random variable. If your random variable has a Gaussian distribution ...


4

I'm assuming this is with respect to a Kalman filter? Mathematically, yes it can be zero. The effect of this is that model is assumed to be perfect and estimation uncertainty is due 100% to the uncertainty in the initial state. In the extreme case, if you assume 0 initial uncertainty you will never have any model uncertainty and all your measurements will ...


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