hsnuhayato / rtm-ros-robotics

Automatically exported from code.google.com/p/rtm-ros-robotics
0 stars 0 forks source link

hiroでリレースイッチをOFFにした時に、復帰できる方法を知りたい #178

Closed GoogleCodeExporter closed 9 years ago

GoogleCodeExporter commented 9 years ago
いまは出来なく、たまにできる時がある気がします

Original issue reported on code.google.com by ke...@jsk.imi.i.u-tokyo.ac.jp on 23 Aug 2013 at 12:48

GoogleCodeExporter commented 9 years ago
できないときの、rtcdの出力を送っていただけますでしょう�
��。

rtcdなどをkillして再起動せずに、OFFした状態からONして復帰�
��る方法、ですよね?

Original comment by noz...@jsk.imi.i.u-tokyo.ac.jp on 23 Aug 2013 at 12:58

GoogleCodeExporter commented 9 years ago
OFFー>ONできない理由の一つがおもいあたるので、

http://code.google.com/p/hrpsys-base/issues/detail?id=131

につくりました。

Original comment by noz...@jsk.imi.i.u-tokyo.ac.jp on 23 Aug 2013 at 1:07

GoogleCodeExporter commented 9 years ago
HIROでエラーリミットを越えてハードウェアがリレーを落と�
��た場合、servoOffを送る必要があります。

Original comment by emijah.s on 25 Aug 2013 at 10:50

GoogleCodeExporter commented 9 years ago
> 
HIROでエラーリミットを越えてハードウェアがリレーを落と�
��た場合、servoOffを送る必要があります。

これは、RobotHardware.cppでcheckEmergencyをチェックしながら、
エラーが大きいときにservoOffする機能のことでしょうか。
それとも、実験者が危険と判断してリレーボックスのリレ��
�スイッチを
押すことでしょうか。

後者の場合、RobotHardwareのRTCがリレーのON/OFFを常時チェッ��
�しながら、
リレーがOFFならサーボもOFFにする機能はこちらでも欲しい��
�思っていましたが、
そもそもリレーのON/OFFはソフトウェア的に取得できており
ますでしょうか
(ハードウェア的、iob的に)。

Power ON/OFF, Servo ON/OFF, Relay ON/OFFと今
3つくらい状態を表すものがあるうち、Relayだけがソフトウ
ェア的に
とれなかったと記憶しています。

Original comment by noz...@jsk.imi.i.u-tokyo.ac.jp on 26 Aug 2013 at 10:34

GoogleCodeExporter commented 9 years ago
すいません、色々と見落としていて返事をしていませんで��
�た。

今斎藤さんのアドバイス通り試してみたら、
1. サーボOn状態で緊急停止ボタンを押す
2. ボタンを戻す
3. python上から、hiro.servoOff()を送る
で復帰できました。

心配していたのは、
3の時に、別のterminalを立ち上げて、hiroにconnectし直すことが
できるのか、
でしたが、問題なく出来ました。ありがとうございました��
�

復帰できないケースが出たら、また報告します。

また、こちらのIssueは一旦Fixedにしとけば良いでしょうか?

Original comment by ke...@jsk.imi.i.u-tokyo.ac.jp on 26 Aug 2013 at 10:53

GoogleCodeExporter commented 9 years ago
> 
また、こちらのIssueは一旦Fixedにしとけば良いでしょうか?

いや,以下を解決して,非常停止ボタンを押す→ボタンを��
�す,で使い続けられるようにするのがよいです.最終的に�
��,https://code.google.com/p/hrpsys-base/issues/detail?id=131 も関係し��
�うです.

> 
後者の場合、RobotHardwareのRTCがリレーのON/OFFを常時チェッ��
�しながら、
> 
リレーがOFFならサーボもOFFにする機能はこちらでも欲しい��
�思っていましたが、
> 
そもそもリレーのON/OFFはソフトウェア的に取得できており
ますでしょうか
> (ハードウェア的、iob的に)。

わからないです.ハードウェアとしてはとれているもので��
�ょうか?iob(あるいはサーボレベル?)としてはとれてい�
��でしょうか>齋藤さん

Original comment by kei.ok...@gmail.com on 28 Aug 2013 at 4:26

GoogleCodeExporter commented 9 years ago
> 
また、こちらのIssueは一旦Fixedにしとけば良いでしょうか?
返事がおそくなりましたが,kei.okadaさんと同意見で,
もう少し経緯を把握して,安全に使えるようにしたいとこ��
�です.

