- Important note (July 2021): this library is currently only scarcely maintained,
- it may take a while until we respond to bugs or feature requests.
هذه هي أدوات التحكم، وهي مكتبة C++ فعالة للتحكم والتقدير والتحسين وتخطيط الحركة في الروبوتات.
رابط إلى الويكي، بداية سريعة!
ابحث عن الوثائق التفصيلية هنا.
هذه هي مجموعة أدوات التحكم ADRL ('CT')، وهي مكتبة C++ مفتوحة المصدر للنمذجة الفعالة والتحكم والتقدير وتحسين المسار والتحكم التنبئي للنموذج. ينطبق التصوير المقطعي على فئة واسعة من الأنظمة الديناميكية، ولكنه يتميز بأدوات نمذجة إضافية مصممة خصيصًا للروبوتات. توضح هذه الصفحة مفهومها العام ولبنات بنائها الرئيسية وتسلط الضوء على أمثلة التطبيقات المحددة.
تحتوي المكتبة على عدة أدوات لتصميم وتقييم وحدات التحكم ونمذجة الأنظمة الديناميكية وحل مشكلات التحكم الأمثل. تم تصميم CT مع وضع الميزات التالية في الاعتبار:
الأنظمة والديناميكيات :
تحسين المسار والتحكم الأمثل والتحكم التنبئي بالنموذج (غير الخطي) :
أداء :
نمذجة الروبوتات وحركيات وديناميكيات الجسم الصلب :
التمايز التلقائي :
تم استخدام صندوق أدوات التحكم لمهام التحكم في الأجهزة والمحاكاة على الروبوتات الطائرة والمشي والأرضية.
تتوفر أمثلة تحسين أكثر تعقيدًا بعض الشيء، بما في ذلك تحسين المشية لشخص رباعي الأرجل، في ct_ros.
من المهام الشائعة للباحثين والممارسين في كل من مجتمعات التحكم والروبوتات نمذجة الأنظمة وتنفيذ معادلات الحركة وتصميم وحدات التحكم القائمة على النماذج والمقدرات وخوارزميات التخطيط وما إلى ذلك. عاجلاً أم آجلاً، يواجه المرء أسئلة حول التنفيذ الفعال أو حساب المعلومات المشتقة أو صياغة وظائف التكلفة والقيود أو تشغيل وحدات التحكم بطريقة التحكم التنبؤية بالنموذج.
تم تصميم صندوق أدوات التحكم خصيصًا لهذه المهام. تمت كتابته بالكامل بلغة C++ ويركز بشدة على التعليمات البرمجية عالية الكفاءة التي يمكن تشغيلها عبر الإنترنت (في الحلقة) على الروبوتات أو الأجهزة المشغلة الأخرى. المساهمة الرئيسية لـ CT هي تطبيقاتها لخوارزميات التحكم الأمثل، والتي تمتد نطاقًا من التطبيقات المرجعية البسيطة لـ LQR إلى التحكم التنبئي للنموذج المقيد. يدعم CT التمايز التلقائي (Auto-Diff) ويسمح بإنشاء كود مشتق للوظائف العددية التعسفية والقيمة المتجهة. لقد صممنا مجموعة الأدوات مع وضع سهولة الاستخدام في الاعتبار، مما يسمح للمستخدمين بتطبيق مفاهيم متقدمة مثل التحكم التنبئي للنماذج غير الخطية (NMPC) أو التحكم الرقمي الأمثل بسهولة وبأقل جهد. في حين أننا نقدم واجهة لبرنامج نمذجة روبوت متوافق مع Auto-Diff، فإن جميع الوحدات الأخرى مستقلة عن إطار عمل نمذجة معين، مما يسمح بتفاعل التعليمات البرمجية مع أكواد أو مكتبات C/C++ الموجودة.
وقد تم استخدام CT بنجاح في مجموعة متنوعة من المشاريع المختلفة، بما في ذلك عدد كبير من تجارب الأجهزة والعروض التوضيحية والمنشورات الأكاديمية. أمثلة على تطبيقات الأجهزة هي تحسين المسار عبر الإنترنت مع تجنب الاصطدام cite giftthaler2017autodiff، وتحسين المسار لـ Quadrupeds cite neunert:2017: المناورات ral والمتنقلة cite giftthaler2017efficiency بالإضافة إلى NMPC على الروبوتات الأرضية cite neunert2017mpc و UAVs cite neunert16hexrotor. نشأ المشروع من بحث تم إجراؤه في مختبر Agile & Dexterous Robotics في ETH Zurich، ولكنه يمتد باستمرار ليشمل المزيد من مجالات التطبيقات والخوارزميات.
تعد البرمجيات أحد اللبنات الأساسية للأنظمة الروبوتية، وهناك جهد كبير في إنشاء أدوات برمجية ومكتبات للروبوتات. ومع ذلك، عندما يتعلق الأمر بالتحكم وخاصة التحكم العددي الأمثل، لا توجد العديد من الأدوات مفتوحة المصدر المتاحة التي تتميز بسهولة الاستخدام للتطوير السريع وكذلك الكفاءة الكافية للاستخدام عبر الإنترنت. على الرغم من وجود صناديق أدوات ناضجة للتحكم العددي الأمثل وتحسين المسار، إلا أنها أدوات مستقلة ومتخصصة للغاية ولا توفر مرونة كافية للتطبيقات الأخرى. هنا يأتي دور CT. لقد تم تصميم CT من الألف إلى الياء لتوفير الأدوات اللازمة للتطوير السريع وتقييم طرق التحكم مع تحسين الكفاءة مما يسمح بالتشغيل عبر الإنترنت. في حين أن التركيز ينصب على التحكم، يمكن أيضًا استخدام الأدوات المتوفرة لتطبيقات المحاكاة أو التقدير أو التحسين.
وعلى النقيض من البرامج الروبوتية الأخرى، فإن برنامج CT ليس تطبيقًا متكاملًا صارمًا ولكن يمكن اعتباره حرفيًا تمامًا كصندوق أدوات: فهو يقدم مجموعة متنوعة من الأدوات التي يمكن استخدامها ودمجها لحل مهمة في متناول اليد. في حين أن سهولة الاستخدام كانت معيارًا رئيسيًا أثناء تقديم أمثلة التصميم والتطبيق، فإن استخدام CT لا يزال يتطلب معرفة بالبرمجة والتحكم. ومع ذلك، فإنه يحرر المستخدمين من تنفيذ الأساليب القياسية التي تتطلب خبرة متعمقة في الجبر الخطي أو الطرق العددية. علاوة على ذلك، باستخدام التعريفات والأنواع الشائعة، يتم توفير التكامل السلس بين المكونات المختلفة مثل الأنظمة أو وحدات التحكم أو التكاملات، مما يتيح إنشاء نماذج أولية سريعة.
التركيز الرئيسي لـ CT هو الكفاءة، ولهذا السبب يتم تنفيذه بالكامل في C++. نظرًا لأن CT تم تصميمه كصندوق أدوات وليس كتطبيق متكامل، فقد حاولنا توفير أقصى قدر من المرونة للمستخدمين. لذلك، فهو غير مرتبط ببرامج وسيطة محددة مثل ROS ويتم الاحتفاظ بالتبعيات عند الحد الأدنى. التبعيتان الأساسيتان لـ CT هما Eigen وKindr (الذي يعتمد على Eigen). إن تبعية Eigen هذه مقصودة لأن Eigen هو معيار واقعي للجبر الخطي في لغة C++، لأنه يوفر تطبيقات عالية الكفاءة لعمليات المصفوفة القياسية بالإضافة إلى طرق جبر خطية أكثر تقدمًا. Kindr عبارة عن مكتبة كينماتيكا رأسية فقط والتي تعتمد عليها وتوفر أنواع بيانات لتمثيلات دوران مختلفة مثل Quaternions أو زوايا Euler أو مصفوفات الدوران.
يتكون صندوق أدوات التحكم من ثلاث وحدات رئيسية. الوحدة الأساسية ( ct_core
)، ووحدة التحكم الأمثل ( ct_optcon
)، ووحدة ديناميكيات الجسم الصلبة ( ct_rbd
). هناك تسلسل هرمي واضح بين الوحدات. وهذا يعني أن الوحدات تعتمد على بعضها البعض بهذا الترتيب، على سبيل المثال، يمكنك استخدام الوحدة الأساسية بدون وحدة optcon أو rbd.
ct_core
) تعريفات عامة للنوع وأدوات رياضية. على سبيل المثال، يحتوي على معظم تعريفات أنواع البيانات، وتعريفات الأنظمة ووحدات التحكم، بالإضافة إلى الوظائف الأساسية مثل التكامل العددي للمعادلات التفاضلية.ct_optcon
) على الوحدة الأساسية وتضيف بنية أساسية لتحديد مشكلات التحكم الأمثل وحلها. يحتوي على وظيفة تحديد وظائف التكلفة والقيود والواجهات الخلفية للحل ومجمع MPC العام.ct_rbd
) أدوات لنمذجة أنظمة وواجهات ديناميكيات الجسم الصلبة مع أنواع البيانات ct_core
و ct_optcon
. للاختبار وكذلك الأمثلة، نقدم أيضًا وحدة النماذج ( ct_models
) التي تحتوي على نماذج روبوتية مختلفة بما في ذلك روبوت رباعي الأرجل، وذراع آلي، ومحرك رباعي عادي، ومحرك رباعي مع حمولة متدلية.
يتم تفصيل الوحدات الرئيسية الأربع المختلفة في ما يلي.
للبدء في استخدام صندوق أدوات التحكم، يرجى إنشاء وثائق المستودع باستخدام الدوكسيجين واتباع البرنامج التعليمي "البدء".
تم تطوير هذا البرنامج في مختبر Agile & Dexterous Robotics Lab في ETH Zurich، سويسرا بين عامي 2014 و2018. خلال تلك الفترة، أصبح التطوير ممكنًا من خلال الدعم المالي من المؤسسة الوطنية السويسرية للعلوم (SNF) من خلال جائزة الأستاذية SNF لجوناس. Buchli ومراكز الكفاءة الوطنية في مجال أبحاث الروبوتات والتصنيع الرقمي.
تم إصدار Control Toolbox بموجب ترخيص بند BSD-2. الرجاء مراجعة LICENCE.txt وNOTICE.txt
@article{adrlCT,
title={The control toolbox — An open-source C++ library for robotics, optimal and model predictive control},
author={Markus Giftthaler and Michael Neunert and Markus St{"a}uble and Jonas Buchli},
journal={2018 IEEE International Conference on Simulation, Modeling, and Programming for Autonomous Robots (SIMPAR)},
year={2018},
pages={123-129}
}
تتم استضافة الإصدارات السابقة حتى الإصدار 2.3 على bitbucket، ويمكن العثور عليها على https://bitbucket.org/adrlab/ct/wiki/Home
تم استخدام صندوق الأدوات هذا في المنشورات الأكاديمية التالية أو ساعد في إصدارها:
ماركوس جيفثالر، ومايكل نيورت، وماركوس ستوبل، وجوناس بوشلي. "صندوق أدوات التحكم - مكتبة C++ مفتوحة المصدر للروبوتات والتحكم التنبؤي الأمثل والنموذجي". IEEE Simpar 2018 (جائزة أفضل ورقة بحثية للطلاب). طبعة arXiv المسبقة
ماركوس جيفثالر، ومايكل نيورت، وماركوس ستوبل، وجوناس بوشلي، وموريتز ديهل. “عائلة من طرق غاوس-نيوتن التكرارية للتحكم الأمثل غير الخطي”. IROS 2018. arXiv ما قبل الطباعة
جان كاريوس، ورينيه رانفتل، وفلادلين كولتون، وماركو هوتر. "تحسين المسار مع الاتصالات الصلبة الضمنية." IEEE Robotics and Automation Letters 3، no. 4 (2018): 3316-3323.
مايكل نيورت، ماركوس ستوبل، ماركوس جيفثالر، داريو بيليكوسو، جان كاريوس، كريستيان جيرينج، ماركو هوتر وجوناس بوشلي. "التحكم التنبؤي لنموذج الجسم بالكامل من خلال جهات الاتصال الخاصة بالحيوانات الرباعية". IEEE Robotics and Automation Letters، 2017. arXiv ما قبل الطباعة
ماركوس جيفثالر وجوناس بوشلي. “نهج الإسقاط للمساواة مقيدة بالتحكم الأمثل الخطي التربيعي التكراري”. المؤتمر الدولي IEEE-RAS لعام 2017 حول الروبوتات البشرية، 15-17 نوفمبر، برمنغهام، المملكة المتحدة. آي إي إي إكسبلور
ماركوس جيفثالر، ومايكل نيورت، وماركوس ستوبل، وماركو فريجيريو، وكلاوديو سيميني، وجوناس بوشلي. "التمايز التلقائي لديناميكيات الجسم الصلب للتحكم الأمثل والتقدير"، الروبوتات المتقدمة، إصدار خاص من SIMPAR. نوفمبر 2017. طبعة arXiv المسبقة
مايكل نيورت، ماركوس جيفثالر، ماركو فريجيريو، كلاوديو سيميني وجوناس بوشلي. "المشتقات السريعة لديناميكيات الجسم الصلبة للتحكم والتحسين والتقدير"، مؤتمر IEEE الدولي لعام 2016 حول المحاكاة والنمذجة والبرمجة للروبوتات المستقلة، سان فرانسيسكو. (جائزة أفضل ورقة). آي إي إي إكسبلور
مايكل نيورت، فاربود فارشيديان، ألكسندر دبليو وينكلر، جوناس بوشلي "تحسين المسار من خلال جهات الاتصال والاكتشاف التلقائي للمشية للمركبات الرباعية"، IEEE Robotics وAutomation Letters، IEEE Xplore
مايكل نيورت، سيدريك دي كروساز، فادري فورير، مينا كامل، فاربود فرشيديان، رولاند سيجوارت، جوناس بوشلي. "التحكم التنبئي السريع للنموذج غير الخطي لتحسين المسار الموحد وتتبعه"، مؤتمر IEEE الدولي لعام 2016 حول الروبوتات والأتمتة (ICRA)، IEEE Xplore
ماركوس جيفثالر، فاربود فارشيديان، تيموثي ساندي، لوكاس ستاديلمان وجوناس بوشلي. "التخطيط الحركي الفعال للمتلاعبين المتنقلين مع القيود غير الشاملة باستخدام التحكم الأمثل"، مؤتمر IEEE الدولي حول الروبوتات والأتمتة، 2017، سنغافورة. طبعة arXiv المسبقة
ماركوس جيفثالر، تيموثي ساندي، كاثرين دورفلر، إيان بروكس، مارك باكنغهام، غونزالو ري، ماتياس كوهلر، فابيو جرامازيو وجوناس بوشلي. “تصنيع الروبوتات المتنقلة بمقياس 1: 1: المُصنع في الموقع”. روبوتات البناء، مجلة سبرينغر رقم. 41693 نسخة ما قبل الطباعة من arXiv
تيموثي ساندي، ماركوس جيفثالر، كاثرين دورفلر، ماتياس كوهلر وجوناس بوشلي. "إعادة التموضع الذاتي والتوطين للمصنع في الموقع"، مؤتمر IEEE الدولي حول الروبوتات والأتمتة 2016، ستوكهولم، السويد. آي إي إي إكسبلور
مايكل نيورت، فاربود فارشيديان، جوناس بوشلي (2014). التكيف في الوقت الحقيقي نموذج غير خطي التحكم التنبؤي في الحركة. في ورشة عمل IROS 2014 حول التعلم الآلي في التخطيط والتحكم في حركة الروبوت