【ZEDSLAM】Ubuntu18.04系统ZED 2i双目相机SDK安装、联合标定、SLAM测试

本文主要是介绍【ZEDSLAM】Ubuntu18.04系统ZED 2i双目相机SDK安装、联合标定、SLAM测试,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

0.设备、环境和说明

笔记本电脑i5-8300H、GTX 1060、32GRAM
因为后面要测试Vins-Fusion和ORB-SLAM3,所以推荐安装Ubuntu 18.04(或者Ubuntu 20.04) + ROS 1(不建议用比Ubuntu18更低的版本)
ROS一键安装命令:

wget http://fishros.com/install -O fishros && . fishros

ZED 2i:双目相机配有9轴IMU
此前电脑已经配置好:Ubuntu 18.04,ROS 1,Vins-Fusion,OpenCV 3.2.0,ceres-solver 1.14.0,CMake 3.12,Eigen 3.3.3,g2o(20年版本),Pangolin-0.6,Kalibr,imu_code等。

相机的usb接口要插在电脑的usb3.0协议的插口中。

1.安装ZED SDK3.8.2

官方手册Linux版本: https://www.stereolabs.com/docs/installation/linux/

选择静默安装即可,跳过CUDA检查。ZED相机依赖CUDA加速,所以电脑必须要安装CUDA!

The installer can be launched in silent mode with the – silent option (with a space between – and silent).

其中关于CUDA的解释:

CUDA 是 ZED SDK 用来在显卡上运行快速 AI 和计算机视觉任务的 NVIDIA® 库。在 ZED SDK 安装过程中,如果您的计算机上未检测到 CUDA,ZED SDK会自动下载并安装 CUDA。

建议跳过CUDA检查,然后根据自己显卡版本手动安装CUDA,速度会快一些。
CUDA官网:https://developer.nvidia.com/cuda-toolkit-archive
所以,最后的安装SDK指令最后应该是加上: – silent skip_cuda

安装完成后重启系统。安装全程不要加sudo。

z@h:~/zed/tools$ tree
.
├── ZED_Calibration
├── ZED_Depth_Viewer
├── ZED_Diagnostic
├── ZED_Explorer
├── ZEDfu
├── ZED_Sensor_Viewer
└── ZED_SVO_Editor

tools里面有一些小工具,可以检查相机原件是否正常。

例如打开

2.安装ZED-ROS

上一步相当于是安装了相机驱动,保证了相机能够运行,下面是安装ZED相机的ROS节点,使用ROS来控制相机的话题和指令:https://www.stereolabs.com/docs/ros/

先创建一个zed的专属工作空间:

mkdir -p ~/zed_ws/src
cd zed_ws/src/
catkin_init_workspace

zed-ros-wrapper是一个catkin包,github下载链接:https://github.com/stereolabs/zed-ros-wrapper
下载完成后,将zed-ros-wrapper改成zed_ros_wrapper

找准自己安装的SDK对应的版本,在右侧的release中查找,手动下载压缩包,解压缩后放到src文件夹下。然后安装github中的命令开始编译:

cd ..
rosdep install --from-paths src --ignore-src -r -y

报错:

在这里插入图片描述

错误原因比较清楚,是没有找到zed_interfaces这个依赖项。依然是找到对应的版本v1.2:https://github.com/stereolabs/zed-ros-interfaces/releases/tag/v1.2,依然是改名为zed_ros_interfaces,解压缩后直接放到src文件夹下:

z@h:~/zed_ws$ tree -L 2
.
└── src├── CMakeLists.txt -> /opt/ros/melodic/share/catkin/cmake/toplevel.cmake├── zed_ros_interfaces└── zed_ros_wrapper

继续重新上面的操作:

rosdep install --from-paths src --ignore-src -r -y
cd ..
catkin_make -DCMAKE_BUILD_TYPE=Release

安装完成!

为了后续启动方便,可以编辑环境变量将节点添加进去:

gedit ~/.bashrc
## 添加:
source ~/zed_ws/devel/setup.bash

ZED 2i附加驱动、功能很丰富,不需要的例如zed-ros-examle可以不安装。

3.ROS相关命令

