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
