Linux/Mac:
G2O是一種開源C ++框架,用於優化基於圖的非線性誤差函數。 G2O旨在易於擴展到廣泛的問題,通常可以用幾行代碼指定一個新問題。當前的實施為SLAM和BA的幾種變體提供了解決方案。
機器人技術以及計算機視覺的各種問題涉及可以將非線性誤差函數的最小化,可以表示為圖形。典型的實例是同時定位和映射(SLAM)或捆綁調整(BA)。這些問題的總體目標是找到最大解釋受高斯噪聲影響的一組測量值的參數或狀態變量的配置。 G2O是此類非線性最小二乘問題的開源C ++框架。 G2O旨在易於擴展到廣泛的問題,通常可以用幾行代碼指定一個新問題。當前的實施為SLAM和BA的幾種變體提供了解決方案。 G2O提供的性能與針對特定問題的最先進方法的實現相當(02/2011)。
分支Pymem包含一個Python包裝器,並切換到智能指針而不是原始指針。目前是實驗性的,但歡迎PR和改進 - 一如既往。
有關G2O的Python綁定的PYPI釋放,請參見G2O-Python。
Rainer Kuemmerle,Giorgio Grisetti,Hauke Strasdat,Kurt Konolige和Wolfram Burgard G2O:圖形優化的一般框架IEEE IEEE國際機器人和自動化會議(ICRA),2011年
可以在/doc/g2o.pdf中找到庫的結構以及如何使用和擴展的詳細說明,可以如doc/docy/doxygen/readme.txt中所述生成API文檔
G2O已根據BSD許可獲得許可。但是,某些圖書館根據不同的許可條款可用。見下文。
以下部分根據LGPL v2.1+:
以下部分根據GPL3+許可:
請注意,Cholmod的某些功能(G2O可以使用,請參見下面的Libsuitesparse)在GPL下獲得許可。為避免GPL,您可能必須重新編譯Cholmod,而不包括其GPL功能。 Cholmod庫與Ubuntu或Debian分發,包括GPL功能。例如,如果可用,G2O考慮了在GPL下獲得許可的上斷分解。
在子文件夾中,我們包括我們不寫的軟件,以確保簡單的編譯和集成到G2O本身中。
CERES:BSD(請參閱G2O/AUTODIFF/LICENTION)提取標頭以執行自動差異化。
FreeGlut:X-Constortium(請參閱G2O/外部/FreeGlut/Copying)版權(C)1999-2000 Pawel W. Olszta,我們使用剝離版本在OpenGl中繪製文本。
有關許可證的全文,請參見DOC文件夾。
G2O的分發是希望它將有用的,但沒有任何保證;即使沒有對特定目的的適銷性或適合性的隱含保證。有關更多詳細信息,請參見許可證。
在Ubuntu / debian上,這些依賴關係通過安裝以下軟件包來解決。
在Ubuntu / debian上,這些依賴關係通過安裝以下軟件包來解決。
您可以使用以下命令安裝這些軟件包
sudo apt install libeigen3-dev libspdlog-dev libsuitesparse-dev qtdeclarative5-dev qt5-qmake libqglviewer-dev-qt5
如果使用自製,那就
brew install g2o
將安裝G2O及其所需的依賴項。在這種情況下,無需手動編譯。
如果使用vcpkg,則
scriptinstall-deps-windows.bat
或用於完整的依賴性安裝
scriptinstall-additional-deps-windows.bat
將建立和安裝依賴關係。 vcpkg的位置和必需的三重態可以分別作為CLI參數傳遞。請注意,通常VCPKG會自動檢測三重態。僅當您不為操作系統使用默認構建時,將其設置。
我們的主要開發平台是Linux。 Mac OS X,Android和Windows(MingW或MSVC)的實驗支持。我們建議通過以下命令序列來實現所謂的源構建。
mkdir build
cd build
cmake ../
make
二進製文件將放在bin和lib中的庫中,這些圖書館都位於Cmake的構建文件夾下方。
在使用vcpkg的Windows上,以下命令將生成構建腳本(請根據您的系統更改Visual Studio版本號):
mkdir build
cd build
cmake -DG2O_BUILD_APPS=ON -DG2O_BUILD_EXAMPLES=ON-DVCPKG_TARGET_TRIPLET="%VCPKG_DEFAULT_TRIPLET%" -DCMAKE_TOOLCHAIN_FILE="%VCPKG_ROOT_DIR%scriptsbuildsystemsvcpkg.cmake" ..`
cmake --build . --target ALL_BUILD
如果您在Windows上編譯,並且出於某些原因不使用vcpkg ,請下載EIGEN3並提取它。在CMAKE-GUI中,將可變eigen3_include_dir設置為該目錄。
mkdir build
cd build
cmake .. -DG2O_BUILD_APPS=ON -DG2O_BUILD_EXAMPLES=ON -DEIGEN3_INCLUDE_DIR="<THE_PATH_WHERE_YOU_PLACED_EIGEN3_AND_THE_EIGEN3_CMakeLists.txt>"
mkdir build`
cd build`
cmake -DCMAKE_TOOLCHAIN_FILE=../script/android.toolchain.cmake -DANDROID_NDK=<YOUR_PATH_TO_ANDROID_NDK_r10d+> -DCMAKE_BUILD_TYPE=Release -DANDROID_ABI="armeabi-v7a with NEON" -DEIGEN3_INCLUDE_DIR="<YOUR_PATH_TO_EIGEN>" -DEIGEN3_VERSION_OK=ON ..
cmake --build .
我們感謝以下貢獻者提供的補丁:
pip安裝