Could you post your source code (or part of it)? Maybe looking at it 
it's easier to see what is happening.

Dídac

Jordi wrote:

>That was it!
>Anyway, now I have one new problem.
>Each time I call that function I print the results
>The first time the object is in x=10 , I set cmd_pos[0]=11
>Even thought the next time the object is in 
>x=47.8293 or 58.734245   a very strange and too big number
>So I once more add 1 and set it to cmd_pos[0]
>The next time
>x=7324,21849234
>next 
>x= something e06
>next
>something e32
>next 
>e100 and gazebo server dies
>
>I only modify the values there and I'm sure i'm just adding one.
>Even if I set cmd_pos[0]=1 everytime the function is called, the same thing 
>happens
>
>any clue?
>
>
>
>
>  
>
>>Hi Jordi,
>>
>>I've used the truth interface without any problem.
>>
>>The only thing you shoud add is:
>>
>>truth->data->cmd_new = 1;
>>
>>To "inform" the interface that new data is available.
>>
>>I hope it helps,
>>
>>    Didac
>>
>>Jordi wrote:
>>    
>>
>>>Hi
>>>I have some problems playing with the truth interface, I'm using the
>>>libgazebo interface directly, Gazebo 0.6
>>>The code attached below can't modify the position of any object of the
>>>world. I've added truth intefaces to anything with no results:  I always
>>>get the same readings and nothing changes.
>>>The interface is correctly opened.
>>>The readings of the interface are correct and if I try to modify the
>>>readings (for instance: iface->truth->data->pos[0]=pos_x+x-startX), the
>>>next time my function is called, those readings go back to the real
>>>reading of the object so I'm sure the server is working and updating the
>>>data.
>>>
>>>
>>> double pos_x, pos_y, pos_z;
>>> double rot_u, rot_x, rot_y, rot_z;
>>>
>>> pos_x=iface->truth->data->pos[0];
>>> pos_y=iface->truth->data->pos[1];
>>> pos_z=iface->truth->data->pos[2];
>>>
>>> rot_u=iface->truth->data->pos[0];
>>> rot_x=iface->truth->data->pos[1];
>>> rot_y=iface->truth->data->pos[2];
>>> rot_z=iface->truth->data->pos[3];
>>>
>>>
>>>   Debug () << "post_x " << pos_x << " x " << x << " startX " <<startX <<
>>>" total " <<pos_x+x-startX ;
>>>   gz_truth_lock(iface->truth,1);
>>>   //iface->truth->data->pos[0]=pos_x+x-startX
>>>   iface->truth->data->cmd_pos[0]=pos_x+x-startX;
>>>   iface->truth->data->cmd_pos[1]=pos_y+y-startY;
>>>   iface->truth->data->cmd_pos[2]=pos_z;
>>>   iface->truth->data->cmd_rot[0]= rot_u;
>>>   iface->truth->data->cmd_rot[1]= rot_x;
>>>   iface->truth->data->cmd_rot[2]= rot_y;
>>>   iface->truth->data->cmd_rot[3]= rot_z;
>>>   gz_truth_unlock(iface->truth);
>>>
>>>
>>>
>>>x and startX are defined elsewhere. The output is like this.
>>>
>>>post_x  8.64727  x  478  startX  477  total  9.64727
>>>post_x  8.64727  x  481  startX  478  total  11.6473
>>>post_x  8.64727  x  482  startX  481  total  9.64727
>>>post_x  8.64727  x  483  startX  482  total  9.64727
>>>post_x  8.64727  x  483  startX  483  total  8.64727
>>>
>>>
>>>That numbers are logical to me, except that I'm overriding cmd_pos with
>>>the position named total but it is not changing anything of the real
>>>position of the object.
>>>
>>>--
>>>Jordi Polo
>>>
>>>
>>>_______________________________________________
>>>Playerstage-gazebo mailing list
>>>[email protected]
>>>https://lists.sourceforge.net/lists/listinfo/playerstage-gazebo
>>>      
>>>
>
>
>_______________________________________________
>Playerstage-gazebo mailing list
>[email protected]
>https://lists.sourceforge.net/lists/listinfo/playerstage-gazebo
>
>
>  
>

-- 
Didac Busquets i Font

Dept. d'Electronica, Informatica i Automatica
Institut d'Informatica i Aplicacions
Edifici P-IV
Despatx 128
Universitat de Girona
Campus Montilivi
17071-Girona

web: eia.udg.es/~busquets
email: [EMAIL PROTECTED]

Tel. (+34) 972.41.81.79
Fax. (+34) 972.41.80.98



_______________________________________________
Playerstage-gazebo mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/playerstage-gazebo

Reply via email to