Linux/Mac:
G2O เป็นเฟรมเวิร์ก C ++ โอเพ่นซอร์สสำหรับการปรับฟังก์ชั่นข้อผิดพลาดแบบไม่เชิงเส้นตามกราฟ G2O ได้รับการออกแบบให้สามารถขยายปัญหาได้อย่างง่ายดายและสามารถระบุปัญหาใหม่ได้ในรหัสไม่กี่บรรทัด การใช้งานในปัจจุบันให้บริการโซลูชั่นสำหรับหลายสายพันธุ์ของ SLAM และ BA
ปัญหาที่หลากหลายในหุ่นยนต์เช่นเดียวกับในการมองเห็นคอมพิวเตอร์เกี่ยวข้องกับการลดฟังก์ชั่นข้อผิดพลาดที่ไม่ใช่เชิงเส้นซึ่งสามารถแสดงเป็นกราฟได้ อินสแตนซ์ทั่วไปคือการแปลและการทำแผนที่พร้อมกัน (SLAM) หรือการปรับชุด (BA) เป้าหมายโดยรวมในปัญหาเหล่านี้คือการค้นหาการกำหนดค่าพารามิเตอร์หรือตัวแปรสถานะที่อธิบายชุดของการวัดที่ได้รับผลกระทบจากเสียงเกาส์เซียนมากที่สุด G2O เป็นเฟรมเวิร์ก C ++ โอเพ่นซอร์สสำหรับปัญหากำลังสองน้อยที่สุดที่ไม่เชิงเส้น G2O ได้รับการออกแบบให้สามารถขยายปัญหาได้อย่างง่ายดายและสามารถระบุปัญหาใหม่ได้ในรหัสไม่กี่บรรทัด การใช้งานในปัจจุบันให้บริการโซลูชั่นสำหรับหลายสายพันธุ์ของ SLAM และ BA G2O เสนอประสิทธิภาพที่เทียบเคียงได้กับการใช้วิธีการที่ทันสมัยสำหรับปัญหาเฉพาะ (02/2011)
Branch Pymem มี wrapper python และเปลี่ยนเป็นตัวชี้อัจฉริยะแทนพอยน์เตอร์ดิบ ปัจจุบันเป็นการทดลอง แต่ยินดีต้อนรับ PRS และการปรับปรุง - เช่นเคย
ดู G2O-Python สำหรับการเปิดตัว PYPI ของการผูก Python ของ G2O
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 คุณอาจต้องคอมไพล์ cholmod อีกครั้งโดยไม่รวมคุณสมบัติ GPL ห้องสมุด Cholmod กระจายตัวอย่างเช่น Ubuntu หรือ Debian รวมถึงคุณสมบัติ GPL ตัวอย่างเช่นการแยกตัวประกอบ supernodal ที่ได้รับใบอนุญาตภายใต้ GPL นั้นได้รับการพิจารณาโดย G2O หากมีอยู่
ภายในโฟลเดอร์ย่อยเรารวมซอฟต์แวร์ที่ไม่ได้เขียนโดยเราเพื่อรับประกันการรวบรวมและการรวมเข้ากับ G2O อย่างง่ายดาย
Ceres: BSD (ดู G2O/Autodiff/License) ส่วนหัวที่สกัดเพื่อทำการแยกความแตกต่างอัตโนมัติ
FreeGlut: X-consortium (ดู G2O/ภายนอก/ฟรีกลูตา/การคัดลอก) ลิขสิทธิ์ (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
หากใช้ homebrew แล้ว
brew install g2o
จะติดตั้ง G2O พร้อมกับการพึ่งพาที่ต้องการ ในกรณีนี้ไม่จำเป็นต้องมีการรวบรวมด้วยตนเอง
หากใช้ VCPKG แล้ว
scriptinstall-deps-windows.bat
หรือสำหรับการติดตั้งแบบพึ่งพาเต็มรูปแบบ
scriptinstall-additional-deps-windows.bat
จะสร้างและติดตั้งการพึ่งพา ตำแหน่งของ vcpkg และ Triplet ที่ต้องการสามารถส่งผ่านเป็นข้อโต้แย้ง CLI ตามลำดับ โปรดทราบว่าโดยปกติแล้ว VCPKG จะตรวจจับ Triplet โดยอัตโนมัติ ตั้งค่าเฉพาะในกรณีที่คุณไม่ได้ใช้บิลด์เริ่มต้นสำหรับระบบปฏิบัติการของคุณ
แพลตฟอร์มการพัฒนาหลักของเราคือ Linux การสนับสนุนการทดลองสำหรับ Mac OS X, Android และ Windows (MingW หรือ MSVC) เราขอแนะนำสิ่งที่เรียกว่าการสร้างแหล่งที่มาซึ่งสามารถทำได้โดยลำดับคำสั่งต่อไปนี้
mkdir build
cd build
cmake ../
make
ไบนารีจะถูกวางไว้ในถังขยะและห้องสมุดใน LIB ซึ่งทั้งคู่อยู่ใต้โฟลเดอร์สร้างของ CMake
บน Windows ด้วย vcpkg คำสั่งต่อไปนี้จะสร้างสคริปต์บิลด์ (โปรดเปลี่ยนหมายเลขเวอร์ชัน 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