ManualTracker
This service provides
PoseData that can be controlled by a GUI. The GUI looks as follows:
All floating point parameters of
PoseData can be either typed or set by a slider. The sliders' ranges can be adjusted by setting
min and
max values.
Position is straightforward, orientation is set as a rotation axis described by a (x, y, z) vector and an angle that can be set using a spinbox. The rotation is then transformed and sent as a standard DWARF unit quaternion.
The Update Rate can be set in Hz in a separate field. The semantics are as follows:
rate > 0: the rate
PoseData events are sent in Hz
rate = 0: do not send any
PoseData events
rate < 0: send as many
PoseData events as possible. This is fun.
In addition, you can check the
Immediate Update checkbox or the entry
Immediate Update in the
Control menu to send a
PoseData event whenever you change any value in the GUI.
To reset all parameters to the initial values, click the entry
Reset in the
Control menu.
Needs & Abilities
As can be seen in
ManualTracker.xml, the service has a single ability:
To offer ubiquitous services a possibility to recognize the fake
PoseData, the ability carries the attribute
RealData=false
The ability has two additional attributes,
ThingID
and
ThingType
that are initially not set. Once some string is typed into the form, the attributes get set (or changed): The service may then get reconnected to other services with matching needs and predicates.
Interaction with other Services
- Data is sent to all other services interested in. Upon changing the
ThingID
and ThingType
attributes, the ManualTracker may get reconnected to other services.
More Documentation
How-To
Compile it. Run it.
Installation
The ManualTracker depends heavily on the Qt toolkit (version 3 or higher), but no additional libraries are required. If you have a running DWARF installation, do a
make install
in the
ManualTracker directory. This creates an application called ManualTracker
which can be started on the command line.
Testing
Start ManualTracker
, start some service that needs PoseData (for example ServicePoseDataReceiver?). Have fun with ServiceDIVE then.
Command Line Parameter
Three parameters can be used to describe an initial position and orientation of the ManualTracker? position, orientationAngle,orientationAxis
.
It is used like this: ./ManualTracker -Dposition=10,20,30 -DorientationAngle=90.0 -DorientationAxis=1,0,0
Known Bugs and Limitations
- Right now, it is not possible to store the current state.
- Due to threading problems, the framerate set in the ManualTracker is somewhat optimistic, usually you will get just 20 instead of 30 Hz. Just set a higher value to overcome this.
(-- ChristianSandor - 24 Jul 2003: This statement is overoptimistic itself I never got more than 35 Hz, even if I set the update rate to -1 (as fast as possible!). It would be very nice to have a manual tracke emit Pose with 60 Hz to simulate the ART system!)
- It is not possible to unset the
ThingID
and ThingType
attributes, you have to restart the service.
History
-- MartinWagner - 01 Jul 2003
-- FabianSturm? - 08 Nov 2004