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

Openni_manager service call to manually load Kinect driver

asked 2012-10-22 06:02:17 -0600

JBuesch gravatar image

updated 2016-10-24 09:02:41 -0600

ngrennan gravatar image


I am trying (for days now) to manually control the nodelets that run my Kinect camera.

My scenario is a highly automated robot (turtlebot), with the capability to switch off Kinect just before going onto loading dock. Since the Kinect is powered by the Rommba motor outputs, it is switched off as soon as the Roomba starts reloading.

So I have to re-enable the Kinect stack after leaving the dock.

The Openni_manager I am using to run Kinect, provides rosservices (/openni_manager/load_nodelet) in order to achieve this. It is no problem to shut down a nodelet via service, but I am not able to put it back on properly.

The rosservice call in my program

load_nodelet_proxy("/openni_launch","openni_camera/OpenNINodelet",[],[], ["load openni_camera/OpenNINodelet openni_manager"], "1")

loads the driver with an output that looks fine and exactly the same as when I start the nodelet with launch file, but after a few seconds (possibly the timeout declared in the particular /openni_manager/bond message for that nodelet) it is automatically unloaded by the openni_manager!

What am I doing wrong?

Hopefully somebody can give some advice.

Cheers, Jasper

edit retag flag offensive close merge delete

1 Answer

Sort by ยป oldest newest most voted

answered 2012-10-28 23:23:50 -0600

JBuesch gravatar image

I am now using app_manager for this purpose and it is working quite good. If somebody stumbles over the need of loading/unloading the kinect driver remotely (necessary when the kinect is unpowered during opereration) I can recommend this approach.

edit flag offensive delete link more

Question Tools


Asked: 2012-10-22 06:02:17 -0600

Seen: 325 times

Last updated: Oct 28 '12