ROS是一个负责通讯的机器人控制系统,其信号连接是通过节点之间的发布接收
正常来说,如果没有启动roscore打开ros是没有任何话题和节点的。
所以我们在终端中输入,打开相机,观察相机正面Logo旁边会亮起蓝色指示灯:

roslaunch zed_wrapper zed2i.launch

在这里插入图片描述

a.查看节点,负责通信

rosnode list

b.查看话题

rostopic list

c.查看节点关系图(两端是节点,中间用话题传输)

rosrun rqt_graph rqt_graph

请添加图片描述

d.查看话题信息
例如打开相机后查看imu这个话题下的信息,确实就是查看imu实时工作状态。

rostopic echo /zed2i/zed_node/imu/data

e.查看话题频率

rostopic hz /zed2i/zed_node/imu/data

f.用rqt来看(rostopic list的可视化形式)

rosrun rqt_topic rqt_topic

勾选前面的对号,可以查看传输带宽和频率

g.修改话题频率

rosrun topic_tools throttle messages {topic1}  {想要修改的频率}  {topic2}

举例:

rosrun topic_tools throttle messages /zed2i/zed_node/imu/data 20.0 /zed2i/zed_node/imu/data_20

再次rostopic hz这个话题/zed2i/zed_node/imu/data_20

rostopic hz /zed2i/zed_node/imu/data_20

在这里插入图片描述
这些是后续运行SLAM常用的几个查看、修改指令,因为在标定过程中需要降低相机频率实现稳定等情况。

所有强烈建议使用X-超级终端窗口,不要使用Ubuntu自带的了。

sudo apt-get install terminator

Ctrl+Shift+O 和 Ctrl+Shift+E 实现一个窗口纵向和横向分栏。

可能遇到的小问题:
1.可能遇到Ctrl+Shift+E在terminator中失效的情况,这是因为安装的搜狗输入法快捷键冲突了。
2.有时候快捷键打不开terminator或者直接失灵了,检查一下你的Python版本是不是更换了,因为安装的时候默认绑定到了你的当前Python上。

h.录制rosbag

## 录制所有话题
rosbag record -a
#为文件命名
rosbag record -O bag_name.bag /topics.. 
#为文件名字做前缀
rosbag record -o bag_name /topics.. 

关于rosbag的录制和播放命令很多,详细可以查看官网或者参考博客:rosbag数据记录工具命令详解

4.双目相机标定

4.1 说明

像之前的介绍INDEMIND相机标定的博客一样,依然使用kalibr工具箱来标定。

Kalibr工具箱安装参考博客:【INDEMIND相机运行SLAM】

首先相机标定对稳定性很高,所以要对相机降频为4hz(官方推荐);其次要打开一个可视化窗口rviz来观察是否保证整个标定板信息全部位于图像中央;最后供kalibr处理的rosbag里面的数据格式(分辨率为640*480)要和后续测试数据相同(这一点容易被忽视)。

文献Porting A Visual Inertial SLAM Algorithm To Android Devices中:
These two different inputs led to the calibration results printed in Table 1 & 2. …Modern flat-panel displays serve the purpose of a perfect plane reasonably well.
可以看出,与显示器屏幕的重投影误差相比,印刷棋盘的误差要打大。其原因大概是由于打印机墨水量较多,打印的纸张上出现了轻微不均匀的波浪。表面不完全平坦导致误差增加两倍以上。现代平板显示器相当好的实现了完美平面的目的。

所以在标定的时候用显示器或者Pad是可以的。

之前在进行相机标定的时候都是没有安装严格规范流程:相机标定的时候是相机固定,标定板目标移动;后续联合标定的时候需要加入惯导信息所以是标定板固定,相机做6自由度激活运动。

这次尝试固定相机,将其架在三脚架上,手持平板运动。

4.2 修改话题频率和相机分辨率

通过rqt来查看我们需要的话题原生频率是多少:

rosrun rqt_topic rqt_topic

两个相机的原生频率为15hz,

4.3 rviz可视化工具

打开rviz,rviz是ros系统下的一个可视化工具,可以添加需要的话题来显示。

rosrun rviz rviz

默认打开情况是什么话题都没有的。

在这里插入图片描述

