zoukankan      html  css  js  c++  java
  • ROS 内参标定

    ​   在这一小节中我们将会介绍如何使用Intel的Realsense D415相机的RGB部分进行内参的标定,除此之外也会使用笔记本电脑自带的摄像头进行标定以让每一位同学都能有机会进行操作。在给Realsense相机进行标定之前我们需要:

    • 安装最新的Intel® RealSense™ SDK 2.0
    • 安装Realsense与ROS通信的Package:realsense-ros
    • 安装用于相机标定的Package:camera_calibration

    安装依赖Package

    ​   首先是安装最新的Intel® RealSense™ SDK 2.0,可以按照官方repo的文档进行安装。首先添加注册服务器的public key,之后检查代理配置,接下来就是将服务器加入到仓库列表中安装需要的四个package即可:

    sudo apt-key adv --keyserver keys.gnupg.net --recv-key C8B3A55A6F3EFCDE || sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-key C8B3A55A6F3EFCDE
    export http_proxy="http://<proxy>:<port>"
    
    sudo add-apt-repository "deb http://realsense-hw-public.s3.amazonaws.com/Debian/apt-repo xenial main" -u
    sudo apt-get install librealsense2-dkms
    sudo apt-get install librealsense2-utils
    sudo apt-get install librealsense2-dev
    sudo apt-get install librealsense2-dbg
    

    ​   如果需要更新一个功能包可以使用这两句命令:

    sudo apt-get update
    sudo apt-get upgrade
    

    ​   接下来是安装Realsense与ROS通信的Package:realsense-ros。首先是进入到我们ROS的工作空间中将Package的代码下载下来并切换到对应的分支,之后就是编译和进行安装:

    cd ~/catkin_ws/src
    git clone https://github.com/IntelRealSense/realsense-ros.git
    cd realsense-ros/
    git checkout `git tag | sort -V | grep -P "^d+.d+.d+" | tail -1`
    cd ..
    catkin_make clean
    catkin_make -DCATKIN_ENABLE_TESTING=False -DCMAKE_BUILD_TYPE=Release
    catkin_make install
    

    ​   在安装之前需要确保依赖项已经安装过,在这一节课我们假设你已经学习过前面的课程并安装了必要的功能包。如果在编译过程中出错可以直接尝试使用下面这行命令获取缺失的功能包:

    sudo apt-get install ros-kinetic-缺失的功能包
    

    ​   在编译好之后将Realsense相机通过USB线连接到电脑上后,可以使用这行命令检查是否安装成功并驱动相机:

    roslaunch realsense2_camera rs_camera.launch
    

    ​   出现了下面的结果就说明安装成功了:

    ​   可用rosrun rqt_image_view rqt_image_view选择/camera/color/image_raw查看相机收到的图像信息。需要说明的是,相机获取图像信息是有一个帧率的,如果你的计算机无法处理高帧率的图像可以在launch文件中修改color_fpsdepth_fps等参数以防止出现溢出现象。

    ​   最后一部分就是安装用于相机标定的Package:camera_calibration。这个Package的安装可以参考ROS Wiki的内容,首先将放在Github托管的程序下载在你的ROS工作空间里,

    cd ~/catkin_ws/src
    git clone -b kinetic https://github.com/ros-perception/image_pipeline
    cd ../
    catkin_make
    

    ​   或者也可以简单粗暴的使用apt-get进行安装:

    大专栏  ROS 内参标定ighlighter-rouge">
    sudo apt-get install ros-kinetic-camera-calibration
    

    Realsense相机标定

    ​   之后可以选择自己打印或者购买相机标定需要的标定板,本节课中我们使用的标定板型号为GP150-12*9,有了标定板之后就可以开始进行相机标定了:

    roslaunch realsense2_camera rs_camera.launch
    rosrun camera_calibration cameracalibrator.py --size 11x8 --square 0.01 image:=/camera/color/image_raw camera:=/camera --no-service-check
    

    ​   如上面的命令所示,首先需要启动我们的realsense相机,之后再调用相机标定的程序,之后的参数分别是标定板的型号、方块的边长、图像的话题和相机的前缀。需要注意的是我们购买的标定板显示的是12*9,但是在运行程序时输入的参数size指的是角点的数量,因此需要设置为11*8程序才能正常运行;除此之外,由于realsense相机并没有提供/set_camera_info的服务,因此需要在参数中增加--no-service-check,而且标定完成后的的结果只能保存而不能直接应用给相机。

    ​   如上图所示,正确运行的程序可以看到很多被彩色点标注的角点,在标定时需要按照X方向、Y方向、垂直方向也就是远近和倾斜一共四个因素移动标定板,直到每一个横条都显示为绿色时就可以点击Calibrate计算内参矩阵了,计算需要耗时半分钟或者更久,结束之后点击Save保存标定的结果就可以啦!标定的结果如下所示:

    ​   在ost.yaml和ost.txt中记录了相机标定得到的内参矩阵,之后我们可以在编程中使用OpenCV或其他你喜欢的工具调用这一矩阵对获得的图像进行去畸变的操作,这部分内容我们就不在本课程中进行介绍了。接下来让我们简短的介绍如何使用笔记本电脑自带的相机进行标定。

    USB相机标定

    ​   首先使用下面这行命令去安装usb相机在ROS下的驱动程序:

    sudo apt-get install ros-kinetic-usb-cam
    

    ​   通常不会出现什么问题,接下来就和之前的内容一样启动camera_calibration程序,不过要根据usb_cam的话题消息进行一些改变:

    rosrun camera_calibration cameracalibrator.py --size 11x8 --square 0.01 image:=/usb_cam/image_raw camera:=/usb_cam
    

    ​   之后便是一样的标定过程,需要说明的是标定计算结束并成功保存时将会出现下面的画面,保存的文件位置在/tmp/calibrationdata.tar.gz

    总结

    ​   在本节课中我们介绍了Intel® RealSense D415相机的SDK和驱动程序的安装,ROS中相机标定程序camera_calibration的安装,演示了使用D415相机和笔记本电脑的usb相机进行内参标定的方法和注意事项。

  • 相关阅读:
    CF1208C
    CF1208B
    CF1208A
    CF1206A
    wqy的C题
    wqy的B题
    [POI2005]SAM-Toy Cars
    Gym
    操作系统学习---进程
    C++多线程(POSIX)
  • 原文地址:https://www.cnblogs.com/lijianming180/p/12410105.html
Copyright © 2011-2022 走看看