> 今斎藤さんのアドバイス通り試してみたら、
> 1. サーボOn状態で緊急停止ボタンを押す
> 2. ボタンを戻す
> 3. python上から、hiro.servoOff()を送る
> で復帰できました。
これがよくわからなかったので最初の質問に戻りますが,��
�もそも復帰とは何のことですか?

緊急停止(=Relay)ボタンを戻して,servoOnできる状況に至るの��
�復帰かと思いましたが,違いますか?

自分がしっているソフトウェア構成だと,1->2をすると,
PowerがONかつサーボONの状態で,RelayもONになるので,
一気に関節指令値まで動こうとして危険な気がします.

「復帰できました」というのは,上記のようなことが起こ��
�ず,
緊急停止ボタンを戻すことができたということですか?

また,このときにはservo, 
PowerはそれぞれOnですか,OFFですか?
さらにそのとき,
> 3. python上から、hiro.servoOff()を送る
> で復帰できました.
の3の行程のservoOffは必要ですか?

あと,当初の
> いまは出来なく、たまにできる時がある気がします
症状に再現性があったりなかったりする状況は,今どうな��
�てますか?

質問事項が多くなってしまいましたが,よろしくお願いし��
�す.

Original comment by noz...@jsk.imi.i.u-tokyo.ac.jp on 28 Aug 2013 at 6:49

GoogleCodeExporter commented 9 years ago
わかりました。

>これがよくわからなかったので最初の質問に戻りますが,�
��もそも復帰とは何のことですか?
>緊急停止(=Relay)ボタンを戻して,servoOnできる状況に至るの�
��復帰かと思いましたが,違いますか?
それで合っています。

>自分がしっているソフトウェア構成だと,1->2をすると,
>PowerがONかつサーボONの状態で,RelayもONになるので,
>一気に関節指令値まで動こうとして危険な気がします.
HIROでは仕様が違うのでしょうか?
HIROはボタンを戻しても、サーボOnにはならないです。
しかし危なそうなので、今後は先に3のサーボOffをやるよう�
��します。

>「復帰できました」というのは,上記のようなことが起こ�
��ず,
>緊急停止ボタンを戻すことができたということですか?
qnxを再起動せずに、再びロボットを動かして実験できる状��
�にできることです。

>また,このときにはservo, 
PowerはそれぞれOnですか,OFFですか?
1, 2共に、servoもpowerもOffになっています。
PowerがOnの状態がよくわかりませんが、少し関節が重くなる�
��ど一応動く、でよろしいですか?
>3の行程のservoOffは必要ですか?
はい、必要です。
これが無いと、HIROの4色のランプのうち、異常を示す赤いラ
ンプが消えてくれません

>> いまは出来なく、たまにできる時がある気がします
>症状に再現性があったりなかったりする状況は,今どうな�
��てますか?
これは恐らく、
「たまにできる時=サーボが入っていない時に、ボタンを��
�って落としてしまった等の理由で緊急停止した場合」
ということでした。

できなかった時は、サーボが入っている実験中に緊急停止��
�た場合で、
この時は斎藤さんのおっしゃるように、サーボOffの信号を��
�ると、復帰できるようになりました。

また、緊急停止ボタンではなく、ぶつかってしまってロボ��
�トが落ちた場合にも、
同じように赤いランプが点灯しますが、これも同じ手順で��
�帰可能かは、

わざとぶつけて落とすはさすがに良くないと思うので、
次にもしも、ぶつけてしまう時があれば、その時に確認し��
�す。

以上です。よろしくおねがいします。

Original comment by ke...@jsk.imi.i.u-tokyo.ac.jp on 28 Aug 2013 at 7:02

GoogleCodeExporter commented 9 years ago
返信してもらった内容で,

>>これがよくわからなかったので最初の質問に戻りますが,
そもそも復帰とは何のことですか?
>>緊急停止(=Relay)ボタンを戻して,servoOnできる状況に至るの
が復帰かと思いましたが,違いますか?
>それで合っています。
ServoやRelayのフラグ的に,RelayボタンをONにして通常の実��
�再開までもってけるかというのと,

>>「復帰できました」というのは,上記のようなことが起こ
らず,
>>緊急停止ボタンを戻すことができたということですか?
>qnxを再起動せずに、再びロボットを動かして実験できる状�
��にできることです。
OSを再起動する必要があるほどの,何かしらの不具合が��
�る,

