Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Bug in registration - NaN in PointCloud #13

Open
joaoc opened this issue Mar 29, 2013 · 17 comments
Open

Bug in registration - NaN in PointCloud #13

joaoc opened this issue Mar 29, 2013 · 17 comments

Comments

@joaoc
Copy link

joaoc commented Mar 29, 2013

On some PCs the registration show a bug.

If you enable it, your PointCloud will only have NaN, and some reports that the depth image gets all gray(no real image).

Ros answers have allot of this issues, and a possible solution is to install the OpenNi + Nite binaries (http://answers.ros.org/question/53706/registered-depth-image-is-black/#53832) and (http://answers.ros.org/question/54951/kinect-depth-registration-not-working-on-fuerte-and-groovy/), but that don't work all the time.

That is my problem, i installed the ros-fuerte-openni-camera and ros-fuerte-openni-launch, and if i enable the depth_registration all i get is NaN's. Running the samples from OpenNi binaries everything works fine!

Also i say this is hardware dependent, because on diferent machines with the same software (linux version+ ros version) it presents diferent results on some it works and others don't (but the OpenNi binaries allways work)

@jonbinney
Copy link

Are there any errors in the output of openni_camera when you run it? Are you using a kinect or an xtion?

@joaoc
Copy link
Author

joaoc commented Apr 2, 2013

There are no errors running openni_camera except for those related with the advertise of topics already advertised:

[ERROR] [1351028964.484342461]: Tried to advertise a service that is already advertised in this node [/camera/depth_registered/image_rect_raw/compressedDepth/set_parameters]
[ERROR] [1351028964.489915028]: Tried to advertise a service that is already advertised in this node [/camera/depth_registered/image_rect_raw/compressed/set_parameters]
[ERROR] [1351028964.495383139]: Tried to advertise a service that is already advertised in this node [/camera/depth_registered/image_rect_raw/theora/set_parameters]

This is running through openni_lauch
I'm using a Kinect.

@jkammerl
Copy link
Member

jkammerl commented Apr 3, 2013

Are you using the patched libopenni drivers or did you directly install the unpatched openni sources?

@joaoc
Copy link
Author

joaoc commented Apr 3, 2013

I'v just install the ros-groovy-openni-camera and ros-groovy-openni-launch and got this problem (NaN's on the depth_registered pointclound).
Tried to remove the openni-camera and openni-launch, install the OpenNi, sensor (avin2), and NITE binaries (as stated in one of the links i passed) and it works ok (the samples provided with them). when i reinstall the openni-camera and openni-launch the problem remains (but the samples from OpenNi binaries run fine)

@jkammerl
Copy link
Member

jkammerl commented Apr 3, 2013

As far as I know, the Kinect does not provide hardware depth-color registration. You should definitely use the ros debians of libopenni that can be found on the ROS PPA as they are patched to simulation hardware synchronization for the Kinect. Is it possible that you are mixing up different versions of openni? The openni_camera package doesn't work with the Kinect if you directly install the unpatched openni sources from Primesense.

@joaoc
Copy link
Author

joaoc commented Apr 4, 2013

as i said on the OP i only install OpenNi binaries as possible fix to this problem (that didn't solve noting). On a fresh ubuntu 12.04, ros groovy and ros-groovy-openni-camera /ros-groovy-openni-launch install i get this problem, so its not related to the user mixing up versions. it didn't work from the start.

what i did after (when i saw that the depth_registration didn't work) was to follow the instructions where: http://answers.ros.org/question/53706/registered-depth-image-is-black/?answer=53834#post-id-53834

Today i have this (with the ros-openni and openni Binaries):

$ dpkg -l libopenni*
Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
||/ Name Version Description
+++-=============================-=============================-==========================================================================
ii libopenni-dev 1.5.4.0-3+precise1 headers for OpenNI 'Natural Interaction' frameworks
ii libopenni-nite-dev 1.3.1.5~precise Nite development package
ii libopenni-sensor-primesense-dev 5.1.0.41-2+precise1 Microsoft Kinect sensor modules for the OpenNI framework
ii libopenni-sensor-primesense0 5.1.0.41-2+precise1 Microsoft Kinect sensor modules for the OpenNI framework
ii libopenni0 1.5.4.0-3+precise1 framework for sensor-based 'Natural Interaction'

@jkammerl
Copy link
Member

jkammerl commented Apr 4, 2013

These instructions tell you how to generate a openni debian from source. Since you didn't compile the patched version of openni that enables depth registration with the Kinect, it doesn't work for you.

@joaoc
Copy link
Author

joaoc commented Apr 4, 2013

maybe i didn't understand your answer.

The OpenNi program i compile works fine by itself on a kinect. But the openni-camera that i install with ros doesn't work ( on the depth registration aspect) from the beginning.

where is that patched version? do i need to uninstall the version i have and compile that instead?

@jkammerl
Copy link
Member

jkammerl commented Apr 9, 2013

The easiest way would be to remove all openni installations from your system and reinstall openni_camera. This should pull in the correct and patched version of openni directly from the ROS PPA.

@joaoc
Copy link
Author

joaoc commented Apr 11, 2013

But that would put me in the begginig with the same problem because i started with only the openni stuff from ROS PPA.

Honestly i don't think this is a user problem, but a a program bug.

Why it works fine with openni source code (from OpenNi.org) compiled on my pc and your version doesn't work?

@joaoc
Copy link
Author

joaoc commented Apr 17, 2013

new information.

I've install on a dual-boot configuration ubuntu 12.04 64 bits (the other is ubuntu 12.04 32bits).
It happens that in the 64 bits version i don't have any problems, every thing works fine just installing the ros-groovy-openni-camera and launch, and i can enable the depth_registration flag.
With the 32bits, doing the same thing with the same commands it has this bug.

It makes me think if the 32bits packeged were compiled fine?

@joaoc joaoc closed this as completed Apr 17, 2013
@joaoc joaoc reopened this Apr 17, 2013
@advaitjain
Copy link

confirming that I see the problem with on a 32 bit machine but not on 64 bit machines. with Groovy and openni_camera on both the 32 and 64 bit machines.

@jkammerl
Copy link
Member

@joaoc Does this issue exist if you compile and run the openni_camera package from source (on 32bit)?

@joaoc
Copy link
Author

joaoc commented Apr 20, 2013

Yes, i tried to clone the git and compile, and i had the same problem

@kai-chen-ustc
Copy link

I also encountered this problem today, after updating to the latest libopenni-dev (replaced openni-dev) and all the depth_registered/points are filled with NaN. I am running openni_launch/openni.launch from ubuntu 12.04 32bit.

Anyone knows why 64-bit version is OK while the 32-bit one is not?

@jonbinney
Copy link

I've still not seen this problem, but that could be because I'm only using 64-bit. Anyone have an idea how to fix this?

@kai-chen-ustc
Copy link

Yes, this problem was reported only to appear on 32-bit systems. Still don't know why.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

5 participants