I need to do odometry for a 4 mecanum wheeled robot for indoor applications. Is it possible to do it with just wheel encoders and IMU sensors? If possible, how? It will be of great help if someone shares any material. Thanks!
-
1$\begingroup$ (1) Your question is a bit too board. Are you using this robot? howtomechatronics.com/projects/arduino-mecanum-wheels-robot, (2) You might start with wheel encoders first, (3) then IMU, (3) then odometry. Cheers. $\endgroup$– tlfong01Oct 12, 2020 at 2:09
-
2$\begingroup$ Welcome to Robotics Abhinandan Krishnan, but I'm afraid your question is too broad. We prefer practical, answerable questions based on actual problems that you face, so it's a good idea to include details of what you want to achieve, what you tried, what you saw & what you expected to see. Please take a look at How to Ask & tour for more information on how stack exchange works and work through the Robotics question checklist to edit your question to make it clearer. $\endgroup$– Ben ♦Oct 12, 2020 at 14:43
-
2$\begingroup$ Every robot application is different and what works for others might not work for you. This can be due to: physical robot differences (size, weight, wheel type, etc), environment differences (size of area, floor type, etc), accuracy requirements (how accurate/precise and repeatable does it need to be), dynamics differences (speed and acceleration of robot), processing differences (how powerful of a CPU are you working with), and a lot more. So it hard for our members to answer if something is possible or not without many of these details. $\endgroup$– Ben ♦Oct 12, 2020 at 14:52
-
2$\begingroup$ yes @tlfong01, I am referring to the robot you've attached in the link. Is it possible to do odometry just by using IMU and 4 wheel encoders to know the location of the robot in a room at any given point of time. $\endgroup$– Abhinandan KOct 13, 2020 at 9:39
1 Answer
In order to transform encoder signals to robot motions a kinematic model of the robot is needed. In some cases this is very simple, just including the gear ratios and a heading angle (e.g. with Ackerman steering model). This is a simple kinematic model.
A more complex case is differential steering, where the encoder signals pass through a kinematic transformation in order to calculate the heading angle.
The differential drive kinematic model can be a good inspiration to the Mecanum kinematic model. The Mecanum wheel robot will include more encoders (at least 3), since it has more holomonic degrees of freedom. Furthermore, if you have 4 wheels and 4 encoder, care must be taken in the kinematics model, since you have one more sensor then degrees of freedom. You can use this to improve the accuracy of the model, but it will make things a bit more complex.
You take all encoder signals and feed them to a forward kinematic model, which gives you the Cartesian position change (if we consider tick change to be the encoder signal).
After you obtain the Cartesian position change (or other derived signal, like position or velocity) you can use this in any odometry, sensor fusion (with IMU) or SLAM algorithm (with optical sensors).
You can google "4 wheel mecanum kinematic model" and you can find examples on how to implement this.
-
1$\begingroup$ Thank you for replying! I've implemented odometry for a differential drive robot using 2 wheel encoders. There, the cartesian position change was fairy simple to calculate with the number of ticks, but my doubt while using mecanum wheels is how to include the lateral movement aspect of the wheel, how the cartesian position will change when we move the robot other than the normal forward and backward direction. Is that something which has been addressed in the kinematic model of the mecanum wheels? $\endgroup$ Oct 13, 2020 at 9:35
-
1$\begingroup$ That is exactly what has been adressed in the kinematic model of robots with 4 mecanum wheels $\endgroup$– 50k4Oct 13, 2020 at 9:47
-
$\begingroup$ Alright, research.ijcaonline.org/volume113/number3/pxc3901586.pdf can i refer this? $\endgroup$ Oct 13, 2020 at 9:53
-
$\begingroup$ Yes, equation 21 in the paper is what you are looking for. Calculating x, y and heading from the 4 encoder signals. $\endgroup$– 50k4Oct 13, 2020 at 9:55
-
$\begingroup$ Read the Kinematic model, can you shed some light on how to use that equations or how make the more sense of that equation with the encoder and IMU data available during practical implementation. Thanks in advance :) $\endgroup$ Oct 13, 2020 at 17:15