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.   | |
| 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.   | |
| 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.   | |
| 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.   | |
| 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.   | |
| 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.   | |
| VectorXs | diff_dx (const Eigen::Ref< const VectorXs > &x0, const Eigen::Ref< const VectorXs > &x1) | 
| Compute the state manifold differentiation.     | |
| 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.     | |
| 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.     | |
| void | set_lb (const VectorXs &lb) | 
| Modify the state lower bound.  | |
| void | set_ub (const VectorXs &ub) | 
| Modify the state upper bound.  | |
Additional Inherited Members | |
  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.   | |
Definition at line 19 of file euclidean.hpp.
| typedef _Scalar Scalar | 
Definition at line 21 of file euclidean.hpp.
| typedef MathBaseTpl<Scalar> MathBase | 
Definition at line 22 of file euclidean.hpp.
| typedef MathBase::VectorXs VectorXs | 
Definition at line 23 of file euclidean.hpp.
| typedef MathBase::MatrixXs MatrixXs | 
Definition at line 24 of file euclidean.hpp.
      
  | 
  virtual | 
Generate a zero state.
Implements StateAbstractTpl< _Scalar >.
      
  | 
  virtual | 
Generate a random state.
Implements StateAbstractTpl< _Scalar >.
      
  | 
  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.
| [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 >.
      
  | 
  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.
| [in] | x | State point (size nx)  | 
| [in] | dx | Velocity vector (size ndx)  | 
| [out] | xout | Next state point (size nx)  | 
Implements StateAbstractTpl< _Scalar >.
      
  | 
  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:
where \(\mathbf{J}_{\mathbf{x}_{1}}\) and \(\mathbf{J}_{\mathbf{x}_{0}}\) are the Jacobian with respect to the current and previous state, respectively.
| [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 >.
      
  | 
  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:
where \(\mathbf{J}_{\delta\mathbf{x}}\) and \(\mathbf{J}_{\mathbf{x}}\) are the Jacobian with respect to the state and velocity, respectively.
| [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 >.
      
  | 
  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.
| [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 >.