-
Notifications
You must be signed in to change notification settings - Fork 88
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
センサ(とくに力センサ)がセンサごとに別データポートになっている点に関して #1088
Comments
データポートを流れるデータの粒度をある程度細かくすることで、あるRTCがどのようなデータを入力としてとっているかをわかりやすくする、ということが目的となります。 |
後学のためいただけると幸いなのですが、ちなみにこちらは
はい、通信オーバーヘッドに加えて、センサ名にロボット固有情報が必要になる、というのが個人的に大きかったです。 |
右足と左足で分けたい、というのはあまりないと思います。右手と左手はあるかも。手と足は少なくとも分けたい、でもRobotHardwareは一般的にしておきたい、と考えると選択肢は力センサ全部まとめるか、バラバラにするかしかなかったのだと思います。 |
なるほど、わかりました。 |
究極的にはRobotStateをポートから出す、というのもあると思いますが、どうでしょうか。 |
RobotStateを出すと、ロボットごとに型変わるようにならないでしょうか?あるいは強くvrmlとリンクして可変配列の1ー6個の要素はこれで、という解釈をこなう必要があると思います。
ROS bridge とhrosysの通信が問題になっているということだと思うので
1 サンプルコードでネットワーク越しのオーバーヘッドを計測する
2 ROS ridge を体内の計算機で実行する。計算機だけの開発環境を作ってくれたら試します
3 1と関連してudp通信が版が使えるのか作るのかわからないけど、試してみる
4 通信の周期を見直す。例えば力センサのフィードバックを外部でやりことはなく、あってもeusで監視するだけなので、10hzとかでいいはず
2016年12月26日(月) 11:47 Fumio KANEHIRO <[email protected]>:
… 究極的にはRobotStateをポートから出す、というのもあると思いますが、どうでしょうか。
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
<#1088 (comment)>,
or mute the thread
<https://github.com/notifications/unsubscribe-auth/AAeG3Ih7DDfySkr6EtbULzdD6tjKMFd9ks5rLyrDgaJpZM4LSg8C>
.
|
わかりにくくなってすいませんが、本issueは
の2点について質問となっており(https://github.com/fkanehiro/hrpsys-base/issues/1088#issue-196831839、https://github.com/fkanehiro/hrpsys-base/issues/1088#issuecomment-269113278)、 現状上がっている案として、(以下力センサの例)
が挙がっています。 (通信に関しては別途issueがあるので一旦命名則とモデルへの依存などに関して議論させていただきますと)
で、個人的にはBの方が良いのかなと考えています。
となる気がします。 また、@k-okadaさんの
に関してですが、(僕の解釈によりますと)ロボット毎にRobotState型は多分同じなのだと思っています。 また、センサの有る無し、もしくは個数の違いは、配列の長さで吸収することになると思います。 |
通信オーバーヘッドに関してです。
周期はどうやって決めたら良いのでしょうか。 ちなみに、現状4の方法を実現しようとしたら、push_policyをperiodicにして、10Hzとかにするのを |
ところで、focesensorの配列として出したとして、それを足の力センサの情報を使いたいRTCが受け取った場合、何番目が右脚で何番目が左脚、というのはどうやって知るのでしょうか? |
loadFromModelLoaderから取得したロボットインスタンスの情報から、 さらに具体例で申し上げますと、こちらで使っているプログラムでいうと、例えば力センサの接続を行うのに
の3つのプログラムがあります。 次に、接続設定プログラムなのですが、これは現状ModelLoaderの情報を取得できてなかったり、記法にも制限があったりで、rtmlaunch自体は 一方、
という構成に変更すると、送信、受信RTC既にModelLoaderにアクセスできているので、今までどおりにModelLoaderを使い、力センサポート名を使ってる箇所をsensorIdを使うように書き換えるくらいで、送信受信を行うことができます。 次に、接続設定プログラムは、 概して、 |
となると右足の力センサのsensorIdは0である、というルールを作ることになりませんでしょうか。そうだとしたら右足の力センサの名称はrfsensorである、というルールを作るのと同じにはならないでしょうか。 |
これは ModelLoaderが [送信側RTC] 、[受信側RTC] の両方で使えてるので、この2者にとっては |
sensor名にせよ、sensorIdにせよ、右足に対応するのがどれか、というのを知るには、右足のsensor名はこれ、またはsensorIdはこれ、というのを都度教えるか、ルールを決める必要があるんではないでしょうか。 |
はい、そうだと思います。 例えば、現状は また、 |
そうすると通信のオーバヘッドの件をひとまず置いておけば、(A)も(B)もさして違いがなく、(B)のメリットはオーバーヘッドの軽減ということでしょうか。 |
はい、送信側RTC、接続設定プログラム、受信側RTCの3レイヤのうち、送信・受信側RTCにとっての 例えば、各レイヤのどこがどういう理由でModelLoaderにアクセスして、 (A)の
(B)の
したがって、(B)の場合は(A)と異なり、接続設定プログラム(ポート同士を接続するものなど)
はい、これも考えられますが、 |
すみません、話が噛み合っていないのか色々分からないのですが、
(A)でも(B)でもどこかにロボット依存の情報が残り、(A)の場合は接続設定のプログラムで(B)の場合はRTCだと思っています。 |
@fkanehiro さん
RobotHardwareなどで、センサ(とくに力センサ)がセンサごとに別データポートになっていると思いますが、
これは何か理由がございますでしょうか。
現状は
rfsensor
,lhsensor
のような名前で、6次元force/momentのTimedDoubleSeqがセンサの数の分定義されていると思います。これを、
forcesensor
といった名前で、6 x センサ数(HRP2なら24次元)の一個のポートにするとした場合に、不都合があったりしますでしょうか。後者のように考えている理由は、
rfsensor
といった名前はVRMLの定義依存であり、かつロボット依存になります。なので、ポートの接続などでロボット情報を知って、rfsensor
という名前をしる必要があります。forcesensor
にすると、ロボットによらず、同じ名前で接続設定がかけます。センサのないロボットだと長さが0としておいたり、長さ0の場合write()しないといったことで実質的な通信が行われないようにもできますの2点くらいをかんがえてます。
前者のオーバーヘッドはおいておくにしても、後者のロボット依存の部分が個人的には以前から気になって降りました。
データポートに燗するプログラムとして
の2つがあるとします。
後者のRTCでは、だいたいの場合ModelLoaderへのアクセスが容易なので、
forcesensor
の6 x センサ数の配列が、どこがrfsensor
に相当して、といったものを復元するのは容易に思います。
一方、前者に関して、具体的には、(downstream側の問題になりますが)ROSBridgeプログラムと制御RTCとの
ポートを接続するものを、rosのlaunch形式で記述できるようにしていますが、
https://github.com/start-jsk/rtmros_common/blob/master/hrpsys_ros_bridge/launch/hrpsys_ros_bridge.launch
ここにロボットのセンサ名依存の部分がかけず、別途pythonスクリプトで接続しているといったことをしています。
https://github.com/start-jsk/rtmros_common/blob/master/hrpsys_ros_bridge/scripts/sensor_ros_bridge_connect.py
launch形式のほうも、pythonなのでセンサ名を取得するようにすればよさげですが、
launch形式の記述と、ModelLoaderにアクセスして、、、の処理と総合してはるかに煩雑になり、現状行ってません。
The text was updated successfully, but these errors were encountered: