1 #ifndef ODE_INTERFACE_ROBOT_H 2 #define ODE_INTERFACE_ROBOT_H 4 #include <Klampt/Modeling/Robot.h> 5 #include "ODEGeometry.h" 6 #include "ODESurface.h" 7 #include <ode/common.h> 8 #include <KrisLibrary/File.h> 33 static double defaultPadding;
38 void Create(
int index,dWorldID worldID,
bool useBoundaryLayer=
true);
40 void EnableSelfCollisions(
bool enabled);
41 bool SelfCollisionsEnabled()
const;
42 void SetConfig(
const Config& q);
43 void GetConfig(Config& q)
const;
44 void SetVelocities(
const Config& dq);
45 void GetVelocities(Config& dq)
const;
46 void AddTorques(
const Vector& t);
47 Real GetJointAngle(
int joint)
const;
48 Real GetJointVelocity(
int joint)
const;
49 void AddJointTorque(
int joint,Real t);
50 void SetJointDryFriction(
int joint,Real coeff);
51 void SetJointFixedVelocity(
int joint,Real vel,Real tmax);
52 Real GetLinkAngle(
int link)
const;
53 Real GetLinkVelocity(
int link)
const;
54 void AddLinkTorque(
int link,Real t);
55 void SetLinkDryFriction(
int link,Real coeff);
56 void SetLinkFixedVelocity(
int link,Real vel,Real tmax);
57 Real GetDriverValue(
int driver)
const;
58 Real GetDriverVelocity(
int driver)
const;
59 void AddDriverTorques(
const Vector& t);
60 void AddDriverTorque(
int driver,Real t);
61 void SetDriverFixedVelocity(
int driver,Real vel,Real tmax);
63 void SetLinkTransform(
int link,
const RigidTransform& T);
64 void GetLinkTransform(
int link,RigidTransform& T)
const;
65 void SetLinkVelocity(
int link,
const Vector3& w,
const Vector3& v);
66 void GetLinkVelocity(
int link,Vector3& w,Vector3& v)
const;
67 Real GetKineticEnergy()
const;
68 Real GetKineticEnergy(
int link)
const;
69 bool ReadState(File& f);
70 bool WriteState(File& f)
const;
72 inline dSpaceID space()
const {
return spaceID; }
73 inline dBodyID body(
int link)
const {
return bodyID[link]; }
74 inline dGeomID geom(
int link)
const {
return geometry[link]->geom(); }
75 inline dJointID joint(
int link)
const {
return jointID[link]; }
76 inline ODEGeometry* triMesh(
int link)
const {
return geometry[link]; }
77 dBodyID baseBody(
int link)
const;
78 inline dJointFeedback feedback(
int link)
const {
return jointFeedback[link]; }
83 vector<RigidTransform> T_bodyToLink;
84 vector<dBodyID> bodyID;
85 vector<ODEGeometry*> geometry;
86 vector<dJointID> jointID;
87 vector<dJointFeedback> jointFeedback;
88 dJointGroupID jointGroupID;
90 vector<shared_ptr<RobotWithGeometry::CollisionGeometry> > tempGeometries;
A robot simulated in an ODE "world".
Definition: ODERobot.h:30
The main robot type used in RobotSim.
Definition: Robot.h:83
surface properties for any ODE rigid object, robot link, or fixed object.
Definition: ODESurface.h:10
Definition: ContactDistance.h:6
An ODE collision geometry.
Definition: ODEGeometry.h:19