Rosanswers logo

My linorobot is working and seems mostly to be configured correctly:

  • PID seems ok
  • Response to cmd_vels seem correct (but see below)
  • All the various config parameters in Lino_base.h seem correct

Note this is a differential drive with two casters, so wheels arranged in a rectangle, with powered wheels at the front and rotating casters (like you have on a shopping cart) on the back. I know that this introduces some instability because if you go from turning to straight, the casters take a moment to align themselves.

The trouble is this: If I command the robot to go in a straight line (i.e. no angular at all) it begins drifting by around 10cm to the right every 1 meter driven.

I also notice that despite the cmd_vel without any angular one of the wheels is reading a higher RPM than the other.

When I put the robot up on blocks, and bypass all the PID and kinematics and just force both motors by setting motor1_controller.spin(100) and // motor2_controller.spin(100) and I measure the wheels actual RPMs with a meter they read out at around 310 for one wheel and 320 for the other. That seems close enough.

Is all this surprising? Is the slight drift described above surprising? The slight difference in RPMs? Any thoughts?

Originally posted by pitosalas on ROS Answers with karma: 628 on 2022-05-09

Post score: 0


1 Answer 1


Rosanswers logo

What is the difference between rotational speeds under some load on the motors? I would test the robot's wheels and motors by rotating the robot using a single powered wheel (second wheel supported and freely rotating) through an integer multiple of 360 degrees in both directions and look at the accuracy of the return to the initial angle.

Can you also add a drawing of the robot geometry from above? Maybe there are some additional constraints on the movements too. A photo of the underside of the robot would also help.

Originally posted by ljaniec with karma: 3064 on 2022-05-10

This answer was ACCEPTED on the original site

Post score: 1

Original comments

Comment by pitosalas on 2022-05-18:
Thank you for the suggestion. I was able to solve it. I tracked it to a typo in my firmware settings. I was trying different things to diagnose and broke my own code.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.