ROS下AR.Drone 2.0相机标定

2024-02-02 07:18
文章标签 相机 ros 标定 2.0 ar drone

本文主要是介绍ROS下AR.Drone 2.0相机标定,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一.所需要的包:(1)ardrone_autonomy
下载地址:https://github.com/AutonomyLab/ardrone_autonomy
这是AR.Drone 2.0在ROS下运行的底层驱动的包
(2)image_pipeline
下载地址:https://github.com/ros-perception/image_pipeline
这是ROS下用于标定相机的包,本文是参照此包的教程进行相机标定
教程地址:http://wiki.ros.org/camera_calibration/Tutorials/MonocularCalibration

二.标定前的配置
(1)在工作空间中编译好这两个包后:
在终端输入:roslaunch ardrone_autonomy ardrone.launch
(2)查看发布的话题:
在终端输入:rostopic list
可以看到:

图2.1
可以看到发布的图像的话题为:/ardrone/image_raw
前置相机的名称:/ardrone/front
底部相机的名称:/ardrone/bottom
这将在下一步运行相机标定包的时候用到,我们以底部相机为例进行标定,
在终端中输入:rosservice call /ardrone/togglecam
这是切换前置与底部相机的一个服务,我找了很久才发现,所以最好找个地方记下来,再运行一次的话又会切换回前置相机。
(3)运行相机标定的节点:
在终端中输入:rosrun camera_calibration cameracalibrator.py --size 12x8 --square 0.03 image:=/ardrone/image_raw camera:=/ardrone/bottom

注::size 是指棋盘内部角点个数,我是用的标定板公有12x8个角点(即12列8行),square指方形的边长,我使用的标定板方形边长为3cm,image为输出图像的话题,camera为相机的名称(即在/image_raw前面部分)
此教程也有相关说明:http://blog.csdn.net/heyijia0327/article/details/43538695
运行后会弹出标定使用的GUI

图2.2
将标定板放在前方后:

图2.3
三.标定步骤
在出现上述窗口后,拿标定板在窗口中移动,下面给出官方教程中的示意图:


图3.1
我们从图2.3中可以看到,在GUI的右侧有X,Y,Size,Skew这几个标志条
它们的含义是:
(1)x:标定板在图像中的左右位置,从左到右x由小变大。
(2)y:标定板在图像中的上下位置,从上到下y由小变大。
(3)Size:标定板在图像中的大小,由远及近,Size由小变大。
(4)Skew:标定板在图像中倾斜的角度大小
操作过程:
(1)为了得到尽量丰富的x,y值:标定的过程中要尽量缓慢移动标定板,使标定板的位置出现在图像中的各个地方(上中下左右)。
(2)为了得到丰富的Size值缓慢移动标定板,使标定板由远及近,采集到丰富的尺寸信息,最好有一张,标定板占据视野绝大部分的图像。
(3)为了得到丰富的Skew信息,缓慢移动标定板,使标定板的俯仰,偏航,滚动变化。
注:在操作的过程中,标定板移动不要过快,并且,每移动到一个位置要停顿下,如果发现这四标志条都变绿了说明采集到了足够的信息。并且如果可以执行标定,CALIBRATE就会变亮。
四.执行标定,得到结果
CALIBRATE选项变亮后,就可以点击,执行标定(最好各标志条也都变绿),此时图像会变灰,等待几分钟,标定完成后,再把标定板拿到摄像机前会出现如下画面:

图4.1

在终端中会出现:

图4.2
如果对标定结果满意点击COMMIT,即可将标定结果存入指定路径,可以在终端中找到,如:

图4.3
PS:具体怎么看标定结果是否满意,现在也不太清楚,等以后再弄清楚一些再补充。
五.标定参数解释
(1)width,height很明显表示图像为640*360像素大小。
(2)Camera_matrix:相机内参矩阵

(3)distortion:畸变参数,[k1,k2,p1,p2],其中k1,k2为径向畸变,p1,p2为切向畸变
(4)rectification:未深入了解,好像一直都是单位阵。
(5)projection:应该是畸变矫正后的矩阵(猜测的,并不完全确定)
详细可参考:
http://wiki.opencv.org.cn/index.php/Cv%E7%85%A7%E7%9B%B8%E6%9C%BA%E5%AE%9A%E6%A0%87%E5%92%8C%E4%B8%89%E7%BB%B4%E9%87%8D%E5%BB%BA

到此,AR.Drone 2.0的底部相机就完全标定完了,之前完全没有做过相机的标定,都是自己从网上一点一点查的,可能有不准确的地方,希望能够批评指正。

