PDA

View Full Version : Project Concept----ideas?



Redhammer
12-05-2009, 01:28 AM
Hello,

First, let me say thanks for reading this long winded post.

I have been reading (rather lackadaisically) about robotics and AI for the few months, and am ready to get down to learning enough to do something useful, but am still looking for some validation on what to learn and so on. Here is the project concept (please excuse massive niavete)-

Dream product:


I would like a PC that does the following-

Recognizes me when I get within range of it, either by visual recognition software or RFID.
Has some speech recognition ability (at least to predfined commands, i.e. "Play Music" or "What time is it")

I think that some kind of database created by a 100-200 question questionaire providing a "profile" for voice patterning, interests, preferences, etc so it can "know" a person.
Giving it some personality by assigning some variables to its responses to imitate quirks and attitude would be cool too.

Can web crawl and suggest news, etc that I may like based on my questionaire.

It could "learn" by adjusting the frequency of times it presents something by the times I agree to hear something that it finds from the web.

Possibly, even "discover" new topics of interest by cataloging words that appear near words/topics I like.


Robotic desk top buddy-

I would like to create a robot for my smart PC, to give the PC more "character" and to place sensors.

I'm thinking something simple, like this-
http://t0.gstatic.com/images?q=tbn:M_qgyW1xJ7bY9M:http://wwwdelivery.superstock.com/WI/223/1491/PreviewComp/SuperStock_1491R-1040108.jpg (http://images.google.com/imgres?imgurl=http://wwwdelivery.superstock.com/WI/223/1491/PreviewComp/SuperStock_1491R-1040108.jpg&imgrefurl=http://www.superstock.com/stock-photos-images/1491R-1040108&usg=__puhlJPH7J3uIqY7qJS5FIYs-RBI=&h=350&w=280&sz=33&hl=en&start=13&um=1&itbs=1&tbnid=M_qgyW1xJ7bY9M:&tbnh=120&tbnw=96&prev=/images%3Fq%3Dhinged%2Bdesk%2Blamp%26hl%3Den%26safe %3Doff%26rls%3Dcom.microsoft:en-us%26sa%3DN%26um%3D1)
except for some servos at the joints, and a "face" with sensors (vision, Thermal?), speaker, and maybe even an LCD for programmed expressions. I would like it to be able to follow motion (track people as they walk around the room) and track sounds too.

It would be great it I programmed physical reactions to things people say to it, or to freak out the cats.:veryhappy:


Anyway here are my questions-


Am I crazy?
Since it seems that much of my project deals with the programming of an "if you hear this, then do/get/say this" I am trying to determine which programming language I should start with. From reading many posts, I am leaning towards something in the C family (C#?). My concerns are with the whole "Microsoft big brother thing", I mean Robotics studio looks cool, and the .net system looks really robust, but do I want to be trapped into proprietary langueages? Should I care?
Are there languages or software that would allow for easy (read: beginners) integration of facial recognition, or speech to text & text to speech?
VB, C++, or C# for easy to 'get into', but still robust enough to keep me going? or
Do they all use the same ( I mean like 70-80%) of the same Class/method items that learning one of them will give me a basic understanding of them all.
Thanks everyone for the contributions you make to these forums, you're what makes the internet cool!

-Jonathan

Adrenalynn
12-05-2009, 03:45 AM
Hi There,

Naw, you're not crazy - just maybe a touch unrealistic for where technology is today.

But just because no one's done the topic justice yet doesn't mean you won't be the one to do it!

C# has almost nothing to do with the "C Family" other than having a C in the name - kinda like Javascript and Java share only the "Java-Name-Thing"....

Regardless, pick a language and spend the next year or two really pushing to learn it inside and out. Then revisit the topic and see what you think then. It doesn't really matter what language, whatever you pick once you know it you'll figure out that you need something else - and learn it too. :)

As far as the state of the art for what you're trying to do, have a search for A.L.I.C.E.

Adam
12-05-2009, 07:44 AM
My opinion is that C# is a good choice for PC-based robotics. What is your level of programming experience?

I personally would say that the C# syntax is definitely in the "C family", but I don't want the thread to become about this. :veryhappy:

There is speech recognition technology built into .NET. It's easy to use - just Google it. You can use Phidgets to do some of the other stuff you talk about.

RoboRealm is a popular PC vision program that is easy to integrate with C#. I can give you code if you want. However, it does not have face recognition. You will probably have to use OpenCV; don't expect it to be easy to get face recognition working.

My advice would be to not start with the "recognition" part as your first goal. Do some of the easier things that will give you more instant gratification, then come back to the harder stuff once you really get rolling.

sam
12-05-2009, 09:10 AM
Check this out at about 5 minute 40 sec.

http://www.youtube.com/watch?v=xtxZY_XO8pM&feature=player_embedded#

It has face recognition, object recognition (put an Tylenol box and she will say "Tylenol, for pain relief"). She can read the news paper and answer questions.

It's really impressive to see in real, but I think the guy is really advanced in programing. It might take a while to get there. Just wanted to show you something (it doesn't have the form you want) that looks a bit like what you want to do.

I would agree with Adrenalynn, pick a language and learn it well, but I'm no expert.

Sam

darkback2
12-05-2009, 10:26 AM
Making the following suggestion...I don't think should come instead of you learning some sort of programming language, but might come in addition to...

What about a much more low tech solution? Why not try to cobble together things that are already out there. You may not be able to get where you want...and you sure won't learn as much in the short run, but there are plenty of programs out there that can be strung together to do some of what you want to do to some extent.

Web Crawling...I'm at a loss here...mostly because I don't have too much experience with this. The software I use for "programming" can go to websites and enter data in specified fields...but I'm not sure I could get it to really webcrawl...That said, the idea of having software that finds and makes links for you...

Brain (http://www.davidco.com/blogs/david/archives/2005/08/my_brain_with_t.html)
I was friends with the lawyer for the company that made the above software...so...

Here is another link along the same lines. (http://freemind.sourceforge.net/wiki/index.php/Main_Page)

As for the rest of what you want to do check this out. (http://droidworks.org/PCrobotics.aspx) Maybe it won't be perfect...or do as much as you want...which is where you come in, but it will get you started and give you a feel for what is possible.

Finally...Spend a few years working on learning a programming language...pretty much any language will do...but its well worth the work.

Hope this helps.

DB

Adrenalynn
12-05-2009, 01:01 PM
I personally would say that the C# syntax is definitely in the "C family"

I could go on for a thousand pages, I'm sure, but I'll agree there's no use derailing it. I did have to respond though at least briefly...

int* p1, p2, p3; // Yup
int *p1, *p2, *p3; // Nope

Pointers to pointers?

MikeG
12-05-2009, 01:49 PM
Funny... I started to write about managed code vs non managed code; yada yada yada

It's hard not to respond.


VB, C++, or C# for easy to 'get into', but still robust enough to keep me going? or
Do they all use the same ( I mean like 70-80%) of the same Class/method items that learning one of them will give me a basic understanding of them all


.NET uses the .NET framework. C++.NET is a little different beast. I'm sure that VB.NET, C++, or C# will keep you busy for a very very long time. I don't agree that knowing one class or method gives you basic understanding of all classes. Knowing the concept of a class provides basic understanding of all classes.

Adrenalynn
12-05-2009, 03:15 PM
>> I don't agree that knowing one class or method gives you basic understanding of all classes.

Agreed. :)