= Control Flow =
'''Please update this if you know better'''
The flow of control through the robot goes something like this (each frame)
1. The Vision object receives a frame
1. Low level vision colour classifies the whole image into the CPlane
1. High level vision runs the blobbing algorithm and then attempts to recognise objects, guided by sanity checks
1. The blob information (size, location etc) is passed to localisation/GPS (FIXME: how?) which updates the world model
1. The selected behavior runs. If it's the Python player:
1. State information is loaded into the shared globals
1. Behavio.processFrame is called by !PyEmbed.cc, which in turn calls {{{Player.player.DecideNextAction}}}, which is routed to the behaviour module specified with [wiki:spip spip]
1. The behaviour writes actions back to shared globals
1. Actions set by the behaviour are sent to actuator control
There is another flow of control through the actuator control object. At fixed intervals OPEN-R asks for joint positions and actuator control provides them
There is a third flow of control in the wireless object. Hopefully this will change soon so I won't document it here.