这里说明一点,工业相机与网络usb摄像头(webcam)或者手机摄像头有区别的是,工业相机是做了出厂标定的,所以在相机话题下有类似raw-image和rect-image两种话题,为了更准确,这里直接选择黑白去畸变后的图像。
点击左边下方Add按钮,切换到By topic界面,我们之前是打开了zed-ros的节点的,所有zed相机的所有话题都在其中显示。这里选择zed2i/zed_node/left/image_rect_gray和zed2i/zed_node/right/image_rect_gray里面的Camera,点击OK。

在这里插入图片描述

说明一下,双目相机左右目是以前进方向为准,不要搞反了。

在这里插入图片描述

这篇关于【ZEDSLAM】Ubuntu18.04系统ZED 2i双目相机SDK安装、联合标定、SLAM测试的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/436324

相关文章

Maven如何手动安装依赖到本地仓库

《Maven如何手动安装依赖到本地仓库》:本文主要介绍Maven如何手动安装依赖到本地仓库问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、下载依赖二、安装 JAR 文件到本地仓库三、验证安装四、在项目中使用该依赖1、注意事项2、额外提示总结一、下载依赖登

如何在Mac上安装并配置JDK环境变量详细步骤

《如何在Mac上安装并配置JDK环境变量详细步骤》:本文主要介绍如何在Mac上安装并配置JDK环境变量详细步骤,包括下载JDK、安装JDK、配置环境变量、验证JDK配置以及可选地设置PowerSh... 目录步骤 1:下载JDK步骤 2:安装JDK步骤 3:配置环境变量1. 编辑~/.zshrc(对于zsh

如何在pycharm安装torch包

《如何在pycharm安装torch包》:本文主要介绍如何在pycharm安装torch包方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录在pycharm安装torch包适http://www.chinasem.cn配于我电脑的指令为适用的torch包为总结在p

在PyCharm中安装PyTorch、torchvision和OpenCV详解

《在PyCharm中安装PyTorch、torchvision和OpenCV详解》:本文主要介绍在PyCharm中安装PyTorch、torchvision和OpenCV方式,具有很好的参考价值,... 目录PyCharm安装PyTorch、torchvision和OpenCV安装python安装PyTor

Python Transformer 库安装配置及使用方法

《PythonTransformer库安装配置及使用方法》HuggingFaceTransformers是自然语言处理(NLP)领域最流行的开源库之一,支持基于Transformer架构的预训练模... 目录python 中的 Transformer 库及使用方法一、库的概述二、安装与配置三、基础使用:Pi

利用Python快速搭建Markdown笔记发布系统

《利用Python快速搭建Markdown笔记发布系统》这篇文章主要为大家详细介绍了使用Python生态的成熟工具,在30分钟内搭建一个支持Markdown渲染、分类标签、全文搜索的私有化知识发布系统... 目录引言:为什么要自建知识博客一、技术选型:极简主义开发栈二、系统架构设计三、核心代码实现(分步解析

如何解决mmcv无法安装或安装之后报错问题

《如何解决mmcv无法安装或安装之后报错问题》:本文主要介绍如何解决mmcv无法安装或安装之后报错问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录mmcv无法安装或安装之后报错问题1.当我们运行YOwww.chinasem.cnLO时遇到2.找到下图所示这里3.

Python 安装和配置flask, flask_cors的图文教程

《Python安装和配置flask,flask_cors的图文教程》:本文主要介绍Python安装和配置flask,flask_cors的图文教程,本文通过图文并茂的形式给大家介绍的非常详细,... 目录一.python安装:二,配置环境变量,三:检查Python安装和环境变量,四:安装flask和flas

Win11安装PostgreSQL数据库的两种方式详细步骤

《Win11安装PostgreSQL数据库的两种方式详细步骤》PostgreSQL是备受业界青睐的关系型数据库,尤其是在地理空间和移动领域,:本文主要介绍Win11安装PostgreSQL数据库的... 目录一、exe文件安装 (推荐)下载安装包1. 选择操作系统2. 跳转到EDB(PostgreSQL 的

Python FastAPI+Celery+RabbitMQ实现分布式图片水印处理系统

《PythonFastAPI+Celery+RabbitMQ实现分布式图片水印处理系统》这篇文章主要为大家详细介绍了PythonFastAPI如何结合Celery以及RabbitMQ实现简单的分布式... 实现思路FastAPI 服务器Celery 任务队列RabbitMQ 作为消息代理定时任务处理完整