[ODE] networking

Eric Cha ericc at xenopi.com
Wed Oct 16 10:02:02 2002


Pia,

Your problem is a bit tricky to pin down, but here is my theory:

Since you are controlling each robot separately (via different
computers), any collisions detected by a given computer have to be
transmitted (propagated) to the other computers.  You didn't mention
whether or not you are transmitting collision information in your
program, but I am going to assume that you are..

So, assuming you are propagating collision info properly (although in a
peer-to-peer topology this is going to be tricky..), the other problem
may be (depending on how your network code functions) one of "lag
induced information negation"..  What I mean is, computer "A" determines
a collision has occurred and transmits the info to computer "B".
However, because of lag, computer "B" transmits a new position to "A"
before receiving the collision info from "A".  The new position info
from "B" then OVERRIDES the collision that "A" detected, and forces "A"
to put it's representation of "B" into the new spot.  Computer "B"
finally receives the collision info, but disregards it because it
happened at a position which is not current..

This scenario assumes MANY things about your network code, so it is not
a definite answer.

A better way (for physics) to do things would be to designate one
computer as "the physics simulator".  Do the entire scene simulation on
that computer, and then just transmit position/orientation/velocity
updates to other computers.  Of course, other computers would transmit
user inputs (or even impulse/velocity/acceleration changes) to the
simulator computer to control their respective robot.

Don't know if that helped you or not, but that's my .02. =)

Eric

> -----Original Message-----
> From: ode-admin@q12.org [mailto:ode-admin@q12.org] On Behalf 
> Of pia dalusong
> Sent: Wednesday, October 16, 2002 12:43 AM
> To: ode@q12.org
> Subject: [ODE] networking
> 
> 
> hello
> 
> first of all thanks for replying.  
> I'm not using a client/server type of connection.  I'm
> using a peer to peer connection.  This means that I
> only have one program and though it may act as a
> server at times it doesn't. The movements of the a
> robot is calculated by the local computer and it just
> sends a message containing the speed and orientation
> of the mobot to the other computers.  Any computer
> sends a message to all the other computers connected
> to the same simulation like a broadcast message.
> I use ODE for practically everything even the
> positioning.  and yes, all the geoms and bodies are
> created properly.
> 
> although yes I do have problems concerning the lag.
> and i'm still working on that.  any suggestions are
> welcome. and all the robots exist in the same space
> and world.
> 
> thanks
> 
> pia
> 

 

---
Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.394 / Virus Database: 224 - Release Date: 10/3/2002