iDynTree::SubModelDecomposition class

Class representing the decomposition in one model in several submodels.

This class is used in algorithms, such as estimation of external wrenches, where a complete model is decomposed in several submodels.

For each submodel a iDynTree::Traversal is provided, so that algorithms that are explicitly designed to run on both FullModel Traversal and SubModel traversal can be executed on the SubModel.

Constructors, destructors, conversion operators

SubModelDecomposition()
Constructor.
~SubModelDecomposition()
Destructor.

Public functions

auto splitModelAlongJoints(const Model& model, const Traversal& traversal, const std::vector<std::string>& splitJoints) -> bool
Create a submodel decomposition of a given model with a given full tree traversal, by separating the model across the given joints.
void setNrOfSubModels(const size_t nrOfSubModels)
Set the number of the submodels in the decomposition.
auto getNrOfSubModels() const -> size_t
Get the number of submodels in the decomposition.
auto getNrOfLinks() const -> size_t
Get the total numer of links in the submodel decomposition.
auto getTraversal(const size_t subModelIndex) -> Traversal&
Get the traversal of a given submodel.
auto getTraversal(const size_t subModelIndex) const -> const Traversal&
Get the traversal of a given submodel (const version)
auto getSubModelOfLink(const LinkIndex& link) const -> size_t
Get the subModel to which a given links belongs.
auto getSubModelOfFrame(const Model& model, const FrameIndex& frame) const -> size_t
Get the subModel to which a given frame belongs.

Function documentation

bool iDynTree::SubModelDecomposition::splitModelAlongJoints(const Model& model, const Traversal& traversal, const std::vector<std::string>& splitJoints)

Create a submodel decomposition of a given model with a given full tree traversal, by separating the model across the given joints.

Parameters
model in the model to split
traversal in the full model traversal to split
splitJoints in the model will be split along the joints whose names are in this vector.
Returns true if all went fine, false otherwise