pinocchio  3.7.0
A fast and flexible implementation of Rigid Body Dynamics algorithms and their analytical derivatives
 
Loading...
Searching...
No Matches
rnea-second-order-derivatives.hpp
1//
2// Copyright (c) 2017-2019 CNRS INRIA
3
4#ifndef __pinocchio_algorithm_rnea_second_order_derivatives_hpp__
5#define __pinocchio_algorithm_rnea_second_order_derivatives_hpp__
6
7#include "pinocchio/container/aligned-vector.hpp"
8#include "pinocchio/multibody/data.hpp"
9#include "pinocchio/multibody/model.hpp"
10
11namespace pinocchio
12{
71 template<
72 typename Scalar,
73 int Options,
74 template<typename, int> class JointCollectionTpl,
75 typename ConfigVectorType,
76 typename TangentVectorType1,
77 typename TangentVectorType2,
78 typename Tensor1,
79 typename Tensor2,
80 typename Tensor3,
81 typename Tensor4>
85 const Eigen::MatrixBase<ConfigVectorType> & q,
86 const Eigen::MatrixBase<TangentVectorType1> & v,
87 const Eigen::MatrixBase<TangentVectorType2> & a,
88 const Tensor1 & d2tau_dqdq,
89 const Tensor2 & d2tau_dvdv,
90 const Tensor3 & dtau_dqdv,
91 const Tensor4 & dtau_dadq);
92
130
131 template<
132 typename Scalar,
133 int Options,
134 template<typename, int> class JointCollectionTpl,
135 typename ConfigVectorType,
136 typename TangentVectorType1,
137 typename TangentVectorType2>
141 const Eigen::MatrixBase<ConfigVectorType> & q,
142 const Eigen::MatrixBase<TangentVectorType1> & v,
143 const Eigen::MatrixBase<TangentVectorType2> & a)
144 {
145 (data.d2tau_dqdq).setZero();
146 (data.d2tau_dvdv).setZero();
147 (data.d2tau_dqdv).setZero();
148 (data.d2tau_dadq).setZero();
149
151 model, data, q.derived(), v.derived(), a.derived(), data.d2tau_dqdq, data.d2tau_dvdv,
152 data.d2tau_dqdv, data.d2tau_dadq);
153 }
154
155} // namespace pinocchio
156
157#include "pinocchio/algorithm/rnea-second-order-derivatives.hxx"
158
159#endif // ifndef __pinocchio_algorithm_rnea_second_order_derivatives_hpp__
Main pinocchio namespace.
Definition treeview.dox:11
void ComputeRNEASecondOrderDerivatives(const ModelTpl< Scalar, Options, JointCollectionTpl > &model, DataTpl< Scalar, Options, JointCollectionTpl > &data, const Eigen::MatrixBase< ConfigVectorType > &q, const Eigen::MatrixBase< TangentVectorType1 > &v, const Eigen::MatrixBase< TangentVectorType2 > &a, const Tensor1 &d2tau_dqdq, const Tensor2 &d2tau_dvdv, const Tensor3 &dtau_dqdv, const Tensor4 &dtau_dadq)
Computes the Second-Order partial derivatives of the Recursive Newton Euler Algorithm w....