Crocoddyl
StateVectorTpl< _Scalar > Class Template Reference
Inheritance diagram for StateVectorTpl< _Scalar >:

## Public Types

typedef MathBaseTpl< Scalar > MathBase

typedef MathBase::MatrixXs MatrixXs

typedef _Scalar Scalar

typedef MathBase::VectorXs VectorXs

Public Types inherited from StateAbstractTpl< _Scalar >
typedef MathBaseTpl< Scalar > MathBase

typedef MathBase::MatrixXs MatrixXs

typedef MathBase::VectorXs VectorXs

## Public Member Functions

StateVectorTpl (const std::size_t nx)

virtual void diff (const Eigen::Ref< const VectorXs > &x0, const Eigen::Ref< const VectorXs > &x1, Eigen::Ref< VectorXs > dxout) const
Compute the state manifold differentiation. More...

virtual void integrate (const Eigen::Ref< const VectorXs > &x, const Eigen::Ref< const VectorXs > &dx, Eigen::Ref< VectorXs > xout) const
Compute the state manifold integration. More...

virtual void Jdiff (const Eigen::Ref< const VectorXs > &, const Eigen::Ref< const VectorXs > &, Eigen::Ref< MatrixXs > Jfirst, Eigen::Ref< MatrixXs > Jsecond, const Jcomponent firstsecond=both) const
Compute the Jacobian of the state manifold differentiation. More...

virtual void Jintegrate (const Eigen::Ref< const VectorXs > &x, const Eigen::Ref< const VectorXs > &dx, Eigen::Ref< MatrixXs > Jfirst, Eigen::Ref< MatrixXs > Jsecond, const Jcomponent firstsecond=both, const AssignmentOp=setto) const
Compute the Jacobian of the state manifold integration. More...

virtual void JintegrateTransport (const Eigen::Ref< const VectorXs > &x, const Eigen::Ref< const VectorXs > &dx, Eigen::Ref< MatrixXs > Jin, const Jcomponent firstsecond) const
Parallel transport from integrate(x, dx) to x. More...

virtual VectorXs rand () const
Generate a random state.

virtual VectorXs zero () const
Generate a zero state.

Public Member Functions inherited from StateAbstractTpl< _Scalar >
StateAbstractTpl (const std::size_t nx, const std::size_t ndx)
Initialize the state dimensions. More...

VectorXs diff_dx (const Eigen::Ref< const VectorXs > &x0, const Eigen::Ref< const VectorXs > &x1)
Compute the state manifold differentiation. More...

bool get_has_limits () const
Indicate if the state has defined limits.

const VectorXs & get_lb () const
Return the state lower bound.

std::size_t get_ndx () const
Return the dimension of the tangent space of the state manifold.

std::size_t get_nq () const
Return the dimension of the configuration tuple.

std::size_t get_nv () const
Return the dimension of tangent space of the configuration manifold.

std::size_t get_nx () const
Return the dimension of the state tuple.

const VectorXs & get_ub () const
Return the state upper bound.

VectorXs integrate_x (const Eigen::Ref< const VectorXs > &x, const Eigen::Ref< const VectorXs > &dx)
Compute the state manifold integration. More...

std::vector< MatrixXs > Jdiff_Js (const Eigen::Ref< const VectorXs > &x0, const Eigen::Ref< const VectorXs > &x1, const Jcomponent firstsecond=both)

std::vector< MatrixXs > Jintegrate_Js (const Eigen::Ref< const VectorXs > &x, const Eigen::Ref< const VectorXs > &dx, const Jcomponent firstsecond=both)
Compute the Jacobian of the state manifold integration. More...

void set_lb (const VectorXs &lb)
Modify the state lower bound.

void set_ub (const VectorXs &ub)
Modify the state upper bound.

Public Attributes inherited from StateAbstractTpl< _Scalar >
EIGEN_MAKE_ALIGNED_OPERATOR_NEW typedef _Scalar Scalar

Protected Member Functions inherited from StateAbstractTpl< _Scalar >
void update_has_limits ()

Protected Attributes inherited from StateAbstractTpl< _Scalar >
bool has_limits_
Indicates whether any of the state limits is finite.

VectorXs lb_
Lower state limits.

std::size_t ndx_
State rate dimension.

std::size_t nq_
Configuration dimension.

