Skip to content
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

SoftErrorLimitterの機能についての質問・ご相談 #220

Closed
snozawa opened this issue May 8, 2014 · 6 comments
Closed

SoftErrorLimitterの機能についての質問・ご相談 #220

snozawa opened this issue May 8, 2014 · 6 comments

Comments

@snozawa
Copy link
Contributor

snozawa commented May 8, 2014

現在、ThermoEstimator, ThermoLimitterを研究室内のいくつかのロボットで
動かそうとしており、SoftErrorLimitterとも機能が似ている部分もあり、
質問やご相談させていただければと思います。

SoftErrorLimitterはStableRTCですぐには変更できないと思いますので、
長期的に変更できるとして、どうするかという点でかんがえたいと思っています。

  • ビープ音を鳴らす機能、エラーを判定する機能をわける
    現状ThermoLimitter, SoftErrorLimitterの両方に
    ビープ音を鳴らす機能があるので、たとえば
    • SoftErrorLimitterは温度?など、音をならしたい物理量の入力データポートをもつ
    • SoftErrorLimitterで音は鳴らす
      とするのはいかがでしょうか。

また、SoftErrorLimitterの機能に関して何点か質問がございます。
トルクでビープ音を鳴らすプログラムが研究室内で元々あって、
のちにSoftErrorLimitterはそれを整理してhrpsys-baseに追加して
いただいたものだと思いますが、その時点でいくつかの機能がことなるようになっています。
なぜ異なるようにしたのかについて、理解したいと思っています。
できれば、元々あった機能に戻したい点がいくつかあります

  • ビープ音の音階について
    SofteRrrLimitterでは、音階が一定になっております。
    エラー量が少ないと音階の低いビープ音、エラー量が多いと音階の
    高いビープ音といったように、 エラー量の増分に応じてビープ音の高さが
    変わると情報量が多く運用上非常に有効だと思っております。
    SoftErrorLimitterが音階一定なのはなぜでしょうか
  • position error limitについて
    SoftErrorLimitterの中には、エラーだけでなくそもそもulimit, llimitの制限をかけていて、
    それにもビープ音がでるようになっていますが、これはなぜでしょうか。
    この可動域制限にビープ音がなると、他のビープ音と混同してしまうため、
    ないほうが良いと考えております。
    また可動域制限自体、今SequencePlayerがよんでい
    ImpedanceController/JointPathEx.cpp
    のなかでも行ってますし、今後様々なRTCでかけることだと思うので、
    SoftErrorLimitterで音がなるメリットはあまりないような気もしておりますが、
    いかがでしょうか。
  • エラーの閾値の段階について
    SoftErrorLimitterはエラーのリミットをかける際にビープ音を鳴らしていると思います。
    一口に”リミット”といっても、瞬時リミットをさすのか、定格をさすのか、など
    色々と議論がでてくるところですし、今それを決めるのは難しいと思いますが、
    内部のプログラムでは、
    • リミットがかかるより手前でも、音がなる
    • リミットがかかると、なり方が変わる
      といったように、瞬時リミットをかけたい値だけでなく、
      それより低いところでも音がなっており、負荷の傾向がわかり警鐘がなるように
      なっておりました。
      SoftErrorLimitterもリミット前に音を鳴らすと運用上安全性が高まると
      思うのですが、いかがでしょうか。
@k-okada
Copy link
Contributor

k-okada commented May 8, 2014

基本的には
https://github.com/fkanehiro/hrpsys-base/blob/master/rtc/RobotHardware/robot.cpp#L483
でエラー過大の時にサーボオフになってしまうので,その手前でソフトウェア的に対応しましょう.というコンセプトのRTCだと思います.

  • ビープ音は各RTCが出すのでいいのではないでしょうか.どの範囲の音程を使うかは名前空間みたいなものだから,各RTCの名前が被らないのと同じように上手く調整すばいいんだと思います.
  • ビープ音の音階については要望がなかったからなので必要であれば追加しましょう.ただ,ThermoEstimator, ThermoLimitterあたりがあれば音階は必要なくあると思います.
    -可動域制限オーバのビープ音についてはそういう要望が@nakaokatあたりからあった記憶があります.何かあると便利な場面があるんでしょう.だいたいこういうのは無かったら無かったで文句が出るので,付けておいていいとおもいます.区別が必要ならそういう音を鳴らせばいいと思います.
  • ThermoEstimator, ThermoLimitter はトルクの積分値でリミットをかけようとしているもので,

