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

# Predictability of cmd_vel

If I send 10 seconds worth of cmd_vel x=0.1 to my TurtleBot3, how close to 1m travel should I expect? (I know that on paper it should be one meter (10 x 0.1) but I am wondering what a reasonable tolerance is. Just cmd_vel, nothing fancy.

edit retag close merge delete

Are you talking about a simulation or a real robot ?

( 2018-10-18 09:32:57 -0500 )edit

a real robot, a Robotis Turtlebot3 running kinetic. I don't think the model should matter, but just in case.

( 2018-10-18 09:34:05 -0500 )edit

I think the underlying issue here is that using velocity control to achieve position control can work, but will need a closed loop to be anywhere near accurate. That's not TB-specific, just general control theory.

Things like "10 seconds worth of cmd_vel x=0.1" are strange things to say.

( 2018-10-18 10:00:23 -0500 )edit

It is a bit strange I agree. The background is that we modified a robot (put different wheels on it) and we are trying to validate that the parameters we changed produce the correct result. Hence we would like to check pieces separately at lower level.

( 2018-10-18 10:18:41 -0500 )edit

The background is that we modified a robot (put different wheels on it) and we are trying to validate that the parameters we changed produce the correct result.

So technically this is an xy-problem then.

( 2018-10-18 10:20:42 -0500 )edit

Fair enough. I thought I was isolating the specific question that we were debating on this end which was was it correct to assume that 10 seconds at 0.1 should produce about 1 meter and not 3 meters which is what we were seeing. But I should have given the context.

( 2018-10-18 10:22:17 -0500 )edit
1

Have you run the robot along a tape measure (just manually tele-opping) to make it drive 1 or 2 or 3m in a single direction and then checked the published Odometry? That should tell you whether you've configured things correctly.

( 2018-10-18 10:23:07 -0500 )edit

Sort by ยป oldest newest most voted

I think your best option is to do it multiples time and get the average of the results. Estimating that with calculation seems pretty difficult given the number of parameters you would have to use :

• The floor friction that can create shifts
• If your robot is correctly built (not heavier on a side or unbalanced) that could induce a movement on the right/left
• If you have a velocity smoother launched in one of your launch files (which is probably the case with a turtlebot3) that could lower the acceleration/deceleration hence the final position.
• The battery state that could lower the performances (but that shouldn't be a big deal though)
• The precision of your 10 seconds.

And so on...

I'm not familiar with the turtlebot3 but if I should guess I would say you should expect a tolerance of about 5~10cm.

more