Robot Blog

A blog to keep track of my honours project.

Apr 7

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. 


Apr 5

Note: looping schemas problem; new arm indicator; improvements to learning mechanism; etc.


Apr 1

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. 


Mar 29

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 obviously back in, so that took a bit of work and rejiggling and generalising of some older functions explicitly naming target schemas. The target schemas are now stored in an arraylist instead.

Working out the relative arm stuff was a bit of a bitch, but hey - it seems to be working. Kick ass.

Oh, the eye and fovea both automatically track an object if the arm moves it, which looks cool … 


Mar 26

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, and Background are now in Const.

The activelist is now GONE: why was it ever necessary?

Targetschema is also gone. 


Mar 24

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. 


Mar 23

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 removeMatched(state, state) and fixSchema(state) in place of removeComponents(state,state,bool)

I did some other stuff too, changes in the learning mechanism that I can’t remember what I did. I think I found a couple of little problems and added some tweaks. 

The eye and fovea still seem to be generating some strange results … schemas appearing far away from the target, and at random points, some disappearing after a length of time.

Tomorrow’s the day. 


Mar 19

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.

Fixed a problem with the fovea moving slower as it was further away from the eye. It turns out the problem is that the fovea mass increases as it moves out, and therefore the constant force wasn’t enough to move it at the right pace. I’ve fixed this by fixing the acceleration and not the force (F = ma).

Rewrote the equals() and contains() methods for a Response, State, Schema, and some other things as the standard methods wouldn’t work correctly. 

Added a visual eye meter and fovea meter, and breakdown of library contents on screen too. 


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! 


Page 1 of 4