三个月转行SLAM(第一周)--环境配置
共 3665字,需浏览 8分钟
·
2021-10-25 12:55
点击下方卡片,关注“新机器视觉”公众号
视觉/图像重磅干货,第一时间送达
作者:莫慢待
来源:知乎
一个周过去了
还没放弃
先说一下上周的学习体验
从上一篇说要转行slam开启了海口学习法,已经快一周了。中间忙了2、3天工作,对slam的学习进行了一些摸索,泛读了slam14讲的第一版本,昨天又购买了新书第二版本的,还好第一版本是用的京东会员看的免费电子版本;不然就有点“亏大了”,泛读了北航老师和百度联合编写的自动驾驶系列的汽车环境感知一书;同时看了3D视觉工坊推出的多传感器融合课程,这个内容和环境感知这书讲的内容差不多;还有浙大出品的slam暑期课程、看了前面两课,这两课程讲了个寂寞,大概的风格就是“这样 然后这样,最后就这样了...”,定位应该是科普课程就没有后面的了,有时间再看看后面大佬的课程,毕竟这个课程很多不同的主讲人。浙大谭平老师的计算机视觉讲的很不错!
总的来讲还是slam十四讲的质量最高,理论与实践并重,所以我的第一节段学习目标是基础入门所以侧重为slam十四讲。目前是处于slam算法的优化阶段,如十四讲最后列举了有一些成熟的系统,我们需要在这些框架系统的基础上来完善,而不没有必要重新写,至少现在没有这个能力。节前需要做的事情就是把十四讲的代码都跑通,并对照书本理解。
十三讲是设计了一个slam系统,应该为最全的代码。我想要集中解决第三方库的问题,所以从13讲代码入手了。在github的slambook2的路径下,有第三方库的版本号,使用该版本可以和作者保持一致的版本。我尝试后发现,这个版本gcc要求版本比较低,由于我安装的是20.04的系统,不想降级gcc等。所以我尝试下载最新的库,反正不可能老版本的库一直用。
·在ubuntu20.04下,使用命令apt-get安装gcc、g++、make 、cmake。
·使用官网教程,安装opencv环境,Installation in Linux。
·下载cloin,不出意外会自动识别gcc、g++等。
打开slam14讲的ch5/imageBasics,对CMakeLists作相应的修改,添加以下一句话,不然会报错,undefined reference to `cv::String::allocate(unsigned long)'。
find_package( OpenCV 3 REQUIRED )
运行13章需要的库安装。
·Pangolin ,直接按照github源码编译安装就好,如果需要eigen3没有安装,使用命令安传Eigen3. 如果是已经安装了也报错,卸载重新安装。
sudo apt-get install libeigen3-dev
sudo apt-get remove libeigen3-dev
sudo apt-get remove --auto-remove libeigen3-dev
cmake -DCMAKE_POSITION_INDEPENDENT_CODE=TRUE ...
/usr/bin/ld: ../../lib/libmyslam.so: undefined reference to `std::locale fmt::v8::detail::locale_ref::get<std::locale>() const'
find_package(fmt)
target_link_libraries(myslam fmt::fmt)。
sudo apt update
sudo apt install libgoogle-glog-dev
·安装g2o
·安装ceres,需要注意有一个eigen3这个依赖有源码编译和apt-get 的两种安装方式,用于编译ceres的方式要和实际连接使用的一致。不然会报错,Failed to find Ceres - Missing required Ceres dependency: Eigen version ,please set Eigen3_DIR。
3.cmake的时候指定Eigen3_DIR,cmake ../ -DEigen3_DIR=/usr/lib/cmake/eigen3
PCL 的安装 在12讲的代码里面需要使用
需要安装依赖,这里的依赖注意不要重复覆盖安装了了不一致的版本,我仅仅安装了 libflann-dev,官方给出的依赖也没有这么多。比如egien3 boost 这些依赖在之前就装过了就不装了,避免更新了这些库的版本导致之前的安装出错。使用是官网源码编译
sudo apt-get update
sudo apt-get install git build-essential linux-libc-dev
sudo apt-get install cmake cmake-gui
sudo apt-get install libusb-1.0-0-dev libusb-dev libudev-dev
sudo apt-get install mpi-default-dev openmpi-bin openmpi-common
sudo apt-get install libflann1.8 libflann-dev
sudo apt-get install libeigen3-dev
sudo apt-get install libboost-all-dev
sudo apt-get install libvtk5.10-qt4 libvtk5.10 libvtk5-dev
sudo apt-get install libqhull* libgtest-dev
sudo apt-get install freeglut3-dev pkg-config
sudo apt-get install libxmu-dev libxi-dev
sudo apt-get install mono-complete
sudo apt-get install qt-sdk openjdk-8-jdk openjdk-8-jre
cmake -DCMAKE_BUILD_TYPE=None -DCMAKE_INSTALL_PREFIX=/usr \
-DBUILD_GPU=ON -DBUILD_apps=ON -DBUILD_examples=ON \
-DCMAKE_INSTALL_PREFIX=/usr ..
参考资料
https://blog.csdn.net/fsencen/article/details/79386570
—版权声明—
仅用于学术分享,版权属于原作者。
若有侵权,请联系微信号:yiyang-sy 删除或修改!