Public Member Functions | Private Attributes | List of all members
exotica::CartpoleDynamicsSolver Class Reference

#include <cartpole_dynamics_solver.h>

Inheritance diagram for exotica::CartpoleDynamicsSolver:
Inheritance graph
[legend]

Public Member Functions

void AssignScene (ScenePtr scene_in) override
 
 CartpoleDynamicsSolver ()
 
StateVector f (const StateVector &x, const ControlVector &u) override
 Computes the forward dynamics of the system. More...
 
Eigen::MatrixXd fu (const StateVector &x, const ControlVector &u) override
 Computes the dynamics derivative w.r.t .the control input u. More...
 
Eigen::MatrixXd fx (const StateVector &x, const ControlVector &u) override
 Computes the dynamics derivative w.r.t .the state x. More...
 
Eigen::Tensor< double, 3 > fxu (const StateVector &x, const ControlVector &u) override
 
Eigen::Tensor< double, 3 > fxx (const StateVector &x, const ControlVector &u) override
 
- Public Member Functions inherited from exotica::AbstractDynamicsSolver< class, NX, NU >
 AbstractDynamicsSolver ()
 
virtual void AssignScene (std::shared_ptr< Scene > scene_in)
 
void ClampToStateLimits (Eigen::Ref< Eigen::VectorXd > state_in)
 
virtual void ComputeDerivatives (const StateVector &x, const ControlVector &u)
 
virtual Hessian ddStateDelta (const StateVector &x_1, const StateVector &x_2, const ArgumentPosition first_or_second)
 
virtual Eigen::Matrix< T, Eigen::Dynamic, Eigen::Dynamic > dStateDelta (const StateVector &x_1, const StateVector &x_2, const ArgumentPosition first_or_second)
 
virtual StateVector F (const StateVector &x, const ControlVector &u)
 
ControlDerivative fu_fd (const StateVector &x, const ControlVector &u)
 
virtual Eigen::Tensor< T, 3 > fuu (const StateVector &x, const ControlVector &u)
 
StateDerivative fx_fd (const StateVector &x, const ControlVector &u)
 
const Eigen::MatrixXd & get_control_limits ()
 
get_dt () const
 
const ControlDerivativeget_Fu () const
 
const ControlDerivativeget_fu () const
 
const StateDerivativeget_Fx () const
 
const StateDerivativeget_fx () const
 
const bool & get_has_second_order_derivatives () const
 
const bool & get_has_state_limits () const
 
Integrator get_integrator () const
 
int get_num_controls () const
 
int get_num_positions () const
 
int get_num_state () const
 
int get_num_state_derivative () const
 
int get_num_velocities () const
 
virtual Eigen::Matrix< T, Eigen::Dynamic, 1 > GetPosition (Eigen::VectorXdRefConst x_in)
 
virtual void InstantiateBase (const Initializer &init)
 
virtual void Integrate (const StateVector &x, const StateVector &dx, const double dt, StateVector &xout)
 
virtual ControlVector InverseDynamics (const StateVector &state)
 
void set_control_limits (Eigen::VectorXdRefConst control_limits_low, Eigen::VectorXdRefConst control_limits_high)
 
void set_integrator (Integrator integrator_in)
 
virtual void SetDt (double dt_in)
 
void SetIntegrator (const std::string &integrator_in)
 
StateVector Simulate (const StateVector &x, const ControlVector &u, T t)
 
void StateDelta (const StateVector &x_1, const StateVector &x_2, Eigen::VectorXdRef xout)
 
virtual StateVector StateDelta (const StateVector &x_1, const StateVector &x_2)
 
virtual ~AbstractDynamicsSolver ()
 
- Public Member Functions inherited from exotica::Object
std::string GetObjectName ()
 
void InstantiateObject (const Initializer &init)
 
 Object ()
 
virtual std::string Print (const std::string &prepend) const
 
virtual std::string type () const
 
virtual ~Object ()
 
- Public Member Functions inherited from exotica::InstantiableBase
 InstantiableBase ()=default
 
virtual ~InstantiableBase ()=default
 
- Public Member Functions inherited from exotica::Instantiable< CartpoleDynamicsSolverInitializer >
std::vector< InitializerGetAllTemplates () const override
 
Initializer GetInitializerTemplate () override
 
const CartpoleDynamicsSolverInitializer & GetParameters () const
 
virtual void Instantiate (const CartpoleDynamicsSolverInitializer &init)
 
void InstantiateInternal (const Initializer &init) override
 

Private Attributes

double g_ = 9.81
 
double l_ = 1
 !< Pole mass (kg) More...
 
double m_c_ = 1
 !< Gravity (m/s^2) More...
 
double m_p_ = 1
 !< Cart mass (kg) More...
 

Additional Inherited Members

- Public Types inherited from exotica::AbstractDynamicsSolver< class, NX, NU >
typedef Eigen::Matrix< T, NX, NU > ControlDerivative
 
