GithubHelp home page GithubHelp logo

Comments (13)

sdmiller avatar sdmiller commented on May 26, 2024

Hey Michael,

This is an unfortunate (sometimes headache-inducing) consequence of our shared ROS headers. The problem, as you noted, is that some libraries (FLANN and OpenCV, for instance) are deployed with ROS, and they require you to include /opt/ros/distro-name/include. As far as I can see, the only ways to get around this is are A) use a different build of FLANN so the include path isn't polluted, B) always have USE_ROS=1 on ROS machines, or C) a temporary directory-renaming strategy so gross I won't describe it. If anyone can think of better ways to forcibly ignore ROS headers, I'd also appreciate it.

from pcl.

jkammerl avatar jkammerl commented on May 26, 2024

Yes, this is unfortunate. It might help to change the order of include paths depending on USE_ROS = on/off (at the cost of additional CMake hacks). I'll try to figure out a workaround here.

from pcl.

MichaelKorn avatar MichaelKorn commented on May 26, 2024

But this problem is new otherwise I wouldn't open this ticket.
This means something was changed in the last few weeks. I will try to figure out what.

from pcl.

MichaelKorn avatar MichaelKorn commented on May 26, 2024

I found it: 9003e42 , the change in CMakeLists.txt causes the issue.

from pcl.

jkammerl avatar jkammerl commented on May 26, 2024

This patch changes the order of include directories in order to enable USE_ROS within PCL (independent from the ROS perception_pcl package). Flann on non-ROS systems is typically installed in /usr. Do you think it would help to adjust the FLANN cmake scripts to search first for a system installation of FLANN?

from pcl.

nizar-sallem avatar nizar-sallem commented on May 26, 2024

Hi,

This can be easily adjusted for Flann as far as cmake is concerned.

Nizar

On Tuesday, April 16, 2013, Julius Kammerl wrote:

This patch changes the order of include directories in order to enable
USE_ROS within PCL (independent from the ROS perception_pcl package). Flann
on non-ROS systems is typically installed in /usr. Do you think it would
help to adjust the FLANN cmake scripts to search first for a system
installation of FLANN?

β€”
Reply to this email directly or view it on GitHubhttps://github.com//issues/50#issuecomment-16466399
.

from pcl.

jkammerl avatar jkammerl commented on May 26, 2024

sounds great, nizar! Could you have a look at this when you get a chance or give me some pointers? Thanks!

from pcl.

nizar-sallem avatar nizar-sallem commented on May 26, 2024

Sure,

I can, should I fix it my self or send you a patch?

Nizar

On 16 April 2013 15:02, Julius Kammerl [email protected] wrote:

sounds great, nizar! Could you have a look at this when you get a chance
or give me some pointers? Thanks!

β€”
Reply to this email directly or view it on GitHubhttps://github.com//issues/50#issuecomment-16474645
.

from pcl.

jkammerl avatar jkammerl commented on May 26, 2024

It you work on it in a separate branch, you could create a pull-request that we can test before approving it.

from pcl.

MichaelKorn avatar MichaelKorn commented on May 26, 2024

Do you think it would help to adjust the FLANN cmake scripts to search first for a system installation of FLANN?

This would help. At the moment everyone who uses ROS muss configure the FLANN paths manually. Even if a system installation of FLANN exists.
The PCL shouldn't include FLANN from ROS at the moment, because it don't work and causes useless (I think it's hard to find the problem if someone isn't familiar with ROS and PCL) compiler errors.
But, one further problem still exists: It shouldn't be necessary to install FLANN a second time (the PCL worked fine with the ROS package)

from pcl.

nizar-sallem avatar nizar-sallem commented on May 26, 2024

Due to the status of my repository, I don't want to mess with it right now,
here are the lines to be added:

if(CMAKE_SYSTEM_NAME STREQUAL Linux)
set(CMAKE_INCLUDE_PATH ${CMAKE_INCLUDE_PATH} /usr /usr/local)
endif(CMAKE_SYSTEM_NAME STREQUAL Linux)

This way cmake would search for eigen in /usr and /usr/local before looking
at any other path.
Another problem would come from the pkgconfig because we look for eigen.pc
before using find_path command.
The final result FindEigen.cmake file is attached please let me know if
there is a problem.

Sorry for the inconvenience,

Nizar

On 17 April 2013 05:14, Michael Korn [email protected] wrote:

Do you think it would help to adjust the FLANN cmake scripts to search
first for a system installation of FLANN?
This would help. At the moment everyone who uses ROS muss configure the
FLANN paths manually. Even if a system installation of FLANN exists.
The PCL shouldn't include FLANN from ROS at the moment, because it don't
work and causes useless (I think it's hard to find the problem if someone
isn't familiar with ROS and PCL) compiler errors.
But, one further problem still exists: It shouldn't be necessary to
install FLANN a second time (the PCL worked fine with the ROS package)

β€”
Reply to this email directly or view it on GitHubhttps://github.com//issues/50#issuecomment-16501956
.

from pcl.

jkammerl avatar jkammerl commented on May 26, 2024

Thanks Nizar! I'll look at your patch tonight..

from pcl.

jkammerl avatar jkammerl commented on May 26, 2024

I tested your patch, Nizar and it works great! Thanks!

Here is my pull-request:
#68

from pcl.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    πŸ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. πŸ“ŠπŸ“ˆπŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❀️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.