[Dprglist] Odometry on Mecanum-wheeled robots?

Murray Altheim murray18 at altheim.com
Tue Apr 14 20:50:08 PDT 2020


Good afternoon/evening all.

I really enjoyed today's video conference, thanks.

Obviously there's a lot to consider regarding using Mecanum wheels, the ideas
around use of optical flow, etc.  I agree with Karim that if one is using
Mecanums the overall weight balance of the robot is pretty critical. Given my
own requirement of keeping the scale very small (a modification of my KRZ01
robot) and using the micro mini gear motors, it would seem that either an
additional set of unpowered wheels or some kind of laser motion sensor as
someone posted:

   https://www.tindie.com/products/jkicklighter/adns-9800-laser-motion-sensor/

would start to push the limits of space (where to hang those wheels??) and
probably battery life. But as it seems I'd probably need encoders anyway I'd
probably go with that. Watching the video competitions that Patrick posted
of Mecanum-wheeled robots makes me want to try it even more. One of the things
about my KRZ01 is that the ball caster works fine but if my requirement is
the same as David Anderson's (being able to navigate my house) then it's been
having problems with the transitions between wood floor and carpet. Four
wheels (of any kind) would solve that.

For orientation, I'm already using the Adafruit/Bosch BNO055 on my larger KR01
and haven't tested the various alternatives much yet, but I've stocked up and
will eventually try out:

* the Pimoroni ICM20948 Breakout Garden board
* Pimoroni LSM303D 6DoF Motion Sensor Breakout Garden
* Adafruit LSM9DS1
* Adafruit LSM6DS0X
* LIS2MDL

but so far the BNO055 seems to work pretty well. One of the things I think Doug
mentioned was that *time* is a precious commodity. I think I managed to get to
a second semester of calculus at university but I've forgotten almost all of
that, so the idea of taking a more "raw" output from a magnetometer and having to
process that for a value vs. an already-complete orientation value in radians or
degrees from the BNO055, well, that's pretty compelling. I'd both have to spend
a lot of time learning and debugging versus just getting a compass heading output
from the BNO055. While it might be somebody's cup of tea to work out that kind
of detail, it's not like there's not enough challenges in building a robot. And
time, hmm. Time.

As I told Gareth at 4Tronix (maker of the Picon Zero), I think I need to plan out
whether it's even possible to do a build right now, as I've run out of M3 stainless
steel nuts and other necessities, and while some stuff is available via mail order,
not necessary everything will be. So if I can get all the necessities I might go
ahead and try this mini Mecanum modification to the KRZ01.

For now I'm in the middle of Python, trying to write my own PID controller! I've
at least got my motors to accelerate to a velocity and maintain it, albeit without
much grace. The "PID" part is still to come... lots and lots to keep me busy.

Cheers,

Murray

On 15/04/20 2:57 AM, Doug Paradis wrote:
> Murray,
> I can think of one important use of encoders with Mecanum-wheeled robot, 
> and that is to accurately control the RPM (or hertz in metric) of the motors. 
> If you are looking for robot position, you can use an IMU (or gyros) to determine 
> heading, but some other type of feedback would be needed to determine accurate
> x,y position over time. [...]
...........................................................................
Murray Altheim <murray18 at altheim dot com>                       = =  ===
http://www.altheim.com/murray/                                     ===  ===
                                                                    = =  ===
     In the evening
     The rice leaves in the garden
     Rustle in the autumn wind
     That blows through my reed hut.
            -- Minamoto no Tsunenobu



More information about the DPRGlist mailing list