というので,「復帰」が2こでてきているのですが,
たぶんこのissueで話し合っていたのは前者だと思うので,
前者のつもりで返信します.
後者の方が何か問題があれば,また別issueをたてていただけ
ますでしょうか.

>>>自分がしっているソフトウェア構成だと,1->2をすると,
>>>PowerがONかつサーボONの状態で,RelayもONになるので,
>>>一気に関節指令値まで動こうとして危険な気がします.
> HIROでは仕様が違うのでしょうか?
> HIROはボタンを戻しても、サーボOnにはならないです。
> 
しかし危なそうなので、今後は先に3のサーボOffをやるよう�
��します。
まずいっこ,こちらの説明で訂正があります.

緊急停止(Relay)ボタンをOFFしたあとの挙動は二つで,
(a) OFFにする前と同様にServo ONでありつづける
(b) OFFにしたことで腕が垂れ下がるなどして,
 指令値と実関節角の差が大きくなるので,
 結果的にRobotHardwareの機能でServo OFFすることがある
です.

なので,緊急停止(Relay)ボタンをOFFした後で
Servoもきれていたときは,(b)の状況になると思います.
このときは,ServoがOFFなので,3のサーボOffを
手動でやる必要はなく,普通に緊急停止(Relay)ボタンを
ONしてからServo ONするだけで,復帰できると思います.
緊急停止(Relay)ボタンをOFFした後+関節が十分動かされた後�
��
rostopic echo /motor_states/servo_state
を実行すると,Falseとでてきて,ServoがOFFになっていると思�
��ます.

問題は(a)の場合で,Servo ONの状態でいつづけるので,
何らかの方法で自動でServo OFFしてくれる
仕組みが必要です.

>>また,このときにはservo, 
PowerはそれぞれOnですか,OFFですか?
>1, 2共に、servoもpowerもOffになっています。
> 
PowerがOnの状態がよくわかりませんが、少し関節が重くなる�
��ど一応動く、でよろしいですか?
Poewr ONの理解はこちらであっていると思います.
ソフトウェア的には,
rostopic echo /motor_states/power_state
でみることができますし,ROSを介さない
HIRONX独自の確認スクリプトもあると思います.

>>3の行程のservoOffは必要ですか?
>はい、必要です。
>これが無いと、HIROの4色のランプのうち、異常を示す赤い��
�ンプが消えてくれません
他のROBOTでは,本体LEDの赤ランプは
Servoの状態を表示しているらしいので,
こちらの理解ではServo がOFFになっていれば
赤ランプはきえているはずです.
赤ランプがきえてないときは,Servo ONの状態で,
このときは(a)の状態なんだと思います.

> 
できなかった時は、サーボが入っている実験中に緊急停止��
�た場合で、
> 
この時は斎藤さんのおっしゃるように、サーボOffの信号を��
�ると、復帰できるようになりました。
これも,(a)か(b)かで復帰できる,できないがあるきがしま��
�.

> 
また、緊急停止ボタンではなく、ぶつかってしまってロボ��
�トが落ちた場合にも、
> 
同じように赤いランプが点灯しますが、これも同じ手順で��
�帰可能かは、
ロボットが落ちるのは,Servo 
がOFFになるということですか?
それともOSごとかたまったりhaltしたりするということです��
�?

Original comment by noz...@jsk.imi.i.u-tokyo.ac.jp on 28 Aug 2013 at 9:19

GoogleCodeExporter commented 9 years ago
まとめると,今回関係しそうな
Servo 
ON時の緊急停止やフェイルセーフからの復帰法としては,

(1) 緊急停止(Relay)ボタンを押した
  rostopic echo /motor_states/servo_stateのTrue/Flaseで2状態があり,
  (1-1) Servo ONのままでありつづけるとき
        関節角エラーが比較的小さく
        RobotHardwareが自動でServo Offを
        してくれなかった.
        上記の(a)に相当.
        復帰方法は,
          - 手動でServo OFF指令をおくる
          - 緊急停止(Relay)ボタンをもどす
          - Servo ON指令をおくる
  (1-2) Servo OFFになってくれたとき
        関節角エラーがおおきくRobotHardwareが
        Servo OFFしてくれた.
        rtcdの出力に
           ": servo error limit over: joint = "
        などがでてくる.
        上記の(b)に相当.
        復帰方法は,
          - 緊急停止(Relay)ボタンをもどす
          - Servo ON指令をおくる
