Author
Topic: Purposed First Robot Plan (Read 2101 times)

I've always looked at robots and wanted to build one. When I look at them I've always viewed them as much about their technological side as their sociological side. I want to build a robot that has a personality and can interact with people. I work in IT and have programmed in a few different languages(python, java, c, VBA, and bash), so I'm comfortable with the programming side of it. I also have done a fair bit of soldering, however, I'd say I'm pretty much a newbie to the robotics side.

Here is my project proposal, please let me what you think. The first stage is basically to get the robot "going".

I want to use a SheevaPlug as the brains. I am considering using a NSLU2 as well, but I'm not sure yet. I am sure it will be one of these two devices. I figured I'd then install debian on it. The next step is to find a battery to use for these. I am thinking I can use a powerwheels 6v battery. Is this too heavy?

Next, I'd build the frame out of [urlhttp://www.budgetrobotics.com/shop/?cart=775829&cat=103&]PVC[/url] and plexiglass. I want to people to be able to look inside and see how it works. I want this to be a 4 wheeled device, but I'm not sure exactly to interface the servos. Can I do this with USB?

I would then build two 128x64charcter LCD's into the device. The LCD's would then be used for input (keyboard) and output (from device). I would also control the device from the keyboard.

I haven't done a ton of research on this project, and this hardware isn't set in stone. There are a lot of neat things to do on the linux side of this such as run a webserver and interface that with the hardware.

Do you think this is a good beginning project? I know it's a bit more advanced than what most people start with, but I think it's relatively simple stuff. Building the USB controlled servos part might be the most complicated and then getting it all to interface in linux will be a challenge. Do you have any advice for this project? What things should I be careful of? Any tips or places to buy/get parts?

as for your battery, would this be for locomotion or powering electronics? for locomotion it should be fine as most servos run off 4V8-7V2 but for the electronics... you *may* require a higher voltage if you need regulated power.

for a base material, i think plexiglass is a great choice! it looks great, its not too hard to machine and its relatively strong. as for interfacing the servos, i don't entirely understand the sheevaplug and what it does so i cant really help you... if it is like a pc you could use a phidgets board but im not too sure. if the sheevaplug has usb capability you could use a phidgets servo controller: http://www.roborealm.com/help/Phidgets.php

i think its a great beginner project, just make sure you are able to do it. too many people new to this field try to attempt a project way over their head and then give up on robotics all together when they fail...don't be afraid to ask us any questions you may have.

tip one: don't buy the first thing you see on a pretty site covered with robot pictures... shop around and look for good deals...tip two: plan everything! make sure to draw up plenty of cads and make documentation (we like pictures here) it will help you later on...

just a side question, have you considered using a laptop as the "brain"? that way you could follow airman00's design for his butler robot http://www.societyofrobots.com/member_tutorials/node/140 and have some idea of how things should go...anyhoo... bye for now. i wish you the best of luck

as for your battery, would this be for locomotion or powering electronics? for locomotion it should be fine as most servos run off 4V8-7V2 but for the electronics... you *may* require a higher voltage if you need regulated power.

It would actually be for both. I thought about this early today. The Sheeva plug uses 5v to power it self and the USB device to drive the servos should interface with that well.

The neat thing about the sheeva plug is that I can program for it on my desktop/laptop etc and build it all out before building the device. It will run debian and I can throw that on an old laptop and basically have the system built before having to buy the case/SheevaPlug.

I'll probably write up a tutorial as I go along documenting everything. I'll even release the source code for it all probably.

You're right about not buying the first thing you see. I worked on a project where I built a wireless transmission/receiver system for the company I work for.

my bad about the power requirements, almost all the boards i have built have needed 7V+ to function.if you do decide to make a tutorial be sure to enter the $200 robot contest http://www.societyofrobots.com/free_robot_contest.shtml to win yourself something nice i know i will

I have been watching the Sheevaplug and hoping that someone will do something interesting with this soon. the phidget controller smash mentioned has linux support from kernel 2.4 which is good, I'm not sure how you will go with hooking a screen up to it though..

You might look at some single board computers, see robotshop for example. They can run windows/linux. It doesn't have the speed of the sheeva but will be easier to interface and especially power!

owch thats 15W your gonna need a fairly big battery to run this + the servos...are you set on using a sheevaplug itself? there are probably other boards on the market that can do similar but consume less power like the gumstix http://en.wikipedia.org/wiki/Gumstixit can run linux and is very similar to sheevaplug...but, its your choice...

To be honest, I haven't thought much about it. I was thinking I'd set up an ad-hoc wireless network and basically run a webserver on it. Then I'd build a website that would interface with the servos. That's pretty long term though. Like I said before, my ideal robot isn't really about autonomous navigation, but more about the sociological aspect of the way people interact with it. For that there will be a lot of software designing on the Linux side of things and less on the hardware side. It'll have an AI of sorts that can at least play checkers and interact with humans at a basic level.

I have been watching the Sheevaplug and hoping that someone will do something interesting with this soon. the phidget controller smash mentioned has linux support from kernel 2.4 which is good, I'm not sure how you will go with hooking a screen up to it though..

You might look at some single board computers, see robotshop for example. They can run windows/linux. It doesn't have the speed of the sheeva but will be easier to interface and especially power!

Thanks for the link. That looks like a sweet board, but I want to keep the price for the board a little lower than that. You're right on the speed though, but I would think anything over 300mhz would be adequate for what I want to do. The power consumption on that board is awesome though. The one thing that would be neat to do with the robot though would be to have a WIFI network cracker. Basically it would roam about the Neighbor hood cracking WEP and WPA networks. You'd want a decent CPU for that!

