跳至主要内容

透過研華GMSL相機安裝系統快速配置GMSL相機驅動程式與相關功能

投稿指南將 研華GMSL相機安裝系統(adv-cam) 定位為 Advantech ASR702 八個 GMSL 接頭的集中設定工具,可快速配置 GMSL 相機驅動程式與相關功能。操作者不必逐項手動協調 Device Tree、I²C 位址、MIPI 配線與開機驅動程式,只需記錄每個通道連接的相機型號,再由工具產生對應設定。

來源所述適用範圍如下:

項目來源標示值
平台Advantech ASR702
處理器平台NVIDIA Jetson AGX Thor
軟體堆疊JetPack 7.2 / L4T R39.2
套件advantech-adv-max96712 2.13-10
工具版本adv-cam 2.13-10
相機接頭CH1~CH8

這些數值只代表投稿環境,不表示其他版本或平台必然相容。

集中管理相機設定的優點​

多相機 GMSL 系統的限制不只發生在單顆相機。通道配置還會影響 serializer/deserializer link、可用串流 pipe、MIPI port 速率、同步方式及開機時啟動的 ROS 2 節點。adv-cam 將這些決策放入同一份設定,並提供三種可交替使用的介面:

介面指令適用情境
圖形介面sudo adv-cam有螢幕的本機設定
文字介面sudo adv-cam --tuiSSH 或序列主控台
指令列sudo adv-cam CH1=d457 …腳本、量產與遠端批次設定

主要價值是可重複性與提早檢查:在工具轉換為底層設定前,先檢視整台機器的實體拓撲與資源限制。

偵測、對應並檢查相機​

CAMERA CONNECTION 頁面將 CH1~CH4 與 CH5~CH8 對應至相機 profile;未連接的接頭應設為 None。來源指出,視窗開啟後的硬體偵測約需 20 秒。RE-SCAN 可重新查詢,Auto Apply 或 APPLY DETECTED 則可把偵測結果填入選單。

adv-cam CAMERA CONNECTION 頁面顯示八個通道、硬體偵測結果與設定警告

圖 1. CAMERA CONNECTION 將通道對應、硬體偵測與套用前檢查集中在同一頁。

偵測結果不一定只顯示通用 profile。投稿範例會讀取 StereoLabs EEPROM,將同屬 zedx profile 的裝置進一步辨識為 ZED X Nano 或 ZED X Mini,並用總結訊息確認儲存設定是否與實際連線一致。

VALIDATION 也會顯示整機限制。投稿畫面包含兩項重要警告:

  • 同一顆 deserializer 宣告 9 路串流,但只有 8 個 pipe,因此最多只能同時開啟 8 路;
  • 共用同一條 D-PHY/MIPI port 的相機要求不同速率時,該 port 會以最高需求速率運作。

這正是集中設定相較於分散修改設定檔的優點:資源超額與共用連線的影響能在部署前被看見。

設定全機共用的影像同步​

TIME SYNC 頁面控制由兩顆 MAX96712 deserializer 與八個通道共用的 trigger pulse。Trigger frequency 為 off 時,相機各自 free-run;選取頻率後,會設定整台機器共用的同步脈衝。

adv-cam TIME SYNC 頁面顯示 Trigger frequency 為 off

圖 2. TIME SYNC 顯示共用觸發訊號狀態;投稿畫面為相機各自運作。

指南區分兩個控制層次:

  • TIME SYNC 頁面決定 SoC 是否產生脈衝;
  • adv-cam-fsync 決定相機是否跟隨脈衝。

兩側都完成設定才會真正同步曝光。來源提供的相機端範例如下:

sudo adv-cam-fsync on

不要假設所有相機與驅動程式都支援相同觸發模式;請在目標硬體確認電氣時序、曝光行為及選用頻率。

在相同拓撲中管理 ROS 2 開機啟動​

ROS CONFIGURATION 頁面列出 CAMERA MODEL、CHANNEL 與 START AT BOOT。開關預設為 DISABLED;開啟後,該相機的 ROS 2 節點會在下一次開機時自動啟動。

