Intel Realsense D435i相机标定

  • 相机内参标定

    • 采用Kalibr工具:https://github.com/ethz-asl/Kalibr
    • 基于环境镜像:https://github.com/ethz-asl/kalibr/wiki/installation
      • docker pull stereolabs/kalibr

      • #!/bin/sh
        
        data_dir=$1
        
        if [ ! -d "$data_dir" ]; then
          echo "data directory does not exist: $data_dir"
          exit 1
        fi
        
        xhost +local:root;
        docker run -it -e DISPLAY -e QT_X11_NO_MITSHM=1 -v /tmp/.X11-unix:/tmp/.X11-unix:rw -v $data_dir:/root/data stereolabs/kalibr:kinetic /bin/bash -c "cd /root/data; /bin/bash"
        xhost -local:root;
        
      • chmod +x run_kalibr.sh

      • ./run_kalibr.sh , where  is the path to the directory on your computer which contains your calibration bag file

      • 安装pyx:

        • echo ' deb http://mirrors.aliyun.com/ubuntu/ xenial main restricted universe multiverse
          deb-src http://mirrors.aliyun.com/ubuntu/ xenial main restricted universe multiverse
          deb http://mirrors.aliyun.com/ubuntu/ xenial-security main restricted universe multiverse
          deb-src http://mirrors.aliyun.com/ubuntu/ xenial-security main restricted universe multiverse
          deb http://mirrors.aliyun.com/ubuntu/ xenial-updates main restricted universe multiverse
          deb-src http://mirrors.aliyun.com/ubuntu/ xenial-updates main restricted universe multiverse
          deb http://mirrors.aliyun.com/ubuntu/ xenial-proposed main restricted universe multiverse
          deb-src http://mirrors.aliyun.com/ubuntu/ xenial-proposed main restricted universe multiverse
          deb http://mirrors.aliyun.com/ubuntu/ xenial-backports main restricted universe multiverse
          deb-src http://mirrors.aliyun.com/ubuntu/ xenial-backports main restricted universe multiverse' > /etc/apt/sources.list
          
        • apt-get install -y python-pyx

    • 标定步骤

      • 生成棋盘格

        • # 生成棋盘格标定板 type:checkerboard或apriltag
          # --nx [NUM_COLS] --ny [NUM_ROWS] --tsize [TAG_WIDTH_M] --tspace [TAG_SPACING_PERCENT]
          kalibr_create_target_pdf --type checkerboard --nx 6 --ny 7 --csx 0.030 --csy 0.030
      • 编写checkerboard.yaml文件

        • target_type: 'checkerboard' #gridtype
          targetCols: 6               #number of internal chessboard corners
          targetRows: 7               #number of internal chessboard corners
          rowSpacingMeters: 0.029     #size of one chessboard square [m]
          colSpacingMeters: 0.029     #size of one chessboard square [m]
          
      • 系统下录制bag包(基于ros安装、realsense sdk安装好的前提下)

        • mkdir ~/temp/data && cd ~/temp/data
        • roslaunch realsense2_camera rs_camera.launch
        • rosrun topic_tools throttle messages /camera/color/image_raw 4.0 /color

        • rosbag record -O camd435i /color(过程中打开rviz查看)

      • 标定

        • docker cp camd435i 容器工作目录

        • docker cp checkerboard.yaml 容器工作目录

        • 进入到上述容器工作目录

        • kalibr_calibrate_cameras --target ~/kalibr_ws/src/Kalibr/data/checkerboard.yaml --bag ~/kalibr_ws/src/Kalibr/data/camd435i.bag --models pinhole-equi --topics /color --show-extractio --approx-sync 0.04

        • 报错:Cameras are not connected through mutual observations, please check the dataset. Maybe adjust the approx. sync. tolerance

          • # 注释/kalibr_workspace/src/Kalibr/aslam_offline_calibration/kalibr/python/kalibr_calibrate_cameras文件中下面这几行,201行左右
            if not graph.isGraphConnected():
                obsdb.printTable()
                print "Cameras are not connected through mutual observations, please check the dataset. Maybe adjust the approx. sync. tolerance."
                graph.plotGraph()
                sys.exit(-1)
            
  • 相机外参标定

你可能感兴趣的:(摄像头,realsense,d435i)