TVM  0.9.4
GeometricContactFunction.h
Go to the documentation of this file.
1 
3 #pragma once
4 
5 #include <tvm/api.h>
6 
8 #include <tvm/robot/Contact.h>
9 
10 namespace tvm
11 {
12 
13 namespace robot
14 {
15 
16 namespace internal
17 {
18 
39 {
40 public:
42  DISABLE_OUTPUTS(Output::JDot)
43  SET_UPDATES(GeometricContactFunction, Value, Velocity, NormalAcceleration, Jacobian)
44 
45 
52  GeometricContactFunction(ContactPtr contact, Eigen::Matrix6d dof);
53 
54 private:
55  ContactPtr contact_;
56  Eigen::Matrix6d dof_;
57  bool has_f1_;
58  bool has_f2_;
59 
60  bool first_update_ = true;
61  sva::PTransformd X_f1_f2_init_;
62 
63  void updateValue();
64  void updateVelocity();
65  void updateNormalAcceleration();
66  void updateJacobian();
67 };
68 
69 } // namespace internal
70 
71 } // namespace robot
72 
73 } // namespace tvm
#define SET_UPDATES(SelfT,...)
Definition: AbstractNode.h:138
#define DISABLE_OUTPUTS(...)
Definition: Outputs.h:118
#define TVM_DLLAPI
Definition: api.h:35
Definition: Function.h:45
Definition: GeometricContactFunction.h:39
Definition: AffineExprDetail.h:95
std::shared_ptr< Contact > ContactPtr
Definition: Contact.h:130
Definition: Clock.h:12