All you professional programmers. This is a Chalenge to you.
The algorythm below is what I am trying to accomplish on my robot.
It is NOT a program, but just an idea. If this works, we will have not only an autonymous robot, but one that will be able to LEARN and Improve over time.
Anyone is welcome to tackle it. If you succeed, please POST the code.
This should be changed into code and Placed inside your Navigation script.
Set ConfidenceLevel to 3
#a group of any actions could be more or less than 16 but I have actions (0-15)
Generate Unique Random Number (RN) (0-15)
choose action (that random number)
if last move=bad then (confidence level=confidenceLevel -1)
if last move=good then (confidence level equal ConfidenceLevel +1)
if ConfidenceLevel more than 3 then confidenceLevel=3
if ConfidenceLevel less than 0 then confidenceLevel=zero
if confidenceLevel greater than Zero then confidenceLevel=good
if confidenceLevel =zero then goback and generate New RN
and start over at the top
read status of sonars
if status= good then confidenceLevel =(confidenceLevel+1)
if status=good then preform Action
if status=bad then confidencelevel=(confidenceLevel-1)
if status=bad then goback and generate new RN
We would also listen for the word "No!"
if we heard that, Confidencelevel would shrink to Zero
also we listen for the word "GOOD!"
if we heard that, confidencelevel would be equal to 3
This is a very CRUDE representation of this Algorythm, but,
By doing this, the robot could be trained and have More accuracy and Learning. he would be smarter.
He will know Good from Bad. Bad would be like running into something. Good would be clear path, etc.
Hope you understand what I am trying to accomplish. If I were a good programmer, it would have already been done.
Upgrade to ARC Pro
Your robot can be more than a simple automated machine with the power of ARC Pro!
Hope some of you can do this. It would REALLY help the robot to be more human like.
I have been trying this for the last 20 years of robot building. But, I am simply NOT a professional programmer.
For instance, say the Good/Bad (or behaviour) scale is a range from 0 to 99. To begin with any random number from 0 to 49 triggers the good list, anything from 50 to 99 triggers the bad list.
Now, say you play with the robot... program it to be able to play hide and seek or tag or something. You play, he is happy, the good range increases by a set amount (dependant on the activity), causing the random events to be more good than bad.
Say you knock him (throw in tilt sensors, touch sensors etc. I don't know), ignore him for too long, let his battery die too often... that increases the bad scale.
It probably wouldn't be too difficult to do this and when I get more advanced in my builds and more so the programming side and using the SDK etc. I'll certainly be looking to add in some artificial behaviour... I have a lot of AI ideas and brainstorms from years back when I was attempting to program video games, I'll see if I can dig them out.
Within robotics, the concept of A.I. can only be evaluated when the robot is doing something based on a reason. Without a reason, purpose, or goal - there is no intelligence. The concept behind A.I. is to have the robot understand multiple paths to achieve the goal.
1) Define your goals.
- Find red object
- Find a human face
- Ask if anyone is in the room
2) Create actions (scripts) for each goal.
3) Create a variable called something like $AISuccess. Every "Action" can set that variable when it exits/completes
4) Have a master AI script that determines what to do next based on the $AISuccess value
Although, what I just described is how the personality generator runs. But the $AISuccess thingy is hidden. There is no way to set whether it passed or not. The Personality Generator merely prevents too many of the same action from running in sequence.
PS MEL dont say the name DJ will be very mad and may ban you
Best way is use a email if needed,also heard really from DJ he doesnt want any software name metion here,this is what the forum rules are about it (Robots built with other platforms) in forum etiquette.
So i dont bring up the name ever,but i do see many many other posts say about other software and boards like arduino.
So i guess nobody cant bring any info thaey have on AI SOFTWARE OR ANY OTHER TYPE
Not a good idea,but i guess he can make the rules
where is $AIsuccess, cant it be used in a script,you say its hidden
forget that question i see the answer already
Some of the points of RICH is true AI SOFTWARE should have also stuff like battery low recharge me or if he falls help me.
That part is very easy on EZB all you need for low battery circuit is a divider and a zener for protection to AD PORT.
ON tilt best sensor is a gyro
On touching me CAPACITANCE type is one of the best and most you can mount inside the plastic shell
So many many others ,and i beleave that EZB can do it.With many sensors you can add to EZB
4,Center,0, Right,3,Left,0 or something like that. Like I told you, I don't know HOW to do this yet. But, I KNOW it can be done. In the above it would say the c or confidence=0 for center,right=3 so it was high and left=0 so don't turn left.
@D.J. thanks for the advice. Keep it comming, please!
@ Fred, I was happy to see you scored BIG on your last work project. This thread is to push the EZB forward, or at least give it something to think about.
@RichMR2, it is not YOU pleasing him. It is HIM making mistakes and learning from his past to select better options in future deciscions on HIS OWN.
I hope everyone understood what I was trying to say. I cannot take the credit for this concept. It was a combination of David L. Heiserman's "How to build your own Self-Programming robot" and Frank DeCosta's "How to build your own working robot Pet" I sort of mixed those two ideas together.
Both guys have done this and they even show the program. But, it is in Z-80 and 8085 8 bit Assembly code. So , it would have to be converted into a modern day program for modern cpus. Another person was John Baily Blankenship's "Robot Programmer's Bonanza" which he calls it Pain and Pleasure. I called it Good or Bad. It is the CONCEPT that would make it work.
I would LOVE to have thought of this,but I am NOT that Gifted.
AI makes so very real instead of just a toy robot,plus very real emotions
LOVE IS the hardest of all of the emotions there are.
i woulder if EZB can understand other languages,i think it might ,so many here from other countries
*Disclaimer: this code will not work for a spectrometer as discussed, it was only an example. This is also not the proper thread for spectrometer discussion - so do not comment on this regarding spectrometer, there is already a thread open for that discussion. The original thread for spectrometer can be found here: http://www.ez-robot.com/Community/Forum/posts.aspx?threadId=2442
This code is only presented as an example of how to read from a file.
Create a comma separated text file in Excel with the ADC range of each liquid. Then you only need to do something like this...
In your CSV:
1) the first column is the minimum ADC value for the liquid
2) the second column is the maximum ADC value for the liquid
3) the third column is the name of the liquid
Here is an example CSV...
10, 15, Beer
20, 28, Water
30, 45, Oil
66, 80, Hair Gel
90, 95, Banana
120, 160, DJ
170, 185, Milk
190, 210, Vanilla Ice Cream Yummmmmm
Here is the EZ-Script code...
A idea i use is i take a EZB and breadboard or attach sensors or motors or whats you going to use on your robots and then with the ARC try the code,if doesnt work try again and again if still stuck post the code.
Reason to breadboard as i call it sometimes hard to program attached to a robot,but sometimes you do also.
I know maybe most guys here dont have time to work on you code ,not because they dont want too
just too busy working on thier projects.
It is ALL about programming. The only programming I took up in school was Fortran and CoBol. I would loved to have taken up C# and Java and VB and stuff like that.
(My homemade Marti (EZB) is doing so much more than my Qbo EVO Pro which is JUST SITTING THERE like the turtlebot I threw away.)
Fred, do you understand the CONCEPT of the point I was trying to make above?
Marti is working fine, except for Navigation and A.I. Maybe this script will help. who knows.
I guess you are trying to get it be like the AI software we both have from our club (dont mention the name) ,i want the same thing also,
Am i right about this
One main reason going to work on it,but it is a very long list of AI stuff to add from other software
SO it will take awhile to finish it for you and me
AND YES guys will post the code if i am able to make for everyone to use
I always will post all my codes for others to use,i dont see much code sharing on this site.
I see many many robot projects but ALMOST no codes to share ,WHY
Most people who really know how to program well are off making TONS of money enjoying what they do. They stay so busy there is not much time for family. But, BOY, D.J. and his team are Surely GOOD at what they do. And Fast!
I am glad you enjoyed the conversation. Hope that we can all make it fruitful.
I do know about AI ,been testing different AI software for a very long long time ,so far this maybe a good platform to add it too,but there is a lot of programming needed to make a true AI software.
Like the one i am using now no programming is needed,but wont work for EZB
so converting it to EZB AI will take a very long time,SCRIPTING and TXT file does make it a little easy
Also i dont know about the $AIsuccess how it compares to the ones used in AI software i have
since they are using many ,AI values we have are based on emotions ,mood ,random and more,
Maybe i can post a small part of the AI code and see if it can be done.
I think DJ said that the $AIsuccess is only random and ours also has a differents of levels ,like 1,2,3,4 depending on the mood or emotions or random
i guess only DJ can answer it,or make changes if he wants
What DJ was talking about with the $AIsuccess is the personality generator, there's noting stopping anyone from making a different personality generator/AI with different levels etc. Personality generator, at least on first looks, is a basic form of AI based on random numbers picking an action and code to avoid repeating the same thing too many times in a row. It'll work for some applications but those who want more lifelike, more of a freewill for their bots will be disappointed in it... but if you want a robot that advanced you have to put the time and effort in.
Hopping to convert some to EZB CODING
The software i has does almost freewill and more lifelike
Post you email and i will send you a link to the code,so DJ wont be mad,
Then you can take a look at it,it is a very long code like you said thatr AI HAS .
I want to try to use some or most in my favorate board of all time EZB
ATleast i hope it will be about the same or just have to use both systems
THOMAS did make a code to use both together ,but on the his post DJ said no posting
dont know why DJ OBJECTS about it,it uses the EZB
yhmmc>yahoo Dot com.
I meant RICH's email since he like to check out AI like me
Merry Merry Christmas and Happy root beer, I mean NEW YEAR!
Watch out for tommorow the 21 off dec 2012. Supposed to be the end of the world according to some people. I don't believe it. But, it is a good day to watch out for Crazies.
Same to you. thanks for your concern.