تحدي AgBot 2019

مدرسة إيست الثانوية

خلال فترة وجودي في مدرسة إيست الثانوية في دنفر، كولورادو (2014-2018)، كنت متورطًا بشكل كبير في الأنشطة بعد المدرسة، وكان أكثرها تأثيرًا هو نادي الروبوتات، AngelBotics. لم أنضم إلى النادي حتى سنتي الثانية، بسبب تركيزي الأولي على كرة القدم. شارك النادي بشكل أساسي في مسابقة FIRST Robotics (FRC)، مما أتاح لي استكشاف الهندسة الميكانيكية والهندسة الكهربائية، بالإضافة إلى البرمجة. من خلال AngelBotics، تعلمت استخدام أدوات CAD، والطابعات ثلاثية الأبعاد، ومعدات هندسية أخرى، مما منحني تعرضًا لمفاهيم STEM التي كانت مخصصة عادةً لطلاب الجامعات. كنت أطمح في البداية لأن أكون فيزيائيًا كميًا، لكن تجاربي في الفيزياء المتقدمة والروبوتات أظهرت لي أنني لم أكن جيدًا في الفيزياء، مما دفعني بعيدًا عن مسار الهندسة الميكانيكية.

بدلاً من ذلك، وجدت شغفي في البرمجة، الذي بدأ بكتابة كود بايثون لجهاز Raspberry Pi الأول لي، وتأكد من خلال مشاريع جافا في مادة علوم الكمبيوتر المتقدمة. على الرغم من أنني كنت أعاني في الامتحانات، إلا أن معلمي، السيد ناجل، شجعني على متابعة تطوير البرمجيات، مؤكدًا على قيمة المشاريع بدلاً من درجات الاختبارات. دفعني هذا للتركيز على علوم الكمبيوتر كدرجتي في الكلية مع حلم أن أصبح مهندس برمجيات وفي النهاية مؤسسًا لمهنتي.

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

مدرسة المناجم

بعد تخرجي من مدرسة إيست الثانوية، بدأت دراستي في بكاليوس علوم الكمبيوتر في مدرسة كولورادو للمناجم (2018-2022). خلال الفصل الدراسي الأول لي، قمت بزيارة نوادي الروبوتات في المناجم واكتشفت مجموعة جديدة من الروبوتات تُدعى AgBot.

كان AgBot نادي روبوتات جديد تم تشكيله بهدف بناء روبوت للمنافسة في مسابقة agBots Weed and Feed 2019. كانت هذه المسابقة تحتوي على تحديين رئيسيين:

  1. تحديد وإزالة الآفات والأعشاب الضارة
  2. إنشاء طرق جديدة للحصاد من خلال الروبوتات

اختار فريقنا التركيز على التحدي الأول. كانت هذه هي المرة الأولى التي تدخل فيها المناجم مسابقة agBot، وكانت هذه هي المرة الأولى التي يعمل فيها نادي روبوتات المناجم على أي شيء يتعلق بالزراعة. جعل ذلك كل شيء يبدو جديدًا.

لقد جذبتني المشروع على الفور. كانت عائلتي مزارعين في تركيا لعدة أجيال، حتى جيل والدي. لذا شعرت أن AgBot قريب من المنزل مع ربط شغفي بالروبوتات والبرمجة. كانت فكرة بناء روبوت قد يساعد المزارعين مثل أجدادي مثيرة حقًا.

التطوير

كوني جزءًا من فريق AgBot هو واحدة من أكثر تجاربي الجامعية تذكرًا. كانت أيضًا واحدة من أصعب الأشياء التي عملت عليها حتى تلك النقطة. كان هذا المشروع هو المرة الأولى التي أتعامل فيها حقًا مع بايثون، وأوبونتو، وROS. في FRC، كان كل شيء بلغة جافا، لذا كان هذا كلّه منطقة جديدة بالنسبة لي. كنت قد استخدمت بايثون وأوبونتو في الماضي، لكنني لم أتعامل مع ROS من قبل. كان تعلم كيفية عمل ROS معركة شاقة. لم أكن حتى أعرف ما هو بيئة بايثون في ذلك الوقت.

