summaryrefslogtreecommitdiff
path: root/src
AgeCommit message (Collapse)Author
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
2017-03-25Update Body::SMartin Miller
Change variable name to reflect that we are only using Pxx and not the full P matrix.
2017-03-25Add Feature methods.Martin Miller
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.
2017-03-24Compute Pk|k-1 using full state.Martin Miller
Previously State::Pkk1() was only being computed for the body states. Methods State::F() and State::Q() were written to compose the full versions of their respective matrices and the results are used to update Pk|k-1.
2017-03-24Move feature depth calculation to Feature class.Martin Miller
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.
2017-03-24Body can return velocityMartin Miller
2017-03-23Add Camera::ref2body()Martin Miller
Method converts a source reflection pair into a body coordinate with depth.
2017-03-22Add measurement structMartin Miller
2017-03-22Add feature handling to stateMartin Miller
2017-03-22Read in image measurements from fileMartin Miller
2017-03-22Add error handling functions.Martin Miller
2017-03-21Add Camera::rc2b() method.Martin Miller
2017-03-21small changesMartin Miller
2017-03-20Fix Jacobian of motion model.Martin Miller
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
2017-03-20Use hardcoded block sizes. Update skewSymmetric.Martin Miller
We can hardcode block sizes using templates for a possible performance increase. Body::skewSymmetric() was modified to return matrix instead of modifying one in place.
2017-03-19Forgot to add this file several commits ago.Martin Miller
types.h contains all of the type definitions, they were moved out of main.h because I couldn't successfully compile that way.
2017-03-19Add Camera classMartin Miller
2017-03-19Fix img handlingMartin Miller
2017-03-19Add feature ConstructorMartin Miller
2017-03-19Add Feature::S() method.Martin Miller
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.
2017-03-19Add motion model.Martin Miller
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.
2017-03-19Implement feature measurement prediction.Martin Miller
Used a slightly simplified expression to compute pib0. Replaced the Householder Transform with quaternion based reflection (untested).
2017-03-19Adjust UTM output and bias.Martin Miller
2017-03-18Start Feature::h() methodMartin Miller