
MovieMaker
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.
Initialize Set ConfidenceLevel to 3 #a group of any actions could be more or less than 16 but I have actions (0-15) Actions: 0=sleep 1=Forward 2=Backward 3=TurnLeft 4=TurnRight 5=Spin Around 6=playExplore 7=LookCenter 8=LookLeft 9=LookRight 10=LookUp 11=LookDown 12=GiveTimeDateDay 13=checkSonars 14=Check4Lifeforms (ScanPIR) 15=Laugh
While navigating:
Generate Unique Random Number (RN) (0-15) choose action (that random number) Read LastMove 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 let lastmove=newmove save status save lastmove
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.
What the Robot will do is that he will react to your algorythm. You are giving him an Environment and sixteen or more actions to preform. You are simply telling him not WHAT to do, but that he MUST do something. HE chooses and decides which action to take by himself. When he makes his choice it will be either a Good choice or a BAD choice. His confidence will be Raised or Lowered with each deciscion that he makes. Over time, he will LEARN much like we do by DOING. After a while, he should exibit Emergent Behavior. Later on, we could make his decisions based on EMOTIONS also to influence his choice. For instance, he may be AFRAID of the Dark , so he will run away from it and seek the light. He may not like HIGH VOLUMES in audio. He may go to somewhere quite to relax. He may run toward you if he is not affraid or he may Avoid you if he doesn't like you. ALL of these choices are UP TO HIM! This way you are giving him FREE AGENCY like our Heavenly Father gave us when we came to the Earth to be tested. HE will choose his own Destiny being a FREE robot, not a Slave.
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.
Good LUCK!
Let me know if YOU are going to accept the Challenge.
That would be just a sub-minutia (spelling?) of AI. It can easily be expanded on in so many ways. You could have a list of "good" actions and a list of "bad" actions rather than a list of mixed, a range scale for good and bad where good is one end, bad the other, to begin with from being "new born" it's a 50/50 split... the more you please him, the bigger the good gets and smaller the bad gets, the more you upset him the bigger the bad gets and smaller the good.
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.
That's a good start but it you'd need to define how a "last move" was "good" or "bad".
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.
Create actions (scripts) for each goal.
Create a variable called something like $AISuccess. Every "Action" can set that variable when it exits/completes
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.
MEL already knows how good the AI software we are using in other club we both are in,i guess trying to bring up a few points about it.
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
that a good point DJ,it seems EZB is getting better and bter each day with good ideas 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
The unit should have a database. That is related to one of the questions I asked earlier. In the data base it would show something like first thing would be a number, the number of the action. If it was move forward and you move forward, it would be good. If it was move forward and you could NOT move forward, it would be bad. Sometimes the same number could be good or bad. It would be whether you could do the action or not. So, after the number, you would have the rating G/Bad, then maybe a comment. It would be the input of all the sensor in a row, example:
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.
YEP i know everone trying to push it ahead,me maybe more then most,mostly AI witch is my most favorate of any idea for EZB. 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