Intel RealSense 家族的 T265 追蹤攝影機,在沒有GPS的情況下可以提供精確的空間中的物體追蹤、掌握空間及地形特徵。
Intel RealSense T265 追蹤攝影機中的Movidius Myriad 2.0視覺處理器經過最佳化,可低功耗運行V‑SLAM。不需要其他設備,在T265攝影機上運行的V-SLAM演算法,在沒有GPS的情況下可以提供精確的空間中的物體追蹤、掌握空間及地形特徵。適用於有追蹤精度要求或是攝影機會大幅度移動的專案。想要進一步了解 Intel RealSense T265 追蹤攝影機,可以參考 Intel RealSense Github 的 T265 介紹文件或是觀看 T265 介紹影片。本篇中的程式操作均在 Jetson Nano 上執行,作業系統為 Ubuntu 18.04。
本文大綱
- Intel RealSense T265 介紹
- 搭配 RealSense Viewer 使用 T265
- Python 範例程式
- C++ 範例程式
作者/攝影 | 蔡雨錡 |
時間 | 1hr |
難度 | ★☆☆☆☆ |
材料表 |
Intel RealSense T265介紹
首先是簡單的開箱,Intel RealSense T265 追蹤攝影機盒子是如下圖的長方形。
這樣的盒裝深度很明顯的是沒有像 D435i 或是 L515 那樣有附上三腳架。盒子內的內容物如下圖所示。
正上方看可以看到 T265 的兩顆魚眼鏡頭。背面有兩個M3螺絲孔。附上的連接線兩端規格分別為 USB 3.0 以及 Micro B。
Intel RealSense T265 追蹤攝影機大致上的優缺點整理如下:
優點:
- 體積小
- 兩顆魚眼鏡頭
- IMU感測器測量設備的旋轉和加速度
- 5W低功耗
- 可獨立運行的V-SLAM演算法
- Movidius Myriad 2.0 VPU
- 支援跨平台:Windows, Linux, Android
- 開源的 Host API 函式庫
缺點:
- 非深度攝影機
因為非深度攝影機,所以可以搭配有深度資訊的 Intel RealSense D435i 一併使用,Intel 也有現成的程式碼 rs-tracking-and-depth 以及配合程式的3D列印stl檔案,提供了組裝方法及兩者如何搭配使用的體驗,之後有機會會撰寫文章向大家介紹。
Intel RealSense T265 追蹤攝影機的不同感測器的座標軸方向如下圖,截圖自Intel RealSense T265 Github 文件。
T265 vs D435i 比較表圖下圖:
搭配 RealSense Viewer 使用 T265
接下來,將連接線接上已經開機的 Jetson Nano。打開終端機輸入 realsense-viewer 開啟 RealSense Viewer 。
預設情況下,將 Tracking Module 改為 on 後,兩顆魚眼鏡頭、加速度、陀螺儀、以及姿態感測器的五個畫面可以很順利的同時顯示。
稍微轉動一下,可以看到左下角姿態感測器座標有改變。
展開的項目如下圖,可以調整的項目比較少。
接下來,來看一下 3D 的介面。 相較於起始位置,會顯示移動路徑以及現在的 T265 座標。
紀錄移動路徑的顏色有分三種:綠色、黃色、紅色。綠色為慢速度移動,紅色則為高速移動,黃色的速度為介於前兩者之間。
RealSense Viewer 的部分就介紹到這邊,接著介紹更受關注的、可以修改的Python及C++範例程式碼。
Python 範例程式
Intel RealSense T265 追蹤攝影機 Python 範例程式有三個:T265 Basic、T265 Coordinates、T265 Stereo。
如果你按照之前的文章安裝RealSense套件,在~/librealsense/wrappers/python/examples資料夾底下可以找到這三個程式碼。
T265 Basic 的程式中,顯示了前50個幀的加速度、陀螺儀、姿態(位置)感測器數據。
T265 Coordinates 程式範例中為顯示 T265 姿態(位置)感測器的坐標系的改變數值。
T265 Stereo 程式中教你如何在OpenCV中使用T265內部函數和外部函數,在主機上利用T265魚眼圖像非同步的計算深度影像。
這一步一開始一直無法執行成功,因此在操作的時候註解掉了以下圖中紅色的兩行,以避免直接進入 break。
C++ 範例程式
覺得 Python 範例不夠過癮,可以來玩看看 C++ 程式。在這邊主要介紹以下幾個程式。
rs-pose 程式會顯示 T265 當下與初始位置的相對位置。
rs-pose-predict 顯示位置預測,使用了callback API 以及 librealsense global time。
rs-pose-and-image 顯示了如何非同步的使用 T265 追蹤攝影機取得 200Hz 的位置資訊以及 30 fps 的影像。
以上三之程式的成果圖如下:
rs-ar-basic 顯示如何使用姿態(位置)感測器和魚眼影像在魚眼影像上顯示簡單的虛擬物件。
rs-trajectory 範例為使用姿態(位置)數據繪製 T265 裝置移動的 3D 軌跡。共會顯示四個視窗,包含三個角度的 2D 移動路徑圖以及 3D 路徑圖。
rs-capture 為將魚眼鏡頭、陀螺儀、以及加速度感測器數據的 2D 視覺化的範例。
rs-save-to-disk 教你如何設定攝像機和保存 PNG 圖片檔。會儲存兩顆魚眼鏡頭的影像在你終端機執行命令時的當前所在資料夾中。
rs-multicam 為在單一窗口中同時處理多個攝像機串流的範例,但因為我現在只有一個 T265 攝影機,會跳警告提醒你只有一個攝影機後顯示介面如下圖。
rs-sensor-control 為使用 rs2::sensor API 的教學範例程式碼。有好幾個層次,以下列出主要的幾層資訊給大家看。
執行程式後,會先列出連接上主機的 RealSense 裝置,目前只有一顆 T265。
輸入你想要查看的裝置編號,本範例中輸入僅有的裝置編號 0。選擇完裝置後,可以選擇模組,查看裡面所有的感測器,在這裡也是只有一個 Tracking Module。
接著輸入你想要讓感測器做的動作編號。
標號 0~3的結果分別如下:
Action 0 : 有 62 個進階選項。
Action 1:可以進一步選擇五個感測器及魚眼鏡頭其中一個。
Action 2:檢視五個感測器及魚眼鏡頭其一的內部函數。
Action 3:檢視五個感測器及魚眼鏡頭其一的外部函數。
關於 Intel RealSense T265 的介紹就到這裡。想要進一步了解 Intel RealSense T265 追蹤攝影機,可以參考 Intel RealSense Github 的 T265 介紹文件或是觀看 T265 介紹影片。另外,關於 Intel RealSense T265 搭配有深度資訊的 Intel RealSense D435i 一併使用,之後有機會會撰寫文章向大家介紹。有 RealSense 攝影機系列產品的相關問題或是分享都歡迎在底下留言喲!
參考資料: