猫型ロボットの構造とこれから
2018~2019年ごろ、IOTが大きなトレンドになると話題になっていました。当時、センサーの制御も色々と手掛けていた関係で、モータあればロボットもできるんじゃないかと数名で手作りしたロボットです。当時は江戸カラクリのようなことができないの?なんて考えてて、ご挨拶やお茶くみもできるよね、じゃあ何がいいいの?ということでずばり「招き猫」を作ろう!となった次第です。
AIは出始めていた
画像から人を検出したり、顔から感情や年齢などを判断するAIは開発されていました。音声合成や音声認識AIは無く、LLMも当然ありません。人の言葉を理解したり画像を理解するような術はなかったわけです。それでも、センサーを統合すればそれなりの動きはしてくれて、3Dプリンターもあるから手作りできるんじゃないかと、安易に始めたわけですが、そうは簡単ではありませんでした。
当時の記録
-OpenVINOで顔を判定
-Ope-Jtalkで発話
-Googleで音声認識
-機械学習をした会話システム
各部の仕様
走行モータ+バランスモータ
2個の大きな車輪で多少の凹凸も乗り越えられるように考慮し、方向転換も容易になるよう2輪として前後バランス用に2個のサーボモータで水平バランスをとっていました。この仕組みにより、坂を上る時にも水平を保てるようになっています。
走行モータ:
磁気エンコーダ付き小型ギアードモータ+デジタルPID速度・位置制御
バランスモータ:
近藤科学の模型ロボ用サーボ、デジーチェインしながらシリアル通信で位置制御ができます。
腕は5軸
左右の腕はできる限り自在に稼働できるように5軸としています。物を持つとひねりが入りますが、5軸あればほぼ完全な位置制御ができます。
モータ:
こちらも近藤科学の模型ロボ用サーボ。肩はトルクが必要なのでおおきめ、先に行くほど小型になっています。組みあわせて接続するためのキットも提供されているので組立や制御は簡単です。
目線
全高は僅か50㎝程度で床に起きて動かすと目線が低くなります。人を見るとには目線を上げなくてはならないので左右のカメラはサーボモータで上下角を制御しています。難しいいのは単純にカメラを振るだけだとレンズが上下するので回転中心がレンズ位置になるよう、動かくことです。
センサー
測距センサー
超音波で距離を測定するよくあるセンサーです。1m程度までは簡単にかなり正確に距離を測定できます。
人感センサー
人がいる(というか人が動く、センサーの範囲に人が入る)ことを検出します。
バランスセンサー
小型の傾きセンサーです。半導体のような形で傾きやひねりが検出できます。
動きの制御とセンサー処理
STマイクロのSTM32マイコンで動かしました。上位のCPUからの指令に基づいて各サーボモータに位置指令を出すとともに、センサー入力を上位CPUへ送ります。OSはありませんが、C++で記述されたセミリアルタイム処理です。
上位CPU
Pythonによる開発を行うため、x86を選んでいます。LANやインターネット通信、AI処理ができることもx86を選んだ理由です。だ4世代のモバイルCore-i7(Hシリーズ)です。ここにカメラやマイクが接続させれ、無線LANで外界と通信する仕様です。
構造
基本構造
丈夫な底板に柱を立てて、様々な部品を取り付けていく構造です。肩の部分だけは強度がいるので梁のように丈夫な棒が左右に出ています。
基本的にはこれだけで自律するので外んの部分のカバーは無くても動きます。
カバー
招き猫をイメージしてるので、紙製の張りぼてで囲む方式とぬいぐるみのように布で多く方法を2種類あります。ぬいぐるみ型はつぶれないようにカボチャのように見えるアルミ枠が取り付けてあります。
まぜ頓挫したのか
構造を正確に設計できなかった
最大の理由は機構設計の専門家がいなかったことです。ロボットに限らず実態のある「物」を作るには機構の設計ができる人が絶対に必要です。
ソフトウエア開発が未熟だった
いまも未熟ですけど、当時は本当に何もわからずやっていました。だから高度なことが出来なくて、中途半端に終わりました。
これから
AIが進歩して会話をしたり、話したり聞いたり、あるいは画像を見ながら会話してくれたりと、かなり大きな改善の余地があり、実態のある「物」とAIを結びつけるのは大変意義があると考えています。でも、頓挫した理由で述べた最大の問題である「機構設計ができない」は依然として残ります。このような「物」を扱うためには個人開発は難しく、形態は問わないですけど、サークルのようなチームで取り組む必要がありそうです。
今後、どうするかは完全に未定のままです。