中國(guó)自動(dòng)化學(xué)會(huì)專家咨詢工作委員會(huì)指定宣傳媒體
新聞詳情
gkongbbs

精確時(shí)間同步協(xié)議(PTP)——輕松實(shí)現(xiàn)多相機(jī)的精確同步

http://casecurityhq.com 2022-05-17 10:23 來源:

  在某些應(yīng)用場(chǎng)合中,如果需要處理來自多臺(tái)相機(jī)的圖像時(shí),則圖像記錄的精確時(shí)間或準(zhǔn)確的先后順序?qū)罄m(xù)處理至關(guān)重要。若相機(jī)能夠提供時(shí)間戳,則可為不同的圖像數(shù)據(jù)建立時(shí)間基準(zhǔn)。然而,相機(jī)的時(shí)間基準(zhǔn)要能夠精確匹配,這一點(diǎn)至關(guān)重要。通過使用“精確時(shí)間協(xié)議”(PTP),HK IDS GigE Vision相機(jī)(固件版本2.2或以上)能夠輕松實(shí)現(xiàn)同步。

  借助精確時(shí)間協(xié)議(PTP)同步HK IDS GigE Vision相機(jī)

  精確時(shí)間協(xié)議(PTP)是一種時(shí)間同步標(biāo)準(zhǔn)(IEEE1588),它使通過網(wǎng)絡(luò)連接的設(shè)備實(shí)現(xiàn)時(shí)間同步。支持此標(biāo)準(zhǔn)的相機(jī)可在特定的周期內(nèi)與主時(shí)鐘交換同步信息。利用各自發(fā)送和接收時(shí)間中的時(shí)間戳信息,相機(jī)內(nèi)部的計(jì)數(shù)器可實(shí)現(xiàn)精確地校準(zhǔn)和同步。

  所有固件版本為2.2及以上的HK IDS GigE Vision相機(jī)都可與PTP兼容!

  IEEE1588時(shí)間戳是以1970年1月1日0時(shí)0分為計(jì)時(shí)起點(diǎn),支持1納秒(1 GHz)的時(shí)間分辨率。然而,由于延遲和信號(hào)運(yùn)行時(shí)的不準(zhǔn)確性,聯(lián)網(wǎng)設(shè)備的時(shí)間同步精度達(dá)微秒級(jí)。

  PTP應(yīng)用案例

  PTP作為一種基礎(chǔ)協(xié)議,通過為圖像數(shù)據(jù)提供時(shí)間基準(zhǔn),為各種應(yīng)用奠定基礎(chǔ)。視應(yīng)用要求及網(wǎng)絡(luò)基礎(chǔ)設(shè)施的復(fù)雜性的不同,PTP可以通過不同的方式來實(shí)現(xiàn)。

  01  相對(duì)時(shí)間戳同步

  在本案例中,所有相機(jī)都在同一個(gè)網(wǎng)絡(luò)。其中一臺(tái)相機(jī)為主服務(wù)器,其余相機(jī)為從服務(wù)器。所有從相機(jī)的時(shí)間戳與主相機(jī)同步。相機(jī)既不提供絕對(duì)時(shí)間戳(實(shí)時(shí)),同時(shí)在無其他操作的情況下,也無法實(shí)現(xiàn)同步觸發(fā)。

  優(yōu)勢(shì):

  ■ 在該應(yīng)用場(chǎng)合中,相對(duì)時(shí)間戳確定所有相機(jī)圖像記錄的時(shí)間分配。此外,相對(duì)時(shí)間戳還能確定哪一張圖像為第一張,以及不同相機(jī)的圖像時(shí)差大小。

  ■ 無需額外的操作和成本,即可為特定的網(wǎng)絡(luò)基礎(chǔ)架構(gòu)生成相對(duì)時(shí)間戳。

  02  利用絕對(duì)時(shí)間同步時(shí)間戳

  本案例中,聯(lián)網(wǎng)相機(jī)與外部主時(shí)鐘同步。該P(yáng)TP主時(shí)鐘可以是支持“硬件時(shí)間戳”的網(wǎng)卡——若無硬件支持,同步精度將顯著降低。除必要的硬件外,還需要支持PTP的軟件。

  優(yōu)勢(shì):

  ■ 具備全局(實(shí)時(shí))時(shí)間戳的圖像內(nèi)容可跨越當(dāng)前的應(yīng)用限制,與任何其他使用實(shí)時(shí)時(shí)間基準(zhǔn)的信息相關(guān)聯(lián)。

  ■ 對(duì)于其它使用全局時(shí)間基準(zhǔn)的應(yīng)用場(chǎng)合或評(píng)估,圖像內(nèi)容可以重用。

  使用PTP:“相對(duì)同步”

  硬件設(shè)置

  兩臺(tái)不同的固件版本為2.2(支持PTP)的HK IDS GigE Vision相機(jī)(GV-526xFA-C和GV-504xCP-M)連至同一網(wǎng)絡(luò)交換機(jī)。一臺(tái)額外的主機(jī)PC,僅用于控制和配置相機(jī),不涉及相機(jī)的PTP同步。

  軟件設(shè)置

  可通過“PtpControl”下的相機(jī)功能節(jié)點(diǎn)圖查找所有PTP配置功能。只有固件需為2.2或以上版本的相機(jī)才能使用這些功能。我們?cè)谥鳈C(jī)PC上安裝配套軟件,來設(shè)置PTP同步。

  將一臺(tái)相機(jī)配置為PTP主時(shí)鐘

  GV-526xFA-C相機(jī)應(yīng)設(shè)置為PTP主時(shí)鐘。在軟件中打開相機(jī),并將“PtpEnable”設(shè)為“True”,啟用PTP。另外,將“PtpSlaveOnly”設(shè)為“False”為相機(jī)賦予“主時(shí)鐘”角色。

  # Configure master camera

  PtpEnable = True

  PtpSlaveOnly = False

  將另一臺(tái)相機(jī)配置為PTP從時(shí)鐘

  GV-504xCP-M相機(jī)應(yīng)設(shè)為PTP從時(shí)鐘。同理,將“PtpEnable”設(shè)為“True”以啟用PTP。此時(shí),這臺(tái)相機(jī)僅作為從時(shí)鐘使用。將“PtpSlaveOnly”仍設(shè)為“True”。

  # Configure slave camera

  PtpEnable = True

  PtpSlaveOnly = True

  創(chuàng)建主從等級(jí)

  在完成主從時(shí)鐘配置后,主-從等級(jí)將自動(dòng)創(chuàng)建。對(duì)于主時(shí)鐘相機(jī),可通過“PtpStatus”由“Listening ”變成“Master”來確定。對(duì)于從時(shí)鐘相機(jī),可通過“PtpStatus”先由“Listening”變?yōu)?ldquo;Uncalibrated”,并在與主時(shí)鐘相機(jī)同步后變?yōu)?ldquo;Slave”來確定。

  在通過相機(jī)的新PTP功能完成主從等級(jí)創(chuàng)建后,“相對(duì)同步”也隨之完成。

  啟用時(shí)間戳

  如果您希望對(duì)圖像數(shù)據(jù)使用已同步相機(jī)生成的時(shí)間戳,則必須將時(shí)間戳作為元數(shù)據(jù),啟用元數(shù)據(jù)(及塊數(shù)據(jù))傳輸。

  首先,將“ChunkModeActive”設(shè)為“True”,以通過圖像緩沖區(qū)啟用塊數(shù)據(jù)傳輸。然后,通過“ChunkSelector”選擇“Timestamp”,并通過“ChunkEnable”開關(guān)啟用時(shí)間戳。

  # activate chunk data creation

  ChunkModeActive = True

  # enable "ChunkTimestamp"

  ChunkSelector = Timestamp

  ChunkEnable = True

  這時(shí),相機(jī)所采集的每一張圖像將具備相應(yīng)的時(shí)間戳,并借助圖像緩沖區(qū)(通過塊數(shù)據(jù))傳輸至主機(jī)PC。這樣,塊數(shù)據(jù)及時(shí)間戳可通過任何視覺標(biāo)準(zhǔn)軟件進(jìn)行讀取。

  圖像采集

  如果應(yīng)用中需要對(duì)帶時(shí)間戳的圖像數(shù)據(jù)進(jìn)行處理,則圖像的記錄時(shí)間和相機(jī)的觸發(fā)至關(guān)重要。這種情況取決于來自多臺(tái)相機(jī)的圖像是否需要完全相同的采集時(shí)間(同步圖像采集)以及時(shí)間關(guān)聯(lián)偏差(時(shí)間戳抖動(dòng))有多大。根據(jù)應(yīng)用要求,須選擇適合相機(jī)的觸發(fā)模式。在做出這一選擇時(shí),要考慮的決定性的因素不僅包括不同軟件和硬件信號(hào)模式的精度,也包括部署和使用所需操作和成本。為檢查先前配置的“相對(duì)同步”,我們使用每秒脈沖數(shù)(PPS)信號(hào)來觸發(fā)相機(jī),以實(shí)現(xiàn)同步自由運(yùn)行。

  同步自由運(yùn)行

  顧名思義,在PTP功能啟用的情況下,每臺(tái)相機(jī)(主時(shí)鐘相機(jī)和從時(shí)鐘相機(jī))的PPS信號(hào)會(huì)每秒生成一個(gè)。因此我們可借助PPS信號(hào)檢查相機(jī)的同步狀態(tài)。這一信號(hào)被設(shè)置為觸發(fā)源,因此每秒鐘將觸發(fā)一次圖像采集。除了由“相對(duì)同步”導(dǎo)致的幾微妙的偏差,相機(jī)生成的圖像時(shí)間戳應(yīng)為一致。通過PPS信號(hào)實(shí)現(xiàn)所有相機(jī)同步自由運(yùn)行的操作如下:

  # image acquisition configuration for both cameras

  LineSelector = Line2

  LineMode = Output

  LineSource = PPS

  TriggerSelector = ExposureStart

  TriggerMode = On

  TriggerSource = Line2

  # Limit bandwidth on both cameras

  DeviceLinkThroughputLimit = 60000000

  # Start acquisition on both cameras

  Execute AcquisitionStart

