记录:ubuntu18下使用karlibr标定zed双目相机

2023-11-04

一 karlibr的安装

1)安装依赖

sudo apt-get install python-setuptools python-rosinstall ipython libeigen3-dev libboost-all-dev doxygen libopencv-dev ros-melodic-vision-opencv ros-melodic-image-transport-plugins ros-melodic-cmake-modules python-software-properties software-properties-common libpoco-dev python-matplotlib python-scipy python-git python-pip ipython libtbb-dev libblas-dev liblapack-dev python-catkin-tools libv4l-dev
sudo pip install python-igraph --upgrade

2)创建工作区间

mkdir -p ~/kalibr_workspace/src
cd ~/kalibr_workspace
source /opt/ros/melodic/setup.bash
catkin init
catkin config --extend /opt/ros/melodic
catkin config --merge-devel # Required for catkin_tools >= 0.4.
catkin config --cmake-args -DCMAKE_BUILD_TYPE=Release

3)安装kalibr

cd ~/kalibr_workspace/src
git clone https://github.com/ethz-asl/Kalibr.git

进行编译

cd ~/kalibr_workspace
catkin build -DCMAKE_BUILD_TYPE=Release -j4

source一下

source ~/kalibr_workspace/devel/setup.bash

到这里第一步kalibr安装完成

二 下载标定板

官网上的试过很多次,无法下载,所以选择自己创建标定版
1)创建二维码格式的棋盘

kalibr_create_target_pdf --type apriltag --nx 6 --ny 6 --tsize 0.088 --tspace 0.3

这一步运行完会生成标定板图片 .pdf格式。

2)需要自己创建标定板的yaml参数文件

touch aprilgrid.yaml
参数文件内容如下
target_type: 'aprilgrid' #gridtype
tagCols: 6               #number of apriltags
tagRows: 6               #number of apriltags
tagSize: 0.088           #size of apriltag, edge to edge [m]
tagSpacing: 0.3          #ratio of space between tags to tagSize

3)将标定板图片打印出来后,用尺子测量一下图中二维码的边长,对aprilgrid.yaml 文件进行修改。
二维码的边长对应tagsize,我这里测出来的二维码边长是2.45cm,即0.024m。
小方格的边长是0.75cm。
tagSpacing=0.75/2.45=0.3
修改参数文件名april_6x6.yaml,和内容:

target_type: 'aprilgrid' #gridtype
tagCols: 6               #number of apriltags
tagRows: 6               #number of apriltags
tagSize: 0.024           #size of apriltag, edge to edge [m]
tagSpacing: 0.3          #ratio of space between tags to tagSize

三 开始进行录制数据

1)启动zed相机节点 没什么好说的

roslaunch zed_wrapper zed.launch

2)zed相机通常以60Hz左右的频率进行录制,而kalibr标定又要求频率不能过高,所以进行降帧,频率设为4hz

rosrun topic_tools throttle messages /zed/zed_node/left/image_rect_color 4.0 /zedl 
rosrun topic_tools throttle messages /zed/zed_node/right/image_rect_color 4.0 /zedr

3)录制数据之前,推荐打开rviz,加入image,可以确保标定板始终在相机视野内

rosrun rviz rviz

4)开始录制标定bag文件

rosbag record -O zedlr1.bag /zedl /zedr

这里通过官网上的介绍,应该是按照pyr三个轴进行旋转,包括左右上下平移,录制时长我是保持在接近两分钟的样子。

5)查看录制的文件

rosbag info zedlr1.bag

显示以下信息:

lijing@lijing:~/kalibr_workspace$ rosbag info zedlr1.bag 
path:        zedlr1.bag
version:     2.0
duration:    1:52s (112s)
start:       Apr 30 2022 17:16:28.10 (1651310188.10)
end:         Apr 30 2022 17:18:20.97 (1651310300.97)
size:        2.9 GB
messages:    848
compression: none [848/848 chunks]
types:       sensor_msgs/Image [060021388200f6f0f447d0fcd9c64743]
topics:      /zedl   424 msgs    : sensor_msgs/Image
             /zedr   424 msgs    : sensor_msgs/Image

四 开始进行双目标定

利用kalibr进行相机标定

