April 2008
2 posts
Changed state to record distance from object to hand, angle between, and distance from mouth to hand, angle between. Generalise function was incorrect, so have almost written up a new one.
Note: looping schemas problem; new arm indicator; improvements to learning mechanism; etc.
March 2008
13 posts
Found some problems: if nothing changed between state one and state two of a schema it could cause problems so they can no longer be added … other stuff. Can now suck objects as well as hand. Fixed some stuff in the learning mechanism. Things are working better now anyways.
Grabbin' & Relativity
The schema, instead of recording upper and lower arm angles, now records the distance from hand to object [or mouth] and the angle between arm origin to hand and arm origin to object. It all seems to be working quite well, the aim of this was obviously so that the infant can learn to grab ANY object regardless of position (relative to object, rather than with absolute positions). The grabbing is...
Comments
Today was a commenting, tidying, and simplifying day. I want everything to be clean before I start doing the next part. I fixed up some of the main schemas, like Response [lots of random crap in that class for no reason, hashtable of responses, boolean values, wtf?]. Same with some other classes. Moved indicators from mainbody to background. Removed interest rate from schema. MainBody, Processor,...
Changed … lots. Info is in a file called “prolbemoseee.txt” on my desktop. Or is it, “WERONG.txt”. One of those.
Give a little love ...
… and it all comes back to you! I’ve made some changes with functionSix() and functionSeven() regarding storing the schema that the learning mechanism is aiming for at this point and other tweaks in those methods. I’m sort of frightened to see if it has helped at this early hour.
Stupid Face
Todays code changes: removed match angles because it was only called once so moved content to calling method removed all matchEyeAngle, matchArmAngle etc methods in place of one matchValues method. removed getTargetSchemaMatchingEnvironment and getSchemaMatching(state) in place of getschemamatching(state,hastobetarget) removed matchesEnvironment in place of compareStates removed...
Update
The problem appears to have been with delta values. I’ve been using one delta value for fovea, one for eye, and one for arm. However, the same delta value shouldn’t be used to compare one fovea distance with another fovea distance, as should be used to check whether the fovea is over an object or not. I recon if I play around with these values for a while things will start kicking ass....
Tweak
Last night I made some improvements with the algorithm used to detect whether an object is on the line of sight, and tweaked a couple of other things (e.g. movement speed and length of eye). I let it run for a while and it actually seemed to learn what was what … until it started flapping away in a corner somewhere [learned], so todays issue is to sort that out!
:S
I forgot to post last time I worked on the foetus. I’ve added some cool GUI stuff, a brain indicator, text showing the last response, and size of library. I also did some stuff with whether a schema matches one in the library. The fovea works really well in the last video I took, but unfortunately it seems to learn to move the fovea forward to hit the object even if the fovea is beyond the...
always room to improv
I’ve made an improvement just now with the block scattering so they only appear within select regions. Also, I’ve replaced all [I think] references to 1000f with Const.NO_VAL as this looks less obscure. I should make it so that they can’t be knocked beyond that area …
Shpadoinkle
I forgot to post yesterday, but I was just doing some debugging with the eye. I found a great error which I’d overlooked - the cloneSchema method wasn’t cloning the eye angle or fovea distance so that was being lost in the transition. Silly. I had to alter some other methods too - e.g. a method checking for null [1000f] values would return false if any value was null, which was dumb as...
Update
Further work done today on the eye and fovea and the look, stare, focus, fixate mechanism seems to work well now. However, weird behaviour keeps occuring like the eye moving up down up down up down up down infinitely over an area, so further work needs to be done into the learning mechanism. Debugging here I come …
Fovea Shtuff
Today I did some work on the eye and fovea. The eye can now hold a list of items in vision that it finds interesting rather than just one. The eye will look at each one it finds the most interesting as it passes over, which now works fine. The fovea state and response pairs are almost complete. The correct values are being held in the schema for the eye. TODO: state 2 should not include values in...
February 2008
18 posts
Current eye progress.
EPIC WIN.
Awesome eye progress. I kept having StackOverflowException, which meant that I had an infinite loop in my code. The entire learning mechanism is just a giant loop with loads of variables so it was impossible to trace where this loop started and ended. I managed to fix this, it turns out the problem was in the FireSchema method where it called FunctionOne(): I changed it to learningMode = 1 and it...
Progress
As of last night, the eye can now stop and stare at an object while the arm still continues to move about. However, I’ve got a problem where the arm still thinks it’s in the mouth, despite it having been reset -which causes strange things to happpen. I’m not quite sure why this is happening … I need to change the schemas to store the difference in eye angle between the...
Eye Problems
Well, I started programming the eyes today but it didn’t go well. The eyes will stop rotating when looking at an object, but will stick like that. The problem is that the arm needs to continue moving, even though the eyes can’t … which the program isn’t built to like. Also, their are some specifics in the code which mention particular target schemas … and that’s...
THE EYES
Notes from today’s meeting: Start programming the eyes, zomg. ZOMG.
Woops
Hmm, I haven’t posted in a little while - and I can’t really remember exactly what I’ve been doing. I’ve done A LOT: don’t get me wrong, but I don’t know what that was. I guess I did a lot of work towards the learning mechanism, tweaking it and trying to make it work better. Also, making the arm move better by not allowing it to fire schemas that would put it...
Today's Meeting
Notes from today: Create a method for showing the “hand path” graphically from state one to state two of a given schema. Test the learning mechanism from A to B to C, where it already knows B to C, etc. Adapt the learning mechansim to make it work [because, it’s not going to]. It might be useful to adapt the algorithm that takes the delta values into account to use the equation...
Save & Display [sad]
Today, I’ve started both the saving/loading of schemas and displaying schemas from the library. The display seems to work pretty well, but is limited to just showing the arm positions in state 1 and state 2. It was pretty difficult calculating where the arm should be using just the angles, which is something I should include in my report [diagrams etc]. Rather than exporting the schema...
Flattened & Good Times
Today, I managed to remove a LOT of the methods from my code by creating better methods that could cover a few functions. I tweaked the learning mechanism some more … and I think it might actually be working! Holy crap! I need to test it further: and in order to do that, I need to program the ability to tell the robot arm to reposition itself anywhere that I tell it to. I also need to fix...
Mbleh
Well, another day has gone and my robot baby arm still doesn’t work as it should. It is learning things, but not properly … still, one step in the right direction! The current problem lies in finding out whether the “target” has been reached, in two situations - and what that target actually is … and when it should be set. Also, the mouth sucking the hand has some...
Implementizzle
Today, I implemented my written functions as Java. They didn’t work straight away (and still don’t). This has less to do with my flow of logic and more to do with the ancillary methods for finding if a schema is a target schema (… etc), and other little intricacies of DOOM. The project is on track now though, I’m pretty sure I know where it is going wrong currently and...
Method to my madness
Yesterday evening I spent a while going through the learning mechanism written algorithm trying to break it in to smaller functions. I’m pretty happy with what I’ve done, and I recon it might even work. So now, all I need to do is implement that and see what happens … *edit - while I remember, I spent a little while this week creating a project plan which I handed in on Friday.
Debugging and U.I.
I have been debugging this morning to try and work out what my program is doing (and why!). I fixed up a few errors, but more debugging is required. I’m meeting Frank today at 4pm, so I might get the U.I. then. That’ll make things a LOT easier! One major problem I’ve had up to now is that I cannot have while loops as shown in the algorithm. This is because the graphics engine...
Progress
Have made further progress with the learning mechanism, but I had to redo most of it. Technically, everything I wanted is in place, but it doesn’t actually work. So far, it might move the arm a bit … and then just stop. Need to do some debugging to map what exactly the program I’ve written does. Not much :D
Woopah
Woah, I think I might have made some progress with the learning mechanism. At least, parts that weren’t executing at the right times before now … are.
Plan
The first project deliverable, a project plan, is due this Friday, so I’ve started doing that today. I’ve also continued with the learning mechanism but I think I might be wasting my time. I need to sit down with a pen and paper and work out how everything will fit together before I do anything else. I thought I could maybe handle the learning mechanism in one place, but there will...
Learning Mechanism
Today I started programming the learning mechanism, based on Frank’s notes. I’ve gotten tremendously lost, so will start again after dinner. I think what I’ll do is try and “trim the fat” of Frank’s algorithm so that it can only learn some really simple things, and then I can add to that later. I trimmed the algorithm a bit, and tried to put it into Java. It has...
January 2008
3 posts
Morphing Fovea
This morning I managed to get the Fovea to move backwards and forwards based on the schemas being fired. I ended up doing it by physically changing the geometry of the shape as the fovea gets forced forward, in order to maintain the same axis of rotation. It works fine, so I’m happy!
Before Now
I had my first proper meeting with Frank last Friday, and started programming on Monday. I was given the task of getting the eyes to move via schemas and to create a fovea which will also move within the field of vision. On Monday, I managed to get the eye “field of vision” to rotate based on the appropriate schema being called. It took quite a while because I’m still getting...