قضيت معظم وقتي في محاولة جعل Lidar يرسل بيانات قابلة للاستخدام إلى عقدة ROS التي كنت أكتبها. كانت مهمتي هي تنفيذ عقدة ROS تُدعى end_detector التي يمكن أن تكتشف متى وصل الروبوت إلى نهاية صف المحاصيل باستخدام بيانات Lidar. يبدو الأمر بسيطًا الآن، لكن في ذلك الوقت كان يبدو ضخمًا.

استغرق الأمر مني حوالي أسبوعين من تصحيح الأخطاء لجعل Lidar يتحدث إلى كودي. كان الكود بالكامل مكتوبًا إما بلغة C++ أو بايثون، بشكل رئيسي بايثون. لذا، كان كودي مجرد بايثون لهذه المهمة. بمجرد أن عمل ذلك، بدأت في اختبار المنطق باستخدام بقع عشوائية من النباتات التي وجدتها في الحرم الجامعي. كنت أدفع الحامل الذي يحمل Lidar بجوارها وأرى إذا كان الكود يمكنه أن يخبرنا متى وصلنا إلى النهاية. بعد العديد من الساعات وتصحيح الأخطاء، تمكنت في النهاية من جعل كل شيء يعمل على الأقل في بيئة الاختبار الخاصة بي. كانت قصة مختلفة عندما حاولنا دمج كل شيء معًا.

كان معظم وقتي يُقضى في جعل الأجهزة والبرامج تتحدث مع بعضها البعض. جاء المنطق الفعلي لاكتشاف نهايات الصفوف في المرتبة الثانية. لكن كانت تجربة تعليمية رائعة. انتقلت من عدم فهم ROS إلى كتابة وتصحيح العقد على لوحة Jetson مع بيانات Lidar مباشرة. كان أيضًا خلال هذا الوقت، انتقلت من الاعتماد بشكل أساسي على جافا كلغة برمجة إلى الاعتماد بدلاً من ذلك على بايثون. واعتبارًا من عام 2025، لم أستخدم جافا حقًا في أي من مشاريعي أو قواعد الأكواد المتعلقة بالعمل.

الفريق وتقنية البرمجة

كنا نشغل أوبونتو 16.04 مع ROS Kinetic وبايثون 2.7 على Nvidia Jetson TX2 الذي تواصل مع Hokuyo URG 04LX UG01 Lidar. كان لدينا Arduino(s) لمدخلات المستشعر مثل أجهزة قياس المدى فوق الصوتية. تعامل كودنا مع الإدراك، والتنقل، والتحكم، ورش المواد. يمكنك رؤية المستودع هنا: مستودع GitHub. يمكن العثور على الكود المحدد الذي كتبته في end_detector.py. إليك قائمة بمعظم المكونات التي تشكل الروبوت:

  • أوبونتو 16.04 زينيال
  • ROS Kinetic Kame
  • بايثون 2.7
  • Nvidia Jetson TX2
  • Hokuyo URG-04LX-UG01 Lidar
  • Arduino Uno & Mega
  • محركات DC، ومشفرات، ووحدات تحكم للمحركات، وبطارية، إلخ.

لم يكن لدينا فريق كبير، لكن بعض الأسماء تبرز:

كان تايلر قائدًا ومؤسسًا للنادي. كنت أحترمه كثيرًا آنذاك وما زلت أفعل اليوم. كان زاكاري قائد تطوير البرمجيات للنادي وساعدني في تعلم الكثير عن تطوير البرمجيات وROS، وأنا ممتن لذلك حتى اليوم.

كان هناك أعضاء آخرون أيضًا، مثل كيفن بارنارد وأميت روتيم. لكنني للأسف لا أتذكر أسماء وتواصل جميع الأعضاء الأصليين نظرًا لأنه قد مر أكثر من 5 سنوات منذ أن انتهى النادي.

