Age | Commit message (Collapse) | Author |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
The Vision class can template match in a search region. The search
region result is masked by an ellipse related to the S matrix of the
feature.
|
|
This class can display measurements and featuers and find new features.
When complete it will also perform measurements.
|
|
|
|
|
|
STATESIZE 9 works just as it does for experiment04032017 tag. The
quaternion covariance is not being set correctly yet.
|
|
Replace FULLSTATE define with STATESIZE.
|
|
The Jacobian of the measurement model, Hx and Hy were updated using code
generated with matlab's ccode() function. This generates a number of
intermediate values, which are an optimization by the function's
description, before setting the final values. In any case, it's not
necessarily more readable, but it does eliminate the incredbily long
lines used previously.
|
|
|
|
|
|
1-Pt RANSAC is a method for detecting outlier measurements in the EKF
framework. This algorithm is as described in Civera 2010.
|
|
|
|
|
|
It makes sense to decouple the measurement type, referred to as feature
type or fType from the Feature class since a feature can be measured in
different ways throughout its lifetime. Better to keep knowledge of the
measurement type in the State class.
|
|
Feature methods were updated to accomodate both types of features.
|
|
|
|
|
|
|
|
|
|
Still needs to be debugged as the result is way off, but it is all
there.
|
|
|
|
Added a boolean function that returns if the feature is in the FOV. This
method does not use the camera calibration, it just tests if the
feature's angle w.r.t. the body.
|
|
This function allows an incremental update of the feature state where
X += dx
|
|
Added a method to test if a feature is sane. It looks to see if the
feature has negative depth or if it is too close or too far away.
Added a method to output the feature location as a UTM struct.
|
|
And also fixed F computation for features.
I realized that the features were transformed from image to body frame
prior to being passed to State. This makes sense because the State
really doesn't need to know about Camera objects. Since the camera was
no longer necessary inside of State it made sense to move the depth
computation from Camera::ref2body() into a method in the Feature class
that does not rely on camera parameters.
Additionally, the depth solver was changed from a simple matrix
inversion to a least squares calculation.
Fx in the feature class was fixed to take into account dt.
Updating Pkk1 is in the process of being modified to handle features.
|
|
|
|
This fixes a bug that was present in the pyslam code. The Jacobian of the motion
model needs to be replaced with:
F = I + F*dt
|
|
|
|
This is a method for computing S for an independent measurement. It can
provide a speed improvement over computing a full, correlated S, but may
reduce quality if correlated measurements are treated as independent.
|
|
The motion model is broken into two parts, the creation of the L matrix
and the state update. This means that ydot can be computed from the
state object for many features at once, saving computation time.
|
|
Used a slightly simplified expression to compute pib0. Replaced the
Householder Transform with quaternion based reflection (untested).
|
|
|
|
|