Crocoddyl
 
Loading...
Searching...
No Matches
ActuationModelFloatingBaseThrustersTpl< _Scalar > Class Template Reference

Actuation models for floating base systems actuated with thrusters. More...

#include <floating-base-thrusters.hpp>

Inheritance diagram for ActuationModelFloatingBaseThrustersTpl< _Scalar >:
ActuationModelAbstractTpl< _Scalar >

Public Types

typedef ActuationModelAbstractTpl< Scalar > Base
 
typedef ActuationDataAbstractTpl< Scalar > Data
 
typedef MathBaseTpl< Scalar > MathBase
 
typedef MathBase::MatrixXs MatrixXs
 
typedef _Scalar Scalar
 
typedef StateMultibodyTpl< Scalar > StateMultibody
 
typedef ThrusterTpl< Scalar > Thruster
 
typedef MathBase::Vector3s Vector3s
 
typedef MathBase::VectorXs VectorXs
 
- Public Types inherited from ActuationModelAbstractTpl< _Scalar >
typedef ActuationDataAbstractTpl< Scalar > ActuationDataAbstract
 
typedef MathBaseTpl< Scalar > MathBase
 
typedef MathBase::MatrixXs MatrixXs
 
typedef StateAbstractTpl< Scalar > StateAbstract
 
typedef MathBase::VectorXs VectorXs
 

Public Member Functions

 ActuationModelFloatingBaseThrustersTpl (std::shared_ptr< StateMultibody > state, const std::vector< Thruster > &thrusters)
 Initialize the floating base actuation model equipped with thrusters.
 
virtual void calc (const std::shared_ptr< Data > &data, const Eigen::Ref< const VectorXs > &, const Eigen::Ref< const VectorXs > &u)
 Compute the actuation signal and actuation set from its thrust and joint torque inputs \(\mathbf{u}\in\mathbb{R}^{nu}\).
 
virtual void calcDiff (const std::shared_ptr< Data > &data, const Eigen::Ref< const VectorXs > &, const Eigen::Ref< const VectorXs > &)
 Compute the Jacobians of the floating base thruster actuation function.
 
virtual void commands (const std::shared_ptr< Data > &data, const Eigen::Ref< const VectorXs > &, const Eigen::Ref< const VectorXs > &tau)
 Compute the joint torque input from the generalized torques.
 
virtual std::shared_ptr< DatacreateData ()
 Create the floating base thruster actuation data.
 
std::size_t get_nthrusters () const
 Return the number of thrusters.
 
const MatrixXs & get_S () const
 
const std::vector< Thruster > & get_thrusters () const
 Return the vector of thrusters.
 
const MatrixXs & get_Wthrust () const
 
void print (std::ostream &os) const
 Print relevant information of the residual model.
 
void set_thrusters (const std::vector< Thruster > &thrusters)
 Modify the vector of thrusters.
 
virtual void torqueTransform (const std::shared_ptr< Data > &data, const Eigen::Ref< const VectorXs > &, const Eigen::Ref< const VectorXs > &)
 Compute the torque transform from generalized torques to joint torque inputs.
 
- Public Member Functions inherited from ActuationModelAbstractTpl< _Scalar >
 ActuationModelAbstractTpl (std::shared_ptr< StateAbstract > state, const std::size_t nu)
 Initialize the actuation model.
 
void calc (const std::shared_ptr< ActuationDataAbstract > &data, const Eigen::Ref< const VectorXs > &x)
 Ignore the computation of the actuation signal.
 
void calcDiff (const std::shared_ptr< ActuationDataAbstract > &data, const Eigen::Ref< const VectorXs > &x)
 Ignore the computation of the Jacobians of the actuation function.
 
std::size_t get_nu () const
 Return the dimension of the joint-torque input.
 
const std::shared_ptr< StateAbstract > & get_state () const
 Return the state.
 

Protected Attributes

MatrixXs Mtau_
 
std::size_t n_thrusters_
 Number of thrusters.
 
std::size_t nu_
 Dimension of joint torque inputs.
 
MatrixXs S_
 Selection matrix for under-actuation part.
 
std::shared_ptr< StateAbstractstate_
 Model of the state.
 
std::vector< Thrusterthrusters_
 Vector of thrusters.
 
bool update_data_
 
MatrixXs W_thrust_
 Matrix from thrusters thrusts to body wrench.
 
- Protected Attributes inherited from ActuationModelAbstractTpl< _Scalar >
std::size_t nu_
 Dimension of joint torque inputs.
 
std::shared_ptr< StateAbstractstate_
 Model of the state.
 

Additional Inherited Members

