Crocoddyl
 
Loading...
Searching...
No Matches
joint.hpp
1
2// BSD 3-Clause License
3//
4// Copyright (C) 2022, University of Edinburgh, Heriot-Watt University
5// Copyright note valid unless otherwise stated in individual files.
6// All rights reserved.
8
9#ifndef CROCODDYL_CORE_DATA_JOINT_HPP_
10#define CROCODDYL_CORE_DATA_JOINT_HPP_
11
12#include "crocoddyl/core/data-collector-base.hpp"
13#include "crocoddyl/core/data/actuation.hpp"
14#include "crocoddyl/core/fwd.hpp"
15#include "crocoddyl/core/state-base.hpp"
16
17namespace crocoddyl {
18
19template <typename _Scalar>
21 EIGEN_MAKE_ALIGNED_OPERATOR_NEW
22
23 typedef _Scalar Scalar;
27 typedef typename MathBase::VectorXs VectorXs;
28 typedef typename MathBase::MatrixXs MatrixXs;
29
38 JointDataAbstractTpl(std::shared_ptr<StateAbstract> state,
39 std::shared_ptr<ActuationModelAbstract> actuation,
40 const std::size_t nu)
41 : tau(actuation->get_nu()),
42 a(state->get_nv()),
43 dtau_dx(actuation->get_nu(), state->get_ndx()),
44 dtau_du(actuation->get_nu(), nu),
45 da_dx(state->get_nv(), state->get_ndx()),
46 da_du(state->get_nv(), nu) {
47 tau.setZero();
48 a.setZero();
49 dtau_dx.setZero();
50 dtau_du.setZero();
51 da_dx.setZero();
52 da_du.setZero();
53 }
54 virtual ~JointDataAbstractTpl() {}
55
56 VectorXs tau;
57 VectorXs a;
58 MatrixXs dtau_dx;
60 MatrixXs dtau_du;
62 MatrixXs da_dx;
64 MatrixXs da_du;
66};
67
68template <typename Scalar>
70 EIGEN_MAKE_ALIGNED_OPERATOR_NEW
71
73 : DataCollectorAbstractTpl<Scalar>(), joint(joint) {}
74 virtual ~DataCollectorJointTpl() {}
75
76 std::shared_ptr<JointDataAbstractTpl<Scalar> > joint;
77};
78
79template <typename Scalar>
81 EIGEN_MAKE_ALIGNED_OPERATOR_NEW
82
90 std::shared_ptr<ActuationDataAbstractTpl<Scalar> > actuation,
91 std::shared_ptr<JointDataAbstractTpl<Scalar> > joint)
92 : DataCollectorActuationTpl<Scalar>(actuation), joint(joint) {}
94
95 std::shared_ptr<JointDataAbstractTpl<Scalar> > joint;
96};
97
98} // namespace crocoddyl
99
100CROCODDYL_DECLARE_EXTERN_TEMPLATE_STRUCT(crocoddyl::JointDataAbstractTpl)
101CROCODDYL_DECLARE_EXTERN_TEMPLATE_STRUCT(crocoddyl::DataCollectorJointTpl)
102CROCODDYL_DECLARE_EXTERN_TEMPLATE_STRUCT(
104
105#endif // CROCODDYL_CORE_DATA_JOINT_HPP_
Abstract class for the actuation-mapping model.
Abstract class for the state representation.
EIGEN_MAKE_ALIGNED_OPERATOR_NEW DataCollectorJointActuationTpl(std::shared_ptr< ActuationDataAbstractTpl< Scalar > > actuation, std::shared_ptr< JointDataAbstractTpl< Scalar > > joint)
Initialize the joint-actuation data collector.
Definition joint.hpp:89
VectorXs a
Generalized joint acceleration.
Definition joint.hpp:57
VectorXs tau
Joint efforts.
Definition joint.hpp:56
JointDataAbstractTpl(std::shared_ptr< StateAbstract > state, std::shared_ptr< ActuationModelAbstract > actuation, const std::size_t nu)
Initialize a joint data structure containing generalized accelerations and joint efforts,...
Definition joint.hpp:38