حدث معظم تطوير الروبوت خلال عطلات نهاية الأسبوع وفي وقت متأخر من الليل بعد أن انتهت معظم دروسنا. كان العمل على درجة الهندسة وAgBot مرهقًا للغاية، لكننا تحملنا ذلك.

الرحلة والفوضى

جزء من هذه التجربة لن أنساه أبدًا كان الرحلة نفسها. كانت المسابقة تُعقد في ويست لافاييت، إنديانا، بالقرب من حرم جامعة بوردو. وقد حدثت المسابقة بأكملها بعد انتهاء أسبوع الامتحانات في المناجم، لذا لم يكن لدينا وقت للتعافي من تلك الأسبوع الجحيم.

قمنا بالقيادة من غولدن كولورادو إلى إنديانا باستخدام شاحنة تايلر لنقل الروبوت وجميع أدواتنا. الشيء المضحك هو أننا بدأنا القيادة حرفيًا قبل يوم واحد من أسبوع المسابقة. قمنا بتعبئة كل ما لدينا، الروبوت، الأدوات، البطاريات، أجهزة الكمبيوتر، كل شيء، وقمنا بالقيادة من غولدن كولورادو إلى ويست لافاييت إنديانا. هذه رحلة تستغرق 18 ساعة على الورق. استغرقت منا حوالي 20 أو 22 ساعة مع توقفات للغاز والحمام.

قاد تايلر طوال الوقت، معتمدًا على مشروبات Coffee Monster. تولت زميلة أخرى، آسف نسيت اسمها لكنها في الصور، القيادة عنه أحيانًا. على طول الطريق، بدأت الأمطار تتساقط بغزارة. كان علينا التوقف في محطة وقود مغلقة عشوائية وأخذ غطاء لحماية الروبوت. كان الأمر فوضويًا، كان فوضى، كان روبوتات الكلية. بطريقة ما، وصلنا.

عندما وصلنا، قمنا بإعداد مظلتنا في الملعب وأعددنا جميع أدواتنا. كنت أركز على إنهاء الكود وجعله يعمل. خلال معظم المسابقة، عملنا بشكل أساسي على تصحيح الروبوت الخاص بنا وجعله يعمل بشكل جيد، بالإضافة إلى التحقق من الروبوتات الرائعة التي بنىتها الفرق الأخرى.

هل فزنا؟

لا

عند النظر إلى الوراء، كنا مجرد مجموعة من الأطفال نحاول بناء شيء يتجاوز مستوى خبرتنا. كانت الفرق الأخرى في مستوى مختلف تمامًا. بعضهم من الشركات الناشئة. بعضهم من مختبرات البحث. بعضهم كان لديهم دعم أكاديمي كامل. كنا مجموعة صغيرة من الطلاب الجامعيين نعمل طوال الليل، نأمل أن تحول بايثون بيانات Lidar إلى شيء مفيد.

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

لكن القليل منا تمسكوا بذلك.

لم أستسلم… لم يستسلم تايلر… والأشخاص في الصورة، لم يستسلموا أيضًا!

على الرغم من أننا لم نفز أو حتى نحصل على روبوت يعمل بالكامل، لن أبادل تلك التجربة بأي شيء. تعلمت عن ROS، وتصحيح الأخطاء في الأجهزة، وبناء الأنظمة تحت الضغط، وتعلمت عن الولاء. أدركت مدى أهمية رؤية الأمور حتى النهاية.

التأمل، اعتبارًا من 2025

بعد موسم 2019، أغلق AgBot. كان ذلك بشكل رئيسي بسبب COVID الذي بدأ بعد حوالي عام، مما أدى إلى إغلاق جميع الأندية في المناجم لمدة 1-2 سنوات، وبحلول الوقت الذي بدأ فيه العالم في العودة إلى “الطبيعي”، كنت قد تخرجت.

