1 #ifndef WORLD_SIMULATION_H 2 #define WORLD_SIMULATION_H 5 #include "ODESimulator.h" 6 #include "ControlledSimulator.h" 25 struct ContactFeedbackInfo
31 Vector3 meanForce,meanTorque,meanPoint;
39 vector<ODEContactList> contactLists;
60 virtual void Step(Real dt) {}
61 virtual bool ReadState(File& f) {
return true; }
62 virtual bool WriteState(File& f)
const {
return true; }
77 void SetController(
int robot,shared_ptr<RobotController> c);
79 void Advance(Real dt);
81 void AdvanceFake(Real dt);
85 void UpdateRobot(
int index);
89 bool ReadState(File& f);
90 bool WriteState(File& f)
const;
91 bool ReadState(
const string& data);
92 bool WriteState(
string& data)
const;
98 void EnableContactFeedback(
int aid,
int bid,
bool accum=
true,
bool accumFull=
false);
103 bool InContact(
int aid,
int bid=-1);
105 bool HadContact(
int aid,
int bid=-1);
107 bool HadSeparation(
int aid,
int bid=-1);
112 bool HadPenetration(
int aid,
int bid=-1);
118 Vector3 ContactForce(
int aid,
int bid=-1);
120 Vector3 ContactTorque(
int aid,
int bid=-1);
122 Vector3 MeanContactForce(
int aid,
int bid=-1);
124 Vector3 MeanContactTorque(
int aid,
int bid=-1);
135 vector<ControlledRobotSimulator> controlSimulators;
136 vector<shared_ptr<RobotController> > robotControllers;
137 vector<shared_ptr<WorldSimulationHook> > hooks;
139 ContactFeedbackMap contactFeedback;
150 ForceHook(dBodyID body,
const Vector3& worldpt,
const Vector3& f);
151 virtual void Step(Real dt);
152 virtual bool ReadState(File& f);
153 virtual bool WriteState(File& f)
const;
166 LocalForceHook(dBodyID body,
const Vector3& localpt,
const Vector3& f);
167 virtual void Step(Real dt);
168 virtual bool ReadState(File& f);
169 virtual bool WriteState(File& f)
const;
183 WrenchHook(dBodyID body,
const Vector3& f,
const Vector3& m);
184 virtual void Step(Real dt);
185 virtual bool ReadState(File& f);
186 virtual bool WriteState(File& f)
const;
198 SpringHook(dBodyID body,
const Vector3& worldpt,
const Vector3& target,Real kP,Real kD=0);
199 virtual void Step(Real dt);
200 virtual bool ReadState(File& f);
201 virtual bool WriteState(File& f)
const;
204 Vector3 localpt,target;
215 virtual void Step(Real dt);
216 virtual bool ReadState(File& f);
217 virtual bool WriteState(File& f)
const;
230 virtual void Step(Real dt);
231 virtual bool ReadState(File& f);
232 virtual bool WriteState(File& f)
const;
A hook that adds a constant force to a body.
Definition: Simulator.h:147
A hook that adds a constant wrench (force f and moment m) to the body.
Definition: Simulator.h:180
ODESimulator::Status worstStatus
Worst simulation status over the last Advance() call.
Definition: WorldSimulation.h:141
A hook that adds a constant force in world coordinates to a point on a body given in local coordinate...
Definition: Simulator.h:163
Any function that should be run per sub-step of the simulation needs to be a WorldSimulationHook subc...
Definition: WorldSimulation.h:55
An index that identifies some ODE object in the world. Environments, robots, robot bodies...
Definition: ODESimulator.h:213
Defines the WorldModel class.
A hook that acts as a Hookean (optionally damped) spring to a given fixed target point.
Definition: Simulator.h:195
A hook that adds a Hookean (optionally damped) virtual spring to a joint.
Definition: Simulator.h:226
A physical simulator for a WorldModel.
Definition: WorldSimulation.h:69
Status
Definition: ODESimulator.h:116
A joint between two objects.
Definition: ODESimulator.h:266
A hook that adds a constant force to a joint.
Definition: Simulator.h:211
Definition: ContactDistance.h:6
An interface to the ODE simulator.
Definition: ODESimulator.h:101
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:24