mynt product model: D1000-IR-120標定相機和IMU外參之二

1. 在之一中使用kalibr標定mynt相機和內置imu的外參數,使用的是720p,30fps的雙目圖像和200hz的imu數據,標定結果誤差比較大,這一次我們改用480p,60hz的雙目圖像和200hz的imu數據進行標定,需要在mynt_sdk中的mynteye.launch中進行如下修改.

默認獲取圖像的2560x720,30fps,可以在<arg?name="stream_mode"?default="$(arg stream_2560x720)"?/>處修改圖像分辨率,如果分辨率改為stream_1280x480那么就可以將<arg?name="framerate"?default="30"?/>中的幀率改為60,如果分辨率是720p,那么此處最大是30.

?

?

MYNT D1000-IR-120雙目相機和IMU外參標定

一、使用工具:安裝了ROS的Ubuntu16.04系統,D1000-IR-120系列的小覓相機一部,april_6x6_80x80的標定板一塊。

二、前期準備工作:

  1. 從mynt官網上下載對應標定相機的Linux Installation 版本的SDK,并按照安裝說明安裝到電腦上(http://www.myntai.com/mynteye/depth)。

?

  1. 根據需求在mynt-sdk/MYNT-EYE-D-SDK/wrappers/ros/src/mynteye_wrapper_d/launch/mynteye.launch文件中設置相機獲取圖像的參數,主要設置參數項如下:1)將?

<arg?name="ir_intensity"?default="4"?/>中的"4"改成0

  1. 默認獲取的圖像是未經過雙目畸變校正后的圖像,如果需要畸變校正后的圖像則將?<arg?name="color_mode"?default="$(arg color_raw)"?/>中的color_raw改成color_rectified.根據實驗結果,無論是否進行過rectified處理,只要標定過程中使用的相機配置文件中的相機內參數,以及相機畸變系數寫正確了,對實驗結果的精度影響不大。
  2. 默認獲取圖像的2560x720,30fps,可以在<arg?name="stream_mode"?default="$(arg stream_2560x720)"?/>處修改圖像分辨率,如果分辨率改為stream_1280x480那么就可以將<arg?name="framerate"?default="30"?/>中的幀率改為60,如果分辨率是720p,那么此處最大是30.根據標定結果推薦使用60fps的640x480的圖像來標定。
  • 開始標定
  1. ??首先使用在上面terminal 2中打開的Rviz窗口中勾選需要的topics,只有勾選上的topics,才可以被subscribe,我們需要勾選上的項包括,Left Image以及其下的image_mono,Right Image以及其下的image_mono(因為灰度圖完全可以完成標定所以使用灰度圖就可以了),還有imu也要勾選上。

然后使用指令:rosbag record bagname.bag topics將我們需要的話題數據直接寫入到bag文件,這里的話我們使用的指令為:rosbag record mynt_480p_rectified.bag /mynteye/left/image_mono /mynteye/right/image_mono /mynteye/imu/data_raw .

  1. 使用rosbag record imu0.bag /mynteye/imu/data_raw錄制相機靜置兩個小時的imu數據,使用imu_utils工具標定imu的高斯白噪聲和隨機游走參數。
  1. 在使用kalibr工具開始標定之前,首先生成標定所需要的三個配置文件camchain.yaml, imuchain.yaml, april.yaml.

  1. 使用kalibr工具中的kalibr_calibration_imu_camera腳本標定相機和imu的外參數,使用指令:kalibr_calibration_imu_camera --bag record mynt_480p_rectified.bag --cam camchain.yaml --imu imuchain.yaml --traget april.yaml --bag-from-to 5 50.(可以使用--bag-from-to參數截取數據集中5s到50s的數據用來標定)。
  • 標定結果與相機提供的數據對比

?

  • 總結

通過標定的結果與官方提供的參數對比,標定的相機和imu的旋轉變換的精度較高,但是平移量的兩者差距比較大,得虧相機和IMU之間的平移向量對VIO系統的影響不會很大,而旋轉變換則是很關鍵的。以30fps幀率獲取的2560x720的圖像,盡管在運動比較平穩的情況下,也會存在拖影的情況,但是改用60fps幀率獲取的1280x720的圖像,拖影現象不大明顯,標定效果更好。

六、注意事項

  1. Camchain.yaml文件中左目圖像到右目圖像平移變換數據要以米為單位,不能以毫米或者厘米。
  2. Camchain.yaml文件中的相機模型要選“pinhole”,相機畸變模型要選擇”radtan”不能選”equidistant”,否則標定誤差將很大。
  3. 使用原始圖像還是經過rectified處理后的圖像,只要在camchain.yaml文件中的相機參數設置正確,一般不會對標定結果造成影響。