الآن هو عام 2025، وعند النظر إلى الوراء إلى AgBot، أراه كبداية كل شيء بالنسبة لي. لقد منحني أول تجربة حقيقية لي مع الروبوتات وعلمّني كيفية التعاون مع فريق تقني. لقد وضعني على مسار قادني إلى فرص مذهلة.

منذ ذلك الحين، عملت كمهندس خلفي في eBay، حيث قمت بنشر خدمات تستوعب ملايين القياسات عبر مراكز البيانات. أسست أول شركة ناشئة لي التي ركزت على بناء اختبار اختراق الأمن السيبراني الآلي بالذكاء الاصطناعي. أطلقت Notify Cyber، التي وصلت إلى عشرات الآلاف من الزوار. لقد كتبت برامج لـ Docker وKubernetes وPostgres، وبنية تحتية متقدمة للذكاء الاصطناعي.

لكن AgBot لا يزال يبرز كواحدة من أفضل التجارب في حياتي. كانت فوضوية، مرهقة، وأحيانًا شعرت بأنها مستحيلة، لكنها علمتني أكثر مما يمكن أن تعلمني أي فصل دراسي أو درس. تعلمت أنه حتى لو لم يكن لديك الخطة المثالية أو التمويل الكافي أو أفضل الأجهزة، يمكنك أن تبني شيئًا، وتتعلم الكثير، وتلتقي بأشخاص رائعين على طول الطريق.

إلى كل من في فريق AgBot 2019، شكرًا لكم. إلى تلك الرحلة البرية في 2019، والغطاء الذي أخذناه من محطة وقود مغلقة، والليالي التي قضيناها بلا نوم، شكرًا لكم. لقد منحتموني العزيمة لمتابعة المشاريع الكبيرة بثقة، بغض النظر عن مدى استحالتها.

الموارد والروابط

معرض الصور

فريق AgBot في منجم، نحن

GetStoredImage-1.jpeg GetStoredImage.jpeg IMG_9005.jpeg IMG_9006.jpeg
IMG_9663.jpeg IMG_9684.jpeg IMG_9685.jpeg IMG_9686.jpeg
IMG_9687.jpeg IMG_9688.jpeg IMG_9691.jpeg

روبوت AgBot الخاص بنا

IMG_8854.jpeg IMG_8855.jpeg IMG_8856.jpeg IMG_8867.jpeg
IMG_8976.jpeg IMG_8977.jpeg IMG_9007.jpeg IMG_9008.jpeg
IMG_9037.jpeg IMG_9038.jpeg IMG_9039.jpeg IMG_9040.jpeg
IMG_9695.jpeg r1.jpeg r3.jpeg r5.jpeg
r6.jpeg r7.jpeg r9.jpeg

مقاطع الفيديو/GIFs

IMG_6724.gif NEHE1091.gif demo.gif random_demo.gif
rogo_hardware.gif

مجالات المنافسة

IMG_8848.jpeg IMG_8849.jpeg IMG_8850.jpeg IMG_8851.jpeg
IMG_9042.jpeg IMG_9666.jpeg IMG_9668.png land.jpeg

فرق أخرى في المنافسات

IMG_8827.jpeg IMG_8828.jpeg IMG_8857.jpeg IMG_8858.jpeg
IMG_8880.jpeg IMG_9651.jpeg IMG_9669.jpeg IMG_9671.jpeg
IMG_9672.jpeg IMG_9673.jpeg IMG_9674.jpeg IMG_9675.jpeg
IMG_9677.jpeg IMG_9678.jpeg IMG_9679.jpeg IMG_9696.jpeg
IMG_9697.jpeg gpage_2019.jpeg robot.jpeg

FRC 1339 (2014-2017)

IMG_9629.jpeg IMG_9630.jpeg

صور عشوائية أخرى

IMG_8825.jpeg IMG_8826.jpeg IMG_8852.jpeg IMG_8853.jpeg
IMG_8980.jpeg IMG_8981.jpeg IMG_9002.jpeg IMG_9003.jpeg
IMG_9043.jpeg mines_logo.png