owch thats 15W your gonna need a fairly big battery to run this + the servos...are you set on using a sheevaplug itself? there are probably other boards on the market that can do similar but consume less power like the gumstix http://en.wikipedia.org/wiki/Gumstixit can run linux and is very similar to sheevaplug...but, its your choice...

No, I"m not all that attached to the sheevaplug at all. Would http://battstore.stores.yahoo.net/powwheelbat6.html work for a battery? That should give me 3 hours of battery life at least right? They are cheap so I could just swap them out! I actually have about 5 of them just sitting around.

Thanks so much for all the help and critiques. It's so awesome to have someone to help you think through a project like this!

I'm pretty sure the ones I have are 6volts at 12Amp Hours or so. They are still out at work, but basically it's in that neighborhood. Either way they should be sufficient. I ran the numbers on it and got 4.5 hours or so, but I figured I'd round down for servos, USB/wifi adapters, etc, etc.

The web server is more of a control mechanism than anything. I basically want the robot to be able to:

1. Relay images back to my web browser via ad-hoc wireless network.2. Play checkers against humans (Display on the screen a checkers board and checkers peices) and learn from each match. Perhaps even 2 person texas holdém. 3. Build an AI mechnisim for human interaction. Including personalities, dealing with basic human interaction like greetings, ansewering questions, telling life story. Also, it'd be interesting to to use the robot as a pick up line tester. See which pick up lines people respond to and which ones they laugh at or just walk away from. 4. Be able to look up basic facts, figures, numbers, weather, scores, etc if it has an internet connection. 5. Explore doing voice rendering and text translation of commands.6. Have an option to do on the spot wifi hacking or maybe have a built in network sniffer that displays passwords like the Wall of Shame at defcon.

These are some of things I'd like to do with it. A lot of this may need to be custom coded and so this project will take a while, but I think it has really interesting implications.

for most of those application i HIGHLY recommend video processing... you could use roborealm with a webcam type thing... there are probably a few people out there who have made a checkers game with piece recognition.

Quote

1. Relay images back to my web browser via ad-hoc wireless network.

how do you mean? like send the current vision back to your pc via a wireless network/interweb connection?

Quote

2. Play checkers against humans (Display on the screen a checkers board and checkers peices) and learn from each match. Perhaps even 2 person texas holdém.

this could be done with card recognition for the holdem and for the checkers a simple blob tracking algo may work by adding every piece as a blob and tracking where it moves. do you mean physical game or on a screen?

Quote

3. Build an AI mechnisim for human interaction. Including personalities, dealing with basic human interaction like greetings, ansewering questions, telling life story. Also, it'd be interesting to to use the robot as a pick up line tester. See which pick up lines people respond to and which ones they laugh at or just walk away from.

i can just imagine what a girls reaction would be to a robot coming up to her and using a pickup line XDhave a look at airman00's butler robot, i think it uses text to speech software in vista.

Quote

4. Be able to look up basic facts, figures, numbers, weather, scores, etc if it has an internet connection.

this wouldn't be too hard if you could get the figure downloaded into a text document...

Quote

5. Explore doing voice rendering and text translation of commands.

airman00's butler robot takes in voice commands and executes certain actions such as "chives, pour me a drink" and chives will do so.

Quote

6. Have an option to do on the spot wifi hacking or maybe have a built in network sniffer that displays passwords like the Wall of Shame at defcon.

Basically it would roam about the Neighbor hood cracking WEP and WPA networks. You'd want a decent CPU for that!

Illegal much Also its not really the CPU power you need, its more about collecting packets for a decent amount of time. The actual cracking doesn't take too long really. Not that I know that.

From what you seem to want to do you want an actual computer for this, I think that as cool as the SheevaPlug is it may not be the best option for this. A netbook/notebook or old desktop is probably going to be better for what you are doing, netbook is cheaper than laptop with longer battery life so its probably what I would go with. A 1.6 Ghz netbook would more more than adequate for this, look at eeebuntu or similar if you go down that path.

The single board computer I sent was just an example of the many that are out there, there are some for cheaper and some more expensive, have a look around!

Collecting packets and cracking the password as far as I know isn't illegal. It depends on the type of attack, but you're right in general it doesn't take much CPU unless you're forced to do a brute force attack.

I'm a bit confused why you think it is bad application. Part of it is size, which is an advantage over a netbook/laptop, but they are basically the equivalent as far as specs go when considering the application.

SmAsh:

All of it would be displayed on the LCD. There would be no physical cards or checkers boards.

Yeah, send it back to a webbrowser and I could then have a control panel there to manipulate the robot over either the internet or more likely an ad-hoc wifi network.

The last part is more of a Nerd Factor for when I bring it to someone's house. "Hey, in 5 minutes I have your WEP key" and then show the Wall of Shame at the end of the night after it's collected any passwords.

I'm a bit confused why you think it is bad application. Part of it is size, which is an advantage over a netbook/laptop, but they are basically the equivalent as far as specs go when considering the application.

Which to me sounds exactly like a laptop! The sheeva can do all of these things however it only has 2 USB & 1 RJ45. so putting all of these peripherals on it sounds like a ridiculous amount of work. Also having to change batteries sounds like even more hard work when you can simply plug a laptop into the wall keep going if it goes flat.

Granted you only pay $50 for the sheeva but when you buy the rest of the stuff it will add up too.

I don't want to turn you away from using the sheeva in general, I just believe the project you are describing is more suited to an actual computer.

http://www.eeebuntu.org/ is a link to a ubuntu distribution tailored to the EEEPC and other netbooks if you were interested in the Linux route (They way of happiness and rainbows!)I've never used this distro but I am a big fan of Ubuntu which it's based on.