adv-cam ROS CONFIGURATION 頁面列出相機型號、通道與停用的開機啟動開關

圖 3. ROS 開機設定直接沿用相機與通道對應,不必另外維護兩份拓撲。

投稿畫面顯示 ROS 2 Jazzy detected。來源另外說明:

  • Orbbec Gemini 335Lg 的 ROS 驅動需要先開啟 TIME SYNC 才會輸出影像;
  • 若未安裝 ROS 2 Jazzy,各列會維持 Disabled。這代表 ROS 環境不可用,不是相機偵測失敗。

安全套用設定​

APPLY DETECTED 只會填入選單,不會儲存。確認設定與警告後,按 SAVE & APPLY 並確認對話框;工具會產生並儲存 Device Tree 設定,再詢問是否重新開機。

  • **Yes:**立即重新開機,讓新設定生效。
  • **No:**先儲存,稍後再自行重新開機。

指南指出一個例外:由 2.13-4 以前版本升級,或由其他無法在 reboot 時重置相機的驅動程式切換而來時,第一次可能需要完整斷電約 30 秒;之後的變更則只需一般 reboot。中斷正式系統前,仍應依實際安裝版本確認此行為。

Headless 與自動化流程​

TUI 支援純鍵盤操作:

  • ↑/↓:切換通道;
  • ←/→:選取相機 profile;
  • N:將通道設為未連接;
  • F10 或 S:儲存並套用;
  • Esc 或 Q:不儲存離開。

CLI 提供相同資料模型:

sudo adv-cam --show
sudo adv-cam --detect
sudo adv-cam CH1=d457 CH2=zedx CH6=g335Lg
sudo adv-cam CH1=d457 CH6=g335Lg FSYNC=15

:::caution 通道指定指令代表完整設定 來源說明,未列在通道指定指令中的接頭會被視為 none。套用前必須檢查完整指令,否則可能關閉原本使用中的通道。 :::

來源列出的相機代號包括:

代號相機 profile
d457RealSense D457
g335LgOrbbec Gemini 335Lg
zedxStereoLabs ZED X/Mini/Nano
zedxoneStereoLabs ZED X One(GS)
zedxone4kStereoLabs ZED X One 4K
li-isx031Leopard Imaging ISX031
li-ox03f10Leopard Imaging OX03F10
appro-ar0234Appropho AR0234 ISP module
swSensing World SG8A
none未連接

--detect 可能顯示 serializer 位址、ID、EEPROM 型號與序號、link 速率不符,以及建議的完整設定指令。最後一行應視為待檢查的起點,不應未經確認直接執行。

新板子的建議流程​

來源提出下列初次設定順序:

sudo apt install ./advantech-adv-max96712_<version>_arm64.deb
sudo reboot
sudo adv-cam

請使用 apt,不要只執行 dpkg -i,讓系統能處理相依套件。在 GUI 等待偵測完成、檢視硬體與警告、按 APPLY DETECTED,再按 SAVE & APPLY。重新開機後,確認預期的 video node:

v4l2-ctl --list-devices
v4l2-ctl -d /dev/video0 --stream-mmap --stream-count=30 --stream-to=/dev/null

測試前先確認實際 /dev/video* 節點。指令成功返回仍不足以證明整體正常;還需驗證影格、相機身分、必要的同步,以及 ROS 開機啟動狀態。

限制與注意事項​

  • 來源指出每顆 deserializer 最多同時承載 8 路串流;D457 與 Gemini 335Lg 各佔 4 路,ZED X 佔 2 路。
  • 設定必須重新開機才會生效。
  • 共用 MIPI port 的相機會使用最高需求速率。
  • Sensing World(sw)目前只列為測試支援。
  • 有程式正在開啟 /dev/video* 串流時,硬體偵測會切成唯讀;關閉串流程式後再重新偵測,才能取得完整資訊。
  • 套件版本、支援型號與重置行為可能變更,應以實際安裝工具的 help 與 release 文件為準。