コンテンツにスキップ
"Rapiro"をmicro-ROSで動かしてみよう

"Rapiro"をmicro-ROSで動かしてみよう

皆さんこんにちは。

1年半ほど前、M5Stackを二足ロボットのRapiroへ組み込み、Blynk経由でラジコン化した記事を書きました。今回はそれをmicro-ROS経由でやってみようという記事です。

ROS2の特徴の一つに、組み込み系マイコンへ対応しているという点が挙げられます。そんなROS2が動作しているPCと、マイコンをブリッジしてくれるライブラリがmicro-ROSです。

簡単に組み立てられるロボットと手を出しやすいマイコン、micro-ROSを使用して、ぜひROS2を用いたロボット開発に踏み出してみてください。

使用環境

使用した環境は下表の通りです。なお、ROS2やmicro-ROSの環境構築についてはこちらの記事をご参照ください。

今回使用したmicro_ros_arduinoは、公式にはM5Stackに対応していません。しかし、ESP32 Dev Moduleは対応しており、同じコアを持つM5Stackシリーズであれば動作するものと思われます。(他シリーズでの動作確認はしていませんので、悪しからずご了承ください)

OS  Ubuntu 22.04
ディストリビューション ROS2 Humble
IDE Arduino IDE
マイコン M5Stack Basic
ロボット Rapiro

 

組み立て・コーディング

Rapiroを組み立て、頭内部にM5Stackを設置します。Rapiro本体の組み立て方法については、こちらの記事と公式の組み立てマニュアルをご参照ください。

M5StackのTX2・RX2・5V・GNDと、Rapiroのシリアル通信用ケーブルのピンをオスーメスのジャンパ線で接続します。

使用したコードはこちらです。

ROS2でロボットの操作によく使用される、/cmd_velトピックを読み込み、前後進・左右旋回に対応したコマンドをM5Stackのシリアルポート"Serial2"からRapiro側へ送信するという処理になっています。

また、Rapiroに内蔵されているArduino Uno R3互換ボードには、公式のサンプルプログラムを書き込んであります。

動かしてみよう

早速動かしてみます。
以下のコマンドをPCで実行して、M5Stackからの接続を待ちます。

ros2 run micro_ros_agent micro_ros_agent udp4 -p 8888

正常にM5Stackが接続されたことを確認したら、以下のコマンドを実行して、teleop_twist_keyboardを動かします。

ros2 run teleop_twist_keyboard teleop_twist_keyboard

teleop_twist_keyboardの実行が始まったら、"i"、"j"、"k"、"l"、","をキーボードから入力すると、入力に応じてRapiroは前後進・左右旋回の動作を行います。

是非、お手元でお試しください。

Rapiroはこちらから
M5Stackシリーズ関連商品はこちらから

前の記事 Flex On 'Em With These GNSS Boards!
次の記事 The Winds Are A-Changin'!