TVM  0.9.4
CollisionFunction.h
Go to the documentation of this file.
1 
3 #pragma once
4 
5 #include <tvm/api.h>
6 #include <tvm/defs.h>
7 
9 #include <tvm/robot/ConvexHull.h>
10 
11 namespace tvm
12 {
13 
14 namespace robot
15 {
16 
19 {
20 public:
21  SET_UPDATES(CollisionFunction, Value, Velocity, Jacobian, Time, NormalAcceleration)
22 
23 
29 
37  void addCollision(ConvexHullPtr ch1, ConvexHullPtr ch2);
38 
40  void reset();
41 
42 protected:
43  /* Update functions */
44  void updateValue();
45  void updateVelocity();
46  void updateJacobian();
47  void updateTimeDependency();
48  void updateNormalAcceleration();
49 
50  Clock & clock_;
51  uint64_t last_tick_ = 0;
52 
54  {
55  struct ObjectData
56  {
57  Eigen::Vector3d nearestPoint_; // In body coordinates
58  rbd::Jacobian jac_;
59  };
60  std::vector<ObjectData> objects_;
61  ConvexHullPtr ch_[2];
62  sch::CD_Pair pair_;
63  Eigen::Vector3d normVecDist_;
64  Eigen::Vector3d prevNormVecDist_ = Eigen::Vector3d::Zero();
65  Eigen::Vector3d speedVec_ = Eigen::Vector3d::Zero();
66 
68 
70  };
71  std::vector<CollisionData> colls_;
72 
74  Eigen::Vector3d closestPoints_[2];
75  Eigen::MatrixXd fullJac_;
76  Eigen::MatrixXd distJac_;
77 };
78 
79 } // namespace robot
80 
81 } // namespace tvm
#define SET_UPDATES(SelfT,...)
Definition: AbstractNode.h:138
#define TVM_DLLAPI
Definition: api.h:35
Definition: Clock.h:27
Definition: Function.h:45
Definition: CollisionFunction.h:19
Eigen::MatrixXd fullJac_
Definition: CollisionFunction.h:75
Eigen::MatrixXd distJac_
Definition: CollisionFunction.h:76
std::vector< CollisionData > colls_
Definition: CollisionFunction.h:71
std::shared_ptr< ConvexHull > ConvexHullPtr
Definition: ConvexHull.h:70
Definition: Clock.h:12
Eigen::Vector3d nearestPoint_
Definition: CollisionFunction.h:57
rbd::Jacobian jac_
Definition: CollisionFunction.h:58
Definition: CollisionFunction.h:54
Eigen::Vector3d normVecDist_
Definition: CollisionFunction.h:63
std::vector< ObjectData > objects_
Definition: CollisionFunction.h:60
CollisionData(CollisionFunction &fn, ConvexHullPtr ch1, ConvexHullPtr ch2)
sch::CD_Pair pair_
Definition: CollisionFunction.h:62