本パッケージは、ロボットコントローラからのリクエスト処理、およびロボットコントローラへのレスポンス処理を行う。
ROSドライバが存在するロボットでも、周辺機器を操作するためのインタフェースはSocketを用いることが多い。将来的にはROSレベルでの完全なインタフェースが標準化されるかもしれないが、当面はSocketを使ったインタフェースが汎用性が高い。
本パッケージもSocket Serverとして設計されており、ロボット側をClientとすることを前提としている。
- Configuration(/config/rsocket)
以下パラメータによる
name |
type |
description |
protocol |
{fanuc,melfa...} |
通信プロトコル選択 |
port |
Int |
ソケットサーバのポート番号 |
source_frame_id |
String |
マスターデータのフレームID |
target_frame_id |
String |
シーン中のマスターに一致するフレームID |
base_frame_id |
String |
source->target変換の基準座標系。X2の返答として返す座標(OK\n(x,y,z,a,b,c))は、source->target変換をこの座標系に変換している。 |
update_frame_id |
String |
本frame_idが指定されていた時は、X1にて座標を受け取った場合、その値にてframeを更新する。座標のストリーミングドライバがないロボット用の救済機能 |
name |
type |
description |
response/cleare |
Bool |
リセット要求に対する応答 |
response/capture |
Bool |
キャプチャ要求に対する応答 |
response/solve |
Bool |
ソルブ要求に対する応答 |
response/recipe_load |
Bool |
レシピ選択要求に対する応答 |
response/function_load |
Bool |
ファンクション選択要求に対する応答 |
name |
type |
description |
request/clear |
Bool |
リセット要求 |
request/capture |
Bool |
キャプチャ要求 |
request/solve |
Bool |
ソルブ要求 |
request/recipe_load |
String |
レシピ選択要求 |
request/function_load |
String |
ファンクション選択要求 |
name |
description |
waypoint[0..n] |
socketがX2(...)などにて経由点情報を受信した場合、その点数に応じた"waypoint0..n"という名のframeをpublishする。基準フレームはパラメータwaypoint_frame_idで与えられたものとする |
format |
description |
X0() |
リセット要求。()内のパラメータは無視される |
X1(x,y,z,r,p,w) |
キャプチャ要求。()内のパラメータが座標形式であれば、update_frame_idで指定したframeを更新する |
X2([x,y,z,r,p,w;...;x,y,z,r,p,w]) |
ソルブ要求。()内のパラメータが座標シーケンス形式であれば、その点数に応じた"waypoint0..n"という名のframeをpublishする(TFの項を参照)。 |
X3(string) |
レシピ変更要求。()内のパラメータが文字列であれば、その文字を/request/recipe_loadトピックに発行する |