pinocchio 4.1.0
A fast and flexible implementation of Rigid Body Dynamics algorithms and their analytical derivatives
Loading...
Searching...
No Matches
collision.hpp
1//
2// Copyright (c) 2015-2024 CNRS INRIA
3//
4
5#pragma once
6
7// IWYU pragma: begin_keep
8#include <Eigen/Core>
9
10#include <cassert>
11#include <cstddef>
12#include <stdexcept>
13#include <ostream>
14#include <algorithm>
15#include <math.h>
16#include <vector>
17
18#include <boost/foreach.hpp>
19
20#include <coal/collision_data.h>
21#include <coal/BV/AABB.h>
22#include <coal/collision_object.h>
23#include <coal/math/transform.h>
24
25#include "pinocchio/macros.hpp"
26
27#include "pinocchio/spatial.hpp"
28#include "pinocchio/multibody.hpp"
29#include "pinocchio/algorithm/geometry.hpp"
30
31#include "pinocchio/collision/config.hpp"
32#include "pinocchio/collision/coal-pinocchio-conversions.hpp"
33// IWYU pragma: end_keep
34
35namespace pinocchio
36{
37
51 const GeometryModel & geom_model,
52 GeometryData & geom_data,
53 const PairIndex pair_id,
54 coal::CollisionRequest & collision_request);
55
68 const GeometryModel & geom_model, GeometryData & geom_data, const PairIndex pair_id);
69
83 const GeometryModel & geom_model,
84 GeometryData & geom_data,
85 const bool stopAtFirstCollision = false);
86
107 template<
108 typename Scalar,
109 int Options,
110 template<typename, int> class JointCollectionTpl,
111 typename ConfigVectorType>
113 const ModelTpl<Scalar, Options, JointCollectionTpl> & model,
114 DataTpl<Scalar, Options, JointCollectionTpl> & data,
115 const GeometryModel & geom_model,
116 GeometryData & geom_data,
117 const Eigen::MatrixBase<ConfigVectorType> & q,
118 const bool stopAtFirstCollision = false);
119
132 const GeometryModel & geom_model, GeometryData & geom_data, const PairIndex pair_id);
133
142 void computeContactPatches(const GeometryModel & geom_model, GeometryData & geom_data);
143
153 template<typename Scalar, int Options, template<typename, int> class JointCollectionTpl>
155 const ModelTpl<Scalar, Options, JointCollectionTpl> & model,
156 const GeometryModel & geom_model,
157 GeometryData & geom_data);
158
159} // namespace pinocchio
160
161// IWYU pragma: begin_exports
162#include "pinocchio/src/collision/collision.hxx"
163// IWYU pragma: end_exports
Main pinocchio namespace.
Definition treeview.dox:11
void computeContactPatches(const GeometryModel &geom_model, GeometryData &geom_data)
Calls computeContactPatch for every collision pair.
void computeBodyRadius(const ModelTpl< Scalar, Options, JointCollectionTpl > &model, const GeometryModel &geom_model, GeometryData &geom_data)
void computeContactPatch(const GeometryModel &geom_model, GeometryData &geom_data, const PairIndex pair_id)
Compute the contact patch info associated with the collision pair given by pair_id....
bool computeCollisions(BroadPhaseManagerBase< BroadPhaseManagerDerived > &broadphase_manager, CollisionCallBackBase *callback)
Calls computeCollision for every active pairs of GeometryData. This function assumes that updateGeome...
bool computeCollision(const GeometryModel &geom_model, GeometryData &geom_data, const PairIndex pair_id, coal::CollisionRequest &collision_request)
Compute the collision status between a SINGLE collision pair. The result is store in the collisionRes...