- 13 Jan 2004
uses the ARToolkit functionality of detecting markers in a single video frame. Therefore it has to be configured with a current set of markers as a first step. This is done by the MarkerConfiguration
, it is responsible for the current configuration. Then it gets video frame out of the shared memory block by the VideoGrabber
and looks for markers (that have been configured before) in it. If a marker has been detected an event is sent to the StateMachine
. The StateMachine
triggers a context change and the MarkerDetection
gets configured according to the new context. Please have a look at my thesis, theres a sequences diagram showing the certain temporary dependencies between these services.
Needs & Abilities
As stated in the MarkerDetection.xml
file, the service has the following Needs and Abilities.
- Ability: pushPatternString type="PatternData"
This ability allows that a connection service is able to supply pattern data for the MarkerDetection
. As I have mentioned the MarkerDetection
has to be configured first. This is done by the MarkerConfiguration
- Ability: detectMarker type="MarkerID"
Any service connected to this ability receives an event when a marker has been detected.
- Need: readHeadCameraData type="CameraData"
Of course a video frame is needed to look after markers. The service gets the image via shared memory provided by the VideoGrabber
Interaction with other Services
The video frame is provided by the VideoGrabber
via shared memory.
The configuration with a set of current markers is done by the MarkerConfiguration
If a marker has been detected an event is sent to the StateMachine
Start the MarkerDetection
. You will see if it connects to the VideoGrabber
Note that the MarkerDetection
has to be configured first. In order not to have a complex set up just alter the sources code and load markers form a certain file.
Start the VideoGrabber
, alter the MarkerDetection
that it is configured first. Then try to detect markers with a camera. You will see if the marker has been detected.
- 11 Dec 2003