ROS2で動かしてみよう

セットアップしたROS2を動かしてみましょう。

akari_rosのパッケージ紹介

../../_images/packages.jpg

最初に、akari_rosに含まれる各パッケージを紹介します。 akari_rosには下記のパッケージが含まれています。

akari_msgs
akari_rosで使うカスタムメッセージ型、サービス型、アクション型を定義しています。
state_publisher
akariのjointやM5のstateをメッセージとしてpublishするpublisherが含まれています。
m5_server
akariのM5のコマンドを実行するservice serverが含まれています。
servo_server
akariのヘッドのサーボのコマンドを実行するservice serverが含まれています。
akari_client_example
サンプルアプリ群です。上記のpublisherからsubsclibeして表示するサンプルや、serverに対してserviceを実行するclientサンプルが含まれています。
akari_launch
publisher、serverをまとめて起動するlaunchファイルが含まれています。

ROS2サーバの起動

最初にサーバ側のノードの起動が必要になります。
下記のコマンドでまとめて起動します。
ros2 launch akari_launch akari_launch.py
上記launchファイルでは、下記のノードをまとめて起動しています。
joint_state_publisher (パッケージ: state_publisher)

各関節の状態をpublishするpublisher

m5stack_publisher (パッケージ: state_publisher)

M5の状態をpublishするpublisher

servo_server (パッケージ: servo_server)

ヘッドのサーボのコマンドを実行するservice server

m5_server (パッケージ: m5_server)

M5のコマンドを実行するservice server

サンプルの実行

サーバ側のノードが起動したら、クライアントのサンプルで機能を確認できます。

サーボの制御

1a. サーボ状態の取得

サーボの現在状態を取得し、表示するサンプルです。
ros2 run akari_client_example joint_state_subscriber

1b.サーボの制御

ヘッドのサーボ制御を行うサンプルクライアントです。
実行すると、速度、加速度を変えながらサーボが動きます。
ros2 run akari_client_example servo_client

1c. サーボの制御(action)

ヘッドのサーボ制御を行うサンプルのaction版です。
actionで実行すると、サーボの移動中に現在位置をフィードバックとして受け取ることができます。
ros2 run akari_client_example move_joints_action_client

環境情報の取得

2a. M5の情報取得

M5の現在状態を取得し、表示するサンプルです。
ボタン、GPIOの入出力、環境センサの入力(気温、気圧、明るさ)が取得できます。
ros2 run akari_client_example m5_subscriber

GPIO出力

3a. GPIO出力

ヘッドのGPIOの出力制御をするサンプルです。
各ステップごとにGPIOデジタル出力(dout0,dout1)とPWM出力(pwmout0)が変化します。
ros2 run akari_client_example set_pinout

ディスプレイ制御

4a. ディスプレイ背景カラー出力

ディスプレイ背景カラー変更のサンプルです。各ステップごとにM5の背景カラー変更を行います。
ros2 run akari_client_example display_color

4b. ディスプレイテキスト出力

ディスプレイテキスト出力のサンプルです。ステップごとにM5の画面にテキストを出力します。
ros2 run akari_client_example display_text

4c. ディスプレイ画像出力

ディスプレイ画像出力のサンプルです。ステップごとにM5の画面の様々な位置にサイズを変えた画像を出力します。
ros2 run akari_client_example display_image

その他の制御

5a.M5リセット

M5リセットのサンプルです。M5にリセット信号を送ります。
ros2 run akari_client_example reset_m5

ソフトウェア仕様(ROS2版) へ進む

AKARIのROS2環境をセットアップしよう へ戻る