إطلاق ROS على الروبوت EduMIP ذاتي التوازن

مقدمة


يوفر هذا المنشور إرشادات حول تثبيت نظام تشغيل الروبوت (ROS) وتشغيله على الروبوت EduMIP المحمول. EduMiP هو روبوت ذاتي التوازن تم بناؤه حول BeagleBone Black مع معالج دقيق و Beaglebone Black Robotics Cape تم تطويره بواسطة James Strawson والأستاذ Thomas Bewley بالتنسيق مع مختبر الروبوتات المنسق في UCSD وموظفيهم. يجمع BeagleBone Blue ، الذي تم إصداره مؤخرًا في منتصف عام 2017 ، بين ميزات BeagleBone Black و Robotics Cape في لوحة واحدة. يستخدم البروفيسور Bewley هذا الروبوت في دورة MAE144 - التحكم الآلي والروبوتات ، قسم الهندسة الميكانيكية وهندسة الفضاء ، UCSD.
أجب على الأسئلة في التعليقات.

قائمة المكونات


لاحظ أنك تحتاج إما إلى Baglebone Blue أو كل من Beaglebone Black و Robotics Cape.

  • Beaglebone Blue (BBBL) : تم إصداره مؤخرًا في منتصف عام 2017 ، ويجمع بين ميزات BeagleBone Black و Robotics Cape على كمبيوتر واحد.

  • Beaglebone Black (BBB) : منصة منخفضة التكلفة يدعمها المجتمع للمطورين والهواة ، مع معالج AM335x 1 GHz ARM Cortex ، 512 ميجابايت DDR3 RAM ، 4 جيجابايت 8 بت emmc على متن الطائرة.
  • Robotics Cape (BBB-RC) : Beaglebone Black Robotics Cape هي لوحة I / O لـ Beaglebone Black التي توفر أجهزة استشعار متعددة ودعمًا غنيًا للأجهزة ، بما في ذلك ما يلي:

    • أجهزة الاستشعار:

      • 9-محور IMU
      • بارومتر
    • I / O:

      • 4 مشفرات تربيعية
      • 4 سائقي محركات H-Bridge
      • 8 مخرجات مؤازرة / ESC
      • واجهة راديو DSM RC القياسية
      • I2C UART ADC SPI GPIO PWM
      • وحدة تحكم شحن بطارية ليثيوم بوليمر

  • مجموعة EduMIP : تتكون المجموعة من محركات DC والتروس والترميز والعجلات والأجزاء البلاستيكية والأسلاك والمثبتات.
  • بطاقة Micro-SD : بطاقة SD صغيرة بحجم 8 غيغابايت على الأقل.
  • Ubuntu 16.04 LTS صورة لـ BeagleBone Black and Blue : j الصورة مقدمة من روبرت نيلسون ، جيف أوبريان هنا . تحتوي هذه الصورة على ROS Kinetic مع ROS مثبتة مسبقًا ، مثل محطة عمل ros catkin مع حزم ros EduMIP الأساسية مع الحزم المثبتة مسبقًا. فيما يلي صورتان لـ Ubuntu ، تأكد من أنك تستخدم الصورة الصحيحة:

    • استخدم هذه الصورة لـ BragleBonbne Blue:

      2018_02_03_beaglebone_blue_16p04_Ubuntu_LTS_EduMIP_ROS.img.zip
    • استخدم هذه الصورة لـ BeagleBone Black Wireless + Robotics Cape:

      2018_02_03_beaglebone_black_wireless_16p04_Ubuntu_LTS_EduMIP_ROS.img.zip

    يتم ضغط صورة 8 جيجا بايت في ملف مضغوط 2.5 جيجا بايت. لا تحتاج لفك ملف ZIP. يمكن لبرنامج (Etcher) فك ضغطه على الطاير.
  • عصا USB : مفيدة للدروس التعليمية في دورة برمجة أنظمة الروبوت. نموذج جيد غير مكلف هو Logitech Gamepad F310