std::size_t nv_
Velocity dimension.

std::size_t nx_
State dimension.

VectorXs ub_
Upper state limits.

## Detailed Description

### template<typename _Scalar> class crocoddyl::StateVectorTpl< _Scalar >

Definition at line 19 of file euclidean.hpp.

## ◆ diff()

 virtual void diff ( const Eigen::Ref< const VectorXs > & x0, const Eigen::Ref< const VectorXs > & x1, Eigen::Ref< VectorXs > dxout ) const
virtual

Compute the state manifold differentiation.

The state differentiation is defined as:

\begin{equation*} \delta\mathbf{x} = \mathbf{x}_{1} \ominus \mathbf{x}_{0}, \end{equation*}

where $$\mathbf{x}_{1}$$, $$\mathbf{x}_{0}$$ are the current and previous state which lie in a manifold $$\mathcal{M}$$, and $$\delta\mathbf{x} \in T_\mathbf{x} \mathcal{M}$$ is the rate of change in the state in the tangent space of the manifold.

Parameters
 [in] x0 Previous state point (size nx) [in] x1 Current state point (size nx) [out] dxout Difference between the current and previous state points (size ndx)

Implements StateAbstractTpl< _Scalar >.

## ◆ integrate()

 virtual void integrate ( const Eigen::Ref< const VectorXs > & x, const Eigen::Ref< const VectorXs > & dx, Eigen::Ref< VectorXs > xout ) const
virtual

Compute the state manifold integration.

The state integration is defined as:

\begin{equation*} \mathbf{x}_{next} = \mathbf{x} \oplus \delta\mathbf{x}, \end{equation*}

where $$\mathbf{x}$$, $$\mathbf{x}_{next}$$ are the current and next state which lie in a manifold $$\mathcal{M}$$, and $$\delta\mathbf{x} \in T_\mathbf{x} \mathcal{M}$$ is the rate of change in the state in the tangent space of the manifold.

Parameters
 [in] x State point (size nx) [in] dx Velocity vector (size ndx) [out] xout Next state point (size nx)

Implements StateAbstractTpl< _Scalar >.

## ◆ Jdiff()

 virtual void Jdiff ( const Eigen::Ref< const VectorXs > & x0, const Eigen::Ref< const VectorXs > & x1, Eigen::Ref< MatrixXs > Jfirst, Eigen::Ref< MatrixXs > Jsecond, const Jcomponent firstsecond = both ) const
virtual

Compute the Jacobian of the state manifold differentiation.

The state differentiation is defined as:

\begin{equation*} \delta\mathbf{x} = \mathbf{x}_{1} \ominus \mathbf{x}_{0}, \end{equation*}

where $$\mathbf{x}_{1}$$, $$\mathbf{x}_{0}$$ are the current and previous state which lie in a manifold $$\mathcal{M}$$, and $$\delta\mathbf{x} \in T_\mathbf{x} \mathcal{M}$$ is the rate of change in the state in the tangent space of the manifold.

The Jacobians lie in the tangent space of manifold, i.e. $$\mathbb{R}^{\textrm{ndx}\times\textrm{ndx}}$$. Note that the state is represented as a tuple of nx values and its dimension is ndx. Calling $$\boldsymbol{\Delta}(\mathbf{x}_{0}, \mathbf{x}_{1})$$, the difference function, these Jacobians satisfy the following relationships:

• $$\boldsymbol{\Delta}(\mathbf{x}_{0},\mathbf{x}_{0}\oplus\delta\mathbf{y}) - \boldsymbol{\Delta}(\mathbf{x}_{0},\mathbf{x}_{1}) = \mathbf{J}_{\mathbf{x}_{1}}\delta\mathbf{y} + \mathbf{o}(\mathbf{x}_{0})$$.
• $$\boldsymbol{\Delta}(\mathbf{x}_{0}\oplus\delta\mathbf{y},\mathbf{x}_{1}) - \boldsymbol{\Delta}(\mathbf{x}_{0},\mathbf{x}_{1}) = \mathbf{J}_{\mathbf{x}_{0}}\delta\mathbf{y} + \mathbf{o}(\mathbf{x}_{0})$$,

where $$\mathbf{J}_{\mathbf{x}_{1}}$$ and $$\mathbf{J}_{\mathbf{x}_{0}}$$ are the Jacobian with respect to the current and previous state, respectively.

