*********************************************************** ソフトウェア仕様(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**: `SetJointBool` | **Request:** | ・ **joint_name** (`string[]`) -- 関節名のリスト。制御したい関節名を `pan`, `tilt` で入力する。 | ・ **val** (`bool[]`) -- 関節名のリストに対応した要素を設定。TrueでトルクON, FalseでトルクOFF。 | **Response:** | ・ **result** (`bool`) -- サービス実行の成功、失敗を返答する。 **/move_joint** ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | サーボの目標角度を設定する。 ここで設定した値まで移動する。 | **type**: `SetJointPos` | **Request:** | ・ **joint_name** (`string[]`) -- 関節名のリスト。動かしたい関節名を `pan`, `tilt` で入力する。 | ・ **val** (`float32[]`) -- 関節名のリストに対応した目標角度のリスト。単位はrad。 | ・ **sync** (`bool`) -- Trueにすると、サーボの移動が完了するまで関数の終了を待機する。 | **Response:** | ・ **result** (`bool`) -- サービス実行の成功、失敗を返答する。 **/set_joint_vel** ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | 関節の速度を指定する。 | **type**: `SetJointFloat` | **Request:** | ・ **joint_name** (`string[]`) -- 関節名のリスト。制御したい関節名を `pan`, `tilt` で入力する。 | ・ **val** (`float32[]`) -- 関節名のリストに対応した目標速度のリスト。単位はrad/s。 | **Response:** | ・ **result** (`bool`) -- サービス実行の成功、失敗を返答する。 **/set_joint_acc** ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | 関節の加速度を指定する。 | **type**: `SetJointFloat` | **Request:** | ・ **joint_name** (`string[]`) -- 関節名のリスト。制御したい関節名を `pan`, `tilt` で入力する。 | ・ **val** (`float32[]`) -- 関節名のリストに対応した目標加速度のリスト。単位はrad/s^2。 | **Response:** | ・ **result** (`bool`) -- サービス実行の成功、失敗を返答する。 action ----------------------------------------------------------- **/move_joint** ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | サーボの目標角度を設定する。 ここで設定した値まで移動する。 | **type**: `MoveJoint` | **Request:** | ・ **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**: `SetDout` | **Request:** | ・ **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**: `SetPwmout` | **Request:** | ・ **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**: `SetAllout` | **Request:** | ・ **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**: `Trigger` | **Request:** | ・ None | **Response:** | ・ **result** (`bool`) -- サービス実行の成功、失敗を返答する。 **/set_display_color** ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | ボディー部M5のディスプレイ背景色を変更する。 | **type**: `SetDisplayColor` | **Request:** | ・ **color** (`string`) -- 色名をテキストで指定。指定可能な色は :doc:`../spec/soft_base` 内akari_client.color.Colorsと同様。 | ・ **sync** (`bool`) -- 同期実行の指定。Trueの場合M5側で実行完了するまで関数の終了待ちを行う。 | **Response:** | ・ **result** (`bool`) -- サービス実行の成功、失敗を返答する。 **/set_display_color_rgb** ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | ボディー部M5のディスプレイ背景色を変更する。 | **type**: `SetDisplayColorRgb` | **Request:** | ・ **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**: `SetDisplayText` | **Request:** | ・ **text** (`string`) -- 表示する文字列。 | ・ **pos_x** (`int32`) -- x方向の描画位置ピクセルを0-320で指定。左端が0。 :doc:`../spec/soft_base` 内akari_client.position.Positions を用いた位置指定も可能。 | ・ **pos_y** (`int32`) -- y方向の描画位置ピクセルを0-240で指定。上端が0。 position.Positions を用いた位置指定も可能。 | ・ **size** (`uint8`) -- 文字サイズを1-11の11段階で指定。 | ・ **text_color** (`string`) -- 文字色名をテキストで指定。指定可能な色は :doc:`../spec/soft_base` 内akari_client.color.Colorsと同様。 | ・ **back_color** (`string`) -- 背景色名をテキストで指定。指定可能な色は :doc:`../spec/soft_base` 内akari_client.color.Colorsと同様。 | ・ **refresh** (`bool`) -- trueの場合画面全体を現在の背景色で更新する。falseの場合は現在の表示を維持しつつ、文字を描画する範囲のみ更新する。 | ・ **sync** (`bool`) -- 同期実行の指定。Trueの場合M5側で実行完了するまで関数の終了待ちを行う。 | **Response:** | ・ **result** (`bool`) -- サービス実行の成功、失敗を返答する。 **/set_display_image** ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | ボディー部M5のディスプレイに画像を表示する。 | **type**: `SetDisplayImage` | **Request:** | ・ **filepath** (`string`) -- M5のSDカード内のファイルパス。(例;"image/hoge.jpg") | ・ **pos_x** (`int32`) -- x方向の描画位置ピクセルを0-320で指定。左端が0。 :doc:`../spec/soft_base` 内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**: `Trigger` | **Request:** | ・ None | **Response:** | ・ **result** (`bool`) -- サービス実行の成功、失敗を返答する。 :doc:`main` へ戻る