4WD Arduino Compatible Mecanum Robot Kit about establishing a model

I am trying to establish a model for this robot with the help of this paper

Modeling and Kinematics Simulation of a Mecanum Wheel Platform in RecurDyn Link: https://www.hindawi.com/journals/jr/2018/9373580/

I have provided it speed of 160MMPS but the theoritical value of distance doesnot equal to experimental value and when doing experiment it always goes extra milimeters.

Hello @simantstha !

Good to see around. Which is exactly your problem/doubt ?

1 Like

My robot is going extra distance then calculated by equation
Theoretical value is not same as experimental

Hello @simantstha ,

Well, that’s quite normal and in fact one would expect things like that to happen. This is because modeling with 100% accuracy is not possible. Even though a lot of internal/external forces are taken into consideration, there will always be a difference between the two models. The idea is to reduce these errors as much as possible. The causes of what is happening to you can be many, from not having the exact values of inertia, to intrinsic parameters of the vehicle’s engines.
You mention that the difference is of millimeters, to be a mobile robot, I believe that the error is quite low and you could work with those results.

Hope this could help you,

Carlos.

Hey yeah I had a typo I need to write a lot of milimeters actually. It’s around 1 foot and a half difference and this difference is also not constant sometime it goes way more than that. So is there anyway I can reduce that and all wheels also does not have same rpm though they are same motors. How can I over come this problems?

In my experience you could do the following:

  • First, calibrate the motors. Despite “being the same” probably not all have the same internal characteristics, nothing is exactly the same. Then calibrate each motor by seeing what PWM value makes each of the motors start and stop. So you know how much difference there is that you have to send to each one by code.
  • Second, I thought you could add an attenuation factor per code. So, if you need a certain value, you could send 0.8 of the value or something like that to tune the behavior.