Let's Make Robots!

Mr.Tidy (Mega Version) - visits the Swiss Alps !!!

Tidys up your Office

Question :- what on earth is  New Mega improved Mr.Tidy doing in Switzerland ?............

..... To cut a long story short .....OddBot  has done it again.....

.... I had a request from OddBot, who is presently snowed under with work at DAGU Hi-Tech Electronic Co., Ltd.

He asked me if i could programme Mr.Tidy with  :-

  1. Autonomous mode
  2. The ability to tidy up coloured cups into coloured piles.

All i knew was that the "Original Mr.Tidy"  was able to pick up heavy glasses/cans and was picaxe based............


..... So i took up the challenge and here is what happened....


BTW :- ........( Highest credits go to OddBot , i only gave Mr.Tidy some "Fuzzy Logic")


























Please do not adjust your Monitor - this is just a time lapse of him in action......

Basically Mr.Tidy is an Arduino Mega Based Robot with some really outstanding capabilities

  1. Arduino Mega based
  2. 360° IR detect circuitry (collision avoidence)
  3. Infra Red compound Eye (consisting of 4 Infra Red Leds)
  4. 2 motors with gearing and current detect monitors
  5. OmniWheels (front) with Wheel position Encoders
  6. Lifter Arm with position Encoders and current monitor
  7. Gripper Hand with position Encoders and current monitor
  8. and the cherry on the cake -------- an RGB colour detector
  9. and not to mention the sexy powder blue Leds
  10. He also detects  his own battery voltage, (futur docking possibilities)

You could imagine with all this power and flexibility i was in Heaven.

Here you see his Omni-Wheels - this enables him to skid turn in very tight turning circle.

Plus point is with this combo he turns very easily on carpet too.

"Red Baron" at 10 oclock ......angels at 12

I made a custom "pit-Stop" base to raise him of the floor and there was a lot of tune_ing of the cup detect motor speed routines,

My first task was to work out a way that Mr.Tidy could pick up a cup - locate a second cup of the correct colour and place it inside the first cup, however the RGB sensor was connected to his arm and gripper mechanism, which meant that once he had picked up the first cup his RGB sensor was blocked by the actual cup..........what to do !!!.......

As Mr.Tidy was really very tidy when he arrived (tight neat wiring, cable ties etcetc) it took me 5 snips of the wire cutters an a couple blobs of Hot glue to attach th RGB sensor to the lower platform .........meaning that when he had picked up the first cup his RGB sensor was free to check the colour of the next cup.

Then a bit of modification to the Metal Grippers as the back end was interfering with the cup pickup,

it also gave me the opportunity to "Buff Up" the metal work with dremel and brasso "Shine_ing"

Here you can also see a grey cable connected to a micro switch , this acts as a limit switch to synchronise the gripper to the open position.

I "Veggie-Burgered" the Motor Supression caps as i was picking up noise on the encoders, basically a capacitor across the coil - then one cap from plus terminal to casing of motor - then one cap from minus terminal to casing of motor - a "Neato-Combo" .

With all these mods i was then able to start the profitable and rewarding process of programming it.

Picking up a cup you may think is easy - well in theory yes but in practice there is a lot behind the scenes.

Problems for picking up cup :-

  1. Finding the Cup
  2. Dont fall into the trap of picking up thin chair legs etcetc (ask OddBot re chair legs)
  3. Is the Cup the correct colour
  4. Is the Cup close enough to grip
  5. Is what you are looking at a wall and not a Cup
  6. How much pressure (Grip) do you need for firm hold
  7. At what height shall it pick the cup up and also how deep to lower it again.

Many,many variables to deal with so installed 4 Virtual potentiometers, allowing me to adjust values "on the fly" which saved me a lot of time - downloading to the arduino does not take much time but it becomes an issue when you are pressed for time "there are customers out in there them hills".

So when the value is calibrated with the pot. then a fixed value can be declared in the setup, freeing up the pot. for next variable.

One pot was permanently wired to the speed control, that one was the best - man can this thing fly, i did not even try it at its max speed coz it would have been impossible to catch.

Many candle light hours passed by with tweaking and resetting and cup stacking........ and of course frustration and hair-pulling, i knew OddBot had a lot on his plate ......so i only feed him the occasional "Help in sinking too" PM.

As the project was still "Hush-Hush" it was all very exciting at the same time.......... (did anyone notice i was quiet over the last few months)

On each corner of Mr.Tidy is an ir detector for side and rear obstacle detection, When these are activeted via software it also lights sexy powder blue Leds the like of i have never seen before, and give a good indication when something is detected.

Here is a time-lapse of him avoiding a cup (this time)

