Predictability of cmd_vel
If I send 10 seconds worth of cmdvel 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 cmdvel, nothing fancy.
Asked by pitosalas on 2018-10-18 09:15:09 UTC
Answers
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
.
Asked by Delb on 2018-10-18 09:52:57 UTC
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.
Asked by pitosalas on 2018-10-18 10:19:32 UTC
Comments
Are you talking about a simulation or a real robot ?
Asked by Delb on 2018-10-18 09:32:57 UTC
a real robot, a Robotis Turtlebot3 running kinetic. I don't think the model should matter, but just in case.
Asked by pitosalas on 2018-10-18 09:34:05 UTC
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.
Asked by gvdhoorn on 2018-10-18 10:00:23 UTC
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.
Asked by pitosalas on 2018-10-18 10:18:41 UTC
So technically this is an xy-problem then.
Asked by gvdhoorn on 2018-10-18 10:20:42 UTC
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.
Asked by pitosalas on 2018-10-18 10:22:17 UTC
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.Asked by gvdhoorn on 2018-10-18 10:23:07 UTC