Klamp't  0.9.0
ContactController.h
1 #ifndef CONTACT_CONTROLLER_H
2 #define CONTACT_CONTROLLER_H
3 
4 #include "OperationalSpaceController.h"
5 #include "JointTrackingController.h"
6 #include <KrisLibrary/robotics/TorqueSolver.h>
7 
8 namespace Klampt {
9 
13 {
14  ContactJointTrackingController(RobotModel& robot,const SmartPointer<JointTrackingController>& base);
15  void SetGravity(const Vector3& gravity);
16  //contact estimates are given in the LOCAL frame
17  void SetContactEstimate(const ContactFormation& contacts,Real penetrationWeight=100);
18  //uses lowest point on robot to select contacts (standing on a plane)
19  void SetFlatContactEstimate(Real kFriction,Real penetrationWeight=100,Real tol=1e-3);
20  //uses contact sensors to produce the contact estimate
21  void SenseContactEstimate(Real kFriction,Real penetrationWeight=100);
22  //penalizes large torques
23  void SetTorqueRegularization(Real regularizationFactor);
24  void DesiredToAccel(Real dt,const Config& qdes,const Vector& dqdes,Vector& ddqdes);
25 
26  virtual void Update(Real dt);
27  virtual void Reset();
28  virtual bool ReadState(File& f);
29  virtual bool WriteState(File& f) const;
30 
31  SmartPointer<JointTrackingController> base;
32  OperationalSpaceController opSpaceController;
33  Config qdes_last,dqdes_last;
34 };
35 
36 } //namespace Klampt
37 
38 #endif
Makes a joint tracking controller &#39;aware&#39; of a contact formation.
Definition: ContactController.h:12
A base class for a robot controller. The base class does nothing.
Definition: Controller.h:29
The main robot type used in RobotSim.
Definition: Robot.h:83
A combination of multiple "tasks" that define a weighted optimization objective for the joint torques...
Definition: OperationalSpaceController.h:92
Definition: ContactDistance.h:6