5 #ifndef __pinocchio_algorithm_joint_configuration_hpp__
6 #define __pinocchio_algorithm_joint_configuration_hpp__
37 template<
typename,
int>
class JointCollectionTpl,
38 typename ConfigVectorType,
39 typename TangentVectorType,
42 const ModelTpl<Scalar, Options, JointCollectionTpl> &
model,
43 const Eigen::MatrixBase<ConfigVectorType> &
q,
44 const Eigen::MatrixBase<TangentVectorType> &
v,
45 const Eigen::MatrixBase<ReturnType> &
qout);
66 template<
typename,
int>
class JointCollectionTpl,
67 typename ConfigVectorType,
68 typename TangentVectorType,
72 const Eigen::MatrixBase<ConfigVectorType> &
q,
73 const Eigen::MatrixBase<TangentVectorType> &
v,
74 const Eigen::MatrixBase<ReturnType> &
qout)
78 ReturnType>(
model,
q.derived(),
v.derived(),
qout.derived());
97 template<
typename,
int>
class JointCollectionTpl,
98 typename ConfigVectorIn1,
99 typename ConfigVectorIn2,
102 const ModelTpl<Scalar, Options, JointCollectionTpl> &
model,
103 const Eigen::MatrixBase<ConfigVectorIn1> &
q0,
104 const Eigen::MatrixBase<ConfigVectorIn2> &
q1,
106 const Eigen::MatrixBase<ReturnType> &
qout);
123 template<
typename,
int>
class JointCollectionTpl,
124 typename ConfigVectorIn1,
125 typename ConfigVectorIn2,
129 const Eigen::MatrixBase<ConfigVectorIn1> &
q0,
130 const Eigen::MatrixBase<ConfigVectorIn2> &
q1,
132 const Eigen::MatrixBase<ReturnType> &
qout)
160 template<
typename,
int>
class JointCollectionTpl,
161 typename ConfigVectorIn1,
162 typename ConfigVectorIn2,
165 const ModelTpl<Scalar, Options, JointCollectionTpl> &
model,
166 const Eigen::MatrixBase<ConfigVectorIn1> &
q0,
167 const Eigen::MatrixBase<ConfigVectorIn2> &
q1,
168 const Eigen::MatrixBase<ReturnType> & dvout);
189 template<
typename,
int>
class JointCollectionTpl,
190 typename ConfigVectorIn1,
191 typename ConfigVectorIn2,
195 const Eigen::MatrixBase<ConfigVectorIn1> &
q0,
196 const Eigen::MatrixBase<ConfigVectorIn2> &
q1,
197 const Eigen::MatrixBase<ReturnType> & dvout)
220 template<
typename,
int>
class JointCollectionTpl,
221 typename ConfigVectorIn1,
222 typename ConfigVectorIn2,
225 const ModelTpl<Scalar, Options, JointCollectionTpl> &
model,
226 const Eigen::MatrixBase<ConfigVectorIn1> &
q0,
227 const Eigen::MatrixBase<ConfigVectorIn2> &
q1,
228 const Eigen::MatrixBase<ReturnType> & out);
245 template<
typename,
int>
class JointCollectionTpl,
246 typename ConfigVectorIn1,
247 typename ConfigVectorIn2,
251 const Eigen::MatrixBase<ConfigVectorIn1> &
q0,
252 const Eigen::MatrixBase<ConfigVectorIn2> &
q1,
253 const Eigen::MatrixBase<ReturnType> & out)
281 template<
typename,
int>
class JointCollectionTpl,
282 typename ConfigVectorIn1,
283 typename ConfigVectorIn2,
286 const ModelTpl<Scalar, Options, JointCollectionTpl> &
model,
287 const Eigen::MatrixBase<ConfigVectorIn1> &
lowerLimits,
288 const Eigen::MatrixBase<ConfigVectorIn2> &
upperLimits,
289 const Eigen::MatrixBase<ReturnType> &
qout);
311 template<
typename,
int>
class JointCollectionTpl,
312 typename ConfigVectorIn1,
313 typename ConfigVectorIn2,
317 const Eigen::MatrixBase<ConfigVectorIn1> &
lowerLimits,
318 const Eigen::MatrixBase<ConfigVectorIn2> &
upperLimits,
319 const Eigen::MatrixBase<ReturnType> &
qout)
342 template<
typename,
int>
class JointCollectionTpl,
345 const ModelTpl<Scalar, Options, JointCollectionTpl> &
model,
346 const Eigen::MatrixBase<ReturnType> &
qout);
361 template<
typename,
int>
class JointCollectionTpl,
365 const Eigen::MatrixBase<ReturnType> &
qout)
367 neutral<LieGroupMap, Scalar, Options, JointCollectionTpl, ReturnType>(
399 template<
typename,
int>
class JointCollectionTpl,
400 typename ConfigVectorType,
401 typename TangentVectorType,
402 typename JacobianMatrixType>
404 const ModelTpl<Scalar, Options, JointCollectionTpl> &
model,
405 const Eigen::MatrixBase<ConfigVectorType> &
q,
406 const Eigen::MatrixBase<TangentVectorType> &
v,
407 const Eigen::MatrixBase<JacobianMatrixType> &
J,
438 template<
typename,
int>
class JointCollectionTpl,
439 typename ConfigVectorType,
440 typename TangentVectorType,
441 typename JacobianMatrixType>
444 const Eigen::MatrixBase<ConfigVectorType> &
q,
445 const Eigen::MatrixBase<TangentVectorType> &
v,
446 const Eigen::MatrixBase<JacobianMatrixType> &
J,
483 template<
typename,
int>
class JointCollectionTpl,
484 typename ConfigVectorType,
485 typename TangentVectorType,
486 typename JacobianMatrixType>
489 const Eigen::MatrixBase<ConfigVectorType> &
q,
490 const Eigen::MatrixBase<TangentVectorType> &
v,
491 const Eigen::MatrixBase<JacobianMatrixType> &
J,
530 template<
typename,
int>
class JointCollectionTpl,
531 typename ConfigVectorType,
532 typename TangentVectorType,
533 typename JacobianMatrixType1,
534 typename JacobianMatrixType2>
536 const ModelTpl<Scalar, Options, JointCollectionTpl> &
model,
537 const Eigen::MatrixBase<ConfigVectorType> &
q,
538 const Eigen::MatrixBase<TangentVectorType> &
v,
539 const Eigen::MatrixBase<JacobianMatrixType1> & Jin,
540 const Eigen::MatrixBase<JacobianMatrixType2> & Jout,
571 template<
typename,
int>
class JointCollectionTpl,
572 typename ConfigVectorType,
573 typename TangentVectorType,
574 typename JacobianMatrixType1,
575 typename JacobianMatrixType2>
578 const Eigen::MatrixBase<ConfigVectorType> &
q,
579 const Eigen::MatrixBase<TangentVectorType> &
v,
580 const Eigen::MatrixBase<JacobianMatrixType1> & Jin,
581 const Eigen::MatrixBase<JacobianMatrixType2> & Jout,
586 JacobianMatrixType1, JacobianMatrixType2>(
587 model,
q.derived(),
v.derived(), Jin.derived(),
619 template<
typename,
int>
class JointCollectionTpl,
620 typename ConfigVectorType,
621 typename TangentVectorType,
622 typename JacobianMatrixType>
624 const ModelTpl<Scalar, Options, JointCollectionTpl> &
model,
625 const Eigen::MatrixBase<ConfigVectorType> &
q,
626 const Eigen::MatrixBase<TangentVectorType> &
v,
627 const Eigen::MatrixBase<JacobianMatrixType> &
J,
657 template<
typename,
int>
class JointCollectionTpl,
658 typename ConfigVectorType,
659 typename TangentVectorType,
660 typename JacobianMatrixType>
663 const Eigen::MatrixBase<ConfigVectorType> &
q,
664 const Eigen::MatrixBase<TangentVectorType> &
v,
665 const Eigen::MatrixBase<JacobianMatrixType> &
J,
701 template<
typename,
int>
class JointCollectionTpl,
702 typename ConfigVector1,
703 typename ConfigVector2,
704 typename JacobianMatrix>
706 const ModelTpl<Scalar, Options, JointCollectionTpl> &
model,
707 const Eigen::MatrixBase<ConfigVector1> &
q0,
708 const Eigen::MatrixBase<ConfigVector2> &
q1,
709 const Eigen::MatrixBase<JacobianMatrix> &
J,
738 template<
typename,
int>
class JointCollectionTpl,
739 typename ConfigVector1,
740 typename ConfigVector2,
741 typename JacobianMatrix>
744 const Eigen::MatrixBase<ConfigVector1> &
q0,
745 const Eigen::MatrixBase<ConfigVector2> &
q1,
746 const Eigen::MatrixBase<JacobianMatrix> &
J,
769 template<
typename,
int>
class JointCollectionTpl,
770 typename ConfigVectorIn1,
771 typename ConfigVectorIn2>
773 const ModelTpl<Scalar, Options, JointCollectionTpl> &
model,
774 const Eigen::MatrixBase<ConfigVectorIn1> &
q0,
775 const Eigen::MatrixBase<ConfigVectorIn2> &
q1);
792 template<
typename,
int>
class JointCollectionTpl,
793 typename ConfigVectorIn1,
794 typename ConfigVectorIn2>
797 const Eigen::MatrixBase<ConfigVectorIn1> &
q0,
798 const Eigen::MatrixBase<ConfigVectorIn2> &
q1)
821 template<
typename,
int>
class JointCollectionTpl,
822 typename ConfigVectorIn1,
823 typename ConfigVectorIn2>
825 const ModelTpl<Scalar, Options, JointCollectionTpl> &
model,
826 const Eigen::MatrixBase<ConfigVectorIn1> &
q0,
827 const Eigen::MatrixBase<ConfigVectorIn2> &
q1);
843 template<
typename,
int>
class JointCollectionTpl,
844 typename ConfigVectorIn1,
845 typename ConfigVectorIn2>
848 const Eigen::MatrixBase<ConfigVectorIn1> &
q0,
849 const Eigen::MatrixBase<ConfigVectorIn2> &
q1)
868 template<
typename,
int>
class JointCollectionTpl,
869 typename ConfigVectorType>
871 const ModelTpl<Scalar, Options, JointCollectionTpl> &
model,
872 const Eigen::MatrixBase<ConfigVectorType> &
qout);
885 template<
typename,
int>
class JointCollectionTpl,
886 typename ConfigVectorType>
889 const Eigen::MatrixBase<ConfigVectorType> &
qout)
891 normalize<LieGroupMap, Scalar, Options, JointCollectionTpl, ConfigVectorType>(
910 template<
typename,
int>
class JointCollectionTpl,
911 typename ConfigVectorType>
913 const ModelTpl<Scalar, Options, JointCollectionTpl> &
model,
914 const Eigen::MatrixBase<ConfigVectorType> &
q,
915 const Scalar & prec = Eigen::NumTraits<Scalar>::dummy_precision());
931 template<
typename,
int>
class JointCollectionTpl,
932 typename ConfigVectorType>
935 const Eigen::MatrixBase<ConfigVectorType> &
q,
936 const Scalar & prec = Eigen::NumTraits<Scalar>::dummy_precision())
938 return isNormalized<LieGroupMap, Scalar, Options, JointCollectionTpl, ConfigVectorType>(
962 template<
typename,
int>
class JointCollectionTpl,
963 typename ConfigVectorIn1,
964 typename ConfigVectorIn2>
966 const ModelTpl<Scalar, Options, JointCollectionTpl> &
model,
967 const Eigen::MatrixBase<ConfigVectorIn1> &
q1,
968 const Eigen::MatrixBase<ConfigVectorIn2> & q2,
969 const Scalar & prec = Eigen::NumTraits<Scalar>::dummy_precision());
990 template<
typename,
int>
class JointCollectionTpl,
991 typename ConfigVectorIn1,
992 typename ConfigVectorIn2>
995 const Eigen::MatrixBase<ConfigVectorIn1> &
q1,
996 const Eigen::MatrixBase<ConfigVectorIn2> & q2,
997 const Scalar & prec = Eigen::NumTraits<Scalar>::dummy_precision())
1001 model,
q1.derived(),
q2.derived(), prec);
1017 typename LieGroup_t,
1020 template<
typename,
int>
class JointCollectionTpl,
1021 typename ConfigVector,
1022 typename JacobianMatrix>
1024 const ModelTpl<Scalar, Options, JointCollectionTpl> &
model,
1025 const Eigen::MatrixBase<ConfigVector> &
q,
1026 const Eigen::MatrixBase<JacobianMatrix> &
jacobian);
1043 template<
typename,
int>
class JointCollectionTpl,
1044 typename ConfigVector,
1045 typename JacobianMatrix>
1048 const Eigen::MatrixBase<ConfigVector> &
q,
1049 const Eigen::MatrixBase<JacobianMatrix> &
jacobian)
1075 typename LieGroup_t,
1078 template<
typename,
int>
class JointCollectionTpl,
1079 typename ConfigVectorType,
1080 typename TangentVectorType>
1083 const Eigen::MatrixBase<ConfigVectorType> &
q,
1084 const Eigen::MatrixBase<TangentVectorType> &
v);
1102 template<
typename,
int>
class JointCollectionTpl,
1103 typename ConfigVectorType,
1104 typename TangentVectorType>
1107 const Eigen::MatrixBase<ConfigVectorType> &
q,
1108 const Eigen::MatrixBase<TangentVectorType> &
v)
1112 model,
q.derived(),
v.derived());
1129 typename LieGroup_t,
1132 template<
typename,
int>
class JointCollectionTpl,
1133 typename ConfigVectorIn1,
1134 typename ConfigVectorIn2>
1136 const ModelTpl<Scalar, Options, JointCollectionTpl> &
model,
1137 const Eigen::MatrixBase<ConfigVectorIn1> &
q0,
1138 const Eigen::MatrixBase<ConfigVectorIn2> &
q1,
1157 template<
typename,
int>
class JointCollectionTpl,
1158 typename ConfigVectorIn1,
1159 typename ConfigVectorIn2>
1162 const Eigen::MatrixBase<ConfigVectorIn1> &
q0,
1163 const Eigen::MatrixBase<ConfigVectorIn2> &
q1,
1184 typename LieGroup_t,
1187 template<
typename,
int>
class JointCollectionTpl,
1188 typename ConfigVectorIn1,
1189 typename ConfigVectorIn2>
1191 const ModelTpl<Scalar, Options, JointCollectionTpl> &
model,
1192 const Eigen::MatrixBase<ConfigVectorIn1> &
q0,
1193 const Eigen::MatrixBase<ConfigVectorIn2> &
q1);
1210 template<
typename,
int>
class JointCollectionTpl,
1211 typename ConfigVectorIn1,
1212 typename ConfigVectorIn2>
1214 const ModelTpl<Scalar, Options, JointCollectionTpl> &
model,
1215 const Eigen::MatrixBase<ConfigVectorIn1> &
q0,
1216 const Eigen::MatrixBase<ConfigVectorIn2> &
q1)
1219 LieGroupMap,
Scalar,
Options, JointCollectionTpl, ConfigVectorIn1, ConfigVectorIn2>(
1237 typename LieGroup_t,
1240 template<
typename,
int>
class JointCollectionTpl,
1241 typename ConfigVectorIn1,
1242 typename ConfigVectorIn2>
1244 const ModelTpl<Scalar, Options, JointCollectionTpl> &
model,
1245 const Eigen::MatrixBase<ConfigVectorIn1> &
q0,
1246 const Eigen::MatrixBase<ConfigVectorIn2> &
q1);
1264 template<
typename,
int>
class JointCollectionTpl,
1265 typename ConfigVectorIn1,
1266 typename ConfigVectorIn2>
1268 const ModelTpl<Scalar, Options, JointCollectionTpl> &
model,
1269 const Eigen::MatrixBase<ConfigVectorIn1> &
q0,
1270 const Eigen::MatrixBase<ConfigVectorIn2> &
q1)
1273 LieGroupMap,
Scalar,
Options, JointCollectionTpl, ConfigVectorIn1, ConfigVectorIn2>(
1296 typename LieGroup_t,
1299 template<
typename,
int>
class JointCollectionTpl,
1300 typename ConfigVectorIn1,
1301 typename ConfigVectorIn2>
1305 const ModelTpl<Scalar, Options, JointCollectionTpl> &
model,
1330 template<
typename,
int>
class JointCollectionTpl,
1331 typename ConfigVectorIn1,
1332 typename ConfigVectorIn2>
1337 const Eigen::MatrixBase<ConfigVectorIn1> &
lowerLimits,
1338 const Eigen::MatrixBase<ConfigVectorIn2> &
upperLimits)
1364 typename LieGroup_t,
1367 template<
typename,
int>
class JointCollectionTpl>
1390 template<
typename Scalar,
int Options,
template<
typename,
int>
class JointCollectionTpl>
1395 return randomConfiguration<LieGroupMap, Scalar, Options, JointCollectionTpl>(
model);
1409 typename LieGroup_t,
1412 template<
typename,
int>
class JointCollectionTpl>
1413 Eigen::Matrix<Scalar, Eigen::Dynamic, 1, Options>
1414 neutral(
const ModelTpl<Scalar, Options, JointCollectionTpl> &
model);
1424 template<
typename Scalar,
int Options,
template<
typename,
int>
class JointCollectionTpl>
1425 Eigen::Matrix<Scalar, Eigen::Dynamic, 1, Options>
1428 return neutral<LieGroupMap, Scalar, Options, JointCollectionTpl>(
model);
1436 #include "pinocchio/algorithm/joint-configuration.hxx"
1438 #if PINOCCHIO_ENABLE_TEMPLATE_INSTANTIATION
1439 #include "pinocchio/algorithm/joint-configuration.txx"
1440 #endif // PINOCCHIO_ENABLE_TEMPLATE_INSTANTIATION
1442 #endif // ifndef __pinocchio_algorithm_joint_configuration_hpp__