-
Notifications
You must be signed in to change notification settings - Fork 139
Components
jdavidberger edited this page Aug 16, 2020
·
1 revision
Component Type | Component | Description | Authors |
---|---|---|---|
Poser | poser_charlesslow.c | A very slow, but exhaustive poser system. Calibration only. | @cnlohr |
Poser | poser_daveortho.c | A very fast system using orthograpic view and affine transformations. Calibration only (for now) | @ultramn |
Poser | poser_dummy.c | Template for posers | @cnlohr |
Poser | poser_octavioradii.c | A potentially very fast poser that works by finding the best fit of the distances from the lighthouse to each sensor that matches the known distances between sensors, given the known angles of a lighthouse sweep. Incomplete- distances appear to be found correctly, but more work needed to turn this into a pose. Based on this python code. | @mwturvey and @octavio2895 |
Poser | poser_turveytori.c | A moderately fast, fairly high precision poser that works by determine the angle at the lighthouse between many sets of two sensors. Using the inscirbed angle theorom, each set defines a torus of possible locations of the lighthouse. Multiple sets define multiple tori, and this poser finds most likely location of the lighthouse using least-squares distance. Best suited for calibration, but is can be used for real-time tracking on a powerful system. | @mwturvey |
Poser | poser_epnp.c | Reasonably fast and accurate calibration and tracker that uses the EPNP algorithm to solve the perspective and points problem. Suitable for fast tracking, but does best with >5-6 sensor readings. | @jdavidberger |
Poser | poser_barycentric_svd.c | Generalizes the barycentric / svd approach used with EPNP; but allows for different plane equations to support LH2 | @jdavidberger |
Poser | poser_sba.c | Reasonably fast and accurate calibration and tracker but is dependent on a 'seed' poser to give it an initial estimate. This then performs bundle adjustment to minimize reprojection error given both ligthhouse readings. This has the benefit of greatly increasing accuracy by incorporating all the light data that is available. Set 'SBASeedPoser' config option to specify the seed poser; default is EPNP. | @jdavidberger |
Poser | poser_mpfit.c (default) | Performs Levenberg-Marquardt using MPFIT. Since SBA does basically the same thing, this poser gets nearly identical results to SBA. Overall it is a tad slower than SBA since SBA uses optimized lapack functions to solve Ax=b, but MPFIT has the distinction of not needing lapack at all since it's Ax=b solver is a minimal internal version. It also requires a seed poser. | @jdavidberger |
Disambiguator | survive_charlesbiguator.c | The old disambiguator - very fast, but slightly buggy. | @cnlohr |
Disambiguator | survive_turveybiguator.c | More complicated but much more robust disambiguator | @mwturvey |
Disambiguator | survive_statebased_disambiguator.c (default) | A fast disambiguator that was times the state shifts between pulses. Experimental. Made to allow tracking very close to the lighthouse | @jdavidberger |
Dismabiguator | superceded disambiguator | A more sophisticated disambiguator, development abandoned. Removed from tree. | @jpicht |
Driver | survive_vive.c | Driver for HTC Vive HMD, Watchmen (wired+wireless) and Tracker | @cnlohr and @mwturvey |
OOTX Decoder | ootx_decoder.c | The system that takes the pulse-codes from the sync pulses from the lighthouses and get OOTX Data | @axlecrusher |
Component Type | Pluggability method |
---|---|
Driver | Dynamically loadable runtime, can co-exist with other drivers. |
Poser | Selectable by configuration at runtime |
Disambiguator | Selectable by configuration at runtime |
OOTX Decoder | Not Pluggable |