typedef Eigen::Matrix< T, NU, 1 > ControlVector
 
typedef Eigen::Matrix< T, NX, NX > StateDerivative
 
typedef Eigen::Matrix< T, NX, 1 > StateVector
 
- Public Attributes inherited from exotica::Object
bool debug_
 
std::string ns_
 
std::string object_name_
 
- Protected Member Functions inherited from exotica::AbstractDynamicsSolver< class, NX, NU >
void InitializeSecondOrderDerivatives ()
 
virtual StateVector SimulateOneStep (const StateVector &x, const ControlVector &u)
 
- Protected Attributes inherited from exotica::AbstractDynamicsSolver< class, NX, NU >
Eigen::MatrixXd control_limits_
 
dt_
 
Eigen::MatrixXd Fu_
 
Eigen::MatrixXd fu_
 
Eigen::Tensor< T, 3 > fuu_default_
 
Eigen::MatrixXd fx_
 
Eigen::MatrixXd Fx_
 
Eigen::Tensor< T, 3 > fxu_default_
 
Eigen::Tensor< T, 3 > fxx_default_
 
bool has_second_order_derivatives_
 
bool has_state_limits_
 
Integrator integrator_
 
int num_controls_
 
int num_positions_
 
int num_state_
 
int num_state_derivative_
 
int num_velocities_
 
bool second_order_derivatives_initialized_
 
Eigen::VectorXd state_limits_lower_
 
Eigen::VectorXd state_limits_upper_
 
- Protected Attributes inherited from exotica::Instantiable< CartpoleDynamicsSolverInitializer >
CartpoleDynamicsSolverInitializer parameters_
 

Detailed Description

StateVector X ∈ R^4 = [x, theta, x_dot, theta_dot] Refer to http://underactuated.mit.edu/acrobot.html#cart_pole for a derivation of the cartpole dynamics.

Definition at line 43 of file cartpole_dynamics_solver.h.

Constructor & Destructor Documentation

exotica::CartpoleDynamicsSolver::CartpoleDynamicsSolver ( )

Definition at line 36 of file cartpole_dynamics_solver.cpp.

Member Function Documentation

void exotica::CartpoleDynamicsSolver::AssignScene ( ScenePtr  scene_in)
override

Definition at line 44 of file cartpole_dynamics_solver.cpp.

Eigen::VectorXd exotica::CartpoleDynamicsSolver::f ( const StateVector x,
const ControlVector u 
)
overridevirtual

Computes the forward dynamics of the system.

Parameters
xThe state vector.
uThe control input.
Returns
The dynamics transition function.

Implements exotica::AbstractDynamicsSolver< class, NX, NU >.

Definition at line 52 of file cartpole_dynamics_solver.cpp.

Eigen::MatrixXd exotica::CartpoleDynamicsSolver::fu ( const StateVector x,
const ControlVector u 
)
overridevirtual

Computes the dynamics derivative w.r.t .the control input u.

Parameters
xThe state vector.
uThe control input
Returns
The derivative of the dynamics function w.r.t. u evaluated at (x, u).

Reimplemented from exotica::AbstractDynamicsSolver< class, NX, NU >.

Definition at line 100 of file cartpole_dynamics_solver.cpp.

Eigen::MatrixXd exotica::CartpoleDynamicsSolver::fx ( const StateVector x,
const ControlVector u 
)
overridevirtual

Computes the dynamics derivative w.r.t .the state x.

Parameters
xThe state vector.
uThe control input.
Returns
The derivative of the dynamics function w.r.t. x evaluated at (x, u).

Reimplemented from exotica::AbstractDynamicsSolver< class, NX, NU >.

Definition at line 74 of file cartpole_dynamics_solver.cpp.

Eigen::Tensor< double, 3 > exotica::CartpoleDynamicsSolver::fxu ( const StateVector x,
const ControlVector u 
)
overridevirtual
Eigen::Tensor< double, 3 > exotica::CartpoleDynamicsSolver::fxx ( const StateVector x,
const ControlVector u 
)
overridevirtual

Member Data Documentation

double exotica::CartpoleDynamicsSolver::g_ = 9.81
private

Definition at line 71 of file cartpole_dynamics_solver.h.

double exotica::CartpoleDynamicsSolver::l_ = 1
private

!< Pole mass (kg)

Definition at line 74 of file cartpole_dynamics_solver.h.

double exotica::CartpoleDynamicsSolver::m_c_ = 1
private

!< Gravity (m/s^2)

Definition at line 72 of file cartpole_dynamics_solver.h.

double exotica::CartpoleDynamicsSolver::m_p_ = 1
private

!< Cart mass (kg)

Definition at line 73 of file cartpole_dynamics_solver.h.


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


exotica_cartpole_dynamics_solver
Author(s): Traiko Dinev
autogenerated on Sat Apr 10 2021 02:36:04