OmniBOT Arduino Based Three Omni Wheels Holomonic Movement Rover (Kiwi Steering)
| Attachment | Size |
|---|---|
| Omni_Robot_Main_2010091171159.pde | 9.42 KB |
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.




@ Tue, 2010-09-14 22:57
No, and I don't use Arduino,
No, and I don't use Arduino, so I have another code :-) 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 :(
When will you have version with sensors? :)
@ Fri, 2010-09-17 11:23
The sketch (CODE)
Adamh you can see the code here : OmniBOT Sketch
(or see the attachment above)
@ Fri, 2010-09-17 09:31
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 !!!! :)
Hope you find it useful.
Thank you again !!
orf.
p.s.
What uC are you using ?
@ Fri, 2010-09-24 12:29
Very nice, I had the same
Very nice, I had the same problems with servo's "center" value :-)
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 :(
Have you mounted IR rangefinders already? I am looking forward to next video :)
@ Sun, 2010-09-26 12:30
Hi Adam, nice video and good
Hi Adam, nice video and good idea for the plastic floor !!! :)
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
@ Mon, 2010-09-13 16:38
Very nice work! I love
Very nice work! I love omnidirectional wheels :-) 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! :-)
@ Wed, 2010-09-15 10:55
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 :) 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 :)
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