I am currently involved in research involving robotic imitation. We are using usarsim as the environment and player as the controller. I spawn p2at and p2dx using player on usarsim. P2dx runs fine but i have noticed that while running p2at whenever i give command for rotation for example rotation of 360 at the end of the rotation there a error and it does not reach to its original orientation and continously changing the angle keeps accumalates the error. One simple experiment to confirm this i used the Soccer Map and from initial position command to go to 1.5 0 and then rotate and go to -1.5 0 it didn't went straight and the angle it was showing 180 was actually around 210-220. And after few of these commands when i ask it to go to 0, 0 there is a significant change in x, y position and angle is showing wrong values. Basically there are around variation of 2 units in x and y after all the commands most of the time. This problem does not seem to occur with p2dx. I would also like to note that there is no collisions between these commands. The problem seems to be with angle i.e. it does not go to the angle given and that affects x and y position calculations. Can anybody help me?
The robots are designed to have sensor noise. I believe that the P2AT will have higher encoder noise due to its 4 wheel skid-steered design. If you would like to have no noise, either use the ground truth sensor or set the noise parameters in the .ini file to 0.
I did set noise in Usarbot.ini for encoders to 0 but still the same problem. I even tried to set the sigma for INS sensor to 0 but still same problem. I connect to usarsim using player c++ client libraries. I tried to look into player client libraries and couldn't find anyway to connect to usarsim ground truth sensor. Is there any way to solve this problem and reduce the noise/error.
To connect to the ground truth one needs to use the fake_localize driver in
the player version patched to work with usarsim. The following is an example
of configuration file using such driver (see last entry).
I'm trying to use us_fakelocalize to my project because I had problems with the angles as well.I have used the above code in the configuration file and subscribed in playerViewer position2d:1 but the robot does not seem to move at all despite my commands (I used setSpeed and also tried to manualy move it from playerViewer) and the results are zeros.. what might be wrong?