Trajectory estimation

The estimation of the trajectory, and all auxilliary parameters, are performed through the TrajectoryEstimator class.

Behind the scenes, the estimator builds a Ceres-Solver optimization problem that is then solved.

class kontiki.TrajectoryEstimator

Class that performs trajectory estimation.

solve(progress=True, max_iterations=50)

Solve the estimation problem by minimizing the measurement residuals. Returns a Summary instance.

If progress is True, then a progress report is written to stdout while the optimization in progressing.

max_iterations specify the number of steps the optimizer is allowed to take.

add_measurement(m : Measurement)

Add a measurement to the optimization problem.

Warning

Make sure the measurement m is alive until solve() has been called, e.g. by putting it in a list.

add_callback(func, update_state=False)

Adds a callback function which is called after every iteration of the optimizer.

The callback function should accepts a single IterationSummary instance as argument, and return either None, or a CallbackReturnType value. None is the same as CallbackReturnType.Continue.

If your callbacks need to access the objects currently being optimized (e.g. the trajectory), you must set update_state=True.

Estimator helper classes

The following classes are wrappers around the Ceres-Solver classes of the same name.

class kontiki.CallbackReturnType

Return types for iteration callbacks

Members:

Abort : Abort the optimization

Continue : Continue the optimization

TerminateSuccessfully : Stop the optimization, marking it as success

class kontiki.Summary
BriefReport(self: kontiki._ceres.Summary) → str
FullReport(self: kontiki._ceres.Summary) → str
IsSolutionUsable(self: kontiki._ceres.Summary) → bool
final_cost
fixed_cost
initial_cost
inner_iteration_time_in_seconds
is_constrained
iterations
jacobian_evaluation_time_in_seconds
line_search_cost_evaluation_time_in_seconds
line_search_gradient_evaluation_time_in_seconds
line_search_polynomial_minimization_time_in_seconds
line_search_total_time_in_seconds
linear_solver_time_in_seconds
message
minimizer_time_in_seconds
num_effective_parameters
num_effective_parameters_reduced
num_inner_iteration_steps
num_linear_solver_threads_given
num_linear_solver_threads_used
num_parameter_blocks
num_parameter_blocks_reduced
num_parameters
num_parameters_reduced
num_residual_blocks
num_residual_blocks_reduced
num_residuals
num_residuals_reduced
num_successful_steps
num_threads_given
num_threads_used
num_unsuccessful_steps
postprocessor_time_in_seconds
preprocessor_time_in_seconds
residual_evaluation_time_in_seconds
termination_type
total_time_in_seconds
class kontiki.IterationSummary
cost
cost_change
cumulative_time_in_seconds
eta
gradient_max_norm
gradient_norm
iteration

Current iteration

iteration_time_in_seconds
line_search_function_evaluations
line_search_gradient_evaluations
line_search_iterations
linear_solver_iterations
relative_decrease
step_is_nonmonotonic
step_is_successful
step_is_valid

Step was numerically valid

step_norm
step_size
step_solver_time_in_seconds
trust_region_radius