Let's Make Robots!

UPDATE 17/3/13

Edit: If you would like to look at the code and see if you can work out why it doesn't always work, feel free, the code is right here : http://tinyurl.com/d96s3a2

See third video for all details.

Obstacle avoidance code has been majoratively fixed. There are still some problems with it as sometimes it can't choose which way it wants to go when it hits a certain wall, not sure why that is, but I'll keep trying. 

The prototyping shield and breadboard have been removed and replaced with a permanent Freetronics Short Protoshield. All the circuitry is permanent, except for parts that may need to be removed later.

A pyroelectric infrared motion sensor has been added to the front to detect movement. I will be adding in a gaurd mode which will alert you via a tweet message when he detects movement.

Some paint has been added to the bottom and sides to get rid off the mdf look.

An accelerometer has been added to detect whether he is being picked up, or placed down. I added this feature for the presentation I will be giving on monday so hopefully make him easier to control.

 

 


 

UPDATE 8/2/13

L33T's GUI is now up and running! He now has the ability to respond to my voice, talk, face track, and be controlled through keyboard keys.

See below for a snapshot of the GUI:

The second video shows all of it up and running.

The bot is by no means finished though, I still have to work out a permanent solution for the camera, I was thinking of making a head maybe on a pan and tilt mechanism. I also need to find ways of mounting the switches onto the shell and cup holders aswell.

 


 

UPDATE 5/2/13

L33T is now completely running wirelessly, see video, removing the need to mound the netbook on him. The plan ATM  is to transmit serial data via bluetooth to my desktop for computation and then send commands back. The module I am using to give the Arduino bluetooth capabilities is the HC-05 which is readily avaliable off Ebay (mogul recommended this one for the extensive documentation on the web, thanks mogul). The module is powered of the 3V output on the Arduino, the transmit pin on the module is hooked up to the Arduino recieve pin and the transmit pin on the Arduino goes through a voltage divider to the modules receive pin. The next step is to make the GUI in processing and get all the voice recognition up and running.

 


 

Time to make a formal reveal as to the project I am working on, L33T. The idea behind L3 is to be a personal service robot, to help out wherever he can and interact with people in the household, efectively being a robot butler. 

When thinking of what L3 should be and what it should look like I drew a lot of inspiration from R2, even the naming scheme is similar. R2 was able to manevour well in tight situations, he could 'talk' to and understand people, and was capable of performing bulter like tasks. 

The original design of L3 was to be made out of a large rubbish bin, think of those big thigh height green bins, however this was changed for several reasons.

1) The continous rotation servos I had weren't able to provide enough torque to drive the motor forward

2) It was to big to manevour well in the household

3) My sister liked to kick it

The next idea for a chassis was to use a smaller bucket, after a few weeks we, being me and my Dad, couldn't find anything. The next idea was to use checkerplate and construct our own body, this idea was scrapped due to the cost of the checkerplate. All hope was not lost however, one day out shopping we luckily found a plastic tub that would be the perfect size for the body of the bot.

9mm MDF was chosen for the base of the robot as the previous version of the bot we made with the bigger bucket used 6mm and I found it a little to 'weak' for my liking. Tracing the outline of the bucket onto the piece of MDF I cut it out with the jigsaw and thought about how to best tackle the task of construction. I am by no means handy with tools, although I have never cut myself, I rush most things and find it hard to slow down, but under the careful watch of my Dad I completed the task. 

Once the base was cutout it was much easier to work out where things were going to be placed. I divided the circle into quarters and found that it seemed reasonable to put the two drive wheels and two casters at these points.

After some measuring for the size of the wheels and castors I bought I cut out the holes by first drilling some starter holes and then cutting it out with a jigsaw. I took to the computer and worked out how much ground clearance the bot would have and then worked out how high I needed to moung the castors off the base to allow for the 'perfect grip' I wanted. After all of this I was left with this.

The drive wheels were found at the local hobby shop, their intended purpose is to be used on remote control aircraft as they are incredible light weight, however with some modification on a servo horn I was able to screw the wheel onto the servo horn and then attach it to the servo. I thought it seemed necessary to put an axle through the wheel and into the servo as to better support the wheel and servo axle better and prevent wearing down gears etc. I found somethings out in the shed that were perfect, I have no idea what their purpose was or what they are called but they were exactly what I was looking for. These things were placed and washers were put on the end, the other end of this thing was inserted into a bit of timber for added support. 

Wheels in, next step castors, they weren't hard to put it, just screw basically.

All of the screws used were countersunk so I also learn how to countersunk all the screw holes, good stuff.

That ugly bit of orange acrylic has since been replaced by some spacer things.

After all of the big stuff was finished I moved onto the wiring.

