2019 AgBot チャレンジ

イーストハイスクール

コロラド州デンバーのイーストハイスクールに在籍していた2014年から2018年の間、私は放課後活動に積極的に参加しており、最も影響力のあった活動はロボティクスクラブのAngelBoticsでした。サッカーに最初は集中していたため、参加したのは2年生の時でした。このクラブは主にFIRSTロボティクスコンペティション(FRC)に参加しており、機械工学や電気工学、プログラミングを探求する機会を与えてくれました。AngelBoticsを通じて、CADツール、3Dプリンター、その他の工学機器の使い方を学び、大学生向けに一般的に用意されているSTEMの概念に触れることができました。最初は量子物理学者を目指していましたが、AP物理学やロボティクスの経験から、物理学が得意ではないことに気づき、機械工学の道から離れることになりました。

代わりに、プログラミングに自分のニッチを見つけました。最初は自分のRaspberry PiのためにPythonコードを書き始め、APコンピュータサイエンスのJavaプロジェクトを通じてそれが確立されました。試験に苦労していたにもかかわらず、私の先生であるナゲル氏は、テストのスコアよりもプロジェクトの価値を強調し、ソフトウェア開発を追求するように励ましてくれました。これがきっかけで、大学ではコンピュータサイエンスを専攻し、ソフトウェアエンジニアになり、最終的には起業家になるという夢を持つようになりました。

厳しい課題のため、AngelBoticsにはあまり関与できませんでしたが、それでもロボティクスへの生涯の情熱を呼び起こしました。大学に入学したとき、私は大学のロボティクスクラブに参加し、いつかロボティクスで現実の問題を解決する会社を作ることを決意しました。

マインズスクール

イーストハイスクールを卒業した後、私はコロラドマインズ大学でコンピュータサイエンスの学士号を取得し始めました(2018-2022)。最初の学期に、マインズのロボティクスクラブをチェックし、AgBotという新しいロボティクスグループを発見しました。

AgBotは、2019 agBots Weed and Feed Competitionに参加するためにロボットを構築することを目指して設立された新しいロボティクスクラブでした。このコンペティションには2つの主要な課題がありました:

  1. 害虫と雑草の識別と根絶
  2. ロボティクスを通じた新しい収穫方法の創出

私たちのチームは最初の課題に焦点を当てることにしました。マインズがagBotコンペティションに参加するのは初めてで、マインズのロボティクスクラブが農業関連のプロジェクトに取り組むのも初めてでした。それが全体を新鮮に感じさせました。

私はすぐにこのプロジェクトに惹かれました。私の家族はトルコで何世代にもわたって農業を営んでおり、父の世代まで続いていました。だからAgBotは、ロボティクスとプログラミングへの私の情熱を結びつけるもので、故郷に近いと感じました。私の祖父母のような農家を助けるロボットを作るというアイデアは本当にワクワクしました。

開発

AgBotチームの一員であることは、私の大学生活の中で最も記憶に残る経験の一つです。また、これまでの中で最も難しいことの一つでもありました。このプロジェクトは、私が本当にPython、Ubuntu、そしてROSに深く関わる初めての機会でした。FRCではすべてがJavaで行われていたため、これは私にとって全く新しい領域でした。過去にPythonとUbuntuを使用したことはありましたが、ROSには触れたことがありませんでした。ROSの仕組みを学ぶのは大変な戦いでした。当時、Python環境が何であるかすら知りませんでした。

私は、私が書いていたROSノードに使用可能なデータを送信するLidarを取得するためにほとんどの時間を費やしました。私のタスクは、Lidarデータを使用してロボットが作物の列の終わりに達したときに検出できるend_detectorというROSノードを実装することでした。今では簡単に聞こえますが、当時は大きなことに感じました。

Lidarが私のコードと通信するようになるまでに約2週間のデバッグが必要でした。コード全体はC++またはPythonで書かれており、主にPythonでした。したがって、この仕事にはPythonだけを使用しました。それが機能するようになったら、キャンパスで見つけたランダムな植物のパッチを使ってロジックをテストし始めました。Lidarを持つスタンドをそれらの植物の前に転がし、コードが終わりに達したときにそれを検出できるかどうかを確認しました。多くの時間とデバッグを経て、最終的に私のテスト環境ではすべてが機能するようになりました。しかし、すべてを組み合わせようとしたときは別の話でした。

私の時間のほとんどは、ハードウェアとソフトウェアが互いに通信するようにすることに費やされました。行の終わりを検出するための実際のロジックは二の次でした。しかし、それは素晴らしい学習体験でした。私はROSをほとんど理解できない状態から、ライブLidarデータを使用してJetsonボード上でノードを書き、デバッグするまでに成長しました。また、この時期に、主にJavaをプログラミング言語として使用することから、代わりにPythonをデフォルトにするようにシフトしました。そして、2025年現在、私はプロジェクトや仕事関連のコードベースでJavaを本当に使用したことがありません。

チームと技術スタック