- Public Attributes inherited from ActuationModelAbstractTpl< _Scalar >
EIGEN_MAKE_ALIGNED_OPERATOR_NEW typedef _Scalar Scalar
 

Detailed Description

template<typename _Scalar>
class crocoddyl::ActuationModelFloatingBaseThrustersTpl< _Scalar >

Actuation models for floating base systems actuated with thrusters.

This actuation model models floating base robots equipped with thrusters, e.g., multicopters or marine robots equipped with manipulators. It control inputs are the thrusters' thrust (i.e., forces) and joint torques.

Both actuation and Jacobians are computed analytically by calc and calcDiff, respectively.

We assume the robot velocity to zero for easily related square thruster velocities with thrust and torque generated. This approach is similarly implemented in M. Geisert and N. Mansard, "Trajectory generation for quadrotor based systems using numerical optimal control", (ICRA). See Section III.C.

See also
ActuationModelAbstractTpl, calc(), calcDiff(), createData()

Definition at line 132 of file floating-base-thrusters.hpp.

Member Typedef Documentation

◆ Scalar

template<typename _Scalar >
typedef _Scalar Scalar

Definition at line 135 of file floating-base-thrusters.hpp.

◆ MathBase

template<typename _Scalar >
typedef MathBaseTpl<Scalar> MathBase

Definition at line 136 of file floating-base-thrusters.hpp.

◆ Base

template<typename _Scalar >
typedef ActuationModelAbstractTpl<Scalar> Base

Definition at line 137 of file floating-base-thrusters.hpp.

◆ Data

template<typename _Scalar >
typedef ActuationDataAbstractTpl<Scalar> Data

Definition at line 138 of file floating-base-thrusters.hpp.

◆ StateMultibody

template<typename _Scalar >
typedef StateMultibodyTpl<Scalar> StateMultibody

Definition at line 139 of file floating-base-thrusters.hpp.

◆ Thruster

template<typename _Scalar >
typedef ThrusterTpl<Scalar> Thruster

Definition at line 140 of file floating-base-thrusters.hpp.

◆ Vector3s

template<typename _Scalar >
typedef MathBase::Vector3s Vector3s

Definition at line 141 of file floating-base-thrusters.hpp.

◆ VectorXs

template<typename _Scalar >
typedef MathBase::VectorXs VectorXs

Definition at line 142 of file floating-base-thrusters.hpp.

◆ MatrixXs

template<typename _Scalar >
typedef MathBase::MatrixXs MatrixXs

Definition at line 143 of file floating-base-thrusters.hpp.

Constructor & Destructor Documentation

◆ ActuationModelFloatingBaseThrustersTpl()

template<typename _Scalar >
ActuationModelFloatingBaseThrustersTpl ( std::shared_ptr< StateMultibody state,
const std::vector< Thruster > &  thrusters 
)
inline

Initialize the floating base actuation model equipped with thrusters.

Parameters
[in]stateState of the dynamical system
[in]thrustersVector of thrusters

Definition at line 152 of file floating-base-thrusters.hpp.

◆ ~ActuationModelFloatingBaseThrustersTpl()

template<typename _Scalar >
virtual ~ActuationModelFloatingBaseThrustersTpl ( )
inlinevirtual

Definition at line 182 of file floating-base-thrusters.hpp.

Member Function Documentation

◆ calc()

template<typename _Scalar >
virtual void calc ( const std::shared_ptr< Data > &  data,
const Eigen::Ref< const VectorXs > &  ,
const Eigen::Ref< const VectorXs > &  u 
)
inlinevirtual

Compute the actuation signal and actuation set from its thrust and joint torque inputs \(\mathbf{u}\in\mathbb{R}^{nu}\).

Parameters
[in]dataFloating base thrusters actuation data
[in]xState point \(\mathbf{x}\in\mathbb{R}^{ndx}\)
[in]uJoint-torque input \(\mathbf{u}\in\mathbb{R}^{nu}\)

Implements ActuationModelAbstractTpl< _Scalar >.

Definition at line 192 of file floating-base-thrusters.hpp.

◆ calcDiff()

template<typename _Scalar >
virtual void calcDiff ( const std::shared_ptr< Data > &  data,
const Eigen::Ref< const VectorXs > &  ,
const Eigen::Ref< const VectorXs > &   
)
inlinevirtual

Compute the Jacobians of the floating base thruster actuation function.

Parameters
[in]dataFloating base thrusters actuation data
[in]xState point \(\mathbf{x}\in\mathbb{R}^{ndx}\)
[in]uJoint-torque input \(\mathbf{u}\in\mathbb{R}^{nu}\)

Implements ActuationModelAbstractTpl< _Scalar >.

Definition at line 215 of file floating-base-thrusters.hpp.

