ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange
Ask Your Question

Calibrating Pioneer P3DX robot for ROSARIA

asked 2016-11-15 20:02:59 -0500

AlexR gravatar image

Hi All,

I am now setting up a new Pioneer 3DX with kinect and URG laser sensor. I have so far managed to put all the sensors and connect them via rosaria.

I would now like to do odometry calibration of the mobile base. Does anyone know how to do it. There are no specific tutorials available on the ros wiki page.

Also what are the optimum values of (TicksMM, DriftFactor, RevCount) for P3DX mobile robot. At present when I run the rosaria node I get the settings like this:

TicksMM - 128 DriftFactor - 0 RevCount - 16570

I can change these values using dynamic_reconfigure. I need the optimum values for this particular model. And how do I permanently change these parameters everytime I launch the rosaria node. Can someone explain me the process. Basically I believe the robots odometry is not good when its turning, how do I correct that.


edit retag flag offensive close merge delete

1 Answer

Sort by ยป oldest newest most voted

answered 2016-11-21 09:50:21 -0500

ReedHedges gravatar image

updated 2016-11-28 09:29:07 -0500

It is not required to set these calibration parameters, but you can use them to refine accuracy of the odometry if you want. If you leave them unset in ROS then the robot has internal defaults that will be appropriate for that type of robot. An alternative way to set these values is using the firmware configuration tool which also includes with it files with parameter defaults. (If your robot is a newer P3DX-SH then the firmware is ARCOS, config tool is ARCOScf, and parameter file is p3dx.rop). There is no fixed procedure for setting them other than adjusting them according to the apparent error of the motion of the robot. Ticks/MM is encoder ticks vs. forward movement, p3dx-sh default is 128. DriftFactor is horizontal error vs. forward motion, p3dx-sh default is 0 (no drift), RevCount default is 16570. The robot manual describes these and other parameters a little bit, you can also ask us at .

Note if you set them in ROS using dynamic_reconfigure or RosAria parameters, they are saved in the ROS parameter system and sent to the robot when you connect or change them, they persist for the connection and the robot forgets them upon disconnection, any new connection to the robot controller it will use what is configured in the controller firmware (but if you only use RosAria and no other software, you will always use the parameters you set in ROS.) If you set the parameters in the robot controller firmware, it will save those in the robot controller and use them for all future connections (except that RosAria will temporarily change them if they are set in ROS parameters.)

edit flag offensive delete link more


Hi thanks for the answer. I have the P3DX. Not sure if its the -SH version. We bought it 2 years ago. What I would like is setting up configuration files for different surfaces (carpet, solid floor, tiled floor etc) and call them from the launch file when bringing up the robot base. Any suggesions?

AlexR gravatar image AlexR  ( 2016-11-23 21:48:45 -0500 )edit

It would be an SH type then. Maybe you can include different conditions in the launch file (via "if" attribute ) with different parameters? Or perhaps write a client program that uses dynamic_reconfigure to change them based on surface? Or something else?

ReedHedges gravatar image ReedHedges  ( 2016-11-28 09:31:50 -0500 )edit

Hi, I was trying to download ARCOS from here . But could not access due to user Id and password requirement. Is there any other way to access it?

Spartan_007 gravatar image Spartan_007  ( 2018-04-25 16:12:58 -0500 )edit

Question Tools



Asked: 2016-11-15 20:02:59 -0500

Seen: 809 times

Last updated: Nov 28 '16