-
Notifications
You must be signed in to change notification settings - Fork 52
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
sequence<sequence<xxx>>のidlを変換できない #792
Comments
◉ Kei Okada On Wed, Aug 19, 2015 at 2:55 AM, Eisoku Kuroiwa [email protected]
|
ご返信ありがとうございます.
現状は float64[3] pos
float64[4] rot
string leg で, OpenHRP_AutoBalancerService_Footstep[] fs
int32 overwrite_fs_idx
---
bool operation_return となっていまして,欲しいコードは
OpenHRP_AutoBalancerService_Footstep[] fs という新しいメッセージと
OpenHRP_AutoBalancerService_FootstepNodes[] fns
int32 overwrite_fs_idx
---
bool operation_return という新しいサービスです.
こちらに変更しても同じエラーになります. |
自己解決した気がします. idlに書かれているstructがmsgになって,idlに書かれている関数の引数がsrvになるのだという理解に達し, struct FootstepNodes
{
sequence<Footstep> fs;
}; というように新たにstructを加えればいいのだという事が分かりました. typedef sequence< sequence<Footstep> > FootstepNodesSequence;
boolean setFootStepNodes(in FootstepNodesSequence fns, in long overwrite_fs_idx); ではなくて, struct XXXXX
{
sequence<Footstep> fs;
};
typedef sequence<XXXXX> FootstepNodesSequence;
boolean setFootStepNodes(in FootstepNodesSequence fns, in long overwrite_fs_idx); のように一回structをかませることで,現状の変換コードで idl から所望の srv / msg が作られるようになりました. ありがとうございました. |
… sequence <xxx> >" because idl2srv of hrpsys_ros_bridge cannot convert it. see start-jsk/rtmros_common#792
すごい,すごすぎるデバッグ力で尊敬するけど,だめではないかい. ◉ Kei Okada On Wed, Aug 19, 2015 at 6:27 PM, Eisoku Kuroiwa [email protected]
|
struct yyy
{
sequence<xxx> hoge;
};
typedef sequence<yyy> fuga; のように一回 typedef sequence< sequence<xxx> > fuga; ができて然るべきだ,ということでしょうか? |
そうですね。 |
ダメじゃないけどダサいよね. ◉ Kei Okada 2015-08-20 14:23 GMT+09:00 Shunichi Nozawa [email protected]:
|
分かりました.ひとまずreopenしておきます. |
のようにfootstepのlistを与えていた部分を
のようにfootstepのlistのlistを与えられるようにしたくて,hrpsys-baseのidlの
のところに
https://github.com/eisoku9618/hrpsys-base/blob/add-interface-of-set-footstep/idl/AutoBalancerService.idl#L50-L51
を追加してみたのですが,hrpsys_ros_bridgeをビルドするときに,
rtmbuild_genidl
の中で呼ばれる rtmbuild_init の中で呼ばれる_rtmbuild_genbridge_initの中で呼ばれるここ で実行されているidl2srv.pyのここで落ちます.エラーは以下になります.
https://gist.githubusercontent.com/eisoku9618/f7290d77283c2f72464d/raw/29d67d55478c80e61f5386e81ce5691cf0d6822d/a.txt
The text was updated successfully, but these errors were encountered: