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


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

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

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

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

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

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

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 the use case. $H_2$ minimizes error function 2-norm while $H_{\infty}$ minimizes maximum error Very complicated The somewhat longer answer: $H_2$ and $H_{\infty}$ control are both ...


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

What you are describing is essentially a textbook case for using a Kalman filter. First you need a prediction step. Let's assume you are predicting the pose of the robot $(x,y,\theta)$, given the previous pose estimate and your high-frequency velocity measurements $(v,\omega)$, where $v$ is the linear velocity and $\omega$ is the angular velocity. $P$ is ...


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


4

I have used POMDP like models on top of a localization algorithm (Adaptive Monte Carlo Localization, from ROS), and a person detector [1][2] to find and follow a person with a humanoid robot. These two algorithms generate the input (observation) for the POMDP model in [1] and [2]. Also in [3] they used a POMDP model with similar input. As next step we used ...


4

In general, I try to obey the following two rules when selecting states: Only use the states necessary for control, and Choose states to be measurable properties, whenever possible. For example, on my car's dashboard I could include: suspension displacement, brake pad wear, tire wear, etc. - these are all measurable properties that are critical to ...


4

I encountered this problem myself when making an extended Kalman filter for a quadrotor. You have to check if the estimate goes above or below +/- pi, and then correct it if it does. You can do this with a simple if statement: if (angle > pi) angle = angle - 2*pi; else if (angle < -pi) angle = angle + 2*pi; You could also throw in a while ...


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

Both state space representations are equivalent. For example the eigenvalues of the two closed-loop system matrices should be the same. However when implementing LQG you only have access to the outputs and the variables you introduced yourself, so either $\hat{x}$ or $\tilde{x}$. But you are still limited by the given dynamics of the states of the system you ...


4

A Kalman Filter (estimator is actually more apt than filter) simply estimates states, that's all it does. It, by itself, cannot drive a plant towards a desired output. The estimated states are used to determine how far off the plant is from the desired state. Controls are implemented after KF has already been used to obtain the current state. Referring to ...


4

In fact you can update the filter's state using the input from each sensor separately, you just need to use a different covariance matrix $\mathbf{R}$ and observation matrix $\mathbf{H}$ depending on the sensor. This will only affect the update step — the prediction step equations (the ones you referred to) are computed the same way regardless of the reading'...


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