Super Droid Bot "Anna" - w/ Learning AI

Thanks for the Kickstarter Suggestion

Thanks for the Kickstarter Suggestion.  I wasn’t familiar with them, not really looking for funding.  For me, these projects are funded with time, not money.  I’ll give it some thought.  Here are a couple of ideas I was toying with.

The first is to open up the server (the language, logic, learned knowledge, and web services) to interested individuals in the hobby community to use as a web service using API keys.  I would open source the android and arduino code to kickstart it.  The idea would be motivated by my desire to increase the use of Android phone / microcontroller combo robots with learning abilities.  I’d like to see more hobbyists able to spend more time on higher level behaviors, and I’d get help making the brains smarter over time.

Second, I see a need and benefit for average people to have an AI like this running on their personal devices.  My wife wants it already…basically it would be a Siri but with a more in depth memory of you and the people in your life, and trainable to learn whatever topics you are into.  Could also be an app for people with alzheimer’s…“What are my grandkids names again?”  I am looking for a name, I have been calling the concept “Personalized AI”.

Sadly, I fear google is going to leave all our little projects in the dust shortly.  It will be great for humanity, but it will mean my hobby won’t feel so cool anymore when I can buy something from amazon for a few hundred that is way better and smarter than I can create.

Thanks again.  Regards, Martin

I am very curious to know

I am very curious to know how everything work together, can you publish a basic plan of your system, also what brand and model devices did you use ? ?

Sorry I left that out

Sorry I left that out, I had all of it in a powerpoint preso and my licence expired on me!  I hate when that happens.  I’ll try to post something when I draw up a replacement.

Anna as J.A.R.V.I.S. ?

Home automation enthusiasts would be very pleased with a disembodied Anna controlling the lights and sprinkler system.

Anna as a chatbot/personal assistant is worth releasing on her own. Brilliant work.

I have been thinking about that

Thanks.  have been thinking about home automation recently, want to get a new hub for home, but can’t decide which one will have the most open APIs, my TV will take IP commands, so I thought I might start with that…“Turn on the game Anna.”…eerily similar to “Open the pod bay doors Hal”.

Its kinda funny, it was an interest in home automation that got me to go the local Radio Shack a little over a year ago, whereby I saw these things called “Arduinos”  that I had never heard of and “Microcontrollers”, which I had heard of but never used.  I made an impulse buy and my life has been different ever since.

I cannot believe how much

I cannot believe how much work you have gotten done on her in the past year.  It is incredible what you have done.  Wow.

Regards,

Bill

Anna as expert system

Since Anna is the most natural and smartest AI chatbot I have seen, the next holy grail of companion robotics for Anna would seem to be as an expert system.

For instance, spring is around the corner and I might like to start a small vegetable garden this year. Could I give Anna access to a pre-paid Visa card and have her order a selection of seeds? If she could suggest planting dates for my growing zone, that would be awesome. Anna would know to ask about my soil type and hours of sunlight my garden area receives per day. Since Anna never forgets, harvest yields, crop rotations for pest control, plant type affinity for companion planting, and continuous measurement of micro climate data would be accumulated from year to year.  Irrigation and liquid fertilizer application would now be in Anna’s domain as an expert system. I have seen the beginnings of photo archives of plant pictures showing symptoms of specific nutrient deficiencies for vision based plant health diagnostics. Backyard gardening is also well documented on the web. Is Anna expected to be able to do research on a defined topic on her own ?

I am now working on a system

I am now working on a system of similair design, which is just a huge advancement over C.A.R.L. I am currently working on the “structure” fo the though process (which your work has helped greatly with), increasing my python skills and the hardware component. I am currently trying to get my hands on as much as I can regarding AIs and mental processes. I just hope that both of us can develop the “AI of our dreams”. :smiley:  

Thanks Bill

Thanks Bill.  In one of the videos Anna said “You don’t get out much do you.”  She was onto something.

Cheers,

Martin

Hope you have a lot of spare time.

Hope you have a lot of spare time.  Its mega rewarding to me.  I’m toying with setting up the AI as a web service that other LMR hobbyists can use by the end of year.  I built mine from the ground up without benefit of doing a lot of reading though, spotting patterns and iterating as I went along.  It probably doesn’t measure up to academic theory at all, but to me it is practical and easy to evolve.