rosrun kalibr kalibr_calibrate_cameras --bag zedlr1.bag --topics /zedl /zedr --models pinhole-radtan pinhole-radtan --target april_6x6.yaml

显示以下信息则说明标定完成:

All views have been processed.

Starting final outlier filtering...
  Progress 96 / 96 	 Time remaining:                      

..................................................................

Calibration complete.

标定完成后,会产生3个文件:
作用:

.yaml  主要作用为了后期IMU+相机联合标定
.pdf   以图的方式显示效果
.txt   含有相机的内参以及重投影误差

总结:其实zed相机自带标定程序,标定后的结果在usr/local/zed/settings中,但是为了后期联合imu进行标定,kalibr 工具还是得会应用。
参考的帖子有:
ZED2相机标定–双目、IMU、联合标定
Kalibr 标定双目内外参数以及 IMU 外参数
学习Kalibr工具–Camera标定过程
VIO测试准备——使用imu_utils和kalibr进行相机与IMU标定

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

记录:ubuntu18下使用karlibr标定zed双目相机 的相关文章

  • Ubuntu 12.10 libgtk-3-0 缺少符号

    我正在运行 Ubuntu 12 10 不知何故我的 libgtk 3 0 搞砸了 当尝试运行许多不同的应用程序时 我收到如下错误 gedit symbol lookup error usr lib libgtk 3 so 0 undefin
  • 在初始化脚本中切换用户?

    这是我的 Ubuntu 工作站上的初始化脚本 我需要以除 root 之外的其他用户身份运行命令 但我就是不知道应该如何完成它 两者都不sudo u or su newuser似乎有效 剧本 respawn console none star
  • Ubuntu 上的 Python 2.7

    我是 Python 新手 正在 Linux 机器 Ubuntu 10 10 上工作 它正在运行 python 2 6 但我想运行 2 7 因为它有我想使用的功能 有人敦促我不要安装 2 7 并将其设置为我的默认 python 我的问题是 如
  • 如何查看 Ubuntu 上的 Binutils 版本?

    我已经搜索过 但没有找到一个选项来告诉我我的 Ubuntu 上有哪个版本的 binutils 或者至少我不知道如何解释它 gcc v 没有透露任何有关 binutils 的信息 ld v 告诉我GNU ld GNU Binutils for
  • Gearman,php 扩展问题:使用终端在 .. 中找不到类“GearmanWorker”,但可以在浏览器上使用

    我最近在 ubuntu 10 04 上安装了 gearman 并安装了它的 pecl 扩展 现在 当我在浏览器中运行一个 php 文件时 其中包含 client new GearmanWorker die var Dump client I
  • Ubuntu systemd 自定义服务因 python 脚本而失败

    希望获得有关 Ubuntu 中的 systemd 守护进程服务的一些帮助 我写了一个 python 脚本来禁用 Dell XPS 上的触摸屏 这更像是一个问题 而不是一个有用的功能 该脚本可以工作 但我不想一直启动它 这就是为什么我想到编写
  • 简单的openGL程序无法在ubuntu中链接

    我正在尝试进入 opengl 编程 但无法编译我的第一个非常非常简单的程序 链接过程每次都会失败 我发现这个答案 https stackoverflow com questions 859501 learning opengl in ubu
  • 在 Ubuntu 16.04 上编译 PCL 1.7,CMake 生成的 Makefile 中出现错误

    我正在尝试让 PCL 1 7 点云库 而不是其他 pcl 在 Ubuntu 16 04 上运行 我最终希望用于 C 的东西 但现在我只是想让这些例子工作 我使用的是 Ubuntu GNU 5 3 1 附带的默认编译器和 Cmake 版本 3
  • Docker Desktop 未安装,提示 docker-ce-cli 无法安装

    在一次在线培训课程中 讲师提到他有 安装了 Docker Desktop 的 Ubuntu 虚拟机 因此 我尝试在 Windows 10 物理主机上安装相同的程序指示 https docs docker com desktop linux
  • 在 ubuntu 中找不到 .android 文件夹 [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我在哪里可以找到 android在 Ubuntu 中 我想使用debug keystore 转到您的主文件夹并按 ctrl h 瞧
  • Eclipse Kepler 在 64 位 ubuntu 上冻结

    几天前我刚刚将 Ubuntu 升级到 14 04 并在此过程中从 32 位切换到 64 位 从那时起 Eclipse 就变得非常不稳定 运行几分钟后 它将开始随机冻结越来越长的时间 特别是在代码完成时 已经必须禁用它 而且在剪切 粘贴时 偶
  • 在openCV内部调用Gstreamer

    我需要在 openCV 代码中调用 Gstremaer 本质上是打开摄像机 当我查看源代码时 modules highgui src cap gstreamer cpp似乎是我正在寻找的文件 我用 Gstreamer 标志编译了 OpenC
  • Docker 不遵循构建目录中的符号链接

    我正在对一个应用程序进行 Docker 化 其中涉及通过 Clang 将二进制文件与其他 C 文件链接 我们维护二进制文件的符号链接版本 因为它们在整个代码库中使用 我的 Docker 构建目录包含整个代码库 包括源文件以及这些源文件的符号
  • 使用 hcitool 扫描低功耗蓝牙?

    当我运行此命令时 BLE 设备扫描仅持续 5 秒 sudo timeout 5s hcitool i hci0 lescan 输出显示在终端屏幕中 但是 当我将输出重定向到文件以保存广告设备的地址时 每次运行该命令时 我都会发现该文件是空的
  • Ubuntu 下使用 rpmbuild 构建

    我需要在 Ubuntu 10 4 下使用补丁构建 yum 原因是我需要为我的虚拟服务器实例提供支持 chroot 的 yum 由于 ubuntu 的 yum src 不可用 第 3 方存储库 我从官方存储库下载了源代码 并从 linux v
  • 安装失败:无法在 ubuntu 上的 WordPress nginx 中创建目录

    我在本教程的帮助下设置了 WordPress 如何在 ubuntu 18 04 上使用 LEMP 安装 WordPress https www digitalocean com community tutorials how to inst
  • matplotlib 中没有绘图窗口

    我刚刚使用 synaptic 软件包系统在 Ubuntu 9 10 中安装了 matplotlib 但是 当我尝试以下简单示例时 gt gt gt from pylab import plot gt gt gt plot 1 2 3 1 2
  • Microk8s 节点未准备好 - InvalidDiskCapacity

    microk8s的节点不想启动 Kube system Pod 处于挂起状态 kubectl describe nodes说是警告InvalidDiskCapacity 我的服务器有足够的资源 PODS NAMESPACE NAME REA
  • 终端从包含空格的变量传递参数

    在终端中如何将包含空格的字符串作为参数传递 它实际上跳过了空格后面的部分 只取第一个单词 word soccer ball shell exec casperjs test js word word 那么我怎样才能转义空白它只运行这个命令
  • 由于握手问题,PerL SSL 连接尝试失败

    我希望有人可以提供帮助 我正在使用 nagios 插件 check ilo2 health 该插件在我们的 OpenSuSE 系统上运行良好 但新的 Ubuntu 14 04 系统有问题 删除 nagios 的东西并运行 perl 基本上是

随机推荐

  • Burp Suite入门笔记

    转载于 https www cnblogs com Wade James p 9614310 html
  • Cannot find module ‘F:\nodejs\node_modules\http-server\bin\http-server‘

    问题 http server全局安装后仍找不到模块 原因 http server与html文件不在同一目录 解决方案 1 打开http server文件所在位置 复制npm文件夹下的所有文件 2 将所有文件粘贴到html文件所在的目录下 3
  • 详解本地maven私服nexus安装及上传jar包snapshots快照

    目录 1 nexus简介 2 下载nexus 3 启动nexus 4 访问nexus 5 nexus服务介绍 6 相关配置 7 页面上传Release的jar流程 8 上传snapshots快照jar 9 项目中引用本地私服 1 nexus
  • Vue3+vant库处理showToast报错正确姿势:Can‘t resolve ‘vant/es/show-toast‘

    目录 1 首先 要排除是自己配置全局引用错误导致的问题 2 排除不是自己引用问题 进入下一步 移除 babel plugin import 3 在此时 似乎就已经解决showToast报错问题 环境 vant 4 6 3 1 首先 要排除是
  • llinux运维基础:zabbix部署

    一 zabbix安装 安装5 0版本 1 配置仓库 rpm Uvh https repo zabbix com zabbix 5 0 rhel 7 x86 64 zabbix release 5 0 1 el7 noarch rpm yum
  • 云服务器 ftp上传文件大小,云服务器ftp上传文件大小

    云服务器ftp上传文件大小 内容精选 换一换 在本地主机和Windows弹性云服务器上分别安装QQ exe等工具进行数据传输 使用远程桌面连接mstsc方式进行数据传输 该方式不支持断点续传 可能存在传输中断的情况 因此不建议上传大文件 文
  • 打包python脚本的血与泪

    解决Python脚本打包遇到的各种问题 故事背景 以下开始花里胡哨的错误操作 正确方法 故事背景 某日隔壁部门同事请领导帮忙写个脚本 能够完成excel上的高重复度繁复的工作 领导随手交给我 这个东西简单的 日天你去做吧 正在b站摸鱼的我
  • ssm+maven的进销存管理系统

    基于ssm maven的超市进销存管理系统 普通用户主要包含 进货管理 商品管理 库存管理 销售管理 酷虎信息管理 供应商信息管理 管理员比普通用户多了一个用户管理 登录界面 普通用户之进货管理 普通用户之商品信息管理 坤村管理 销售管理
  • vmp版本某数后缀(10-6,js逆向)

    看这篇文章的前提是 读者已经成功请求到了200页面 一 抓包分析 这个站在提交验证码的时候会将识别的内容加密放到后缀中 所以分析后缀也是无奈之举 二 跟栈分析 下个xhr断点 提交验证码 找到这个地方 思路 open和send都经过魔改了
  • Kubernetes入门——Kubernetes实现应用的高可用

    作者简介 胡家靖 百度基础架构部研发工程师 负责函数计算与云原生产品的研发 本文基于百度云原生团队 云原生基础知识概述及实践 系列视频课程 Kubernetes入门 Kubernetes实现应用高可用 梳理 视频课程可点击 https cl
  • 数据库系统概论——第十章 数据库恢复技术

    一 事务的基本概念 1 事务 Transaction 1 概念 是用户定义的一个数据库操作序列 这些操作要么全做 要么全不做 是一个不可分割的工作单位 2 事务和程序是 事务和程序是两个概念 在关系数据库中 一个事务可以是一条SQL语句 一
  • wpf datagrid 表头居中

  • 程序员常用的工具网站

    程序员常用的工具网站 免费书籍 数据库 在线制作流程图 java开发常用工具网站 程序开发导航 面试常看的网站 在线编程 系统设计 springboot学习参考网站 云服务器 LINUX命令学习 免费书籍 免费编程书籍 数据库 在线学习or
  • Python全栈自动化测试--Pycharm专业版安装

    一 下载Pycharm专业版 1 进入官网下载专业版 Download PyCharm Python IDE for Professional Developers by JetBrains 2 选择windows Professional
  • docker-compose实战

    搭建wordpress容器 先用mysql5 6镜像启动一个名字为mysql wordpress的容器 接着基于这个容器我们启动一个wordpress容器 docker run d name mysql wordpress v home z
  • 几个简单的基本的sql语句

    1 选择 select from table1 where 范围 2 插入 insert into table1 field1 field2 values value1 value2 3 删除 delete from table1 wher
  • 项目管理利器—maven(二)

    一 maven的生命周期和插件 完整的项目构件过程包括 清理 编译 测试 打包 集成测试 验证 部署 maven生命周期包括 clean 清理项目 pre clean 执行清理前的工作 clean 清理上一次构建生成的所有文件 post c
  • 【JDBC】使用DBUtils包来管理JDBC

    什么是DBUtils 是JDBC的简化开发工具包 使用它就不用再写很多冗余的代码了 总而言之 就是使得JDBC的操作更加的简单化了 文章目录 为啥要用DBUtils QueryRunner类 使用的数据库 注册驱动并建立起连接 update
  • ping 不通百度问题的解决

    ping 不通百度问题的解决 问题 网络能够ping通百度的ip地址 115 239 210 27这个ip地址 但是ping www baidu com长时间等待无反应 解决方式 碰到这个问题两次了 每次都挺无奈的 第一次解决是通过回退快照
  • 记录:ubuntu18下使用karlibr标定zed双目相机

    一 karlibr的安装 1 安装依赖 sudo apt get install python setuptools python rosinstall ipython libeigen3 dev libboost all dev doxy