تجميع واختبار مجموعة EduMIP (جزء من دورة البرمجة للأنظمة الروبوتية # 3)


بناء واختبار EduMIP على النحو التالي. كن حذرا. كن لطيفًا.

1. بناء EduMIP : اتبع تعليمات بناء EduMIP خطوة بخطوة المتوفرة هنا .

شاهد فيديو التجميع الخاص بي باللغة الروسية:


2. بعض الملاحظات الإضافية:

  • وثائق إضافية متاحة هنا.
  • إذا كنت تستخدم BEAGLEBONE BLACK + ROBOTIC CAPE ، فلا تخلط الطاقة + 5 فولت و + 9 فولت: يحتوي BBB على موصل طاقة لـ + 5 فولت. يحتوي Robotics Cape على موصل طاقة باليه متطابق لـ + 9V. الجحيم
  • لا تقم بتوصيل مصدر الطاقة + 9V مباشرة بموصل + 5V الموجود في نتيجة BBB - ستكون النتيجة BBB ميتة.
  • قم بإيقاف تشغيل الطاقة عند عدم استخدام الروبوت: عندما لا تستخدم EduMIP أو شحن البطارية:

    افصل كابل شحن 12V من EduMIP
    قبل نقل الروبوت ، افصل البطارية من رأس الروبوتات.
  • لا تضر الموصلات والموصلات ENCODER: موصلات الرأس الروبوتية للرموز والمحركات صغيرة جدًا.

تكوين Beaglebone Black / Blue و EduMIP (جزء من مهمة دورة ROS # 3)


قم بتكوين Beaglebone Blue للاستخدام في EduMIP على النحو التالي.

1. تحقق من لوح BeagleBone Blue / Black الخاص بك: قبل تجميع edumip ، اختبر لوحك الأزرق beaglebone - لأنه يأتي مع تثبيت Debian Jessie على محرك أقراص فلاش مدمج 4 جيجا بايت.

  1. اتبع التعليمات هنا . لتثبيت قواعد udev على جهاز Linux. استخدم هذه الصفحة فقط لمعرفة كيفية حماية قواعد UDEV على جهاز الكمبيوتر الخاص بك LINUX ، وتجاهل كل شيء آخر.
  2. بعد تثبيت قواعد udev المناسبة على جهاز كمبيوتر لينكس ، سيقوم بإنشاء اتصال Ethernet بـ BBB عبر اتصال USB عبر محول USB0 الظاهري Ethernet. سيكون الكمبيوتر المضيف الخاص بك على عنوان IP 192.167.7.1 ، وسيكون BBB على 192.168.7.2. SSH من الكمبيوتر المضيف إلى BBB "ssh debian@192.168.7.2". كلمة المرور الافتراضية لـ "debian" هي "temppwd".
  3. عندما تنتهي من العمل مع BBBL وتكون مستعدًا لإيقاف تشغيله ، لا تقم فقط بإيقاف تشغيله - قم بتشغيل الأمر "sudo poweroff" لإيقاف تشغيل Linux وإيقاف تشغيل الطاقة على اللوحة. بعد خروج جميع مؤشرات LED الموجودة على اللوحة ، من الطبيعي فصل كابل USB.

2. قم بتثبيت واختبار صورة 8GB Ubuntu 16.04 LTS Linux مع دعم ROS و BBBL / EduMIP على BBBL الخاص بك : لقد أنشأنا صورة Ubuntu سعة 8 جيجابايت تحتوي على دعم ros الحركية و BBBL. تحتوي مجموعة EduMIP على بطاقة Micro-SD فارغة سعة 32 جيجابايت أو 64 جيجابايت.

  1. تنزيل: صورة Ubuntu 16.04 الجاهزة لدعم ARM لـ BBBL و ROS ، انظر أعلاه للحصول على تعليمات بعنوان "صورة Ubuntu 16.04 LTS للون الأسود والأزرق beaglebone".
  2. لا تحتاج إلى فك ضغط الصورة المؤرشفة.
  3. قم بتنزيل Etcher: قم بتنزيل Etcher وتثبيته على جهاز الكمبيوتر الخاص بك باستخدام etcher.io -Etcher هو برنامج لكتابة صور القرص على بطاقات SD.
  4. انسخ صورة القرص إلى بطاقة micro-SD.
  5. أدخل بطاقة SD الصغيرة بعناية: أدخل بطاقة SD الصغيرة في فتحة بطاقة SD الصغيرة وعظم البيغل. لا تستبدلها ؛ فهي توفر فقط لمسة لطيفة للتثبيت.
  6. تنزيله! قم بتنزيل BBBL من صورة بطاقة Micro-SD عن طريق توصيله بجهاز كمبيوتر باستخدام كبل USB.
    1. إذا كانت بطاقة Micro-SD تحتوي على صورة تمهيد ، فسيتم تشغيل BBBL منها ، وليس من محرك الأقراص المحمول المدمج.
    2. SSH على BBBL ("ssh ubuntu@192.168.7.2" بكلمة المرور "temppwd") وتأكد من أنك تعمل بالفعل في صورة 32 جيجابايت. يجب أن يُظهر الأمر df -h 2 غيغابايت على الأقل من المساحة الحرة ، ويجب أن يُظهر الأمر htop 1 غيغابايت من ملف الترحيل النشط.

3. اختبار EduMIP : تحقق من EduMIP بتسجيل الدخول كمستخدم أوبونتو باستخدام كلمة المرور "temppwd" كما يلي:

  1. ملاحظة حول رسائل الخطأ : يحتوي أحدث إصدار من مكتبة roboticscape ، التي يتم تنزيلها على صورة Ubuntu التي نستخدمها ، على بعض أخطاء PRU التي تعرض رسالة الخطأ "خطأ: برنامج تشغيل pru-rproc مفقود" عند استدعاء مكتبات roboticscape للوصول إلى الأجهزة BBBL يمكننا تجاهل هذا التحذير ، سيتم إصلاحه في إصدار لاحق. توقع أن ترى أحد هذه التحذيرات عند تشغيل برامج مثل rc_balance و rc_test_encoders و edumip_balance_ros ، إلخ.

    فيما يلي مثال لرسالة الخطأ هذه:

    ubuntu@arm:~$ rc_test_imu ERROR: pru-rproc driver missing try 'test_imu -h' to see other options Accel XYZ(m/s^2) | Gyro XYZ (rad/s) | Mag Field XYZ(uT) | Temp (C) 0.23 -3.06 9.72 | 0.0 -0.0 -0.0 | 22.9 -4.1 -54.9 | 37.9 
  2. اختبار التشفير : قم بتشغيل الأمر rc_test_encoders وأدر العجلات قليلاً - سترى تشفير E2 و E3 يظهران التغيير في عدد الثورات.
  3. اختبار المحرك : قم بتشغيل الأمر "rc_test_motors-D 0.1" - عندما ترفع EduMIP ، يجب أن تدور العجلتان في اتجاهين متعاكسين.
  4. معايرة الجيروسكوب : ضع EduMIP على الطاولة ، وقم بتشغيل الأمر rc_calibrate_gyro واتبع التعليمات. يكتب برنامج المعايرة هذا معايرة الجيروسكوب إلى /var/lib/roboticscape/gyro.cal
  5. اختبار الجيروسكوب : قم بتشغيل الأمر "rc_test_imu" وتأكد من أن البيانات "Gyro XYZ (rad / s)" تساوي صفر (أو صفر تقريبًا).
  6. معايرة مقياس المغناطيسية : قم بتشغيل الأمر "rc_calibrate_mag" واتبع التعليمات - سيُطلب منك الاحتفاظ بـ EduMIP في يدك وتدويره ("الدوران") في جميع الاتجاهات. يكتب برنامج المعايرة هذا ملف معايرة مقياس المغنطيسية /var/lib/roboticscape/mag.cal
  7. اختبار المغنطيسية : قم بتشغيل الأمر rc_test_imu وتحقق من أن بيانات Mag Field XYZ (uT) ليست صفراً. يبلغ حجم ناقلات المجال المغناطيسي للأرض في بالتيمور و Woods Hole حوالي 52uT ، لكن لا تقلق إذا بدا أن مقياس مغناطيسيتك متوقف قليلاً.

    يمكنك معرفة خطوط الطول والعرض وقوة المجال المغناطيسي في بالتيمور عن طريق إدخال الرمز البريدي الخاص بك في صفحة الويب هذه .
  8. اختبار موازنة EduMIP : قم بتشغيل الأمر "rc_balance" ، ورفع الروبوت. يجب أن يتوازن الروبوت الخاص بك في مكانه.



4. اختبار ROS على BBBL

  1. تحقق من ملف .bashrc. في النهاية ، يجب أن يحتوي الملف على الأوامر التالية بالترتيب التالي:
    أولاً ، الأمر "source /opt/ros/kinetic/setup.bash" لتكوين متغيرات بيئة ROS.
    ثانيًا ، الأمر "source ~ / catkin_ws / devel / setup.bash" لإضافة مساحة عمل catkin المحلية إلى بيئة ROS (وهذا ما يسمى "تراكب مساحة worspace").
  2. قم بتشغيل الأمر “source .bashrc” لتكوين متغيرات بيئة ROS. تحقق منها مع الأمر printenv / grep ROS.
  3. تأكد من أنه يمكنك تشغيل roscore والأدوات المساعدة الأخرى لـ ROS.
  4. تأكد من أنه يمكنك تشغيل "catkin_make" في مساحة عمل BBBL ROS.
  5. تم التحقق من الصورة

5. تحديث واختبار برنامج ميزان ROS EduMip :

  1. إذا لم تكن قد قمت بذلك بالفعل ، فقم بمعايرة الدوران EduMIP باستخدام الأمر "rc_calibrate_gyro" أثناء وجود الروبوت على الطاولة.
  2. قم بتسجيل الدخول إلى EduMIP باسم المستخدم "ubuntu" وكلمة المرور "temppwd"
  3. تكوين Wi-Fi على EduMIP: قم بتكوين Wi-Fi الخاص بك بحيث يمكنك استنساخ حزم ROS من مستودع git الخاص بنا.
  4. إذا قمت بتثبيت صورة Ubuntu 16.04 المثبتة مسبقًا كما هو موضح أعلاه ، فسيكون لديك بالفعل حزم "edumip_msgs" و "edumip_ros_balance" في دليل مصدر catkin worskace ، أي ~ / catkin_ws / src / edumip_msgs و ~ / catkin_ws / src / edumip_balance_ros. قم بتحديث حزمة edumip_balance_ros باستخدام الأمر "cd ~ / catkin_ws / src / edumip_balance_ros" و "git pull" لتنزيل أحدث كود لهذه الحزمة. إذا تلقيت رسالة الخطأ "خطأ: سيتم استبدال التغييرات المحلية على الملفات التالية بالدمج:

    src / edumip_balance_ros.cpp من فضلك ، قم بإجراء التغييرات أو قم بتخبئتها قبل أن تتمكن من الدمج. "، ثم احذف ملف src / edumip_balance_ros.cpp و" git pull "مرة أخرى.
  5. إذا لم تكن edumip_msgs و edumip_balance_ros الخاصين بك موجودتين بالفعل في دليل src الخاص بمساحة عمل قطتك EduMIP (يجب أن تكون ~ / catkin_ws / src ) ، فقم باستنساخ حزمتي ROS إلى ~ / catkin_ws / src ):
    1. تحدد حزمة edumip_msg نوع الرسالة المخصصة edumip_msf / EduMipState لـ EduMIP. لا تحتوي هذه الحزمة على كود مصدر ، فقط تعريف الرسائل والاتصالات CMakeLists.txt و package.xml. إذا كان جهاز الكمبيوتر الخاص بك يحتاج إلى الوصول إلى هذا النوع من الرسائل ، فيجب عليك أيضًا استنساخ المشروع على جهاز الكمبيوتر الخاص بك. هذه الحزمة هي بنية مستقلة. يمكن استنساخ هذه الحزمة بواسطة git من عنوان URL العام هذا.
    2. تحتوي الحزمة edumip_balance_ros على عقدة edumip_ros_node C ++ ROS.cpp ، وهي نسخة من برنامج rc_balance لبرنامج ROS-ified. صورة لينكس التي قدمناها لك تحتوي بالفعل على برامج تشغيل Robotics Cape و ROS مثبتة. يمكن استنساخ هذه الحزمة بواسطة git من عنوان URL العام هذا.
  6. قم بإنشاء هاتين الحزمتين باستخدام الأمر catkin_make في الدليل الرئيسي لمساحة عمل catkin.
  7. تحقق من أن ROS تعرف الآن عن رسائل المستخدم المحددة في حزمة edumip_msgs باستخدام الأمر: تظهر rosmsg edumip_msgs / EduMipState
  8. فتح جلستين ssh عن بعد على EduMIP:

    أولاً ، في الغلاف الأول ، قم بتشغيل "roslaunch edumip_balance_ros edumip_balance_ros"
    ثانيًا ، في الصدفة الثانية ، راجع موضوعات ros وطباعة الموضوعات / edumip / state.
    ضع الروبوت الخاص بك ، يجب أن توازن.

6. قم بإيقاف تشغيل BBBL بشكل صحيح : عندما تنتهي وتجهز لإيقاف تشغيل BBBL ، لا تقم فقط بإيقاف تشغيله - قم بتشغيل الأمر "sudo poweroff" لإيقاف تشغيل Linux وإيقاف تشغيل الطاقة على اللوحة. بعد خروج جميع مؤشرات LED الموجودة على اللوحة ، يمكنك فصل كابل USB.

بعض ملاحظات لينكس المفيدة لـ BBB و BBBL


  • تم تثبيت برامج تحرير emacs و nano بالفعل على صورة BBB linux المقدمة لهذا البرنامج التعليمي.
  • لا يتم تثبيت الأداة المساعدة لينكس "locate" افتراضيًا ، ولكن يمكنك تثبيتها باستخدام "sudo apt-get install locate" وتهيئة قاعدة بيانات الموقع باستخدام الأمر "sudo updatedb" (يستغرق بضع دقائق).
  • يتم تثبيت خادم الوقت NTP على صورة لينكس BBB المقدمة لهذا الدرس ، ولكن لن تتم مزامنته إلا إذا كان BBB لديه مسار إلى الإنترنت ، على سبيل المثال ، عند تشغيل WIFi الخاص بك. لا يتم توجيه اتصال الشبكة USB لجهاز الكمبيوتر بشكل افتراضي إلى الإنترنت. يمكنك التحقق من حالة ntp باستخدام الأمر ntpq-p.

ملاحظات حول إعداد BeagleBone Black (BBB) ​​و beaglebone Blue (BBBL) مع Ununtu 16.04 و ROS


(يتم سردها هنا كمرجع فقط ولا يجب أن تكون خطوات مطلوبة لإكمال المهمة 3).

قم بتوصيل جهاز الكمبيوتر الخاص بك بـ BBB عبر USB

  • اتبع التعليمات هنا.
  • بعد تثبيت برامج التشغيل المناسبة أو قواعد udev على الكمبيوتر المضيف ، سيقوم بإنشاء اتصال Ethernet مع BBB عبر اتصال USB من خلال محول USB0 الظاهري Ethernet. سيكون الكمبيوتر المضيف الخاص بك على عنوان IP 192.167.7.1 ، وسيكون BBB 192.168.7.2. SSH من الكمبيوتر المضيف إلى BBB "ssh ubuntu@192.168.7.2". كلمة المرور الافتراضية لأوبونتو هي temppwd.

كيفية إنشاء اتصال إيثرنت مع DNS وطريق إلى الإنترنت الخارجي
WiFi (BBBL و BBB Wireless و BBB Classic + USB WiFi Adapter):

  • WiFi في لمح البصر : اتبع التعليمات الخاصة بـ connmanctl المدرجة في التعليقات على ملف / etc / network / interfaces. لقراءة التعليقات ، استخدم الأمر cat / etc / network / interfaces.
  • ملحوظة : لا يدعم connmanctl شبكات الشركات مثل هوبكنز ، ولكنه يدعم شبكات WPA / WPA2.
  • ملاحظة : عند تحميل محول BBBL WiFi ، لا يكون صحيحًا دائمًا. إذا كنت لا ترى "wlan0" في إخراج الأمر ifconfig ، فحاول تمكين BBBL يدويًا كواجهة wlan0 باستخدام الأمر "ifconfig wlan0 up". ثم يجب أن ترى wlan0 في إخراج الأمر ifconfig.
  • Ifconfig : استخدم الأمر ifconfig لرؤية جميع واجهات الشبكة المكونة (LAN ، WiFi ، USB ، إلخ) على جهازك.
  • Iwconfig : استخدم الأمر "iwconfig" لرؤية جميع واجهات شبكة WiFi المكونة على جهاز الكمبيوتر الخاص بك.
  • من انا إن أسهل طريقة لتحديد عنوان IP (أو عناوين) لجهاز Linux هي تسجيل الدخول واستخدام الأمر ifconfig.
  • واي فاي يوم جرذ الأرض! لسوء الحظ ، لا يتذكر BBBL حاليًا إعدادات WiFi.

يجب أن يكون اتصال WiFi المفضل مثل BBBL ويكون جهاز الكمبيوتر الخاص بك متصلاً بنقطة وصول Wi-Fi نفسها ، بحيث يمكنك ssh إلى BBBL من جهاز الكمبيوتر الخاص بك ، وتتمتع BBBL بإمكانية الوصول إلى الإنترنت من أجل git repos ، إلخ.

يمكنك أيضًا الاتصال بـ BBBL مباشرةً باستخدامه كنقطة وصول Wi-Fi عن طريق توصيل جهاز الكمبيوتر الخاص بك بشبكة Wi-Fi BeagleBone-XXXX ، حيث يكون XXXX فريدًا لـ BBBL. كلمة مرور WiFi هي "BeagleBone". هذا اتصال بسيط ، ولكن لن يتمكن أي من BBBL أو جهاز الكمبيوتر الخاص بك من الوصول إلى الإنترنت من أجل إعادة الإرسال ، وما إلى ذلك. بعد الاتصال ، سيكون لجهاز الكمبيوتر الخاص بك عنوان IP 192.168.XXX.XXX سيكون عنوان IP BBBL 192.168.XXX.1

تحديث توزيع BBBL Ubuntu الخاص بك

على BBB ، قم بتشغيل Linux sudo apt update و sudo apt dist-ترقية أوامر Linux

تثبيت برنامج Robotics Cape Software على BBBL

  • يتوفر دعم Robotics Cape / BBBL بالفعل على صورة Ubuntu المكونة مسبقًا لـ BBBL الموضحة أعلاه ، ولا تحتاج إلى إعادة تثبيته.
  • تثبيت ثنائي تحت Ubuntu 16.04 على ARM: "sudo apt-get install roboticscape"
  • التثبيت من المصدر

تريد تثبيت نسخة من مصدر شفرة الروبوتات ونموذج التعليمات البرمجية على BBB الخاص بك. إنه متاح هنا . تثبيت نسخة في الدليل الرئيسي:

"Cd ~"
"Git clone github.com/StrawsonDesign/Robotics_Cape_Installer.git "

يمكنك الآن عرض التعليمات البرمجية المصدر لرأس الروبوتات واتباع التعليمات لتجميع وتثبيت مكتبة الرأس الروبوتية ونماذج البرامج.

تثبيت حزم ROS الأساسية لـ EduMIP

قم باستنساخ الريبوسين في دليل ~ / catkin_ws / src:


مؤتمر نزع السلاح ل ~ / catkin_ws وجمع حزم "catkin_make".

لتشغيل العقدة edumip_balance_ros ، يحتاج البرنامج إلى امتيازات الجذر. ولعل أسهل طريقة للقيام بذلك هي تغيير أذونات وملكية الثنائي المترجم باستخدام هذين الأمرين (بالترتيب) بعد تجميعه:

  • sudo chown root: root ~ / catkin_ws / devel / lib / edumip_balance_ros
  • sudo chmod u + s ~ / catkin_ws / devel / lib / edumip_balance_ros

تشغيل عقدة ROS edumip_balance_ros " roslaunch edumip_balance_ros edumip_balance_ros_runchunch ". سيقوم الروبوت بتوازن واستقبال رسائل سرعة تطور من أمر الموضوع / edumip / cmd ونشر حالته إلى الموضوع / edumip / state ROS الموضوع

إذا لم تتمكن من العثور على ملف بدء التشغيل edumip_balance_ros weeunch في دليل التشغيل ~ / catkin_ws / src / edumip_balance_ros / launchel ، فأنت بحاجة إلى "git pull" أحدث إصدار من هذه الحزمة ، كما هو موضح أعلاه ، وإعادة تجميع المصدر باستخدام "catkin_make".

اطلع على مهمة الأسبوع الثالث على صفحة الويب الخاصة بهذه الدورة لمزيد من المعلومات حول استخدام تكرارات ROS: تعيين أسبوع 3 من برمجة أنظمة الروبوت

ملاحظات حول بدء EduMIP مع ROS


لماذا أتلقى أخطاء الإذن عند تشغيل edumip_balance_ros وكيف يمكنني إصلاحها؟
اقرأ هذا إذا حصلت على أخطاء مثل "لا يمكن فتح:

/ sys / devices / platform / ocp / ocp: H18_pinmux / state
Pinmux: تم رفض الإذن "عند تشغيل edumip_balance_ros.

عند تجميع مشروع edumip_balance_ros على edumip باستخدام catkin_make ، قم بتجميع الملف القابل للتنفيذ:

"~ / catkin_ws / devel / lib / edumip_balance_ros / edumip_balance_ros"
ubuntu @ arm: ~ / catkin_ws $ ls -l devel / lib / edumip_balance_ros /
المجموع 272
-rwxrwxr-x 1 ubuntu ubuntu 278292 18 فبراير 18:48 edumip_balance_ros

لاحظ أن مالك الملف ومجموعةه هما ubuntu: ubuntu ، وأنه قابل للتنفيذ ("-rwxrwxr-x").

عند محاولة تشغيل هذا الملف الذي تم تجميعه مؤخرًا ، ستحصل على أخطاء في الأذونات ، كما هو موضح أدناه:
ubuntu @ arm: ~ / catkin_ws $ roslaunch edumip_balance_ros edumip_balance_ros.co.unch
... تسجيل الدخول إلى /home/ubuntu/.ros/log/a271dd92-14dc-11e8-b293-dc5360d671c6/roslaunch-arm-2845.log
التحقق من دليل السجل لاستخدام القرص. قد يستغرق هذا بعض الوقت.
اضغط على Ctrl-C للمقاطعة
تم التحقق من استخدام قرص ملف السجل. الاستخدام <1 غيغابايت.

بدأ خادم roslaunch 192.168.10.102 : 37365 /

ملخص
========

المعلمات
* / rosdistro: حركي
* / rosversion: 12.1.12

العُقد
/
edumip_balance_ros_node (edumip_balance_ros / edumip_balance_ros)

ROS_MASTER_URI = http: //192.168.10.101: 11311

العملية [edumip_balance_ros_node-1]: بدأت مع pid [2874]
[INFO] [1518979862.674565427]: ملف /home/ubuntu/catkin_ws/src/edumip_balance_ros/src/edumip_balance_ros.cpp تم تجميعه في 3 فبراير 2018 19:38:02.
لا يمكن فتح: / sys / devices / platform / ocp / ocp: H18_pinmux / state
Pinmux: تم رفض الإذن
لا يمكن فتح: / sys / devices / platform / ocp / ocp: C18_pinmux / state
Pinmux: تم رفض الإذن
لا يمكن فتح: / sys / devices / platform / ocp / ocp: U16_pinmux / state
Pinmux: تم رفض الإذن
لا يمكن فتح: / sys / devices / platform / ocp / ocp: D13_pinmux / state
Pinmux: تم رفض الإذن
لا يمكن فتح: / sys / devices / platform / ocp / ocp: J15_pinmux / state
Pinmux: تم رفض الإذن
لا يمكن فتح: / sys / devices / platform / ocp / ocp: H17_pinmux / state
Pinmux: تم رفض الإذن
تحذير: مشغل PINMUX مفقود
أنت محتمل تحتاج فقط إلى نواة أحدث
غير قادر على فتح / dev / mem
فشل mmap_gpio_adc.c في تهيئة gpio
[INFO] [1518979862.806645002]: خطأ: فشل تهيئة الرأس.
ماتت العملية [edumip_balance_ros_node-1] [pid 2874 ، رمز الخروج 255 ، cmd / home / ubuntu / catkin_ws / devel / lib / edumip_balance_ros / edumip_balance_ros __name: = edumip_balance_ros_node __log: = / home / ubuntu / dd. 14dc-11e8-b293-dc5360d671c6 / edumip_balance_ros_node-1.log].
ملف السجل: /home/ubuntu/.ros/log/a271dd92-14dc-11e8-b293-dc5360d671c6/edumip_balance_ros_node-1*.log
ماتت جميع العمليات على الجهاز ، وسوف يخرج roslaunch
يتم الآن إيقاف تشغيل شاشة المعالجة ...
... اغلاق رصد تجهيز كاملة
تم

تكمن المشكلة هنا في أنه يجب تشغيل الملف التنفيذي كجذر ، وليس كمستخدم عادي ، للوصول إلى تسجيلات أجهزة BeagleBone.

بعد تجميع edumip_ros_balance ، يمكنك تغيير الأذونات القابلة للتنفيذ للجذر (sudo chown root: root <filename>) وتعيين بتها الثابت (sudo chmod u + s <filename>) عن طريق تشغيل البرنامج النصي التالي:

"~ / catkin_ws / src / edumip_balance_ros / scripts / edumip_change_perms.sh"

إذا نظرت إلى هذا النص البرمجي ، سترى أنه ينفذ هذين الأمرين:
sudo chown root: root ~ / catkin_ws / devel / lib / edumip_balance_ros / edumip_balance_ros
sudo chmod u + s ~ / catkin_ws / devel / lib / edumip_balance_ros / edumip_balance_ros

بعد تشغيل هذا البرنامج النصي (سيطلب منك كلمة مرور sudo) ، سيتم تغيير أذونات ومجموعات الملف القابل للتنفيذ من ubuntu: ubuntu إلى root: root ، وسيتم تثبيت بته الثابتة (كانت الأذونات سابقًا "- rwxrwxr-x" وأصبحت "- rwsrwxr -x "):
ubuntu @ arm: ~ / catkin_ws $ ls -l devel / lib / edumip_balance_ros /
المجموع 272
-rwsrwxr-x 1 root root 278292 18 فبراير 18:48 edumip_balance_ros

الآن عند تشغيل edumip_balance_ros ، يجب أن تعمل بشكل جيد ، كما هو موضح أدناه:

ubuntu @ arm: ~ $ roslaunch edumip_balance_ros edumip_balance_ros.co.unch
ubuntu @ arm: ~ $ roslaunch edumip_balance_ros edumip_balance_ros.co.unch
... تسجيل الدخول إلى /home/ubuntu/.ros/log/a271dd92-14dc-11e8-b293-dc5360d671c6/roslaunch-arm-2099.log
التحقق من دليل السجل لاستخدام القرص. قد يستغرق هذا بعض الوقت.
اضغط على Ctrl-C للمقاطعة
تم التحقق من استخدام قرص ملف السجل. الاستخدام <1 غيغابايت.

بدأ خادم roslaunch 192.168.10.102 : 34253 /

ملخص
========

المعلمات
* / rosdistro: حركي
* / rosversion: 12.1.12

العُقد
/
edumip_balance_ros_node (edumip_balance_ros / edumip_balance_ros)

ROS_MASTER_URI = http: //192.168.10.101: 11311

العملية [edumip_balance_ros_node-1]: بدأت مع pid [2108]
[INFO] [1518981653.978399507]: File /home/ubuntu/catkin_ws/src/edumip_balance_ros/src/edumip_balance_ros.cpp تم تجميعه في 3 فبراير 2018 19:38:02.
خطأ: فقد برنامج تشغيل pru-rproc
[INFO] [1518981654.104574860]: وحدة تحكم الحلقة الداخلية D1:

الترتيب: 2
التوقيت الزمني: 0.0100
-4.9450z² + 8.8620z + -3.9670
- 1.0000z² + -1.4810z + 0.4812
[INFO] [1518981654.107474727]:
وحدة تحكم الحلقة الخارجية D2:

الترتيب: 2
التوقيت الزمني: 0.0100
0.1886z² + -0.3721z + 0.1835
- 1.0000z² + -1.8605z + 0.8605
[INFO] [1518981654.573431369]:
أمسك MIP الخاص بك منتصبا لبدء التوازن

لا يمكن لـ ROS العثور على حزمة ROS الخاصة بي

إذا كان في بيئة ROS الخاصة بك لا يفهم أن لديك حزم جديدة في catkin_ws / src ، فحاول تحديث ملف تعريف rospack الخاص بك باستخدام الأمر rospack profile وتحديث ذاكرة التخزين المؤقت rosdep باستخدام الأمر rosdep update.

تجميع وربط مكتبات Robotics Cape "C"

تأتي مكتبة Robotics Cape مثبتة مسبقًا على صورة Ubuntu 16.04 ، المتوفرة على الرابط المقدم مسبقًا في هذه الصفحة. تم تثبيته باستخدام الأمر sudo apt-get install roboticscape.

مكتبة الرأس الروبوتية وملفات العناوين ذات الصلة مثبتة بالفعل على EduMIP. رابط إلى المكتبات /usr/lib/libroboticscape.so ، وملفات رأس المستوى الأعلى rc_usefulincludes.h و roboticscape.h.

يمكنك الرجوع إلى مشروع edumip_balance_ros لتتعلم كيفية استخدام ملفات الرأس C للرأس الروبوتية ومكتبة الارتباط C مع العقدة C ++ ROS.

راجع edumip_balance_ros / src / edumip_balance_ros.cpp لمعرفة كيفية تضمين ملفات رأس C في برنامج C ++ مع التوجيه الخارجي "C".

راجع edumip_balance_ros / CMakeLists.txt لمعرفة كيفية ربط برنامجك بمكتبة roboticscape C.

حزمة Edumip_balance_ros

  • لتجميع حزمة edumip_balance_ros ، يجب عليك أيضًا تثبيت حزمة edumip_msgs .
  • لن يتم تجميع الحزمة edumip_balance_ros على جهاز الكمبيوتر الخاص بك ، فهي فقط للترجمة على EduMIP.

التكوين الأفقي EduMIP

استخدمت العديد من فرق الطلاب EduMIP في تكوين أفقي بعجلة دوارة.


للقيام بذلك ، ستحتاج إلى استبدال مشروع "edumip_balance_ros" بكودك الجديد للتحكم في محركات العجلات ، وكذلك لقراءة مشفرات العجلات ونشرها. وبالأمس ، قمت بفحص إحدى الحزم الممكنة في الفصل الدراسي ، ويمكنك استخدام حزمة ROS differential_drive (http://wiki.ros.org/differential_drive). لاستخدام حزمة differential_drive ، تحتاج إلى كتابة عقدة C ++ جديدة لـ edumip ، والتي (أ) تقرأ برامج تشفير العجلات وتنشرها حسب الموضوع و (ب) تشترك في مواضيع أوامر المحرك وأوامر الجهد لمحركات العجلات.







أجهزة المنفذ التسلسلي

من أجل التفاعل مع المستشعرات على منفذ تسلسلي ، مثل مستشعر USB فوق الصوتي الذي تم عرضه في الفصل ، ستحتاج إلى أن تكون قادرًا على فتح وقراءة وإرسال عبر المنافذ التسلسلية.




حزمة جيدة لهذه الحزمة التسلسلية ROS . يمكنك تثبيته "sudo apt-get install ros-kinetic-serial".

مثال بسيط هنا

يمكن استنساخ نسخة src إلى مساحة عمل ROS باستخدام الأمر git clone github.com/wjwwood/serial.git وتجميعها باستخدام catkin_make. يحتوي دليل الأمثلة على أمثلة أكثر تعقيدًا لاستخدام المنفذ التسلسلي مع الحزمة التسلسلية.

لاحظ أن حزمة ros هذه المسماة "التسلسلي" ليست حزمة "rosserial". الحزمة "التسلسلية" هي مكتبة خفيفة للأغراض العامة لقراءة البيانات وإرسالها على المنافذ التسلسلية. "Rosserial" عبارة عن حزمة لإقران الأجهزة الصغيرة مثل Arduino مع نمو العقد.

إضافة من المترجم:

أضفت صوري ومقاطع الفيديو الخاصة بي إلى المقالة ، بالإضافة إلى صور لأعمال الطلاب. بشكل عام ، هذا التعليمات فقط كافية للتشغيل ، فمن المرغوب فيه فقط أن يكون لديك على الأقل الحد الأدنى من تجربة سطر الأوامر لينكس والفهم الأساسي لهندسة ROS. مخطوطات الروبوت مكتوبة في C.

يمكنك طرح الأسئلة في التعليقات ، قرأت وأجيب.

Source: https://habr.com/ru/post/ar413677/


All Articles