9 #include <Eigen/SparseCore>
14 #include <boost/math/special_functions/factorials.hpp>
16 #include "pinocchio/macros.hpp"
18 #include "pinocchio/multibody.hpp"
19 #include "pinocchio/multibody/liegroup.hpp"
21 #include "pinocchio/algorithm/frames.hpp"
23 #include "pinocchio/extra/config.hpp"
25 #ifdef PINOCCHIO_WITH_COLLISION
26 #include "pinocchio/collision/collision.hpp"
37 Eigen::MatrixXd vertex;
38 Eigen::MatrixXi faces;
69 template<
typename,
int>
class JointCollectionTpl,
70 typename ConfigVectorType>
72 const ModelTpl<Scalar, Options, JointCollectionTpl> & model,
73 const Eigen::MatrixBase<ConfigVectorType> & q0,
74 const double time_horizon,
76 Eigen::MatrixXd & vertex,
95 template<
typename,
int>
class JointCollectionTpl,
96 typename ConfigVectorType>
98 const ModelTpl<Scalar, Options, JointCollectionTpl> & model,
99 const Eigen::MatrixBase<ConfigVectorType> & q0,
100 const double time_horizon,
105 #ifdef PINOCCHIO_WITH_COLLISION
122 template<
typename,
int>
class JointCollectionTpl,
123 typename ConfigVectorType>
125 const ModelTpl<Scalar, Options, JointCollectionTpl> & model,
126 const GeometryModel & geom_model,
127 const Eigen::MatrixBase<ConfigVectorType> & q0,
128 const double time_horizon,
130 Eigen::MatrixXd & vertex,
150 template<
typename,
int>
class JointCollectionTpl,
151 typename ConfigVectorType>
153 const ModelTpl<Scalar, Options, JointCollectionTpl> & model,
154 const GeometryModel & geom_model,
155 const Eigen::MatrixBase<ConfigVectorType> & q0,
156 const double time_horizon,
183 template<
typename,
int>
class JointCollectionTpl,
184 typename ConfigVectorType,
185 class FilterFunction>
187 const ModelTpl<Scalar, Options, JointCollectionTpl> & model,
188 const Eigen::MatrixBase<ConfigVectorType> & q0,
189 const double time_horizon,
191 FilterFunction config_filter,
192 Eigen::MatrixXd & vertex,
204 inline void computeJointVel(
205 const Eigen::VectorXd & res1,
206 const Eigen::VectorXd & res2,
207 const Eigen::VectorXi & comb,
208 Eigen::VectorXd & qv);
215 inline void generateCombination(
const int n,
const int k, Eigen::VectorXi & indices);
225 inline void productCombination(
226 const Eigen::VectorXd & element,
228 Eigen::VectorXi & indices,
229 Eigen::VectorXd & combination);
234 #include "pinocchio/src/extra/reachable-workspace.hxx"
Main pinocchio namespace.
void reachableWorkspaceWithCollisions(const ModelTpl< Scalar, Options, JointCollectionTpl > &model, const GeometryModel &geom_model, const Eigen::MatrixBase< ConfigVectorType > &q0, const double time_horizon, const int frame_id, Eigen::MatrixXd &vertex, const ReachableSetParams ¶ms=ReachableSetParams())
Computes the reachable workspace with respect to a geometry model on a fixed time horizon....
void reachableWorkspaceWithCollisionsHull(const ModelTpl< Scalar, Options, JointCollectionTpl > &model, const GeometryModel &geom_model, const Eigen::MatrixBase< ConfigVectorType > &q0, const double time_horizon, const int frame_id, ReachableSetResults &res, const ReachableSetParams ¶ms=ReachableSetParams())
Computes the convex Hull of the reachable workspace with respect to a geometry model on a fixed time ...
void reachableWorkspace(const ModelTpl< Scalar, Options, JointCollectionTpl > &model, const Eigen::MatrixBase< ConfigVectorType > &q0, const double time_horizon, const int frame_id, Eigen::MatrixXd &vertex, const ReachableSetParams ¶ms=ReachableSetParams())
Computes the reachable workspace on a fixed time horizon. For more information, please see https://gi...
void reachableWorkspaceHull(const ModelTpl< Scalar, Options, JointCollectionTpl > &model, const Eigen::MatrixBase< ConfigVectorType > &q0, const double time_horizon, const int frame_id, ReachableSetResults &res, const ReachableSetParams ¶ms=ReachableSetParams())
Computes the convex Hull reachable workspace on a fixed time horizon. For more information,...
Parameters for the reachable space algorithm.
Structure containing the return value for the reachable algorithm.