6
7

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

M5stackをROS(rosserial)につなげる方法

Posted at

#経緯
rosserialをwifi経由で使ってみたく、色々探してみました。まず@aNo研 nnnさんの以下の記事が参考になったのですが、自分の環境ではすんなり行かなかったので、自分なりに挑戦した内容を記載してみます。

ROSのrosserialを使って、M5stackとUSB通信してLチカする
#1. Windows10では何故か失敗
 Windows10では上記で参考にさせて頂いたスケッチをArduinoIDEでM5stackに書き込もうとすると、大量のエラーが吐き出され、コンパイルすることを断念しました。そこでUbuntuよりArduinoIDEを起動してコンパイルすることにしてみました。(結果成功!)そのためUbuntuで実施した内容を記載します。

#2. Ubuntu18.04LTSにROS Melodicをインストール
 いつも通りROSをインストールします。インストールは以下を参考にしております。もう既にROSをインストールしている場合は飛ばしてください。

Ubuntu install of ROS Melodic

#3. Ubuntu18.04LTSにArduinoIDEをインストール
ArduinoIDEのインストールは以下を参考にしました。ただしArduinoのバージョンが新しくなっているため、2020/8/27時点では"arduino-1.8.5"となっている個所を"arduino-1.8.13"にしております。

Ubuntu 18.04にArduino IDEをインストールして、プログラムをArduinoに書き込む

#4. M5stackをArduinoIDEで書き込める環境を作る
M5stackにスケッチを書き込む環境を構築していきます。
##4.1. ボードマネージャの設定
以下を参考にしてM5stackへ書き込める環境を構築しました。
LinuxでM5Stack向けArduinoIDE環境を構築する
##4.2. ライブラリの登録
ArduinoIDEを起動し、”スケッチ”→”ライブラリをインクルード”→””イブラリを管理”をクリックする

メニュー_003.png

そして"M5stack"と記入して、表示された”M5stack”をインストールする。
範囲を選択_006.png

##4.3. エラー< avr/pgmspace.h >が見つからない場合の対処
ArduinoIDEでスケッチを書き込もうとすると< avr/pgmspace.h >が見つからないと言うエラーが出てきました。そこでRosserial_Arduino_Libraryディレクトリにあるros.hを修正します。
私の場合ros.hは、”/Arduino/libraries/Rosserial_Arduino_Library/src”ディレクトリにありました。

ここで、ros.hの40行目に書かれている

#include <avr/pgmspace.h>

 #include <pgmspace.h> 

に変更しました。

##4.4. permissionの許可
M5stackに書き込む際permissionの許可を与える必要があります。そこで以下のコマンドを使いました。

  sudo chmod 666 /dev/ttyUSB0

##4.5. スケッチの記述
スケッチは参考として@aNo研さんのスケッチを使わさせていただきました。

ROSのrosserialを使って、M5stackとUSB通信してLチカする

##4.6. M5scackへの書き込み
 以下の様に”ツール”→"ボード"→”ESP32Arduino”→”M5stack-Core-ESP32”と選択します。
メニュー_002.png

 そしてCtrl+Rで書き込みます。

#5.試してみる!
では実際にrosserialを動かしてみましょう!新しいターミナルを開きroscoreを起動します。

roscore

その後M5stackに電源を入れます。
更にその後、新しいターミナルを開きrosserialを起動します。

rosrun rosserial_python serial_node.py tcp

rosserialによってM5stackと通信できたら以下のようなメッセージが出てきます。
範囲を選択_007.png
もしうまく動いていないなら、電源ボタンを”トン、トン”とダブルクリックしてみてください。
これで動いたら、最後に新しいターミナルで以下のコマンドを打ってみて下さい。

rostopic pub toggle_led std_msgs/Empty --once

これで画面が光ったのではないでしょうか?

おしまい!

#最後に
@aNo研さん。とても参考になりましたありがとうございます!

6
7
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
7

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?