(57)【特許請求の範囲】
【請求項１】
関節部を介して回動自在に支持されたリンクと該リンクを回動させる動力を付与するアクチュエータとを有し、前記リンクの原点位置を設定する原点位置設定装置であって、
前記リンクの回動に連動して少なくとも該リンクと同じ回動範囲を、該リンクと共に又は該リンクに対して相対的に回動し、前記リンクの原点位置の基準となる回転角度位置に設けられた第１の被検出部、及び該第１の被検出部よりも周方向に大きな幅に設定され、前記リンクの一方の回動方向の回動限界位置に設けられた第２の被検出部を少なくとも有する複数の被検出部と、回動する前記複数の被検出部を検出する位置検出センサと、前記アクチュエータを制御して、前記リンクを所定の回動パターンで回動させる回動制御手段と、前記リンクを前記所定の回動パターンで回動させたときの前記位置検出センサの検出結果に基づき前記原点位置を設定する原点位置設定手段と、を備え、
前記位置検出センサを、前記リンクが支持される側の部材及び前記リンク又は該リンクと共に回動する部位のいずれか一方に設け、
前記位置検出センサが第１の被検出部を検出した後第２の被検出部を検出する向きを順方向とし、前記位置検出センサが第２の被検出部を検出した後第１の被検出部を検出する向きを逆方向とし、
前記被検出部を、前記リンクが支持される側の部材及び前記リンク若しくは該リンクと共に回動する部位のいずれか他方に設けると共に、第１の被検出部及び第２の被検出部が前記位置検出センサによって検出される形状に設け、
前記所定の回動パターンは、前記リンクを初期位置から前記順方向及び前記逆方向に回動させたときの複数の被検出部の検出範囲の寸法の違いに基づいて仮の原点位置を検出する回動パターンであり、
前記リンクの初期位置において、第１の被検出部又は第２の被検出部を前記位置検出センサが検出したか否かを判別する第１のステップと、
第１のステップにおいて、第１の被検出部又は第２の被検出部が検出された場合に、前記リンクを前記順方向へ所定の角度だけ回動させて、前記位置検出センサによって検出された被検出部が、第１の被検出部か、第２の被検出部かを判別する第２のステップと、
第２のステップにおいて、第１の被検出部が検出された場合は、前記アクチュエータを制御して、前記リンクを前記逆方向へ所定の角度だけ回動させた後、前記位置検出センサによって第１の被検出部を検出するまで前記リンクを前記順方向へ回転させ、又は、第２のステップにおいて第２の被検出部が検出された場合は、前記アクチュエータを制御して前記リンクを前記逆方向へと回動させ、前記位置検出センサによって第１の被検出部が検出された位置から前記リンクを前記逆方向へ所定の角度だけ回動させた後、前記位置検出センサによって第１の被検出部を検出するまで前記リンクを前記順方向へ回動させる第３のステップと、
前記位置検出センサによって第１の被検出部が検出されたときに、該検出位置に基づき仮の原点位置を設定する第４のステップとを含み、
前記原点位置設定手段は、第４のステップにおいて検出された仮の原点位置に基づき、前記原点位置を設定することを特徴とする原点位置設定装置。
【請求項２】
前記位置検出センサは、指向性を有する検出波を射出すると共に該射出した検出波に対する前記被検出部の干渉状態に基づき該被検出部を検出する非接触式のセンサであることを特徴とする請求項１に記載の原点位置設定装置。
【請求項３】
前記位置検出センサは、検出部への前記被検出部の接触によって該被検出部を検出する接触式のセンサであることを特徴とする請求項１に記載の原点位置設定装置。
【請求項４】
関節部を介して回動自在に支持されたリンクと、該リンクを回動させる動力を付与するアクチュエータと、前記リンクの回動に連動して少なくとも該リンクと同じ回動範囲を、該リンクと共に又は該リンクに対して相対的に回動し、検出範囲を異ならせた複数の被検出部と、前記リンクの原点位置の基準となる回転角度位置に設けられた第１の被検出部、及び該第１の被検出部よりも大きな幅に設定され、前記リンクの一方の回動方向の回動限界位置に設けられた第２の被検出部を検出する位置検出センサとを備えた前記リンクの原点位置を設定する原点位置設定方法であって、
前記位置検出センサが第１の被検出部を検出した後第２の被検出部を検出する向きを順方向とし、前記位置検出センサが第２の被検出部を検出した後第１の被検出部を検出する向きを逆方向とし、
前記リンクの初期位置において、第１の被検出部又は第２の被検出部を前記位置検出センサが検出したか否かを判別する第１のステップと、
第１のステップにおいて、第１の被検出部又は第２の被検出部が検出された場合に、前記リンクを前記順方向へ所定の角度だけ回動させて、前記位置検出センサによって検出された被検出部が、第１の被検出部か、第２の被検出部かを判別する第２のステップと、
第２のステップにおいて、第１の被検出部が検出された場合は、前記アクチュエータを制御して、前記リンクを前記逆方向へ所定の角度だけ回動させた後、前記位置検出センサによって第１の被検出部を検出するまで前記リンクを前記順方向へ回転させ、又は、第２のステップにおいて第２の被検出部が検出された場合は、前記アクチュエータを制御して前記リンクを前記逆方向へと回動させ、前記位置検出センサによって第１の被検出部が検出された位置から前記リンクを前記逆方向へ所定の角度だけ回動させた後、前記位置検出センサによって第１の被検出部を検出するまで前記リンクを前記順方向へ回動させる第３のステップと、
前記位置検出センサによって第１の被検出部が検出されたときに、該検出位置に基づき仮の原点位置を設定する第４のステップとを含み、第４のステップにおいて検出された仮の原点位置に基づき、前記原点位置を設定することを特徴とする原点位置設定方法。
【請求項５】
関節部を介して回動自在に支持されたリンクと、該リンクを回動させる動力を付与するアクチュエータと、請求項１〜３のいずれかに記載の原点位置設定装置と、を備えることを特徴とするリンク機構。
【請求項６】
基体と、前記基体に対して関節を介して支持された複数の脚部と、各脚部に回転自在に設けられた車輪と、前記各脚部及び前記車輪を駆動する動力を付与するアクチュエータと、前記アクチュエータを制御する制御手段とを備え、環境に応じて前記脚部及び前記車輪の少なくとも一方を駆動することにより移動する脚車輪型ロボットであって、
前記脚部は、複数のリンクを有すると共に、該複数のリンクが関節を介して回動自在に連結された構成を有し、
請求項１〜３のいずれかに記載の原点位置設定装置を備え、前記原点位置設定装置によって、前記脚部を構成する各リンクの原点位置を設定することを特徴とする脚車輪型ロボット。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、関節部を介して回動自在に支持されたリンクの原点位置を設定する原点位置設定装置、原点位置設定方法及び脚車輪型ロボットに関する。
【背景技術】
【０００２】
例えば、多関節ロボットに用いるモータは、通常、所望のトルクを得るために減速機を取り付けて使用する。そのため、関節軸（減速機出力軸）が１回転する間に、モータの軸は複数回回転することになり、モータに取り付けられた角度検出器の出力値をそのまま関節軸の出力角度として使用できないことが多い。従って、多関節ロボットの脚部などを構成する各リンクを正常に駆動するためには、最初に、各リンクの原点位置を定める必要がある。
【０００３】
原点位置を決定する方法としては、例えば、特許文献１に記載のアーム位置検出方法などがある。
特許文献１のアーム位置検出方法は、アブソリュートエンコーダをアームに取付け、モータにインクリメンタルエンコーダを取付け、アームの原点位置からインクリメンタルエンコーダのゼロ点までの角度と、アームの原点位置からアブソリュートエンコーダのゼロ点までのオフセット値と、各アームが原点からモータが１回転毎にとるアームの角度とそれに対応して変化するアブソリュートエンコーダの出力の積分累積値とをテーブルにした対応テーブルを備え、該対応テーブルを用いて、制御系座標とアーム座標とを一致させアームの原点位置を決定するものである。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開昭６４−３１２０９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、特許文献１の従来技術では、アーム位置の検出に比較的高価なアブソリュートエンコーダを用いるためコストが増加するという問題がある。
また、アブソリュートエンコーダを用いるために、パラレル出力型では配線が多くなってしまう。また、これを省配線化するためにシリアル出力するタイプでは、絶対角データのデコード、通信インターフェース等が必要となるため、装置構成が複雑になるという問題がある。
【０００６】
本発明は、このような従来の技術の有する未解決の課題に着目してなされたものであり、低コストで、かつ複雑な構成を要しない原点位置設定装置、原点位置設定方法、リンク機構及び脚車輪型ロボットを提供することを目的としている。
【課題を解決するための手段】
【０００７】
上記課題を解決するための本発明の請求項１に係る原点位置設定装置は、関節部を介して回動自在に支持されたリンクと該リンクを回動させる動力を付与するアクチュエータとを有し、前記リンクの原点位置を設定する原点位置設定装置であって、
前記リンクの回動に連動して少なくとも該リンクと同じ回動範囲を、該リンクと共に又は該リンクに対して相対的に回動し、前記リンクの原点位置の基準となる回転角度位置に設けられた第１の被検出部、及び該第１の被検出部よりも周方向に大きな幅に設定され、前記リンクの一方の回動方向の回動限界位置に設けられた第２の被検出部を少なくとも有する複数の被検出部と、回動する前記複数の被検出部を検出する位置検出センサと、前記アクチュエータを制御して、前記リンクを所定の回動パターンで回動させる回動制御手段と、前記リンクを前記所定の回動パターンで回動させたときの前記位置検出センサの検出結果に基づき前記原点位置を設定する原点位置設定手段と、を備え、
前記位置検出センサを、前記リンクが支持される側の部材及び前記リンク又は該リンクと共に回動する部位のいずれか一方に設け、
前記位置検出センサが第１の被検出部を検出した後第２の被検出部を検出する向きを順方向とし、前記位置検出センサが第２の被検出部を検出した後第１の被検出部を検出する向きを逆方向とし、
前記被検出部を、前記リンクが支持される側の部材及び前記リンク若しくは該リンクと共に回動する部位のいずれか他方に設けると共に、第１の被検出部及び第２の被検出部が前記位置検出センサによって検出される形状に設け、
前記所定の回動パターンは、前記リンクを初期位置から前記順方向及び前記逆方向に回動させたときの複数の被検出部の検出範囲の寸法の違いに基づいて仮の原点位置を検出する回動パターンであり、
前記リンクの初期位置において、第１の被検出部又は第２の被検出部を前記位置検出センサが検出したか否かを判別する第１のステップと、
第１のステップにおいて、第１の被検出部又は第２の被検出部が検出された場合に、前記リンクを前記順方向へ所定の角度だけ回動させて、前記位置検出センサによって検出された被検出部が、第１の被検出部か、第２の被検出部かを判別する第２のステップと、
第２のステップにおいて、第１の被検出部が検出された場合は、前記アクチュエータを制御して、前記リンクを前記逆方向へ所定の角度だけ回動させた後、前記位置検出センサによって第１の被検出部を検出するまで前記リンクを前記順方向へ回転させ、又は、第２のステップにおいて第２の被検出部が検出された場合は、前記アクチュエータを制御して前記リンクを前記逆方向へと回動させ、前記位置検出センサによって第１の被検出部が検出された位置から前記リンクを前記逆方向へ所定の角度だけ回動させた後、前記位置検出センサによって第１の被検出部を検出するまで前記リンクを前記順方向へ回動させる第３のステップと、
前記位置検出センサによって第１の被検出部が検出されたときに、該検出位置に基づき仮の原点位置を設定する第４のステップとを含み、
前記原点位置設定手段は、第４のステップにおいて検出された仮の原点位置に基づき、前記原点位置を設定することを特徴としている。
【０００８】
このような構成であれば、回動制御手段がアクチュエータを制御し、リンクをその初期位置から該リンクの一方の限界回転角度方向に回動すると、これと連動して複数の被検出部がリンクと共に又はリンクに対して相対的に回動する。そして、回動させたことにより、基準回転角度位置（リンクの原点位置の基準となる回転角度位置）に該当する位置に設置された第１の被検出部が、位置検出センサによって検出される。一方、限界回転角度位置へと回動したときは、限界回転角度位置に該当する位置に設置された第２の被検出部が、位置検出センサによって検出される。原点位置設定手段は、位置検出センサにおいて被検出部が検出されると、該検出結果に基づき原点位置を設定する。
【０００９】
ここで、リンクに対して相対的に回動するとは、例えば、被検出部がリンクを回動する軸と同じ軸心を有し且つリンクの回動に対して静止している軸などに設けられ、リンクが回動することで、静止した被検出部の位置とリンクの位置（回転角度位置）とが相対的に変化し、被検出部がリンクの回動範囲を回動しているのと同等の動作が行われることを意味する。
【００１０】
また、リンク機構は、リンクが関節を介してロボットなどの基体に支持された構成、別のリンクに支持された構成（複数のリンクが関節を介して連結された構成）など、リンクが回動する構成を有したものであればどのような構成でも良い。
また、各被検出部は、例えば、リンク、静止軸の軸周り、回転軸の軸周りなどに設けられ、例えば、位置検出センサが光学式センサなどの非接触式のセンサであれば、そこから射出される検出波を遮断する形状（例えば、突設された板状）に形成される。また、例えば、位置検出センサがマイクロスイッチなどの接触式のセンサであれば、その検出部（スイッチなど）を押下する形状（例えば、突状）に形成される。
【００１１】
特に、基準位置及び限界位置を特定するために、複数の被検出部と１つのセンサとの組合せとしたので、消費電力を抑えることができる。この消費電力の低減は、関節数が多く、バッテリー駆動のロボットなどでは好適である。
【００１３】
また、第１のステップにおいて第１の被検出部又は第２の被検出部を前記位置検出センサが検出すれば、第２のステップによって、検出された被検出部が、第１の被検出部か、第２の被検出部かを判別することができ、第４のステップによって検出位置に基づき前記原点位置を設定することができる。一方、第１のステップにおいて第１の被検出部又は第２の被検出部を前記位置検出センサが検出できなかったときは、第３のステップによって、第１の被検出部又は第２の被検出部を検出可能な位置まで移動させて、第２のステップによって、検出された被検出部が、第１の被検出部か、第２の被検出部かを判別することができ、第４のステップによって検出位置に基づき前記原点位置を設定することができる。
【００１４】
ここで、第２のステップにおいて、検出された被検出部が、第１の被検出部か、第２の被検出部かを判別する方法は、第１の被検出部及び第２の被検出部の検出範囲を予め異ならせていることから、前記リンクを所定回転角度回動させて、再び当該被検出部が検出されるか否かで判別することができる。
ここで、所定回転角度は、被検出部が、位置検出センサの検出位置（範囲）を通り過ぎる最小の回転角度が望ましく、少なくともリンク及び被検出部が他方の限界回転角度位置又はその近傍へは到達しない角度範囲である。
【００１５】
上記課題を解決するための本発明の請求項２に係る原点位置設定装置は、請求項１に記載の原点位置設定装置において、前記位置検出センサは、指向性を有する検出波を射出すると共に該射出した検出波に対する前記被検出部の干渉状態に基づき該被検出部を検出する非接触式のセンサであることを特徴としている。
【００１６】
このような構成であれば、位置検出センサは、リンクの連動に応じて該リンクと共に又は該リンクに対して相対的に回動する被検出部によって、センサから射出された検出波が遮断されることで、反射波の変化、透過の有無などによって該被検出部を検出することができる。
ここで、非接触式のセンサとしては、フォトリフレクタ、フォトインタラプタ等の光学式のセンサや、超音波センサなどが該当する。
【００１７】
上記課題を解決するための本発明の請求項３に係る原点位置設定装置は、請求項１に記載の原点位置設定装置において、前記位置検出センサは、検出部への前記被検出部の接触によって該被検出部を検出する接触式のセンサであることを特徴としている。
【００１８】
このような構成であれば、位置検出センサは、リンクの連動に応じて該リンクと共に又は該リンクに対して相対的に回動する被検出部が接触式の検出部に接触することで、該接触による圧力の変化、該接触によるスイッチの押下などによって被検出部を検出することができる。
ここで、接触式のセンサとしては、マイクロスイッチ、圧力センサなどが該当する。
【００１９】
上記課題を解決するための本発明の請求項４に係る原点位置設定方法は、関節部を介して回動自在に支持されたリンクと、該リンクを回動させる動力を付与するアクチュエータと、前記リンクの回動に連動して少なくとも該リンクと同じ回動範囲を、該リンクと共に又は該リンクに対して相対的に回動し、検出範囲を異ならせた複数の被検出部と、前記リンクの原点位置の基準となる回転角度位置に設けられた第１の被検出部、及び該第１の被検出部よりも大きな幅に設定され、前記リンクの一方の回動方向の回動限界位置に設けられた第２の被検出部を検出する位置検出センサとを備えた前記リンクの原点位置を設定する原点位置設定方法であって、
前記位置検出センサが第１の被検出部を検出した後第２の被検出部を検出する向きを順方向とし、前記位置検出センサが第２の被検出部を検出した後第１の被検出部を検出する向きを逆方向とし、
前記リンクの初期位置において、第１の被検出部又は第２の被検出部を前記位置検出センサが検出したか否かを判別する第１のステップと、
第１のステップにおいて、第１の被検出部又は第２の被検出部が検出された場合に、前記リンクを前記順方向へ所定の角度だけ回動させて、前記位置検出センサによって検出された被検出部が、第１の被検出部か、第２の被検出部かを判別する第２のステップと、
第２のステップにおいて、第１の被検出部が検出された場合は、前記アクチュエータを制御して、前記リンクを前記逆方向へ所定の角度だけ回動させた後、前記位置検出センサによって第１の被検出部を検出するまで前記リンクを前記順方向へ回転させ、又は、第２のステップにおいて第２の被検出部が検出された場合は、前記アクチュエータを制御して前記リンクを前記逆方向へと回動させ、前記位置検出センサによって第１の被検出部が検出された位置から前記リンクを前記逆方向へ所定の角度だけ回動させた後、前記位置検出センサによって第１の被検出部を検出するまで前記リンクを前記順方向へ回動させる第３のステップと、
前記位置検出センサによって第１の被検出部が検出されたときに、該検出位置に基づき仮の原点位置を設定する第４のステップとを含み、第４のステップにおいて検出された仮の原点位置に基づき、前記原点位置を設定することを特徴としている。
【００２０】
上記課題を解決するための本発明の請求項５に係るリンク機構は、関節部を介して回動自在に支持されたリンクと、該リンクを回動させる動力を付与するアクチュエータと、請求項１〜３のいずれかに記載の原点位置設定装置と、を備えることを特徴としている。
このような構成であれば、上記請求項１〜３のいずれかに記載の原点位置設定装置によって、リンクの原点位置を設定することができる。
【００２１】
上記課題を解決するための本発明の請求項６に係る脚車輪型ロボットは、基体と、前記基体に対して関節を介して支持された複数の脚部と、各脚部に回転自在に設けられた車輪と、前記各脚部及び前記車輪を駆動する動力を付与するアクチュエータと、前記アクチュエータを制御する制御手段とを備え、環境に応じて前記脚部及び前記車輪の少なくとも一方を駆動することにより移動する脚車輪型ロボットであって、
前記脚部は、複数のリンクを有すると共に、該複数のリンクが関節を介して回動自在に連結された構成を有し、
請求項１〜３のいずれかに記載の原点位置設定装置を備え、前記原点位置設定装置によって、前記脚部を構成する各リンクの原点位置を設定することを特徴としている。
【００２２】
このような構成であれば、請求項１〜３のいずれかに記載の原点位置設定装置によって、脚車輪型ロボットの各脚部を構成する各リンクの原点位置を設定することができる。
【発明の効果】
【００２３】
以上説明したように、本発明の原点位置設定装置、リンク機構、及び脚車輪型ロボットによれば、既存のリンク機構に対して、１つの位置検出センサ及び検出範囲を異ならせた複数の被検出部を設けるだけで、リンクの原点位置を設定することができるので、従来と比較して、低コスト且つ簡単な部品構成で装置を構成することができるという効果が得られる。
【００２４】
また、被検出部の初期位置がどのような位置であっても（一方の限界回転角度位置又はその近傍である場合を除く）、最初に、リンクを一方の限界回転角度位置方向（第２の被検出部が検出される方向）に回動させ、更に、被検出部が必ず一定の方向から位置検出センサの検出位置へと進入するようにリンクの回動を制御するので、回動方向の違いによる原点位置の誤差が発生するのを回避することができるという効果が得られる。更に、位置検出センサの検出位置への進入方向を一定方向にする際にも、他方の限界回転角度位置方向には所定の回転角度分しか回動させないので、安全且つ確実に、被検出部を一定の方向から位置検出センサの検出位置へと進入させることができるという効果が得られる。
【図面の簡単な説明】
【００２５】
【図１】本発明に係る脚車輪型ロボット１００の正面図である。
【図２】本発明に係る脚車輪型ロボット１００の側面図である。
【図３】（ａ）及び（ｂ）は、第１リンク１７の回転関節１４との連結部における、原点位置を設定するためのセンサの取付構成の一例を示す図である。
【図４】（ａ）及び（ｂ）は、第２リンク１９及び第１リンク１７の連結部における、原点位置を設定するためのセンサの取付構成の一例を示す図である。
【図５】脚車輪型ロボット１００の駆動制御システムを示すブロック図である。
【図６】第１ドグ及び第２ドグと、センサとの位置関係を示す概念図である。
【図７】仮原点位置設定処理を示すフローチャートである。
【図８】原点位置設定処理を示すフローチャートである。
【図９】（ａ）及び（ｂ）は、検出範囲が１周期の範囲内に収まるときの同期モード及び非同期モードにおける原点位置を示す図である。
【図１０】（ａ）及び（ｂ）は、検出範囲が１周期の範囲内に収まらないときの半同期モード及び同期モードにおける原点位置を示す図である。
【図１１】脚車輪型ロボット１００の駆動制御システムを示すブロック図である。
【発明を実施するための形態】
【００２６】
以下、本発明の実施形態を図面に基づき説明する。図１〜図１０は、本発明に係る原点位置設定装置、原点位置設定方法、リンク機構及び脚車輪型ロボットの実施形態を示す図である。
まず、図１に基づき、本発明に係る脚車輪型ロボットの概略構成を説明する。
図１は、本発明に係る脚車輪型ロボット１００の正面図である。また、図２は、本発明に係る脚車輪型ロボット１００の側面図である。
【００２７】
脚車輪型ロボット１００は、図１及び図２に示すように、基体１０と、基体１０に連結された４つの脚部１２とを有して構成されている。基体１０の前方には、２本の脚部１２が回転関節１４を介して左右対称の位置に連結されている。また、基体１０の後方には、２本の脚部１２が回転関節１４を介して左右対称の位置に連結されている。
回転関節１４は、脚車輪型ロボット１００の底面と直交する方向を軸方向として回転する。すなわち、ヨー軸回りに回転する。
【００２８】
各脚部１２には、２つの回転関節１６、１８が設けられており、回転関節１６を介して第１リンク１７が基体１０に支持された回転関節１４に対して回動自在に連結され、回転関節１８を介して第２リンク１９が第１リンク１７に対して回動自在に連結されている。回転関節１４は、下方を軸方向として回転し、回転関節１６、１８は、回転関節１４が図１の状態であるときは、脚車輪型ロボット１００の側面と直交する方向を軸方向として回転する。すなわち、回転関節１４が図１の状態であるときは、ピッチ軸回りに回転し、回転関節１４が図１の状態から９０度回転した状態であるときは、ロール軸回りに回転し、第１リンク及び第２リンクをその回転方向に回動させる。従って、脚部１２は、それぞれ３自由度を有する。
【００２９】
各脚部１２の先端には、回転関節１６、１８と軸方向を同一にして駆動輪２０が回転自在に設けられている。
各脚部１２の先端には、脚車輪型ロボット１００の移動経路上に存在する物体までの距離を測定する前方脚先センサ２２と、接地面までの距離を測定する下方脚先センサ２４とが設けられている。
【００３０】
一方、基体１０の正面の上部中央には、水平面レーザ光を照射する水平レーザ２６が設けられている。また、基体１０の正面の中央左右には、垂直面レーザ光を照射する垂直レーザ２８、３０がそれぞれ設けられている。
基体１０の正面の下部中央には、水平面レーザ光及び垂直面レーザ光の反射光を含む画像を撮影するカメラ３２が設けられている。
【００３１】
水平レーザ２６は、カメラ３２で水平面レーザ光の反射光を含む画像が撮影できるように下方に所定角度傾けて設けられている。同様に、垂直レーザ２８は、カメラ３２で垂直面レーザ光の反射光を含む画像が撮影できるように右方に所定角度傾けて設けられ、垂直レーザ３０は、左方に所定角度傾けて設けられている。
【００３２】
カメラ３２の左右には、障害物を検出する障害物センサ３４、３６がそれぞれ設けられている。障害物センサ３４、３６は、指向性の低い超音波測距センサを複数アレイ状に配列して構成することができる。また、指向性の高い赤外線測距センサを複数アレイ状に配列して構成することもできる。アレイ状に配列する構成に限らず、単体で構成してもよい。また、超音波測距センサまたは赤外線測距センサを複数平面上に配列したエリアセンサで構成してもよい。これにより、脚車輪型ロボット１００の移動経路上に存在する障害物を大まかに検出することができる。
【００３３】
更に、各第１リンク１７の回転関節１４側の連結端には、第１リンク１７の原点位置を設定するためのセンサが設けられ、各第２リンク１９の第１リンク１７との連結端には、第２リンク１９の原点位置を設定するためのセンサが設けられている。
ここで、図３（ａ）及び（ｂ）は、第１リンク１７の回転関節１４との連結部における、原点位置を設定するためのセンサの取付構成の一例を示す図である。また、図４（ａ）及び（ｂ）は、第２リンク１９及び第１リンク１７の連結部における、原点位置を設定するためのセンサの取付構成の一例を示す図である。
【００３４】
脚車輪型ロボット１００は、第１リンク１７の原点位置を設定するために、各脚部１２の第１リンク１７の回転関節１４側の連結部に、図３（ａ）及び（ｂ）に示すように、複数の被検出部２００として、第１ドグ２０１及び第２ドグ２０２が第１リンク１７と同じ回動範囲を回動するように設けられている。すなわち、図３（ｂ）に示すように、第１リンク１７が回動すると、これと連動して第１ドグ２０１及び第２ドグ２０２が同じ回動方向へと同じ回転角度を回動する。
ここで、図３（ａ）及び（ｂ）に示すように、第１リンク１７に設けられた第１ドグ２０１及び第２ドグ２０２は、それぞれが所定の間隔で離間されて設置されている。
【００３５】
また、図３（ａ）及び（ｂ）に示すように、各回転関節１４側において、第１リンク１７との連結部で且つ第１リンク１７の基準回転角度位置（第１リンク１７の原点位置の基準となる回転角度位置）へと回動した第１ドグ２０１と対向する位置に、第１ドグ２０１を検出する位置検出センサ２１０が設けられている。この位置検出センサ２１０の設置位置は、各回転関節１４側において第１リンク１７との連結部で且つ第１リンク１７の時計回り方向の限界回転角度位置の近傍へと回動した第２ドグ２０２に対向する位置である。すなわち、位置検出センサ２１０の設置位置は、限界回転角度位置の近傍へと回動した第２ドグ２０２を検出する位置にも該当している。
【００３６】
ここで、図３（ａ）及び（ｂ）に示すように、第１リンク１７に設けられた第１ドグ２０１及び第２ドグ２０２は、位置検出センサ２１０によって検知される検知範囲が異なるように設置される。例えば、回転関節１６の内周に沿って形成される第１ドグ２０１の検出範囲は、同様に回転関節１６の内周に沿って略円弧状に形成される第２ドグ２０２の検出範囲よりも小さく設定される。上記の検出範囲とは、第１ドグ２０１及び第２ドグ２０２における回転関節１６の内周に沿う幅寸法である。
【００３７】
ここで、位置検出センサ２１０は、フォトインタラプタであり、発光部から射出された光線を第１ドグ２０１又は第２ドグ２０２が遮断したか否かを検出することにより、該第１ドグ２０１又は第２ドグ２０２を検出する構成となっている。従って、第１ドグ２０１又は第２ドグ２０２は、位置検出センサ２１０と対向したときに、その発光部から射出される光線を遮断できる形状及び位置関係を有して設けられている。位置検出センサ２１０として、フォトインタラプタを採用した場合、第１ドグ２０１及び第２ドグ２０２は、位置検出センサ２１０によって検知される検知（遮断）範囲が異なるように設置される。例えば、第１ドグ２０１の検出（遮断）範囲は、第２ドグ２０２の検出（遮断）範囲よりも小さく設定される。
【００３８】
なお、位置検出センサ２１０は、フォトインタラプタに限らず、第１ドグ２０１及び第２ドグ２０２からの反射波の有無を検出するフォトリフレクタ、超音波の第１ドグ２０１及び第２ドグ２０２からの反射の有無を検出する超音波センサ、検出部への第１ドグ２０１及び第２ドグ２０２の接触の有無を検出するマイクロスイッチ、圧力センサなどを用いることも可能である。これらの場合でも、第１リンクの動きに伴って回動する第１ドグ２０１の検出範囲と第２ドグ２０２の検出範囲とが異なっている。例えば、第１ドグ２０１の検出範囲が、第２ドグ２０２の検出範囲よりも小さく設定される。
【００３９】
また、第２リンク１９の原点位置を設定するために、各脚部１２における第２リンク１９の第１リンク１７との連結部に、図４（ａ）及び（ｂ）に示すように、第１ドグ２０１及び第２ドグ２０２が第２リンク１９と同じ回動範囲を回動するように設けられている。すなわち、図４（ｂ）に示すように、第２リンク１９が回動すると、これと連動して第１ドグ２０１及び第２ドグ２０２が同じ回動方向へと同じ回動角度を回動する。
【００４０】
また、図４（ａ）及び（ｂ）に示すように、第１リンク１７の第２リンク１９との連結部において、第２リンク１９の基準回転角度位置（第２リンク１９の原点位置の基準となる回転角度位置）へと回動した第１ドグ２０１と対向する位置に、第１ドグ２０１を検出する位置検出センサ２１０が設けられている。この位置検出センサ２１０の設置位置は、第１リンク１７の第２リンク１９との連結部において、第２リンク１９の時計回り方向の限界回転角度位置の近傍へと回動した第２ドグ２０２に対向する位置である。すなわち、位置検出センサ２１０の設置位置は、限界回転角度位置の近傍へと回動した第２ドグ２０２を検出する位置にも該当している。
【００４１】
次に、脚車輪型ロボット１００の駆動制御システムを説明する。
図５は、脚車輪型ロボット１００の駆動制御システムを示すブロック図である。
各脚部１２の回転関節１４、１６、１８には、図５に示すように、回転関節１４、１６、１８を回転駆動する関節モータ４０がそれぞれ設けられている。この関節モータ４０が各請求項に記載のアクチュエータに相当する。各関節モータ４０には、関節モータ４０の回転角度位置を検出するエンコーダ４２と、モータ指令信号及びエンコーダ４２の出力信号に基づいて関節モータ４０の駆動を制御するドライバ４４が設けられている。
【００４２】
本実施形態において、エンコーダ４２は、インクリメンタルエンコーダであり、関節モータ４０の回転に応じて、位相が９０°異なるＡ相パルス信号及びＢ相パルス信号を出力すると共に、エンコーダの１回転毎にＺ相（原点相）のパルス信号（以下、Ｚ相パルス信号と称す）を出力する。更に、Ａ相及びＢ相のパルス信号を４逓倍カウントするパルスカウンタを内蔵しており、４逓倍カウントパルス信号によって回転角度位置を検出する。
【００４３】
また、関節モータ４０の出力軸には減速機（図示せず）が設けられており、所定の減速比でモータ４０の回転速度を減速して、該減速されたモータの回転力（トルク）を回転関節１４、１６、１８の各回転軸に伝えることで所望のトルクを得るようにしている。
各脚部１２の車輪２０の回転軸には、該車輪２０を回転駆動する車輪モータ５０がそれぞれ接続されている。この車輪モータ５０が各請求項に記載のアクチュエータに相当する。各車輪モータ５０には、車輪モータ５０の回転角度位置を検出するエンコーダ５２と、モータ指令信号及びエンコーダ５２の出力信号に基づいて車輪モータ５０の駆動を制御するドライバ５４が設けられている。
【００４４】
脚車輪型ロボット１００は、更に、ＣＰＵ６０と、脚車輪型ロボット１００の姿勢を検出する３軸姿勢センサ７０と、カメラ３２の画像信号を処理するビジョンプロセッサ７２と、外部のＰＣ等と無線通信を行う無線通信部７４と、ビジョンプロセッサ７２及び無線通信部７４とＣＰＵ６０の入出力を中継するハブ７６と、警告音等を出力するスピーカ７８とを有して構成される。
【００４５】
３軸姿勢センサ７０は、ジャイロ若しくは加速度センサ、またはその両方を有し、地軸に対して脚車輪型ロボット１００の姿勢の傾きを検出する。
ＣＰＵ６０は、モータ指令出力Ｉ／Ｆ６１を介してドライバ４４、５４にモータ指令信号を出力し、角度取込Ｉ／Ｆ６２を介してエンコーダ４２、５２の出力信号を入力する。また、センサ入力Ｉ／Ｆ６３を介して、前方脚先センサ２２、下方脚先センサ２４、障害物センサ３４、３軸姿勢センサ７０、位置検出センサ２１０からそれぞれセンサ信号を入力する。また、通信Ｉ／Ｆ６４を介してハブ７６と信号の入出力を行い、サウンド出力Ｉ／Ｆ６５を介してスピーカ７８に音声信号を出力する。
【００４６】
次に、ＣＰＵ６０で実行される処理を説明する。
ＣＰＵ６０は、ＲＯＭ等の所定領域に格納されている制御プログラムを起動させ、その制御プログラムに従って、仮原点位置検出処理、原点位置設定処理、車輪走行制御処理、昇降制御処理などを実行する。
【００４７】
［仮原点位置検出処理］
仮原点位置検出処理は、脚車輪型ロボット１００の各脚部１２を構成するリンクの原点位置を設定するための処理であって、位置検出センサ２１０の検出結果に基づき、各脚部１２の第１リンク１７及び第２リンク１９の仮の原点位置を検出する処理である。
【００４８】
［原点位置設定処理］
また、原点位置設定処理は、モータのバッククラッシュ、センサのバラツキ、制御のバラツキなどによる仮の原点位置のバラツキを補正し、該補正後の位置をリンクの原点位置として設定する処理である。具体的に、仮原点位置検出処理で検出された仮の原点位置と、仮の原点位置の検出範囲（バラツキの幅）と、エンコーダの発生する各種パルス信号とに基づき、仮の原点位置のバラツキを補正する。
【００４９】
なお、仮原点位置検出処理及び原点位置設定処理は、脚車輪型ロボット１００の電源が投入される毎に実行するようにしても良いし、一度設定した原点位置を記憶保持しておき、初期の電源投入時以外は行わないようにしても良いし、センサなどの経年劣化等を考慮して、定期的に実行するようにしても良い。ここで、原点位置の情報を記憶保持する場合には、脚車輪型ロボット１００を、データの書き換えが可能で且つ電源の供給無しでもデータを保持できるフラッシュメモリ等の記憶媒体を備えた構成とする。
【００５０】
また、不慮の事故などで原点位置の情報が消えてしまったり、壊れてしまったりした場合には、情報の有無や破壊の有無を自動で検知して仮原点位置検出処理及び原点位置設定処理を実行させるか、または、別途設定指令を発行して、これらの処理を実行させるようにする。
【００５１】
［車輪走行制御処理］
また、車輪走行制御処理は、車輪２０を用いた移動を制御する処理であり、昇降制御処理は、脚部１２を用いて段差等の障害物を昇降する移動を制御する処理である。なお、本発明は、脚部１２を構成する各リンクの原点位置を設定する処理に特徴があり、また、車輪走行制御処理及び昇降制御処理については従来の脚車輪型ロボットと同様となるので、これらの処理については説明を省略する。
【００５２】
まず、図６及び図７に基づき、仮原点位置検出処理を説明する。
図６は、第１ドグ及び第２ドグと、位置検出センサとの位置関係を示す概念図である。また、図７は、仮原点位置検出処理を示すフローチャートである。なお、図６では、説明の理解を助けるために、第１ドグ及び第２ドグと、位置検出センサとの位置関係を直線運動で示している。また、図７のフローチャートは、１つのリンクに対する仮の原点位置を検出する処理を示すものであり、実際は同様の処理を全てのリンクに対して行うことになる。
【００５３】
ＣＰＵ６０において仮原点位置検出処理が実行されると、まず、図７に示すように、ステップＳ１００に移行する。
ステップＳ１００では、ＣＰＵ６０において、センサ入力Ｉ／Ｆ６３を介して入力される位置検出センサ２１０のセンサ出力信号に基づき、第１ドグ２０１及び第２ドグ２０２のいずれかが検出されたか否かを判定する。第１ドグ２０１及び第２ドグ２０２のいずれかが検出されたと判定された場合(Yes)は、第１ドグ２０１及び第２ドグ２０２と、位置検出センサ２１０との位置関係は、図６（ｂ），（ｅ），（ｆ）で示されるとおりであり、ステップＳ１０２に移行する。一方、第１ドグ２０１及び第２ドグ２０２のいずれかが検出されなかった場合(No)は、第１ドグ２０１及び第２ドグ２０２と、位置検出センサ２１０との位置関係は、図６（ａ），（ｃ），（ｄ）で示されるとおりであり、ステップＳ１２６に移行する。
【００５４】
ステップＳ１０２に移行した場合は、ＣＰＵ６０において、モータ指令出力Ｉ／Ｆ６１を介して、該当するリンクの関節モータ４０のドライバ４４に対して指令を与えて関節モータ４０を駆動し、該リンクを、その初期位置から基準回転角度位置の方向（図３及び図４における時計回り方向、以下、順方向と呼ぶ。）に所定の回転角度分回動させて、ステップＳ１０４に移行する。この所定の回転角度は、第１ドグ２０１が位置検出センサ２１０の検出範囲外に出るまでの角度である。この工程は、初期状態で、位置検出センサ２１０が第１ドグ２０１又は第２ドグ２０２を検出していることから、該リンクを回動させて検出対象が第１ドグ２０１か、第２ドグ２０２かを判別する工程である。
【００５５】
ステップＳ１０４では、ＣＰＵ６０において、センサ入力Ｉ／Ｆ６３を介して入力される位置検出センサ２１０のセンサ出力信号に基づき、該当するリンクの位置検出センサ２１０によって、第１ドグ２０１及び第２ドグ２０２のいずれかが検出されたかを判定する。そして、所定の回転角度は上記のように設定されていることから、ステップ１０４で検出されたと判定した場合(Yes)は、第１ドグ２０１及び第２ドグ２０２と位置検出センサ２１０との位置関係は、図６（ｆ）に示すとおりであり、位置検出センサ２１０が第２ドグ２０２を検出したことを意味し、ステップＳ１０６に移行する。また、ステップ１０４で検出されないと判定した場合(No)は、第１ドグ２０１及び第２ドグ２０２と位置検出センサ２１０との位置関係は、図６（ｃ）に示すとおりであり、位置検出センサ２１０が第１ドグ２０１を検出したことを意味し、ステップＳ１４０に移行する。
【００５６】
ステップＳ１０６に移行した場合は、ＣＰＵ６０において、モータ指令出力Ｉ／Ｆ６１を介して、該当するリンクの関節モータ４０のドライバ４４に対して指令を与えて関節モータ４０を駆動し、該リンクを、逆方向（図３及び図４における反時計回り方向）に回動させて、ステップＳ１０８に移行する。
【００５７】
ステップＳ１０８では、ＣＰＵ６０において、センサ入力Ｉ／Ｆ６３を介して入力される位置検出センサ２１０のセンサ出力信号に基づき、該当するリンクの位置検出センサ２１０によって、第１ドグ２０１又は第２ドグ２０２が検出されたか否かを判定し、検出されないと判定した場合(Yes)は、ステップＳ１１０に移行し、そうでない場合(No)は、ステップＳ１０６を繰り返す。すなわち、位置検出センサ２１０によって、第２ドグ２０２が検出されなくなるまでステップ１０６を繰り返す。その結果、第１ドグ２０１及び第２ドグ２０２と位置検出センサ２１０との位置関係は、図６（ｄ）に示すとおりとなる。
【００５８】
ステップＳ１１０では、ＣＰＵ６０において、モータ指令出力Ｉ／Ｆ６１を介して、該当するリンクの関節モータ４０のドライバ４４に対して指令を与えて関節モータ４０を駆動し、該リンクを、逆方向に回動させて、ステップＳ１１２に移行する。
ステップＳ１１２では、ＣＰＵ６０において、センサ入力Ｉ／Ｆ６３を介して入力される位置検出センサ２１０のセンサ出力信号に基づき、該当するリンクの位置検出センサ２１０によって、第１ドグ２０１又は第２ドグ２０２が検出されたか否かを判定し、検出されたと判定した場合(Yes)は、ステップＳ１１４に移行し、そうでない場合(No)は、ステップＳ１１０を繰り返す。すなわち、位置検出センサ２１０によって、第１ドグ２０１が検出されるまでステップ１１０を繰り返す。その結果、第１ドグ２０１及び第２ドグ２０２と位置検出センサ２１０との位置関係は、図６（ｂ）に示すとおりとなる。
【００５９】
ステップＳ１１４では、ＣＰＵ６０において、モータ指令出力Ｉ／Ｆ６１を介して、該当するリンクの関節モータ４０のドライバ４４に対して指令を与えて関節モータ４０を駆動し、該リンクを、逆方向に回動させて、ステップＳ１１６に移行する。
ステップＳ１１６では、ＣＰＵ６０において、センサ入力Ｉ／Ｆ６３を介して入力される位置検出センサ２１０のセンサ出力信号に基づき、該当するリンクの位置検出センサ２１０によって、第１ドグ２０１又は第２ドグ２０２が検出されたか否かを判定し、検出されないと判定した場合(Yes)は、ステップＳ１１８に移行し、そうでない場合(No)は、ステップＳ１１４を繰り返す。すなわち、位置検出センサ２１０によって、第１ドグ２０１が検出されなくなるまでステップ１１４を繰り返す。その結果、第１ドグ２０１及び第２ドグ２０２と位置検出センサ２１０との位置関係は、図６（ａ）に示すとおりとなる。
【００６０】
ステップＳ１１８に移行した場合は、ＣＰＵ６０において、モータ指令出力Ｉ／Ｆ６１を介して、該当するリンクの関節モータ４０のドライバ４４に対して指令を与えて関節モータ４０を駆動し、該リンクを、逆方向に所定の回転角度分回動させて、ステップＳ１２０に移行する。
ステップＳ１２０では、ＣＰＵ６０において、モータ指令出力Ｉ／Ｆ６１を介して、該当するリンクの関節モータ４０のドライバ４４に対して指令を与えて関節モータ４０を駆動し、該リンクを、順方向に回動させて、ステップＳ１２２に移行する。
【００６１】
ステップＳ１２２では、ＣＰＵ６０において、センサ入力Ｉ／Ｆ６３を介して入力される位置検出センサ２１０のセンサ出力信号に基づき、該当するリンクの位置検出センサ２１０によって、第１ドグ２０１又は第２ドグ２０２が検出されたか否かを判定し、検出されたと判定した場合(Yes)は、ステップＳ１２４に移行し、そうでない場合(No)は、ステップＳ１２０を繰り返す。すなわち、位置検出センサ２１０によって、第１ドグ２０１が検出されるまでステップ１２０を繰り返す。その結果、第１ドグ２０１及び第２ドグ２０２と位置検出センサ２１０との位置関係は、図６（ｂ）に示すとおりとなる。
【００６２】
ステップＳ１２４に移行した場合は、ＣＰＵ６０において、ステップＳ１１０で第１ドグ２０１が検出された位置を、仮の原点位置として検出し、該仮の原点位置の情報を、ＲＡＭ（図示せず）に記憶すると共に、後述する検出範囲の算出用に、フラッシュメモリ（図示せず）に記憶して、一連の処理を終了し元の処理に復帰させる。ここで、本実施形態においては、仮の原点位置に対して、該原点位置を検出後に（センサ出力信号の立上がりに対して）最初にエンコーダ４２の発生する、カウントパルス信号、Ｚ相パルス信号、該Ｚ相パルス信号の検出後の最初のカウントパルス信号の各位置情報についてもＲＡＭに記憶する。
【００６３】
一方、ステップ１００において、第１ドグ２０１又は第２ドグ２０２が検出されず、ステップＳ１２６に移行した場合は、ＣＰＵ６０において、モータ指令出力Ｉ／Ｆ６１を介して、該当するリンクの関節モータ４０のドライバ４４に対して指令を与えて関節モータ４０を駆動し、該リンクを、順方向に回動させて、ステップＳ１２８に移行する。その結果、初期状態において第１ドグ２０１及び第２ドグ２０２と位置検出センサ２１０との位置関係が図６（ａ）に示す状態であった場合、ステップ１２６によって図６（ｂ）に示すとおりとなる。また、初期状態において第１ドグ２０１及び第２ドグ２０２と位置検出センサ２１０との位置関係が、図６（ｃ）又は（ｄ）に示す状態であった場合、ステップ１２６によって図６（ｅ）に示すとおりとなる。
【００６４】
ステップＳ１２８では、ＣＰＵ６０において、センサ入力Ｉ／Ｆ６３を介して入力される位置検出センサ２１０のセンサ出力信号に基づき、該当するリンクの位置検出センサ２１０によって、第１ドグ２０１又は第２ドグ２０２が検出されたか否かを判定し、検出されたと判定した場合(Yes)は、ステップＳ１３０に移行し、そうでない場合(No)は、ステップＳ１２６を繰り返す。すなわち、位置検出センサ２１０によって、第１ドグ２０１又は第２ドグ２０２が検出されるまでステップ１２６を繰り返す。
【００６５】
ステップＳ１３２に移行した場合は、ＣＰＵ６０において、モータ指令出力Ｉ／Ｆ６１を介して、該当するリンクの関節モータ４０のドライバ４４に対して指令を与えて関節モータ４０を駆動し、該リンクを、順方向に所定の回転角度分回動させて、ステップＳ１３４に移行する。この工程は、ステップ１２８で位置検出センサ２１０が検出した対象が第１ドグ２０１か、第２ドグ２０２かによって初期状態において第１ドグ２０１及び第２ドグ２０２と位置検出センサ２１０との位置関係が、図６（ａ）に示すとおりか、図６（ｃ）又は（ｄ）に示すとおりかを判別する工程である。
【００６６】
ステップＳ１３４では、ＣＰＵ６０において、センサ入力Ｉ／Ｆ６３を介して入力される位置検出センサ２１０のセンサ出力信号に基づき、該当するリンクの位置検出センサ２１０によって、第１ドグ２０１及び第２ドグ２０２のいずれかが検出されたかを判定する。そして、所定の回転角度は上記のように設定されていることから、ステップ１３４で検出されたと判定した場合(Yes)は、第１ドグ２０１及び第２ドグ２０２と位置検出センサ２１０との位置関係は、図６（ｃ）に示すとおりであり、位置検出センサ２１０が第１ドグ２０１を検出したことを意味し、ステップＳ１３６に移行する。また、ステップ１３４で検出されないと判定した場合(No)は、第１ドグ２０１及び第２ドグ２０２と位置検出センサ２１０との位置関係は、図６（ｆ）に示すとおりであり、位置検出センサ２１０が第２ドグ２０２を検出したことを意味し、前述のステップＳ１０６に移行する。
【００６７】
ステップＳ１３６に移行した場合は、ＣＰＵ６０において、モータ指令出力Ｉ／Ｆ６１を介して、該当するリンクの関節モータ４０のドライバ４４に対して指令を与えて関節モータ４０を駆動し、該リンクを、逆方向に回動させて、ステップＳ１３８に移行する。
ステップＳ１３８では、ＣＰＵ６０において、センサ入力Ｉ／Ｆ６３を介して入力される位置検出センサ２１０のセンサ出力信号に基づき、該当するリンクの位置検出センサ２１０によって、第１ドグ２０１又は第２ドグ２０２が検出されたか否かを判定し、検出されたと判定した場合(Yes)は、一連の処理を終了し元の処理に復帰させ、そうでない場合(No)は、ステップＳ１３６を繰り返す。すなわち、位置検出センサ２１０によって、第１ドグ２０１が検出されるまでステップＳ１３６を繰り返す。その結果、第１ドグ２０１及び第２ドグ２０２と位置検出センサ２１０との位置関係は、図６（ｂ）に示すとおりとなる。
【００６８】
ステップＳ１３６に移行した場合は、ＣＰＵ６０において、ステップＳ１３８で第１ドグ２０１が検出された位置を、仮の原点位置として検出し、該仮の原点位置の情報を、ＲＡＭ（図示せず）に記憶すると共に、後述する検出範囲の算出用に、フラッシュメモリ（図示せず）に記憶して、一連の処理を終了し元の処理に復帰させる。ここで、本実施形態においては、仮の原点位置に対して、該原点位置を検出後に（センサ出力信号の立上がりに対して）最初にエンコーダ４２の発生する、カウントパルス信号、Ｚ相パルス信号、該Ｚ相パルス信号の検出後の最初のカウントパルス信号の各位置情報についてもＲＡＭに記憶する。
【００６９】
他方、ステップ１０４において、第１ドグ２０１又は第２ドグ２０２が検出されず、ステップＳ１４０に移行した場合は、ＣＰＵ６０において、モータ指令出力Ｉ／Ｆ６１を介して、該当するリンクの関節モータ４０のドライバ４４に対して指令を与えて関節モータ４０を駆動し、該リンクを、逆方向に所定の回転角度分回動させて、ステップＳ１４２に移行する。その結果、第１ドグ２０１及び第２ドグ２０２と位置検出センサ２１０との位置関係は、図６（ａ）に示すとおりとなる。
【００７０】
ステップＳ１４２に移行した場合は、ＣＰＵ６０において、モータ指令出力Ｉ／Ｆ６１を介して、該当するリンクの関節モータ４０のドライバ４４に対して指令を与えて関節モータ４０を駆動し、該リンクを、順方向に回動させて、ステップＳ１４４に移行する。
ステップＳ１４４では、ＣＰＵ６０において、センサ入力Ｉ／Ｆ６３を介して入力される位置検出センサ２１０のセンサ出力信号に基づき、該当するリンクの位置検出センサ２１０によって、第１ドグ２０１又は第２ドグ２０２が検出されたか否かを判定し、検出されたと判定した場合(Yes)は、ステップＳ１４６に移行し、そうでない場合(No)は、ステップＳ１４４を繰り返す。すなわち、位置検出センサ２１０によって、第１ドグ２０１が検出されるまでステップ１４４を繰り返す。その結果、第１ドグ２０１及び第２ドグ２０２と位置検出センサ２１０との位置関係は、図６（ｂ）に示すとおりとなる。
【００７１】
ステップＳ１４６に移行した場合は、ＣＰＵ６０において、ステップＳ１４４で第１ドグ２０１が検出された位置を、仮の原点位置として検出し、該仮の原点位置の情報を、ＲＡＭ（図示せず）に記憶すると共に、後述する検出範囲の算出用に、フラッシュメモリ（図示せず）に記憶して、一連の処理を終了し元の処理に復帰させる。ここで、本実施形態においては、仮の原点位置に対して、該原点位置を検出後に（センサ出力信号の立上がりに対して）最初にエンコーダ４２の発生する、カウントパルス信号、Ｚ相パルス信号、該Ｚ相パルス信号の検出後の最初のカウントパルス信号の各位置情報についてもＲＡＭに記憶する。
【００７２】
次に、図８に基づき、原点位置設定処理を説明する。
図８は、原点位置設定処理を示すフローチャートである。なお、図８のフローチャートは、１つのリンクに対する仮の原点位置を検出する処理を示すものであり、実際は同様の処理を全てのリンクに対して行うことになる。
ＣＰＵ６０において原点位置設定処理が実行されると、まず、図８に示すように、ステップＳ２００に移行する。
【００７３】
ステップＳ２００では、ＣＰＵ６０において、フラッシュメモリ（図示せず）から、仮の原点位置の検出範囲の情報を読み出し、ステップＳ２０２に移行する。
本実施形態において、仮の原点位置の検出範囲については、原点位置設定処理の前に、上記仮原点位置検出処理を複数回行った結果を用いて算出し、ＲＡＭやフラッシュメモリなどに記憶保持しておく。具体的には、リンク毎に複数回検出された仮の原点位置（回転角度）のうち、最小値と最大値との差分値を算出する。この差分値が、仮の原点位置のバラツキの範囲である検出範囲となる。
【００７４】
ステップＳ２０２では、ＣＰＵ６０において、フラッシュメモリ（図示せず）から、エンコーダ４２の４逓倍カウントパルス信号のパルスの情報（１周期のパルスに対応する回転角度幅（分解能））を読み出し、ステップＳ２０４に移行する。なお、このパルスの情報も、予めフラッシュメモリ（図示せず）に記憶保持しておく。
ステップＳ２０４では、ＣＰＵ６０において、ステップＳ２００で読み出した検出範囲と、ステップＳ２０２で読み出したパルスの情報とを比較して、ステップＳ２０６に移行する。
【００７５】
ステップＳ２０６では、ＣＰＵ６０において、ステップＳ２０４の比較結果から、検出範囲（バラツキの幅）が、４逓倍カウントパルス信号の１周期のパルスに対応する回転角度幅の範囲内に収まっているか否かを判定し、且つ、仮の原点位置の情報の最小値、最大値ともカウントパルスの立ち上がりと次のパルスの立ち上がりとの間に存在するか否かを判定し、範囲内に収まると判定され且つ間に存在すると判定された（条件を満たしている）場合(Yes)は、ステップＳ２０８に移行し、そうでない場合(No)は、ステップＳ２１４に移行する。
【００７６】
ステップＳ２０８に移行した場合は、ＣＰＵ６０において、同期モードが設定されているか否かを判定し、設定されていると判定された場合(Yes)は、ステップＳ２１０に移行し、そうでない場合(No)は、ステップＳ２１２に移行する。ここで、同期モードとは、４逓倍カウントパルス信号と同期して原点位置を設定するモードである。この他にも、半同期モード及び非同期モードがある。半同期モードでは、エンコーダ４２のＺ相パルス信号と同期して原点位置を設定する。また、非同期モードでは、逓倍カウントパルス信号及びＺ相パルス信号とは非同期に原点位置を設定する。本実施形態においては、これらのモードを、例えば、外部のＰＣ等を介して、ユーザが予め設定することができるようになっている。
【００７７】
ステップＳ２１０に移行した場合は、ＣＰＵ６０において、ＲＡＭに記憶された、仮の原点位置を特定するセンサ出力信号（立上がり）の検出後に、最初にエンコーダ４２の発生する４逓倍カウントパルス信号の立上がり位置で特定される回転角度位置を、該当するリンクの原点位置として設定して、一連の処理を終了し元の処理に復帰させる。
一方、ステップＳ２０８において、非同期モードが設定されており、ステップＳ２１２に移行した場合は、ＣＰＵ６０において、ＲＡＭに記憶された、仮の原点位置を、該当するリンクの原点位置として設定して、一連の処理を終了し元の処理に復帰させる。
【００７８】
また、ステップＳ２０６において、検出範囲が、４逓倍カウントパルス信号の１周期の回転角度範囲に収まってなく、ステップＳ２１４に移行した場合は、ＣＰＵ６０において、半同期モードが設定されているか否かを判定し、設定されていると判定した場合(Yes)は、ステップＳ２１６に移行し、そうでない場合(No)は、ステップＳ２１８に移行する。
ステップＳ２１６に移行した場合は、ＣＰＵ６０において、ＲＡＭに記憶された、仮の原点位置を特定するセンサ出力信号（立上がり）の検出後における、最初にエンコーダ４２の発生するＺ相パルス信号の検出後で、且つ最初にエンコーダ４２の発生する４逓倍カウントパルス信号の立上がり位置で特定される回転角度位置を、該当するリンクの原点位置として設定して、一連の処理を終了し元の処理に復帰させる。
【００７９】
一方、ステップＳ２１８に移行した場合は、ＣＰＵ６０において、ＲＡＭに記憶された、仮の原点位置を特定するセンサ出力信号（立上がり）の検出後に、最初にエンコーダ４２の発生するＺ相パルス信号の立上がり位置で特定される回転角度位置を、該当するリンクの原点位置として設定して、一連の処理を終了し元の処理に復帰させる。
ここで、図９（ａ）及び（ｂ）は、検出範囲が１周期の範囲内に収まるときの同期モード及び非同期モードにおける原点位置を示す図である。また、図１０（ａ）及び（ｂ）は、検出範囲が１周期の範囲内に収まらないときの半同期モード及び同期モードにおける原点位置を示す図である。
【００８０】
このようにして仮の原点位置が検出されると、ＣＰＵ６０は、次に、原点位置設定処理を実行する。原点位置設定処理が実行されると、上記算出した検出範囲の情報をＲＡＭから読み出すと共に（ステップＳ２００）、エンコーダ４２の４逓倍カウントパルスのパルスの情報をＲＯＭ又はフラッシュメモリから読み出す（ステップＳ２０２）。次に、ＣＰＵ６０は、読み出した検出範囲（回転角度幅）とパルスの情報（パルスの１周期に対する回転角度幅）とを比較する（ステップＳ２０４）。
【００８１】
例えば、検出範囲が０．５[°]で、パルス周期が１．０[°]である場合は、検出範囲はパルスの１周期の角度範囲内に収まっているので、これに加えて、仮の原点位置の情報の最小値、最大値とも、カウントパルスの立ち上がりと次のカウントパルスの立ち上がりとの間に存在することが満たされれば（ステップＳ２０６の「Ｙｅｓ」の分岐）、ＣＰＵ６０は、次に、非同期モード及び同期モードのうち設定されたモードに応じて仮の原点位置を補正し、該補正した位置を該当する第２リンク１９の原点位置として設定する。
【００８２】
非同期モードが設定されている場合（ステップＳ２０８の「Ｎｏ」の分岐）は、図９（ａ）に示すように、位置検出センサ２１０の検出位置（立上がり位置）によって特定される回転角度位置を、原点位置として設定する。つまり、検出範囲がエンコーダの分解能の範囲内である場合は、仮の原点位置のバラツキが無視できる大きさであるため、センサ出力信号によって特定される回転角度位置をそのまま原点位置として設定する（ステップＳ２１２）。つまり、この場合は無補正となる。
【００８３】
一方、同期モードが設定されている場合（ステップＳ２０８の「Ｙｅｓ」の分岐）は、図９（ｂ）に示すように、仮の原点位置を示すセンサ出力信号の立上がり後、最初の４逓倍カウントパルス信号の立上がり位置によって特定される回転角度位置を、該当する第２リンク１９の原点位置として設定する。つまり、検出範囲がエンコーダの分解能の範囲内である場合は、仮の原点位置のバラツキが無視できる大きさであるため、仮の原点位置を、４逓倍カウントパルス信号に同期させた位置に補正し、該補正した位置を原点位置として設定する（ステップＳ２１０）。
【００８４】
また、例えば、検出範囲が１．５[°]で、パルス周期が１．０[°]である場合は、検出範囲はパルスの１周期の角度範囲内に収まっていないので（ステップＳ２０６の「Ｎｏ」の分岐）、半同期モード及び同期モードのうち設定されたモードに応じて仮の原点位置を補正し、該補正した位置を該当する第２リンク１９の原点位置として設定する。
同期モードが設定されている場合（ステップＳ２１４の「Ｎｏ」の分岐）は、図１０（ａ）に示すように、仮の原点位置を示すセンサ出力信号の立上がり後、最初のＺ相パルス信号の立上がり位置によって特定される回転角度位置を、該当する第２リンク１９の原点位置として設定する。つまり、検出範囲がエンコーダの分解能の範囲内に収まっていない場合は、仮の原点位置のバラツキが無視できない大きさのため、仮の原点位置を、Ｚ相パルス信号に同期させた位置に補正し、該補正した位置を該当する第２リンク１９の原点位置として設定する（ステップＳ２１８）。
【００８５】
一方、半同期モードが設定されている場合（ステップＳ２１４の「Ｙｅｓ」の分岐）は、図１０（ｂ）に示すように、仮の原点位置を示すセンサ出力信号の立上がり後の最初のＺ相パルス信号の立上がり後で、且つ最初の４逓倍カウントパルス信号の立上がり位置によって特定される回転角度位置を、該当する第２リンク１９の原点位置として設定する。つまり、検出範囲がエンコーダの分解能の範囲内に収まっていない場合は、仮の原点位置のバラツキが無視できない大きさのため、仮の原点位置を、Ｚ相パルス信号の立上がり後における、４逓倍カウントパルス信号に同期させた位置に補正し、該補正した位置を該当する第２リンク１９の原点位置として設定する（ステップＳ２１６）。
【００８６】
本実施形態において、上記した仮の原点位置の補正処理は、予めＲＡＭに記憶されている上記各モードに対応した回転角度位置情報を用いて行う。つまり、ＲＡＭには、各モードに対応した補正後の回転角度位置の情報が記憶されているので、モードに応じた回転角度位置を選択して、該選択した回転角度位置を原点位置として設定する。
上記の仮原点位置検出処理及び原点位置設定処理を、脚車輪型ロボット１００の各脚部１２の第１リンク１７及び第２リンク１９に対して行うことで、各リンクの原点位置の設定が完了する。
【００８７】
以上、本実施形態の脚車輪型ロボット１００は、回転関節１６、１８を介して回動自在に連結された第１リンク１７及び第２リンク１９の連結部に第１ドグ２０１及び第２ドグ２０２を、これらリンクと同じ回動範囲を回動するように設けた構成を有する。更に、回転関節１４側の第１リンク１７との連結部及び第１リンク１７の第２リンク１９との連結部に、基準回転角度位置に回動した第１ドグ２０１、及び限界回転角度位置の近傍に回動した第２ドグ２０２を検出する位置検出センサ２１０を設けた構成を有する。
【００８８】
以上により、各リンクに対して、１つのセンサ及び複数の検出範囲が異なるドグ（被検出部）を設けた簡単な構成で安全に仮の原点位置を検出することができる。
更に、本実施形態の脚車輪型ロボット１００は、仮の原点位置を検出後に、該仮の原点位置の検出範囲、エンコーダ４２の４逓倍カウントパルス信号の１周期のパルスの情報、及びエンコーダ４２の発生する各種パルス信号に基づき、仮の原点位置を補正し、該補正後の位置を原点位置として設定することが可能である。
【００８９】
これにより、モータのバッククラッシュ、センサのバラツキ、制御のバラツキなどによる仮の原点位置のバラツキを補正することができるので、安定した原点位置の設定を行うことができる。
また、本実施形態の脚車輪型ロボット１００は、過去に行われた複数回の仮原点位置検出処理の検出結果を用いて、仮の原点位置の検出範囲を算出することが可能である。
【００９０】
これにより、過去の最新の検出結果の反映された検出範囲に基づき、原点位置設定処理を実行することができるので、適切な原点位置の設定を行うことができる。また、検出範囲の算出を行うことができるので、複数回分の新たな仮の原点位置の検出結果を用いて、定期的に検出範囲を更新することで、センサや制御系の経年劣化に対応することができる。
【００９１】
なお、上記実施形態においては、検出範囲を異ならせた複数の被検出部のうち、第１ドグ２０１の検出範囲を第２ドグ２０２の検出範囲よりも小さくしたが、第１ドグ２０１の検出範囲を第２ドグ２０２の検出範囲よりも大きくしてもよい。この場合、複数の被検出部から第１ドグ２０１を特定するために、図７におけるステップＳ１０４及びステップＳ１３２の判別（Yes,No）を逆にすればよい。
【００９２】
また、上記実施形態においては、第１リンク１７の回転関節１４との連結部に設け、位置検出センサ２１０を回転関節１４側の第１リンク１７との連結部に設ける構成としたが、これに限らず、第１ドグ２０１及び第２ドグ２０２を回転関節１４側の第１リンク１７との連結部に設け、位置検出センサ２１０を第１リンク１７の回転関節１４との連結部に設ける構成としても良い。この場合は、第１リンク１７の回動位置（回転角度）と、静止した状態の第１ドグ２０１及び第２ドグ２０２の位置とが相対的に変化し、第１ドグ２０１及び第２ドグ２０２が第１リンク１７の回動範囲を回動しているのと同等の動作が行われるように、第１ドグ２０１及び第２ドグ２０２を適切な位置に設ける必要がある。例えば、第１ドグ２０１を、第１リンク１７の基準回転角度位置に設ける。
【００９３】
また、上記実施形態においては、第２リンク１９の仮原点位置を検出するために、第１ドグ２０１及び第２ドグ２０２を第２リンク１９の第１リンク１７との連結部に設け、位置検出センサ２１０を第１リンク１７の第２リンク１９との連結部に設ける構成としたが、これに限らず、第１ドグ２０１及び第２ドグ２０２を第１リンク１７の第２リンク１９との連結部に設け、位置検出センサ２１０を第２リンク１９の第１リンク１７との連結部に設ける構成としても良い。この場合は、第２リンク１９の回動位置（回転角度）と、静止した状態の第１ドグ２０１及び第２ドグ２０２の位置とが相対的に変化し、第１ドグ２０１及び第２ドグ２０２が第２リンク１９の回動範囲を回動しているのと同等の動作が行われるように、第１ドグ２０１及び第２ドグ２０２を適切な位置に設ける必要がある。例えば、第１ドグ２０１を、第２リンク１９の基準回転角度位置に設ける。
【００９４】
また、上記実施形態においては、エンコーダ４２を、４逓倍カウントでカウントするパルスカウンタを有する構成としたが、これに限らず、逓倍なし、２逓倍、８逓倍など他のカウント方法でカウントするパルスカウンタを有する構成としても良い。
また、上記実施形態においては、仮の原点位置を検出する際に、第１ドグ２０１及び第２ドグ２０２の位置検出センサ２１０の検出位置への進入方向を揃える構成としたが、これに限らず、進入方向に関係なく、位置検出センサ２１０の検出結果を仮の原点位置として検出する構成としても良い。
【００９５】
また、上記実施形態においては、第１ドグ２０１及び第２ドグ２０２と、位置検出センサ２１０とを、第１リンク１７及び第２リンク１９の関節部を構成する側の端部で且つその外側表面に取り付ける構成としたが、これに限らず、例えば、内側の表面に取り付ける構成や、第１リンク１７を駆動する回転関節１６の回転軸及びその軸受のいずれか一方に、第１ドグ２０１及び第２ドグ２０２又は位置検出センサ２１０のいずれか一方を取付け、回転軸及び軸受のいずれか他方に、第１ドグ２０１及び第２ドグ２０２又は位置検出センサ２１０のいずれか一方を取付ける構成など、他の構成としても良い。
【００９６】
また、上記本実施形態においては、複数の被検出部（例えば、第１ドグ２０１及び第２ドグ２０２）と、位置検出センサ２１０とが回動する構成を示したが、これらが直動運動する構成に適用してもよい。
また、本発明に係る移動制御システムにおいては、図１１に示すように、分散コントローラを用いて制御を行ってもよい。具体的には、図５におけるモータ指令出力Ｉ/Ｆ６１、角度取込Ｉ／Ｆ６２、センサ入力Ｉ/Ｆ６３をＣＡＮ(Controller Area Network)通信Ｉ/Ｆ６６に替えて、該ＣＡＮ通信Ｉ/Ｆ６６と、ドライバ４４，５４、脚先センサ２２，２４、障害物センサ３４、エンコーダ４２，５２、３軸姿勢センサ７０、及び位置検出センサ２１０との間に分散コントローラ４６，５６，６７，６８を設けている。このような構成とすることによって、「仮原点位置検出処理」及び「原点位置設定処理」を分散コントローラ４６，５６，６７，６８に行わせるので、メインのＣＰＵ６０の負荷を軽減させることができる。分散コントローラによる制御については、特開２００９−６４６７号公報に詳細な記載があるので、当該公報に記載された技術を採用すればよい。
【符号の説明】
【００９７】
１００  脚車輪型ロボット
２０１  第１ドグ
２０２  第２ドグ
２１０  位置検出センサ
１０  基体
１２  脚部
１４、１６、１８  回転関節
１７  第１リンク
１９  第２リンク
２０  車輪
２２、２４  脚先センサ
２６  水平レーザ
２８、３０  垂直レーザ
３２  カメラ
３４、３６  障害物センサ
４０  関節モータ
５０  車輪モータ
４２、５２  エンコーダ
４４、５４  ドライバ
６０  ＣＰＵ
６２  角度取込Ｉ／Ｆ
６４  通信Ｉ／Ｆ
７０  ３軸姿勢センサ
７６  ハブ
【図１】
0005418029.tif 000002
【図２】
0005418029.tif 000003
【図３】
0005418029.tif 000004
【図４】
0005418029.tif 000005
【図５】
0005418029.tif 000006
【図６】
0005418029.tif 000007
【図７】
0005418029.tif 000008
【図８】
0005418029.tif 000009
【図９】
0005418029.tif 000010
【図１０】
0005418029.tif 000011
【図１１】
0005418029.tif 000012