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

Predictability of cmd_vel

asked 2018-10-18 09:15:09 -0500

pitosalas gravatar image

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 flag offensive close merge delete

Comments

Are you talking about a simulation or a real robot ?

Delb gravatar image Delb  ( 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.

pitosalas gravatar image pitosalas  ( 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.

gvdhoorn gravatar image gvdhoorn  ( 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.

pitosalas gravatar image pitosalas  ( 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.

gvdhoorn gravatar image gvdhoorn  ( 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.

pitosalas gravatar image pitosalas  ( 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.

gvdhoorn gravatar image gvdhoorn  ( 2018-10-18 10:23:07 -0500 )edit

1 Answer

Sort by ยป oldest newest most voted
1

answered 2018-10-18 09:52:57 -0500

Delb gravatar image

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.

edit flag offensive delete link more

Comments

Thanks Delb. The key question is "correctly built" ... see my comment to @gvdhoorn above as to what the story is of why we are doing this.

pitosalas gravatar image pitosalas  ( 2018-10-18 10:19:32 -0500 )edit

Question Tools

Stats

Asked: 2018-10-18 09:15:09 -0500

Seen: 132 times

Last updated: Oct 18 '18