IoTゴミ箱
03-190218 野田 雅貴
概要
自律移動および残り容量測定などを行い、ゴミ回収にかかる手間が無いゴミ箱システムを作成することを目指し、ミニチュア版に移動機構、カメラ、残り容量推定機、通信システムなどを実装した。
-
動機
人間の文化的活動にゴミは付き物である。例えば、コーヒーショップで買ったコーヒーも、飲み終われば紙コップという可燃ゴミとなる。
それらのゴミを捨てることができる場所は、意外に少ない。駅の中や、コンビニの前などに設置されていることもあるが、設置されていないところや、撤去されるところ、店の中に設置されておりなるべく受け付けないようにしているところなども多い。
その理由としては、回収にかかる手間、すなわち人件費が挙げられる。渋谷区では、駅前に設置された三ヶ所のゴミ箱の維持費が年間1800万円かかっていると言われる。
人件費のかからないゴミ箱があれば、ゴミ箱は適切に設置され、人々はゴミを捨てたいときに捨てられるようになる。これは人々の満足度を気づかないうちに向上させ、その場所の魅力をより高めることにもつながるだろう。
そこで、自律移動や容量測定を行い、人による回収作業を必要としないIoTゴミ箱の開発に取り組んだ。
-
実装
- ハードウェア
全体としては、大きく分けてゴミ箱部分と台車部分からなる。
ゴミ箱部分は主にアクリル板を用いて作成した。街中での設置を考え、危険物が入っていてもわかりやすい中身が若干透けるすりガラス調のものを選んだ。走行時強風等により倒れた場合も、中身が出ないよう、自動開閉式の蓋をつけた。開閉には、十分な減速比のあるものを選べば強力、コンパクト、単純な制御と使いやすい、ギアドモータを利用した。ゴミ箱の残容量を確認するため、上部にToF(Time of flight)式測距センサを取り付けた。これによりゴミ箱の蓋から何cm下までゴミが入っているか測定する。
台車部分には移動用モーター、キャスター、モータードライバ、電源、ラズベリーパイ、カメラが実装されている。ラズベリーパイに安定な電力を供給するためその他と別に電源を用意した。
2.2 ソフトウェア
全体をpythonで実装した。Opencvおよびpigpioなどのライブラリを用いた。Pigpioを用いることによりpythonでラズベリーパイのGPIOピンを容易に扱える。
ディスプレイおよびToFセンサとはモジュールの専用のライブラリを用いてSPI通信を行なった。
2.2.1 残容量の確認
残容量の確認は以下のループで処理した。
・人感センサーで人が近づくのを検知し、モーターをある時間正転させて蓋を開ける。ディスプレイに可燃と表示する。
・人がいなくなったことを人感センサーで確認しモーターを逆転させ蓋を閉める。
・ToFセンサーで容量を確認しファイルに記録する。
2.2.2 容量の送信
容量をクラウドに送信するのは送信時間を考慮し蓋の開閉とは別プロセスで行った。Azureを用いた。一定時間ごとにファイルを確認し、更新されていればIoTHubにデータを送信する。
2.2.3 移動
Pigpioを利用して二つのタイヤを制御し、前進後進と左右旋回をできるようにした。
カメラ画像を撮影し、opencvを用いて画像の特徴点を抽出、目標画像と比較し、特徴点の位置のずれから移動の方向を決定するという方法により、目標画像を経路に沿って撮影しておくだけで自律移動が可能、というアルゴリズムを考えた。しかし、向きに関しては、特徴点が左右にずれるだけであるので方向を決定できたが、前後方向の移動がうまくいかなかった。視点が移動することにより、特徴点の性質が変わってしまったためと考えられる。