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

Fuerte + Ubuntu 12.04 + Kinect errors

asked 2012-06-25 08:41:23 -0500

Salvo gravatar image

updated 2016-10-24 08:59:27 -0500

ngrennan gravatar image

Dear all, I am trying to access to the cloud point from a Kinect device using Ros Fuerte on a Ubuntu 12.04 64bit. The command roslaunch openni_launch openni.launch give me several errors. I also found several Ros Answers users with my same problems, but no one was able to find a complete solution.

Basically I found 3 kind of problems.

The first:

Exception AttributeError: AttributeError("'_DummyThread' object has no attribute '_Thread__block'",) in <module 'threading' from '/usr/lib/python2.7/threading.pyc'> ignored process[camera_base_link3-21]: started with pid [9074]

This error and the similar ones are related to this Python bug http://bugs.python.org/issue14308 but I was not able to use the patch they proposed. However, it seems a minor bug that should not change anything (I hope!).

The second:

[ERROR] [1340647948.750262621]: Tried to advertise a service that is already advertised in this node [/camera/depth_registered/image_rect_raw/compressed/set_parameters]
[ERROR] [1340647948.758634172]: Tried to advertise a service that is already advertised in this node [/camera/depth_registered/image_rect_raw/theora/set_parameters]

It is related to a cyclic reference inside the files included by openni.launch. To solve this issue it is enough to comment inside the file (ros_stack)/openni_launch/launch/includes/depth_registered.launch the following code:

  <!-- Get all the usual depth topics -->
  <include file="$(find openni_launch)/launch/includes/depth.launch"
           ns="$(arg depth_registered)">
    <arg name="manager"    value="$(arg manager)" />
    <arg name="points_xyz" value="false" /> <!-- Suppress XYZ point cloud -->
    <arg name="respawn" value="$(arg respawn)" />
  </include>

so, this is ok.

At last:

[ INFO] [1340647956.288019996]: Number devices connected: 1
[ INFO] [1340647956.288166663]: 1. device on bus 002:08 is a Xbox NUI Camera (2ae) from Microsoft (45e) with serial id 'A00365910150107A'
[ INFO] [1340647956.289262201]: Searching for device with index = 1
nodelet: /usr/include/boost/smart_ptr/shared_ptr.hpp:412: boost::shared_ptr<T>::reference boost::shared_ptr<T>::operator*() const [with T = xn::NodeInfo, boost::shared_ptr<T>::reference = xn::NodeInfo&]: Assertion `px != 0' failed.
[camera_nodelet_manager-1] process has died [pid 8573, exit code -6, cmd /opt/ros/fuerte/stacks/nodelet_core/nodelet/bin/nodelet manager __name:=camera_nodelet_manager __log:=/home/salvo/.ros/log/1c33ed90-bee0-11e1-b0ec-f46d04509546/camera_nodelet_manager-1.log].
log file: /home/salvo/.ros/log/1c33ed90-bee0-11e1-b0ec-f46d04509546/camera_nodelet_manager-1*.log

I was completely not able to solve this. Could you help me? Do you have any idea? Some workaround? I found other answers here about this, but in this case no one was able to solve..

Best, Salvo

edit retag flag offensive close merge delete

Comments

no one can help?

Salvo gravatar image Salvo  ( 2012-06-25 22:14:04 -0500 )edit

3 Answers

Sort by ยป oldest newest most voted
2

answered 2012-07-31 11:39:44 -0500

Daniel Canelhas gravatar image

updated 2012-07-31 11:42:19 -0500

The first two errors are not really fatal, so I'm ignoring them on my system.

the third one seems similar to what I experience on a fresh install of lubuntu 12.04 64 bit and ros fuerte.

I solved it by reverting to older versions of openni-dev and ps-engine. Using binaries for newer versions that were posted here on answers only caused more problems (ie. my camera wasn't detected at all).

step 1:

sudo add-apt-repository ppa:v-launchpad-jochen-sprickerhof-de/pcl

step 2:

sudo apt-get update

step 3:

Open synaptic (install it if you have to) then search for openni and remove openni-dev completely. You'll probably see version 1.5.2.23 installed.

Now select openni-dev and choose the menu item Package, Force version. Select version 1.3.2.1-4+precise1 from the menu (provided by the ppa you just added).

Install it.

Then go to Package and Lock version. You should see a red bar over the now installed openni-dev.

Then choose ps-engine (it should appear when you search for openni). Force the version for this package to 5.0.3.3-3+precise1.

install it and lock the version.

You can now install the packages ros-fuerte-openni-launch and ros-fuerte-openni-camera. The functionality should be the same as what you used to have in electric.

Now let's just hope that whatever is causing the problem gets fixed soon.

edit flag offensive delete link more
3

answered 2012-06-26 00:52:19 -0500

Salvo gravatar image

Not sure if I found some solutions..

For the Python problem, I simply commented a line in the file /usr/lib/python2.7/threading.py , around line 806:

        # Thread.__block consumes an OS-level locking primitive, which
        # can never be used by a _DummyThread.  Since a _DummyThread
        # instance is immortal, that's bad, so release this resource.
#comment here:
#        del self._Thread__block

I am not a Python expert, so I do not know if this can cause other problems.. I think this is not exactly an elegant solution.. but it works.. so I will use this workaround and I will see if it will cause other issues.

About the last and most important problem, I simple killed the XnSensorServer program:

killall -s 9 XnSensorServer

before running openni.launch. Also here, I do not think it is the most elegant way, but it works.

However, to solve these issues I think we should wait for an update of both Python and Fuerte..

Bye, Salvo

edit flag offensive delete link more
1

answered 2012-06-27 19:39:02 -0500

jorge gravatar image

Sorry, this is not an answer but maybe I can help sharing my experiences:

I had the same three errors; I just ignore the first two, but the third one ALMOST disappears after installing the unstable version of openni driver, as explained here. "Almost" because sometimes XnSensorServer keeps alive and you need to relaunch openni.

Hope this helps... Jorge

edit flag offensive delete link more

Question Tools

4 followers

Stats

Asked: 2012-06-25 08:41:23 -0500

Seen: 3,926 times

Last updated: Jul 31 '12