After some prototype runs I found I was experiencing a lot of problems with powering the servos. First I was powering each one seperately with 4.8V rechargable packs, didn't have enough speed for my liking. Next up was a 7.2V lipo being regulated back down to 6V, I had some wierd problems with this aswell. I believe the problem was that the regulator was heavily restricting the amount of current being given to the servos. I then just decided to use normal AA's and run each one on a seperate 6V power supply.

 

I got some more soldering skills under my belt as I soldered all the leads to switches and heatshrunk it all. I really wanted a pair of helping hands but I found pegs were just as good.

Attaching the proshield on top and some header pins I connected the servos and power leads up.

I had an OCD moment when hooking everything up. The power leads from the switches are white, brown, red and black, I didn't have black so I improvised.

Problem solvered.

After it was all wired up I mounted the HC-SR04's by drilling some holes in the tube and pushing them through, still need to put a dab of hot glue just to hold them there. 

And thats all the hardware for now.

Originally a netbook was suppose to be mounted inside to take care of all the processing but it didn't fit very well at all so I have decided to buy a bluetooth module and connect the Arduino to the computer via that.

Thanks to mogul for the help choosing which one. I should get that by Wednesday so expect this bot to be finished quite soon.

All of the processing is done on a computer using Processing. I have written several versions and will keep re-writing them until I feel it does its job properly. Once I have finished with it I will release more as to what exactly it does, but for now its all a bit blurry.

The idea is that the robot has lots of modes, all of which are toggled with voice. So far I have, follow my face, movement and patrol (being basic obstacle avoidance). More info will come as I get more into the programming side of things and finalize the body of the robot, thanks for reading.

Comment viewing options

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

When the ultrasonic sensor doesn't receive ping back (max distance > 200) it will output 0. So you need to takes this in to account in your code. I do it like this:

uS = sonar.ping();
    distance = uS / US_ROUNDTRIP_CM;
    if (uS == NO_ECHO) // if the sensor did not get a ping      
    {
      distance = MAX_DISTANCE;      //so the distance must be bigger then the max vaulue of the sensor
    }

chickenparmi's picture

 

I knew of the 0 output when no ping was detected so I used a not equal to 0, will this not work?

 

if(frontDistance < triggerDistance && frontDistance != 0){

    frontClose = true;

  }

  else{

   frontClose = false; 

  }

bdk6's picture

This is really impressive work.  It's very nice.  Very resourceful use of materials.  The name is pretty good, but maybe a little generic.  How about Bowl Bot, or maybe Hamper Scamper, or even Soup Troop.  OK, I'll keep my day job.  Very nice job.

Dickel's picture

I'm working too on a "service robot" project, and see other people working on a similar thing motivates me even more.

chickenparmi's picture

Would like to see yours too! Posting it here keeps me motivated as everyone always has something good to contribute.

Protowrxs's picture

Nice - good to see you have it mounted up and running now. You have done so much background work with Prossessing, face tracking, PC to/from Arduino, and base Arduino work that it will be cool seeing it come all together in this build.

Will be watching how you make your BT link work - I think that is the way to go for small home situations myself but haven't been able to get things working with what I have here.

I'm interested in your mic solution as well. Ideally one would want the mic and speaker to be coming from the robot but not sure how to make that happen myself.

I keep thinking if one could pair a BT headset to the PC and then mount it on the bot that could work? Just an idea and no clue how those work with a PC or if they work like that. I have a Moto H700c I've been playing with on an old XP box but no luck yet.

Keep working and keep us posted! You should have lots of fun with this one.

-Stephen

chickenparmi's picture

Thanks Proto. I think I have done maybe 4 times the amount of work on the processing code then I have on the actual body of the robot, some nites I dream of code...

Im hoping the BT all works well, mogul suggested I use the HC-05 module as that has been nicely documented on here, so if I run into problems I should only shout for the mogul :)

Im acually going to use my old iPhone as the eyes and ears of the robot. Whilst all the processing and arduino data is being transmited via BT the iPhone will be acting as a wireless webcam and mic for the computer using the mobiola app. I have used this before in my easy FPV with smartphone post and it worked good then.

Always have fun making robots :) 

Protowrxs's picture

Had completely forgotten about your FPV post - that sounds like a good solution and idea.

Hardware is easy for the most part - the coding is where it all comes to life! Good luck!

hoff70's picture

The coolest bucket ever!  I too like to find stuff around the house to improvise with.  I also linger in hardware stores looking for future ideas!

kariloy's picture

...so that's not a robot-(upsidedown)-chamberpot? :O 

A bukkit hmm? I guess walrus gonna be mad at chicken when he finds out :/

 

:D