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 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> VIO标定工具kalibr和imu_utils的使用 -> 正文阅读

[人工智能]VIO标定工具kalibr和imu_utils的使用

0.参考资料

Kalibr进行IMU+相机的标定 : 这个步骤写的非常好,应该是目前看到的最符合的步骤了。

使用ROS功能包标定相机内参

1.步骤

  1. 标定相机内参
    这个部分可以使用的工具很多,kalibr功能很全,可以单独标定相机内参、IMU零偏以及相机和IMU外参,所以可以使用kalibr来标定相机内参。
    也可以使用其他工具来标定相机内参,比如ROS自带的相机标定工具包,或者自己采集图像使用MATLAB进行标定。

  2. 标定IMU零偏和随机游走
    同理标定IMU也可以使用kalibr进行标定,还有其他工具,比较容易使用的就是港科大的imu_utils

  3. 使用1和2的结果,联合标定相机和IMU外参
    这个就只能使用kalibr了,也就是后面主要的步骤

2.安装

官网安装教程:https://github.com/ethz-asl/kalibr/wiki/installation

注意官网的安装教程不是用catkin_make,而是使用catkin build(注意中间没有_),catkin build应该是catkin_make的一个改进版本,好像是对于有多个ROS功能包的工程进行编译互不影响,而catkin_make则是一起编译,会污染工作空间。(不一定对,具体可以再查一下)

所以下面的安装步骤就严格按照官网安装步骤来进行,我尝试过使用catkin_make命令直接编译,也可以编译成功,但是最后进行标定的时候求解非线性优化一直卡在第一次优化的地方不动,不知道什么原因,所以最好还是按照官网的步骤来安装吧。

下面以Ubuntu 18.04为例:

  1. 确保电脑上已经安装了ROS-melodic
  2. 在当前窗口导出ROS版本环境变量,并且安装catkin-tools,不安装这个是没有catkin build命令的
export ROS1_DISTRO=melodic
sudo apt-get install python-catkin-tools
  1. 安装编译和运行依赖库(注意下面\不用删除,终端会自动识别)
sudo apt-get install -y \
    git wget autoconf automake nano \
    libeigen3-dev libboost-all-dev libsuitesparse-dev \
    doxygen libopencv-dev \
    libpoco-dev libtbb-dev libblas-dev liblapack-dev libv4l-dev

此外还要安装不同版本的Python依赖

sudo apt-get install -y python3-dev python-pip python-scipy \
    python-matplotlib ipython python-wxgtk4.0 python-tk python-igraph
  1. 创建工作空间,注意这个地方很重要,官网教程写了,这个地方一定要配置成Release模式,否则优化会很慢。所以可能之前自己测试的用catkin_make编译优化卡住可能就是没有设置成Release模式。
mkdir -p ~/kalibr_workspace/src
cd ~/kalibr_workspace
export ROS1_DISTRO=melodic
source /opt/ros/$ROS1_DISTRO/setup.bash
catkin init
catkin config --extend /opt/ros/$ROS1_DISTRO
catkin config --merge-devel # Necessary for catkin_tools >= 0.4.
catkin config --cmake-args -DCMAKE_BUILD_TYPE=Release
  1. 下载工程并编译
cd ~/kalibr_workspace/src
git clone https://github.com/ethz-asl/kalibr.git

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

最后编译成功截图如下,可以看到catkin build编译的输出配色更丰富,比原来的catkin_make 更好看,科技在进步啊!
在这里插入图片描述

3.官网IMU和camera外参标定

3.1.标定步骤

官网教程:https://github.com/ethz-asl/kalibr/wiki/camera-imu-calibration

The tool must be provided with the following input:

  • –bag filename.bag
    ROS bag containing the image and IMU data
  • –cam camchain.yaml
    intrinsic and extrinsic calibration parameters of the camera system. The output of the multiple-camera-calibration tool can be used here. (see YAML formats)
  • –imu imu.yaml
    contains the IMU statistics and the IMU’s topic (see YAML formats)
  • –target target.yaml
    the calibration target configuration (see Cailbration targets)

The calibration can be run using:

kalibr_calibrate_imu_camera --bag [filename.bag] --cam [camchain.yaml] --imu [imu.yaml] --target [target.yaml]

总结就是运行标定的程序,需要提供四个文件,分别是ros bag包、相机内参文件、IMU零偏和随机游走文件、标定板的参数文件。

注意:但是上面有一个问题并不能直接运行kalibr_calibrate_imu_camera这个可执行文件,而且我在devel下也没有找到bin目录。所以最后还是用rosrun命令来运行这个节点吧,这里也比较奇怪,刷新了环境变量之后,还是不能用tab键进行补全,只能自己全部打上,例如官网提供的这个IMU和camera标定的实例:

rosrun kalibr kalibr_calibrate_imu_camera --bag imu_april.bag --cam cam_april-camchain.yaml --imu imu_adis16448.yaml --target april_6x6_80x80cm.yaml

3.2.标定结果分析

  • 相机重投影误差如下,可以看到xy轴的像素重投影误差都在1个像素(1 pixel)左右。问题:这个标定误差在多少范围内才算作比较好?

  • 更详细的数值结果可以看输出的pdf报告中的内容,如下所示。这个结果是官方的标定实例结果,所以如果要标定自己的设备,可以把自己的标定结果和这个进行比较,标定误差相差不太大就说明标定结果较为准确。
    在这里插入图片描述

https://codeantenna.com/a/45xdYtWupm

https://blog.csdn.net/sinat_36502563/article/details/103053292

https://guyuehome.com/34592

https://www.youtube.com/watch?app=desktop&v=puNXsnrYWTY

  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2022-05-21 18:58:09  更:2022-05-21 19:02:05 
 
开发: 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 5:36:14-

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