Linux/Mac:
G2O هو إطار عمل مفتوح المصدر C ++ لتحسين وظائف الخطأ غير الخطية المستندة إلى الرسم البياني. تم تصميم G2O ليكون قابلاً للتوسع بسهولة مع مجموعة واسعة من المشكلات ويمكن عادةً تحديد مشكلة جديدة في بضعة أسطر من التعليمات البرمجية. يوفر التنفيذ الحالي حلولًا لعدة متغيرات من SLAM و BA.
تتضمن مجموعة واسعة من المشكلات في الروبوتات وكذلك في الرؤية الحاسوبية تقليل وظيفة الخطأ غير الخطية التي يمكن تمثيلها كرسم بياني. الحالات النموذجية هي توطين ورسم الخرائط في وقت واحد (SLAM) أو تعديل الحزمة (BA). الهدف العام في هذه المشكلات هو العثور على تكوين المعلمات أو متغيرات الحالة التي تشرح بشكل أقصى مجموعة من القياسات المتأثرة بالضوضاء الغوسية. G2O هو إطار عمل C ++ مفتوح المصدر لمشاكل المربعات الصغرى غير الخطية. تم تصميم G2O ليكون قابلاً للتوسع بسهولة مع مجموعة واسعة من المشكلات ويمكن عادةً تحديد مشكلة جديدة في بضعة أسطر من التعليمات البرمجية. يوفر التنفيذ الحالي حلولًا لعدة متغيرات من SLAM و BA. يقدم G2O أداءً قابلاً للمقارنة مع تطبيقات الأساليب الحديثة للمشاكل المحددة (02/2011).
يحتوي Pymem الفرع على غلاف Python ويتحول إلى مؤشر ذكي بدلاً من المؤشرات الأولية. إنه تجريبي حاليًا ولكن PRS والتحسينات مرحب بها - كما هو الحال دائمًا.
انظر G2O-Python للحصول على إصدار PYPI من روابط Python G2O.
Rainer Kuemmerle ، Giorgio Griseti ، Hauke Strasdat ، Kurt Konolige ، و Wolfram Burgard G2O: إطار عام لمؤتمر IEEE الدولي لـ IEEE ONTORN
وصف مفصل لكيفية تنظيم المكتبة وكيفية استخدامها وتوسيعها يمكن العثور عليها في /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. على سبيل المثال ، يعتبر G2O من العوامل الخارقة المرخصة بموجب GPL من قبل G2O إذا كان متاحًا.
ضمن اللاعبين الفرعيين ، نقوم بتضمين البرامج التي لم يكتبها من قبلنا لضمان تجميع وتكامل سهلة في G2O نفسها.
CERES: BSD (انظر G2O/Autodiff/License) الرؤوس المستخرجة لأداء التمايز التلقائي.
FreeGlut: X-consortium (انظر G2O/خارجي/freeglut/نسخ) حقوق الطبع والنشر (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 باكتشاف تلقائيًا. قم بتعيينه فقط إذا كنت لا تستخدم البناء الافتراضي لنظام التشغيل الخاص بك.
منصة التطوير الأساسية لدينا هي 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