1. orb-slam2 用的 https://github.com/appliedAI-Initiative/orb_slam_2_ros
运行 roslaunch orb_slam2_ros orb_slam2_zed2_stereo.launch
报错:
undefined symbol: _ZN5DBoW24FORB1LE
解决办法:
这是因为在其它地方安装过DBoW2,找错位置是因为有同名的文件,那把它改的不是同名就行:
(1) 在 /home/sqw/ROS_WS/orbslam2_ws/src/orbslam2/orb_slam2/Thirdparty/DBoW2/CMakeLists.txt 下:
add_library(DBoW2SHARED ${SRCS_DBOW2} ${SRCS_DUTILS})
target_link_libraries(DBoW2 ${OpenCV_LIBS})
改为:
add_library(DBoW2_1 SHARED ${SRCS_DBOW2} ${SRCS_DUTILS})
target_link_libraries(DBoW2_1 ${OpenCV_LIBS})
(2) 在 /home/sqw/ROS_WS/orbslam2_ws/src/orbslam2/CMakeLists.txt 下:
${PROJECT_SOURCE_DIR}/orb_slam2/Thirdparty/DBoW2/lib/libDBoW2.so
catkin_package (
CATKIN_DEPENDS roscpp rospy std_msgs cv_bridge image_transport tf sensor_msgs dynamic_reconfigure message_runtime
LIBRARIES {PROJECT_NAME} libDBoW2 libg2o
)
install(TARGETS ${PROJECT_NAME} DBoW2 g2o
这几个地方的DBoW2 都改为DBoW2_1。
2. 解决orb-slam执行中,提示undefined symbol: _ZN5DBoW24FORB1LE问题_dna葡萄糖的博客-CSDN博客
这个解决方案还有点没搞明白