【アシスタントロボ】作りました! ~ルンバをPCからコントロール~


「アシスタントロボ」を作りました。台車のルンバを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を載せた様子
✅顔はぴよロボを流用

✅LiDARで部屋の点群が取得できている様子

✅アルミフレームの高さを低くして、顔にLive2Dのハルさんを載せました
背が低くてアシスタントロボっぽくない…

✅スピードが滑らかに変化するようにして、グラグラしないようになりました。もっと高くしても大丈夫そうです。
✅PCを立てて設置しました

制作メモ

ルンバのコントロール
ルンバ(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)

今後制作が進んだらこのページを更新していきます。

本格派対局将棋 ぴよ将棋
本格派対局将棋アプリ ぴよ将棋
[Android] [iOS]

かわいい「ひよこ」と対局する将棋アプリ。かわいいけどAIは本格派!
対局後の検討機能や棋譜管理機能も充実!棋譜解析機能も搭載!

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です