United Kingdom
Asked — Edited

Artificial Intelligence

Hoping this will spark a huge discussion on what everyone is looking for when it comes to their robot's AI.

AI is something I've been working on since before I even learned of EZ-Robots. My JARVIS replica from IronMan is coming up to being 3 years old come December and, while not started in ARC, over the last few months I've been porting parts over to ARC and those which are beyond the capabilities of ARC are integrated via Telnet. These include such things as voice controlled media playback, voice activated control of appliances, lights etc. and, well to be honest, far more than I can really explain right now.

Basically, up until now it is entirely built around home automation and automated media acquisition, storage, playback and logging. Recently I have been integrating and porting over parts of it in to ARC and where ARC is not capable of carrying out the actions, integration via Telnet so that ARC (and it's scripts) are aware of everything they need to be aware of (i.e. if media playback starts, EventGhost sends ARC a script command $mediaplayback = 1, when it's finished it sends $mediaplayback = 0 (that's a very simple example, it also sends more info on the media). This will be demonstrated soon by Melvin when I get around to making the video of him knowing what's on TV.

Like I said, so far it's mainly based around Media and Home Automation. What I want to discuss is...

What do you want in your robot's AI?

What do you want him/her to be able to do without human interaction? What do you want him/her to react or respond to? What do you want the AI to enhance? Why do you want AI?

And, for anyone who already has some kind of AI running; What does your AI add to your robot?

Hopefully this will spark up some interesting conversation, get some ideas out there, inspire others (and myself) to push on with the AI and make robots more intelligent:)


ARC Pro

Upgrade to ARC Pro

Unleash your robot's full potential with the cutting-edge features and intuitive programming offered by Synthiam ARC Pro.

Belgium
#91  

Hmmm, looks like sarcasm to me.... confused Well, I think Rich can afford it every now and then.

#93  

I just stumbled across this thread. Serendipity, I think, as I've been trying to determine what the best AI engine would be for my robot.

So, to date, what's the most reasonable choice of AI to incorporate into EZB? I have been fooling around with the HAL program on and off for some time; but it appears that there are better choices.

The AI I would like would be a good conversationalist, as well as many of the features mentioned: send a text or email if temperature or humidity change drastically, if an "intruder" is detected, etc; controls some basic home appliance functions (TV, lights), and provide information from internet sources such as Wikipedia and RSS feeds.

What's out there that's available to me?

WP

#94  

@WarPig I would view some of those tasks as separate but I suppose they could all be combined. Rich has ARC running both a mobile robot and a home automation setup, so it is possible.

For conversation I would imagine the PandoraBots option in ARC would be a good choice. From what you are describing I personally would not call those functions artificial intelligence. Those items like send an email when conditions are meet or turn on and off things in the house could be done with low level scripts and IF - THEN logic.

Applying intelligences would be something more along the lines of, say an alarm is triggered at 5:45pm, but that is also the time you arrive at home 90% of the time M-F and today is Tuesday...an A.I. system might choice to, rather then send you a text blindly, to wait if you will enter the shut off code, wait a minute to see if it recognizes you or some other options not directly programmed to do so within an IF-THEN script (in my opinion).

I believe intelligence is taking information (memories), making connections with that information (collating, relating it and finding causality), and then using that information to solve problems or set goals.

United Kingdom
#95  

Well actually, I have ARC along with some other programs for my Home Automation setup. I run ARC alongside VoxCommando and EventGhost (plus a few other backends running for automation of downloading TV shows etc.).

PandoraBots for conversation is great however it's better after you spend the time to train the bot and give it some personality other than the default. You would need to sign up for a custom bot but it's free (donations are accepted though and I would urge you to so they can keep providing the service). Recognition is the issue there, you need very good speech recognition for a satisfactory conversation.

Rather than text or email, which could become either costly or annoying (text could cost, email could fill an inbox and bury important emails) I use NotifyMyAndroid. I provided a tutorial on how to use it's API in ARC here. For iOS devices there are other apps and APIs available, the process would be very similar. However email or text alerts could be easy enough with an API or PHP running on a home server etc.

As Justin said, it's just an IF really...

IF($roomtemp > 21)
  HTTPGet($NotificationAPIURL+"High temperature detected")
EndIf

A real world example I use for NotifyMyAndroid (note: My API key has been removed, get your own:))

The notification script which is called by the if, this way means you can use multiple scripts to notify without writing out the notification part each time.

$apikey = "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
# Notify My Android call
HTTPGet("https://www.notifymyandroid.com/publicapi/notify?apikey=" + $apikey + "&application=EZ-Builder&event=" + $event + "&description=" + $description + "&priority=" + $priority + "&url=" + $url)

The the script which monitors for activity (i.e. motion on the EZ-B camera) and, when required, notifies.

:Begin
WaitForChange($CameraIsTracking)
IF($CameraIsTracking = "1")
  # NMA
  # Set event and description for the notification
  $event = "Alert"
  $priority = "1"
  $url = "http://MyDDNSService.com/Rich/Webcam"
  $description = "Intruder Detected"
  # Call the command
  ControlCommand("Notify", ScriptStart)
EndIf
Goto(begin)

For control of home appliances I use EventGhost and Python. I have a USBUIRT and USB RF Transeiver attached to the PC which send and receive IR and RF signals so they can control all remote controlled home appliances i.e. TV, Amp, Cable box, lights etc. This can run along side ARC and talk to ARC via TELNET (via Python).

You can set up PandoraBot to search the internet I believe. Personally I use VoxCommando for this and use payloads to limit the phrases which increases accuracy but I don't see why you couldn't use PandoraBot, or even use a phrase list (a large one granted) and HTTPGet. Pandora would be the best option in ARC.

So it's all doable. Some is quite simple really.

#96  

I found this interesting. Showing how you can have intelligence from very little input and output.

This reminds me of swarm logic in some ways. If you look at how it solved the maze , its really amazing.

What humans can learn from slime