1 #ifndef WORLD_SIMULATION_H 2 #define WORLD_SIMULATION_H 5 #include "ODESimulator.h" 6 #include "ControlledSimulator.h" 29 Vector3 meanForce,meanTorque,meanPoint;
37 vector<ODEContactList> contactLists;
58 virtual void Step(Real dt) {}
59 virtual bool ReadState(File& f) {
return true; }
60 virtual bool WriteState(File& f)
const {
return true; }
75 void SetController(
int robot,shared_ptr<RobotController> c);
77 void Advance(Real dt);
79 void AdvanceFake(Real dt);
83 void UpdateRobot(
int index);
87 bool ReadState(File& f);
88 bool WriteState(File& f)
const;
89 bool ReadState(
const string& data);
90 bool WriteState(
string& data)
const;
96 void EnableContactFeedback(
int aid,
int bid,
bool accum=
true,
bool accumFull=
false);
101 bool InContact(
int aid,
int bid=-1);
103 bool HadContact(
int aid,
int bid=-1);
105 bool HadSeparation(
int aid,
int bid=-1);
110 bool HadPenetration(
int aid,
int bid=-1);
116 Vector3 ContactForce(
int aid,
int bid=-1);
118 Vector3 ContactTorque(
int aid,
int bid=-1);
120 Vector3 MeanContactForce(
int aid,
int bid=-1);
122 Vector3 MeanContactTorque(
int aid,
int bid=-1);
133 vector<ControlledRobotSimulator> controlSimulators;
134 vector<shared_ptr<RobotController> > robotControllers;
135 vector<shared_ptr<WorldSimulationHook> > hooks;
137 ContactFeedbackMap contactFeedback;
148 ForceHook(dBodyID body,
const Vector3& worldpt,
const Vector3& f);
149 virtual void Step(Real dt);
150 virtual bool ReadState(File& f);
151 virtual bool WriteState(File& f)
const;
164 LocalForceHook(dBodyID body,
const Vector3& localpt,
const Vector3& f);
165 virtual void Step(Real dt);
166 virtual bool ReadState(File& f);
167 virtual bool WriteState(File& f)
const;
181 WrenchHook(dBodyID body,
const Vector3& f,
const Vector3& m);
182 virtual void Step(Real dt);
183 virtual bool ReadState(File& f);
184 virtual bool WriteState(File& f)
const;
196 SpringHook(dBodyID body,
const Vector3& worldpt,
const Vector3& target,Real k);
197 virtual void Step(Real dt);
198 virtual bool ReadState(File& f);
199 virtual bool WriteState(File& f)
const;
202 Vector3 localpt,target;
A hook that adds a constant force to a body.
Definition: WorldSimulation.h:145
A hook that acts as a Hookean spring to a given fixed target point.
Definition: WorldSimulation.h:193
The main world class containing multiple robots, objects, and static geometries (terrains). Lights and other viewport information may also be stored here.
Definition: World.h:20
An interface to the ODE simulator.
Definition: ODESimulator.h:93
A hook that adds a constant wrench (force f and moment m) to the body.
Definition: WorldSimulation.h:178
Status
Definition: ODESimulator.h:108
ODESimulator::Status worstStatus
Worst simulation status over the last Advance() call.
Definition: WorldSimulation.h:139
Any function that should be run per sub-step of the simulation needs to be a WorldSimulationHook subc...
Definition: WorldSimulation.h:53
An index that identifies some ODE object in the world. Environments, robots, robot bodies...
Definition: ODESimulator.h:191
A physical simulator for a RobotWorld.
Definition: WorldSimulation.h:67
A hook that adds a constant force in world coordinates to a point on a body given in local coordinate...
Definition: WorldSimulation.h:161