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 _Scalar | Scalar |
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. | |
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< Data > | createData () |
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. | |
![]() | |
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< 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 132 of file floating-base-thrusters.hpp.
typedef _Scalar Scalar |
Definition at line 135 of file floating-base-thrusters.hpp.
typedef MathBaseTpl<Scalar> MathBase |
Definition at line 136 of file floating-base-thrusters.hpp.
typedef ActuationModelAbstractTpl<Scalar> Base |
Definition at line 137 of file floating-base-thrusters.hpp.
typedef ActuationDataAbstractTpl<Scalar> Data |
Definition at line 138 of file floating-base-thrusters.hpp.
typedef StateMultibodyTpl<Scalar> StateMultibody |
Definition at line 139 of file floating-base-thrusters.hpp.
typedef ThrusterTpl<Scalar> Thruster |
Definition at line 140 of file floating-base-thrusters.hpp.
typedef MathBase::Vector3s Vector3s |
Definition at line 141 of file floating-base-thrusters.hpp.
typedef MathBase::VectorXs VectorXs |
Definition at line 142 of file floating-base-thrusters.hpp.
typedef MathBase::MatrixXs MatrixXs |
Definition at line 143 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 152 of file floating-base-thrusters.hpp.
|
inlinevirtual |
Definition at line 182 of file floating-base-thrusters.hpp.
|
inlinevirtual |
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 192 of file floating-base-thrusters.hpp.
|
inlinevirtual |
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 215 of file floating-base-thrusters.hpp.
|
inlinevirtual |
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 228 of file floating-base-thrusters.hpp.
|
inlinevirtual |
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 235 of file floating-base-thrusters.hpp.
|
inlinevirtual |
Create the floating base thruster actuation data.
Reimplemented from ActuationModelAbstractTpl< _Scalar >.
Definition at line 252 of file floating-base-thrusters.hpp.
|
inline |
Return the vector of thrusters.
Definition at line 262 of file floating-base-thrusters.hpp.
|
inline |
Return the number of thrusters.
Definition at line 267 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 277 of file floating-base-thrusters.hpp.
|
inline |
Definition at line 307 of file floating-base-thrusters.hpp.
|
inline |
Definition at line 309 of file floating-base-thrusters.hpp.
|
inlinevirtual |
Print relevant information of the residual model.
[out] | os | Output stream object |
Reimplemented from ActuationModelAbstractTpl< _Scalar >.
Definition at line 311 of file floating-base-thrusters.hpp.
|
protected |
Vector of thrusters.
Definition at line 321 of file floating-base-thrusters.hpp.
|
protected |
Number of thrusters.
Definition at line 322 of file floating-base-thrusters.hpp.
|
protected |
Matrix from thrusters thrusts to body wrench.
Definition at line 323 of file floating-base-thrusters.hpp.
|
protected |
Constaint torque transform from generalized torques to joint torque inputs
Definition at line 324 of file floating-base-thrusters.hpp.
|
protected |
Selection matrix for under-actuation part.
Definition at line 326 of file floating-base-thrusters.hpp.
|
protected |
Definition at line 328 of file floating-base-thrusters.hpp.
|
protected |
Dimension of joint torque inputs.
Definition at line 172 of file actuation-base.hpp.
|
protected |
Model of the state.
Definition at line 173 of file actuation-base.hpp.