Actuation models for floating base systems actuated with thrusters. More...
#include <floating-base-thrusters.hpp>
Public Types | |
typedef ActuationModelAbstractTpl< Scalar > | Base |
typedef ActuationDataAbstractTpl< Scalar > | Data |
typedef MathBaseTpl< Scalar > | MathBase |
typedef MathBase::MatrixXs | MatrixXs |
typedef StateMultibodyTpl< Scalar > | StateMultibody |
typedef ThrusterTpl< Scalar > | Thruster |
typedef MathBase::Vector3s | Vector3s |
typedef MathBase::VectorXs | VectorXs |
![]() | |
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. More... | |
virtual void | calc (const std::shared_ptr< Data > &data, const Eigen::Ref< const VectorXs > &, const Eigen::Ref< const VectorXs > &u) override |
Compute the actuation signal and actuation set from its thrust and joint torque inputs \(\mathbf{u}\in\mathbb{R}^{nu}\). More... | |
virtual void | calcDiff (const std::shared_ptr< Data > &data, const Eigen::Ref< const VectorXs > &, const Eigen::Ref< const VectorXs > &) override |
Compute the Jacobians of the floating base thruster actuation function. More... | |
template<typename NewScalar > | |
ActuationModelFloatingBaseThrustersTpl< NewScalar > | cast () const |
virtual void | commands (const std::shared_ptr< Data > &data, const Eigen::Ref< const VectorXs > &, const Eigen::Ref< const VectorXs > &tau) override |
Compute the joint torque input from the generalized torques. More... | |
virtual std::shared_ptr< Data > | createData () override |
Create the floating base thruster actuation data. More... | |
EIGEN_MAKE_ALIGNED_OPERATOR_NEW | CROCODDYL_DERIVED_CAST (ActuationModelBase, ActuationModelFloatingBaseThrustersTpl) typedef _Scalar Scalar |
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 override |
Print relevant information of the residual model. More... | |
void | set_thrusters (const std::vector< Thruster > &thrusters) |
Modify the vector of thrusters. More... | |
virtual void | torqueTransform (const std::shared_ptr< Data > &data, const Eigen::Ref< const VectorXs > &, const Eigen::Ref< const VectorXs > &) override |
Compute the torque transform from generalized torques to joint torque inputs. More... | |
![]() | |
ActuationModelAbstractTpl (std::shared_ptr< StateAbstract > state, const std::size_t nu) | |
Initialize the actuation model. More... | |
void | calc (const std::shared_ptr< ActuationDataAbstract > &data, const Eigen::Ref< const VectorXs > &x) |
Ignore the computation of the actuation signal. More... | |
void | calcDiff (const std::shared_ptr< ActuationDataAbstract > &data, const Eigen::Ref< const VectorXs > &x) |
Ignore the computation of the Jacobians of the actuation function. More... | |
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< StateAbstract > | state_ |
Model of the state. | |
std::vector< Thruster > | thrusters_ |
Vector of thrusters. | |
bool | update_data_ |
MatrixXs | W_thrust_ |
Matrix from thrusters thrusts to body wrench. | |
![]() | |
std::size_t | nu_ |
Dimension of joint torque inputs. | |
std::shared_ptr< StateAbstract > | state_ |
Model of the state. | |
Additional Inherited Members | |
![]() | |
EIGEN_MAKE_ALIGNED_OPERATOR_NEW typedef _Scalar | 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.
ActuationModelAbstractTpl
, calc()
, calcDiff()
, createData()
Definition at line 136 of file floating-base-thrusters.hpp.
|
inline |
Initialize the floating base actuation model equipped with thrusters.
[in] | state | State of the dynamical system |
[in] | thrusters | Vector of thrusters |
Definition at line 160 of file floating-base-thrusters.hpp.
|
inlineoverridevirtual |
Compute the actuation signal and actuation set from its thrust and joint torque inputs \(\mathbf{u}\in\mathbb{R}^{nu}\).
[in] | data | Floating base thrusters actuation data |
[in] | x | State point \(\mathbf{x}\in\mathbb{R}^{ndx}\) |
[in] | u | Joint-torque input \(\mathbf{u}\in\mathbb{R}^{nu}\) |
Implements ActuationModelAbstractTpl< _Scalar >.
Definition at line 200 of file floating-base-thrusters.hpp.
|
inlineoverridevirtual |
Compute the Jacobians of the floating base thruster actuation function.
[in] | data | Floating base thrusters actuation data |
[in] | x | State point \(\mathbf{x}\in\mathbb{R}^{ndx}\) |
[in] | u | Joint-torque input \(\mathbf{u}\in\mathbb{R}^{nu}\) |
Implements ActuationModelAbstractTpl< _Scalar >.
Definition at line 223 of file floating-base-thrusters.hpp.
|
inlineoverridevirtual |
Compute the joint torque input from the generalized torques.
It stores the results in ActuationDataAbstractTpl::u
.
[in] | data | Actuation data |
[in] | x | State point \(\mathbf{x}\in\mathbb{R}^{ndx}\) |
[in] | tau | Generalized torques \(\mathbf{u}\in\mathbb{R}^{nv}\) |
Implements ActuationModelAbstractTpl< _Scalar >.
Definition at line 236 of file floating-base-thrusters.hpp.
|
inlineoverridevirtual |
Compute the torque transform from generalized torques to joint torque inputs.
It stores the results in ActuationDataAbstractTpl::Mtau
.
[in] | data | Actuation data |
[in] | x | State point \(\mathbf{x}\in\mathbb{R}^{ndx}\) |
[in] | tau | Joint-torque inputs \(\mathbf{u}\in\mathbb{R}^{nu}\) |
Reimplemented from ActuationModelAbstractTpl< _Scalar >.
Definition at line 243 of file floating-base-thrusters.hpp.
|
inlineoverridevirtual |
Create the floating base thruster actuation data.
Reimplemented from ActuationModelAbstractTpl< _Scalar >.
Definition at line 260 of file floating-base-thrusters.hpp.
|
inline |
Modify the vector of thrusters.
Since we don't want to allocate data, we request to pass the same number of thrusters.
[in] | thrusters | Vector of thrusters |
Definition at line 297 of file floating-base-thrusters.hpp.
|
inlineoverridevirtual |
Print relevant information of the residual model.
[out] | os | Output stream object |
Reimplemented from ActuationModelAbstractTpl< _Scalar >.
Definition at line 331 of file floating-base-thrusters.hpp.
|
protected |
Constaint torque transform from generalized torques to joint torque inputs
Definition at line 344 of file floating-base-thrusters.hpp.