一口に”リミット”といっても、瞬時リミットをさすのか、定格をさすのか、など 色々と議論がでてくるところですし、今それを決めるのは難しいと思いますが、

についてある程度一定のバックグラウンドをもって対応しようとしているもので,これがあれば,リミットがかかるより手前でも、音がなるリミットがかかると、なり方が変わるも対応できるのではないでしょうか.

@tnaka
Copy link

tnaka commented May 8, 2014

僕のことでしょうか?>可動域制限オーバのビープ

可動域制限に関しては、起動時に可動域を超えている場合に戻る方向にのみ動くようにしたい、という話をした覚えがあります。 #133 で議論していたところですね。ビープについてもこのパッチで加えられているようです。

@snozawa
Copy link
Contributor Author

snozawa commented May 9, 2014

ビープ音は各RTCが出すのでいいのではないでしょうか.どの範囲の音程を使うかは名前空間みたいなものだから,各RTCの名前が被らないのと同じように上手く調整すばいいんだと思います.

そもそものこの話題の始まりは、オフラインでご相談させていただいた
 "負荷を検知してビープを鳴らす"という点で同じ機能をもつRTCを何個もつくると破綻しますよね
ということだったと思います。
今でもThermoEstimator+ThermoLimitterとSoftErrorLimitterが
かぶっているのですが、これでいいのでしょうか。

そもそもの、
 負荷のチェック関係なくRTCが音を鳴らすということ自体は、
 音階やリズムでかえて重複しないようにしつつ、別RTCで行ってもいいことにする
というのには賛成です。
(CollisionDetectorで動作停止しても、ならしてほしいと思っています)
#215

ただ,ThermoEstimator, ThermoLimitterあたりがあれば音階は必要なくあると思います.

なぜ音階が必要なくなるでしょうか。
これら2つのRTCで行っているのもMaxと現在値とのチェックをおこなっていると言う点では同じなので、
結局音階は必要であることにかわりはありません。

ビープ音の音階については要望がなかったからなので必要であれば追加しましょう.

および

についてある程度一定のバックグラウンドをもって対応しようとしているもので,これがあれば,リミットがかかるより手前でも、音がなる,リミットがかかると、なり方が変わるも対応できるのではないでしょうか.

については、ありがとうございます。
今度音程をかえるのと、リミットでなり方がかわる、という点について、PRを作ってみます。

-可動域制限オーバのビープ音についてはそういう要望が@nakaokatあたりからあった記憶があります.何かあると便利な場面があるんでしょう.だいたいこういうのは無かったら無かったで文句が出るので,付けておいていいとおもいます.区別が必要ならそういう音を鳴らせばいいと思います.

こちらも、上記の音がかぶらないようにする方針でPRをつくてみますが、

可動域制限に関しては、起動時に可動域を超えている場合に戻る方向にのみ動くようにしたい、という話をした覚えがあります。 #133 で議論していたところですね。ビープについてもこのパッチで加えられているようです。

@nakaokat さんの要望事項とも違うようですし、具体的にどういう状況で
本当になかったらなかったで文句がでるのか、に関してもちょっとあまり理解できてないので、
もう少し説明いただけるとありがたかったです。

@k-okada
Copy link
Contributor

k-okada commented May 9, 2014

2014-05-10 0:18 GMT+09:00 snozawa [email protected]:

ビープ音は各RTCが出すのでいいのではないでしょうか.どの範囲の音程を使うかは名前空間みたいなものだから,各RTCの名前が被らないのと同じように上手く調整すばいいんだと思います.

そもそものこの話題の始まりは、オフラインでご相談させていただいた
"負荷を検知してビープを鳴らす"という点で同じ機能をもつRTCを何個もつくると破綻しますよね
ということだったと思います。
今でもThermoEstimator+ThermoLimitterとSoftErrorLimitterが
かぶっているのですが、これでいいのでしょうか。

SoftErrorLimitterはRobotHardwareの手前で掛るものの.staticなエラー情報のみで動いているもの.
電源装置の電流リミットみたいなもの,という扱いでいいと思います.

