↓で作成した【ぴよロボ】を更新しました。
会話ができる「ぴよロボ」作りました! (Raspberry Pi + Pico + ChatGPT)
【ハードウェアの変更点】
■CPU周り
CPU:Raspberry Pi 2(1GB) → Raspberry Pi 4(4GB) 【変更】
画面(顔):OSOYOO HDMI 3.5インチLCD (480×320)
カメラ・マイク:Logicool C270
Wifiドングル:IO-DATA WN-G300UA → Wifi内蔵のため外した【変更】
スピーカー:KKHMF PAM8403
バッテリー:Anker PowerCore Slim 10000 → Anker Power Bank【変更】
■制御周り
マイコン:Raspberry Pi Pico
サーボ:GWS MINI x 4
モータードライバー:TB6612
モーター: DAISEN ギヤドモーター 60:1 x 2
バッテリー:単3 eneloop x 4 (4.8V)
センサー:
赤外線距離センサー x 3
床センサー
LiDAR (AliExpressの格安謎LiDAR) 【追加】
IMU ICM-20948 【追加】
車輪エンコーダー AS5600 x 2 【追加】
【Raspberry Piの選定について】
性能的にはRaspberry Pi 5にしたいところですが、モバイルバッテリーでは電力が厳しそうなので、Pi 4にしました。
また、以下の記事によればPi 4の最新リビジョンでは初期リビジョンに比べて消費電力が27%ぐらい下がっているようです。
Raspberry Pi 4のリビジョンと消費電力の話
【LiDARについて】
LiDARは360°の障害物との距離を測るセンサーです。
AliExpressで販売していた格安謎LiDARを使っています。
LiDARは安くても1万円以上するものが多いですが、1,431円+送料758円で購入しました。
現在はもう売ってないようです。残念。
【ソフトウェアの変更点】
Raspberry Pi 4のOSはRaspberry Pi OSからUbuntu 22.04.4に変更しました。
ROS2を動かしたかったためです。
LiDAR を使ってSLAM(地図作成・自己位置推定)を試しています。
LiDARのROS2ドライバは↓を使わせていただきました。
ros2_mini360_lidar
slam_toolkitを使ってマッピングしているところです。
slam_toolkitはOdometryが必要なのですが、IMUでは積分誤差のため、あまりうまくいきませんでした。
そこで、IMUの磁気センサーで方向だけ使って、移動は車輪エンコーダーでやってみました。
車輪エンコーダーに使うAS5600は光学式のロータリーエンコーダーではなく、磁場の変化で角度を検出するタイプのセンサーです。タイヤに無理やり取り付けました。
↓の写真のように軸に磁石を取り付け、AS5600をタイヤの外側に付けています。
↓の動画は部屋の地図を作成しているところです。
アリエクの謎LiDARをひよこ型ロボに取り付けました
ROS2のslam_toolboxでSLAM(地図作成)できました! pic.twitter.com/p72ukjh9YB— PONTA@電子工作⚡️ロボット制作⚡️プログラミング (@Elec_Robot) October 8, 2024