はじめに
こんにちは、しがない高校生をしているbasalteと申します。
今回は私が1からチームを作りRoboCup@Home Educationに出場したPyLoT Roboticsで開発したソフトウェアについて解説します。
こちらに活動の全体をまとめた記事もありますのでもし良ければご覧ください。
画像認識
基本的にYolov8を使って開発していました。こちらは簡単に骨格検出と個体識別のトラッキングができるのでとても便利です。
私たちはタスクで使用するバッグと椅子を当日の会場でアノテーションし、学習していました。
また人を追従するための人体識別はYolov8のtrack機能を使用し、背景にいる人の誤検出が起きないようにしていました。
Openmanipulator-x
大会期間までに開発したのは固定モーションの設定だけでした。
現在は以下のようなロボットアームの制御ができています。
こちらのデモの解説は今後別途記事を書こうと思います。
ハンドトラッキングからロボットアームのテレオペ! pic.twitter.com/Hdm2sjRluT
— basalte(ばざると) (@basalte1199) September 20, 2024
大会期間中はバッグを掴むタスクを行おうとしましたが、認識が不安定で断念しました。大会当日に提示されたバッグの大きさが思ったより大きかったのも原因にあります。
音声の入出力
音声入力はWhisperとVoskの二つ、音声出力はtts_rosを使っていました。
いずれもオープンソースになっているものを利用させていただきました。こちらにリンクがあります。
中央管理職(笑)
上で作ってた色々をまとめてタスクに落とし込むプログラムのことを中央管理職と呼んでいました。基本的にsurviceでやりとりできるようにして、必要な時だけ同期処理で呼び出すという形を取っていました。
しかしこちらは開発時間の不足や各機能の完成の時間が遅いなどが原因であまり形にならず終わってしまいました。
現在はレストランタスクと呼ばれる注文を受けてデリバリーするタスクを文化祭で実演するなど、状態機会の設計はできています。(でも映像はありません。ごめんなさい)
マネジメントの反省
あまり大会で良い結果を残せなかった原因には自分の開発計画に不備が大いにあったことが挙げられます。
そもそも私がロボット開発を0から100までやった経験がなく、あまりメンバーを導くことができませんでした。
また、ロボット開発以外のチーム運営や資金集めなどに時間が取られてしまい、ソフトウェアにかける時間が少なくなってしまいました。
今後はメンバーを増やすなど開発リソースを増やす工夫も必要だと感じました。
まとめ
初めて出場したRoboCup@Homeで、ロボットを動かすことができてとりあえず良かったと感じています。
今後ソフトウェアの練度を上げて再度挑みたいと考えています。