这篇关于ROS下AR.Drone 2.0相机标定的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

基于UE5和ROS2的激光雷达+深度RGBD相机小车的仿真指南(五):Blender锥桶建模

前言 本系列教程旨在使用UE5配置一个具备激光雷达+深度摄像机的仿真小车,并使用通过跨平台的方式进行ROS2和UE5仿真的通讯,达到小车自主导航的目的。本教程默认有ROS2导航及其gazebo仿真相关方面基础,Nav2相关的学习教程可以参考本人的其他博客Nav2代价地图实现和原理–Nav2源码解读之CostMap2D(上)-CSDN博客往期教程: 第一期:基于UE5和ROS2的激光雷达+深度RG

ROS - C++实现RosBag包回放/提取

文章目录 1. 回放原理2. 回放/提取 多个话题3. 回放/提取数据包,并实时发布 1. 回放原理 #include <ros/ros.h>#include <rosbag/bag.h>#include <std_msgs/String.h>int main(int argc, char** argv){// 初始化ROS节点ros::init(argc, argv,

ROS - C++实现RosBag包录制

文章目录 1. 录制原理2. 录制多个话题3. 订阅ROS消息,实时录制 1. 录制原理 #include <ros/ros.h>#include <rosbag/bag.h>#include <std_msgs/String.h>int main(int argc, char** argv){// 初始化ROS节点ros::init(argc, argv, "reco

海鸥相机存储卡格式化如何恢复数据

在摄影的世界里,‌每一张照片都承载着独特的记忆与故事。‌然而,‌当我们不慎将海鸥相机的存储卡格式化后,‌那些珍贵的瞬间似乎瞬间消逝,‌让人心急如焚。‌但请不要绝望,‌数据恢复并非遥不可及。‌本文将详细介绍在海鸥相机存储卡格式化后,‌如何高效地恢复丢失的数据,‌帮助您重新找回那些宝贵的记忆。‌ 图片来源于网络,如有侵权请告知 一、‌回忆备份情况 ‌海鸥相机存储卡格式化如何恢复数据?在意

hector_quadrotor编译总结 | ubuntu 16.04 ros-kinetic版本

hector_quadrotor编译总结 | ubuntu 16.04 ros-kinetic版本 基于Ubuntu 16.04 LTS系统所用ROS版本为 Kinetic hector_quadrotor ROS包主要用于四旋翼无人机的建模、控制和仿真。 1.安装依赖库 所需系统及依赖库 Ubuntu 16.04|ros-kinetic|Gazebo|gazebo_ros_pkgs|ge

hector_quadrotor编译总结 | ubuntu 14.04 ros-indigo版本

hector_quadrotor编译总结 | ubuntu 14.04 ros-indigo版本 基于Ubuntu 14.04 LTS系统所用ROS版本为 Indigo hector_quadrotor ROS包主要用于四旋翼无人机的建模、控制和仿真。 备注:两种安装方式可选:install the binary packages | install the source files

解析apollo纵向控制标定表程序

百度apollo采用标定表描述车辆速度、加速度与油门/刹车之间的关系。该表可使无人车根据当前车速与期望加速度得到合适的油门/刹车开合度。除了文献《Baidu Apollo Auto-Calibration System - An Industry-Level Data-Driven and Learning based Vehicle Longitude Dynamic Calibrating

OpenGL ES 2.0渲染管线

http://codingnow.cn/opengles/1504.html Opengl es 2.0实现了可编程的图形管线,比起1.x的固定管线要复杂和灵活很多,由两部分规范组成:Opengl es 2.0 API规范和Opengl es着色语言规范。下图是Opengl es 2.0渲染管线,阴影部分是opengl es 2.0的可编程阶段。   1. 顶点着色器(Vert

机器视觉硬件选型根据某项目相机镜头

一 项目总需求 1、大视野检测需求: (1)大视野: ①产品尺寸15.6寸屏幕,产品大小:350mm x 225mm; ②产品料盘尺寸大小:565mm x 425mm; ③工作距离:880mm;检测精度:500μm; 1、大视野检测需求: (1)大视野: ①产品尺寸15.6寸屏幕,产品大小:350mm x 225mm; ②产品料盘尺寸大小:565mm x 425mm; 工作距离:

005:VTK世界坐标系中的相机和物体

VTK医学图像处理---世界坐标系中的相机和物体 左侧是成像结果                                                    右侧是世界坐标系中的相机与被观察物体 目录 VTK医学图像处理---世界坐标系中的相机和物体 简介 1 在三维空间中添加坐标系 2 世界坐标系中的相机 3 世界坐标系中vtkImageData的参数 总结: