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 |
| 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) override |
| Compute the actuation signal and actuation set from its thrust and joint torque inputs | |
| 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. | |
| 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. | |
| virtual std::shared_ptr< Data > | createData () override |
| Create the floating base thruster actuation data. | |
| 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. | |
| 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 > &) override |
| 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. | |
| const VectorXs & | get_u_lb () const |
| Return the actuation lower bound. | |
| const VectorXs & | get_u_ub () const |
| Return the actuation upper bound. | |
| void | set_u_lb (const VectorXs &u_lb) |
| Modify the actuation lower bounds. | |
| void | set_u_ub (const VectorXs &u_ub) |
| Modify the actuation upper bounds. | |
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. | |
| Protected Attributes inherited from ActuationModelAbstractTpl< _Scalar > | |
| std::size_t | nu_ |
| Dimension of joint torque inputs. | |
| std::shared_ptr< StateAbstract > | state_ |
| Model of the state. | |
| VectorXs | u_lb_ |
| Lower actuation limits. | |
| VectorXs | u_ub_ |
| Upper actuation limits. | |
Additional Inherited Members | |
| Public Attributes inherited from ActuationModelAbstractTpl< _Scalar > | |
| 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.
Definition at line 145 of file floating-base-thrusters.hpp.
| typedef MathBaseTpl<Scalar> MathBase |
Definition at line 153 of file floating-base-thrusters.hpp.
| typedef ActuationModelAbstractTpl<Scalar> Base |
Definition at line 154 of file floating-base-thrusters.hpp.
| typedef ActuationDataAbstractTpl<Scalar> Data |
Definition at line 155 of file floating-base-thrusters.hpp.
| typedef StateMultibodyTpl<Scalar> StateMultibody |
Definition at line 156 of file floating-base-thrusters.hpp.
| typedef ThrusterTpl<Scalar> Thruster |
Definition at line 157 of file floating-base-thrusters.hpp.
| typedef MathBase::Vector3s Vector3s |
Definition at line 158 of file floating-base-thrusters.hpp.
| typedef MathBase::VectorXs VectorXs |
Definition at line 159 of file floating-base-thrusters.hpp.
| typedef MathBase::MatrixXs MatrixXs |
Definition at line 160 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 169 of file floating-base-thrusters.hpp.
| inlineoverridevirtual |
Compute the actuation signal and actuation set from its thrust and joint torque inputs 
| [in] | data | Floating base thrusters actuation data |
| [in] | x | State point |
| [in] | u | Joint-torque input |
Implements ActuationModelAbstractTpl< _Scalar >.
Definition at line 220 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 |
| [in] | u | Joint-torque input |
Implements ActuationModelAbstractTpl< _Scalar >.
Definition at line 243 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 |
| [in] | tau | Generalized torques |
Implements ActuationModelAbstractTpl< _Scalar >.
Definition at line 256 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 |
| [in] | tau | Joint-torque inputs |
Reimplemented from ActuationModelAbstractTpl< _Scalar >.
Definition at line 263 of file floating-base-thrusters.hpp.
| inlineoverridevirtual |
Create the floating base thruster actuation data.
Reimplemented from ActuationModelAbstractTpl< _Scalar >.
Definition at line 280 of file floating-base-thrusters.hpp.
| inline |
Definition at line 288 of file floating-base-thrusters.hpp.
| inline |
Return the vector of thrusters.
Definition at line 302 of file floating-base-thrusters.hpp.
| inline |
Return the number of thrusters.
Definition at line 307 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 317 of file floating-base-thrusters.hpp.
| inline |
Definition at line 349 of file floating-base-thrusters.hpp.
| inline |
Definition at line 351 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 353 of file floating-base-thrusters.hpp.
| protected |
Vector of thrusters.
Definition at line 363 of file floating-base-thrusters.hpp.
| protected |
Number of thrusters.
Definition at line 364 of file floating-base-thrusters.hpp.
| protected |
Matrix from thrusters thrusts to body wrench.
Definition at line 365 of file floating-base-thrusters.hpp.
| protected |
Constaint torque transform from generalized torques to joint torque inputs
Definition at line 366 of file floating-base-thrusters.hpp.
| protected |
Selection matrix for under-actuation part.
Definition at line 368 of file floating-base-thrusters.hpp.
| protected |
Definition at line 370 of file floating-base-thrusters.hpp.
| protected |
Dimension of joint torque inputs.
Definition at line 193 of file actuation-base.hpp.
| protected |
Model of the state.
Definition at line 194 of file actuation-base.hpp.