Linux/Mac :
G2O는 그래프 기반 비선형 오류 함수를 최적화하기위한 오픈 소스 C ++ 프레임 워크입니다. G2O는 광범위한 문제로 쉽게 확장 할 수 있도록 설계되었으며 새로운 문제는 일반적으로 몇 줄의 코드로 지정할 수 있습니다. 현재 구현은 SLAM 및 BA의 여러 변형에 대한 솔루션을 제공합니다.
로봇 공학과 컴퓨터 발전에서 광범위한 문제는 그래프로 표시 될 수있는 비선형 오류 함수의 최소화를 포함합니다. 일반적인 인스턴스는 동시 현지화 및 매핑 (SLAM) 또는 번들 조정 (BA)입니다. 이러한 문제의 전체 목표는 가우스 노이즈의 영향을받는 일련의 측정 세트를 최대한 설명하는 매개 변수 또는 상태 변수의 구성을 찾는 것입니다. G2O는 이러한 비선형 최소 제곱 문제에 대한 오픈 소스 C ++ 프레임 워크입니다. G2O는 광범위한 문제로 쉽게 확장 할 수 있도록 설계되었으며 새로운 문제는 일반적으로 몇 줄의 코드로 지정할 수 있습니다. 현재 구현은 SLAM 및 BA의 여러 변형에 대한 솔루션을 제공합니다. G2O는 특정 문제에 대한 최첨단 접근 방식의 구현과 비슷한 성능을 제공합니다 (02/2011).
분기 Pymem에는 파이썬 래퍼가 포함되어 있으며 원시 포인터 대신 스마트 포인터로 전환합니다. 현재 실험적이지만 PRS와 개선은 언제나처럼 환영합니다.
G2O의 파이썬 바인딩의 PYPI 방출에 대한 G2O-Python을 참조하십시오.
Rainer Kuemmerle, Giorgio Grisetti, Hauke Strasdat, Kurt Konolige 및 Wolfram Burgard G2O : 그래프 최적화를위한 일반 프레임 워크 IEEE 국제 로봇 및 자동화 (ICRA), 2011
라이브러리의 구조 및 사용 및 확장 방법에 대한 자세한 설명은 /doc/g2o.pdf에서 찾을 수 있습니다. API 문서는 doc/doxygen/readme.txt에 설명 된대로 생성 될 수 있습니다.
G2O는 BSD 라이센스에 따라 라이센스가 부여됩니다. 그러나 일부 라이브러리는 다른 라이센스 용어로 제공됩니다. 아래를 참조하십시오.
다음 부품은 LGPL v2.1+에 따라 라이센스가 부여됩니다.
다음 부분은 GPL3+에 따라 라이센스가 부여됩니다.
cholmod의 일부 기능 (G2O에서 사용할 수 있으며 아래 Libsuitesparse 참조)은 GPL에 따라 라이센스가 부여됩니다. GPL을 피하려면 GPL 기능을 포함하지 않고 Cholmod를 다시 컴파일해야 할 수도 있습니다. 예를 들어 Ubuntu 또는 Debian과 함께 배포 된 Cholmod 라이브러리에는 GPL 기능이 포함되어 있습니다. 예를 들어, GPL에 따라 라이센스가 부여 된 과도어 인수 화는 G2O를 사용할 수있는 경우 고려됩니다.
하위 폴더 내에 G2O 자체에 쉽게 편집하고 통합 할 수 있도록 우리가 작성하지 않은 소프트웨어를 포함합니다.
CERES : BSD (G2O/Autodiff/License 참조) 추출한 헤더를 통해 자동 차별화를 수행합니다.
FreeGlut : X-Consortium (G2O/외부/FreeGlut/Copying 참조) Copyright (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는 트리플렛을 자동으로 감지합니다. OS에 기본 빌드를 사용하지 않는 경우에만 설정하십시오.
기본 개발 플랫폼은 Linux입니다. Mac OS X, Android 및 Windows (Mingw 또는 MSVC)에 대한 실험 지원. 다음 명령 순서로 달성 할 수있는 소스 빌드를 소스 빌드를 권장합니다.
mkdir build
cd build
cmake ../
make
Binaries는 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 통해 설치할 수있는 파이썬 바인딩