最近终于有时间梳理一下之前遇到的问题,主要针对https://github.com/wsnewman/learning_ros.git
这里记录一下,对learning_ros进行catkin_make遇到的问题。
ubuntu16.04+kinetic
0.建议
因为这个包涉及文件有6个part,为了方便改每一部分,建议大家先对part1进行catkin_make,然后再依次增加part2/part3/part4/part5/part6等。
1.Could not find a package configuration file provided by “catkin_simple”
cd $(write down your workspace)/src
git clone git@github.com:catkin/catkin_simple.git
cd $CATKIN_WS
catkin_make
2.Could not find a package configuration file provided by “Eigen3”
(1)第一种方法:
在主文件夹下直接查找FindEigen3.cmake文件(一般是在/usr/include/eigen3/cmake/FindEigen3.cmake中),然后把它复制learning_ros/cmake_modules(自己创建)下,并且在报错的CMakeLists.txt中添加:
LIST(APPEND CMAKE_MODULE_PATH /home/wh/project/learnros_ws/src/learning_ros/cmake_modules)
然后重新编译。
(2)第二种方法:
在主文件夹下直接查找FindEigen3.cmake文件,然后把它复制到报错的CMakeLists.txt对应的路径下,在CMakeLists.txt中添加
set(CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR})
include_directories($ {EIGEN3_INCLUDE_DIRS})
然后重新编译。
链接: Eigen库问题.
3.cv::××××(cv::String const,int)未定义的引用
找到相对应的CmakeLists.txt文件,需要增加:
target_link_libraries(xxx ${OpenCV_LIBS})
比如在Part_3/example_opencv中增加:
target_link_libraries(find_red_pixels ${OpenCV_LIBS})
target_link_libraries(find_features ${OpenCV_LIBS})
链接: opencv问题.
4.fatal error: nav_core/base_local_planner.h: 没有那个文件或目录
sudo apt-get install ros-kinetic-navigation
5.No rule to make target '/usr/lib/x86_64-linux-gnu/libproj.so 解决方法
sudo ln -s /usr/lib/x86_64-linux-gnu/libproj.so.9 /usr/lib/x86_64-linux-gnu/libproj.so
链接: libproj*问题.
6.baxter_core_msge/xxxx.h:没有这个文件
需要安装baxter,请参考这个博客:
https://www.freesion.com/article/34231292646/
中间可能会遇到这些问题:
https://blog.csdn.net/u011573853/article/details/103071178
https://blog.csdn.net/jay463261929/article/details/59591104
为了防止出现其他头文件(如moveit_msgs/DisplayTrajectory.h)找不到的情况:
sudo apt-get install ros-kinetic-moveit
至此,大家可以愉快学习啦!