--
FelixLoew - 13 Jan 2004
The
MarkerDetection 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.
More Documentation
How-To
Usage
Start the
MarkerDetection. You will see if it connects to the
VideoGrabber.
Example: MarkerDetection
Attention: 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.
Testing
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.
--
FelixLoew - 11 Dec 2003