(2) 緊急停止(Relay)ボタンでなく,勝手にOffになった
  関節角エラーがおおきくRobotHardwareが
  Servo OFFしてくれた.
  rtcdの出力に
     ": servo error limit over: joint = "
  などがでてくる.
  復帰方法は,
    - Servo ON指令をおくる
  で復帰できる(はず?).

で,ソフトウェア・ハードウェア的な状態としては

- 緊急停止(Relay)ボタンがON/OFF
- Servo がON/OFF
  rostopic echo /motor_states/servo_state
- PowerがON/OFF
  rostopic echo /motor_states/power_state
の3状態がおもに重要で,
そのうちRelay以外が現状ソフトウェア的に管理できる.

このissueをFixedにしないでおいてほしい理由は
上記復帰方法の(1-1)にあります.
(1-1)は,緊急停止事由がおこった後で
Serov OFFかどうかを判断しないと
正常に復帰できないので面倒
+ミスが起こると事故になります.

> 斉藤さん
上記記述に誤りがございましたら,ご指摘いただけますと��
�いです

> kenji@jsk.imi.i.u-tokyo.ac.jpさん
実験中に,復帰方法・状況の判断方法などがあってるか
確認してもらえると助かります.
また,状態を表す用語や復帰方法などは
同様の議論や質問がよくでてくるものなので,
rtm-ros-roboticsのwikiあたりに書いておいてもらえると助かりま
す.
http://code.google.com/p/rtm-ros-robotics/wiki/SideNav?tm=6

Original comment by noz...@jsk.imi.i.u-tokyo.ac.jp on 28 Aug 2013 at 9:25

GoogleCodeExporter commented 9 years ago
多分,サブジェクトに「hiroで,」とあるので,
> 
OSを再起動する必要があるほどの,何かしらの不具合が��
�る,
という状況になっている,と理解するの最初の意図だった��
�思います.
つまり,リレーボックスの緊急停止を押したあと,それを��
�しても
異常を示すランプがついたままで,その時からの復旧方法��
�リブート
というのがユーザの理解でした.
ちゃんと追っていませんが,そこからサーボオフの命令を��
�くると
異常クリアがおこってサーボが入るようになるということ��
�んだと
思います.で,ようやく,その先の議論が野沢くんが書い��
�くれた
話に入れる,という感じなんでしょう.

Original comment by kei.ok...@gmail.com on 28 Aug 2013 at 9:31

GoogleCodeExporter commented 9 years ago
詳細に説明していただいてありがとうございます。
何となく見るべきところがわかってきました。
今後は注意深く観察して、また不具合が出たら報告してい��
�ます。

>赤ランプがきえてないときは,Servo ONの状態で,
>このときは(a)の状態なんだと思います
HIROのランプの状態は、
緑→サーボ状態。Onだと点灯、Offだと点滅
赤→異常。サーボが意図せず落ちた時は、赤だけが点滅し��
�いたと思います。
橙→一時停止(だったと思います?)。grx版コントローラ��
�は使えましたが、今はまだ使えません。
白→キャリブ済みか否か
だと思います。
斎藤さん、間違っていたら訂正お願いします。

>ロボットが落ちるのは,Servo 
がOFFになるということですか?
>それともOSごとかたまったりhaltしたりするということです�
��?
前者です。紛らわしくてごめんなさい。OSが固まったことは
無いと思います。

>OSを再起動する必要があるほどの,何かしらの不具合が�
��る,
これはほとんど、
僕の対処能力が低くて、OSを再起動するしか、復帰する方法
が分からなかった、
だと思います。

>実験中に,復帰方法・状況の判断方法などがあってるか
>確認してもらえると助かります.
はい、わかりました。

>また,状態を表す用語や復帰方法などは
>同様の議論や質問がよくでてくるものなので,
>rtm-ros-roboticsのwikiあたりに書いておいてもらえると助かり��
�す.
これは、何というページを作って、どの範囲までまとめれ��
�良いでしょうか?
「ロボットトラブル時の用語集」みたいなページで、トラ��
�ルの時に使いそうな用語だけ書けば大丈夫ですか?
お手数ですが、もう少し詳細に指示していただけると助か��
�ます。

Original comment by ke...@jsk.imi.i.u-tokyo.ac.jp on 28 Aug 2013 at 12:15

GoogleCodeExporter commented 9 years ago

Original comment by kei.ok...@gmail.com on 30 Jan 2014 at 11:02

GoogleCodeExporter commented 9 years ago
Moved to https://github.com/start-jsk/rtmros_hironx/issues/38

Original comment by iisaac.s...@gmail.com on 2 Mar 2014 at 2:02