Let's Make Robots!

Mr. Tidy

Picks up emties after a party
Mr._Tidy_Schematic.jpg476.68 KB

This is Mr. Tidy, his job is to pick up bottles and glasses after a party and put them in a tidy pile.The third video shows him picking up his first can.

There are four of my IR obstacle detectors, one on each corner that will be angled downward to detect cliffs as well as walls. The IR sensors share a common analog input so switching the IR LEDs one at a time is required to read individual corners. These outputs also drive 4 normal LEDs for visible detection of opperation. When the outputs change to inputs, 4 micro switches used for monitoring the arm / gripper position can be read. These switches will only monitor the limits of travel for the arm / gripper.

The gripper is fitted with an RGB LED and an LDR to form a colour sensing "Amander LDR". By reading the LDR when different colours are lit the robot can determine the colour of the object being picked up. This sensor will be angled downward to read the colour of the floor as well.
A conductive foam pressure sensor is used to determine how hard the robot is gripping an object. 

Recharging will occur when the robot reaches a docking station. Electrical connections being made much like a dodgem car with charge wiskers at the top and a ground strap underneath. The docking station has an IR LED sending out an IR signal. This is detected by an IR reciever when the robot is facing the station. A voltage divider reduces the battery voltage to a safe level to be read by an analog input.

The motors are driven by a L298N. Since this chip can only drive two motors, 2x DPDT relays are used to select between the drive motors and the arm / gripper motors. PWM is used to control the speed / power of the motors. A speaker has been added so that the robot can call for assistance if it runs into trouble.

Click on the schematic for a larger image.




 I've had to gear the arm down further to lift my heaviest Guiness glass but now the gripper isn't strong enough. You can see in the "arm test" video that the gripper is quite fast so I think I'll need to gear it down as well. At this stage I am waiting on parts to arrive and then I can start building the circuitry.


 I geared the gripper motor down 3:1. Now it is strong enough to pick up my biggest glass :D


I've started building my circuit board and fitting Mr. Tidy's arm sensors. The second video shows his touch sensors in action. I've now mounted 3 micro switches, one for when the gripper is fully open and limits for the arm raising and lowering as well as two touch sensors wired in series to give a more noticeable change when the gripper grabs something. When I first tested the pressure sensors the small pinion gear mounted on the gripper gearbox broke off as it was only supaglued on. I had to drill a 1mm hole through the gear and gearbox shaft and glue in a lead from a diode to act as a shear pin. I will place a small resistor in series with the gripper motor to limit stall current when grabing an object.




I've nearly finished Mr. Tidy. All my sensors are mounted and cables connected to the board. I've just got to complete the circuitry and add some LEDs both for indication and decoration. The biggest challenge is making all the parts fit as the grippers gear and cams come almost to the board in some places. I have cables plugging in on both sides of the board. After reading about some test done by jklug80 using a RGB LED and LDR I decided to add calibration trimpots to my board. You can see them in the photo below, mounted upside down at the rear of the PCB.


I had to make mudguards so I would have somewhere to mount my IR obstacle detectors. I have one mounted over each wheel looking forward and down to detect cliffs as well as walls. Since this is the first time I have them sharing a single analog input I'm not sure how well this will work. The outputs used to drive the IR leds are also working as inputs for the micro switches so the code might get a bit tricky here.



 I have finally got Mr. Tidy finished and have begun testing. The third video shows him picking up his first beer can. In the video he was controlled by a TV remote. Next I will make him autonomous.





Set up an Xbee interface for wireless communications between the robot and PC. Can't get programs to download though :(
Read about it in my forum turned blog.





Making Mr. Tidy autonomous is more dificult than I thought. With no rangefinder sensors or servos he is basically a blind man with a white cane. I have manage to get my software to compensate for ambiant IR very nicely by doing a calibration test on powerup. For this reason the robot must be in a clear area with no strong shadows when powering up.

Mr. Tidy is quite heavy with all that steel meccano and 6xAA rechargeables so turning on carpet was always a struggle for him even with tape on the wheels. I have fitted omniwheels on the front which has improved steering considerably.


I am thinking with a minor modification to the gripper Mr. Tidy could become Mr. Artist and hold a paint brush instead. He could identify different pots of paint from a distance using multiple IR beacons, each sending a different code to identify the colour. Up close the colour sensing Amanda LDR could be used as well. Just tape a large sheet of paper on the ground and use CTC's folding fences for robots to keep the little bugger from painting the hallway :D




Well Mr. Tidy has gone lame after stripping a gear. I think the weight of the arm in combination with turning on carpet was just too much for him. For now I am putting this project on hold. I will resume in China. I did overcome the problem of him running into everything by increasing the range of my IR sensors. This was easily done just by connecting another IR phototransistor in parallel with the first and increased the detection range to 15cm-20cm (6-8 inches) depending on the colour of the object and the angle.


Here is a sneak preview of the new "Mr. Tidy". All surface mount components with 4x FET "H" bridges and multiplexed IO.




Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.
Thanks Rik, I always try to explain how I did what I did in case any one else wants to try. It's probably a good thing considering more of my designs are being made into products now.

But I am stil able to vote directly for the project, without posting a comment. What gives? Our LMR Drupal software is not perfect?! How is that possible?

Is it true that I can vote for each project twice? Does this robot deserve ten out of ten stars?

Nice robot,

you did alot of things to it and I think it is modified more then with the other robot enteries.


Originally I did no modifications but now I am not in the contest I took a few liberties.

I did have the original 3 battery holder and it can be seen in earlier photos with another 3 battery holder on top. The single 6 battery holder was just neater. I tried the omni wheels because of the weight of the robot. It just puts less strain on the geartrain.

The arm just bolts on where the bumper goes using the same nuts and bolts.


He is looking B-e-a-u-t-i-f-u-l man - ready to work not only in the bar at night but also as artist in the day - there is no rest for the innovative. .............

It just goes to prove that the chassis of Mr.Basic is actual-ly quite a good choice - all it needs is a differential gearbox and Bingo - all our skid streer carpet - rubbermat turning problems will be over......... plus finer control to boot....

I have seen you are pwm-ing the enable pins, what settings are used for pwm?

I have set the PWM for easy duty cycle calculation. To generate 50% duty cycle I use pwmout 1,249,500. At this setting you get a frequency of 16KHz when the clock is at 16MHz.

Unfortunately this frequency is really too high for efficent PWM of these motors. I had to drop the clock down to 250Khz (setfreq k250) before I got good torque at duty cycles of 40%. Of course at this frequency the processing speed and reaction time is pathetic.

At this point in time I am leaving my clock frequency at 16MHz and just driving my motors between 80%-100% duty cycle. The biggest down side is that the L298N gets hotter and the batteries go flat quicker.

At a later date I will try to vary my clock frequency within the program so that it runs at low frequencies (maybe 1MHz) for driving motors and changes to high speeds for serial comunications and IR receiver opperation.

Your mr.tidy moves like the wind (do i detect right vear or is that intentional :-)

I found also these motors have a tendency to over-run or maybe its the heavy chassis . its like you have to send a quick reverse power blip to the motor just to stop it. (or maybe short the motor contacts out after release and do it electromagnetic braking style)

Yes he does veer a bit, I need to experiment with the PWM to correct that.

I agree about the braking, this was only the first attempt. because of the way I have the L298N configured I can use electronic braking where both sides of the "H" bridge are tied to the positive rail and even vary that braking with PWM but I agree some reverse may be needed.


That last video of him so looks to me like a big angry bull ant running around your livingroom.

Not that i've ever stirred up a nest or anything :P 

great work OddBot