「アシスタントロボ」を作りました。台車のルンバをPCからコントロールしています。
構成
【ハードウェア】
台車:ルンバ878
PC:Let’sNote CF-SV7
IMUコントロール:Raspberry Pi Pico
IMU(磁気のみ):ICM-20948
LiDAR:LD19
コントローラー:PS4 DUALSHOCK 4 (Bluetooth接続)
【ソフトウェア】
PC OS:Ubuntu 22.04
ROS2:HUMBLE
ルンバコントロール:Python Roomba
画面系:Unity6 + Live2D + Unity Robotics Hub
物体検出AI:YOLOv8(※)
音声認識AI:OpenAI Whisper(※)
文章生成AI:OpenAI ChatGPT API
音声合成AI:VOICEVOX:春日部つむぎ(※)
※物体検出AI、音声認識AI、音声合成AIはGPU(RTX3050)搭載の別PC(Windows11/ROS2 HUMBLE)で動かしています。
【機能】
✅表情 Live2D ハルさん
✅カメラで人を認識して目線を合わせてくれます
✅カメラで人を認識して後をついてきます
✅ワイヤレスコントローラーで操縦できます
✅ChatGPTで音声で会話ができます
✅[予定]LiDARで部屋の地図を作成して、部屋を指定して動かせます
動画
✅ルンバ台車にアルミフレームでノートPCを載せた様子
✅顔はぴよロボを流用
ルンバを台車にしたロボット作った
重心が高くて倒れそう… pic.twitter.com/uUwaDat8TY— PONTA@電子工作⚡️ロボット制作⚡️プログラミング (@Elec_Robot) November 6, 2024
✅LiDARで部屋の点群が取得できている様子
8月にアリエクで送料込み2,575円で購入(※)したLiDAR LD19を動かしてみた
点群取れてます
謎LiDARよりも精度が高いような感じがしますこの前のルンバロボに載せる予定
※今はもう売ってないようです。残念…
ROS2のLD19用のドライバ(ノード)は↓を使用しましたhttps://t.co/r02c9uOApU pic.twitter.com/0ccs8bKIuW
— PONTA@電子工作⚡️ロボット制作⚡️プログラミング (@Elec_Robot) November 11, 2024
✅アルミフレームの高さを低くして、顔にLive2Dのハルさんを載せました
背が低くてアシスタントロボっぽくない…
✨マスコットロボ 進捗
✅Live2Dのハルさんに登場してもらいました
✅動画ではわかりにくいですが、目線を合わせてくれます
✅グラグラしないように背を低くしました
✅ルンバロボ ⇒ マスコットロボ に変更しました#マスコットロボ pic.twitter.com/ePfhAShwam
— PONTA@電子工作⚡️ロボット制作⚡️プログラミング (@Elec_Robot) November 12, 2024
✅スピードが滑らかに変化するようにして、グラグラしないようになりました。もっと高くしても大丈夫そうです。
✅PCを立てて設置しました
✨#アシスタントロボ 進捗
✅スピードが滑らかに変化するようにして、グラグラしないようになった。もっと高くしても大丈夫そう
✅PCを立てて設置
✅画面はUnity + Live2D、モデルはハルさん
✅目線を合わせてくれます
【使用技術】
ルンバ,ROS2,Unity,Live2D,YOLOv8,Whisper,LiDAR,SLAM pic.twitter.com/KX5YgKsD6W— PONTA@電子工作⚡️ロボット制作⚡️プログラミング (@Elec_Robot) November 28, 2024
制作メモ
ルンバのコントロール
ルンバ(900系以外)はシリアルでコントロールすることができます。
シリアル信号の電圧は5Vであることに注意が必要です。(USBシリアル変換機や最近のマイコンなどは3.3Vのものが多い)
ライブラリにPython Roombaを使用しています。Python2.7用に作られているので、Python3で動かす場合は一部変更が必要です。
なお、ROS2用のドライバもあるのですが、細かく制御をしたかったので、上記を使用しました。
https://github.com/AutonomyLab/create_robot
LiDARについて
今回使用したLiDAR LD19はAliExpressで1,854円+送料721円で購入しました。現在は売っていないようで残念です。
LiDARは安くても1万円以上するものが多いですし、このLD19もスイッチサイエンスでは24,000程度で販売しています(2024年11月15日現在)。同じものなのかはわかりません。
ぴよロボで使用したメーカーや型番が謎のLiDARよりも精度が良いように感じます。
ROS2用のドライバは↓を利用しました。Instructionsの通りで問題なく動きました。
https://github.com/ldrobotSensorTeam/ldlidar_stl_ros2
ロボの顔について
Unity6 + Live2D + Unity Robotics Hubで作っています。
Live2Dのモデルはハルさんを使用させていただきました。
Unity Robotics HubでROS2とやり取りできるので便利です。
さいごに
このロボは前に作った「ぴよロボ」の成果を活用しています。以下を参照ください。
・会話ができるひよこ型ロボ「ぴよロボ」作りました! (Raspberry Pi + Pico + ChatGPT)
・ひよこ型ロボで地図作成(ROS2+LiDARでSLAM)
今後制作が進んだらこのページを更新していきます。