码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 使用Kalibr工具线对相机+IMU离线标定


    在安装Kalibr需要OpenCV2版本,但是目前环境的很多依赖都是需要OpenCV3,于是寻找两个版本共存的解决方案。网上没有详细对Kalibr从安装到标定使用的完整教程,对初学者不是很友好,所以记录自己的学习过程,方便以后参考。

    使用Kalibr工具线对相机+IMU离线标定,常见SLAM算法的定位精度主要看传感器的情况,传感器的精度保证才能让算法更加准确,所以对传感器的标定显得尤为重要,Kalibr是唯一能标定camToImu的工具,

    文章目录

      • 一、安装OpenCV2以及依赖
        • 1、下载ROS package包opencv2_catkin和catkin_simple,也可以截至克隆(git clone)下来
        • 2、建立ROS工作空间
        • 3、下载好的两个package放到工作空间
        • 4、新建src目录,然后编译
        • 5、新建src目录,然后编译
      • 二、安装标定工具以及依赖
        • 1、将kalibr复制到工作空间src路径下
        • 2、安装SuiteSparse库
        • 3、安装依赖库
        • 4、安装python-igraph
        • 5、修改BSplinePython.cpp
        • 6、编译
        • 7、恢复工作空间
        • 8、检查是否运行

    一、安装OpenCV2以及依赖

    1、下载ROS package包opencv2_catkin和catkin_simple,也可以截至克隆(git clone)下来

    opencv2_catkin

    catkin_simple

    在这里插入图片描述

    2、建立ROS工作空间

    mkdir -p ~/kalibr_ws
    
    • 1

    在这里插入图片描述

    3、下载好的两个package放到工作空间

    在这里插入图片描述

    4、新建src目录,然后编译

    catkin_make
    
    • 1

    在这里插入图片描述

    5、新建src目录,然后编译

    catkin_make
    
    • 1

    二、安装标定工具以及依赖

    1、将kalibr复制到工作空间src路径下

    在这里插入图片描述

    catkin_make
    
    • 1

    2、安装SuiteSparse库

    apt-cache search suitesparse      # 查看apt源是否有这个库
    sudo apt-get install libsuitesparse-dev			# 安装SuiteSparse库
    
    • 1
    • 2

    在这里插入图片描述

    3、安装依赖库

    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 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
    
    • 1
    sudo apt-get install software-properties-common
    
    • 1

    4、安装python-igraph

    sudo apt-get install python-igraph
    
    • 1

    在这里插入图片描述

    5、修改BSplinePython.cpp

    增加头文件

    #include 
    
    • 1

    在这里插入图片描述
    然后修改参数_1改成std::placeholders::_1

    home/gyh/kalibr_workspace/src/kalibr/aslam_nonparametric_estimation/bsplines_python/src/BSplinePython.cpp
    
    • 1

    在这里插入图片描述

    6、编译

    catkin build -DCMAKE_BUILD_TYPE=Release -j4
    
    • 1

    在这里插入图片描述

    7、恢复工作空间

    source ~/kalibr_ws/devel/setup.bash
    
    • 1

    Kalibr通过使用校准版的完整优化过程来恢复最佳的校准,提供了地面标准、相对位姿,可用于校准相机内参和其他参数

    离线标定的好处是,我们可以模拟多种运动已达到我们想要的IMU的状态

    8、检查是否运行

    rosrun kalibr kalibr + TAB键
    
    • 1
  • 相关阅读:
    基于STM32+华为云IOT设计的智能衣柜
    JavaScript学习——什么是编程语言?计算机基础
    Git基础命令+Gitee代码托管平台学习
    WPF使用Dispatcher
    一种NR无线小站的同步设计与实现
    牛客小白月赛 61 E 排队
    2023年四川省网络与信息安全技能大赛初赛 团队赛 Writeup
    开工第一天,这个api超时优化把我干趴下了!
    PDF流前端如何接收:深度解析与实用策略
    HarmonyOS鸿蒙原生应用开发设计- 元服务(原子化服务)图标
  • 原文地址:https://blog.csdn.net/Prototype___/article/details/133101785
  • 最新文章
  • 【JVM】编译执行与解释执行的区别是什么?JVM 使用哪种方式?
    用 Hashids 优雅解决 C 端自增 ID 暴露问题
    V8引擎 精品漫游指南--Ignition篇(上) 指令 栈帧 槽位 调用约定 内存布局 基础内容
    LLVM Pass快速入门(四):代码插桩
    milkup:桌面端 markdown AI续写和即时渲染
    基于项目工程构建SBOM(软件物料清单)的研究
    鸿蒙应用开发UI基础第二节:鸿蒙应用程序框架核心解析与实操
    .NET 中如何快速实现 List 集合去重?
    扣子Coze实战:从0到1打造抖音+小红书热点监控智能体
    浅谈数据访问层
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
小工具 小游戏
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1

京公网安备 11010502049817号