🐥

RasberryPiでESP32につないだImuのデータを得る ft. micro-ROS

2022/03/04に公開

目的

  • imu(LSM9DS1)をESP32につないでROS2通信でデータを得たい.
  • 行った方法を記録として残しておこうと思う
  • 初心者なのでお手柔らかに

結果

  • 成功

RasberryPiでESP32につないだImuのデータを得る ft. micro-ROS

前提条件

参考にした記事は以下の通り

https://zenn.dev/spritaro/articles/3dc8a57fb9eef3
ざっくりした内容は,ラズパイにOS(Ubuntu 20.04)をいれて,ネットワーク設定,ROS2Foxyの環境構築を行う.ESP32用のツールを入れて,micro-ROS ビルドシステムのセットアップを行う.Micro XRCE-DDS Agent のインストールしてデモを行うといった内容.かなり手こずってやっとこさ成功した.つまずいたところはまとめておいた.

https://zenn.dev/spritaro/articles/dccf3233c8a813
micro-ROSでArduino Libraryを使うために行うことが書かれている.

これらをやっとのことで乗り越えることができた.

Imuデータ取得のためにやること

  • imuデータをpubするappを作らないと行けない
  • micro-ROS アプリは ~/microros_ws/firmware/freertos_apps/apps の下に配置されており
apps
|-- <app_name>
|    |-- app.c 
|    +-- app-colcon.meta

のようになっている.サンプルに習って app.capp-colcon.meta ファイルを含むディレクトリを作成すれば、自作アプリを追加することができる.

私はラズパイとesp32でデータを通信するものを作りたいのでpi_esp_comunicatorというものを作る.

  • まず~/microros_ws/firmware/freertos_apps/apps以下に
apps
|-- pi_esp_comunicator
|    |-- app.cpp 
|    +-- app-colcon.meta

と追加する.

補足

単位が加速度はG,角速度はdeg/sとなっていてsensor_msgs/imuではm/s^2 rad/sでやるのが決まりなので変換しないと行けない

Discussion