この記事ではゴミ開発ロボットの開発過程を書いていきます。
ゴミ開発ロボットを開発した理由についてはこちらのほうの記事に掲載しています。
海や川のゴミをロボットで回収できる?実際にゴミ回収ロボットを開発してみた
以下、ゴミ回収ロボットの開発過程です。随時更新していきます。
前回までの記事
前回までの記事はこちらです。前回まではRaspberryPiを使用してロボットの操作を行っていました。今回からはプロポを使用して操作するようにしています。
海や川でゴミ回収できるRaspberryPiラジコンボートを作る
2019年のゴミ回収ロボット開発
構成はざっくりとこのようにしようと考えました。ラジコンボートを2船用意して両サイドに配置し、ゴミ回収アームはボートの間に設置します。
プロポ「KO PROPO – MC-8」を購入
今回からはRaspberryPiではなく、こちらのプロポ『KO PROPO – MC-8』を使用して操作していきたいと思います。
プロポの初期設定をしておく
取扱説明書に沿ってプロポの初期設定を行っておきます。YouTubeにも分かりやすい説明があるのでそちらを参考にしてもいいかもしれないです。
自作ボートを制作する
今回はダイソーのカラーボードを使用してボートを自作しました。
詳細はこちらの記事に別途掲載しました。
制作中の写真がこちらです。
完成した船体がこちらです。両側にボートを配置しているのでかなり安定しています。さらにどちらにもスクリューを設置しているため旋回できるようになっているはずです。また、サーボモータを両持ちにしてガッチリと固定しています。
ラダーの動作を確認してみる
ラダーも自作したので動作確認を行いました。
自作ボートのラダーに蝶使いを使うアイデアが今月のMVP pic.twitter.com/zxsVPr5Twm
— Kazuki (@RoomKazuki) October 21, 2019
荒川で試走させてきました
前回と同じ場所で行いたかったのですが、本日は釣りをされている方がいらっしゃったため別の場所で行うことにしました。
浸水することもなくバッチリと浮いてくれています。浮力にもかなり余裕がありそうです。
今回は操縦性能と、ゴミを想定したペットボトルを回収できるかどうかを試してみました。
旋回性能は格段に向上していました。ボートを2船にしてスクリューを付けたのが正解なようです。その代わり、船尾に付けたラダーはあまり意味がなかったかもしれないです。
ペットボトルは100%回収することができました。何回かはカゴの中に入らずにボートに乗っかってしまう状態になったのでカゴの中に入れるような改良が必要そうです。カラーボールやピンポン玉なども同様に回収することができました。
動画はこちら。
今回も課題がいろいろと見えてきましたので1つずつ解決していきたいと思います。
2020年のゴミ回収ロボット開発
2019年は物体認識の記事を書いてみたり、RaspberryPiでラジコンを作ってみたり、実際にラジコンボートを作ってゴミ回収を行ってみたりしました。
2020年も継続してゴミ回収ロボットの開発を行っていきたいと思います。今年は去年の結果を考慮して以下の組み合わせで開発していきたいと思います。
No. | ゴミ識別 | 基板 | 操作 | 通信 | 備考 |
① | OpenCV + カスケード分類器 | Raspberry Pi | MC – 8 | Wi-Fi | ✕:カスケードXMLは多種類、とくに画像の角度が変化すると認識できなくなるので不採用とする。 |
② | OpenCV + カスケード分類器 | Raspberry Pi | スマホ | Wi-Fi | ✕:スマホは映像だけに専念させたいため不採用とする。 |
③ | keras-yolo3 | Jetson Nano | 未定 | 未定 | 採用予定 |
④ | keras-yolo3 | Jetson Xavier NX | 未定 | 未定 | 未定 |
進捗があれば随時記事を更新していきます。
ゴミ認識AIの開発
ゴミ回収ロボットを開発するにあたり、2020年はゴミ認識AIのほうの開発も同時進行で進めていきます。水面に浮かんでいるものを全て回収するのであればAIは必要ありませんが、それでは水面生物も取り込んでしまう可能性があります。そうならないようにAIを搭載することでゴミのみを認識して取り込むようなロボットにしていきたいと考えています。
AIにもいろいろと種類がありますが、今回は深層学習(ディープラーニング)でゴミ認識AIを作ってみたいと思います。
YOLOってどんなものが認識できるの?
この記事を作成したときにデフォルトの状態でもかなりいい物体検出ができることが分かりました。
では、デフォルトの状態のときにどんなものが認識できるのか調べてみました。こちらのサイトによると全80のものを認識することができるようです。
このデフォルトの状態で私がほしいのはボトルぐらいかなと思います。ゴミとして認識したいときにはジャンルが広すぎて識別できなさそうだなと感じています。
ゴミの識別を行うには独自データを用意して自分でYOLOのトレーニングを行ったほうがよさそうです。
自力で深層学習を行うにあたり
自力でYOLOの独自学習モデルを作成するにあたり、自分の知識が圧倒的に乏しいので勉強から始めることにしました。まずは簡単なところから学習していきたいと思います。
深層学習のTensorflowとかKerasとかってなんなの?YouTubeの解説動画を紹介するよ。
Google ColabでYOLOを動かすことを検討してみる
Google Colaboratory上でYOLOを動かして画像認識させてみた
データセットをどのように集めるか?
深層学習を行うにはデータセットが必要なことが分かりました。ただ、そのデータセットを集めるのはとても大変な作業ということも分かりました。自分で収集するか、もしくは以下のようなサービスを利用して効率を上げたほうがよさそうです。Googleからはデータセットを検索できる「Dataset Search」というサービスが展開されているようですので、こちらを利用していきたいと思います。
こんなのあったんだ。さすがですGoogleさん。
そして欲しかったデータセットを見つけることができました。ありがとうございます。『Googleが機械学習用のデータセットをインターネット上から検索可能な「Dataset Search」を正式公開』 https://t.co/ASTXjKFELy
— Kazuki (@RoomKazuki) January 27, 2020
さっそく「trash detaset image」と入力して検索したら以下のデータセットを見つけることができました。ライセンスなどを確認してから使用してみたいと思います。
・TACO: Trash Annotations in Context Dataset
・kaggle: Garbage Classification
荒川でデータ収集を行いました
上記までで公開されているデータセットを入手できることは分かりました。それらを加工して学習させればある程度のものはできそうです。とはいえ、今回はロボットに搭載するカメラからの画像を判定するのでリアルなデータも含めて学習させたほうが良いと考えます。そこで荒川に行ってデータ収集を行いました。
良い天気日和です。荒川でデータ収集してます。 pic.twitter.com/pyW9EI6t9x
— Kazuki (@RoomKazuki) February 11, 2020
YOLOで深層学習する手順をまとめました
こちらの記事にYOLOで深層学習する手順をまとめました。
【深層学習】Colab・YOLOv3・darknet でYOLO形式の独自データセットを学習させる手順
ブラシレスモーターに交換してみました
ブラシレスモーターに交換して試走してみました。当然ですが速くなりました。
今日は開始30秒でトラブル発生しました。笑
でもいいんです。モーターの性能は確認できたので。
次は壊れないの作ります。 pic.twitter.com/dkiD7ehx04— Kazuki (@RoomKazuki) February 29, 2020
ボートを木材で作り直しました
ダイソーのカラーボードで作成したボートでは強度が物足りなかったので木材で作り直しました。サイズも一回り大きくしています。
木製ラジコンボートを2船作りました。これから塗装してしまうので綺麗な木目はこれで見納めです。
土日は塗装からの仕上げを行います。 pic.twitter.com/tR5FD2i8cR
— Kazuki (@RoomKazuki) March 12, 2020
改良版のロボットで試走してきました
改良版が仕上がりましたので川に行って試走してきました。今回は好調に走ってくれたので安心しました。一部破損してしまったところがあるのでそこはまた改善していきます。
荒川でゴミ回収ロボットを試走してきました(逆光ですみません!!)。今回は以下の点を改善しています。
❏強度
❏メンテナンス性
❏スピード
❏拡張性本日もまた課題が見えてきたので一つずつクリアしていきたいと思います。 pic.twitter.com/sPjCnsDx5H
— Kazuki (@RoomKazuki) March 20, 2020
自動運転を導入する
ラジコンのように操作することもできますが、今回は自動運転できるようにしていきたいと考えています。
まずは地上用のRoverで自動運転の方法を確立していきたいと思います。
道なりにあるペットボトルを回収するところまではできました。カメラの視野がまだまだ狭い感じがしますね。 pic.twitter.com/oRv93HnCSE
— Kazuki (@RoomKazuki) August 1, 2020
現在の進捗はここまでです。
コメントを書く