(57)【特許請求の範囲】
【請求項１】
緊急時に機器を緊急停止する緊急停止システムにおいて、
前記機器は、上位ユニットと、前記上位ユニットとＵＳＢケーブルを介して接続された下位ユニットとを備え、
前記下位ユニットは、駆動部と、前記ＵＳＢケーブルを介したＵＳＢ通信を前記上位ユニットとの間で行って前記駆動部を制御する駆動制御部とを有しており、
前記上位ユニットに設けられ、緊急時に前記ＵＳＢケーブルの特定の接続線に緊急停止信号を出力する緊急停止部と、
前記下位ユニットに前記駆動制御部とは別に設けられ、前記緊急停止信号の入力に応答して前記駆動部への電源供給を遮断する駆動電源遮断部と
を備えることを特徴とする緊急停止システム。
【請求項２】
前記緊急停止部は、前記下位ユニットから、又は前記上位ユニットに接続された周辺機器から出力される計測情報に基づいて、前記緊急停止信号を出力することを特徴とする請求項１項に記載の緊急停止システム。
【請求項３】
前記特定の接続線は、前記ＵＳＢケーブルの電源線であり、
前記緊急停止部による前記電源線を介した電源出力のオン・オフの切り替えをもって前記緊急停止信号とすることを特徴とする請求項１または２に記載の緊急停止システム。
【請求項４】
前記上位ユニットは、
前記ＵＳＢケーブルが接続されたＵＳＢポートの電源出力のオン・オフを切り替える半導体パワースイッチを有し、
前記緊急停止部は、前記半導体パワースイッチのイネーブル入力端子に接続した信号線を制御して緊急時に前記半導体パワースイッチのオン・オフを切り替えることを特徴とする請求項３に記載の緊急停止システム。
【請求項５】
前記半導体パワースイッチのイネーブル入力端子に接続された前記信号線がＣＰＵの出力ポートに接続されていることを特徴とする請求項４に記載の緊急停止システム。
【請求項６】
前記ＵＳＢケーブルは、第１のＵＳＢケーブルと第２のＵＳＢケーブルとを含み、
前記第１のＵＳＢケーブルを介して前記上位ユニットが接続されたアップストリームポートと、前記第２のＵＳＢケーブルを介して前記下位ユニットが接続されたダウンストリームポートとを有するＵＳＢハブを備え、
前記ＵＳＢハブは、前記アップストリームポートからの給電が停止したとき、前記ダウンストリームポートの電源出力が停止する回路構成であることを特徴とする請求項３〜５のいずれか１項に記載の緊急停止システム。
【請求項７】
前記ＵＳＢケーブルは、第１のＵＳＢケーブルと第２のＵＳＢケーブルとを含み、
前記第１のＵＳＢケーブルを介して前記上位ユニットが接続されたアップストリームポートと、前記第２のＵＳＢケーブルを介して前記下位ユニットが接続されたダウンストリームポートとを有するＵＳＢハブを備え、
前記ＵＳＢハブは、特定のリクエストの受信に応答して、前記特定のリクエストで指定されるダウンストリームポートの電源出力をオフにするハブ制御部を有し、
前記緊急停止部は、前記第２のＵＳＢケーブルが接続されたダウンストリームポートを指定した前記特定のリクエストを前記第１のＵＳＢケーブルを介して前記ＵＳＢハブに送信することを特徴とする請求項３に記載の緊急停止システム。
【請求項８】
前記駆動電源遮断部は、前記電源線からの電源供給を受けてコイルが作動するリレーを含み、
前記リレーは、前記電源出力のオン・オフの切り替えによって駆動電源部と前記駆動部との回路を開閉することを特徴とする請求項３〜７のいずれか１項に記載の緊急停止システム。
【請求項９】
前記特定の接続線は、前記ＵＳＢケーブルの信号線であり、
前記緊急停止部は、前記ＵＳＢケーブルが接続されたＵＳＢポートをサスペンド状態またはディスエーブル状態として、前記信号線を一定時間以上アイドル状態に保持することをもって前記緊急停止信号とすることを特徴とする請求項１または２に記載の緊急停止システム。
【請求項１０】
前記下位ユニットは、起動時に前記上位ユニットからの緊急停止信号が緊急停止を解除する信号レベルであっても、これを無効とし、緊急停止信号の信号レベルを複数回遷移させることによって、緊急停止を解除する順序回路を有することを特徴とする請求項１または２に記載の緊急停止システム。
【請求項１１】
機器を構成する上位ユニットと下位ユニットの間にＵＳＢケーブルが接続され、前記下位ユニットに、駆動部と、前記ＵＳＢケーブルを介したＵＳＢ通信を前記上位ユニットとの間で行って前記駆動部を制御する駆動制御部が設けられ、緊急時に前記上位ユニットが前記ＵＳＢケーブルの特定の接続線に緊急停止信号を出力することにより、前記下位ユニットの駆動電源遮断部で前記駆動部への電源供給を遮断することにより前記駆動部を緊急停止させる緊急停止システムの自己診断方法において、
前記上位ユニットが前記緊急停止信号を前記特定の接続線に出力し、前記下位ユニットを緊急停止させた状態にする停止ステップと、
前記停止ステップによる緊急停止の間に、前記下位ユニットが前記駆動部を微小に動作させる微小駆動信号を出力する微小駆動信号出力ステップと、
前記下位ユニットが前記微小駆動信号の出力に応答して前記駆動部が動作したか否かを検出する検出ステップとを有し、
前記検出ステップによって前記駆動部の動作が検出されなかった場合に緊急停止システムに故障がないと診断し、検出された場合に緊急停止システムに故障があると診断することを特徴とする緊急停止システムの自己診断方法。
【請求項１２】
前記ＵＳＢ通信により前記上位ユニットが前記下位ユニットから前記検出ステップの検出結果を取得する取得ステップと、
前記検出ステップによって前記駆動部の動作が検出されなかった場合に、前記上位ユニットが緊急停止を解除する解除ステップと、
前記検出ステップによって前記駆動部の動作が検出された場合に緊急停止を維持する維持ステップと、
を有することを特徴とする請求項１１に記載の緊急停止システムの自己診断方法。
【請求項１３】
緊急時に機器を緊急停止する緊急停止方法において、
前記機器を構成する上位ユニットと下位ユニットの間にＵＳＢケーブルが接続され、前記下位ユニットに、駆動部と、前記ＵＳＢケーブルを介したＵＳＢ通信を前記上位ユニットとの間で行って前記駆動部を制御する駆動制御部が設けられており、
異常時に前記上位ユニットが前記ＵＳＢケーブルの特定の接続線に緊急停止信号を出力する緊急停止信号出力ステップと、
前記下位ユニットに前記駆動制御部とは別に設けられた駆動電源遮断部が前記緊急停止信号の入力に応答して前記駆動部への電源供給を遮断する駆動電源遮断ステップと、
を有することを特徴とする緊急停止方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、緊急停止方法、緊急停止システム及びその自己診断方法に関するものである。
【背景技術】
【０００２】
サービスロボットや産業用ロボットのような機器には、上位ユニットから下位ユニットに指令を送信して動作させる階層的な構成をとるものがある。上位ユニットは、例えば高速演算が可能なＣＰＵなどで構成され、機器全体の動作計画など高度な処理を行う汎用コンピュータである。下位ユニットは、上位ユニットからの指令に基づいて、例えばモータなどからなる駆動部を制御する専用コントローラである。上位ユニットと下位ユニットとは、通信バス例えばＵＳＢ（Universal Serial Bus）で接続されており、双方間での通信が可能になっている。
【０００３】
機器の意図しない起動を防止し、また異常動作状態にある機器を緊急停止するため、モータ駆動回路への電力供給を遮断する遮断器（例えば、リレーやＦＥＴ）がモータ駆動用の電源部とモータ駆動回路との間に挿入された下位ユニットの構成が知られている。下位ユニットを制御・管理するデバイス例えばＭＰＵ（マイクロプロセッサ）が遮断器を開閉する。機器の起動時では遮断器は開状態であり、システムの安全が確認されると閉状態にされモータ駆動回路への電力供給を許可する。多くの機械制御システムでみられるように、信頼性の観点から、遮断器は、外付けの安全装置や非常停止ボタンと直結することが望ましいが、サービスロボットのような一部の機器では、上位ユニットに接続したセンサからの計測情報や外部から無線で送られた計測情報をもとに、上位ユニットが危険を検知し、下位ユニットに緊急停止の指令をＵＳＢ通信により通知するものがある。この場合、緊急停止の指令を下位ユニットのＭＰＵが受信し、遮断器を開状態にすることによって下位ユニットの駆動部を緊急停止させ、災害の発生を回避する。
【０００４】
上位ユニットと下位ユニットとを接続する通信系に障害が生じた場合、下位ユニット側は適切な安全処置を施す必要がある。上位ユニットと下位ユニットとを接続するＵＳＢケーブルの抜けや断線時にサーボモータを安全に停止することによって、モータの異常動作を回避するＵＳＢ指令サーボアンプが知られている（特許文献１参照）。この特許文献１に記載されたＵＳＢ指令サーボアンプは、下位ユニット側でＵＳＢの電源（VBUS）を監視し、電源電圧の低下をフォトカプラで検出した場合に、ＭＰＵの処理を介さず、駆動電源部をモータ駆動回路から切り離して、下位ユニットのモータを緊急停止する。このとき、短絡制動によってモータを短時間で停止させている。
【０００５】
特許文献２には、一過性のエラーによってＵＳＢホスト機器とＵＳＢデバイス機器のＵＳＢ通信が切断された状態において、通信を回復するためにはＵＳＢケーブルの抜き差しの手間が生じるという課題に対し、押しボタンスイッチを操作するだけで、ＵＳＢ通信が回復するＵＳＢデバイス機器が記載されている。特許文献２に記載されたＵＳＢデバイス機器は、ＵＳＢホスト機器からＵＳＢケーブルを介して内部回路に電力を供給する電源線の途中に押しボタンスイッチを設けている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００５−３３２１３８号公報
【特許文献２】特許第４９１０４６８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
ところで、機能安全規格に対応した高安全ＭＰＵを除けば、ＭＰＵの特徴として、ＭＰＵ単体では自己の故障を検出することが難しいため、危険側故障率が高い。特許文献１は、ＵＳＢ指令サーボアンプにおいてＭＰＵの処理を介さずに駆動部を緊急停止する回路を開示しているが、ＵＳＢケーブルの抜けや断線に対する駆動部の緊急停止の方策であって、駆動部を暴走させるようなＭＰＵの危険側故障が生じたときの安全上の方策は示されていない。ＭＰＵの危険側故障率を低減するには、ＭＰＵの冗長化による自己診断を用いればよく、例えばＭＰＵを二重化して、互いの出力をコンパレータで比較する方法や、二つのＭＰＵ同士で互いに健全性をチェックしあう方法を用い、故障を検出したときは機器を稼働停止すればよい。しかし、ＭＰＵの冗長化は、開発コストおよび部品コストの上昇と、部品点数の増加による機器全体の信頼性の低下を招く。特にサービスロボットの事業化においては、低価格で製品を提供することが要求され、ロボットの安全性の確保と低コスト化の両立が課題となっている。
【０００８】
上位ユニットのハードウェアに汎用ＰＣが用いられる場合がある。下位ユニットのＭＰＵを冗長化することなく、上位ユニットからの緊急停止の信頼性を向上するためには、ＭＰＵの処理を介さずに、上位ユニットから下位ユニットの遮断器を直接的に開閉するための機構が必要である。そこで、例えば汎用ＰＣの拡張バス・スロットにディジタル出力機能をもつボードを増設し、そのディジタル出力ポートからの信号線を下位ユニットの遮断器に接続する構成や、上位ユニット側の別の通信ポートを利用し、上位ユニットと下位ユニットとの間をＵＳＢケーブルあるいはイーサネット（登録商標）ケーブルを追加接続し、通常の制御通信用とは別に緊急停止用の通信路を確保する構成が考えられる。
【０００９】
しかし、前者の構成では、ディジタル出力用の拡張ボードを増設するために大きな汎用ＰＣが必要になり、さらに、部材コストの増大を招いてしまう。また、後者の構成では、緊急停止用のＵＳＢケーブルあるいはイーサネット（登録商標）ケーブルと、下位ユニット側に追加の通信インタフェース回路が必要になり、部品コストと機器全体の故障率の増大を招いてしまう。
【００１０】
特許文献２の原理を緊急停止に応用して、押しボタンスイッチを操作することにより、下位ユニットの駆動部を緊急停止させる構成も考えられる。しかしながら、この構成では、「人がボタンを押す」という人の介在によるリスク低減方策であるため、ロボットの安全性が十分に確保できない。
【００１１】
本発明は、上記事情に鑑みてなされたものであり、部品コストの増大と、機器全体の故障率の増加（即ち、信頼性の低下）を最小限に抑え、緊急時に上位ユニットからの指令で下位ユニットを確実に停止させることができる緊急停止方法、緊急停止システム及びその自己診断方法を提供することを目的とする。
【課題を解決するための手段】
【００１２】
上記課題を解決するために、本発明の緊急停止システムは、機器の上位ユニットと、上位ユニットとＵＳＢケーブルを介して接続された下位ユニットとを備えており、下位ユニットは、駆動部と、ＵＳＢケーブルを介してＵＳＢ通信を上位ユニットとの間で行って駆動部を制御する駆動制御部とを有しており、上位ユニットに設けられ、緊急時にＵＳＢケーブルの特定の接続線に緊急停止信号を出力する緊急停止部と、下位ユニットに駆動制御部とは別に設けられ、緊急停止信号の入力に応答して駆動部への電源供給を遮断する駆動電源遮断部とを備えるものである。
【００１３】
また、本発明の緊急停止システムの自己診断方法は、上位ユニットが緊急停止信号を特定の接続線に出力し、下位ユニットの駆動部を緊急停止させた状態にする停止ステップと、停止ステップによる緊急停止の間に、下位ユニットが駆動部を微小に動作させる微小駆動信号を出力する微小駆動信号出力ステップと、下位ユニットが微小駆動信号の出力に応答して駆動部が動作したか否かを検出する検出ステップとを有し、検出ステップによって駆動部の動作が検出されなかった場合に緊急停止システムに故障がないと診断し、検出された場合に緊急停止システムに故障があると診断するものである。
【００１４】
また、本発明の緊急停止方法は、機器を構成する上位ユニットと下位ユニットの間にＵＳＢケーブルが接続され、下位ユニットに、駆動部と、ＵＳＢケーブルを介して予め定めたプロトコルに基づきＵＳＢ通信を上位ユニットとの間で行って駆動部を制御する駆動制御部が設けられており、異常時に上位ユニットがＵＳＢケーブルの特定の接続線に緊急停止信号を出力する緊急停止信号出力ステップと、下位ユニットに駆動制御部とは別に設けられた駆動電源遮断部が緊急停止信号の入力に応答して駆動部への電源供給を遮断する駆動電源遮断ステップと、を有するものである。
【発明の効果】
【００１５】
上位ユニットに設けた緊急停止部によって、緊急時にＵＳＢケーブルの特定の接続線に対して、緊急停止信号を出力し、下位ユニットに設けた駆動電源遮断部が、その緊急停止信号の入力に応答して駆動電源を遮断し、駆動部を停止するため、緊急停止のための特別な配線を上位ユニットと下位ユニットとの間に設けることなく、部品コストと機器の故障率の増加を最小限に抑え、信頼性の高い構成で機器を緊急停止することができる。
【図面の簡単な説明】
【００１６】
【図１】第１実施形態のサービスロボットの各ユニットの構成を示すブロック図である。
【図２】上位ユニットのＣＰＵの出力ポートからＵＳＢポートの電源出力を制御する構成での自己診断の手順を示すフローチャートである。
【図３】ＰＰビットでＵＳＢポートの電源出力を制御する構成での自己診断の手順を示すフローチャートである。
【図４】下位ユニットの起動時に駆動部の誤動作を防止するための順序回路を付加した駆動電源遮断部のブロック図である。
【図５】第２実施形態の遮断器としてリレーを用いた例を示すブロック図である。
【図６】第３実施形態のＵＳＢハブを介して各ユニットを接続した例を示すブロック図である。
【図７】第４実施形態のダウンストリームポートの電源出力のオン・オフが上位ユニットから制御可能なＵＳＢハブを介して各ユニットを接続した例を示すブロック図である。
【図８】第５実施形態の信号線を用いて緊急停止信号を下位ユニットに送る例を示すブロック図である。
【図９】第５実施形態における各部の出力の変化を示すグラフである。
【発明を実施するための形態】
【００１７】
［第１実施形態］
図１において、サービスロボット１０は、本発明の緊急停止システムが組み込まれた機器であり、上位ユニット１１と、下位ユニット１２と、上位ユニット１１と下位ユニット１２との間を接続するＵＳＢ（Universal Serial Bus）ケーブル１３とを備えている。上位ユニット１１には、複数のＵＳＢポート１４ａ、１４ｂ・・・がある。以下、ＵＳＢポート１４ａ、１４ｂ・・・を区別しない場合は、ＵＳＢポート１４と称する。
【００１８】
ＵＳＢケーブル１３は、その一端が１つのＵＳＢポート１４ａに接続され、他端が下位ユニット１２のコネクタ１５に接続されている。ＵＳＢケーブル１３は、上位ユニット１１と下位ユニット１２とを接続する接続線としての電源（ＶＢＵＳ）線１３ａ、ＧＮＤ線１３ｂ、一対の信号線（Ｄ＋、Ｄ−）１３ｃ，１３ｄを有している。
【００１９】
上位ユニット１１は、機器全体の動作を計画及び実行するものであり、様々な計測情報に基づいて、高度な計算を高速に行うことができる例えば汎用ＰＣ（パーソナルコンピュータ）が用いられている。
【００２０】
この例での下位ユニット１２は、サービスロボット１０を移動させるための車輪駆動専用ユニットになっており、下位ユニット１２全体を制御・管理するＭＰＵ１６を備えている。上位ユニット１１と下位ユニット１２とは、ＵＳＢケーブル１３を介してＵＳＢ通信を行う。ＵＳＢ通信は、ユニット間での双方向の通信が可能であり、その通信データには、下位ユニット１２への制御指令や、下位ユニット１２からの計測情報、ステータス情報が含まれている。このＵＳＢ通信による上位ユニット１１からの制御指令に基づいて、ＭＰＵ１６が下位ユニット１２の駆動部３１を制御する。
【００２１】
なお、上位ユニット１１には、サービスロボット１０の設計によっては、複数の下位ユニット１２が接続される構成も考えられる。図１では説明を簡単にするため１個の下位ユニット１２だけを接続した状態を描いてある。
【００２２】
上位ユニット１１は、ＣＰＵ１７、ハードディスクやメモリなどの記憶部１８、ＵＳＢホストコントローラ１９を含むＵＳＢ入出力部、電源装置（図示省略）などを有している。記憶部１８には、ロボット制御アプリケーション２１と、緊急停止アプリケーション２２のプログラムが書き込まれている。ロボット制御アプリケーション２１は、通常時の制御プログラムであり、緊急停止アプリケーション２２は、下位ユニット１２の駆動部３１を緊急停止させるためのプログラムである。緊急停止アプリケーション２２を、ロボット制御アプリケーション２１の一部とすることも可能であるが、緊急停止アプリケーション２２をモジュール化して、ロボット制御アプリケーション２１から分離させることによって、緊急時におけるサービスロボット１０の緊急停止の信頼性を高いものにしている。
【００２３】
ＣＰＵ１７は、ロボット制御アプリケーション２１を実行することにより制御部２３として機能する。制御部２３は、サービスロボット１０の動作を計画および実行する。具体的には自律移動の経路計画や障害物回避などの通常制御時における判断処理を行って、下位ユニット１２に対して移動に関する制御指令としての速度指令を送る。速度指令には、例えば車輪３０の車輪速度の速度指令値が含まれている。制御部２３からの速度指令は、ＵＳＢホストコントローラ１９の介在により、ＵＳＢ通信で下位ユニット１２に送られる。
【００２４】
ＣＰＵ１７は、緊急停止アプリケーション２２を実行することにより、緊急停止部２４として機能する。緊急停止部２４は、緊急時に下位ユニット１２の駆動部３１を緊急停止させるためのものであり、緊急停止させるための緊急停止信号を下位ユニット１２に送る。詳細を後述するように、この例では特定の接続線としての電源線１３ａを用いて緊急停止信号を下位ユニット１２に送る。
【００２５】
ＵＳＢホストコントローラ１９には、ＣＰＵ１７が接続されるとともに、複数のＵＳＢポート１４が接続されている。各ＵＳＢポート１４には、電源（ＶＢＵＳ）ピン、ＧＮＤピン、一対の信号（Ｄ＋、Ｄ−）ピンが設けられ、各ピンは、ＵＳＢケーブル１３の対応する電源線１３ａ、ＧＮＤ線１３ｂ、信号線１３ｃ，１３ｄに接続されている。電源線１３ａとＧＮＤ線１３ｂは、ＵＳＢケーブル１３を介してホスト側からＵＳＢ機器側に給電するための接続線である。信号線１３ｃ，１３ｄは、データ伝送のための接続線であり、信号線１３ｃ，１３ｄを用いて差動信号伝送方式による通信が行われる。
【００２６】
上位ユニット１１のＵＳＢポート１４に関し、一部の安価なコンピュータを除けば、ＵＳＢポート１４の電源ラインには、機器の省電力対応や過電流防止用に半導体パワースイッチが挿入されている。ＵＳＢホストコントローラ１９は、前記半導体パワースイッチのイネーブル入力端子に信号を与え、ＵＳＢポート１４の電源出力をオン・オフする。前記半導体パワースイッチは、図示しておらず、ＵＳＢホストコントローラ１９の一部とする。なお、下位ユニット１２は、サービスロボット１０の駆動電源部からの電源供給で動作するため、ＵＳＢケーブル１３から供給される電源は、下位ユニット１２の動作電源としては使用されない。
【００２７】
ＵＳＢホストコントローラ１９は、信号線１３ｃ，１３ｄを介し、下位ユニット１２のＵＳＢインタフェース２７とデータ伝送を行う。すなわち、ＵＳＢホストコントローラ１９は、制御部２３によって記憶部１８に格納された送信データを下位ユニット１２に送る。また、ＵＳＢホストコントローラ１９は、下位ユニット１２から受信したデータを記憶部１８に格納し、その受信データは制御部２３と緊急停止部２４に渡される。
【００２８】
なお、ＵＳＢケーブル１３を用いた電源供給、下位ユニット１２の認識の手順、ＵＳＢ通信の手順などは、周知のＵＳＢ規格に準拠したＵＳＢホスト機器とＵＳＢデバイス機器を接続した場合と同様であるので、詳細な説明は省略する。
【００２９】
上記ＵＳＢホストコントローラ１９は、文献「Enhanced Host Controller Interface Specification for Universal Serial Bus  Rev. 1.0, Intel, 2002.」（以下、文献１と称する）に記載されたＵＳＢホストコントローラの規格に準拠したものであり、ＰＯＲＴＳＣレジスタ（Port Status and Control register）と呼ばれるレジスタ１９ａを内蔵している。レジスタ１９ａは、ＵＳＢポート１４の個々に設けられており、対応するＵＳＢポート１４の動作モードを設定したり、そのステータスやログを把握するための複数のビット値を保持する。
【００３０】
レジスタ１９ａのビット１２がPort Powerビット（以下、ＰＰビットという）であり、ＵＳＢポート１４の電源出力のオン・オフを切り替える、すなわち電源出力を制御するビットになっている。ＣＰＵ１７が、ＰＰビットに「１」を書き込むことにより、ＵＳＢポート１４に電源が出力され、「０」を書き込むことにより電源出力が停止する。なお、ＵＳＢホストコントローラ１９の「Host Controller Capability Registers」にあるStructural Parameters（HCSPARAMS）レジスタのビット４に配置されたPort Power Controlビットは、ＵＳＢポート１４の電源出力の制御が可能であるかを示すビットである。Port Power Controlビットが「１」であれば、ＵＳＢポート１４の電源出力のオン・オフが可能である。
【００３１】
上記のＵＳＢホストコントローラ１９は、ＵＳＢ２．０のものであるが、ＵＳＢ３．０のものである場合には、文献「Extensible Host Controller Interface for Universal Serial Bus,” Rev. 1.1, Intel, 2013.」（以下、文献２と称する）に準拠するものとすればよい。この場合には、ＰＯＲＴＳＣレジスタのビット９がＰＰビットである。また、「Host Controller Capability Registers」にあるCapability Parameters 1(HCCPARAMS1)レジスタのビット３がPort Power Controlビットである。
【００３２】
本例では、電源出力の停止（オフ）への切り替えをもって緊急停止信号としており、緊急停止部２４は、駆動部３１を緊急停止させるときにＰＰビットに「０」を書き込む。緊急停止部２４は、計測情報に基づいて、サービスロボット１０が災害を招く危険状態にあるかを計算し、危険状態にあると判定した場合、下位ユニット１２に緊急停止信号を出力する。下位ユニットのＭＰＵ１６による制御停止の指令と並行して緊急停止信号を出力することもある。前記計測情報は、下位ユニット１２から出力されるもの、上位ユニット１１に接続された周辺機器から出力されるものがある。周辺機器としては、例えばカメラや各種センサ（図示省略）、無線通信で接続される外部の機器がある。
【００３３】
緊急停止部２４は、例えば下位ユニット１２から得た計測情報に基づき、下位ユニット１２の異常を判別し、故障が検知されたときに緊急停止信号を出力する。その計測情報としては、例えばＵＳＢ通信で下位ユニット１２から送られたエンコーダ３７による車輪３０の速度計測値がある。制御部２３が下位ユニット１２に送信した速度指令値と前記速度計測値とのずれを計算し、それが収束しない場合には、ＭＰＵ１６が車輪速度を適正に制御していなく異常があることから故障と判別される。
【００３４】
また、上位ユニット１１と下位ユニット１２との間のＵＳＢ通信が異常であることを緊急停止部２４が検知した場合も緊急停止信号を出力してもよい。
【００３５】
上記のように上位ユニット１１が下位ユニット１２から得られる計測情報に基づいて下位ユニット１２の故障を検知し、緊急停止させる構成とすることによって、ＭＰＵ１６の危険側故障によるサービスロボット１０の駆動部３１の制御不能な状況が生じても、駆動部３１の緊急停止が可能となる。
【００３６】
緊急停止部２４は、電源線１３ａへの電源出力を停止することをもって緊急停止のための緊急停止信号としている。緊急停止部２４は、緊急時には、レジスタ１９ａのＰＰビットを「１」から「０」に書き換える。これによって、ＵＳＢホストコントローラ１９は、電源線１３ａに電源出力している状態（オン）から電源出力を停止した状態（オフ）にする。この電源出力の停止が緊急停止信号として電源線１３ａを介して下位ユニット１２に伝達される。このようにＵＳＢケーブル１３内に元々含まれる電源線１３ａへの電源出力の停止を緊急停止信号とするため、緊急停止用の特別なコネクタやケーブル、通信インタフェース回路などを別途設ける必要がない。
【００３７】
緊急停止部２４は、サービスロボット１０の起動時に緊急停止システムの自己診断を実施する。この自己診断を行う際には、緊急停止部２４は、自己診断要求を下位ユニット１２に通知して、下位ユニット１２に、自己診断のための動作を行わせる。緊急停止部２４は、ＵＳＢ通信により下位ユニット１２から自己診断の結果を受信する。緊急停止部２４は、自己診断で異常なければサービスロボット１０を稼働させるが、故障がある場合には稼働を禁止するとともに、故障があることをユーザーに通知する。
【００３８】
下位ユニット１２は、コネクタ１５、ＭＰＵ１６、ＵＳＢインタフェース２７の他、車輪３０、駆動部３１、駆動電源遮断部３２などを備えている。コネクタ１５は、ＵＳＢポート１４と同様に電源ピン、ＧＮＤピン、一対の信号ピンが設けられており、これら各ピンがＵＳＢケーブル１３の対応する電源線１３ａ、ＧＮＤ線１３ｂ、信号線１３ｃ，１３ｄに接続されている。サービスロボット１０は、車輪３０の回転によって移動する。通常、車輪型の移動ロボットは、２つの駆動車輪を有するため、駆動部３１と車輪３０の数は、２つであるが、図では簡略化のため、それぞれ１つのみを図示している。
【００３９】
ＵＳＢインタフェース２７は、コネクタ１５の一対の信号ピンが接続され、またＭＰＵ１６が接続されている。このＵＳＢインタフェース２７は、信号線１３ｃ，１３ｄを介して受信したデータをＭＰＵ１６に渡す。また、ＵＳＢインタフェース２７は、ＭＰＵ１６から渡された計測情報や自己診断結果などを信号線１３ｃ，１３ｄを介して上位ユニット１１に送信する。なお、統合型マイコンのようにＭＰＵ１６にＵＳＢインタフェース２７が含まれる場合もある。
【００４０】
駆動制御部としてのＭＰＵ１６は、ＵＳＢ通信によって上位ユニット１１から受信した速度指令に基づいて駆動部３１を制御する。駆動部３１は、車輪３０を回転させるためのものであり、車輪３０に連結されたモータ３３、モータ３３を駆動するためのモータ駆動回路３４、ＦＥＴ駆動回路３５を備えている。モータ駆動回路３４は、例えば４個のＦＥＴ３４ａ、３４ｂ、３４ｃ、３４ｄからなるＨブリッジ回路となっている。
【００４１】
ＭＰＵ１６は、上位ユニット１１から速度指令に基づいた動作信号をＦＥＴ駆動回路３５に出力する。ＦＥＴ駆動回路３５は、動作信号に基づいて、モータ駆動回路３４の各ＦＥＴ３４ａ、３４ｂ、３４ｃ、３４ｄのオン・オフを制御することにより、モータ３３の回転方向、回転速度、回転力を制御する。回転速度の制御には、例えばＰＷＭ（Pulse Width Modulation：パルス幅変調）方式を用いる。電流検出回路３８は、モータ３３に流れる電流を検出する。
【００４２】
モータ３３の軸には、エンコーダ３７を取り付けてある。このエンコーダ３７は、車輪３０が一定角度回転するごとにパルスを出力する。ＭＰＵ１６は、所定時間当たりのパルス数から車輪３０の回転速度である車輪速度を計測する。ＭＰＵ１６は、エンコーダ３７を用いて計測した速度計測値が上位ユニット１１からの速度指令値となるように車輪速度のフィードバック制御を行う。なお、エンコーダ３７は、車輪３０の回転方向についても検出可能であり、ＭＰＵ１６は、速度計測値と回転方向の検出結果を上位ユニット１１に渡すことで、上位ユニット１１によるサービスロボット１０の移動量と移動方向の推定が可能になる。
【００４３】
駆動電源遮断部３２は、緊急停止信号の入力に応答して、駆動部３１を緊急停止させるためのものである。駆動電源遮断部３２は、ＭＰＵ１６とは別に設けられており、ＭＰＵ１６を介さずに緊急停止を行う。駆動電源遮断部３２は、監視ＩＣ４１、遮断器駆動回路４２、遮断器としてのＦＥＴ４３、負荷４４を有している。ＦＥＴ４３は、ここでは、Ｐ型ＭＯＳＦＥＴとする。
【００４４】
監視ＩＣ４１は、電源電圧を監視するものであり、コネクタ１５の電源ピンを介して電源線１３ａと接続されている。監視ＩＣ４１は、ＧＮＤに対する電源線１３ａの電圧を検出し、その電圧が監視電圧閾値を下回った時に、出力をＨレベルからＬレベルに転じる。これにより、緊急停止信号が入力されたことを遮断器駆動回路４２に伝達する。なお、監視電圧閾値は、ＵＳＢ規格の電源仕様を考慮し、４．４Ｖを超えない程度の電圧値とすることが望ましい。
【００４５】
監視ＩＣ４１の出力は、緊急停止信号として、遮断器駆動回路４２に入力され、遮断器駆動回路４２の出力は、開閉制御信号として、ＦＥＴ４３のゲート端子に入力される。ＦＥＴ４３は、モータ３３から動力を切り離すように、駆動電源部（図示省略）とモータ駆動回路３４との間に設けられている。すなわち、ソース端子が駆動電源部に接続され、ドレイン端子がモータ駆動回路３４に接続されている。
【００４６】
ＦＥＴ４３は、モータ駆動回路３４から電源を切り離す遮断器であり、開閉制御信号がＨレベルに転じると、駆動部３１のモータ駆動回路３４への電源供給を遮断して、モータ３３を停止させる。
【００４７】
遮断器駆動回路４２には、ＭＰＵ１６からの駆動部稼働許可信号がさらに入力される。この駆動部稼働許可信号がＬレベルであれば、遮断器駆動回路４２は、開閉制御信号をＨレベルにし、モータ駆動回路３４への電源投入を禁止する。ＭＰＵ１６は、それが下位ユニット１２内の安全に係る故障を検知したときに、駆動部稼働許可信号をＨレベルからＬレベルに転じる。これにより、ＭＰＵ１６によっても駆動部３１の緊急停止を行うことができる。遮断器駆動回路４２は、緊急停止部２４とＭＰＵ１６とのいずれが故障を検知しても駆動部３１を緊急停止するように構成された論理回路を備えている。遮断器駆動回路４２は、オープンドレイン出力のＮＡＮＤ回路であり、例えばＡＮＤゲートＩＣとＮ型ＭＯＳＦＥＴとプルアップ抵抗で構成できる。
【００４８】
下位ユニット１２における電源線１３ａから与えられる電源の電力消費が、監視ＩＣ４１のみによる場合、緊急停止部２４からの緊急停止の要求時、電源線１３ａに接続された上位ユニット１１側のコンデンサ成分により電圧の低下に時間を要し、緊急停止が遅れるおそれがある。これを回避するために負荷４４を設けている。負荷４４は、例えば抵抗であり、電源線１３ａに対する電源供給が停止された場合に、急速に電源線１３ａの電圧を降下させる。なお、負荷４４は、緊急停止の信頼性を阻害させることのない下位ユニット１２内の回路の一部であってもよい。
【００４９】
上記駆動電源遮断部３２の構成は、一例であり、この構成に限るものではない。駆動電源遮断部３２は、電源線１３ａの電源出力が停止したことを標準ロジックＩＣやコンパレータなどで検知してＦＥＴ４３を作動させたり、電源線１３ａからの電力を直接用いてＦＥＴ４３を作動させる構成とすることもできる。なお、遮断器は、Ｐ型ＭＯＳＦＥＴに限るものではない。
【００５０】
監視ＩＣ４１からの緊急停止信号は、バッファ４５を介してＭＰＵ１６にも入力される。ＭＰＵ１６は、この緊急停止信号に基づいて緊急停止部２４から緊急停止の要求があったことを検知する。なお、この例では、ＭＰＵ１６の汎用入出力端子に緊急停止信号を入力しており、その汎用入出力端子がＭＰＵ１６の内部故障により出力モードとなって、駆動電源遮断部３２に影響を与えないようにするために、バッファ４５を接続している。緊急停止信号をＭＰＵ１６の専用入力端子で受けるような場合で、駆動電源遮断部３２に影響を与えなければバッファ４５は不要である。
【００５１】
自己診断の際には、ＭＰＵ１６は、上位ユニット１１から自己診断要求の通知を受けることにより、下位ユニット１２における自己診断を行う。ＭＰＵ１６は、自己診断の結果をＵＳＢ通信により上位ユニット１１に送信するとともに、自己診断で異常なければ下位ユニット１２を稼働させるが、故障がある場合には稼働を禁止する。
【００５２】
次に上記構成の作用について説明する。サービスロボット１０を起動する場合には、例えば下位ユニット１２を起動してから、上位ユニット１１を起動する。上位ユニット１１の起動中では、下位ユニット１２との間のＵＳＢ通信が確立されておらず不通になっており、下位ユニット１２のＭＰＵ１６は、ＦＥＴ４３をオフとするためにＬレベルの駆動部稼働許可信号を出力した状態になっている。
【００５３】
上位ユニット１１の起動後、ＵＳＢホストコントローラ１９によりＵＳＢポート１４ａへのＵＳＢ機器の接続が検出される。このときには、各レジスタ１９ａのＰＰビットが「１」となっており、ＵＳＢポート１４ａに電源出力を行っている。この後に、所定の手順でＵＳＢホストコントローラ１９とＵＳＢインタフェース２７とによってＵＳＢ通信が確立されるとともに、ＵＳＢポート１４ａに下位ユニット１２が接続されていることが上位ユニット１１で認識された状態になる。
【００５４】
ＵＳＢ通信が確立すると、緊急停止部２４は、ＵＳＢ通信によって自己診断要求をＭＰＵ１６に通知し、緊急停止システムの自己診断が行われる。なお、緊急停止システムの自己診断の詳細については後述する。
【００５５】
自己診断の結果に故障がない場合には、ＭＰＵ１６は、駆動部３１の稼働を許可した状態になっており、駆動部稼働許可信号をＨレベルにしている。また、監視ＩＣ４１は、電源線１３ａからの電源出力によって監視電圧閾値以上の電圧が入力された状態であり、緊急停止信号はＨレベルとなっている。
【００５６】
緊急停止信号、駆動部稼働許可信号のいずれもがＨレベルとなっているので、遮断器駆動回路４２からはＬレベルの開閉制御信号がＦＥＴ４３に出力されている。したがって、ＦＥＴ４３は、オン状態であり、駆動電源部からの電源供給を受けて駆動部３１が駆動できる状態になっている。
【００５７】
例えばサービスロボット１０を移動させる場合には、制御部２３から車輪速度の速度指令値を含む速度指令が下位ユニット１２に送られる。この速度指令は、ＵＳＢホストコントローラ１９によってＵＳＢポート１４ａから信号線１３ｃ、１３ｄを介したＵＳＢ通信によって下位ユニット１２に送信される。速度指令は、ＵＳＢインタフェース２７で受信され、ＭＰＵ１６に送られる。
【００５８】
上記のようにして速度指令を受けると、ＭＰＵ１６は、その速度指令に含まれる速度指令値に応じた動作信号をＦＥＴ駆動回路３５に出力し、モータ３３を駆動する。このモータ３３の駆動により車輪３０が回転してサービスロボット１０が移動する。車輪３０の車輪速度は、ＭＰＵ１６がエンコーダ３７を用いて計測する。そして、速度計測値が速度指令値とずれている場合には、ＭＰＵ１６は、動作信号を修正して、速度計測値が速度指令値と同じになるように制御し、車輪３０が目標の車輪速度に達する。これにより、サービスロボット１０が制御部２３からの速度指令にしたがって移動する。
【００５９】
また、例えばサービスロボット１０の移動を停止させる場合には、制御部２３から車輪速度０の速度指令値を含む速度指令がＵＳＢ通信によりＭＰＵ１６に送られる。ＭＰＵ１６からモータ回転停止の動作信号がＦＥＴ駆動回路３５に入力され、モータ３３の回転が停止し、サービスロボット１０の移動が停止する。ここでは、緊急停止と区別して、このような停止を制御停止と呼ぶ。
【００６０】
サービスロボット１０の稼働時、ＭＰＵ１６が計測した速度計測値は、ＵＳＢ通信を介して制御部２３および緊急停止部２４に渡される。緊急停止部２４は、ロボットが危険状態にあることを検知するとモータ３３を緊急停止させる。例えば車輪速度についての速度指令値とこれに対応して得られる速度計測値とのずれが収束しない場合には、ＭＰＵ１６によるモータ３３の回転速度の制御が正しく行われていないことから、ＭＰＵ１６、ＦＥＴ駆動回路３５、モータ駆動回路３４、モータ３３、エンコーダ３７のいずれかに故障がある。
【００６１】
上記のような故障を検知すると、緊急停止部２４は、ＵＳＢホストコントローラ１９にアクセスして、故障がある下位ユニット１２が接続されているＵＳＢポート１４ａに対応するレジスタ１９ａのＰＰビットを「１」から「０」に書き換える。故障がある下位ユニット１２が異なるＵＳＢポート１４に接続されている場合は、その接続されているＵＳＢポート１４に対応するレジスタ１９ａのＰＰビットを「１」から「０」に書き換える。
【００６２】
ＰＰビットの「１」から「０」への書き換えにより、ＵＳＢホストコントローラ１９は、ＵＳＢポート１４ａの電源出力を停止する。この結果、電源線１３ａを介した下位ユニット１２への電源出力が停止する。
【００６３】
下位ユニット１２への電源出力が停止することにより、監視ＩＣ４１の入力電圧が降下する。そして、入力電圧が監視電圧閾値よりも下がった時点で、監視ＩＣ４１からの緊急停止信号がＨレベルからＬレベルに転じる。緊急停止信号がＬレベルになると、駆動部稼働許可信号がＨレベルであっても、遮断器駆動回路４２から出力される開閉制御信号がＨレベルとなる。したがって、ＦＥＴ４３がオフとなって、モータ駆動回路３４への電源供給が遮断される。これにより、サービスロボット１０が直ちに緊急停止する。
【００６４】
なお、ＦＥＴ４３がオフになったときに、サービスロボット１０が惰性により動き続けて完全な停止まで時間を要することがある。これを許容できない場合では、例えば、緊急停止信号をＦＥＴ駆動回路３５に入力し（図１の符号Ｌ１）、緊急停止のときにＭＰＵ１６からの動作信号をＦＥＴ駆動回路３５から切り離して、ＦＥＴ３４ａ、３４ｂのゲート信号がプルダウンされ、かつ、ＦＥＴ３４ｃ，３４ｄのゲート信号がプルアップされるように、予め回路を構成し、モータ３３を短絡制動すればよい。
【００６５】
これまで、ＰＰビットの機能がＵＳＢホストコントローラ１９に実装されている例、すなわち、ＵＳＢポート１４の電源出力を停止させる機能をＵＳＢホストコントローラ１９が有している例について説明した。しかし、汎用ＰＣが採用するＵＳＢホストコントローラ内蔵のチップセットのほとんどは、ＰＰビットの機能とＵＳＢポートの電源出力をオン・オフする半導体パワースイッチを制御するための出力信号とが連動していない。汎用ＰＣでは、ＵＳＢポートの電源出力は、ＵＳＢホストコントローラではなく、ＡＣＰＩ機能により制御されるため、上位ユニットのハードウェアに汎用ＰＣを用いる場合、ユーザーアプリケーションがＵＳＢポートの電源出力を容易に制御できない問題がある。
【００６６】
ＵＳＢホストコントローラにＰＰビットの機能が実装されていない場合には、例えば、ＵＳＢポートの電源出力をオン・オフさせる半導体パワースイッチのイネーブル入力端子（ＦＥＴであればゲート端子）と、上位ユニットのＣＰＵの汎用入出力ポートを信号線で接続し、その入出力ポートを出力モードに予め設定して、緊急停止のための信号を出力する構成とすることができる。この構成は、しばしば組込み用ＰＣにみられる。この場合には、ＰＯＲＴＳＣレジスタのアドレスとは異なるアドレスに、前記半導体パワースイッチをオン・オフするためのレジスタを配置し、このレジスタの値を緊急停止部が書き換えればよい。文献１、２に準拠したＵＳＢホストコントローラでは、ＰＰビットが「０」のとき、ＵＳＢ通信の機能が無効になる。しかし、上記のような構成であれば、上位ユニットは、ＵＳＢポートの電源出力を停止した状態であっても下位ユニットのＭＰＵとＵＳＢ通信が継続できるという利点がある。この例では、出力モードに設定した汎用入出力ポートを出力ポートとしているが、出力ポートは、出力専用ポートであってもよく、また、出力ポートは、ＣＰＵから制御される他のＩＣに設けられたものであってもよい。
【００６７】
ＵＳＢホストコントローラのＰＰビットの機能を用いず、上位ユニットのＣＰＵの汎用入出力ポートなどからＵＳＢポートの電源出力をオン・オフする場合、ＵＳＢポートの電源出力が停止した状態であっても、上位ユニットと下位ユニットのＵＳＢ通信が可能になる。そのため、上位ユニットは、起動時において下位ユニットのＭＰＵの健全性を確認するまではＵＳＢポートの電源出力を停止した状態とし、ＭＰＵの健全性を確認した後に緊急停止システムの自己診断を実施できるという利点がある。
【００６８】
以下、ＵＳＢポート１４の電源出力を停止した状態であっても下位ユニット１２のＭＰＵ１６とＵＳＢ通信が継続できる構成を用いた緊急停止システムの自己診断について説明する。なお、ＰＰビットを用いてＵＳＢポート１４の電源出力を制御する構成での自己診断アルゴリズムについては後述する。
【００６９】
この例では、上位ユニット１１のＣＰＵ１７は、その汎用入出力ポートを用いてＵＳＢポート１４の電源出力を制御している。自己診断では、緊急停止部２４によるＵＳＢポート１４の電源出力のオフ、すなわち緊急停止信号の入力によって、駆動電源遮断部３２が正常に動作するか否かの診断を行う。具体的には、ＵＳＢポート１４の電源出力のオフによって遮断器としてのＦＥＴ４３がオフとなってモータ駆動回路３４から電源が切り離されているか否かを判断する。
【００７０】
この例では、上位ユニット１１の電源投入時は、ＵＳＢポート１４の電源出力がオフとなる設定をＣＰＵ１７の汎用入出力ポートのデフォルト設定とする。さらに、下位ユニット１２は、後述する図４の例のように、ＦＥＴ４３のモータ駆動回路３４側の動力ラインから分岐して、分圧抵抗を介してＭＰＵ１６の入力ポートに接続した回路を持ち、ＦＥＴ４３のオン・オフ状態が検出できるものとする。この検出では、ＦＥＴ４３がオンかオフかのどちらかが分かればよいので、ＭＰＵ１６の入力ポートは、ＭＰＵ１６に内蔵のＡ／Ｄコンバータの入力に割り当てる必要はなく、ＦＥＴ４３がオンのときにＭＰＵ１６の入力信号がＨレベルで検出されるように分圧抵抗を調整すればよい。
【００７１】
上述のように緊急停止システムの自己診断は、サービスロボット１０の起動時に行われる。図２に示すように、上位ユニット１１は、電源投入後に下位ユニット１２とＵＳＢ通信を開始し（Ｓ１０）、緊急停止部２４は、そのＵＳＢ通信を介して、ＭＰＵ１６が正常であるか否かを確認する（Ｓ１１）。このときに、汎用入出力ポートは、デフォルト設定となっているから、ＵＳＢポート１４の電源出力（ＶＢＵＳ）はオフとなっている。したがって、ＵＳＢ通信は、ＵＳＢポート１４の電源出力がオフの状態で行われる。ＭＰＵ１６が正常であることを確認すると（Ｓ１１のＹＥＳ）、緊急停止部２４は、次に、ＵＳＢ通信を介して下位ユニット１２からＦＥＴ４３（遮断器）の状態を取得する（Ｓ１２）。
【００７２】
一方、下位ユニット１２では、電源投入後、ＭＰＵ１６が上記のように上位ユニット１１との間でＵＳＢ通信を行うとともに、上記分圧抵抗に接続された入力ポートの入力信号に基づき、遮断器の状態、すなわちＦＥＴ４３がオン（閉）であるかオフ（開）であるかを検出する（Ｓ１３）。そして、ＭＰＵ１６は、検出したＦＥＴ４３の状態（オンまたはオフ）を上位ユニット１１に送る。ＵＳＢポート１４の電源出力がオフになっているので、正常であればＦＥＴ４３はオフである。
【００７３】
緊急停止部２４は、例えば下位ユニット１２から取得したＦＥＴ４３の状態がオフであった場合（Ｓ１４のＹＥＳ）、下位ユニット１２に対して、ＵＳＢ通信を介して、自己診断要求を送信し（Ｓ１５）、この送信後に自己診断完了応答を待つ。自己診断要求は、ＭＰＵ１６に駆動部稼働許可信号をＨレベルにさせ、ＦＥＴ４３の状態を検出し、その結果を応答させる要求であり、ＵＳＢポート１４の電源出力がオフのときになされる。ＭＰＵ１６は、上記のようにＦＥＴ４３の状態を送出した後、そのＦＥＴ４３の状態がオフである場合に（Ｓ１６のＹＥＳ）、自己診断要求の受信待ちとなっている。そして、ＭＰＵ１６は、上位ユニット１１からの自己診断要求を受信する。
【００７４】
ＭＰＵ１６は、自己診断要求に応答して、駆動部稼働許可信号をＨレベルにし、その状態でＦＥＴ４３の状態を検出する（Ｓ１７）。ここで、駆動電源遮断部３２が正常であれば、上記のようにＵＳＢポート１４の電源出力がオフになっているので、駆動部稼働許可信号をＨレベルにしても、ＦＥＴ４３はオフを維持して、オンすることはない。ＭＰＵ１６は、駆動部稼働許可信号をＨレベルにした状態で検出したＦＥＴ４３の状態が、例えばオフの場合（Ｓ１８のＹＥＳ）は、駆動部稼働許可信号をＬレベルにし（Ｓ１９）、この後に自己診断完了応答として正常応答を上位ユニット１１に送信する。なお、ＦＥＴ４３がオンの場合には、ＭＰＵ１６は、自己診断完了応答として異常応答を上位ユニット１１に送信する。
【００７５】
緊急停止部２４は、上記のように下位ユニット１２からの自己診断完了応答を取得し（Ｓ２０）、それが正常応答であるか異常応答であるかを調べる（Ｓ２１）。例えば、取得した自己診断完了応答が正常応答である場合には（Ｓ２１のＹＥＳ）、緊急停止部２４は、ＣＰＵ１７の汎用入出力ポートの設定を変えて、ＵＳＢポート１４の電源出力（ＶＢＵＳ）をオンとする（Ｓ２２）。この後に、上位ユニット１１から下位ユニット１２に稼働開始要求を送信する（Ｓ２３）。稼働開始要求は、ＭＰＵ１６に、駆動部稼働許可信号をＨレベルにさせて駆動部３１を稼働状態にさせる要求である。
【００７６】
下位ユニット１２では、稼働開始要求を受信すると、ＭＰＵ１６は、ＦＥＴ４３の状態を検出する（Ｓ２４）。上記のようにＵＳＢポート１４の電源出力がオンとなっているが、駆動部稼働許可信号をＬレベルにしているので、正常であればＦＥＴ４３はオフである。ＭＰＵ１６は、例えばＦＥＴ４３がオフとなっていることを確認すると（Ｓ２５のＹＥＳ）、駆動部稼働許可信号をＨレベルにし、ＦＥＴ４３の状態を再び検出する（Ｓ２６）。このときには、正常であれば、駆動部稼働許可信号をＨレベルにすればＦＥＴ４３がオンとなる。したがって、ＦＥＴ４３を介して駆動電源部にモータ駆動回路３４が接続された状態になり、下位ユニット１２が稼働可能な状態になる。一方、何らかの理由により、ＦＥＴ４３がオフとなっている場合には、駆動電源部とモータ駆動回路３４とがＦＥＴ４３によって切り離された状態であり、下位ユニット１２は稼働できない状態である。
【００７７】
ＭＰＵ１６は、ＦＥＴ４３の状態に応じて下位ユニット１１が稼働可能な状態になったか否かを示す稼働開始完了応答を上位ユニット１１に送信する。すなわち、ＦＥＴ４３がオンであれば稼働可能な状態になったことを示す正常応答を稼働開始完了応答として送信し、ＦＥＴ４３がオフであれば稼働できない状態であることを示す異常応答を稼働開始完了応答として送信する。この後、ＭＰＵ１６は、ＦＥＴ４３がオンの場合（Ｓ２７のＹＥＳ）、上位ユニット１１からの要求待ちとなり、要求に応じて動作する状態になる。一方、ＦＥＴ４３がオフの場合（Ｓ２７のＮＯ）、ＭＰＵ１６は、下位ユニット１１が稼働しないようにするための故障処理（Ｓ２８）を行う。
【００７８】
一方の上位ユニット１１では、緊急停止部２４は、稼働開始完了応答を下位ユニット１２から取得し（Ｓ２９）、取得した稼働開始完了応答が正常応答か異常応答かを調べる（Ｓ３０）。例えば、稼働開始完了応答が正常応答であった場合には（Ｓ３０のＹＥＳ）、下位ユニット１２を制御するための動作に移る。一方、稼働開始完了応答が異常応答であった場合には（Ｓ３０のＮＯ）、サービスロボット１０を稼働させないようにするための故障処理を行う（Ｓ３１）。
【００７９】
上記の手順において、緊急停止部２４は、ＭＰＵ１６が異常であった場合（Ｓ１１のＮＯ）、ＵＳＢポート１４の電源出力がオフのときにＦＥＴ４３がオンとなっている場合（Ｓ１４のＮＯ）、自己診断完了応答が異常応答である場合（Ｓ２１のＮＯ）には、いずれもサービスロボット１０を稼働させないようにするための故障処理を行う（Ｓ３１）。
【００８０】
また、ＭＰＵ１６は、電源投入直後にＦＥＴ４３がオンとなっている場合（Ｓ１６のＮＯ）、自己診断中に駆動部稼働許可信号をＨレベルにしたときＦＥＴ４３がオンとなった場合（Ｓ１８のＮＯ）、自己診断完了応答の送信後に稼働開始要求信号がＬレベルのときにＦＥＴ４３がオンとなっている場合（Ｓ２５のＮＯ）には、ＭＰＵ１６は、下位ユニット１１が稼働しないようにするための故障処理（Ｓ２８）を行う。
【００８１】
上記のように自己診断を行うことによって、電源投入時のＭＰＵ１６の危険側故障によるモータ３３の誤動作を防止することができ、緊急停止部２４からの遮断器の制御、および、ＭＰＵ１６からの遮断器の制御のそれぞれに対する故障診断が可能となる。
【００８２】
なお、ＰＰビットを用いてＵＳＢポート１４の電源出力を制御する構成での自己診断を行う場合には、図３に一例を示すような自己診断アルゴリズムを用いればよい。この自己診断アルゴリズムは、ＰＰビットが「０」のとき、ＵＳＢ通信の機能が無効になることに対応している。また、この自己診断アルゴリズムでは、緊急停止部２４によるＵＳＢポート１４の電源出力のオン・オフによる緊急停止信号の確認と、緊急停止信号の入力によって駆動電源遮断部３２が正常に動作するか否かの診断を行う。駆動電源遮断部３２が正常に動作するか否かの診断は、緊急停止信号が入力されている状態でＭＰＵ１６がモータ３３を微小動作させる微小動作信号を出力し、この微小動作信号の出力中にモータ３３に電流が流れるか否かを調べる。なお、微小動作は、動作量が外部からは視認できない程度の動きになっている。また、モータ３３に電流が流れたか否かは、電流検出回路３８の検出結果に基づいて判断する。さらに、この例では、自己診断のために、モータ３３に電流が流れたか否を調べているが、図２の自己診断のアルゴリズムと同じく、分圧抵抗から得られる電圧に応じてＦＥＴ４３のオン・オフ状態を検出してもよい。
【００８３】
ＰＰビットを用いてＵＳＢポート１４の電源出力を制御する構成での自己診断アルゴリズムについても、緊急停止システムの自己診断は、サービスロボット１０の起動時に行われる。緊急停止部２４は、下位ユニット１２とのＵＳＢ通信が確立した後、自己診断を開始する。このときには、ＰＰビットが「１」に設定されていることによって、ＵＳＢ通信が可能であると同時に、ＵＳＢポート１４の電源出力がオンとなっている。
【００８４】
図３に示すように、緊急停止部２４は、下位ユニット１２のＭＰＵ１６に対してＵＳＢ通信を介して自己診断要求を通知する（Ｓ４１）。
【００８５】
次に、緊急停止部２４は、タイマ（タイマ値Ｔ１）をスタートさせる（Ｓ４２）。続いて、下位ユニット１２に緊急停止を通知するため、すなわち電源出力を停止するため、下位ユニット１２が接続されたＵＳＢポート１４ａに対応するレジスタ１９ａのＰＰビットを「０」に書き換える（Ｓ４３）。この後、緊急停止部２４は、タイマ値Ｔ１が待機時間Ｔａになるまで待機状態にする（Ｓ４４，Ｓ４５）。
【００８６】
なお、ＰＰビットを「０」に書き換えるタイミングは、後述するように自己診断要求の通知を受けることに応答してＭＰＵ１６が緊急停止信号の信号レベルを検出した後となるように予め調整される。この場合、ＭＰＵ１６からの緊急停止信号の信号レベルの検出完了の通知を受けてからＰＰビットを「０」に書き換えてもよい。待機時間Ｔａは、下位ユニット１２の自己診断の処理に要する時間に応じて決められており、その時間よりも長くされている。
【００８７】
一方、下位ユニット１２側では、ＭＰＵ１６は、自己診断要求の通知を受けると、バッファ４５を介して入力されている緊急停止信号の信号レベルを検出し、これを内部メモリに記憶する（Ｓ４６）。このときに緊急停止信号がＨレベルとなっていることを確認し、Ｈレベルではない場合には、意図しない緊急停止状態とみなし故障と判定する。
【００８８】
次にＭＰＵ１６は、タイマ（タイマ値Ｔ２）をスタートさせ、タイマ値Ｔ２が待機時間Ｔｂになるまで待機する（Ｓ４７，Ｓ４８）。この待機は、上位ユニット１１からの電源出力の停止によって緊急停止信号の信号レベルが変化する時間に応じて決められている。
【００８９】
待機時間Ｔｂの経過後、ＭＰＵ１６は、緊急停止信号の信号レベルがＬレベルに反転しているか否かを確認して、その反転の有無を内部メモリに記憶する（Ｓ４９）。正常であれば、緊急停止信号はＨレベルからＬレベルとなって反転していることになる。緊急停止信号の信号レベルが反転していない場合は（Ｓ５０のＮＯ）、ＭＰＵ１６は、緊急停止システムに故障があるものと判定し（Ｓ５１）、ＭＰＵ１６は、駆動部稼働許可信号の信号レベルをＬレベルに保持し、モータ３３の稼働を禁止する（Ｓ５２）。
【００９０】
一方、緊急停止信号の信号レベルが反転している場合は（Ｓ５０のＹＥＳ）、ＭＰＵ１６は、駆動部稼働許可信号をＨレベルにして（Ｓ５３）、自己診断を継続する。次に、ＭＰＵ１６は、微小動作信号をＦＥＴ駆動回路３５に送る（Ｓ５４）。そして、微小動作信号の出力中に電流検出回路３８でモータ３３に電流が流れたか否かを検出して内部メモリに記憶する（Ｓ５５）。
【００９１】
上位ユニット１１から監視ＩＣ４１の出力までが正常であれば緊急停止信号はＬレベルである。遮断器駆動回路４２が正常であれば、上記のように駆動部稼働許可信号がＨレベルとなっていても遮断器駆動回路４２からはＨレベルの開閉制御信号がＦＥＴ４３に出力される。そして、ＦＥＴ４３が正常であれば、ＦＥＴ４３がオフとなっており、駆動電源部からモータ駆動回路３４が切り離された状態になっている。したがって、正常な場合、微小動作信号をＦＥＴ駆動回路３５に送っても電流検出回路３８によってモータ３３に流れる電流が検出されることはない。
【００９２】
ＭＰＵ１６は、電流検出回路３８によってモータ３３に電流が流れたことが検出された場合には（Ｓ５６のＹＥＳ）、ＦＥＴ４３が意図しないオン状態であることから、緊急停止システムに故障があるものと判定し（Ｓ５１）、駆動部稼働許可信号を再びＬレベルにし、サービスロボット１０の稼働を禁止する状態に保持する（Ｓ５２）。一方、電流検出回路３８によってモータ３３に流れる電流が検出されなかった場合には（Ｓ５６のＮＯ）、遮断器駆動回路４２およびＦＥＴ４３に故障なしと判定する（Ｓ５７）。
【００９３】
なお、緊急停止の際に、ＭＰＵ１６とモータ駆動回路３４を切り離し、モータ３３に短絡制動をかけた場合、モータ３３には電流が流れない。このため、電流検出回路３８を用いてＦＥＴ４３がオンであるかオフであるかの判定ができなくなってしまう。このような場合には、緊急停止信号のＬレベルへの反転から適当な遅延をもってモータ３３に短絡制動をかけ、この遅延時間中に、駆動部稼働許可信号をＨレベルにする処理（Ｓ５３）と、微小動作信号の出力処理（Ｓ５４）と、電流検出回路３８によるモータ３３の電流検出の処理（Ｓ５５）とを行うとよい。なお、電流検出回路３８でモータ３３に流れる電流を検出する代わりに、先に説明した自己診断の場合と同様に、ＦＥＴ４３のモータ駆動回路３４側の動力ラインから分岐した分圧抵抗を用い、ＦＥＴ４３のＨブリッジ回路側の電位を検出することで故障を検出してもよい。さらに、遮断器として開閉診断機能付の遮断器を用いてもよい。
【００９４】
緊急停止部２４は、タイマ値Ｔ１が待機時間Ｔａに達したならば（Ｓ４５のＹＥＳ）、ＰＰビットを「１」に書き換えてＵＳＢポート１４ａの通信機能をイネーブルにし（Ｓ５８）、下位ユニット１２とのＵＳＢ通信の確立後、緊急停止システムの自己診断結果を下位ユニット１２より取得する（Ｓ５９）。
【００９５】
ＰＰビットを「１」にセットしたことで電源出力が再開されると、下位ユニット１２では監視ＩＣ４１の入力電圧が高くなるため、緊急停止信号がＨレベルになる。駆動部稼働許可信号はＨレベルとなっているから、遮断器駆動回路４２から開閉制御信号がＬレベルとなってＦＥＴ４３がオンとなる。これにより、モータ３３を駆動するための電源供給が行われる。ＭＰＵ１６は、緊急停止信号がＨレベルに変化したことにより（Ｓ６１のＹＥＳ）、自己診断が完了したことを検知し、上位ユニット１１からの速度指令を受けてモータ３３を稼働させることができる（Ｓ６２）。
【００９６】
取得した自己診断結果が故障なし（Ｓ６０のＮＯ）の場合には、緊急停止部２４が制御部２３に稼働を許可する。一方、取得した自己診断結果が故障ありの場合には（Ｓ６０のＹＥＳ）、緊急停止部２４は、例えば緊急停止システムに故障があることをユーザーに通知するなどし、サービスロボット１０を稼働させないようにするための故障処理を行う（Ｓ６３）。なお、ＵＳＢ通信が確立できない、自己診断要求の通知に対する正常な応答が得られない場合においても故障ありと判断すればよい。
【００９７】
ところで、ＭＰＵ１６の電源投入時に、ＭＰＵ１６のプログラムに反して、駆動部稼働許可信号をＨレベルにし、かつ、モータ３３を誤動作させてしまうような故障モードがあると仮定する。この場合、自己診断実施前に上位ユニット１１がＵＳＢ通信を確立する際に、ＵＳＢポート１４の電源出力をオンにするため、モータ３３が誤動作し危険である。この故障モードへの対策としては、ＰＰビットのデフォルト値を「０」とし、緊急停止部２４の起動後、緊急停止部２４がＰＰビットを「１」にセットしたときに、上位ユニット１１に接続されたセンサ（例えば加速度センサ）によってサービスロボット１０の意図しない動作を検知すれば、ＰＰビットを即座に「０」にリセットすることで電源投入時のサービスロボット１０の誤動作の継続を防止できる。しかしながら、これを実現するためには、緊急停止部２４が起動するまでＰＰビットを「０」に維持するように、上位ユニット１１のＢＩＯＳをプログラムするか、あるいは、下位ユニット１２への電源投入前に上位ユニット１１を電源投入して起動させる必要があり、さらに、上位ユニット１１には、サービスロボット１０の意図しない動作を検知するセンサが必要になることから、開発者によっては別の方法を望むことが想定される。
【００９８】
別の方法として、下位ユニット１２の起動時にＵＳＢポート１４の電源出力がオンであってもＦＥＴ４３をオフに維持するように、駆動電源遮断部３２に順序回路を設ける構成を挙げることができる。図４に具体的な駆動電源遮断部３２の構成を示す。監視ＩＣ４１の出力信号は、インバータ４６の入力端子とＡＮＤゲート４７の入力端子とに接続される。インバータ４６は、入力信号のレベルを反転して出力し、その信号は、順序回路としてのＤ型フリップフロップ４８のＣＫ入力端子に接続される。
【００９９】
Ｄ型フリップフロップ４８は、下位ユニット１２の起動後は常にＱ出力端子からＬレベルの信号を出力するが、ＣＫ入力端子への入力信号がＬレベルからＨレベルに切り替わったとき、すなわちＵＳＢポート１４の電源出力がオンからオフに変化したときに、Ｑ出力端子からＨレベルの信号を出力し、それ以降、ｎＣＬＲ入力端子に接続されている下位ユニット１２のシステムリセット信号がアクティブ（Ｌレベル）にならない限り、Ｑ出力端子はＨレベルを維持する。システムリセット信号は、下位ユニット１２に設けたリセット信号発生回路（図示省略）から出力され、電源投入時にシステムリセット信号をアクティブにする。Ｄ型フリップフロップ４８のＱ出力端子からの信号は、ＡＮＤゲート４７のもう一方の入力端子に接続されており、ＡＮＤゲート４７の出力端子は、遮断器駆動回路４２の入力端子に接続されている。なお、符号４９ａ、４９ｂは、ＦＥＴ４３のオン・オフ状態を検出するための分圧抵抗であり、ＦＥＴ４３のモータ駆動回路３４側の動力ラインの電圧を分圧してＭＰＵ１６の入力ポートに入力する。
【０１００】
駆動電源遮断部３２を上記のような回路構成にすることによって、ＰＰビットのデフォルト値が「１」であって、下位ユニット１２の起動時にＵＳＢポート１４の電源出力がオンになっていても、ＦＥＴ４３はオフのままであり、電源投入時におけるＭＰＵ１６の危険故障によるモータ３３の誤動作を防止できる。緊急停止部２４が、ＭＰＵ１６とのＵＳＢ通信を介して、ＭＰＵ１６が正常であることを確認した後、ＰＰビットを一旦「０」にして、「１」に戻すシーケンスを踏むことで、ＦＥＴ４３がオンになり、モータ駆動回路３４に電源が供給される。なお、Ｄ型フリップフロップ４８は、現に広く普及している汎用ロジックＩＣであっても構わない。
【０１０１】
以上のように、起動時にＵＳＢポート１４の電源出力がオンの状態になっており、上位ユニット１１から下位ユニット１２に対する緊急停止信号が緊急停止を解除するＨレベルであっても、そのＤ型フリップフロップ４８がＱ出力端子からＬレベルの信号を出力することによって、ＡＮＤゲート４７から遮断器駆動回路４２への信号がＬレベルになって、緊急停止信号は、その緊急停止を解除する信号レベルが無効とされる。そして、緊急停止信号の信号レベルを複数回遷移させることによって、すなわちＵＳＢポート１４の電源出力をオンからオフに遷移させ、さらにオフからオンへ遷移させることによって、Ｄ型フリップフロップ４８のＱ出力端子がＨレベルになり、ＡＮＤゲート４７から遮断器駆動回路４２への信号がＨレベルになって、その緊急停止を解除する信号レベルが有効化される。
【０１０２】
なお、ＵＳＢポートの電源出力停止時に駆動部を通常稼働し、電源出力時に駆動部を緊急停止する緊急停止システムとしてもよいが、安全性の観点からは好ましくない。
【０１０３】
［第２実施形態］
第２実施形態は、遮断器として機械式リレーを用いたものである。なお、下位ユニットの駆動電源遮断部の構成が異なる他は、第１実施形態と同じであり、同じ構成部材には同一の符号を付して、その詳細な説明を省略する。
【０１０４】
図５に示すように、この例における下位ユニット１２の駆動電源遮断部５０は、遮断器としてのリレー５１と、フォトＭＯＳリレー５２とを有している。リレー５１は、一次側のコイル５１ａに通電することによって励磁し、その磁力で二次側の接点５１ｂの接触・非接触を切り替える機械式リレーであり、駆動電源部と駆動部３１との回路を開閉する。このリレー５１としては、コイル５１ａに通電有りのときにオンとなり、通電無しのときにオフとなるａ接点（ノーマルオープン）が用いられている。
【０１０５】
コイル５１ａには、フォトＭＯＳリレー５２を介してコネクタ１５の電源ピンが接続されている。接点５１ｂは、駆動電源部からモータ駆動回路３４を切り離すように接続されている。これにより、通常時は、上位ユニット１１からの電源線１３ａを介した電源供給によりコイル５１ａが通電されてリレー５１がオンとなってモータ３３の駆動を許可する。一方、緊急停止信号である電源供給の停止により、リレー５１がオフしてモータ駆動回路３４への電源供給を遮断し、サービスロボット１０が緊急停止する。
【０１０６】
リレー５１は、オン・オフするための作動電力が電源線１３ａから供給されるので、電源線１３ａからの電源供給の有無で緊急停止が直接的に制御される。したがって、駆動電源遮断部５０の構成を簡素化することができる。機械式リレーを使用する条件下においては、この簡素化により緊急停止システムの信頼性が向上する。なお、機械式のリレー５１に限るものではなく、電源線１３ａからの電源を利用してスイッチ動作を行う遮断器を用いることができる。
【０１０７】
フォトＭＯＳリレー５２は、リレー５１のオン・オフをＭＰＵ１６から制御するために設けている。フォトＭＯＳリレー５２は、周知のように、一次側のＬＥＤ５２ａに通電することにより発生する光を利用して、二次側のＭＯＳＦＥＴからなるスイッチ５２ｂのオン・オフを制御するものである。ＬＥＤ５２ａは、ＭＰＵ１６に接続されて通電が制御され、スイッチ５２ｂは、コネクタ１５の電源ピンとコイル５１ａとの間の回路を開閉するように接続されている。これにより、上位ユニット１１の緊急停止部２４とＭＰＵ１６のいずれからでもリレー５１をオフにして、緊急停止させることができる。なお、フォトＭＯＳリレー５２に代えて、ＭＰＵ１６の制御でオン・オフ可能な他のスイッチ手段を用いてもよい。
【０１０８】
なお、この第２実施形態、後述する第３実施形態に示す構成では、第１実施形態と同じ手順で自己診断を行うことができる。
【０１０９】
［第３実施形態］
第３実施形態は、上位ユニットと下位ユニットとの間にＵＳＢハブを介在させたものである。なお、以下に説明する他は、第１実施形態と同様であり、同じ構成部材には同一の符号を付して、その詳細な説明を省略する。また、下位ユニットについては、第２実施形態と同じ構成とすることもできる。
【０１１０】
図６に示す例は、上位ユニット１１と下位ユニット１２がＵＳＢハブ５５を介して接続されている。ＵＳＢハブ５５は、１つのＵＳＢポートに複数のＵＳＢデバイス機器を接続するためのものであり、１つのアップストリームポート５５ａと、複数のダウンストリームポート５５ｂとを有している。
【０１１１】
上位ユニット１１は、ＵＳＢポート１４ａに第１ＵＳＢケーブル５６の一端が接続され、この第１ＵＳＢケーブル５６の他端がＵＳＢハブ５５のアップストリームポート５５ａに接続されている。下位ユニット１２は、コネクタ１５に第２ＵＳＢケーブル５７の一端が接続され、この第２ＵＳＢケーブル５７の他端がＵＳＢハブ５５の１つのダウンストリームポート５５ｂに接続されている。
【０１１２】
ＵＳＢハブ５５は、アップストリームポート５５ａからの給電が停止したとき、ダウンストリームポート５５ｂの電源出力が停止する回路構成をもつ。例えば、アップストリームポート５５ａのみから供給される電源をダウンストリームポート５５ｂに分配して出力するタイプのハブである。
【０１１３】
この例によれば、上位ユニット１１から第１ＵＳＢケーブル５６の電源線５６ａを介して電源がアップストリームポート５５ａに伝達される。そして、その電源がダウンストリームポート５５ｂから第２ＵＳＢケーブル５７の電源線５７ａを介して下位ユニット１２に伝達されるので、上位ユニット１１から下位ユニット１２の駆動部を緊急停止することができる。
【０１１４】
［第４実施形態］
第４実施形態は、第３実施形態と同様に、上位ユニットと下位ユニットとの間にＵＳＢハブを介在させたものであるが、上位ユニットからの特定のリクエストの受信に応答して、任意のダウンストリームポートの電源出力を制御するものである。なお、以下に説明する他は、第３実施形態と同様であり、同じ構成部材には同一の符号を付して、その詳細な説明を省略する。また、下位ユニットについては、第２実施形態と同じ構成とすることもできる。
【０１１５】
図７に示すように、ＵＳＢハブ６１は、１つのアップストリームポート６２と、複数のダウンストリームポート６３ａ、６３ｂ・・・を有している。以下、ダウンストリームポート６３ａ、６３ｂ・・・を区別しない場合には、ダウンストリームポート６３と称する。上位ユニット１１は、第１ＵＳＢケーブル５６を介してアップストリームポート６２に接続され、下位ユニット１２は、第２ＵＳＢケーブル５７を介して１つの例えばダウンストリームポート６３ａに接続されている。
【０１１６】
ＵＳＢハブ６１は、ハブ制御部６４を備えている。ハブ制御部６４は、ＵＳＢ通信によってアップストリームポート６２を介して入力される特定のリクエストの受信に応答し、半導体パワースイッチ６５のオン・オフを制御することで、ダウンストリームポート６３からの電源出力をオン・オフする機能を有している。このようなＵＳＢハブ６１の機能は、ＵＳＢの仕様書で規定されており、ＵＳＢハブ６１についてもその仕様に準じたものを用いている。
【０１１７】
特定のリクエストとしては、いくつかの機能のうちの「PORT_POWER」を指定したClear Port Featureリクエストがある。このClear Port Featureリクエストでは、ダウンストリームポート６３のポート番号の指定により、電源供給を停止するダウンストリームポート６３を指定することができる。なお、電源供給を行う場合には、「PORT_POWER」を指定したSet Port Featureリクエストを用いればよい。また、特定のリクエストとしては、ダウンストリームポート６３の電源出力をオン・オフできるものであれば、上記のものに限らない。
【０１１８】
緊急停止部２４は、下位ユニット１２の駆動部３１を緊急停止させる際には、ＵＳＢホストコントローラ１９を介して、停止すべき下位ユニット１２が接続されたダウンストリームポート６３ａに対し「PORT_POWER」を指定したClear Port FeatureリクエストをＵＳＢ通信でＵＳＢハブ６１に送信する。Clear Port Featureリクエストは、ハブ制御部６４によって受信される。これにより、指定されたダウンストリームポート６３ａの電源出力が停止する。そして、これにともなってダウンストリームポート６３ａに接続された第２ＵＳＢケーブル５７の電源線５７ａを介した電源出力が停止し、下位ユニット１２の駆動部３１が緊急停止する。自己診断においても、Clear Port FeatureリクエストとSet Port Featureを用いて電源線５７ａを介した電源出力をオン・オフすればよい。
【０１１９】
この構成によれば、ＵＳＢハブ６１に対して特定のリクエストを送信すればよいので、ＵＳＢポートの電源出力のオン・オフ機能が無いハードウェアをもつ汎用ＰＣなどを上位ユニット１１とすることができる。なお、汎用ＰＣには、ＵＳＢポートの個数を増やすため、マザーボード上に、上記のようなＵＳＢハブの機能を有するＩＣを搭載しているものがある。このような汎用ＰＣから成る上位ユニットを用いる場合についても、第４実施形態と同様の方法で緊急停止が可能であり、本発明の範囲内である。
【０１２０】
［第５実施形態］
第５実施形態は、特定の接続線として信号線を用い、ＵＳＢ通信を休止状態にして、信号線に一定の電圧レベルの信号を一定時間以上出力することをもって緊急停止信号とするものである。なお、以下に説明する他は、第１実施形態と同様であり、同じ構成部材には同一の符号を付して、その詳細な説明を省略する。また、下位ユニットについては、第２実施形態と同じ構成とすることもできる。
【０１２１】
以下の説明では、まず上位ユニットと下位ユニットとがＵＳＢ規格におけるＦｕｌｌ−Ｓｐｅｅｄモードで接続されている場合について説明する。この場合、信号線上のＤ＋およびＤ−信号のＨレベルは、約３.３Ｖであり、Ｌレベルは０Ｖである。また、ホスト（上位ユニット）側からＵＳＢ通信を休止状態とした場合には、プルアップ抵抗によってＤ＋信号はＨレベルになる。
【０１２２】
図８に示すように、下位ユニット１２の駆動電源遮断部７０は、バッファＩＣ７１、パルス検出回路７２、監視ＩＣ４１、遮断器駆動回路４２、及びＦＥＴ４３を有している。信号線１３ｃは、コネクタ１５を介してＵＳＢインタフェース２７に接続されるとともに、コネクタ１５、バッファＩＣ７１を介してパルス検出回路７２に接続されている。これにより、信号線１３ｃのＤ＋信号がパルス検出回路７２に入力される。なお、コンデンサ７４は、差動信号（Ｄ＋信号とＤ−信号）の平衡を保つために接続したものであるが、バッファＩＣ７１の接続の影響がＤ＋信号の信号品質を劣化させない場合は不要である。
【０１２３】
パルス検出回路７２は、コンデンサ７２ａと抵抗７２ｂとが直列に接続されたＣＲ回路と、Ｄ＋信号がバッファＩＣ７１を介してゲート端子に入力されたＦＥＴ７２ｃとを有している。コンデンサ７２ａと抵抗７２ｂとのＣＲ回路は、その両端に所定の電源電圧Ｖ１、この例では３．３Ｖが印加されている。ＦＥＴ７２ｃは、ソース端子、ドレイン端子がコンデンサ７２ａの両端に各々接続されている。ＦＥＴ７２ｃは、Ｐ型のものであり、Ｄ＋信号がＨレベルのときにオフとなってコンデンサ７２ａが充電され、Ｄ＋信号がＬレベルのときにオンとなってコンデンサ７２ａの端子間をショートしてコンデンサ７２ａを放電する。
【０１２４】
パルス検出回路７２のコンデンサ７２ａと抵抗７２ｂとの接続点の電圧を監視ＩＣ４１が検出する。Ｄ＋信号の信号レベル、すなわち、バッファＩＣ７１の出力電圧レベルが、Ｈレベルを時間Ｔｓ以上継続することにより、監視ＩＣ４１の監視電圧閾値よりもパルス検出回路７２の出力電圧が低くなるように、コンデンサ７２ａと抵抗７２ｂの定数により調整されている。時間Ｔｓは、後述する時間Ｔｐよりも十分に長い時間に設定されている。時間Ｔｐは１ｍ秒であり、時間Ｔｓは、１ｍ秒より十分長い例えば１０ｍ秒に設定される。なお、パルス検出回路７２は、コンデンサ７２ａ、抵抗７２ｂを用いたアナログ回路であるが、同様な機能をディジタル回路で実現してもよい。
【０１２５】
監視ＩＣ４１は、パルス検出回路７２からの出力電圧が監視電圧閾値以上であるときに、遮断器駆動回路４２への緊急停止信号をＨレベルとし、監視電圧閾値未満となったときに緊急停止信号をＬレベルとする。遮断器駆動回路４２、ＦＥＴ４３については第１実施形態と同様である。監視電圧閾値は、電源電圧Ｖ１よりも十分低い電圧である。
【０１２６】
緊急停止部２４は、下位ユニット１２の駆動部を緊急停止させるときには、ＵＳＢの信号線１３ｃ，１３ｄをアイドル状態に時間Ｔｓ以上保持する。これにより、信号線１３ｃに出力するＤ＋信号が時間Ｔｓ以上Ｈレベルになる。ＵＳＢホストコントローラ１９が文献１の仕様書に基づくものであれば、ＰＯＲＴＳＣレジスタの「Port Enable/Disableビット」を「０」に設定、または「Suspendビット」を「１」に設定して、ＵＳＢポート１４ａをディスエーブルまたはサスペンド状態とすることにより、Ｄ＋信号を継続的にＨレベルにすることができる。したがって、緊急停止部２４は、上記いずれかのレジスタビットを書き換え、時間Ｔｓ以上の間、ＵＳＢポート１４ａを「Disable」または「Suspend」状態にセットすればよい。
【０１２７】
ＵＳＢでは、ＵＳＢポート１４ａがイネーブル状態（ＵＳＢ通信が確立している状態）のとき、ホスト側（上位ユニット１１側）から周期的に信号線１３ｃ，１３ｄにパルス（ＳＯＦパケット）を送信している。すなわち、ホスト側から送信するデータがない場合においても、図９に示すように、信号線１３ｃのＤ＋信号は、Ｈレベルから時間Ｔｐ毎にＬレベル（グランドレベル）に変化し、再びＨレベルに戻る。時間Ｔｐは、１ｍ秒である。データをＵＳＢ通信で送受信している時は、Ｄ＋信号はデータに応じてＨレベルとＬレベルの遷移を繰り返す。
【０１２８】
上記のようにデータの送受信の有無にかかわらず、ＵＳＢポート１４ａがイネーブル状態であるときには、長くとも時間Ｔｐ以内に、下位ユニット１２に入力されるＤ＋信号がＨレベルからＬレベルに変化する。Ｄ＋信号がＬレベルとなると、ＦＥＴ７２ｃがオンとなる。このため短絡されたコンデンサ７２ａが放電する。ＦＥＴ７２ｃがオンとなっている間では、電源電圧Ｖ１がパルス検出回路７２からの出力電圧となる。
【０１２９】
Ｄ＋信号がＬレベルからＨレベルに転じると、ＦＥＴ７２ｃがオフとなる。このＦＥＴ７２ｃのオフにより、コンデンサ７２ａが徐々に充電されて充電電圧が上昇する。これにともない、パルス検出回路７２からの出力電圧が徐々に降下する。Ｄ＋信号は、Ｈレベルに転じた時点から長くとも時間Ｔｐ（＜Ｔｓ）が経過した時点でＬレベルに転じて、再びＦＥＴ７２ｃがオンとなる。したがって、監視電圧閾値よりも低くなる前にパルス検出回路７２の出力電圧が電源電圧Ｖ１となる。このように、ＵＳＢポートがイネーブル状態であれば、パルス検出回路７２の出力電圧は、監視電圧閾値よりも低くなることがない。したがって、監視ＩＣ４１からの緊急停止信号はＨレベルを維持し、モータ駆動回路３４への電源供給が遮断されない。
【０１３０】
一方、下位ユニット１２の駆動部３１を緊急停止させる場合には、緊急停止部２４は、例えばＰＯＲＴＳＣレジスタの「Suspendビット」を「１」に設定し、これを時間Ｔｓ以上維持する。この設定により、Ｄ＋信号がＨレベルに維持される。この場合、ＦＥＴ７２ｃのオフが継続するため、時間Ｔｓが経過した時点でパルス検出回路７２の出力電圧が監視電圧閾値を下回る。これにより、監視ＩＣ４１からの緊急停止信号がＬレベルに転じ、ＦＥＴ４３がオフとなるため駆動電力の供給が遮断されて、下位ユニット１２の駆動部３１が緊急停止する。
【０１３１】
上記では、Ｆｕｌｌ−Ｓｐｅｅｄモードで接続されている場合について説明したが、Ｈｉｇｈ−Ｓｐｅｅｄモードで接続されている場合にも同様に利用できる。Ｈｉｇｈ−Ｓｐｅｅｄモードでは、Ｄ＋信号の信号振幅電圧は約４００ｍＶであり、ＵＳＢ２．０の規格上の最大信号電圧値は４４０ｍＶである。バッファＩＣ７１として、電源入力が３．３Ｖの標準ＣＭＯＳロジックＩＣを用いた場合、バッファＩＣ７１がＬレベルとして認識する入力電圧の上限値は、Ｄ＋信号の最大信号電圧値の４４０ｍＶよりも高い。したがって、Ｈｉｇｈ−Ｓｐｅｅｄモード時は、ＵＳＢポート１４ａがイネーブル状態であれば、Ｄ＋信号は常にバッファＩＣ７１ではＬレベルと認識される。したがって、この場合では、ＦＥＴ７２ｃが継続的にオンとなるので、パルス検出回路７２の出力電圧は監視電圧閾値よりも高い電源電圧Ｖ１であり、緊急停止信号はＨレベルを維持しＦＥＴ４３がオンを維持する。したがって、Ｈｉｇｈ−Ｓｐｅｅｄモードの高速伝送によって、バッファＩＣ７１とＦＥＴ７２ｃの高周波スイッチングによる電流消費が生じることもない。
【０１３２】
一方、ＰＯＲＴＳＣレジスタの「Port Enable/Disableビット」を「０」に設定、または「Suspendビット」を「１」に設定して、ＵＳＢの信号線１３ｃ，１３ｄをアイドル状態とすれば、信号線１３ｃがプルアップされるため、Ｄ＋信号の信号レベルが３．３Ｖとなる。したがって、バッファＩＣ７１はＤ＋信号をＨレベルと認識する。以降は、Ｆｕｌｌ−Ｓｐｅｅｄモードと同じ手順により、ＦＥＴ４３がオフとされて駆動部３１への電源供給が遮断される。
【０１３３】
第５実施形態では、Ｈｉｇｈ−Ｓｐｅｅｄモードとの互換性を考慮し、Ｄ＋の信号線１３ｃを用いて、緊急停止信号を検出している。ＵＳＢインタフェース２７がＦｕｌｌ−Ｓｐｅｅｄモード専用のデバイスであれば、フェイルセーフの観点から、Ｄ−の信号線１３ｄを用いて、緊急停止信号を検出してもよい。その場合、バッファＩＣ７１は、入力信号を反転して出力するインバータＩＣに置き換えられる。
【０１３４】
下位ユニット１２を構成する回路は、それらの一部を一つのＩＣにまとめてもよい。例えば、バッファＩＣ７１、パルス検出回路７２とＵＳＢインタフェース２７を一つのＩＣとしてもよい。
【０１３５】
上記各実施形態では、サービスロボットについて説明したが、本発明はこれに限られない。例えば、機器は産業ロボットなどでもよく、ロボット以外ものであってもよい。
【符号の説明】
【０１３６】
１０  サービスロボット
１１  上位ユニット
１２  下位ユニット
２４  緊急停止部
１３  ＵＳＢケーブル
１３ａ  電源線
１３ｃ，１３ｄ  信号線
１６  ＭＰＵ
１９  ＵＳＢホストコントローラ
３１  駆動部
３２，５０，７０  駆動電源遮断部
３３  モータ
５１  リレー
５５，６１  ＵＳＢハブ
【図１】
0006668094.tif 000002
【図２】
0006668094.tif 000003
【図３】
0006668094.tif 000004
【図４】
0006668094.tif 000005
【図５】
0006668094.tif 000006
【図６】
0006668094.tif 000007
【図７】
0006668094.tif 000008
【図８】
0006668094.tif 000009
【図９】
0006668094.tif 000010