IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> 软件配置部分——从无到有自主搭建视觉惯性VI-SLAM(vins-mono)平台 -> 正文阅读

[人工智能]软件配置部分——从无到有自主搭建视觉惯性VI-SLAM(vins-mono)平台

随着SLAM的发展,现有的开源方案越来越多,这位优秀博主的整理大家可以看看:
116项开源视觉slam方案

对于VI-SLAM,目前大家研究最多的应该是港科大沈老师团队提出的VINS,接下来我们将从无到有搭建一套基于vins-mono的系统,本文讲到的是软件部分,包含以下几个方面的工作,动手吧!

!!!硬件配置部分在这里

一、系统环境配置
二、Camera驱动安装及配置
三、IMU驱动安装及配置
四、Camera内参标定
五、IMU标定
六、camera and imu 联合标定

一、系统环境配置

既然是从零搭建系统,那还是简略的讲一下ROS环境的配置吧,我没讲到的地方csdn上已经有足够多的的博文供大家参考了呢,动动小手搜一搜。
1、装系统:ubantu18.04
如果用笔记本的话可能有很多同学面临装双系统的问题,只要做好分区工作就好啦,具体的安装步骤都是一样的。此外,win下装虚拟机我是不建议的,我也没这么做过。
2、装ros-melodic,可以参考以下博文
Ubuntu18.04安装ROS Melodic

3、在自己的电脑上跑通vins-mono:
跑通vins_mono并用数据集测试
会遇到的问题有:opencv、eigen、ceres、python等版本不兼容,或者是一些依赖的问题。
想要告诉大家的是,每个人不同的操作会导致不同的问题,但总得来说就是依赖和版本不对应导致的,遇到问题要沉着冷静,去网上看看别人的解决办法,解决不了就重装,下载过程中因为网速慢丢包什么的也是常有的,我最开始接触ubantu时,光双系统也装了四五遍。

二、Camera驱动安装及配置

github下载:
链接直达
安装时记得修改对应的ROS版本号:

sudo apt-get install ros-melodic-pointgrey-camera-driver

按照官网步骤装:

测试驱动:
将相机的USB口插在电脑上,启动驱动的launch文件:

roslaunch pointgrey_camera_driver camera.launch

查看相机的型号:

roslaunch pointgrey_camera_driver bumblebee.launch
rosrun pointgrey_camera_driver list_cameras

可以看到我的相机型号为:
(此处截图)
当一次使用多个 Point Grey 相机时,指定list_cameras给出的序列号:

roslaunch pointgrey_camera_driver camera.launch camera_serial:=12345678

查看返回数据发布的速率:

rostopic hz  [toipc_name]

查看topic的具体内容:

rostopic echo  [toipc_name]

相机图像的可视化:(开启之后选择相应的话题)

rqt_image_view

三、IMU驱动安装及配置

STIM300官网

GITHUB驱动链接直达
clone GitHub上STIM300的驱动,然后根据描述一步步安装即可。

git clone https://github.com/vortexntnu/stim300.git

参考我之前的博文:
ubantu18-ROS环境下配置IMU(STIM300)
(但在我配置驱动过程中找不到SERVICEMODE的入口,有一些小伙伴也提到了这个问题,如果朋友知道,希望不吝赐教,本人感激不尽!)

四、Camera内参标定

ROS中的工具包可以用来进行单目相机的标定:
camera_calibration

  1. 安装编译工具包camera_calibration

首先获取依赖项并编译驱动程序:

rosdep install camera_calibration

列出topic以检查图像是否已发布:

rostopic list

这将显示所有已发布的主题,检查是否有/camera/image_raw ,大多数情况下默认的topic有:

/camera/camera_info
/camera/image_raw

加载将被校准的图像主题:

rosrun camera_calibration cameracalibrator.py --size 8x6 --square 0.108 image:=/camera/image_raw camera:=/camera

