ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange
Ask Your Question
0

Skeletal_tracker crashes

asked 2011-04-13 00:09:22 -0600

Quentin gravatar image

updated 2011-04-13 02:31:54 -0600

Hello,

I'm trying to make the hand_interaction demos working but it still doesn't even if I follow exactly the instruction of http://www.ros.org/wiki/mit-ros-pkg/K... .

I installed DiamondBack on Ubuntu 10.10. I can't use 10.04 because I need the multitouch support for my project.

The openni_kinect stacks of the ros installation works perfectly fine. But the demos doesn't. I want to use the hand_detection tracking because it seems more performant that the openni_tracker alone.

When launching hand_detector, I noticed that the process skeletal_tracker was always relaunching:

quentin@desktop-quentin:~/kinect_demos/mit-ros-pkg-experimental/nifun$ roslaunch hand_interaction hand_detector.launch
... logging to /home/quentin/.ros/log/945ec950-65c4-11e0-ad85-643150236fec/roslaunch-desktop-quentin-3919.log
Checking log directory for disk usage. This may take awhile.
Press Ctrl-C to interrupt
Done checking log file disk usage. Usage is <1GB.

started roslaunch server http://desktop-quentin:52801/

SUMMARY
========

PARAMETERS
 * /rosdistro
 * /openni_node1/use_indices
 * /openni_node1/depth_registration
 * /openni_node1/image_time_offset
 * /openni_node1/depth_frame_id
 * /openni_node1/depth_mode
 * /openni_node1/debayering
 * /rosversion
 * /openni_node1/projector_depth_baseline
 * /openni_node1/rgb_frame_id
 * /openni_node1/depth_rgb_translation
 * /openni_node1/depth_time_offset
 * /openni_node1/image_mode
 * /openni_node1/shift_offset
 * /openni_node1/device_id
 * /openni_node1/depth_rgb_rotation

NODES
  /
    openni_node1 (openni_camera/openni_node)
    kinect_base_link (tf/static_transform_publisher)
    kinect_base_link1 (tf/static_transform_publisher)
    kinect_base_link2 (tf/static_transform_publisher)
    kinect_base_link3 (tf/static_transform_publisher)
    handdetector (hand_interaction/detectskelhands)
    ressetter (dynamic_reconfigure/dynparam)
    skel_tracker (skeletal_tracker/tracker)

auto-starting new master
process[master]: started with pid [3933]
ROS_MASTER_URI=http://localhost:11311

setting /run_id to 945ec950-65c4-11e0-ad85-643150236fec
process[rosout-1]: started with pid [3946]
started core service [/rosout]
process[openni_node1-2]: started with pid [3953]
process[kinect_base_link-3]: started with pid [3955]
process[kinect_base_link1-4]: started with pid [3959]
process[kinect_base_link2-5]: started with pid [3960]
process[kinect_base_link3-6]: started with pid [3962]
process[handdetector-7]: started with pid [3972]
process[ressetter-8]: started with pid [3974]
process[skel_tracker-9]: started with pid [3975]
[/openni_node1] Number devices connected: 1
Warning: recursive print statement has occurred.  Throwing out recursive print.
Warning: recursive print statement has occurred.  Throwing out recursive print.
Waiting for service /openni_camera/set_parameters...
Warning: recursive print statement has occurred.  Throwing out recursive print.
Warning: recursive print statement has occurred.  Throwing out recursive print.
Warning: recursive print statement has occurred.  Throwing out recursive print.
InitFromXml failed: File not found!
[skel_tracker-9] process has died [pid 3975, exit code 4].
log files: /home/quentin/.ros/log/945ec950-65c4-11e0-ad85-643150236fec/skel_tracker-9*.log
respawning...
[skel_tracker-9] restarting process
process[skel_tracker-9]: started with pid [4299]

etc...

I tried to launch this node alone and got this:

quentin@desktop-quentin:/opt/ros/diamondback/stacks/openni_kinect/openni_tracker$ roslaunch skeletal_tracker follower.launch 
... logging to /home/quentin/.ros/log/c051c732-65c5-11e0-826c-643150236fec/roslaunch-desktop-quentin-4554.log
Checking log directory for disk usage. This may take awhile.
Press Ctrl-C to interrupt
Done checking log file disk usage. Usage is <1GB.

started roslaunch server http://desktop-quentin:33809/

SUMMARY
========

PARAMETERS
 * /rosversion
 * /rosdistro

NODES
  /
    skel_tracker (nifun/tracker)
    follower (nifun/faceme.py)
    create_driver (irobot_create_2_1/driver.py)
    kinect_to_create_tf (tf/static_transform_publisher)

auto-starting new master
process[master]: started with pid [4568]
ROS_MASTER_URI=http://localhost:11311

setting /run_id to c051c732-65c5-11e0-826c-643150236fec
process[rosout-1]: started with pid [4581]
started core service [/rosout]
ERROR: cannot launch node of type [nifun/tracker]: Cannot locate node of type [tracker] in package [nifun]
process[follower-3]: started with pid [4584]
ERROR: cannot launch ...
(more)
edit retag flag offensive close merge delete

1 Answer

Sort by ยป oldest newest most voted
2

answered 2011-04-13 01:03:46 -0600

Quentin gravatar image

updated 2011-04-13 02:29:51 -0600

After 1 week and half on this problem, I found the answer 20 minutes after having finally asked the question here (http://kinect-with-ros.976505.n3.nabble.com/Ros-kinect-skel-tracker-issue-td2790186.html).

The real error is this one: InitFromXml failed: File not found!. It comes from the line

std::string configFilename = ros::package::getPath("openni") + "/lib/SamplesConfig.xml";

of main.cpp.

While with the cturtle distribution, the file exists,with diamondback it doesn't. We can find this file on the official OpenNi git repository. The solution is to download it in the lib directory of the openni package:

sudo wget -P `rospack find openni`/lib https://github.com/OpenNI/OpenNI/raw/43c256b554dcbe478644be73e29af16b3470f1c1/Data/SamplesConfig.xml --no-check-certificate

It does the trick for me.

I also found it at the root of the openni_tracker package under the name openni_tracker.xml.

I hope the MIT team will fix it.

edit flag offensive delete link more

Question Tools

Stats

Asked: 2011-04-13 00:09:22 -0600

Seen: 1,903 times

Last updated: Apr 13 '11