安装ompl库:(本文使用的是ros-neotic)
sudo apt install ros-noetic-ompl
成功安装之后,编译仍有报错显示:
ompl/base/objectives/PathLengthOptimizationObjective.h : No such file or directory
原因是:ompl库安装的位置一般在
/opt/ros/noetic/include/ompl-1.6/ompl
但是ROS catkin在编译时查找ROS自己的头文件包的路径是:
/opt/ros/noetic/include
解决办法如下:(建立软连接)
sudo ln -s /opt/ros/noetic/include/ompl-1.6/ompl /opt/ros/noetic/include/ompl
再编译的话,就不会再显示头文件报错了.
进行Cmakelist文件配置,不配置的话会出现运行时会出现undifine的错误:
:-1: error: /opt/ros/noetic/include/ompl-1.6/ompl/base/spaces/RealVectorStateSpace.h:103: undefined reference to `vtable for ompl::base::RealVectorStateSpace'
Cmakelist文件:
find_package(catkin REQUIRED COMPONENTS roscpp rviz)
find_package(fcl REQUIRED)
find_package(ompl REQUIRED)
include_directories(${catkin_INCLUDE_DIRS}
${fcl_INCLUDE_DIRS}
${OMPL_INCLUDE_DIRS}
)
catkin_package()
target_link_libraries(package_name_node ${QT_LIBRARIES} ${catkin_LIBRARIES} ${OMPL_LIBRARIES} fcl)
然后就可以使用ompl库和fcl库了.
参考链接:https://blog.youkuaiyun.com/qq_41035283/article/details/120549554