From: Yuan X. <xuy...@gm...> - 2008-01-28 04:23:04
|
Hi all, > > Next weekend I'll try to work more on these issues, and probably until then > will know the answer of your 4th question. > > 4) What's the reason for stepping in discreet steps in SimulationServer::Step()? > Will it change anything with ODE? Yes, dWorldStep(20ms)+dWorldStep(20ms) != dWorldStep(40ms). Because, the collision detection is missing in dWorldStep(40ms). > Yuan, the code of SDL_GetTicks() is simple, it doesn't give any more > precision. I didn't get some parts of what you said. Yes, the precision depends on the OS, then I remind the RTL, and I know it is not suitable. > Maybe a silly question > but, the server is supposed to have sharp 20ms cycles? The cycle duration effects the performance of robot controller. Note that the control cycle is less than 10ms in real robot. The longer cycle the harder for the controller. And the HMDP[Joschka] may solve this, but it will make teams to change their codes a lot. > I thought the > previous timing method (SPADES) was replaced by the new one to get rid of > the problems we had with timers, and more rely on time stamps. But you > suggested using RTL to have more precise timers. The SPADES do not count the real time, it counts how many jiffies used by the agent. It can measure the CPU cost of the agent, but if the agent spend a lot of time on other work, such as communication, writing logs, the game will be very slow. Jelle Kok said that some games last less than 10min, but some other games need more than 1 hour! > Sorry maybe I got the whole > thing wrong, I'll go through the code again. But I would appreciate it if > you (or others) could please remind me the new idea for timing, maybe by > referring to old emails - I couldn't find them. > The timer was designed just like the 2D server: fixed cycle duration, the agent should sent action in time, otherwise the action will not be executed. The difference between 2D and 3D only are the duration and implementation. Best wishes! Xu Yuan |