I'd like to thankful the information that you have provided.
We've been working hardly and we found two problems:
1) Goals written to P3-DX robot:
We found that if we use: direct_wheel_vel_control "1" -> default.
It "set independent wheel velocities", so the increment is 20 mm/s, and
it hasn't enough precision. In most of cases the goal is wrong.
To solve this problem, we changed the .cfg file:
Now, we are working with Translation and Rotation speeds written
directly to the P3-DX robot. The Arcos' software is going to calculate
the wheel velocities.
2) Readings from P3-DX robot:
If we set the rotational speed to zero the P3-DX robot moves well.
When the rotational speed was set to non-zero, the P3-DX moved wrong and
we received data wrong.
We found that the distance between wheels was wrong. In P3-DX is 330mm.
The constant value "DiffConvFactor" needs to be changed to 0.00606
(file: robot_params.cc, p3dx_sh_params, line 3 of the struct)
(before it was 0.0056)
Now, when the rotational speed is set to non-zero, the P3-DX moves well
and we receive data well.
If you or somebody think that we are doing some wrong, please let us
If you think that we are doing things well, please let us now too.
We hope your answers. Thanks in advance.
On Dec 10, 2007, at 5:11 AM, Marcelo Salazar wrote:
> I've been working with Player and P3-DX robot, and I have a problem =20
> at reading speeds.
> Linear Speed =3D 0.0
> Angular Speed =3D 0.9 (This is my problem!, It sould be 1.0 =20
> When I measure with an oscilloscope in the motor=92s encoder, and I =20
> do the calculations, I obtain 1.0 approximately.
> When I use ARIA's lib, I haven't any problem.
That's interesting. Perhaps there's a bug in Player's p2os driver. =20
I'd recommend looking at player/server/drivers/mixed/p2os/sip.cc. =20
The packets from the robot are parsed in SIP::Parse, and the Player =20
data structures are filled in SIP::Fill.