تحدي AgBot 2019

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

خلال فترة دراستي في مدرسة إيست الثانوية في دنفر، كولورادو (2014-2018)، شاركت بنشاط في الأنشطة بعد المدرسة، وكان أكثرها تأثيرًا هو نادي الروبوتات، AngelBotics. لم أنضم إلا في عام Sophomore بسبب تركيزي الأولي على كرة القدم. شارك النادي أساسًا في مسابقة الروبوتات FIRST (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 وPython 2.7 على Nvidia Jetson TX2 الذي كان يتواصل مع Hokuyo URG 04LX UG01 Lidar. كان لدينا Arduino(s) لمدخلات المستشعرات مثل أجهزة قياس المدى بالموجات فوق الصوتية. كان كودنا يتعامل مع الإدراك، الملاحة، التحكم، والرش. يمكنك رؤية المستودع هنا: GitHub Repo. الكود المحدد الذي كتبته يمكن العثور عليه في end_detector.py. إليك قائمة بأغلب المكونات التي شكلت الروبوت:

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

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

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

كان هناك أعضاء آخرون أيضًا، مثل Kevin Barnard وأميت روتيم. لكن للأسف لا أتذكر أسماء واتصالات جميع الأعضاء الأصليين لأن الأمر مرّ أكثر من خمس سنوات منذ انتهاء النادي.

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

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

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

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

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

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

هل فزنا؟

لا

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

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

لكن عددًا قليلًا منا صمد

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

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

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

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

It is now 2025, and looking back at AgBot, I see it as the beginning of everything for me. It gave me my first real experience with robotics and taught me how to collaborate with a technical team. It set me on a path that has led me to amazing opportunities.

Since then, I have worked as a backend engineer at eBay, deploying services that ingest millions of metrics across data centers. Founded my first startup that focused on building AI automated cybersecurity penetration testing. Launched Notify Cyber, which reached tens of thousands of visitors. I have written software for Docker, Kubernetes, Postgres, and advanced AI infrastructure.

But AgBot still stands out as one of the best experiences of my life. It was chaotic, stressful, and sometimes felt impossible, but it taught me more than any class or tutorial ever could. I learned that even if you do not have the perfect plan or enough funding or the best hardware, you can still build something, learn a ton, and meet incredible people along the way.

To everyone from the 2019 AgBot team, thank you. To that 2019 road trip, the tarp we grabbed at a closed gas station, and the sleepless nights, thank you. You gave me the grit to pursue big projects with confidence, no matter how impossible they seem.

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

معرض الصور

فريق 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

مقاطع الفيديو/الصور المتحركة

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