开源代码地址https://github.com/abhineet123/ORB_SLAM2

我只复现了使用自己的相机进行orbslam2创建栅格地图并保存,并对复现过程进行记录。如果想深入理解代码,跑数据集或其他的,可以在代码主目录中的step文件中查看了解。

1.下载代码

git clone https://github.com/abhineet123/ORB_SLAM2

2.安装依赖库
和普通orbslam2的库安装过程一样,这里提供一个好用的博客,可以照着里面安装库的方法安好Pangolin OpenCV Eigen
ubuntu18.04 安装 ORB-SLAM2
本人使用的Pangolin v0.5(必须0.5) opencv3.3.1 Eigen3.3.4,虽然大篇警告但也可以编译成功,还是按照上面链接进行安装。
3.编译工程
进入下载的工程主目录中为脚本文件添加可执行权限并执行,需要注意如果是虚拟机或者电脑性能不好需要打开build.sh文件修改make -j为make -j4或者make -j1,然后再执行。
先执行非ros环境的工程编译:

cd ORB_SLAM2
chmod +x build.sh
./build.sh

再进行ros环境的工程编译:(上一步编译需要先进行完成)

chmod +x build_ros.sh
./build.sh

过程中可能会报各种错,复制报错内容百度解决即可,都能解决。
4.运行
我使用自己的d435i相机来运行,没运行数据集。如果使用的是usb相机,先百度安装usb-cam这个ros驱动包,能获得图像再向下进行:
主要是通过启动Monopub 接收图像进行ORBSLAM2系统的启动运行并发布地图点等话题,启动Monosub 接收地图点等进行栅格地图绘制。
在工程主目录中按顺序执行:

rosrun ORB_SLAM2 Monopub Vocabulary/ORBvoc.txt Examples/Monocular/demo_cam.yaml -1 /camera/color/image_raw

其中
demo_cam.yaml中的相机参数需要根据自己的内容修改,如果后面很难跑起来很难跟踪到或者根本跟踪不了,一般就是参数没标定好的问题。
/camera/color/image_raw是自己的相机发布的图像的话题,启动相机节点后可以通过rostopic list查看。

然后新开终端进工程主目录后运行:

rosrun ORB_SLAM2 Monosub 30 2 6 -6 6 -6 0.55 0.50 1 5

至于里面的参数,想要了解可以去研究代码,github中issue作者也回复了这个参数的具体含义。

最后运行相机图像发布节点:(usb相机的话自行百度如何发布),或者播放录制的包。

到这就可以看到ORBSLAM2经典界面以及创建的栅格地图了。在第二个运行Monosub 的终端中按s键回车可以保存地图到主目录的result文件夹。

详情请阅读原工程

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