私たちは、Nvidia Jetson TX2上でROS KineticとPython 2.7を搭載したUbuntu 16.04を実行しており、Hokuyo URG 04LX UG01 Lidarとインターフェースしていました。センサー入力にはArduinoを使用しており、超音波距離計などがありました。私たちのコードは、認識、ナビゲーション、制御、散布を処理していました。リポジトリはここで見ることができます: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について多くのことを教えてくれたことに今でも感謝しています。

他にもメンバーがいましたが、ケビン・バーナードやアミット・ローテムなどです。しかし、残念ながら、クラブが終了してから5年以上経っているため、すべての元メンバーの名前や連絡先を覚えていません。

ロボットの開発のほとんどは、週末や授業が終わった後の夜遅くに行われました。工学の学位を取得しながらAgBotに取り組むのは非常に大変でしたが、私たちはそれを乗り越えました。

旅行と混乱

この全体の経験の中で決して忘れられない部分の一つは、旅行自体でした。競技会はインディアナ州ウェストラファイエットで開催され、パデュー大学のキャンパスの近くでした。そして、競技会はマインズでの期末試験の週が終わった直後に行われたため、私たちはその地獄のような週から回復する時間がありませんでした。

私たちは、ロボットとすべての道具を運ぶためにタイラーのトラックを使って、コロラド州ゴールデンからインディアナ州まで運転しました。しかし、面白いことに、私たちは競技会の週の前日に運転を始めました。私たちは持っていたすべてを詰め込み、ロボット、道具、バッテリー、コンピュータ、すべてを持って、コロラド州ゴールデンからインディアナ州ウェストラファイエットまで運転しました。これは書面上では18時間のドライブです。ガソリンとトイレ休憩を含めると、20時間か22時間近くかかりました。

タイラーはずっと運転し、コーヒーモンスターの飲み物で生き延びていました。もう一人のチームメイトは、名前を忘れてしまいましたが、写真に写っています。彼女が時々彼の代わりに運転しました。途中、土砂降りの雨が降り始めました。私たちはランダムに閉鎖されたガソリンスタンドに寄り、ロボットを保護するためにタープを取りました。それは不格好で、混乱していて、大学のロボティクスそのものでした。なんとか、私たちは到着しました。

到着すると、私たちはフィールドにキャノピーを設置し、すべての道具を整えました。私はコードを仕上げて実行できるようにすることに集中しました。競技会のほとんどの間、私たちは主にロボットのデバッグに取り組み、他のチームのクールなロボットビルドをチェックしていました。

では、私たちは勝ったのか?

いいえ

振り返ってみると、私たちはただの経験不足の子供たちが、私たちのレベルをはるかに超えた何かを作ろうとしていたに過ぎませんでした。他のチームは全く異なるレベルにいました。中にはスタートアップから来たチームもあり、研究所から来たチームもあり、完全な学術的支援を受けているチームもありました。私たちは、徹夜で作業をしながら、PythonがLidarデータを有用なものに変えてくれることを願っている少数の学部生のグループでした。

私たちのロボットは欠陥がありました。不格好でした。そして正直なところ、競技会に到着する頃にはほとんど機能していませんでした。チームの多くのメンバーは、時間内に完成しないかもしれないと気づくと、脱落し始めました。中には全く現れなかった人もいました。期末試験は終わり、ロボットは準備が整っておらず、士気は非常に低かったです。

しかし、私たちの中の数人は最後まで頑張りました。

私は諦めませんでした… タイラーも諦めませんでした… そして、写真に写っている人たちも諦めませんでした!

私たちは勝利も完全に機能するロボットも持っていませんでしたが、その経験を何にも代えがたいものだと思っています。私はROS、ハードウェアのデバッグ、プレッシャーの中でのシステム構築、そして忠誠心について学びました。物事を最後までやり遂げることがどれほど重要であるかを実感しました。

2025年の振り返り

2019年のシーズンの後、AgBotは活動を停止しました。これは主にCOVIDがほぼ1年後に発生し、マインズのすべてのクラブが1〜2年間閉鎖される原因となったためであり、世界が「正常」に戻り始めたときには私は卒業していました。

今は2025年で、AgBotを振り返ると、私にとってすべての始まりだったと感じます。これは私にロボティクスの初めての本格的な経験を与え、技術チームと協力する方法を教えてくれました。これは私を素晴らしい機会へと導く道を開いてくれました。

それ以来、私はeBayでバックエンドエンジニアとして働き、データセンター全体で数百万のメトリクスを取り込むサービスを展開しました。AI自動化サイバーセキュリティペネトレーションテストの構築に焦点を当てた最初のスタートアップを設立しました。Notify Cyberを立ち上げ、数万の訪問者を集めました。Docker、Kubernetes、Postgres、そして高度なAIインフラストラクチャのためのソフトウェアを作成しました。

しかし、AgBotは私の人生の中で最も素晴らしい経験の一つとして際立っています。それは混沌としていて、ストレスが多く、時には不可能に思えましたが、どのクラスやチュートリアルよりも多くのことを教えてくれました。完璧な計画や十分な資金、最高のハードウェアがなくても、何かを構築し、多くのことを学び、素晴らしい人々に出会うことができると学びました。

2019年のAgBotチームの皆さん、ありがとうございます。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

ビデオ/GIF

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