Balance example

45 views
Skip to first unread message

Matthew Lohbihler

unread,
Oct 5, 2012, 4:14:57 PM10/5/12
to ccrg-m...@googlegroups.com
I created my (hinged) pole balancing implementation, and created a repo for it here: https://github.com/mlohbihler/LIDA.balance. Naturally it doesn't really work (i.e. it runs but the agent doesn't actually balance the pole), but i still have work i know i need to to. Still, if anyone is interested, it would be great to get some feedback on how it can be done better.

But i have a question about actuation. The ALife example has discrete actions like turn, move, eat, etc. The balancing app has left and right impulses, but they really should be parameterized so that if the pole is near-upright a small impulse can applied, while if it is falling quickly a large impulse can be used, and everything in between. I'm not sure if the framework supports this sort of thing yet. Some advice would be much appreciated.

Matthew Lohbihler

unread,
Oct 10, 2012, 3:29:54 PM10/10/12
to ccrg-m...@googlegroups.com
-------------------- From Ryan

Regarding the "actions" I have some pointers. In the framework there are Schemes in ProceduralMemory, each of which involve an 'action.' An action is meant to be a high-level command e.g. "grab." If an instantiated Scheme, a Behavior, is selected by the ActionSelection module (e.g. BehaviorNetworkImpl) then the Behavior's 'action' is sent to SensoryMotorMemory. The current, BasicSensoryMotorMemory, contains 'algorithms' (could also call them 'motor plans'), as well as the associations between 'actions' and 'algorithms.' This basic implementation just uses a Map to implement the association. The BasicSensoryMotorMemory Initializer allows such an association to built from an action to a String algorithm. If you want a different Object for the algorithm you'll need a different initializer.

Matthew Lohbihler

unread,
Oct 10, 2012, 3:31:24 PM10/10/12
to ccrg-m...@googlegroups.com
Offline conversation posted here for reference:

-------------------- From Matthew

I see. But i'm still not sure how the motor plan receives its parameterization, i.e. how large of an impulse to apply. Would it decide this for itself with information from the dorsal stream?


-------------------- From Ryan

I thinks it woud be reasonable to implement a "dorsal stream" for a LIDA agent where the SensoryMemory transmits low-level information, e.g. location, to SensoryMotorMemory. This information would then parameterize selected motor plans (algorithms) affecting how their execution unfolds.
Reply all
Reply to author
Forward
0 new messages