这将打开校准窗口,该窗口将突出显示棋盘:
在这里插入图片描述

  1. 移动棋盘格

为了获得良好的标定,我们需要在相机框架中移动棋盘格:

  • 相机左、右、上、下视场的棋盘格;
    X 条 - 左右移动相机
    Y 条 - 上下移动相机
    Size 条 - 朝向、远离和倾斜相机
  • 棋盘格填满整个视野;
  • 棋盘向左、右、上、下倾斜(Skew);

在每一步,保持棋盘静止,直到图像在校准窗口中突出显示。
当CALIBRATE按钮亮起时,单击CALIBRATE查看结果。校准可能需要大约一分钟,窗户可能会变灰,但请稍等,它正在工作。

  1. 标定结果

标定完成后,将在终端中看到结果,并在窗口中看到标定后的图像:
在这里插入图片描述
成功的校准将导致真实世界的直边在校正后的图像中显得笔直;失败的校准通常会导致空白或无法识别的图像,或不保留直边的图像。

校准成功后,可以使用校准窗口顶部的滑块来更改校正图像的大小。0.0 的比例意味着图像的大小被调整为校正后的图像中的所有像素都是有效的。校正后的图像没有边界,但原始图像中的一些像素被丢弃。比例尺为 1.0 意味着原始图像中的所有像素都可见,但校正后的图像具有黑色边框,原始图像中没有输入像素。

对校准结果满意的话,点击COMMIT保存标定结果。

五、IMU标定

采用Allen方差标定imu的随机误差(noise和bias随机游走)。
GITHUB链接

1.按照步骤,首先安装依赖:

sudo apt-get install libdw-dev

2.将code_utils克隆到catkin_ws/src下,修改code_utils中的CMakeLists.txt,加入包含路径:

include_directories( "include/code_utils")

(否则将会出现error:
imu-calibration/src/code_utils/src/sumpixel_test.cpp:2:10: fatal
error: backward.hpp: 没有那个文件或目录 #include “backward.hpp”)

再回到/catkin_make执行:

catkin_make 

3.将imu_utils克隆到catkin_ws/src下,打开文件imu_utils/src/imu_an.cpp,添加:

#include <fstream>

(否则将会出现error:
/home/***/imu-calibration/src/imu_utils/src/imu_an.cpp:69:19:
error: aggregate ‘std::ofstream out_t’ has incomplete type and cannot
be defined)

再回到/catkin_make执行:

catkin_make 

刷新工作空间:
source ~/catkin_ws/devel/setup.bash

4.imu静止的情况下录制两个小时的bag,我这里名为:imu_calibration.bag

复制imu_utils中的A3.launch,命名为STIM300.launch,修改为:

<launch>
    <node pkg="imu_utils" type="imu_an" name="imu_an" output="screen">
        <param name="imu_topic" type="string" value= "/imu_data"/>  //改为自己的topic
        <param name="imu_name" type="string" value= "STIM300"/>  //改不改都行
        <param name="data_save_path" type="string" value= "$(find imu_utils)/data/"/>
        <param name="max_time_min" type="int" value= "120"/>
        <param name="max_cluster" type="int" value= "100"/>
    </node>
</launch>
 

开两个终端,同时倍速播放包和开启launch文件标定:

rosbag play  -r 200 imu_calibration.bag 
roslaunch imu_utils STIM300.launch 

得到标定结果在(find imu_utils)/data/.yaml文件。

本人遇到的问题: 放包之后data里没有输出,经过排查,发现是自己的数据出了问题:
请添加图片描述
可以看到我两个小时的bag只有513680个msgs,200HZ的imu按理说应该有1440000
以上个msgs的。所以重新采数据就成功过了。

六、camera and imu 联合标定

kalibr工具包来标定:https://github.com/ethz-asl/kalibr

  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2022-03-17 22:08:21  更:2022-03-17 22:13:38 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 14:56:42-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码