mpl_ros

mpl_ros是一个Motion Primitive Library的ros wrapper。官网
系统环境
ubuntu20.04+ros noetic
apt安装的pcl1.10,自带vtk7.1

1 安装

参考官网

mkdir -p mpl_ros/src
cd mpl_ros/src
git clone https://github.com/sikang/mpl_ros.git
cd mpl_ros/
git submodule update --init --recursive  
cd ~/mpl_ros
catkin config -DCMAKE_BUILD_TYPE=Release
catkin build

2 报错

2.1 mapping_utils/mesh_sampling.cpp文件报错

1 fatal error: pcl/common/transforms.h: No such file or directory #include <pcl/common/transforms.h>
2 undefined reference to `rosbag::Bag::toHeaderString[abi:cxx11](ros::Time const*) const’
这两个错误需要修改planning_ros_utils下的cmakelists.txt

//第四行改成c++14
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++14 -Wall -Wno-deprecated-declarations")
//第5行加上找PCL包
find_package(PCL REQUIRED)
//第14行包含目录加上PCL
include_directories(${EIGEN3_INCLUDE_DIRS} ${MOTION_PRIMITIVE_LIBRARY_INCLUDE_DIRS} ${PCL_INCLUDE_DIRS})
//第42行将mesh_sampling链接到PCL库
target_link_libraries(mesh_sampling ${PCL_LIBRARIES})
//第二个错误需要加入rosbag依赖第六行加上
find_package(catkin REQUIRED COMPONENTS rviz roscpp rosbag)

3 fatal error: pcl_conversions/pcl_conversions.h: No such file or directory
48 | #include <pcl_conversions/pcl_conversions.h>
这个错误需要安装一个sudo apt install libpcl-conversions-dev
4 如果报vtk相关的错误,先把vtk删了,这会连带着把pcl也删了,然后直接安装pcl就自带vtk了。

sudo apt remove libvtk7-dev libvtk7.1p
sudo apt install libpcl-dev
sudo apt install ros-noetic-pcl-conversions

2.2 planning_ros_utils/src/planning_rviz_plugins/map_display.cpp文件报错

error: ‘class rviz::PointCloudCommon’ has no member named ‘getCallbackQueue 39 update_nh_.setCallbackQueue(point_cloud_common_->getCallbackQueue());
这个错误需要把39行函数换成update_nh_.setCallbackQueue(context_->getThreadedQueue());

2.3 mpl_external_planner/include/mpl_external_planner/ellipsoid_planner/ellipsoid_util.h文件报错

fatal error: pcl/kdtree/kdtree_flann.h: No such file or directory
8 | #include <pcl/kdtree/kdtree_flann.h>
这两个错误需要修改mpl_test_node下的cmakelists.txt

//第8行改成c++14
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++14 -Wall -Wno-deprecated-declarations")
//第20行加上找PCL包
find_package(PCL REQUIRED)
//第26行包含目录加上PCL
include_directories(${PCL_INCLUDE_DIRS} ${EIGEN3_INCLUDE_DIR} ${MOTION_PRIMITIVE_LIBRARY_INCLUDE_DIRS} ${DECOMP_UTIL_INCLUDE_DIRS})
//第41行将ellipsoid_planner_node链接到PCL库
target_link_libraries(ellipsoid_planner_node ${MOTION_PRIMITIVE_LIBRARY_LIBRARIES} ${PCL_LIBRARIES})

:undefined reference to大都和库的链接有关。
接下来就可以运行学习了。

  • 4
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值