使用60fps的1280x480的圖像標定結果比30fps的2560x480的圖像精度高。

?

使用用來標定mynt相機的數據集跑一下vins系統.

1. 首先生成mynt相機的launch文件和config文件,其中有一個問題是,mynt是魚眼相機,如果我將config文件中的fisheye選1,那么程序會自動加載一個mask圖像,但是運行是提示opencv出錯,所以換成使用經過畸變矯正后的圖像,然后將fisheye選為0.這樣就正確了,程序中提供了兩個mask圖像,一個是512x512的,另一個是752x480的,是不是需要提供自己數據集對應的一個mask圖像呢.

去年的時候使用自己的開發板獲取普通雙目相機和一片9250的imu數據,運行vins運行結果很差,飄的不行,這次試一下mynt相機采集的數據,雖然偶爾也會飄,但是總的來說比之前的體驗是好了很多.

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/252432.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/252432.shtml
英文地址,請注明出處:http://en.pswp.cn/news/252432.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

AODp

一、AOP是OOP的延續&#xff0c;是&#xff08;Aspect Oriented Programming&#xff09;的縮寫&#xff0c;意思是面向切面編程。 AOP&#xff08;Aspect Orient Programming&#xff09;&#xff0c;作為面向對象編程的一種補充&#xff0c;廣泛應用于處理一些具有橫切性質的…

[洛谷P4174][NOI2006]最大獲利

題目大意&#xff1a;同Petya and Graph&#xff0c;數據范圍改成$n\leqslant5\times10^3,m\leqslant5\times10^4$ 題解&#xff1a;同上 卡點&#xff1a;無 C Code&#xff1a; #include <algorithm> #include <cstdio> #define maxn 5010 #define maxm 50010 co…

使用ros發布UVC相機和串口IMU數據

&#xff11;&#xff0e;目的&#xff1a;為了可以標定普通USB相機和固定在相機上的外置IMU的外參,我希望通過ROS獲取更高分辨率和更高頻率的圖像數據,并且可以將圖像和imu的topic發布出來,直接使用rosbag record錄制話題數據,寫入bag文件,這樣獲得的bag文件直接可以用于相機和…

API自動化測試利器——Postman

自從開始做API開發之后&#xff0c;我就在尋找合適的API測試工具。一開始不是很想用Chrome擴展&#xff0c;用的WizTools的工具&#xff0c;后來試過一次Postman之后就停不下來了&#xff0c;還買了付費的Jetpacks。推出Team Sync Beta之后我又把這個工具推廣給團隊&#xff0c…

gcc,cc,g++,CC的區別

***gcc是C編譯器&#xff1b; ***g是C編譯器&#xff1b; ***linux下cc一般是一個符號連接&#xff0c;指向gcc ***gcc說明 1.gcc編譯常用格式&#xff1a; gcc C源文件 -o 目標文件 或 gcc -o 目標文件 C源文件 或 gcc C源文件 最后一種情況產生的目標文件默認為a.out 2.gcc…

云原生實踐之 RSocket 從入門到落地:Servlet vs RSocket

技術實踐的作用在于&#xff1a;除了用于構建業務&#xff0c;也是為了驗證某項技術或框架是否值得大規模推廣。 本期開始&#xff0c;我們推出《RSocket 從入門到落地》系列文章&#xff0c;通過實例和對比來介紹RSocket。主要圍繞RSocket如何實現Polyglot RPC、Service Regis…

制作.sens數據集跑通bundlefusion

1. 主要參考這篇博客實現 https://blog.csdn.net/Wuzebiao2016/article/details/94426905 2. 首先就是將自己采集的RGBD圖像的保存格式向Bundlefusion需要的格式對齊&#xff0c;如彩色圖的命名格式是frame-000000.color.png&#xff0c;深度圖的命名規則是frame-000000.depth…

用ul li實現邊框重合并附帶鼠標經過效果

邊框重合這個效果并不難&#xff0c;只是我們沒有真正的動手做過而已&#xff0c;下面讓我們來談談用ul li如何實現邊框重合&#xff0c;并附帶鼠標經過效果 1 <!DOCTYPE html>2 <html lang"zh-CN">3 4 <head>5 <title></title>6 …

hive 中窗口函數row_number,rank,dense_ran,ntile分析函數的用法

