Head orientation estimator¶
This package estimates the orientation of the head of people detected by the upper body detector.
For the G4S Y1 deployment¶
For the G4S Y1 deployment, we won’t run the actual estimation, we’ll only run logging code and that’ll run 24/7, but can be paused/resumed by service calls.
Everything is logged into the heads
collection.
Launching¶
Use the g5s launchfile:
roslaunch strands_head_orientation g4s.launch
Directly edit the parameters in the launchfile if they need adapting.
Especially, please check expected_runtime
and modify it if the
expected runtime is not 3 weeks.
There is a hardcoded (by intent) limit of detection and image count to
be logged (g_maxStored*
in
store_detections.cpp) which amounts to
roughly 40Gb and 10Gb, respectively.
Pausing and resuming¶
In total, ~1 CPU core is used by this node and its dependencies. It can be paused and later on resumed if all available power is needed by someone else.
Pausing¶
Send a message of type strands_head_orientation/StopHeadAnalysis
to
the stop_head_analysis
service and all activity will be paused.
The stop
executable in this package does exactly that, see its
source for an example or just execute it with
recording
as parameter:
rosrun strands_head_orientation stop recording
Resuming¶
For resuming from the paused state, send a message of type
strands_head_orientation/StartHeadAnalysis
to the
start_head_analysis
service.
Again, the start
executable and its source can
be helpful:
rosrun strands_head_orientation start recording
Poking¶
You can also check for the current state by sending a message of type
strands_head_orientation/IsHeadAnalysisRunning
to the
status_head_analysis
service.
Yet again, the status
executable and its source
help you:
rosrun strands_head_orientation status recording
Anything below this line can be ignored for the g4s scenario.
Install¶
Please download and extract one of the available model
files
into the models
folder. The larger models will have better
prediction but will run slower. By default:
cd strands_head_orientation/models
wget https://omnomnom.vision.rwth-aachen.de/strands/data/ghmodels-l/model-small.tar.bz2
tar xjv < model-small.tar.bz2
ln -s default-0.1 default
This should create the models/default
link pointing to the
models/default-0.1
folder with a bunch of files.
Run¶
Dependencies¶
This node needs upper_body_detector/upper_body_detector.launch
to
run, which in turn needs
ground_plane_estimation/ground_plane_fixed.launch
. Or just run the
people tracker which starts both of the above.
Parameters¶
queue_size
default = 10: The synchronisation queue sizecamera_namespace
default = /head_xtion: The camera namespace.upper_body_detections
default = /upper_body_detector/detections: The deteced upper bodieshead_ori
default = /head_orientation/head_ori: Publishing an orientation array for each detected upper body.model_dir
default = “”: The learned model to use to do predictions. Models can be found instrands_head_orientation/models/
.autostart
default = true: Whether to start analyzing detections right away or wait for a signal.
rosrun¶
rosrun strands_head_orientation strands_head_orientation [_parameter_name:=value]
roslaunch¶
roslaunch strands_head_orientation head_orientation.launch [parameter_name:=value]
Start/stop¶
This node should be permanently running. While running, it can be started and stopped and when stopped it should hardly use any resources, except for some memory.
Its activity can be controlled on-demand through calls to the following
services: - start_head_analysis
: starts the analysis of all incoming
detections. - stop_head_analysis
: stops the analysis of any
detections. - status_head_analysis
: returns whether the analysis is
currently started.
For manual usage, you can use the start
, stop
and status
executables:
rosrun strands_head_orientation start
rosrun strands_head_orientation status
rosrun strands_head_orientation stop
Original page: https://github.com/strands-project/strands_perception_people/blob/indigo-devel/strands_head_orientation/README.md