ref: Move the full jacobian and bound track parameters to the parameter_transporter and merge it with the parameter_resetter #880
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.
Move the data to the actor that updates them, to pool the update functionality with the corresponding data in a single place.
It is currently possible to call an actor like the
pointwise_material_interactor
in the actor chain while forgetting to register theparameter_transporter
in the same actor chain, even though the material interactor depends on the correct update of the bound track parameters. This PR makes sure, that dependent actors like the material interactor will no longer compile without the parameter_transporter by making their call operator take the parameter transporter state as an argument, which now contains the bound track parameters. Furthermore, this is abstracted in a new type, theparamerter_updater
, that additionally makes sure that theparameter_resetter
is called correctly, as well. Any actors that depend on the updated bound parameters and covariance can be given to this new type as template parameter list and will automatically be inserted correctly in the actor chain.In the future, it should be possible to add a second state to the parameter transporter, which does not own the bound track parameters but takes a pointer from the CKF to the current bound track parameters. This should avoid copying the bound track parameters between the CKF and the propagation. At the same time, the stepper becomes easier to reuse in a simulation context with this PR, since it is not mandatory anymore to hold the bound track parameters and full jacobian in memory.