summaryrefslogtreecommitdiff
path: root/src
AgeCommit message (Collapse)Author
2017-04-05changesMartin Miller
2017-04-04Angular bias must have had z off by a factor of -1Martin Miller
Adjusted this and set tentative canoe values.
2017-04-04Full state mostly implemented.Martin Miller
STATESIZE 9 works just as it does for experiment04032017 tag. The quaternion covariance is not being set correctly yet.
2017-04-04Use STATESIZE for FeatureMartin Miller
Replace FULLSTATE define with STATESIZE.
2017-04-04Update Body to use STATESIZEMartin Miller
2017-04-04Add #if statements to call methods properly.Martin Miller
2017-04-04Update statesize and remove quaternion input.Martin Miller
Rather than use FULLSTATE define, we define STATESIZE, which removes a lot of the preprocessor ifdefs. This should be done in Body and Feature also. Quaterniond was removed as an input to methods when STATESIZE==13 and it is instead accessed from the body state.
2017-04-04Update Feature class to use FULLSTATE.Martin Miller
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.
2017-04-04Begin updating Feature to use FULLSTATEMartin Miller
2017-04-03Add quaternion accessor to Body.Martin Miller
2017-04-03Update body to use full state.Martin Miller
The changes add quaternion estimation to the body state. The quaternion is still provided as an input, but it is ignored.
2017-04-03changesMartin Miller
2017-03-31yaw flagsMartin Miller
2017-03-31height measurement flagsMartin Miller
2017-03-31Add compile time flags.Martin Miller
2017-03-31Update mainMartin Miller
2017-03-31Add 1-Point RANSAC.Martin Miller
1-Pt RANSAC is a method for detecting outlier measurements in the EKF framework. This algorithm is as described in Civera 2010.
2017-03-31Add yaw correction factor.Martin Miller
This is sort of a fudge to compensate for poor camera to IMU calibration. It injects additional yaw into the Rc2b matrices.
2017-03-31Add Filter class.Martin Miller
This is not tested to be working yet.
2017-03-30Use only FULLS kalman updateMartin Miller
2017-03-29tweakMartin Miller
2017-03-291.2 m error on 1112-1-3Martin Miller
2017-03-29Add new update methods.Martin Miller
But they don't really work.
2017-03-29Remove feature type from Feature classMartin Miller
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.
2017-03-29Allow for the usage of REFLECTION and MONO features.Martin Miller
Feature methods were updated to accomodate both types of features.
2017-03-29Change hardcoded values to definesMartin Miller
2017-03-28fix lineparse with typecasetMartin Miller
2017-03-28ChangesMartin Miller
2017-03-28move aboveWaterMartin Miller
() back to main
2017-03-28updateMartin Miller
2017-03-27EKF is workingMartin Miller
2017-03-27Fix Hx, Hy initializationMartin Miller
2017-03-27Change Body::update to Body::dxMartin Miller
Update was too vague since a lot of things get updated. dx more clearly refers to the incremental update after a Kalman update.
2017-03-27Change {State,Body}::enu() to pos()Martin Miller
2017-03-27Add comments to CameraMartin Miller
2017-03-27Tweak mainMartin Miller
2017-03-26Fully implemented EKF.Martin Miller
Still needs to be debugged as the result is way off, but it is all there.
2017-03-26Use householder transformation for ppbhatMartin Miller
2017-03-26Set height above water.Martin Miller
2017-03-25Add HEIGHT measurement to typesMartin Miller
2017-03-25Add State methods for kalman update and innovation.Martin Miller
State::kalmanUpdate should be general enough to work with both the full and independent update methods. The State::innovation method calculates the innovation vector directly rather than building z and hhat individually.
2017-03-25Add initial view to Feature.Martin Miller
2017-03-25Add State::R() method, refactor H()Martin Miller
Method to compute R for given vector of z measurements. Added a method State::Hrows(z) to return number of rows in H(z).
2017-03-25update measurement_t typeMartin Miller
2017-03-25Methods added to State to get HMartin Miller
Added a method to return an H matrix for the provided measurements. This should be a versatile method that can work for the full H update or the indpendent update depending on what measurements are passed. Some helper methods were also added for determining a features location in the state vector and for return a feature pointer by id.
2017-03-25Turn off FASTMOTIONMODELMartin Miller
Testing shows that this is not, in fact, faster. Possibly it can be made more efficient in the future.
2017-03-25Add Feature method to test if in FOVMartin Miller
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.
2017-03-25Add code to State for removing features.Martin Miller
After updating the state according to the motion model we check if features are still in the field of view. If they are not they are cleanly removed. Removal requires deletion of the feature, removal from the features list and shrinkng the P matrix.
2017-03-25Update State::motionModel and addFeaturesMartin Miller
Add the feature motion model update to the state method. It is implemented in two ways: one is the for loop that operates on each feature instance directly, which is how it has been implemented in the past. The second method is to compose a large L matrix for all features and compute the per feature dx in one go. It is expected that the second method is faster, but it is not yet tested for speed.
2017-03-25Add Feature::dx()Martin Miller
This function allows an incremental update of the feature state where X += dx