码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 利用ROS camera_calibration对usb相机标定


    利用ROS camera_calibration对usb相机标定

    • 1 准备
      • 1.1 ubuntu18.04 ROS-melodic
      • 2.2 打印棋盘格
    • 2 源码安装usb_cam功能包
      • 2.1 创建工作空间
      • 2.2 下载usb_cam包
      • 2.3 编译工作空间
      • 2.4 查看摄像头id
      • 2.5 根据需要,修改usb_cam的launch文件中需要启动的摄像头
    • 3 标定
      • 3.1查看是否有camera_calibration功能包
      • 3.2 标定

    1 准备

    1.1 ubuntu18.04 ROS-melodic

    准备好一台装有ubuntu18.04的电脑,装好ROS-melodic

    2.2 打印棋盘格

    一个棋盘格下载网址:https://markhedleyjones.com/projects/calibration-checkerboard-collection

    2 源码安装usb_cam功能包

    2.1 创建工作空间

    mkdir -p ~/catkin_ws/src
    cd catkin_ws/src
    初始化工作空间
    catkin_init_workspace
    cd ~/catkin_ws/
    编译工作空间
    catkin_make
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    2.2 下载usb_cam包

    git clone https://github.com/bosch-ros-pkg/usb_cam.git # 如果失败多试几次
    mkdir -p ~/catkin_ws/src/usb_cam/build
    cd ~/catkin_ws/src/usb_cam/build
    cmake ..
    make
    
    • 1
    • 2
    • 3
    • 4
    • 5

    2.3 编译工作空间

    cd ~/catkin_ws
    catkin_make #会报一些警告 不影响使用
    设置环境变量
    source devel/setup.bash
    
    • 1
    • 2
    • 3
    • 4

    2.4 查看摄像头id

    ls /dev/video*
    
    • 1

    2.5 根据需要,修改usb_cam的launch文件中需要启动的摄像头

    roslaunch usb_cam usb_cam-test.launch
    
    • 1

    运行会报没有标定文件(head_camera.yaml)不能自动对焦的警告(unknown control ‘focus_auto’)

    3 标定

    3.1查看是否有camera_calibration功能包

    rosdep install camera_calibration
    
    • 1

    3.2 标定

    rosrun camera_calibration cameracalibrator.py --size 8x6 --square 0.025 image:=/usb_cam/image_raw camera:=/usb_cam
    
    • 1

    标定语句中
    size参数为棋盘格角点数量。比如8x9=72个格子的棋盘格,角点个数为7x8=63个,size参数就要写7x8
    square参数为s为棋盘格一个小格子的宽度(单位为m)。
    image:=/usb_cam/image_raw 为当前订阅的图像来自名为/usb_cam/image_raw的topic
    camera:=/head_camera为摄像机名

    标定界面中
    x:表示标定板在视野中的左右位置。
    y:表示标定板在视野中的上下位置。
    size:标定板在占视野的尺寸大小,也可以理解为标定板离摄像头的远近。
    skew:标定板在视野上下左右中的倾斜位置。
    标定完成后点击Calculate会稍微有点卡顿,不要担心后台正在进行标定,完成后下面的SAVE和COMMIT按钮变为可用状态,点击SAVE即可保存标定完成后的文件。
    点击commit即可把标定文件存储到系统的~/.ros/camera_info/xxx.yaml目录
    标定文件自动存放于
    /home/nick/.ros/camera_info/head_camera.yaml

    标定文件:

    image_width: 640
    image_height: 480
    camera_name: head_camera
    camera_matrix:
      rows: 3
      cols: 3
      data: [1807.379192905262, 0, 412.678580070881, 0, 1826.869385763768, 112.0237197131278, 0, 0, 1]
    distortion_model: plumb_bob
    distortion_coefficients:
      rows: 1
      cols: 5
      data: [-0.5967665245839386, -2.383274614510551, 0.02970595362225658, -0.02948523227082381, 0]
    rectification_matrix:
      rows: 3
      cols: 3
      data: [1, 0, 0, 0, 1, 0, 0, 0, 1]
    projection_matrix:
      rows: 3
      cols: 4
      data: [1773.645385742188, 0, 412.1578431076359, 0, 0, 1810.642211914062, 111.8633748078282, 0, 0, 0, 1, 0]
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20

    其中:
    camera_matrix:摄像头的内部参数矩阵
    distortion_matrix:畸变系数矩阵
    rectification_matrix:矫正矩阵,一般为单位阵
    projection_matrix:外部世界坐标到像平面的投影矩阵

    参考:
    ubuntu18.04 + ROS Melodic + usb摄像头 + 相机标定

    ROS学习笔记(1)——创作工作空间/安装usb_cam来调用摄像头

  • 相关阅读:
    UbuntuToGo | Ubuntu 22.04.6 VMware UEFI启动 VHD虚拟磁盘
    【代码随想录算法训练Day24】LeetCode 77.组合
    【AREngine BUG & 解决方法】无法获取有效的相机图像尺寸
    Spring5入门到实战------9、AOP基本概念、底层原理、JDK动态代理实现
    浅谈CDN内容分发与全局负载均衡
    Nanoprobes免疫测定丨FluoroNanogold试剂免疫染色方案
    asp.net docker-compose添加网关和网关配置
    linux服务器安装mysql,jdk,tomcat,docker
    【小波能量BP】基于小波能量系数提取和BP神经网络的检测算法matlab仿真
    DOCTYPE是什么,有何作用、 使用方式、渲染模式、严格模式和怪异模式的区别?
  • 原文地址:https://blog.csdn.net/qq_39979317/article/details/125451724
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号