繁体   English   中英

在ROS Indigo中使用特征库

[英]Using Eigen Library in ROS Indigo

我正在开发一个需要使用Eigen库的ROS Indigo项目。 根据ROS Wiki上的indigo / Migration页面,FindEigen.cmake模块现在位于cmake_modules包中。

按照以下步骤将cmake_modules包添加到项目的CMake.txt(通过find_package)并将构建依赖项添加到package.xml( < build_depend >cmake_modules< /build_depend > )之后,我仍然在编译项目时遇到问题。 我已经看过各种来源,引用上述步骤应该解决ROS Indigo中的问题,但似乎无法让它工作。 这是CMake文件,这是package.xml 另外,我在项目文件夹中添加了FindEigen.cmake文件。 任何帮助将不胜感激! 错误如下:

CMake Error at /opt/ros/indigo/share/catkin/cmake/catkinConfig.cmake:75 (find_package):
Could not find a package configuration file provided by "Eigen" with any of the 
following names:
  EigenConfig.cmake
  eigen-config.cmake

Add the installation prefix of "Eigen" to CMAKE_PREFIX_PATH or set
"Eigen_DIR" to a directory containing one of the above files.  If "Eigen"
provides a separate development package or SDK, be sure it has been
installed.
Call Stack (most recent call first):
lidar_point_cloud/CMakeLists.txt:9 (find_package)

只是为了完成后期,并在Answers ROS中回答这个问题

如果您已经安装了Eigen(请使用sudo apt-get install libeigen3-dev ),那么您必须将相应的cmake_modulesEigen行添加到CMakeLists.txt和package.xml文件中:

package.xml中

<build_depend>cmake_modules</build_depend>
<run_depend>cmake_modules</run_depend> 

的CMakeLists.txt

find_package(catkin REQUIRED cmake_modules)
find_package(Eigen REQUIRED)

catkin_package(
  INCLUDE_DIRS ...
  LIBRARIES ...
  CATKIN_DEPENDS ....
  DEPENDS Eigen
)

include_directories(
   ...
   ${Eigen_INCLUDE_DIRS}
 )

更新:请注意,以下不是必需的,因为FindEigen.cmake模块没有定义Eigen_LIBRARIES因为它是一个仅头文件库:

 target_link_libraries(my_target
   ....
   ${Eigen_LIBRARIES}
 )

更多信息: http//wiki.ros.org/indigo/Migration#cmake_modules

更新 :实际上<run_depend>cmake_modules</run_depend> ,因为cmake_modules不是运行时依赖项。


此外,您可以使用ROS ecl包装器: http ://wiki.ros.org/ecl

Eigen不是一个ROS包,而是一个独立的库。 因此,不要将其列为find_package的组件,只需添加一个单独的find_package调用:

find_package(Eigen REQUIRED)

我现在不能再仔细检查它(目前正坐在一台机器人身上),但我很确定,这对我来说也适用于靛蓝。

我有同样的问题,这解决了它:(Ubuntu 14.04)

sudo apt-get install libeigen3-dev

对我来说,“sudo apt-get install libeigen3-dev”无效。 所以我通过make文件安装它,并遵循包中给出的安装过程,即

-download the package from http://eigen.tuxfamily.org/index.php?title=Main_Page

-create another directory which we will call 'build_dir'

-cd build_dir

-cmake source_dir

-make install

如果这不能解决您的问题,您可以将eigen3文件夹从任何地方(mine was at /usr/local/include)复制到/ usr / include。 使用该命令

sudo cp -r /usr/local/include/eigen3  /usr/include

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM