ソフトウェア仕様(ROS2版)
ROS2版のtopic, service, actionの通信仕様を記載します。
joint_state_publisher
topic
/joint_state
関節情報を取得する。type: JointState・ header (std_msgs/Header) -- Headerの情報。・ name (string[]) -- 関節の名前のリスト。・ position (float32[]) -- 各関節の現在位置のリスト。単位は[rad]・ velocity (float32[]) -- 各関節の目標関節速度の設定値のリスト。単位は[rad/s]・ acceleration (float32[]) -- 各関節の目標関節加速度の設定値のリスト。単位は[rad/s^2]・ enabled (bool[]) -- 各関節のサーボON状態。Trueの場合サーボON。・ moving_state (bool[]) -- 各関節の動作状態。停止中であればTrue。
m5stack_publisher
topic
/m5stack
M5からの情報を取得する。type: M5・ header (std_msgs/Header) -- Headerの情報。・ button_a (bool) -- M5の前面のボタンAの入力。ボタンを押すとTrue、押していないとFalse。・ button_b (bool) -- M5の前面のボタンBの入力。ボタンを押すとTrue、押していないとFalse。・ button_c (bool) -- M5の前面のボタンCの入力。ボタンを押すとTrue、押していないとFalse。・ din0 (bool) -- ヘッドのdin0ピンのデジタル入力。HiがTrue、LoがFalse。デフォルトHi。・ din1 (bool) -- ヘッドのdin1ピンのデジタル入力。HiがTrue、LoがFalse。デフォルトHi。・ ain0 (uint16) -- ヘッドのain0ピンのアナログ入力。0-3.3Vを0-4095の4096段階にする。・ dout0 (bool) -- ヘッドのdout0ピンのデジタル出力。TrueでHi(3.3V)、FalseでLo(0V)。・ dout1 (bool) -- ヘッドのdout1ピンのデジタル出力。TrueでHi(3.3V)、FalseでLo(0V)。・ pwmout0 (uint8) -- ヘッドのpwmout0ピンのPWM出力。0-255の256段階で0-3.3Vを出力可能。・ temperature (float32) -- AKARI側面の環境センサモジュールの温度計測値。単位は℃。・ pressure (float32) -- AKARI側面の環境センサモジュールの観測絶対圧力。単位はPa。・ brightness (uint16) -- AKARI側面の光センサユニットの観測明るさを4096段階で出力。0が最も明るい。
servo_server
service
/set_joint_enable
サーボの有効無効状態を設定する。type: SetJointBoolRequest:・ joint_name (string[]) -- 関節名のリスト。制御したい関節名を pan, tilt で入力する。・ val (bool[]) -- 関節名のリストに対応した要素を設定。TrueでトルクON, FalseでトルクOFF。Response:・ result (bool) -- サービス実行の成功、失敗を返答する。
/move_joint
サーボの目標角度を設定する。 ここで設定した値まで移動する。type: SetJointPosRequest:・ joint_name (string[]) -- 関節名のリスト。動かしたい関節名を pan, tilt で入力する。・ val (float32[]) -- 関節名のリストに対応した目標角度のリスト。単位はrad。・ sync (bool) -- Trueにすると、サーボの移動が完了するまで関数の終了を待機する。Response:・ result (bool) -- サービス実行の成功、失敗を返答する。
/set_joint_vel
関節の速度を指定する。type: SetJointFloatRequest:・ joint_name (string[]) -- 関節名のリスト。制御したい関節名を pan, tilt で入力する。・ val (float32[]) -- 関節名のリストに対応した目標速度のリスト。単位はrad/s。Response:・ result (bool) -- サービス実行の成功、失敗を返答する。
/set_joint_acc
関節の加速度を指定する。type: SetJointFloatRequest:・ joint_name (string[]) -- 関節名のリスト。制御したい関節名を pan, tilt で入力する。・ val (float32[]) -- 関節名のリストに対応した目標加速度のリスト。単位はrad/s^2。Response:・ result (bool) -- サービス実行の成功、失敗を返答する。
action
/move_joint
サーボの目標角度を設定する。 ここで設定した値まで移動する。type: MoveJointRequest:・ goal_pan (float32) -- pan関節の目標角度。単位はrad。・ goal_tilt (float32) -- tilt関節の目標角度。単位はrad。Response:・ result (bool) -- サービス実行の成功、失敗を返答する。Feedback:・ pos_pan (float32) -- 現在のpan角度フィードバック。単位はrad。・ pos_tilt (float32) -- 現在のtilt角度フィードバック。単位はrad。
m5_server
service
/set_dout
ヘッド部GPIOピンのデジタル出力を設定する。type: SetDoutRequest:・ pin_id (uint8) -- pin番号。0でdout0、1でdout1を指定する。・ val (bool) -- デジタル出力の値。Falseで0V,Trueで3.3V出力。・ sync (bool) -- 同期実行の指定。Trueの場合M5側で実行完了するまで関数の終了待ちを行う。Response:・ result (bool) -- サービス実行の成功、失敗を返答する。
/set_pwmout
ヘッド部GPIOピンのPWM出力を設定する。type: SetPwmoutRequest:・ pin_id (uint8) -- pin番号。デフォルトではpwmout0しかないため、0を指定すること。・ val (uint8) -- PWM出力の値。 0-255で指定し、0で0V、255で3.3Vを出力する。・ sync (bool) -- 同期実行の指定。Trueの場合M5側で実行完了するまで関数の終了待ちを行う。Response:・ result (bool) -- サービス実行の成功、失敗を返答する。
/set_allout
ヘッド部GPIOピンの出力をまとめて設定する。type: SetAlloutRequest:・ dout0_val (bool) -- dout0の出力値。Falseで0V,Trueで3.3V出力。・ dout1_val (bool) -- dout1の出力値。Falseで0V,Trueで3.3V出力。・ pwmout0_val (uint8) -- pwmout0の出力値。0-255で指定し、0で0V、255で3.3Vを出力する。・ sync (bool) -- 同期実行の指定。Trueの場合M5側で実行完了するまで関数の終了待ちを行う。Response:・ result (bool) -- サービス実行の成功、失敗を返答する。
/reset_allout
ヘッド部GPIOピンの出力をリセットする。type: TriggerRequest:・ NoneResponse:・ result (bool) -- サービス実行の成功、失敗を返答する。
/set_display_color
ボディー部M5のディスプレイ背景色を変更する。type: SetDisplayColorRequest:・ color (string) -- 色名をテキストで指定。指定可能な色は ソフトウェアAPI 内akari_client.color.Colorsと同様。・ sync (bool) -- 同期実行の指定。Trueの場合M5側で実行完了するまで関数の終了待ちを行う。Response:・ result (bool) -- サービス実行の成功、失敗を返答する。
/set_display_color_rgb
ボディー部M5のディスプレイ背景色を変更する。type: SetDisplayColorRgbRequest:・ r (uint8) -- RGBのR値を0-255で指定。・ g (uint8) -- RGBのG値を0-255で指定。・ b (uint8) -- RGBのB値を0-255で指定。・ sync (bool) -- 同期実行の指定。Trueの場合M5側で実行完了するまで関数の終了待ちを行う。Response:・ result (bool) -- サービス実行の成功、失敗を返答する。
/set_display_text
ボディー部M5のディスプレイに文字を表示する。type: SetDisplayTextRequest:・ text (string) -- 表示する文字列。・ pos_x (int32) -- x方向の描画位置ピクセルを0-320で指定。左端が0。 ソフトウェアAPI 内akari_client.position.Positions を用いた位置指定も可能。・ pos_y (int32) -- y方向の描画位置ピクセルを0-240で指定。上端が0。 position.Positions を用いた位置指定も可能。・ size (uint8) -- 文字サイズを1-11の11段階で指定。・ text_color (string) -- 文字色名をテキストで指定。指定可能な色は ソフトウェアAPI 内akari_client.color.Colorsと同様。・ back_color (string) -- 背景色名をテキストで指定。指定可能な色は ソフトウェアAPI 内akari_client.color.Colorsと同様。・ refresh (bool) -- trueの場合画面全体を現在の背景色で更新する。falseの場合は現在の表示を維持しつつ、文字を描画する範囲のみ更新する。・ sync (bool) -- 同期実行の指定。Trueの場合M5側で実行完了するまで関数の終了待ちを行う。Response:・ result (bool) -- サービス実行の成功、失敗を返答する。
/set_display_image
ボディー部M5のディスプレイに画像を表示する。type: SetDisplayImageRequest:・ filepath (string) -- M5のSDカード内のファイルパス。(例;"image/hoge.jpg")・ pos_x (int32) -- x方向の描画位置ピクセルを0-320で指定。左端が0。 ソフトウェアAPI 内akari_client.position.Positions を用いた位置指定も可能。・ pos_y (int32) -- y方向の描画位置ピクセルを0-240で指定。上端が0。 position.Positions を用いた位置指定も可能。・ scale (float32) -- 画像の拡大縮小倍率を指定。1.0で等倍表示。マイナスの値を入れた場合、画面サイズに合わせて自動でサイズ調整される。・ sync (bool) -- 同期実行の指定。Trueの場合M5側で実行完了するまで関数の終了待ちを行う。Response:・ result (bool) -- サービス実行の成功、失敗を返答する。
/reset_m5
M5をリセットして再起動する。type: TriggerRequest:・ NoneResponse:・ result (bool) -- サービス実行の成功、失敗を返答する。
ROS2版を使ってみよう へ戻る