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
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
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
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
The ability has two additional attributes,
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
ThingType attributes, the ManualTracker may get reconnected to other services.
Compile it. Run it.
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
in the ManualTracker directory. This creates an application called
ManualTracker which can be started on the command line.
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?
It is used like this:
./ManualTracker -Dposition=10,20,30 -DorientationAngle=90.0 -DorientationAxis=1,0,0
Known Bugs and Limitations
(-- 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!)
- 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.
- It is not possible to unset the
ThingType attributes, you have to restart the service.
-- MartinWagner - 01 Jul 2003
-- FabianSturm? - 08 Nov 2004