はじめに
- 何か、全く世の中の役に立たないものを全力で作りたい
- 明確な目標がないと勉強する気やQiitaの記事を書く気が起きない…
…と思い、それならば以下のものを作ろうかと思い立ちました。
世の中の役に立たなくても、自分が満足できれば良い、がこの製作スタンスです。
作りたいもの
-
自律走行と変形が可能なルンバのバーチャルウォール(以下、VWと表記)
- バーチャルウォールとは:https://store.irobot-jp.com/item/4491744.html
何でこんなもの作ろうと思った?
- ルンバ買ったけどお掃除させるだけなのもなぁ
- ルンバを使ってなんか作りたいな(せっかく賢い900シリーズ買ったし)
- ルンバの掃除で通った軌道の情報が頑張れば取得できるらしいぞ
-
https://github.com/koalazak/dorita980
-(全然更新されてないけど…)
-
https://github.com/koalazak/dorita980
- そういえば付属してきたVWってルンバとどんな通信してるの?気になる…
- 頑張って通信模擬できればVWは作れるんじゃね?
- 高速な足回りも搭載すれば軌道情報からルンバの行く先を先回りして通せんぼできるんじゃね?
- そんな感じのロボット作るか
- あと変形させたい(某UCの4枚羽根的な見た目に) 変形はロマンです
…こんな感じの思考プロセスで、製作を決定しました(笑)。
搭載機能
以下の機能を搭載したいと考えています。
- バーチャルウォール通信
- ルンバのVWとしての機能を持つ
- 変形
- ルンバ用VWの形から車高の低い二輪移動ロボットの形に変形
- 高速な足回り
- マイクロマウスに以前使っていまは眠っているモータを有効活用
- 自己位置・姿勢推定
- ジャイロセンサとエンコーダの値を使って自己位置・姿勢推定
- 速度・角速度制御
- エンコーダとジャイロセンサの値を使って速度・角速度制御
- 障害物検知と回避
- 赤外LEDと赤外フォトトランジスタによる検知と軌道生成による回避
- 障害物除去
- 簡易ハンドによる障害物除去
- wifi通信
- webアプリ経由での各種操作、ルンバとの連携
- 充電機能
- LiPo電池の充電回路を搭載し本体から電池を外さずにオンマシンで充電
メカハードざっくり仕様
メカハードのざっくり構想は以下の通りです。
- 本体サイズ
- 公式のVWぐらいのサイズに収まればベスト
- 足回り
- マウスの足回りを流用、MiniZのタイヤと自作シャフト、カグスベール
- 外装カバー
- 新規設計、RCサーボとリンク機構で作成、カバー自体は樹脂3Dプリンタで製作
- VW通信塔
- 新規設計、本体上部と前面に赤外LED、上部には逆円錐形状のミラーを付けて作成
- メインフレーム
- 新規設計、おそらくアルミ製、金属3Dプリンタとか使ってみたい
電気ハードざっくり仕様
電気ハードのざっくり構想は以下の通りです。
- マイコン1
- Wifi内蔵、マイコン間通信にSPI
- デバッグ用にUARTも搭載がよい
- ESP-WROOM-02あたり?
- マイコン2
- 多ピン、多ペリフェラル、マイコン間通信にSPI
- デバッグ用にUARTも搭載がよい
- STM32あたり?
- DCモータ
- マウスのモータを流用、Faulhaber 1717T006SR
- PWM出力2ch+GPIO出力2ch
- エンコーダ
- マウスのモータ搭載エンコーダを流用、IE2-512
- 専用I/Fのあるマイコンが良い
- モータードライバ
- テキトーに選定、Allegro A3950あたり
- 角速度センサ
- テキトーに選定、STMicro L3GD20Hなど良いかも?
- I2C接続
- 障害物センサ
- 赤外LED・フォトTrともTBD、シェル一体型
- ADC最低4ch+GPIO出力最低2ch
- ハンド用近接センサ
- 赤外LED・受光素子が一体となったもの
- GPIO出力だと嬉しい GPIO出力1ch
- VW通信塔
- 赤外LED*2、フォトTrともTBD
- GPIO入力1ch+GPIO出力最低2ch
- 変形用RCサーボ
- TBD、なるべく小型のもの
- PWM出力5ch(左右の羽根の展開に2chずつ+VW通信塔の昇降に1ch)
- ハンド用RCサーボ
- TBD、なるべく小型のもの
- PWM出力2ch(ハンドの前方展開に1ch+ハンド開閉に1ch)
- バッテリー
- LiPo、1セル3.7V*2~3セル、数百mAh、数十C放電ぐらいの
- 電圧監視用ADC1ch、充電回路
- ブザー
- 状態確認用、圧電ブザー
- PWM出力1ch
- LED
- 状態確認用、LED3~4個
- GPIO出力3~4ch
- ボタン
- モード設定用、プッシュボタン2個
- GPIO入力2ch
- プリント基板
- 新規設計、~1.6mm厚、2~4層ぐらいで
- 製造は外注、部品のはんだ付けは自分で
ソフト超ざっくり仕様
ソフトの超ざっくり構想は以下の通りです。超絶ざっくりです。
- 本体側
- OS非搭載、使用言語はC、C++
- 各種通信用のライブラリのみ利用(TCP/IP通信、赤外線通信など)
- その他やその上位は自前実装(コマンド通信、ADC値取得、RCサーボ制御、ジャイロ値取得、DCモータ制御、VW通信、充電制御)
- サーバ・アプリ側
- 使用言語はJavaScript、Python
- dorita980(iRobotクラウドAPIを使用してWifi経由でルンバを直接制御)使用
- その他は超絶未定
- AWSも、使えたら使ってみる
使用するツール
以下のツールを使用する想定でいます。
- メカ・電気PCB設計
- Fusion360
- ソフト設計・実装
- Cursorエディタ+Arduino IDE
- 各種設計データ、ソースコードの管理
- Git、GitHub
設計・製作する人
- わたし
さいごに
以上のような、しょーもないものを今後全力で作っていこうと思います。
ちゃんとしたものが出来上がるのか、そもそも何年かかるのか全く分かりませんが、見守っていただければと思います。
これが完成したころには、iRobotさんがそのはるか上を行く製品を作って世に出してくれているかもしれませんね。
このQiitaで果たして需要があるのかも不明です。需要あるよ~というはいいねください。
最後まで読んで下さりありがとうございました。