同步PPS觸發(fā)信號(hào)將觸發(fā)相機(jī)在同一時(shí)間點(diǎn)進(jìn)行圖像采集

  讀取時(shí)間戳

  為在應(yīng)用場(chǎng)合中處理時(shí)間戳和圖像內(nèi)容,您須讀取當(dāng)前圖像緩沖區(qū)的塊數(shù)據(jù)。塊數(shù)據(jù)為制造商相關(guān)的有效負(fù)載緩沖區(qū),其存儲(chǔ)布局通常未知,因此我們將通過節(jié)點(diǎn)圖來讀取各個(gè)元數(shù)據(jù)。為此,所有現(xiàn)有的元數(shù)據(jù)及其標(biāo)準(zhǔn)的節(jié)點(diǎn)名稱將從GenTL傳輸至節(jié)點(diǎn)圖,以便通過標(biāo)準(zhǔn)的API進(jìn)行訪問。

  以下的源代碼片段為您演示如何從圖像緩沖區(qū)中提取時(shí)間戳。安裝包也為您提供了有關(guān)塊數(shù)據(jù)處理的完整源代碼示例。

  // Get buffer from device's datastream

  const auto buffer = m_dataStream->WaitForFinishedBuffer(5000);

  // check buffer for chunks

  if (buffer->HasChunks())

  {

  // update nodemap with current chunk data

  m_nodemapRemoteDevice->UpdateChunkNodes(buffer);

  // Get the value of the timestamp chunk

  const auto chunktimestamp = m_nodemapRemoteDevice->FindNode<peak::core::nodes::FloatNode>("ChunkTimestamp")->Value();

  }

  總結(jié)

  當(dāng)涉及圖像內(nèi)容的時(shí)間分配時(shí),PTP是多相機(jī)應(yīng)用場(chǎng)合中一個(gè)重要的基礎(chǔ)功能,能夠輕松實(shí)現(xiàn)相機(jī)間的相對(duì)同步,無需額外的硬件和軟件支持。在許多應(yīng)用場(chǎng)合中,相對(duì)相機(jī)同步也足以確保圖像在“相同”的時(shí)間或以正確的順序使用。相機(jī)還配備外部定時(shí)器,適用于全局同步。

版權(quán)所有 中華工控網(wǎng) Copyright?2024 Gkong.com, All Rights Reserved