Most interfaces have the geometry property that does specify their position in their parent's coordinate system. Probably all interfaces should support this, but we have steered clear so far of mandating interface fields. The geometry property does not tell you which device is the parent, however, which could indeed be useful. A new 'parent' property could give the functionality you are looking for without breaking existing code.


On 11-Jan-06, at 3:09 AM, smog zer wrote:

Hello all.

The design of my player viewer 3d gui has raised some questions about player's own design.
How to know the world position of a device that is  physically  attached  to another device ?
i.e. imagine a remote client connecting to a player server in a remote lab, the client wants to visualize the robot and the sensors but he does not have any information to know how the devices are physically(in a geometric sense) connected.
Therefore the client has to guess the sensor poses by the sensor readings.

I would suggest that the player driver implements the physical device location also.

laser:0, attached_to:position:0(0.2,0.0,0.2,0,0,0)

this would mean that the laser is attached to the position device with an offset of 0.2 meters in the xx and zz axis.

The method to better implement this is with the observer pattern, updating the laser global_pose fields whenever the position_pose changes.

On the client side we would the device global_pose and a "parent" or attached_to field.

Joćo Xavier
Institute for Systems and Robotics
University of Coimbra