https://www.cnblogs.com/wujin/p/6051768.html轉載于:https://www.cnblogs.com/0xcafedaddy/p/8385476.html

python之moviepy庫的安裝與使用

目的&#xff1a;因為需要保存一個大大的.mp4視頻&#xff0c;以防過程中設備出現異常導致整個長長的視頻無法正常保存&#xff0c;所以采用分段保存視頻的方式&#xff0c;每500幀保存一段&#xff0c;然后再將視頻合到一起&#xff0e;最近剛開始學習python,發現python真的很…

oracle 之 安裝后pl/sql登錄報ora-12154

這個問題一開始困擾了很久。 查的資料是復制一小段代碼到tnsnames.ora中 SID名 (DESCRIPTION (ADDRESS (PROTOCOL TCP)(HOST localhost)(PORT 1522)) (CONNECT_DATA (SERVER DEDICATED) (SERVICE_NAME SID名) ) 注意SID名前面不能有任何其他字符&…

如何避免表單重復提交

客戶端方案 禁掉提交按鈕。 表單提交后使用Javascript使提交按鈕disable。這種方法防止心急的用戶多次點擊按鈕。但有個問題&#xff0c;如果客戶端把Javascript給禁止掉&#xff0c;這種方法就無效了。 使用Post/Redirect/Get模式 在提交后執行頁面重定向&#xff0c;這就是所…

十六進制轉八進制

【問題描述】 問題描述 給定n個十六進制正整數&#xff0c;輸出它們對應的八進制數。 輸入格式 輸入的第一行為一個正整數n &#xff08;1<n<10&#xff09;。 接下來n行&#xff0c;每行一個由0~9、大寫字母A~F組成的字符串&#xff0c;表示要轉換的十六進制正整數&…

使用iai_kinect2標定kinectV2相機

實驗背景&#xff1a;因為需要制作bundlefusion需要的數據集&#xff0c;所以需要使用kinectV2相機獲取rgbd圖像&#xff0c;年前的時候在我的筆記本上安裝了libfreenect2庫和iai_kinect2&#xff0c;標定過一次kinecv2相機&#xff0c;然后使用kinectv2相機實時獲取的圖像實現…

tar只解壓tar包中某個文件

如果tar包很大&#xff0c;而只想解壓出其中某個文件。方法如下&#xff1a; 只想解壓出Redis-1.972.tar 中的Changes文件&#xff0c;來查看有哪些更改。 [rootuplooking]# tar -tf Redis-1.972.tar Redis-1.972…

扎克伯格的中文夜:想要成功就不能放棄

10月23日消息。雖然并不太流暢。昨天馬克?扎克伯格依舊用中文與清華經管學院主持人完畢了一場對話&#xff1b;在對話中&#xff0c;這位Facebook創始人兼首席運行官闡述了自己學習中文的原因&#xff1a;想要和太太&#xff08;普里西拉?陳&#xff09;的家人交流&#xff1…

python將ros下bag文件的所有topic解析為csv格式

背景&#xff1a;最近在制作kimera的數據集&#xff0c;尤其是運行semantic模塊所需要的bag文件中有很多topic&#xff0c;但是很多不知道topic中裝的是什么數據&#xff0c;及其格式&#xff0c;所以我就想著怎么可以將bag中的topic都解析數來&#xff0c;這樣就能知道bag中都…

十九. Python基礎(19)--異常

十九. Python基礎(19)--異常 1 ● 捕獲異常 if VS異常處理: if是預防異常出現, 異常處理是處理異常出現 異常處理一般格式: try: <...............> #可能得到異常的語句 except <.......>: #捕獲是哪種異常 <...............> #出現異常的處理方…

洛谷1052——過河(DP+狀態壓縮)

題目描述 在河上有一座獨木橋&#xff0c;一只青蛙想沿著獨木橋從河的一側跳到另一側。在橋上有一些石子&#xff0c;青蛙很討厭踩在這些石子上。由于橋的長度和青蛙一次跳過的距離都是正整數&#xff0c;我們可以把獨木橋上青蛙可能到達的點看成數軸上的一串整點&#xff1a;0…

Tensorflow學習教程------tfrecords數據格式生成與讀取

首先是生成tfrecords格式的數據&#xff0c;具體代碼如下&#xff1a; #coding:utf-8import os import tensorflow as tf from PIL import Imagecwd os.getcwd() 此處我加載的數據目錄如下&#xff1a; bt -- 14018.jpg14019.jpg14020.jpgnbt -- 1_ddd.jpg1_dsdfs.jpg1_dfd.…