Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Description
This module implements a sequential, weighted leas-squares algorithm to process torque measurements and triangulate the location of the center of mass, relying on the knowledge of the thrust vector and application point. At least two measurements are required to triangulate the location. The estimated CM location allows to stabilize the thrust vector in order to continuously dump momentum even in the presence of external disturbances such as SRP torque. Commit 1 adds a line to the cmake file to build the module in a new folder. Commit 2 adds a message containing estimated data and residuals. Commit 3 contains the initial module files. Commit 4 checks the connected messages. Commit 5 performs the actual LS estimation. Commits 6 and 7 contain the unit test and documentation, respectively.
Verification
A Unit Test is provided. Because this is an estimation, no exact result can be verified. However, this test checks the correctness of the results based on consideration regarding the estimated state error and covariance.
Documentation
Documentation is provided to explain how the estimator works.
Future work
The estimator can be expanded to include the unmodeled perturbation in the state, in order to properly estimate the CM and the unmodeled perturbation itself.