The cup detect routine took quite a few versions to get the general swing of deciding whether or not something was a cup or wall or irrelavent chair-leg scenario.

The 4 front sensors (compound eye) have a good range, when two adjacent detectors detect something then its assumed that its a cup possibility, then the fine tune and home in routines ensure a near to perfect line up, at the same time he check the colour of the object .

When close enough aand the colour is correct Mr.Tidy drops his arm with gripper open ready to grab cup.

At first the grip routine was grabbing the cup using only the encoders in the gripper its self, however the gripper motor kept stalling due to miss grip  - so the solution was to combine the encoder with the "current measurement circuit" on the gripper motor, ie whilst gripping a cup the current in the motor raises (ie stall) so you can use the current as a trip value (so your wine glasses dont get crushed)

60 versions later the Goal was acheived - Autonomous mode and the ability to pick up and stack cups into tidy piles..........

..........Sad time for me as i knew that my time with Mr.Tidy was over, he has now gone back to China to intergrate some of my proposed changes.....

Impression :- He is one "Humdinger" and a fantastic platform to work with.

Thanks OddBot for allowing him a work-holiday in Switzerland - its was real fun to have him around.


UPDATE 30.12.2010 :- Look who is in Switzerland ..... not the original.... but the clone

Yes at long last  Mr.Tidy has landed on my door in its production form.

Well Packed

In three bits plus cd with software guide and pack of connecting cables.

My First Impression "Shine-ing"..............

Now its time to dig out the cups.....or better still buy some extra different colour cups.........


Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.

Considering that my little creature still has a long way before avoiding hitting stuff, I can only take my hat off for both OddBot's and your work.   

This is awesome! But how does it know when to stop picking up red cups and go pick up blue ones?

It keeps a track of how many of each colour it has collected.

Its possible to block Colours - or reserve colours for other tasks.

I thought about ......first collect all possible red cups then all blue cups - however his current strategy is to collect cup pairs - so tidying up as he goes along - its suprising how quickly the clear up process takes.

ie one future idea is you could have a green cup connected as a recharge station, when the bot grips it (contacts wired to his gripper would contact and recharge him for short time), he knows how low his batteries are anyway.

Its programmed to detect 7 colours Cyan,Green,Blue,Red,Pink,Yellow,White, (and if you want to account for the eight thats.... thin air :-)

But if there is only one blue cup what will it do when it picks it up?

That idea of charging is realy good, i was thinking about something simmilar and i got to some problems so it might help to share it with you (actualy just one, you already have solution for others). What if he saws the green cup from a weird position and grips on both poles of charger?

And why does it sometimes scan the wall for colour?

Its not programmed in yet ........

...... However his Patience/Bordom routine can be timed - then if in your example no blue cup is picked up after 60 seconds then drop it and go find new cups. (-: Mr.Tidy likes to tidy up he gets bored otherwise :-)

Charger is no problem if one gripper finger has a high contact and the other gripper finger a low contact - and on green cup a high positive ring around cup and a low negative ring around the cup - then all is Hunky-dory when he grips the cup. no sparks just electrons in the right direction.

And why does it sometimes scan the wall for colour?

There are 4 front "Eye" sensors , i have made the middle two more sensitive that the outer two (helps with navigation), this means when he sees a wall (or something) for the first time its with his middle two sensors he immediately arms his colour detect - he is still in creep forward mode here - if his two outer infra reds detect during the creep forward (thats 4 irs fired) then he knows it a wall. If its not a wall it gives him a fast way of checking the colour of maybe a cup from a distance -  speeds up his reject wrong colour cup routine.

So that makes sense now, i tought you have some magical program that knows everything xD

Well that is a good solution for charger, mine is a "sit on it" charger so i had to plan something else (i dont build stuff becouse i dont have much money, i just plan it :D)

Can you tell does it matter what kind of IR diode and IR phototransistor i have for eye thingie?

And can you explain how does the colour detection works? Or give me a link to a good explanation so you dont have to tipe much? =)

Btw, if you miss him that much, why dont you make him a brother/sister? =D

You have to invest in good high power IR combo - you would have to ask OddBot which are the best - they are relitively inexpensive anyway.

Colour detect in a nutshell :- its all about reflected light - take one RGB led cluster and one photocell side by side,switch on red led and read the reflected light with the photocell, then do the same for green and blue, then you have three reading telling you how much reflected colour there is (if you shine a blue led at a blue background you get high reading - if you shine a blue led at a red background you get a low reading) - from these readings the colour can be calculated.

I'm glad you found the time to create the videos to match the awesomeness of the bot. I know how labour intensive those can be. I added the third vid to the unofficial Youtube playlist of LMR classics.

Just as a reward for the two of you

heres what happens if you do a google image search for mr tidy

he's got pole position