跳至內容
測試伺服器
開發伺服器

疑難排解#

執行程式時,發生了例外狀況。例外訊息:
無法建立 BaslerGTC/Basler/GenTL_Producer_for_Basler_blaze_101_camera。

原因:由 pylon Supplementary Package for blaze 所提供的 blaze 攝影機 GenTL 生成器無法找到。

解決方案: 請確保該 GENICAM_GENTL64_PATH 環境變數已正確設定。該變數必須包含以下資料夾:
Windows: <PYLON_ROOT>/Runtime/x64
Linux: <PYLON_ROOT>/lib/gentlproducer/gtl

If you run a 32-bit application, the GENICAM_GENTL32_PATH environment variable must contain the <PYLON_ROOT>/Runtime/win32 folder.

You can use the pylon-setup-env.sh script, located in the <PYLON_ROOT>/bin directory. To set up the environment for a pylon installation in /opt/pylon, execute:

source /opt/pylon/bin/pylon-setup-env.sh /opt/pylon

If you want the environment to be persistent, you can add

source /opt/pylon/bin/pylon-setup-env.sh /opt/pylon
to ~/.bashrc

If you do not use this script, you will have to set up your environment as follows:

export GENICAM_GENTL64_PATH=/opt/pylon/lib/gentlproducer/gtl:$GENICAM_GENTL64_PATH

CMake 會發出大量警告。

原因:視 PCL 的版本而定,PCL 的 CMake 配置檔會引發許多警告。

解決方案:為了編譯和執行 Basler blaze 範例程式,通常可以忽略這些警告。

透過傳入 -Wno-dev CMake 的命令列選項。

Windows 僅此一項:因缺少 opencv_world*.dll 檔案,導致使用 OpenCV 執行範例時發生錯誤。

理由: OpenCV 的路徑不在 PATH 環境變數。

解決方案: 必須將 OpenCV 的安裝路徑新增至 PATH 環境變數。 將 OpenCV 加入 PATH 環境變數.

Windows 僅有:因缺少 OpenNI2.dll 檔案,導致使用 PCL 執行範例時發生錯誤。

原因:PCL 一体化安裝程式將 OpenNI2.dll 安裝至不在 PATH 變數範圍內的路徑。

解決方案: PCL 安裝程式會將「DLL 」安裝至 %ProgramFiles%\OpenNI2\Redist 資料夾。請將此資料夾新增至您的 PATH 環境變數,或將 OpenNI2.dll 前往 PCL 二進位檔所在的資料夾,例如: %ProgamFiles%\PCL 1.11.1\bin.

Windows 僅限:當使用 PCL 時,範例會在 CMAKE_BUILD_TYPE 設為 RelWithDebInfo,或使用 CMAKE_BUILD_TYPE 設定為 RelWithDebInfo 執行時會發生當機。

理由: PCL 對該項目的支持 RelWithDebInfo 設定出現問題。系統連結的並非 PCL 用於視覺化任務的 VTK 函式庫發行版,而是其除錯版。這導致函式庫同時引用了 Microsoft C++ 執行時函式庫的除錯版與發行版,進而造成連結器無法連結可執行檔,或導致執行時發生當機。

解決方案 1: 選擇 Release 而不是 RelWithDebInfo.

注意

Visual Studio 的 CMake 支援功能會自動將 CMake 建置類型設定為 RelWithDebInfo 在建立一個 Release 建置設定。您必須編輯 CMakeSettings.json 手動編輯檔案,並變更該 configurationType 欄位來自 RelWithDebInfo 設為 Release.

解法 2:

  1. 建立該檔案的副本 %ProgramFiles%\PCL x.y.z\3rdParty\VTK\lib\cmake\vtk-x.y\VTK-Targets-debug.cmake 檔案。
  2. 重新命名該副本 VTK-Targets-relwithdebinfo.cmake.
  3. 請使用文字編輯器開啟該檔案,並將所有出現的 RELEASE 作者: RELWITHDEBINFO.
  4. 清除 CMake 快取,並重新產生快取。

畫面幀率偏低。

原因:在除錯模式下,編譯器會產生未經最佳化的程式碼。

解決方案:請確保應用程式是以發布模式建置的。

Windows 僅此而已:連結器抱怨 32 位元與 64 位元函式庫混用。

原因:在連結應用程式時,所有二進位檔都必須是 32 位元或 64 位元的二進位檔。無法在同一個可執行檔中混合使用 32 位元與 64 位元的函式庫。

解決方案:請確保在產生 Visual Studio 解決方案檔案時,所選定的目標平台(x86 或 x64)須與 OpenCV 及 PCL 函式庫的建置平台一致。

當應用程式發生當機或被強制終止後,一個 device is already connected 重新啟動應用程式時會出現錯誤訊息。

原因:當應用程式意外終止時,便無法再關閉與攝影機的連線。攝影機會等待直到 GigE Vision 心跳超時結束,才會接受新的連線。

通常,若您是在除錯器下執行應用程式,且使用的是 Pylon 7.0 或更早版本,就會發生這種情況。較新的 Pylon 版本會在程式結束時自動關閉相機連線。

解決方案:若您已增加心跳超時時間,或者您正在使用 Pylon 7.0 或更早版本,且是在除錯器下執行應用程式,則必須重啟攝影機,或將攝影機從網路中短暫斷開連接。

有關如何控制 GigE Vision 心跳超時的詳細資訊,請參閱「除錯 C++ 應用程式與控制 GigE Vision 心跳」或「除錯 .NET 應用程式與控制 GigE Vision 心跳」章節。