小觅相机标准版标定(kalibr 和 basalt)记录过程

    因为要等着财务审批下来才可以买标定板,于是就先凑合着用打印出来A4大小的二维码标定板用着了。先没有打算标定IMU,只是单纯的标定了双目,使用的双目相机是小觅S1030标准版的。

1.数据的采集

   进入SDK的目录下:

cd ROS_WORKSPACE/mynt_eye_sdk/src/MYNT-EYE-S-SDK/
source ./wrappers/ros/devel/setup.bash 
roslaunch mynt_eye_ros_wrapper mynteye.launch 

  打开另外一个终端:

rostopic list 查看所有活动的topic
/mynteye/camera_mesh
/mynteye/depth/camera_info
/mynteye/depth/image_raw
/mynteye/disparity/camera_info
/mynteye/disparity/image_norm
/mynteye/disparity/image_raw
/mynteye/imu/data_raw
/mynteye/left/camera_info
/mynteye/left/image_raw
/mynteye/left_rect/camera_info
/mynteye/left_rect/image_rect
/mynteye/points/data_raw
/mynteye/right/camera_info
/mynteye/right/image_raw
/mynteye/right_rect/camera_info
/mynteye/right_rect/image_rect
/mynteye/temperature/data_raw
/rosout
/rosout_agg
/tf_static

  需要用的topic是/mynteye/left/image_raw 和 /mynteye/right/image_raw。

rosbag record -O test.bag /mynteye/left/image_raw /mynteye/right/image_raw

  把camera的数据存储到了test.bag文件中,接着对该文件进行修改,降低采集数据的频率。

  在kalibr的工作区中激活kalibr

source  ~/kalibr_workspace2/devel/setup.bash
kalibr_bagextractor --bag test.bag --image-topics /mynteye/left/image_raw /mynteye/right/image_raw --output-folder dataset  #提取出来相机录制的信息。

  提取出数据和处理过数据之后,再利用kalibr进行.bag数据的制作

kalibr_bagcreater --floder dataset --output-bag stere_data.bag

2.利用kalibr进行标定

  标定之前先要写入target 的标定yaml文件,笔者使用的是:

target_type: 'aprilgrid' #gridtype
tagCols: 6               #number of apriltags
tagRows: 6               #number of apriltags
tagSize: 0.022           #size of apriltag, edge to edge [m]
tagSpacing: 0.3          #ratio of space between tags to tagSize
                         #example: tagSize=2m, spacing=0.5m --> tagSpacing=0.25[-]

接着进行标定:

kalibr_calibrate_cameras --bag ../stere_data.bag  --topic /cam0/image_raw /cam1/image_raw --target ../april_6x6.yaml --models ds-none ds-none

3.利用basalt进行标定

   basalt使用的配置文件是json,所以先把配置文件改为json:

{
  "target_type": "aprilgrid",
  "tagCols": 6,
  "tagRows": 6,
  "tagSize": 0.022,
  "tagSpacing": 0.3
}

接着进行标定:

basalt_calibrate --dataset-path ~/calibration_dir/stere_data.bag  --dataset-type bag --aprilgrid ~/calibration_dir/april_6x6.json --result-path ~/calibration_dir/ --cam-types ds ds

这个是存在GUI的标定,可以通过GUI来表示每一个过程。

4.问题与总结

 两者都是使用DS模型来进行标定的,但是两者的标定参数还相差挺大,并且重投影误差也较大的。目前的想法是因为标定板的原因,标定板精度不高,而且太小了,等着标定板来了再进行标定。

接着就是标定IMU以及联合标定相机和IMU。

 

--------------------------------------------分割线------------------------------------------------------------

因为利用kalibr联合标定imu和双目相机操作起来比较简单,于是就把它直接放在这个下面了。

首先双目标定结束后,会产生一个camchain-..stere_data.yaml结果文件,这个会当做输入联合标定的一个输入;

接着要配置一个imu.yaml文件(该文件的信息是由imu的信息得到的,可以通过imu_utils进行标定得到):

#Accelerometers
accelerometer_noise_density: 1.86e-03   #Noise density (continuous-time)
accelerometer_random_walk:   4.33e-04   #Bias random walk

#Gyroscopes
gyroscope_noise_density:     1.87e-04   #Noise density (continuous-time)
gyroscope_random_walk:       2.66e-05   #Bias random walk

rostopic:                    /imu0      #the IMU ROS topic
update_rate:                 200.0      #Hz (for discretization of the values above)

然后采集到的相机和imu数据都集成到一个bag包中:

rosbag record /mynteye/left/image_raw /mynteye/right/image_raw /mynteye/imu/data_raw #生成含有imu数据的bag包

最后进行标定:

kalibr_calibrate_imu_camera --bag ./mix.bag --cam camchain-..stere_data.yaml --imu imu.yaml --target ../april_6x6.yaml

 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值