OmniBOT Arduino Based Three Omni Wheels Holomonic Movement Rover (Kiwi Steering)

Hi to all,

this is an Arduino based three omni wheels rover with 2DOF.

The 2DOF is accomplished by three omni wheels on a continuous rotation servo (modified) each in a 120 deg. angle.

The code was a little bit tricky but with good old trigonometry and physics it is done :)

The actual sketch can be found here: OmniBOT Arduino Sketch

(Yes it is in GREEK it doesn't just sound like it :) but the code is readable (english) )

A few more pictures can be found here : OmniBOT photos

Any thoughts, suggestions or comments are welcome !!

Thank you for your time.

Orfeus

p.s.

I am saying this is complete cause the main purpose of the project was the code.  

Next will be a completed "sensore-ised" rover.

Holomonic Movement Kiwi Steering 2DOF

  • Actuators / output devices: 3 HiTEC Servos (modified for continuous rotation)
  • Control method: autonomous
  • CPU: Arduino Duemilanove
  • Operating system: Windows
  • Power source: 3V5, 7V2
  • Programming language: Arduino IDE 0019
  • Sensors / input devices: none yet
  • Target environment: indoor

This is a companion discussion topic for the original entry at https://community.robotshop.com/robots/show/omnibot-arduino-based-three-omni-wheels-holomonic-movement-rover-kiwi-steering

Very nice work! I love

Very nice work! I love omnidirectional wheels :slight_smile: and I have something similar (http://dir.adamh.cz/robot-omnibot/foto/2010_09_11_omnibot-cd/omnibot_cd4.jpg) on my table now.

How did you mounted whells to servos? And didn’t you have problems with wheel adhesion as I have? (I have to put my robot on some rougher or rubber surface if I want him moving straight)

 

Looking forward to the version with sensors! :slight_smile:

No, and I don’t use Arduino,

No, and I don’t use Arduino, so I have another code :slight_smile: Where can I find yours? Did you solved problems with servo non-linearity?

The pencil is an interesting idea, I tried gluing it too first, but centering was a little bit tricky :frowning:

When will you have version with sensors? :slight_smile:

Thanks adamh,actually the

Thanks adamh,

actually the CD-based rover is a great idea !!! nice thinking.

I super glued the spare horns on the wheels so they are stable as rocks :slight_smile: I used a pencil as an axis so they where centered.

I do have problems with wheel adhesion they are slippery as on ice !!! but I had to work with them as you :slight_smile:

You can tell how slippery they are watching the video :((((

Did you read the sketch ? Did you tried it ? 

I am waiting for yours to be alive !!!

Thnx again

At last !!! some nice questions !

I was waiting for someone to have some questions about it !!! Thank you for that.

I am using 3 different ways to “fine tune” the servos.

1.Because they were modified for continuous rotation they didn’t have the same settings

(max/min pulses and of-course the center). So I used an array with their Offsets. Every time I am

asking the servo to do something the offset is there.

2. There is an option to mount some servos with different “polarity”  so I am using a “polarity” variable (vals: 1,-1) to

multiply by the final speed.

3. The linearity was a tricky bit. I am using logarithms (ln(1+cos(dir)*1,718)) and then I am “mapping” the values to the

servo pulses limits. Not perfect but close enough !! 

About the sensors, I am going to use 2 IR mounted on a servo with 180 angle between them, so I am going to have

360 degrees scanning region with one sweep . That’s to have omni robots, obstacles can be everywhere around !!! :slight_smile:

Hope you find it useful.

Thank you again !!

orf.

p.s. 

What uC are you using ?

 

The sketch (CODE)

Adamh you can see the code here : OmniBOT Sketch

(or see the attachment above)

Very nice, I had the same

Very nice, I had the same problems with servo’s “center” value :slight_smile:

I am using cubic regression from http://www.cs.cmu.edu/~pprk/tech_info.html for counting servo speed, it works well. I use jBotBrain controller (http://jbrain.c-bot.eu), it’s board with AT91SAM7S256 running Java (like lejos on Lego Mindstorms). I’ve uploaded my robot’s video on http://www.youtube.com/watch?v=wrWtY4WH_PU, but I don’t have time now for playing with t and adding more sensors :frowning:

Have you mounted IR rangefinders already? I am looking forward to next video :slight_smile:

Hi Adam, nice video and good

Hi Adam, nice video and good idea for the plastic floor !!! :slight_smile:
I didn’t even think of cubic regression but using the logarithmic approach I am getting a close match.

I am going to measure the wheels speed to make it more accurate (Nice thinking !!! thnx)

The jBotBrain is a very nice uC unit and as I can see you are getting a nice movement.

The goal with our type of robots is to: Always Have The Front Side Ahead and I am not there yet.

Maybe I have to blame the wheels !!!??? but I am still “fighting” with the code. 

I am not going to add any sensors till I got the accurate movement I am looking for so I am back to “software coding” issues.
I am having some hard time at work (New Cisco ASAs) so I am a little bit back but hopefully I will have some free time to spend
on it.

Please keep me posted with your progress always two minds is better than one ;) 

Thnx