Parameters
 [in] x0 Previous state point (size nx) [in] x1 Current state point (size nx) [out] Jfirst Jacobian of the difference operation relative to the previous state point (size ndx $$\times$$ndx) [out] Jsecond Jacobian of the difference operation relative to the current state point (size ndx $$\times$$ndx) [in] firstsecond Argument (either x0 and / or x1) with respect to which the differentiation is performed.

Implements StateAbstractTpl< _Scalar >.

## ◆ Jintegrate()

 virtual void Jintegrate ( const Eigen::Ref< const VectorXs > & x, const Eigen::Ref< const VectorXs > & dx, Eigen::Ref< MatrixXs > Jfirst, Eigen::Ref< MatrixXs > Jsecond, const Jcomponent firstsecond = both, const op = setto ) const
virtual

Compute the Jacobian of the state manifold integration.

The state integration is defined as:

\begin{equation*} \mathbf{x}_{next} = \mathbf{x} \oplus \delta\mathbf{x}, \end{equation*}

where $$\mathbf{x}$$, $$\mathbf{x}_{next}$$ are the current and next state which lie in a manifold $$\mathcal{M}$$, and $$\delta\mathbf{x} \in T_\mathbf{x} \mathcal{M}$$ is the rate of change in the state in the tangent space of the manifold.

The Jacobians lie in the tangent space of manifold, i.e. $$\mathbb{R}^{\textrm{ndx}\times\textrm{ndx}}$$. Note that the state is represented as a tuple of nx values and its dimension is ndx. Calling $$\mathbf{f}(\mathbf{x}, \delta\mathbf{x})$$, the integrate function, these Jacobians satisfy the following relationships:

• $$\mathbf{f}(\mathbf{x}\oplus\delta\mathbf{y},\delta\mathbf{x})\ominus\mathbf{f}(\mathbf{x},\delta\mathbf{x}) = \mathbf{J}_\mathbf{x}\delta\mathbf{y} + \mathbf{o}(\delta\mathbf{x})$$.
• $$\mathbf{f}(\mathbf{x},\delta\mathbf{x}+\delta\mathbf{y})\ominus\mathbf{f}(\mathbf{x},\delta\mathbf{x}) = \mathbf{J}_{\delta\mathbf{x}}\delta\mathbf{y} + \mathbf{o}(\delta\mathbf{x})$$,

where $$\mathbf{J}_{\delta\mathbf{x}}$$ and $$\mathbf{J}_{\mathbf{x}}$$ are the Jacobian with respect to the state and velocity, respectively.

Parameters
 [in] x State point (size nx) [in] dx Velocity vector (size ndx) [out] Jfirst Jacobian of the integration operation relative to the state point (size ndx $$\times$$ndx) [out] Jsecond Jacobian of the integration operation relative to the velocity vector (size ndx $$\times$$ndx) [in] firstsecond Argument (either x and / or dx) with respect to which the differentiation is performed [in] op Assignment operator which sets, adds, or removes the given Jacobian matrix

Implements StateAbstractTpl< _Scalar >.

## ◆ JintegrateTransport()

 virtual void JintegrateTransport ( const Eigen::Ref< const VectorXs > & x, const Eigen::Ref< const VectorXs > & dx, Eigen::Ref< MatrixXs > Jin, const Jcomponent firstsecond ) const
virtual

Parallel transport from integrate(x, dx) to x.

This function performs the parallel transportation of an input matrix whose columns are expressed in the tangent space at $$\mathbf{x}\oplus\delta\mathbf{x}$$ to the tangent space at $$\mathbf{x}$$ point.

Parameters
 [in] x State point (size nx). [in] dx Velocity vector (size ndx) [out] Jin Input matrix (number of rows = nv). [in] firstsecond Argument (either x or dx) with respect to which the differentiation of Jintegrate is performed.

Implements StateAbstractTpl< _Scalar >.

The documentation for this class was generated from the following files:
• /root/robotpkg/optimization/py-crocoddyl/work/crocoddyl-2.0.2/include/crocoddyl/core/fwd.hpp
• /root/robotpkg/optimization/py-crocoddyl/work/crocoddyl-2.0.2/include/crocoddyl/core/states/euclidean.hpp