I’m now redesigning and iterating again.  Like you I’m trying to spend more time reading about what’s going on out there by bigger and smarter teams.  I keep hoping for an easy API to IBMs Watson.  I ran into “The Open Cognition Project” the other day, interesting and intelligent but complex.  I did see some parallels with my own work, although I’m using some other techniques I have yet to run into elsewhere.  I am trying to learn what I can from them.  I’m thinking of this as 1 year into a 15+ year effort. 

If you ever want to trade ideas/designs let me know.  Good luck with your endeavor.

Cheers,

Martin

I don’t get out much

I don’t get out much either.  And I have MUCH less to show for that time over the past year than you do!  My 2 bots so far are toys by comparison.  I haven’t posted anything I have done since they don’t really do anything interesting or innovative. 

I noticed in your other posts,you might open source this.  If you do decide to open source this, I could work with you on this.  I am a C# middleware guy by trade, and I thought you had posted elsewhere these are all web services so assume WCF SOAP services for transport.  You might think about the WebApi and making these REST services to lower data overhead - can make it JSON and Java should have a serializer to deal with that on the Android side.  If not, it is a very simple protocol to deconstruct. 

Honestly, you might not want to go that route.  You have something very close to sellable to a company if you want to quit your day job.  Some more spit and polish on your girl (it is only time or less time and more money to get there), and it wouldn’t be hard to imagine many, many areas where she could be used. 

Or just keep playing in your spare time and have fun with her.  You have done some incredible stuff here which can only get better with time.  A year from now, she would be that much more believable…

Regards,

Bill

 

If you are trying to learn

If you are trying to learn about AI, check out some free online classes through Georgia Tech.  They have several on AI and the price is right.  They are going to have some machine learning classes that will go live in April which would be especially applicable.

https://www.udacity.com/courses#!/All

I am doing

https://www.udacity.com/course/cs373

which is taught by Sebastian Thrun who architected the Google Car project.  I am halfway through it, and I think it is excellent although to say I understand it all would be a stretch.

Regards,

Bill

Honestly, every spare moment

Honestly, every spare moment I find myself reading about the human mind, researching proir attempts at strong AIs, and trying to compile that into a “logic”.

Re: Anna as Expert System

First of all, I’ll pass on the compliments to Anna and say a sincere thanks from both of us.  Thanks also for the input.

I think she has far more reasoning and knowledge than typical chatbots, but her actual ability to what chatbots do is just getting started, so she is far behind in the babble department.  Some of those bots on personality forge have tens of thousands of “chatty” requests and pithy responses built up.  Some of them are doing quite well on the Turing tests lately.  Ask them a direct question though and you rarely get an answer with real content.  They are like politicians for the most part, and evade the substance of a question.  Chat is very necessary though to make the dialogue feel human, so I plan on trying to do what the chatbots do a lot more, but with real content, situational memory, personal memory, and long term memory.  I am trying to incorporate what I can from the chatbots though.  On that front, in the last 48 hrs I reengineered the engine to make use of regular expressions for sentence structures wherever needed, just like the chatbots.

I am considering some expert systems ideas but have a different twist on what the next holy grail should be.  I want the bot to be social, and a lot of people/kids just don’t particularly like anyone being too much of an expert around them.  That is why I have only been teaching Anna what a typical human might learn growing up, although she does “lookup” a lot more.  She will act as an expert if asked a direct question, but then try to act like a regular person the rest of the time.

My grail is this…I haven’t ever seen a bot be able to carry on the kind of conversation you would have with a friend/family member you haven’t talked to in some time.  “How is your boy Pete doing?  How is he liking the third grade?, How is your mom doing after her surgery?  How is your dad liking retirement?  Is his golf game improving?”  - That is a holy grail for me, because I feel like it is pre-requisite for humans wanting to relate to bots in the future.  A bot has to use its memory, empathy, and know what is appropriate to ask, and how to listen and react.  Basically, its IQ vs. EQ.  I would like to build an expert system on that…  If you see anything that does that let me know.  I hope I don’t fail miserably.

I think gardening would be doable.  My mother is an expert on that.  Since I do not have a green thumb, I’d rather open up the system to allow other subject matter experts to teach her, once she gets an ability to understand and apply "rules of thumb’ described by humans or put into a website.  She’s far from there yet.

