踩坑 视觉SLAM 十四讲第二版 ch13 编译及运行问题

一、安装Gteset 库

sudo apt-get install libgtest-dev
cd /usr/src/gtest
sudo mkdir build 
cd build
sudo cmake ..    //一定要以sudo的方式运行,否则没有写入权限
sudo make        //这个也一样要以sudo的方式
sudo cp libgtest*.a /usr/local/lib   //将生成的libgtest.a 和 libgtest_main.a 拷贝到系统的lib路径下

二、修改fmt

在所有 CmakeList文件中后面添加 fmt,需要修改的有以下几处:

/app下的:

add_executable(run_kitti_stereo run_kitti_stereo.cpp)
target_link_libraries(run_kitti_stereo myslam ${THIRD_PARTY_LIBS} fmt ) 

/src下的:这里还需要将SHARE改为STATIC:

add_library(myslam STATIC
        frame.cpp
        mappoint.cpp
        map.cpp
        camera.cpp
        config.cpp
        feature.cpp
        frontend.cpp
        backend.cpp
        viewer.cpp
        visual_odometry.cpp
        dataset.cpp)

target_link_libraries(myslam
        ${THIRD_PARTY_LIBS} fmt )

/test下的:

SET(TEST_SOURCES test_triangulation)

FOREACH (test_src ${TEST_SOURCES})
    ADD_EXECUTABLE(${test_src} ${test_src}.cpp)
    TARGET_LINK_LIBRARIES(${test_src} ${THIRD_PARTY_LIBS} myslam fmt )
    ADD_TEST(${test_src} ${test_src})
ENDFOREACH (test_src)

三、修改kitti_stereo.cpp

需要将 assert(vo->Init() == true这行注释,并改为vo->Init()

myslam::VisualOdometry::Ptr vo(
        new myslam::VisualOdometry(FLAGS_config_file));
    // assert(vo->Init() == true);
    vo->Init();
    vo->Run();

 四、下载数据集

给大家分享一下百度网盘:kitti  提取码:2p1k

(整体文件很大,约22G,可以先下载一个00序列)

 五、修改/config下的default.yaml中的数据集的路径

%YAML:1.0
# data
# the tum dataset directory, change it to yours! 
# dataset_dir: /media/xiang/Data/Dataset/Kitti/dataset/sequences/00
//下面是需要你根据自己的路径修改:
dataset_dir: /media/tzy/TZY-YP/VSLAM/Dataset/KITTI/data_odometry_gray/dataset/sequences/00

# camera intrinsics
camera.fx: 517.3
camera.fy: 516.5
camera.cx: 325.1
camera.cy: 249.7

num_features: 150
num_features_init: 50
num_features_tracking: 50

六、编译运行

cd ch13
mkdir build
cd build
cmake ..
make

测试:

cd bin
./test_triangulation

 运行:

注意不要在/bin 路径下执行,需要在/ch13下运行

回到上一级目录:
cd ..
./bin/run_kitti_stereo

运行效果:

七、如果需要显示全部地图轨迹

修改viewer.cpp中UpdateMap()函数:

void Viewer::UpdateMap() {
    std::unique_lock<std::mutex> lck(viewer_data_mutex_);
    assert(map_ != nullptr);
    active_keyframes_ = map_->GetActiveKeyFrames();
    //active_landmarks_ = map_->GetActiveMapPoints();
    active_landmarks_ = map_->GetAllMapPoints();   // 改为all mappoints,显示整体地图
    map_updated_ = true;
}

重新编译运行,效果如图,可以看出轨迹和地图错位严重,并且01序列直接跟踪失败

  • 3
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 12
    评论
### 回答1: 《视觉SLAM十四第二版PDF是一本关于视觉定位与地图构建技术的经典教材,由国内知名专家学者合作撰写而成。本书系统地介绍了基于视觉传感器的SLAM技术的各个方面,包括相机模型、图像特征提取、初始姿态估计、运动估计、地图构建、回环检测等。同时,本书还特别关注了SLAM方法的实际应用,解了多个真实场景下的SLAM应用案例,并介绍了如何使用OpenCV、G2O等开源工具实现SLAM算法。此外,本书还对SLAM技术的最新进展进行了介绍,如基于深度学习的特征提取与描述、多目标视觉SLAM、无人机视觉SLAM等。本书所涉及的内容深入浅出,既适合初学者入门,也适合高级研究人员深入了解SLAM技术的最新进展。该书是目前国内最权威、最全面的视觉SLAM入门教材之一,值得广大从事机器人、计算机视觉、机器人自主导航、无人机等相关领域的科研人员、工程师和学生学习使用。 ### 回答2: 《视觉SLAM十四第二版PDF》是一本关于算法技术的经典教材,主要介绍了SLAM技术的应用和原理。本教材全面详细地介绍了视觉SLAM的相关知识,从基础的数学知识开始,述了传感器、滤波、3D点云和视觉测量等原理,帮助读者逐步深入了解SLAM技术的实现过程。 此外,《视觉SLAM十四第二版PDF》还详细介绍了几种常用的视觉SLAM算法,包括基于特征匹配的视觉SLAM算法VFH、基于直接法的RGB-D SLAM算法和基于半稠密法的DSO算法。对于学习SLAM的人来说,这些算法的深入掌握能够让他们更好地理解SLAM的各种应用场景和内部原理。 此外,本教材还包括各种真实案例以及实验代码,帮助读者更好地了解SLAM技术的应用和实现方法。总体而言,对于想要深入了解SLAM技术和拓展相关应用的读者来说,《视觉SLAM十四第二版PDF》是一本经典的参考教材,具有极高的价值和实用性。 ### 回答3: 《视觉slam十四 第二版 pdf》是一本涉及到计算机视觉和机器人技术的重要书籍。这本书主要介绍了基于视觉技术的跟踪和定位算法SLAMSLAM是一种用来对无人机、自动驾驶汽车和机器人等进行实时建图、路径规划和导航的技术。 本书包括十四个主题,内容涉及相机模型、卡尔曼滤波器、非线性优化、回环检测等各个方面。这本书适合于计算机视觉和机器人领域的专业人员和学生,以及对这些领域感兴趣的人。 此外,本书不仅仅是介绍了SLAM算法,还对视觉slam的一些经典算法进行了详细的解,同时也包括最新的研究成果,以及许多高质量的实验结果和实际应用案例。 通过阅读这本书,读者将能够全面了解视觉slam技术的基础和应用,对理解和掌握slam算法具有很大的帮助和作用。除此之外,本书也是一个很好的参考工具,尤其适合从事相关技术研究和开发的人员。
评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值