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

Error when including eigenpy.hpp #195

Closed
acxz opened this issue May 28, 2020 · 12 comments · Fixed by moveit/moveit#2118
Closed

Error when including eigenpy.hpp #195

acxz opened this issue May 28, 2020 · 12 comments · Fixed by moveit/moveit#2118

Comments

@acxz
Copy link

acxz commented May 28, 2020

In file included from /usr/include/eigenpy/fwd.hpp:14,
                 from /usr/include/eigenpy/eigenpy.hpp:9,
                 from /home/acxz/vcs/git/github/ros-noetic-arch/ros-noetic-moveit-ros-planning-interface/src/moveit-1.0.3/moveit_ros/planning_interface/move_group_interface/src/wrap_python_move_group.cpp:53:
/usr/include/eigenpy/numpy.hpp:15:10: fatal error: numpy/numpyconfig.h: No such file or directory
   15 | #include <numpy/numpyconfig.h>
      |          ^~~~~~~~~~~~~~~~~~~~~
@wxmerkt
Copy link
Member

wxmerkt commented May 28, 2020

Hi @acxz,
I see you are compiling this for MoveIt on Arch using the Noetic release. I haven't tested either yet (and MoveIt hasn't been tested or released on Noetic). Can you please check whether numpy-dev is available and whether you can locate that header? (Or provide a docker to reproduce?)

Note: MoveIt is not yet using CMake targets but pkg-config.

@acxz
Copy link
Author

acxz commented May 28, 2020

Hello @wxmerkt thx for responding

Just found out that there is a ros-noetic-eigenpy package that you are maintaining at https://github.com/ipab-slmc/eigenpy_catkin-release so I'm trying to build that package right now and use that as a dep instead of this repo. I'll let you know how it goes.

As for numpy headers I do have those installed.

@wxmerkt
Copy link
Member

wxmerkt commented May 28, 2020

@acxz: The release has a few patches applied on top of this repository for noetic to fix some CMake module issues, cf. https://github.com/ipab-slmc/eigenpy_catkin-release/tree/patches/release/noetic/eigenpy

Any questions, please let me know

@acxz
Copy link
Author

acxz commented May 28, 2020

Is there any reason why these patches are not merged into this repository? Or rather this repo: https://github.com/jrl-umi3218/jrl-cmakemodules/tree/master?

Also seems like I am still getting the error even when using the release/noetic/eigenpy release. Looks like I need to dig a bit deeper.

@nim65s
Copy link
Contributor

nim65s commented May 28, 2020

@acxz : on Arch, you can use directly https://aur.archlinux.org/packages/eigenpy/

@acxz
Copy link
Author

acxz commented May 28, 2020

Hey @nim65s! Thx for responding

That is actually how I got the error. So I was like hey maybe I should use the catkin package, but then looking at the latest moveit release they are using the system eigenpy, which does not work. It does however work with pkgconfig instead of find_package.

@acxz
Copy link
Author

acxz commented May 28, 2020

The above mentioned PR resolves the issue for me. From what I understand, find_package does not properly work with eigenpy (might be some bug in eigenpy's CMakeLists.txt) so for me to use eigenpy in downstream packages I need to use its pkgconfig which resolved the issue for me for moveit-ros-planning-interface.

I'll keep this issue open since it seems like this points to a deeper issue in eigenpy's CMake configuration.

@wxmerkt in the latest release in moveit-ros-planning-interface they are using the system eigenpy not the ros eigenpy, therefore I did not need ros-noetic-eigenpy. Although for what it's worth ros-eigenpy (with those patches) did not resolve the issue for me either.

@jcarpent
Copy link
Contributor

The cmake packaging of EigenPy is working and it is tested on the CI. Could you provide a tiny example to allow to reproduce it?

@acxz
Copy link
Author

acxz commented May 28, 2020

@jcarpent sounds good, yeah maybe I am messing up somewhere locally on my end.

@nim65s
Copy link
Contributor

nim65s commented May 28, 2020

Woops, I didn't meant to close this. @acxz: can you try moveit/moveit@24031ff ?

@nim65s nim65s reopened this May 28, 2020
@acxz
Copy link
Author

acxz commented May 28, 2020

Just tried and it works, I think it is safe to close this since the issue is in the moveit repo.
Sorry for blaming the cmake packaging of eigenpy ...

Thx for quick response and the amazing software!

@acxz acxz closed this as completed May 28, 2020
nim65s added a commit to nim65s/moveit that referenced this issue May 28, 2020
fix stack-of-tasks/eigenpy#195

Since moveit#1737, eigenpy is found
using find_package, so we can get all required informations to find
headers and link to shared objects with a target_link_libraries to the
eigenpy::eigenpy imported CMake target.
@wxmerkt
Copy link
Member

wxmerkt commented May 29, 2020

To clarify: The EigenPy packaged via ROS is the EigenPy in this repository, plus the fixes to the cmake module linked above. MoveIt uses EigenPy via ROS that includes these fixes. We spent a long time (a process that took weeks and coordination) to ensure backward compatibility when the PkgConfig/CMake packaging changed, so it should all still work. My latest checks on Melodic work, and so does the CI that tests these. I will follow up on the MoveIt PR.

v4hn pushed a commit to moveit/moveit that referenced this issue May 29, 2020
fix stack-of-tasks/eigenpy#195

Since #1737, eigenpy is found
using find_package, so we can get all required informations to find
headers and link to shared objects with a target_link_libraries to the
eigenpy::eigenpy imported CMake target.
davetcoleman pushed a commit to davetcoleman/moveit that referenced this issue Jun 2, 2020
fix stack-of-tasks/eigenpy#195

Since moveit#1737, eigenpy is found
using find_package, so we can get all required informations to find
headers and link to shared objects with a target_link_libraries to the
eigenpy::eigenpy imported CMake target.
davetcoleman pushed a commit to davetcoleman/moveit that referenced this issue Jun 2, 2020
fix stack-of-tasks/eigenpy#195

Since moveit#1737, eigenpy is found
using find_package, so we can get all required informations to find
headers and link to shared objects with a target_link_libraries to the
eigenpy::eigenpy imported CMake target.
pradeepr-roboticist pushed a commit to pradeepr-roboticist/moveit that referenced this issue Jun 3, 2020
fix stack-of-tasks/eigenpy#195

Since moveit#1737, eigenpy is found
using find_package, so we can get all required informations to find
headers and link to shared objects with a target_link_libraries to the
eigenpy::eigenpy imported CMake target.
v4hn pushed a commit to v4hn/moveit that referenced this issue Jul 3, 2020
fix stack-of-tasks/eigenpy#195

Since moveit#1737, eigenpy is found
using find_package, so we can get all required informations to find
headers and link to shared objects with a target_link_libraries to the
eigenpy::eigenpy imported CMake target.

(cherry picked from commit 81e64b9)
v4hn pushed a commit to v4hn/moveit that referenced this issue Jul 3, 2020
fix stack-of-tasks/eigenpy#195

Since moveit#1737, eigenpy is found
using find_package, so we can get all required informations to find
headers and link to shared objects with a target_link_libraries to the
eigenpy::eigenpy imported CMake target.
rhaschke pushed a commit to moveit/moveit that referenced this issue Jul 3, 2020
fix stack-of-tasks/eigenpy#195

Since #1737, eigenpy is found
using find_package, so we can get all required informations to find
headers and link to shared objects with a target_link_libraries to the
eigenpy::eigenpy imported CMake target.
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

Successfully merging a pull request may close this issue.

4 participants