こんにちは。デジタルビジネス推進室の関根です。
EWS2018からもう一か月経つのですね…。時間が経つのが早いです。
今回はルンバによるお土産配達について記載致します。
ルンバのご紹介
お掃除ロボットで御馴染みのiRobot社のルンバですが、実は開発機も市販されております。
「icreate2」という機種で、デバッグ用のケーブルが付いていたりして便利なのですが、掃除に必要なフィルタ等々がついていないため、ルンバのくせに掃除はできません。
全体の流れ
ルンバのノベルティの受け渡しは、以下のような流れで行いました。
自律移動について
ルンバの制御はRaspberry Piを介して、ROS(Robot Operating System)をインストールしたサーバで行いました。
ROSのライブラリが地図のデータから経路を生成して、目的地までの移動の制御をしてくれます。
現在地の情報は、ルンバが持っている「オドメトリ情報(自己位置情報)」を利用しました。
ちょっと大掛かりな仕組みになった理由としては、ルンバ用の公開APIが「超」基本的なものしかなく、操縦やintra-martとの連携はほとんど上物(ラズパイ)に頼っているためです。
開発用ルンバなので、高度なAPIがあると期待してたのですが。。
今後ルンバで配達ロボを開発される方はご注意ください。(いれば)
ルンバ本体の役割は、ラズパイの制御通りにタイヤを動かして自分の位置を報告するのみです。
そういった意味では、彼のアイデンティティはラズパイと言えるかもしれません。
ROSのライブラリ(navigation stack)に目的地を与えると、いい感じに経路を生成して、目的地までの移動指示を出してくれます。
地図情報を読み込ませると、黒い部分をコストと認識してうまくよけてくれます。
位置情報がオドメトリのみだと、運用していくうちに、タイヤ滑りなどで座標がずれてしまうので、超音波センサーを併用して位置補正をするようにしました。
ルンバトレー サブシステムのご紹介
カレーを少しでも手に取っていただきやすくするために自動スライド式トレーを採用しました
トレーは、intra-mart上のBPMからROS経由で制御されています
トレー(とカレー)の管理を、ルンバ操縦で忙しいラズパイにお願いするのも酷な話なので、
トレー操作部分の細かい制御はマイクロコントローラに委譲する構成としました
カレー検出はなかなかの精度で実現することができました(本番ではノーミスでした!)
扉のスライドも、ソコソコなめらかにできましたが、制御ソフト(マイコンのファームウェア)を書き換えれば、もっとなめらかに
できたかもしれません(しかし本番直前に気づいたので今回は安全のため、見送りました)
【以下、技術ネタなので興味のある方限定】
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
現行は10ビットPWMを使ってサーボモータを制御しているのですが、PWMのビット数を上げれば、より細かい 動きが制御できた模様です。 ※マイコンのPWMモジュールは10ビットなのですが、別の方法を使うことで実質的な解像度が 上げられるようです、興味のあるかたはPICのアプリケーションノートを探してみましょう 【結合テストで困ったこと】 ラズパイから電源を貰ったら、ラズパイがシステムダウン →どうもサーボモータ起動時の瞬発的な大電流消費がまずかったみたいです EWSではとりあえず扉サブユニットの電源系をラズパイと分ける(要するに別のモバイルバッテリーを搭載)ことで 回避しました と・こ・ろ・が 今度はトレーサブユニットが数十秒で勝手にシャットダウンしてしまう問題が! 待機時の消費電力が少なすぎで、モバイルバッテリーが(勝手に・・いや、気を利かせて)停止してしまったのでした。 電流計をにらみながら、シャットダウンを回避できそうな無駄な消費電流を使うようにして、とりあえず対処 (トータルで50mA位使えば、今回つかっていたモバイルバッテリーは無事動き続けるようでした) なお、某社の某バッテリーだと、小電力機器にも対応しているらしいことが判ったのは後の祭りでした…。 |
おまけ
こちらはプロトタイプ版のルンバです
色々載っていますが、本番では一部しか使いませんでした。
とにかく苦労したのが、ルンバが正確に自分の位置を知るための仕組みでした。
そのために画像認識やビーコン、超音波、赤外線と色々挑戦する羽目になりました。
最後までライントレースに逃げなかったことはほめてほしいですが、最終的に採用した超音波センサーもときおり誤差が2-3m出ることがあり、最終調整は徹夜ものでした。
某テレビ番組で挑戦している、トラクターの自動運転って本当にすごい技術だと痛感しました。
今回の記事はここまで。
次回はサーモセンサーとAI音声チャットをメインに記事を書こうと思います。
[…] ャットからルンバに対して帰還指示を出します。 ・ルンバが帰還中:お客様にカレーの味が好みに合っているかを尋ねます。 (ルンバの詳細はこちら ⇒ ルンバによるお土産配達 ) […]