تحدي AgBot لعام 2019
مدرسة إيست الثانوية
خلال فترة دراستي في مدرسة إيست الثانوية في دنفر، كولورادو (2014-2018)، كنت منخرطًا بشكل كبير في الأنشطة بعد المدرسة، وكان الأكثر تأثيرًا بينها نادي الروبوتات AngelBotics. ولم أنضم إليه إلا في سنتي الثانية، بسبب تركيزي الأولي على كرة القدم. كان النادي يشارك بشكل أساسي في مسابقة FIRST للروبوتات (FRC)، مما أتاح لي استكشاف الهندسة الميكانيكية والكهربائية، وكذلك البرمجة. ومن خلال AngelBotics، تعلمت استخدام أدوات CAD، والطابعات ثلاثية الأبعاد، وغيرها من معدات الهندسة، واكتسبت تعرضًا لمفاهيم STEM التي تُحجز عادةً لطلاب الجامعات. كنت في البداية أطمح لأن أصبح فيزيائيًا كميًا، لكن خبرتي في فيزياء AP والروبوتات أظهرت لي أنني لست جيدًا جدًا في الفيزياء، ودفعتني بالتالي بعيدًا عن مسار الهندسة الميكانيكية.
بدلًا من ذلك، وجدت مجالي في البرمجة، التي بدأت بكتابة شيفرة Python لأول Raspberry Pi لي، ثم ترسخت من خلال مشاريع Java في مادة AP Computer Science. وعلى الرغم من معاناتي مع الامتحانات، شجعني معلمي، السيد Nagel، على متابعة تطوير البرمجيات، مؤكدًا على قيمة المشاريع أكثر من درجات الاختبارات. وقد دفعني ذلك إلى التركيز على علوم الحاسوب كتخصصي في الجامعة مع حلم أن أصبح مهندس برمجيات، ثم لاحقًا مؤسسًا في مسيرتي المهنية.
على الرغم من أنني لم أكن منخرطًا كثيرًا في AngelBotics بسبب كثافة مقرراتي وصعوبة منحنى التعلم، إلا أنه أشعل شغفًا مدى الحياة بالروبوتات. لذلك عندما بدأت الجامعة، كنت مصممًا على الانضمام إلى نادي روبوتات جامعي، وعلى أن أبني يومًا ما شركة تحل مشكلات واقعية باستخدام الروبوتات.
مدرسة المناجم
بعد تخرجي من مدرسة إيست الثانوية، بدأت درجة البكالوريوس في علوم الحاسوب في كلية كولورادو للمناجم (2018-2022). خلال أول فصل دراسي لي على الإطلاق، اطلعت على أندية روبوتات المناجم واكتشفت مجموعة روبوتات جديدة تمامًا تُدعى AgBot.
كان AgBot نادي روبوتات جديدًا أُسس بهدف بناء روبوت للمنافسة في مسابقة agBots Weed and Feed لعام 2019. كانت لهذه المسابقة مهمتان رئيسيتان:
- تحديد الآفات والأعشاب الضارة والقضاء عليها
- إنشاء أساليب حصاد جديدة من خلال الروبوتات
اختار فريقنا التركيز على التحدي الأول. كانت هذه أول مرة تدخل فيها Mines مسابقة agBot، وكانت أيضًا أول مرة يعمل فيها نادي روبوتات في Mines على أي شيء متعلق بالزراعة. وهذا جعل الأمر كله يبدو جديدًا ومختلفًا.
انجذبت إلى المشروع فورًا. كانت عائلتي مزارعين في تركيا لأجيال، حتى جيل والدي. لذلك شعر AgBot بأنه قريب من قلبي، إلى جانب أنه يجمع بين شغفي بالروبوتات والبرمجة. كانت فكرة بناء روبوت قد يساعد مزارعين مثل أجدادي مثيرة جدًا.
التطوير
كان كوني جزءًا من فريق AgBot واحدًا من أكثر تجاربي الجامعية التي لا تُنسى. وكان أيضًا من أصعب الأمور التي عملت عليها حتى تلك اللحظة. كان هذا المشروع أول مرة أتوغل فيها فعلًا في Python وUbuntu وROS. في FRC، كان كل شيء بلغة Java، لذا كانت هذه كلها أرضًا جديدة بالنسبة لي. كنت قد استخدمت Python وUbuntu في السابق، لكنني لم أكن قد تعاملت مع ROS من قبل. كان تعلم كيفية عمل ROS معركة شاقة. لم أكن حتى أعلم ما هي بيئة Python في ذلك الوقت.
قضيت معظم وقتي في محاولة جعل Lidar يرسل بيانات قابلة للاستخدام إلى عقدة ROS كنت أكتبها. كانت مهمتي تنفيذ عقدة ROS تُدعى end_detector تستطيع اكتشاف متى يصل الروبوت إلى نهاية صف المحصول باستخدام بيانات Lidar. يبدو الأمر بسيطًا الآن، لكنه في ذلك الوقت كان يبدو ضخمًا.
استغرق مني الأمر نحو أسبوعين من التصحيح حتى أُوصل Lidar مع شيفرتي. كانت الشيفرة كلها مكتوبة إما بلغة C++ أو Python، وبشكل أساسي Python. لذا كانت شيفرتي هنا Python فقط. وبمجرد أن نجح ذلك، بدأت أختبر المنطق باستخدام بقع عشوائية من النباتات وجدتها في الحرم الجامعي. كنت أدفع الحامل الذي يحمل Lidar مرورًا بها وأرى ما إذا كانت الشيفرة تستطيع تحديد متى نصل إلى النهاية. بعد ساعات طويلة من العمل والتصحيح، تمكنت في النهاية من جعل كل شيء يعمل على الأقل في بيئة الاختبار الخاصة بي. لكن كانت القصة مختلفة عندما حاولنا جمع كل شيء معًا.
قضيت معظم وقتي في جعل العتاد والبرمجيات يتواصلان مع بعضهما البعض. أما المنطق الفعلي لاكتشاف نهايات الصفوف فجاء في المرتبة الثانية. لكنه كان تجربة تعلم رائعة. انتقلت من فهم ROS بالكاد إلى كتابة عقد وتصحيحها على لوحة Jetson مع بيانات Lidar مباشرة. وكان ذلك أيضًا الوقت الذي انتقلت فيه من الاعتماد أساسًا على Java كلغة برمجة افتراضية إلى الاعتماد على Python بدلًا منها. وحتى عام 2025، لم أستخدم Java فعلًا في أي من مشاريعي أو قواعد الشيفرة المرتبطة بالعمل.
الفريق ومجموعة التقنيات
كنا نشغّل Ubuntu 16.04 مع ROS Kinetic وPython 2.7 على Nvidia Jetson TX2 الذي كان يتصل بـ Lidar من نوع Hokuyo URG 04LX UG01. وكان لدينا Arduino(s) لمدخلات الحساسات مثل محددات المدى فوق الصوتية. كانت شيفرتنا تتعامل مع الإدراك، والملاحة، والتحكم، والرش. يمكنك رؤية المستودع هنا: مستودع GitHub. ويمكن العثور على الشيفرة المحددة التي كتبتها في end_detector.py. إليك قائمة بمعظم المكونات التي شكّلت الروبوت:
- Ubuntu 16.04 Xenial
- ROS Kinetic Kame
- Python 2.7
- Nvidia Jetson TX2
- Hokuyo URG-04LX-UG01 Lidar
- Arduino Uno & Mega
- محركات تيار مستمر، ومشفِّرات، ووحدات تحكم بالمحركات، وبطارية، إلخ.
لم يكن لدينا فريق كبير، لكن هناك بعض الأسماء البارزة:
كان Tyler قائد النادي ومؤسسه. كنت أكن له احترامًا كبيرًا آنذاك وما زلت أفعل ذلك حتى اليوم. وكان Zachary قائد تطوير البرمجيات للنادي وساعدني كثيرًا في تعليمي عن تطوير البرمجيات وROS، وهو أمر أنا ممتن له عليه حتى اليوم.
كان هناك أعضاء آخرون أيضًا، مثل Kevin Barnard وAmit Rotem. لكن للأسف لا أتذكر أسماء ومعلومات التواصل الخاصة بجميع الأعضاء الأصليين، لأن الأمر مضى عليه أكثر من 5 سنوات منذ أن انتهى النادي.
حدث معظم تطوير الروبوت خلال عطلات نهاية الأسبوع وحتى وقت متأخر من الليل بعد انتهاء معظم محاضراتنا. كان العمل على درجة في الهندسة وAgBot مرهقًا جدًا، لكننا واصلنا رغم ذلك.
الرحلة والفوضى
أحد الأمور في هذه التجربة كلها التي لن أنساها أبدًا كان السفر نفسه. أُقيمت المسابقة في West Lafayette Indiana، بالقرب من حرم جامعة Purdue. وأُقيمت المسابقة كلها مباشرة بعد انتهاء أسبوع الاختبارات النهائية في Mines، لذلك لم يكن لدينا وقت للتعافي من ذلك الأسبوع الجحيمي.
قدنا السيارة من Golden Colorado إلى Indiana باستخدام شاحنة Tyler أيضًا لنقل الروبوت وكل أدواتنا. لكن المضحك أننا بدأنا القيادة حرفيًا قبل يوم واحد من أسبوع المسابقة. حزمنا كل ما لدينا، الروبوت، والأدوات، والبطاريات، وأجهزة الكمبيوتر، كل شيء، وقُدنا من Golden Colorado إلى West Lafayette Indiana. هذه مسافة قيادة مدتها 18 ساعة على الورق. لكنها استغرقت منا أقرب إلى 20 أو 22 ساعة مع التوقف للوقود ولحمامات الراحة.
قاد Tyler طوال الوقت، معتمدًا على مشروبات Coffee Monster. وتولت إحدى الزميلات في الفريق، آسف أنني نسيت اسمها لكنها موجودة في الصور، القيادة بدلًا منه أحيانًا. وأثناء الطريق، بدأت الأمطار تهطل بغزارة. كان علينا التوقف عند محطة وقود مغلقة عشوائية وأخذ قماش مشمع لحماية الروبوت. كان الأمر فوضويًا، وكان هرجًا، وكان روبوتات جامعية. وبطريقة ما، وصلنا.
عندما وصلنا، نصبنا المظلة الخاصة بنا في الميدان ورتبنا كل أدواتنا. ركزت على إنهاء الشيفرة وجعلها تعمل. وخلال معظم المسابقة، كنا نعمل أساسًا على تصحيح أخطاء روبوتنا وجعله يعمل بشكل جيد، إلى جانب الاطلاع على تصاميم الروبوتات الرائعة لدى الفرق الأخرى.
إذًا، هل فزنا؟
لا
عند النظر إلى الوراء، كنا مجرد مجموعة من الأطفال نحاول بناء شيء يتجاوز بكثير مستوى خبرتنا. كانت الفرق الأخرى على مستوى مختلف تمامًا. بعضهم جاء من شركات ناشئة. وبعضهم من مختبرات بحثية. وبعضهم كان لديه دعم أكاديمي كامل. كنا مجموعة صغيرة من طلاب البكالوريوس نسهر الليالي، نأمل أن تحوّل Python بيانات Lidar إلى شيء مفيد.
كان روبوتنا معيبًا. كان مرتجلًا. وبصراحة، بالكاد كان يعمل بحلول الوقت الذي وصلنا فيه إلى المسابقة. كثير من الأشخاص في الفريق بدأوا ينسحبون عندما أدركوا أننا قد لا ننتهي في الوقت المحدد. وبعضهم لم يحضر أصلًا. كانت الاختبارات النهائية قد انتهت، ولم يكن الروبوت جاهزًا، وكانت المعنويات منخفضة جدًا.
لكن بعضنا صمد حتى النهاية
أنا لم أستسلم… Tyler لم يستسلم… والناس في الصورة لم يستسلموا أيضًا!
على الرغم من أننا لم نفز أو حتى يكن لدينا روبوت يعمل بشكل كامل، فلن أبدل تلك التجربة بأي شيء. لقد تعلمت عن ROS، وتصحيح أخطاء العتاد، وبناء الأنظمة تحت الضغط، وتعلمت عن الوفاء. أدركت مدى أهمية إتمام الأمور حتى النهاية.
تأمل، حتى عام 2025
بعد موسم 2019، أُغلق AgBot نهائيًا. وكان السبب الرئيسي في ذلك هو بدء جائحة كوفيد بعد نحو سنة تقريبًا، مما أدى إلى إغلاق جميع الأندية في Mines لمدة سنة إلى سنتين، وبحلول الوقت الذي بدأ فيه العالم يعود إلى “الطبيعية” كنت قد تخرجت.
الآن هو عام 2025، وعندما أنظر إلى AgBot، أراه بداية كل شيء بالنسبة لي. لقد منحني أول تجربة حقيقية لي مع الروبوتات وعلّمني كيف أتعامل مع فريق تقني. لقد وضعني على مسار قادني إلى فرص مذهلة.
منذ ذلك الحين، عملت كمهندس خلفية في eBay، ونشرت خدمات تستوعب ملايين المقاييس عبر مراكز البيانات. وأسست أول شركة ناشئة لي التي ركزت على بناء اختبار اختراق سيبراني مؤتمت بالذكاء الاصطناعي. وأطلقت Notify Cyber، التي وصلت إلى عشرات الآلاف من الزوار. وكتبت برمجيات لـ Docker وKubernetes وPostgres وبنية تحتية متقدمة للذكاء الاصطناعي.
لكن AgBot لا يزال يبرز كواحد من أفضل التجارب في حياتي. كان فوضوياً، ومجهداً، وشعر أحياناً بأنه مستحيل، لكنه علّمني أكثر مما يمكن أن تعلّمه أي حصة أو درس تعليمي على الإطلاق. تعلمت أنه حتى إذا لم تكن لديك الخطة المثالية أو التمويل الكافي أو أفضل العتاد، فلا يزال بإمكانك بناء شيء ما، وتتعلم الكثير، وتلتقي بأشخاص رائعين على طول الطريق.
إلى كل من كان في فريق AgBot لعام 2019، شكراً لكم. إلى رحلة الطريق تلك في 2019، وإلى الشِّرْشَف البلاستيكي الذي التقطناه من محطة وقود مغلقة، وإلى الليالي بلا نوم، شكراً لكم. لقد منحتموني الصلابة لملاحقة المشاريع الكبيرة بثقة، مهما بدت مستحيلة.
الموارد والروابط
- الموقع الرئيسي لأندية الروبوتات في كلية كولورادو للمناجم
- قاعدة شيفرة AgBot 2019
- مقال Purdue عن AgBot
- مقال الملخص البصري من Purdue
- مقال DTN Progressive Farmer
- حساب AgBot على Twitter/X
- الموقع الرسمي لـ AgBot
- GitHub الخاص بزاخ
- GitHub الخاص بكيفن
- GitHub الخاص بتايلر
معرض الصور
فريق AgBot الخاص بمناجمنا، نحن
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
روبوت AgBot الخاص بنا
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
مقاطع فيديو/صور متحركة
حقول المسابقة
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
فرق أخرى في المسابقات
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
FRC 1339 (2014-2017)
![]() |
![]() |
صور عشوائية أخرى
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |































