If I do go the expert system route I thought about sports.  There are a lot of sports stats APIs available that are very detailed.  There is enough info there to build an expert system that could form opinions on games and teams and answer questions/give opinions/make picks.  I would love to be able to replace Terry Bradshaw or one of the other football prognosticaters on the various football talk shows (for even 5 minutes), pre-game, half-time reports, etc.  That would be fun and millions of people would notice.  I think some kind of regression analysis / correlation analyzer could analyze the stats, pick what was important to winning/losing in any given game, with some kind of verbal knowledge base for how then to express those viewpoints.   Once again, I think it would take me a year of my spare time to to that, and a lot of other things come first.

If you hadn’t noticed, I have a tendency to write long messages!  Thanks again for your thoughts.  Keep em coming.

Regards,

Martin

Georgia Tech / Udacity classes

Thanks for the recommendation.  I watched all the trailers and read the info.  Very interesting, defintely something I need to do.  Sebastian Thrun is a hero of mine.  He was in the Great Robot Race, the documentary on the Darpa robot car race (watch it on Netflix).  Within 10 secs of him speaking, I said to my wife "My money is totally on this guy to win."

On the classes, I think I might start with the machine learning ones.  I really hope I can make the time.  What would probably happen though is I would get 15 minutes in, I’d get an idea, and then want to drop everything and work on it.  I’ll let you know if I sign up.  Good luck creating your own driving car!

Regards,

Martin

Yes, EQ and demonstrated

Yes, EQ and demonstrated reasoning is what sets Anna apart from chatbots.

I started in automation in the mid-80’s installing welding robots for industrial applications. I tend to revert to a fixed mechanical view of automation systems. Anna seems to have the potential to need a new area of applied AI definined for her.

In any case, add me to your list of people willing to lend a hand in the more commonplace aspects of electro mechanical sub systems and grunt work coding.

"The Great Robot Race" was

"The Great Robot Race" was on PBS, so if anyone has an hour to kill, this is a good way to do it.

via YouTube:

The Great Robot Race

Thanks for the offer.

Thanks for the offer.  I’m having some thought of a 24V powered, 4ft tallish variety that might look something like the Johnny 5.  RT-01 got me inspired to go big on my next build.

I agree with your input…

I agree with your input…I’m doing a re-organization now after starting an “Intro to AI” class online, taking a step back and reassessing my code from a software architecture standpoint.  I have a lot of ideas for simplifying the flow and making it more flexible and powerful at the same time.  I’m also renaming things to be more in-line with academic terminology on AI…like my Responders are now “Agents”.  I’m also preparing to move to having a given request be able to run on multiple threads, since each Agent is mostly independent of all other agents.  

You mentioned JSON…I’ve been using a lot of JSON web services, so I can see that it would be nice to serve up my own web service as JSON or JSONP.

I’m trying to move the code in a direction where multiple bots could use the service while the owners of those bots would be able to customize which agents would run for which bots (and how they prioritize) through a web or windows app, or on the fly at runtime (the bot changing its own agents).  Under this model, an agent could be any chunk of code that people want to run on the server that implements a very simple interface  (not necessarily a language related agent).   An agent could also be a proxy for something running on someone else’s server.  The main thread would basically just run whatever agents are configured for a given bot, wait for them all to finish (think multiple threads) and arbitrate on what behaviors win and get sent back to bot.  I’d probably give people the first 60-100 agents to play with.  This would basically encompass the verbal skills, learning, emotions, motivations, and of course the existing knowledge base.  I’m hoping to come up with a mechanism for people to create, test, and share new agents.  Any bot with web connectivity could then access the service.

I think if I can find a half dozen people with bots that are excited to give it a try, it could be quite a fun project and a lot of new ideas would be generated along the way.

24V chassis

My favorite donor chassis at the moment are old Jazzy electric wheelchairs. Strip off the seat and all the factory electronics.

I’ve had good luck with both Simple-H and Sabertooth dual 25A drivers for this size of chassis. The fly in the ointment for this setup are the wheel encoders.  The Mini-Jazzy has a dual shaft motor that is easy enough to retrofit with an encoder once the electric brake is removed. These 300lb load capacity chassis are often found for less than $100 on Craigslist in my area.

The downside to using wheelchair chassis is they can be rough on the furniture during testing indoors. They are best suited as outdoor robots.