Point Cloud Library (PCL) 1.15.1-dev
Loading...
Searching...
No Matches
List of all members | Public Member Functions
pcl::registration::AndersonAcceleration Class Reference

Lightweight Anderson acceleration helper used to speed up fixed-point iterations in FRICP. More...

#include <pcl/registration/anderson_acceleration.h>

Public Member Functions

 AndersonAcceleration ()=default
 
void init (std::size_t history, std::size_t dimension, const double *initial_state)
 Initialise the accelerator with a circular buffer of size history.
 
bool isInitialized () const
 
std::size_t history () const
 
std::size_t dimension () const
 
void replace (const double *state)
 
void reset (const double *state)
 
const Eigen::VectorXd & compute (const double *next_state)
 Apply one Anderson acceleration update.
 

Detailed Description

Lightweight Anderson acceleration helper used to speed up fixed-point iterations in FRICP.

The class stores a short history of the most recent residuals and solves the normal equations following the scheme described in "Fast and Robust Iterative Closest Point", Zhang et al., 2022.

Only double precision is supported internally to maximise numerical stability.

Definition at line 25 of file anderson_acceleration.h.

Constructor & Destructor Documentation

◆ AndersonAcceleration()

pcl::registration::AndersonAcceleration::AndersonAcceleration ( )
default

Member Function Documentation

◆ compute()

const Eigen::VectorXd & pcl::registration::AndersonAcceleration::compute ( const double *  next_state)
inline

Apply one Anderson acceleration update.

Parameters
[in]next_stateFlattened state obtained from the fixed-point iteration.
Returns
Reference to the accelerated state vector.

Definition at line 105 of file anderson_acceleration.h.

◆ dimension()

std::size_t pcl::registration::AndersonAcceleration::dimension ( ) const
inline

Definition at line 75 of file anderson_acceleration.h.

Referenced by init().

◆ history()

std::size_t pcl::registration::AndersonAcceleration::history ( ) const
inline

Definition at line 69 of file anderson_acceleration.h.

Referenced by init().

◆ init()

void pcl::registration::AndersonAcceleration::init ( std::size_t  history,
std::size_t  dimension,
const double *  initial_state 
)
inline

Initialise the accelerator with a circular buffer of size history.

Parameters
[in]historyNumber of previous iterates to keep (m in the paper).
[in]dimensionDimensionality of the flattened state vector.
[in]initial_statePointer to the initial state (expects dimension doubles).

Definition at line 38 of file anderson_acceleration.h.

References dimension(), and history().

◆ isInitialized()

bool pcl::registration::AndersonAcceleration::isInitialized ( ) const
inline

Definition at line 63 of file anderson_acceleration.h.

◆ replace()

void pcl::registration::AndersonAcceleration::replace ( const double *  state)
inline

Definition at line 81 of file anderson_acceleration.h.

◆ reset()

void pcl::registration::AndersonAcceleration::reset ( const double *  state)
inline

Definition at line 89 of file anderson_acceleration.h.


The documentation for this class was generated from the following file: