RealSense D435i + Kalibar标定 Ros Melodic

准备工作:

Ubuntu18.04

ros环境

librealsense

realsense-ros

d435i相机

一、安装kalibar(建议源码安装)

1.以下是一些将安装 ROS 1 桌面环境和 catkin 工具的示例命令

sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'
sudo apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654
sudo apt-get update
export ROS1_DISTRO=melodic # kinetic=16.04, melodic=18.04, noetic=20.04
sudo apt-get install ros-$ROS1_DISTRO-desktop-full
sudo apt-get install python-catkin-tools # ubuntu 16.04, 18.04
sudo apt-get install python3-catkin-tools python3-osrf-pycommon # ubuntu 20.04

2.安装构建和运行依赖项

sudo apt-get install -y \
    git wget autoconf automake nano \
    libeigen3-dev libboost-all-dev libsuitesparse-dev \
    doxygen libopencv-dev \
    libpoco-dev libtbb-dev libblas-dev liblapack-dev libv4l-dev
# Ubuntu 16.04
sudo apt-get install -y python2.7-dev python-pip python-scipy \
    python-matplotlib ipython python-wxgtk3.0 python-tk python-igraph
# Ubuntu 18.04
sudo apt-get install -y python3-dev python-pip python-scipy \
    python-matplotlib ipython python-wxgtk4.0 python-tk python-igraph
# Ubuntu 20.04
sudo apt-get install -y python3-dev python3-pip python3-scipy \
    python3-matplotlib ipython3 python3-wxgtk4.0 python3-tk python3-igraph

3.创建catkin工作空间并克隆项目

cd ~/kalibr_workspace/src
git clone https://github.com/ethz-asl/kalibr.git

这里如果git clone不行的花,可以直接从GitHub里面下下来再放进src文件夹下(作者这里下的是kalibar-fix-18.04,因为后面编译kalibar-master的时候出现了编译问题未解决,所以选择了前面的包(之前看到的一篇文章里有些的))

4.使用Release配置构建代码。根据可用内存,您可能需要减少构建线程

cd ~/kalibr_workspace/
catkin build -DCMAKE_BUILD_TYPE=Release -j4

在这里会出现如下面所示aslam_imgproc模块异常的问题的话

/home/dyf/kalibr_workspace/src/kalibr/aslam_cv/aslam_imgproc/include/aslam/implementation/PinholeUndistorter.hpp:108:86: 
error: no matching function for call to ‘getOptimalNewCameraMatrix<aslam::PinholeUndistorter<aslam::cameras::RadialTangentialDistortion, aslam::cameras::ImageMask>::distorted_geometry_t>

只要将kalibr/aslam_cv/aslam_imgproc/include/aslam/implementation/aslamcv_helper.hpp

中的CvSize改成cv::Size再次编译即可(其中的warning可以忽略,编译成功会显示37个包全部完成)

二、下载&打印标定板

1.推荐 Aprilgrid 标定板:https://github.com/ethz-asl/kalibr/wiki/downloads

2.这是参数的说明:Calibration targets · ethz-asl/kalibr Wiki · GitHub​​​​​​

3.我下载的是6x6 0.8mx0.8m(A0 page),然后用打印机在A4纸上打印出来,记得打印出来用尺子量一下,然后计算一下yaml文件里的值是否一直,以免出现差错。对应的yaml文件也要下载下来(记住路径,后面会用到)。

4.标定板固定,保持好合适距离(尽量水平)。

三、开启摄像头

打开rviz观察合理的距离,要求摄像头能看到标定棋盘格。

roscore 
roslaunch realsense2_camera rs_camera.launch
rviz

打开之后,先在左侧 Fixed Frame 选择camera_link然后在左下角选择 add --> By topic --> /camera/color/image_raw/ --> 双击Camera ,找一个适合的能拍到棋盘格的距离即可(相机最好不要固定死,后面标定需要移动相机)

四、修改相机帧数(推荐修改相机帧数到4hz(要求图像频率不可过高),不行的话可以试一下20hz)

rosrun topic_tools throttle messages /camera/color/image_raw 4.0 /color

五、录制ROS数据包(录制一到两分钟即可)

rosbag record -O camd435i /color

录制的时候相机对着标定板移动,一到两分钟后暂停,即可看到文件夹出现camd435i.bag数据包

六、使用kalibar标定

在kalibar工作空间中打开终端(确保加载环境变量后),运行下面命令:

kalibr_calibrate_cameras --target /位置1/文件名.yaml --bag /位置2/camd435i.bag --bag-from-to 26 100 --models pinhole-radtan --topics /color --show-extraction

位置1是之前让下的标定板对应的yaml的路径;文件名就是yaml文件的文件名;位置2是camd435i.bag数据包所在位置,一般是在kalibar工作空间下。

26-100 指的是录制的第26秒到100秒这段时间(从别人那里看到的),pinhole-radtan指的是针孔相机模型和畸变模型。

标定完之后就可以发现当前目录下出现了三个文件,就是标定的结果。
***.yaml
***.txt
***.pdf


 

其中intrinsic 是内参,distortion_coeffs 是畸变参数 

 参考文章:Intel RealSense D435i Calibration_古路的博客-CSDN博客

Ubuntu18.04+ROS+kalibr标定工具箱安装编译_木朗逸的博客-CSDN博客

Realsense D435i RGB+IMU标定_Hecttttttttt的博客-CSDN博客

  • 2
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值