عن المشروع

BehaviorTree.CPP هي إطار عمل بلغة C++17 لإنشاء أشجار السلوك. يذكر المشروع أنه صُمم ليكون مرنًا وسهل الاستخدام وتفاعليًا وسريعًا. استخدامه الأساسي هو في الروبوتات، لكن ملف README يلاحظ أنه يمكن استخدامه أيضًا لبناء ذكاء اصطناعي للألعاب أو لاستبدال آلات الحالة المحدودة. الميزات الرئيسية التي يسلط الضوء عليها المشروع: - الإجراءات غير المتزامنة وغير الحاجبة تُعامل كمواطنين من الدرجة الأولى. - السلوكيات التفاعلية يمكنها تنفيذ إجراءات متعددة في وقت واحد (التعامد). - تُعرَّف الأشجار بلغة برمجة نصية خاصة بالمجال قائمة على XML ويمكن تحميلها وقت التشغيل، لذا فإن شكل الشجرة ليس مبرمجًا بشكل ثابت حتى وإن كانت المكتبة مكتوبة بلغة C++. - يمكن ربط عقد الشجرة المخصصة بشكل ثابت أو تحويلها إلى إضافات وتحميلها وقت التشغيل. - آلية آمنة من حيث الأنواع ومرنة تدعم نقل البيانات بين عقد الشجرة. - بنية تحتية للتسجيل/التحليل تتيح للمستخدمين تصور وتسجيل وإعادة تشغيل وتحليل انتقالات الحالة. تشمل موارد التوثيق والمجتمع الموقع الرسمي behaviortree.dev للدروس والتوثيق العام، وصفحات Doxygen المولدة تلقائيًا، ومناقشات GitHub للدعم المجتمعي. يُقدم محرر رسومي يسمى Groot2 لتحرير أشجار السلوك، بينما يمكن أيضًا تحرير XML مباشرة في أي محرر نصوص. خيارات البناء والتثبيت الموضحة في ملف README: - مطلوب مترجم يدعم C++17. - تُدعم ثلاثة أنظمة بناء: colcon (ament) لمستخدمي ROS2، وconan لأنظمة Linux/Windows، وCMake المباشر للمستخدمين الذين يديرون التبعيات بأنفسهم. - تتطلب بناءات Conan CMake 3.23 أو أحدث. الأوامر النموذجية هي conan install، ثم cmake مع الإعداد المسبق conan-release، ثم cmake --build مع نفس الإعداد المسبق. - بدون conan، إذا كانت التبعيات مثل ZeroMQ وSQLite مثبتة بالفعل، يمكن للمستخدمين التكوين والبناء بأوامر CMake مباشرة. - يتوفر سير عمل pixi (بيئة افتراضية conda) عبر pixi run build. - يمكن أيضًا تثبيت المكتبة عبر vcpkg باستخدام منفذ behaviortree-cpp. يوجد تطبيق مثال يوضح كيفية استخدام BT.CPP مرتبط في ملف README. الإصدار 3.8 متاح على فرع منفصل قد يتلقى إصلاحات للأخطاء، بينما تُنفَّذ الميزات الجديدة فقط على فرع master. يُقدم دعم تجاري واستشارات من خلال التواصل مع المؤلف الرئيسي. صدر المشروع تحت رخصة MIT، مع حقوق الطبع والنسبة إلى Davide Faconti وMichele Colledanchise عبر سنوات مختلفة.