-
Notifications
You must be signed in to change notification settings - Fork 20
Open
Description
センサ座標を手先座標やground座標に変換する際,現在の仕様だと下記の課題があります.
例えば,手先センサの値をground座標にして,x,y,z座標をプロットしたいとすると,
plot.yaml
rmfo_off_rhsensor_world:
func: rh_force_in_foot_mid_coords
data:
- { log: rmfo_off_rhsensor, column: [0-5] } # force vector in sensor coordinate
- { log: st_q, column: [0-33] } # angle vector
layout.yaml
larm off_force (in world):
legends:
- { key: rmfo_off_lhsensor_world, id: [0-2], label: 'fz (world)'}
のように書くと思いますが,以下のような問題が出てきます.
- plot.yamlのfuncは,"rarm", "ground"など,どの座標からどの座標へ変換するのかという追加の引数を渡せないと,funcの中で,if文の直書きが必要になる.
- 座標変換を1度行うと,x,y,zの3軸が一度に計算できるが,現在の仕様だと,layout.yamlの[0-2]で3回計算が回ってしまう.
- 2と似ているが, rmfo_off_lhsensor_world[0]は, rmfo_off_lhsensor[0]から計算されるわけではないのに,現在の仕様だと,入力としてrmfo_off_lhsensor[0]が入力と解釈されてしまう.
- 左手の座標変換と右手の座標変換がある場合,左手と右手の座標変換それぞれで,angle-vector+FKの計算が回ってしまう.
この解決策としては,
- plot.yamlのルールを変更する
- 現在,plot_xxxの中で,プロット用のデータ生成とプロットを同時におこなっているが,両者を分離する.
が有りえて,2が良いと思っています.
それから,plot.yamlとplot_method.pyは,一つのpythonクラスにまとめて,ロボット毎の差異はクラス継承と,メンバ変数のセット(jointの数など)で対応する方が良いのではないかと最近思っています.
Metadata
Metadata
Assignees
Labels
No labels