ubutun SLAM2笔记本前置摄像头跑通实时3D点云重建

本文详细记录了在Ubuntu 18.04上从零开始搭建ORB-SLAM2环境的过程,包括安装Linux、双系统配置、OpenCV、ROS、Pangolin等依赖库,并解决了一系列编译错误。作者通过数据集测试和实时摄像头输入展示了SLAM系统的三维重建功能,还分享了摄像头标定的步骤和心得。
摘要由CSDN通过智能技术生成

声明

本篇博客属于原创,从0到1完整搭建了SLAM2的运行环境和相关测试,遇到的诸多问题请参照参考教程提供的博客地址去解决。制作不易,历经坎坷,虽说是作业,还请看官一键三联!!!多多支持。转载,二次创作,请附上本篇地址

参考教程

  1. 设备运行环境:linux操作系统,实现方式将普通windows系统更换为双系统。
    参考自B站博主机器人工匠阿杰的代表作: Windows 和 Ubuntu 双系统从安装到卸载
  2. 软件环境生态以及使用演示:ORBSLAM2
    参考自B站up主计算机视觉life 的视频讲解: ORBSLAM2原理代码详解-1简介安装运行
  3. openCV环境模块安装:opencv-3.4 建议在gitee上搜索对应仓库,zip拉下来解压即可使用。
    参考自CSDN:
    Ubuntu下OpenCV的安装与初步运用
    OpenCV中文官方文档
    (2条消息) Ubuntu18.04下OpenCV3.4.11的安装及使用示例_可乐有点好喝的博客-CSDN博客_ubuntu1804安装opencv3
    下载仓库 · Gitee 极速下载/opencv - Gitee.com
  4. ROS环境 ** ubuntu18.04安装ROS Melodic(最详细配置**
  5. ROS下摄像头标定参考: ** Ubuntu18.04下USB摄像头运行和标定**

我的配置安装流程总结

这是最终版本
安装顺序:

  • ubutun
  • c++ make cmake
  • g2o DBoW2
  • Eigen3 v0.5版
  • Pangolin
  • SLAM2
  • usb_cam
  • camera_calibration

数据集测试(从各个模块到整体)

Eigen3模块

openCV模块(三个测试用例具体可以观看 ubuntu环境下安装opencv教程及测试

  1. 图片处理加一个灰度值。
#include <opencv3/highgui.hpp>
#include <opencv2/opencv.hpp>
using namespace cv;
using namespace std;
int main(int argc, char** argv)
{
        CvPoint center;
    double scale = -3;

        IplImage* image = cvLoadImage("lena.jpg");
        argc == 2? cvLoadImage(argv[1]) : 0;

        cvShowImage("Image", image);


        if (!image) return -1;  center = cvPoint(image->width / 2, image->height / 2);
        for (int i = 0;i<image->height;i++)
                for (int j = 0;j<image->width;j++) {
                        double dx = (double)(j - center.x) / center.x;
                        double dy = (double)(i - center.y) / center.y;
                        double weight = exp((dx*dx + dy*dy)*scale);
                        uchar* ptr = &CV_IMAGE_ELEM(image, uchar, i, j * 3);
						 ptr[0] = cvRound(ptr[0] * weight);
                        ptr[1] = cvRound(ptr[1] * weight);
                        ptr[2] = cvRound(ptr[2] * weight);
                }

        Mat src;Mat dst;
        src = cvarrToMat(image);
        cv::imwrite("test.png", src);

    cvNamedWindow("test",1);    imshow("test", src);
         cvWaitKey();
         return 0;
}

在这里插入图片描述
在这里插入图片描述

Pangolin模块

安装过后,对官方提供的用例进行编译链接 执行可执行程序 HelloPangolin
文件结构如下:
在这里插入图片描述

cd Pangolin/examples/HelloPangolin
cmake .
make
./HelloPangolin

在这里插入图片描述

ROS模块 ROS教程(一): Ubuntu ROS安装详细教程(全过程)+测试程序

为了测试一下我们的ROS是否安装成功,这里我们来测试一个例程——小海龟仿真器。
打开一个新的终端(ctrl+alt+T),启动ROS Master。

roscore

再打开一个新的终端(ctrl+alt+T),启动小海龟仿真器。

rosrun turtlesim turtlesim_node

再打开一个新的终端(ctrl+alt+T),启动小海龟控制节点。

 rosrun turtlesim turtle_teleop_key

在这里插入图片描述

结果分析

数据集测试命令 在ORBSLAM2下终端输入命令

./Examples/Monocular/mono_tum Vocabulary/ORBvoc.txt Examples/Monocular/TUM1.yaml /home/chen/catkin_ws/src/ORB_SLAM2/Downloads/rgbd_dataset_freiburg1_xyz

在这里插入图片描述

SLAM2 跑数据集

没有对笔记本摄像头进行位置标定前使用前置摄像头实时三维点云重建

//开启电脑的摄像头  主要启动文件是 usb_cam-test.launch,修改对应参数就可以实现摄像头的切换

//用于解决出现not usb_cam的错误
source ~/catkin_ws/devel/setup.bash
//开启摄像头
roslaunch usb_cam usb_cam-test.launch
//开始slam2进行重建
rosrun ORB_SLAM2 Mono ~/catkin_ws/src/ORB_SLAM2/Vocabulary/ORBvoc.txt ~/catkin_ws/src/ORB_SLAM2/Examples/ROS/ORB_SLAM2/Asus.yaml

在这里插入图片描述

SLAM2 笔记本前置摄像头实时三维重建(未标定位置)

摄像头位置标定 详细博客可以参照下面两篇
Ubuntu18.04下USB摄像头运行和标定
摄像头标定跑通ORB_SLAM2

在这里插入图片描述在这里插入图片描述
只说重点: 完成x y 的进度条之后,才可以进一步save 保存 commit提交。对于输出的压缩包内容和地址,则是需要注意的地方。标定结果保存在/tmp/calibrationdata.tar.gz这个压缩包,这个地方去文件-》其他位置-》计算机-》tmp文件夹下面。内容是多张图片和标记位置信息的txt格式文件和yaml格式文件。

将ost.yaml文件复制到ORB_SLAM2/Examples/Monocular文件下,将其中的参数改为ORB_SLAM2/Examples/Monocular/TUM1.yaml文件的格式。

SLAM2摄像头位置标定(花絮)

使用标定后的文件来实时输入图像信息,重建

rosrun ORB_SLAM2 Mono ~/catkin_ws/src/ORB_SLAM2/Vocabulary/ORBvoc.txt /home/chen/catkin_ws/src/ORB_SLAM2/Examples/Monocular/myUsbTUM.yaml 

在这里插入图片描述

SLAM2 笔记本前置摄像头实时三维重建(标定位置)

心得体会

计算机视觉是实现人工智能必不可少的一步,都说眼睛是心灵的窗户,是感知世界的第一道程序。同时,对于人工智能也是如此。通过摄像头将二维的图片结合上我们的算法,使得我们能够予以二维世界升级为三维世界的必要元素——时间。在一个虚拟的世界中构建出一比一还原的3D点云,计算机的核心大脑根据这个三维的世界作出对应的处理,amazing!
算法是最最最核心的,也是最难攻破的。作为一个计算机专业的学生,既对这个领域怀有强烈的好奇心,也对前人做出的贡献由衷敬佩。同时,作为CV通识教育课程,我的收获满满,熟悉Linux的操作方法,拥有两台电脑,问题解决的途径等等等。仅在此作为纪念。

相关资源地址包括(18.04系统 ROS OpenCV 测试数据集等)

https://pan.baidu.com/s/1zH-pn4x5bbArxb89hgXNPA 提取码: 8l25

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值