ThermoEstimator+ThermoLimitterも同様に手前でかかって,時間的な情報も含めて
安全性を見ていくというということで本丸としていいと思います.

そもそもの、
負荷のチェック関係なくRTCが音を鳴らすということ自体は、
音階やリズムでかえて重複しないようにしつつ、別RTCで行ってもいいことにする
というのには賛成です。
(CollisionDetectorで動作停止しても、ならしてほしいと思っています)
#215 #215

ただ,ThermoEstimator, ThermoLimitterあたりがあれば音階は必要なくあると思います.

なぜ音階が必要なくなるでしょうか。
これら2つのRTCで行っているのもMaxと現在値とのチェックをおこなっていると言う点では同じなので、
結局音階は必要であることにかわりはありません。

上のようにチャントthermo*が動けば,SoftErrorlimiterはRobotHardwareのソフト版なので,
いままでRobotHardwareでサーボがオフになる代わりに音がなるぐらいに考えてもらえればと
思います.

ビープ音の音階については要望がなかったからなので必要であれば追加しましょう.

および

についてある程度一定のバックグラウンドをもって対応しようとしているもので,これがあれば,リミットがかかるより手前でも、音がなる,リミットがかかると、なり方が変わるも対応できるのではないでしょうか.

については、ありがとうございます。
今度音程をかえるのと、リミットでなり方がかわる、という点について、PRを作ってみます。

-可動域制限オーバのビープ音についてはそういう要望が@nakaokat https://github.com/nakaokat
あたりからあった記憶があります.何かあると便利な場面があるんでしょう.だいたいこういうのは無かったら無かったで文句が出るので,付けておいていいとおもいます.区別が必要ならそういう音を鳴らせばいいと思います.

こちらも、上記の音がかぶらないようにする方針でPRをつくてみますが、

可動域制限に関しては、起動時に可動域を超えている場合に戻る方向にのみ動くようにしたい、という話をした覚えがあります。 #133https://github.com/fkanehiro/hrpsys-base/issues/133で議論していたところですね。ビープについてもこのパッチで加えられているようです。

@nakaokat https://github.com/nakaokat さんの要望事項とも違うようですし、具体的にどういう状況で
本当になかったらなかったで文句がでるのか、に関してもちょっとあまり理解できてないので、
もう少し説明いただけるとありがたかったです。

テレオペで動かしている時(当時は遠隔でなくPS3で動かしているレベルで),リミットに当たっていれば,
そこから外れてから,タスクを遂行するというような事をいしていたと思います.つまりリミットに当たって
いることがわからないと,そのままもっと動ことするけど,動かないなあみたいな状況だった気がします.


Reply to this email directly or view it on GitHubhttps://github.com//issues/220#issuecomment-42677715
.

@snozawa
Copy link
Contributor Author

snozawa commented May 9, 2014

SoftErrorLimitterはRobotHardwareの手前で掛るものの.staticなエラー情報のみで動いているもの.
電源装置の電流リミットみたいなもの,という扱いでいいと思います.
ThermoEstimator+ThermoLimitterも同様に手前でかかって,時間的な情報も含めて
安全性を見ていくというということで本丸としていいと思います.

なるほど、了解です。
確かにこの切り分けですと、SoftErrorLimitterがStableRTCになっていても破綻せず開発ができそうですね。

テレオペで動かしている時(当時は遠隔でなくPS3で動かしているレベルで),リミットに当たっていれば, そこから外れてから,タスクを遂行するというような事をいしていたと思います.つまりリミットに当たって いること> がわからないと,そのままもっと動ことするけど,動かないなあみたいな状況だった気がします.

こちらもなんとなくわかってきました。
説明ありがとうございます。

@snozawa
Copy link
Contributor Author

snozawa commented Jul 11, 2014

関連するPRがでており、切り分け等諸所ご相談できたので、一旦closeします。
ありがとうございました。

@snozawa snozawa closed this as completed Jul 11, 2014
snozawa added a commit to snozawa/hrpsys-base that referenced this issue Nov 11, 2014
… confusing alert sound. This commit is discussed in fkanehiro#220
snozawa added a commit to snozawa/hrpsys-base that referenced this issue Dec 8, 2014
… confusing alert sound. This commit is discussed in fkanehiro#220
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants