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

Problem to compile code. Not found openni_grabber.h #77

Open
i-sheremet opened this issue Jul 27, 2018 · 11 comments
Open

Problem to compile code. Not found openni_grabber.h #77

i-sheremet opened this issue Jul 27, 2018 · 11 comments
Labels

Comments

@i-sheremet
Copy link

Hello there,

I'm having issued compiling the code with following error
Kinect.h:28:35: fatal error: pcl/io/openni_grabber.h: No such file or directory

I have PCL and OpenNI installed. The file openni_grabber.h is present in the file system under following path:
/usr/include/pcl-1.7/pcl/io/openni_grabber.h

Here is the output of $PATH:
/opt/ros/kinetic/bin:/home/ilia-dev/bin:/home/ilia-dev/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/usr/include

Output of uname -a:
Linux pdgcs01-X555LJ 4.15.0-29-generic #31~16.04.1-Ubuntu SMP Wed Jul 18 08:54:04 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux

Output of nvcc --version:
nvcc: NVIDIA (R) Cuda compiler driver Copyright (c) 2005-2015 NVIDIA Corporation Built on Tue_Aug_11_14:27:32_CDT_2015 Cuda compilation tools, release 7.5, V7.5.17

Link to the output of cmake command.

Could someone please tell me the versions being used for the repo dependencies? Especially PCL and OpenNI. Maybe someone has script to install those dependencies?

Thank you!

@cjue
Copy link
Contributor

cjue commented Aug 1, 2018

Hi Ilia,
thank you for your report.!

I see your are using ROS kinetic, Cuda 7.5 and libopenni 1.5.4
Are you using Ubuntu 16.04 with libpcl version 1.7.2?

@Squelsh
Copy link
Contributor

Squelsh commented Aug 1, 2018

When looking at your pasted output of the findscripts, I see some lines with PCL 1.8?
Do you have both installed? Or did you once compile and install a version from source?
Can you run a ccmake or cmake gui, to see, which path CMake found for PCL IO?

@i-sheremet
Copy link
Author

i-sheremet commented Aug 3, 2018

@cjue , I had actually both version installed 1.7.2 from repos, and 1.8.1 from source.
@Squelsh , I made a mistake to look for the file openni_grabber.h which was present only in 1.7.2, so I assumed the 1.8.1 wasn't installed properly.

Now I removed manually all the pcl files and installed 1.7.2 from repo again and now everything compiles properly.

Here is the output for sudo apt list --installed | grep pcl, in case someone will have similar version issues:
libdapclient6v5/xenial,now 3.15.1-7 amd64 [installed,automatic] libpcl-apps1.7/xenial,now 1.7.2-14build1 amd64 [installed,automatic] libpcl-common1.7/xenial,now 1.7.2-14build1 amd64 [installed,automatic] libpcl-dev/xenial,now 1.7.2-14build1 amd64 [installed] libpcl-features1.7/xenial,now 1.7.2-14build1 amd64 [installed,automatic] libpcl-filters1.7/xenial,now 1.7.2-14build1 amd64 [installed,automatic] libpcl-io1.7/xenial,now 1.7.2-14build1 amd64 [installed,automatic] libpcl-kdtree1.7/xenial,now 1.7.2-14build1 amd64 [installed,automatic] libpcl-keypoints1.7/xenial,now 1.7.2-14build1 amd64 [installed,automatic] libpcl-octree1.7/xenial,now 1.7.2-14build1 amd64 [installed,automatic] libpcl-outofcore1.7/xenial,now 1.7.2-14build1 amd64 [installed,automatic] libpcl-people1.7/xenial,now 1.7.2-14build1 amd64 [installed,automatic] libpcl-recognition1.7/xenial,now 1.7.2-14build1 amd64 [installed,automatic] libpcl-registration1.7/xenial,now 1.7.2-14build1 amd64 [installed,automatic] libpcl-sample-consensus1.7/xenial,now 1.7.2-14build1 amd64 [installed,automatic] libpcl-search1.7/xenial,now 1.7.2-14build1 amd64 [installed,automatic] libpcl-segmentation1.7/xenial,now 1.7.2-14build1 amd64 [installed,automatic] libpcl-surface1.7/xenial,now 1.7.2-14build1 amd64 [installed,automatic] libpcl-tracking1.7/xenial,now 1.7.2-14build1 amd64 [installed,automatic] libpcl-visualization1.7/xenial,now 1.7.2-14build1 amd64 [installed,automatic] libpcl1.7/xenial,now 1.7.2-14build1 amd64 [installed,automatic] ros-kinetic-pcl-msgs/xenial,now 0.2.0-0xenial-20180516-152510-0800 amd64 [installed]

@cjue @Squelsh , I think it would be a great idea to include versions for dependencies packages in Readme and I could make PR with those changes. But I could name the versions that I compiled with on my PC and I don't know how much backwards compatibility work with other versions of PCL, OpenNi, Boost and tinyXML.
So would you mind me to make the PR with versions I have?

Other than that, I think this issue is closed. Thank you for helping out 👍

@cjue
Copy link
Contributor

cjue commented Aug 3, 2018

Thanks for the offer, but are you sure that PCL 1.8.1 is actually missing that include?

There is a file of that name in 1.8.1 on Github: https://github.com/PointCloudLibrary/pcl/blob/pcl-1.8.1/io/include/pcl/io/openni_grabber.h

I am interested in making sure the library is comaptible with PCL 1.8.1.

We are currently also doing some testing regarding Boost to ensure compatibility with all releases starting from Ubuntu 14.04.

@i-sheremet
Copy link
Author

@cjue I think so, I ran find through out the system, searching for the file. But I am not 100% sure.

BTW do you know if your library works with CUDA 8.0? And if not do you have plans for importing it?

@cjue
Copy link
Contributor

cjue commented Aug 21, 2018

Hi Ilia,

GPU-Voxels is Cuda 8.0 compatible, with a slight caveat:

Code compiled with Cuda 8.0 works fine with older GPU drivers such as 375.66, but there are runtime errors with driver 384.111 and newer ("PTX JIT compilation failed").

@i-sheremet
Copy link
Author

@cjue Thank's!

@RickHutten
Copy link

I had the same problem as Ilia. I have installed both PCL 1.7.2 and 1.9.1. I tried uninstalling 1.7.2 but still had the same problem. I found that the file openni_grabber.h was not present in the pcl 1.9.1 installation. When rebuilding PCL 1.9.1 I noticed with running ccmake that the option WITH_OPENNI was set to "OFF". Turning it on and rebuilding PCL did the trick for me. Hope this might help.

@cjue
Copy link
Contributor

cjue commented Mar 6, 2019

@rick and Ilia: do you know of a way to check whether a PCL installation has been compiled with activated WITH_OPENNI setting?

If there is something like that, I could improve our cmake detection of PCL&Openni. We only need the OpenNI support in PCL in order to directly access cameras, through the "helpers/Kinect" class.

@cjue
Copy link
Contributor

cjue commented Mar 6, 2019

To answer myself: We could just look for "pcl/io/openni_grabber.h" within PCL_INCLUDE_DIRS and make that a condition for the optional helpers/Kinect target.

I'll reopen this as a reminder for myself.

@cjue cjue reopened this Mar 6, 2019
@rick
Copy link

rick commented Mar 8, 2019


@cjue cjue added the bug label Mar 10, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

5 participants