◆ commands()

template<typename _Scalar >
virtual void commands ( const std::shared_ptr< Data > &  data,
const Eigen::Ref< const VectorXs > &  x,
const Eigen::Ref< const VectorXs > &  tau 
)
inlinevirtual

Compute the joint torque input from the generalized torques.

It stores the results in ActuationDataAbstractTpl::u.

Parameters
[in]dataActuation data
[in]xState point \(\mathbf{x}\in\mathbb{R}^{ndx}\)
[in]tauGeneralized torques \(\mathbf{u}\in\mathbb{R}^{nv}\)

Implements ActuationModelAbstractTpl< _Scalar >.

Definition at line 228 of file floating-base-thrusters.hpp.

◆ torqueTransform()

template<typename _Scalar >
virtual void torqueTransform ( const std::shared_ptr< Data > &  data,
const Eigen::Ref< const VectorXs > &  x,
const Eigen::Ref< const VectorXs > &  u 
)
inlinevirtual

Compute the torque transform from generalized torques to joint torque inputs.

It stores the results in ActuationDataAbstractTpl::Mtau.

Parameters
[in]dataActuation data
[in]xState point \(\mathbf{x}\in\mathbb{R}^{ndx}\)
[in]tauJoint-torque inputs \(\mathbf{u}\in\mathbb{R}^{nu}\)

Reimplemented from ActuationModelAbstractTpl< _Scalar >.

Definition at line 235 of file floating-base-thrusters.hpp.

◆ createData()

template<typename _Scalar >
virtual std::shared_ptr< Data > createData ( )
inlinevirtual

Create the floating base thruster actuation data.

Returns
the actuation data

Reimplemented from ActuationModelAbstractTpl< _Scalar >.

Definition at line 252 of file floating-base-thrusters.hpp.

◆ get_thrusters()

template<typename _Scalar >
const std::vector< Thruster > & get_thrusters ( ) const
inline

Return the vector of thrusters.

Definition at line 262 of file floating-base-thrusters.hpp.

◆ get_nthrusters()

template<typename _Scalar >
std::size_t get_nthrusters ( ) const
inline

Return the number of thrusters.

Definition at line 267 of file floating-base-thrusters.hpp.

◆ set_thrusters()

template<typename _Scalar >
void set_thrusters ( const std::vector< Thruster > &  thrusters)
inline

Modify the vector of thrusters.

Since we don't want to allocate data, we request to pass the same number of thrusters.

Parameters
[in]thrustersVector of thrusters

Definition at line 277 of file floating-base-thrusters.hpp.

◆ get_Wthrust()

template<typename _Scalar >
const MatrixXs & get_Wthrust ( ) const
inline

Definition at line 307 of file floating-base-thrusters.hpp.

◆ get_S()

template<typename _Scalar >
const MatrixXs & get_S ( ) const
inline

Definition at line 309 of file floating-base-thrusters.hpp.

◆ print()

template<typename _Scalar >
void print ( std::ostream &  os) const
inlinevirtual

Print relevant information of the residual model.

Parameters
[out]osOutput stream object

Reimplemented from ActuationModelAbstractTpl< _Scalar >.

Definition at line 311 of file floating-base-thrusters.hpp.

Member Data Documentation

◆ thrusters_

template<typename _Scalar >
std::vector<Thruster> thrusters_
protected

Vector of thrusters.

Definition at line 321 of file floating-base-thrusters.hpp.

◆ n_thrusters_

template<typename _Scalar >
std::size_t n_thrusters_
protected

Number of thrusters.

Definition at line 322 of file floating-base-thrusters.hpp.

◆ W_thrust_

template<typename _Scalar >
MatrixXs W_thrust_
protected

Matrix from thrusters thrusts to body wrench.

Definition at line 323 of file floating-base-thrusters.hpp.

◆ Mtau_

template<typename _Scalar >
MatrixXs Mtau_
protected

Constaint torque transform from generalized torques to joint torque inputs

Definition at line 324 of file floating-base-thrusters.hpp.

◆ S_

template<typename _Scalar >
MatrixXs S_
protected

Selection matrix for under-actuation part.

Definition at line 326 of file floating-base-thrusters.hpp.

◆ update_data_

template<typename _Scalar >
bool update_data_
protected

Definition at line 328 of file floating-base-thrusters.hpp.

◆ nu_

template<typename _Scalar >
std::size_t nu_
protected

Dimension of joint torque inputs.

Definition at line 172 of file actuation-base.hpp.

◆ state_

template<typename _Scalar >
std::shared_ptr<StateAbstract> state_
protected

Model of the state.

Definition at line 173 of file actuation-base.hpp.


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