(57)【要約】【課題】距離センサに異常があるか否かを判定することができるロボット及びロボットの異常判定方法を提供すること。【解決手段】本発明にかかるロボットは、距離センサ１５と、距離センサ１５と離れて設けられた距離検出ユニット２１とを備える。ロボットはさらに、距離検出ユニット２１の出力値に基づいて、距離センサ１５と環境中にある物体５０との距離を検出する第１の距離検出手段と、距離センサ１５の出力値に基づいて、距離センサ１５と環境中にある物体５０との距離を検出する第２の距離検出手段と、第１の距離検出手段の検出結果と前記第２の距離検出手段の検出結果とを比較する比較手段と、前記比較手段の比較の結果、前記第１の距離検出手段の検出結果と前記第２の距離検出手段の検出結果とが異なる場合に、距離センサ１５が異常であると判定する異常判定手段とを備える。【選択図】図１
2012056043.tif 000002
【特許請求の範囲】
【請求項１】
距離センサと、
前記距離センサと離れて設けられた距離検出ユニットと、
前記距離検出ユニットの出力値に基づいて、前記距離センサと、環境中にある物体との距離を検出する第１の距離検出手段と、
前記距離センサの出力値に基づいて、前記距離センサと、環境中にある物体との距離を検出する第２の距離検出手段と、
前記第１の距離検出手段の検出結果と、前記第２の距離検出手段の検出結果と、を比較する比較手段と、
前記比較手段の比較の結果、前記第１の距離検出手段の検出結果と、前記第２の距離検出手段の検出結果とが異なる場合に、前記距離センサが異常であると判定する判定手段と、
を備えたロボット。
【請求項２】
前記距離センサが設けられた指部をさらに備えた、
請求項１に記載のロボット。
【請求項３】
物体を動かしているか否かを確認可能な動作判定手段をさらに備え、
前記動作判定手段が、前記ロボットが物体を動かしていないと判定した場合に、
前記第１の距離検出手段は前記距離検出ユニットの出力値に基づいて、前記距離センサと、環境中にある物体との距離を検出し、
前記第２の距離検出手段は前記距離センサの出力値に基づいて、前記距離センサと、環境中にある物体との距離を検出し、
前記比較手段は、前記第１の距離検出手段の検出結果と、前記第２の距離検出手段の検出結果とを比較し、
前記判定手段は、前記比較手段の比較の結果、前記第１の距離検出手段の検出結果と、前記第２の距離検出手段の検出結果とが異なる場合に、前記距離センサが異常であると判定する、
請求項２に記載のロボット。
【請求項４】
前記動作判定手段が、前記ロボットにおける物体の動作命令の履歴に基づいて、前記ロボットが物体を動かしていないと判定した場合に、
前記第１の距離検出手段は前記距離検出ユニットの出力値に基づいて、前記距離センサと、環境中にある物体との距離を検出し、
前記第２の距離検出手段は前記距離センサの出力値に基づいて、前記距離センサと、環境中にある物体との距離を検出し、
前記比較手段は、前記第１の距離検出手段の検出結果と、前記第２の距離検出手段の検出結果とを比較し、
前記判定手段は、前記比較手段の比較の結果、前記第１の距離検出手段の検出結果と、前記第２の距離検出手段の検出結果とが異なる場合に、前記距離センサが異常であると判定する、
請求項３に記載のロボット。
【請求項５】
前記動作判定手段が、前記ロボットにおいて最後に実行された命令が、物体を放す命令であると判定した場合に、
前記第１の距離検出手段は前記距離検出ユニットの出力値に基づいて、前記距離センサと、環境中にある物体との距離を検出し、
前記第２の距離検出手段は前記距離センサの出力値に基づいて、前記距離センサと、環境中にある物体との距離を検出し、
前記比較手段は、前記第１の距離検出手段の検出結果と、前記第２の距離検出手段の検出結果とを比較し、
前記判定手段は、前記比較手段の比較の結果、前記第１の距離検出手段の検出結果と、前記第２の距離検出手段の検出結果とが異なる場合に、前記距離センサが異常であると判定する、
請求項３又は４に記載のロボット。
【請求項６】
汚れを取る手段をさらに備え、
前記判定手段が前記距離センサに異常があると判定した場合に、前記ロボットは前記距離センサが汚れていると判断し、前記汚れを取る手段で前記距離センサの汚れを取る処理を行う、
請求項１乃至５に記載のロボット。
【請求項７】
外部への警告手段をさらに備え、
前記ロボットは、前記距離センサに異常があると判定した場合に、前記警告手段で外部に警告を発する、請求項１乃至６に記載のロボット。
【請求項８】
距離センサと、前記距離センサと離れて設けられた距離検出ユニットと、を備えるロボットにおける異常判定方法であって、
前記距離検出ユニットの出力値に基づいて、前記距離センサと、環境中にある物体との距離を検出する第１のステップと、
前記距離センサの出力値に基づいて、前記距離センサと、環境中にある物体との距離を検出する第２のステップと、
前記第１のステップの検出結果と、前記第２のステップの検出結果と、を比較する第３のステップと、
前記第３のステップにおける比較の結果、前記第１のステップの検出結果と、前記第２のステップの検出結果が異なる場合に、前記距離センサが異常であると判定する第４のステップと、
を備えた異常判定方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はロボット及びロボットの異常判定方法に関し、特に距離センサを有するロボット及びロボットの異常判定方法に関する。
【背景技術】
【０００２】
ロボットの技術において物体を把持する技術が、近年進展している。例えば特許文献１では、把持しようとする物体の形状及び材質に関係なく、より迅速かつ正確に物体に接近し、安全に物体を把持することができるロボット、ロボットハンド及びロボットハンドの制御方法の技術が開示されている。特許文献１に記載のロボットには、ロボットハンドの手の平及び複数の指に距離センサが設置されており、ロボットはその距離センサで物体までの距離を測りながら物体を把持する。具体的には、特許文献１に記載のロボットは、物体を把持する際に、手の平の第１距離センサを用いて手の平を物体に接近させ、複数の指に設置される第２距離センサを用いて複数の指を物体に接近させ、手の平及び複数の指を物体に接触させることで、物体を把持する。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００９−２７４２０４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ところで、距離センサを有するロボットにおいては、距離センサに汚れが付着する等の異常が起こった場合に、距離センサの誤検出によってロボットの動作に支障が出る可能性が考えられる。例えば、ハンド部に距離センサを有するロボットが、ハンド部を用いて物体の把持動作を行うとする。その際に、ハンド部にある距離センサに汚れがあると、ロボットは、ハンド部が既に物体と接触していると誤判定をする。その誤判定により、ハンド部は把持動作の途中で停止等を起こしてしまい、把持動作のガタツキが大きくなってしまう可能性が高くなる。結果として、ロボットは精密な制御ができなくなり、物体を落としてしまうこともありえる。これは、距離センサに異常があるか否かを、ロボットが判定できないことに問題点がある。
【０００５】
本発明は、このような問題点を解決するためになされたものであり、距離センサに異常があるか否かを判定することができるロボット及びロボットの異常判定方法を提供することを目的とする。
【課題を解決するための手段】
【０００６】
本発明にかかるロボットは、距離センサと、前記距離センサと離れて設けられた距離検出ユニットを備える。ロボットはさらに、前記距離検出ユニットの出力値に基づいて、前記距離センサと環境中にある物体との距離を検出する第１の距離検出手段と、前記距離センサの出力値に基づいて、前記距離センサと環境中にある物体との距離を検出する第２の距離検出手段と、前記第１の距離検出手段の検出結果と前記第２の距離検出手段の検出結果とを比較する比較手段と、前記比較手段の比較の結果、前記第１の距離検出手段の検出結果と前記第２の距離検出手段の検出結果とが異なる場合に、前記距離センサが異常であると判定する判定手段とを備える。このような構成により、距離センサの検出結果と距離検出ユニットの検出結果とを比較し、両者の検出結果の相違から、距離センサに異常があるか否かを判定することができる。
【０００７】
前記ロボットは、前記距離センサが設けられた指部をさらに備えてもよい。これにより、正常であると確認できた距離センサを用いることで、物体を円滑に動かすことができる。
【０００８】
また、前記ロボットは、物体を動かしているか否かを確認可能な動作判定手段をさらに備え、この動作判定手段が、前記ロボットが物体を動かしていないと判定した場合に、前記第１の距離検出手段は、前記距離検出ユニットの出力値に基づいて、前記距離センサと環境中にある物体との距離を検出し、前記第２の距離検出手段は、前記距離センサの出力値に基づいて、前記距離センサと環境中にある物体との距離を検出し、前記比較手段は、前記第１の距離検出手段の検出結果と前記第２の距離検出手段の検出結果とを比較して、前記判定手段は、前記比較手段の比較の結果、前記第１の距離検出手段の検出結果と前記第２の距離検出手段の検出結果とが異なる場合に、前記距離センサが異常であると判定するようにしてもよい。これにより、ロボットが物体を動かしている場合、距離センサの異常の検出判定を行わないことで、ロボットが行う処理の負担を減らすことができる。
【０００９】
前記動作判定手段は、ロボットにおける物体の動作命令の履歴に基づき、前記ロボットが物体を動かしていないと判定した場合に、前記第１の距離検出手段は、前記距離検出ユニットの出力値に基づいて、前記距離センサと環境中にある物体との距離を検出し、前記第２の距離検出手段は、前記距離センサの出力値に基づいて、前記距離センサと環境中にある物体との距離を検出し、前記比較手段は、前記第１の距離検出手段の検出結果と前記第２の距離検出手段の検出結果とを比較して、前記判定手段は、前記比較手段の比較の結果、前記第１の距離検出手段の検出結果と前記第２の距離検出手段の検出結果とが異なる場合に、前記距離センサが異常であると判定するようにしてもよい。これにより、実行された動作命令の履歴を動作判定に用いることで、効率的に動作判定を行うことができる。
【００１０】
さらに、前記動作判定手段は、ロボットにおいて最後に実行された命令が物体を放す命令であると判定した場合に、前記第１の距離検出手段は、前記距離検出ユニットの出力値に基づいて、前記距離センサと環境中にある物体との距離を検出し、前記第２の距離検出手段は、前記距離センサの出力値に基づいて、前記距離センサと環境中にある物体との距離を検出し、前記比較手段は、前記第１の距離検出手段の検出結果と前記第２の距離検出手段の検出結果とを比較して、前記判定手段は、前記比較手段の比較の結果、前記第１の距離検出手段の検出結果と前記第２の距離検出手段の検出結果とが異なる場合に、前記距離センサが異常であると判定するようにしてもよい。これにより、物体が放された後に距離センサの確認を行うことで、直前に動かされた物体により距離センサに異常が生じた場合でも、速やかに距離センサを正常の状態にすることができる。
【００１１】
前記ロボットは、汚れを取る手段をさらに備え、前記判定手段が距離センサに異常があると判定した場合には、前記ロボットは前記距離センサが汚れていると判断し、汚れを取る手段で前記距離センサの汚れを取る処理を行うようにしてもよい。これにより、距離センサの汚れを取ることができる。
【００１２】
前記ロボットは、外部への警告手段をさらに備え、距離センサに異常があると判定した場合に、警告手段で外部に警告を発するようにしてもよい。これにより、外部に警告を行うことで、距離センサの異常を外部に知らせることができる。
【００１３】
本発明にかかるロボットの異常判定方法は、距離センサと、前記距離センサと離れて設けられた距離検出ユニットと、を備えるロボットにおける異常判定方法である。異常判定方法は、前記距離検出ユニットの出力値に基づいて、前記距離センサと環境中にある物体との距離を検出する第１のステップと、前記距離センサの出力値に基づいて前記距離センサと環境中にある物体との距離を検出する第２のステップと、前記第１のステップの検出結果と前記第２のステップの検出結果とを比較する第３のステップと、前記第３のステップにおける比較の結果、前記第１のステップの検出結果と前記第２のステップの検出結果が異なる場合に前記距離センサが異常であると判定する第４のステップと、を備えている。これにより、距離センサの検出結果と距離検出ユニットの検出結果とを比較することで、両者の検出結果の相違から、距離センサに異常があるか否かの判定ができる。
【発明の効果】
【００１４】
本発明により、距離センサに異常があるか否かを判定することができるロボット及びロボットの異常判定方法を提供することができる。
【図面の簡単な説明】
【００１５】
【図１】実施の形態１にかかる、ロボットの構成例を示す図である。
【図２】実施の形態１にかかる、ロボットの指部の構成例を示す図である。
【図３】実施の形態１にかかる、ロボットの制御部の構成例を示す図である。
【図４】実施の形態１にかかる、指部の把持動作の例を示す図その１である。
【図５】実施の形態１にかかる、指部の把持動作の例を示す図その２である。
【図６】実施の形態１にかかる、指部の把持動作の例を示す図その３である。
【図７】実施の形態１にかかる、指部の把持動作の例を示す図その４である。
【図８】実施の形態１にかかる、汚れが距離センサに付着した場合の距離センサの測定値の挙動を示す図である。
【図９】実施の形態１にかかる、距離センサの汚れを判定する方法の具体例を示すフローチャートである。
【図１０】実施の形態２にかかる、ロボットの制御部の構成例を示す図である。
【図１１】実施の形態２にかかる、距離センサの汚れを判定する方法の具体例を示すフローチャートである。
【図１２】実施の形態２にかかる、ロボットの物体への動作命令の例を示す図である。
【発明を実施するための形態】
【００１６】
実施の形態１
以下、図面を参照して本発明の実施の形態１について説明する。図１は、本実施の形態１にかかるロボット１００の構成例を示す図である。ロボット１００は、ヒトの形を模して製造されたロボットであり、以下に示す通り、例えば箱やボールなどの把持の対象物（以下、把持対象物ともいう）を把持することができる。ロボット１００は、腕部１、頭部２０、胴体部３０を備えている。
【００１７】
腕部１はロボット１００において２本あり、胴体部３０には、右腕部、左腕部として、２本の腕部１が接続されている。右腕部と、左腕部とは略同一の構成を有している。腕部１は、肩関節２、上腕部３、肘関節４、前腕部５、手首関節６、掌部８を備えている。胴体部３０には、上腕部３の一端が、肩関節２を介して揺動自在に取り付けられている。
【００１８】
上腕部３の他端には、肘関節４を介して、前腕部５の一端が接続されている。前腕部５は肘関節４を支点として揺動可能である。また、上腕部３の内部には前腕部５を揺動させるアクチュエータ７ａが設けられている。アクチュエータ７ａとしては、ソレノイドやモータ等を用いることができる。このアクチュエータ７ａは、制御部２００から出力される制御信号により駆動される。
【００１９】
前腕部５の他端には、手首関節６を介して、掌部８が連結されている。掌部８は、手首関節６を支点として揺動可能である。前腕部５の内部には掌部８を揺動させるアクチュエータ７ｂが設けられている。アクチュエータ７ｂとしては、ソレノイドやモータ等を用いることができる。このアクチュエータ７ｂもまた、制御部２００から出力される制御信号により駆動される。
【００２０】
掌部８の他端には、第１関節１１（図２を参照）を介して、２本の指部１０ａ及び１０ｂが連結されている。指部１０ａ、１０ｂは略同一の構成を有している。また、指部１０ａ、１０ｂは物体を把持できるように、掌部８において離れた位置に設置されている。
【００２１】
ここで、図２を参照して、指部１０ａの構成について説明する。指部１０ａは、第１関節１１、第２関節１２、リンク１３、指先部１４、距離センサ１５ａ及び１５ｂを有している。第１関節１１は、指部１０ａを内転及び外転させ、同一掌部８に設置されているもう片方の指部１０ｂとの間隔の調整を行う。第２関節１２は、指部１０ａを屈曲させる。なお、以降の記述で単に「指部１０」と書く場合には、複数ある指部１０のうちの任意のものを示すとする。「距離センサ１５」と書く場合も、同様である。
【００２２】
距離センサ１５は、指部１０ａにおいてリンク１３及び指先部１４に１個ずつ設けられている。距離センサ１５は、指部１０が動かす対象物との距離を測定する。距離センサ１５に用いられる距離センサは、例えばＣＣＤ（Ｃｈａｒｇｅ  Ｃｏｕｐｌｅｄ  Ｄｅｖｉｃｅ）カメラやＣＭＯＳ（Ｃｏｍｐｌｅｍｅｎｔａｒｙ  Ｍｅｔａｌ  Ｏｘｉｄｅ  Ｓｅｍｉｃｏｎｄｕｃｔｏｒ）カメラ等の電子カメラを用いてもよい。または、距離センサ１５に超音波、レーザー若しくは赤外線等を用いたカメラを用いてもよい。
【００２３】
頭部２０には、距離検出ユニット２１ａ及び２１ｂが設けられている。以降の記述で単に「距離検出ユニット２１」と書く場合には、複数ある距離検出ユニット２１の任意のものを示すとする。この距離検出ユニット２１は、距離センサ１５（指部１０）と環境中にある物体の距離を測定する。ここでいう「環境」とは、ロボット１００以外に、ロボット１００の周辺にあってロボット１００が認識可能な全ての物体のことを指す。以降で「環境」という場合も同様である。距離検出ユニット２１は、ステレオカメラ（図示略）と、画像認識手段（図示略）と、算出手段（図示略）とを備えている。ステレオカメラは、画像を撮影し、そのデータを画像認識手段に出力する。画像認識手段は、出力された画像データに基づいて、画像中にある物体の認識を三次元的に行う。算出手段は、三次元的に物体の認識が成された画像から、画像中にある複数の物体間の距離を算出する。以上のようにして、距離検出ユニット２１は、距離センサ１５と環境中にある物体の距離を測定することができる。距離検出ユニット２１が、距離センサ１５と接触している物体があるか否かを明確に確認できる程度に距離センサ１５から離れていれば、距離検出ユニット２１は任意の場所に設けられていてよい。
【００２４】
胴体部３０は、略直方体の形状を有している。胴体部３０の内部には、ロボット１００の各部の動作を統括的に制御する制御部２００が設けられている。制御部２００の詳細な構成については、次に説明する。また、胴体部３０の表面には、拭き取り布４０（汚れを取る手段）が設けられている。拭き取り布４０は、胴体部３０に備え付けられている布である。
【００２５】
実施の形態１にかかる制御部２００の構成を、図３で示す。制御部２００は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）２０１、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）２０２、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）２０３、通常動作部２０４、距離検出部２０５（第１の距離検出手段及び第２の距離検出手段）、汚れ判定部（比較手段及び判定手段）２０６、除去動作部２０７を備えている。ＣＰＵ２０１は、ＲＡＭ２０２に記憶された情報を読み込み、ＲＯＭ２０３に記憶されているプログラムを実行することで、プログラムはＣＰＵ２０１などのハードウェアを通常動作部２０４、距離検出部２０５、汚れ判定部２０６、除去動作部２０７として機能させる。ＲＡＭ２０２には、距離センサ１５または距離検出ユニット２１の出力値である距離の測定データに基づいて、距離検出部２０５が検出した結果である距離データが記憶される。ＲＯＭ２０３には、ロボット１００の各部が行う動作についてのプログラムが記憶されている。通常動作部２０４は、ロボット１００単独での動作や、ロボット１００が物体に対して行う把持や移動といった動作の制御を行う。距離検出部２０５は、距離センサ１５または距離検出ユニット２１の出力値である距離の測定データに基づいて、測定した距離を検出し、その結果である距離データをＲＡＭ２０２に記憶させる。汚れ判定部２０６は、後に述べる距離センサ１５の汚れの判定において、距離センサ１５が汚れているかどうかの判定を行う。除去動作部２０７は、汚れ判定部２０６において距離センサ１５が汚れていると判定された場合に、ロボット１００の腕部１などを動作させ、距離センサ１５の汚れを除去させるように制御を行う。
【００２６】
実施の形態１にかかるロボット１００の指部１０の把持動作について、図４を用いて説明する。図４では、指部１０ａ及び１０ｂの間に距離をおいて把持対象物５０がある。この場合、指部１０ａ及び１０ｂにおける距離センサ１５の働きが正常ならば、指部１０ａ及び１０ｂに設けられた全ての距離センサ１５の出力値に基づき、距離検出部２０５は、指部１０ａ及び１０ｂと把持対象物５０との距離を０でない値と検出する。こうして検出された距離情報はＲＡＭ２０２に記憶される。
【００２７】
図４の状態から、把持対象物５０を把持する命令が制御部２００で実行される場合に、ＣＰＵ２０１はＲＡＭ２０２に記憶された前述の距離情報を読み込んだ上で、ＲＯＭ２０３に記憶されているプログラムを実行することで、プログラムはＣＰＵ２０１などを通常動作部２０４として機能させる。それにより、通常動作部２０４は、ロボット１００の指部１０ａ及び１０ｂを動作させ、把持対象物５０を把持させるように制御を行う。具体的に通常動作部２０４が行う制御は、以下が一例として言える。通常動作部２０４は、図４の状態から、把持対象物５０の形に合わせて指部１０ａ及び１０ｂの位置を把持対象物５０と均等な距離を保たせるように制御し、その上で指部１０ａ及び１０ｂを把持対象物５０に接近させ、接触させて適切な力を加えさせることで、把持対象物５０を把持させるような制御を行う。
【００２８】
通常動作部２０４がロボット１００の指部１０ａ及び１０ｂに把持をさせる制御の方法として、指部１０ａ及び１０ｂの指先部１４に設けられた距離センサ１５と、把持対象物５０との距離を０の値にするように、指部１０ａ及び１０ｂを操作することが一例として考えられる。その制御に基づき、指部１０ａ及び１０ｂによって、把持対象物５０が把持されている状態が図５である。図５においては、通常動作部２０４が指部１０ａ及び１０ｂの指先部１４を適度な力を把持対象物５０に加えながら接触させるよう制御することで、指部１０ａ及び１０ｂは把持対象物５０を把持している。このとき、指先部１４に設けられた距離センサ１５の出力値に基づいて、距離検出部２０５は把持対象物５０との距離が０になることを検出し、その結果をＲＡＭ２０２に記憶させる。以上のように、距離センサ１５の働きが正常である場合には、通常動作部２０４の制御に基づいて、把持対象物５０を正確に把持することができる。なお、把持動作は指先部１４のみならず、リンク１３のみを用いてもよい。図６はその一例であり、通常動作部２０４の制御に基づいて、指部１０ａ及び１０ｂのリンク１３に設けられた距離センサ１５と把持対象物５０との距離を０の値にするように、指部１０ａ及び１０ｂが把持対象物５０を把持したものである。あるいは、通常動作部２０４は把持動作を行う際に、把持対象物５０と、リンク１３及び指先部１４の両方を接触させるように指部１０ａ及び１０ｂを制御してもよい。
【００２９】
図４の状態において、把持対象物５０を把持する命令が制御部２００で実行されない場合には、通常動作部２０４は指部１０ａ及び１０ｂを把持対象物５０と決められた距離を保って停止させる制御を行う。この制御を行った後に通常動作部２０４は指部１０ａ及び１０ｂの動作を停止させ、把持対象物５０を把持する命令が入力される場合に備える。
【００３０】
ここで図４において、指部１０ａの距離センサ１５ａ及び１５ｂに汚れが付着しており、距離センサ１５ａ及び１５ｂが正常に把持対象物５０との距離を測定できないという場合を考える。つまり、その場合には、把持対象物５０と距離センサ１５ａ及び１５ｂとの距離が０でないにも関わらず、距離センサ１５ａ及び１５ｂは把持対象物５０との距離が０となるような距離の測定データを距離検出部２０５に出力する。距離検出部２０５はこの測定データから距離データを検出した後、ＲＡＭ２０２に距離データを記憶させる。通常動作部２０４はその距離データを読み込み、指部１０ａが既に物体と接触していると誤判定を起こす。
【００３１】
この状態から、把持対象物５０を把持する命令が制御部２００で実行されたとする。その際には、通常動作部２０４は、指部１０ｂを、指部１０ｂと把持対象物５０とが接触させるような操作を行う。しかし、前述の通り、通常動作部２０４は指部１０ａが既に物体と接触していると誤判定しているため、指部１０ａと把持対象物５０とを接触させる制御は行わない。それにより、把持対象物５０と接触するのは指部１０ｂのみになり、指部１０ａ及び１０ｂで把持対象物５０を確実に把持することができない。具体的には、図７のような状態になる。以上が、距離センサ１５に汚れが付着している場合に、ロボット１００の指部１０の把持動作において考えられる問題点である。
【００３２】
距離センサ１５に汚れがつく原因として、ロボット１００の把持対象物に汚れが付着しており、その汚れが距離センサ１５に付着することが考えられる。図８は、その際に距離センサ１５が測定した測定データから、距離検出部２０５が検出する距離データの一例である。時間ｔ０において、距離センサ１５が測定する対象物との距離はＬであり、ロボット１００の指部１０はまだ当該対象物を把持していない。ここで、時間ｔ１において、当該対象物を把持する命令が制御部２００で実行されたとする。すると、ＣＰＵ２０１はＲＡＭ２０２に記憶された前述の距離データを読み込んでＲＯＭ２０３に記憶されているプログラムを実行し、プログラムはＣＰＵ２０１などを通常動作部２０４として機能させる。通常動作部２０４の制御により、指部１０は当該対象物の把持動作を行う。それにより、距離センサ１５と当該対象物との距離は時間を追うごとに狭まり、時間ｔ２にて距離センサ１５と当該対象物との実際の距離は０になる。距離センサ１５が測定する当該対象物との距離もまた、０になる。つまり、距離センサ１５と当該対象物とは接触する。当該対象物において汚れが付着していた場合、この時点で距離センサ１５に汚れが付着することになる。
【００３３】
時間ｔ２から時間ｔ３までの間、制御部２００において把持動作を続ける命令が実行されることで、指部１０は当該対象物を把持し続ける。時間ｔ３で、制御部２００において把持動作をやめ、物体を放す命令が実行されると、通常動作部２０４の制御により、指部１０は物体を放す。その後、通常動作部２０４が、指部１０を当該対象物から指部１０を離し、元の位置に戻らせる制御を行う。このとき、把持動作において距離センサ１５に汚れが付着した場合には、距離センサ１５の測定値は０を示したままになる。この状態は、図５において実線で示している。もし、距離センサ１５に汚れが付着していない場合においては、図５において点線で示した通り、時間ｔ３〜時間ｔ４において、距離センサ１５の出力値は０からＬに移行する。このように、汚れがついた物体を把持することで距離センサ１５に汚れが付着する場合、汚れがついた物体を把持した後には、距離センサ１５は正確な距離測定ができなくなる。
【００３４】
以上の説明において、本実施の形態におけるロボット１００の外部構成、内部構成及びその働きについて説明を行った。以降では、ロボット１００の制御部２００が、距離センサ１５に汚れがあるか否かについて判定を行う際の詳細について、図９のフローチャートを用いて説明する。ここで、汚れの有無を判定する対象である距離センサは指部１０ａに設けられた距離センサ１５ａであり、判定に際して用いる距離検出ユニットは頭部２０にある距離検出ユニット２１ａとする。また、ロボット１００の周辺にある物体は、図４で示した把持対象物５０のみとする。
【００３５】
距離検出部２０５は、距離センサ１５ａの汚れの有無の判定を行う際、まず距離検出ユニット２１ａの測定値を用いて、環境に、距離センサ１５ａ（指部１０ａ）が接触しているかどうかの判定を行う（Ｓ１）。ここでいう環境とは、ロボット１００以外で、ロボット１００の周辺にある物体のことを指す。具体的な動作として、距離検出ユニット２１ａは、距離センサ１５ａと、距離センサ１５ａの周辺の環境中にある把持対象物５０との距離測定を行う。距離検出ユニット２１ａの距離測定の方法は、前述の通りである。距離検出部２０５は、距離検出ユニット２１ａが出力した測定データに基づいて距離データを検出し、その結果をＲＡＭ２０２に記憶させる。距離検出部２０５は検出された距離データから、環境に、距離センサ１５ａが接触しているかどうかの判定を行う。
【００３６】
このとき、距離検出部２０５が、距離センサ１５ａと把持対象物５０との距離が０もしくはほぼ０となると判定すれば、距離検出部２０５は、環境と距離センサ１５ａとが接触していると判定する。距離検出部２０５が、距離センサ１５ａと把持対象物５０との距離が０もしくはほぼ０とならないと判定すれば、距離検出部２０５は、環境と距離センサ１５ａとは接触していないと判定する。
【００３７】
ステップＳ１で距離検出部２０５が、環境と距離センサ１５ａとが接触していると判定した場合、制御部２００は、命令が実行された場合にはロボット１００の各部をその通りに制御し、命令が実行されなければロボット１００の各部を停止させて待機状態にさせるといった、ロボット１００の通常動作の制御を行う（Ｓ４）。命令が実行された場合、制御部２００中のＣＰＵ２０１がＲＯＭ２０３に記憶されたプログラムを実行することで、ＣＰＵ２０１などが通常動作部２０４として機能することにより、ロボット１００の通常動作が行われる。
【００３８】
なお、命令が実行された場合にロボット１００の各部がステップＳ４で行う通常動作の内容は次の通りである。指部１０ａが把持対象物５０と接触しているが把持をしていない場合は、通常動作部２０４の制御に基づき、把持対象物５０を把持するように指部１０ａを操作することや、把持対象物５０から指部１０ａを放すように動作することが例としていえる。指部１０ａが把持対象物５０を把持している場合、指部１０ａは通常動作部２０４の制御に基づき、把持対象物５０を移動させることや、把持対象物５０から指部１０ａを放すように動作することが例としていえる。
【００３９】
距離検出部２０５が、ステップＳ１において環境に距離センサ１５ａが接触していないと判定した場合、距離検出部２０５はロボット１００（以下、「自己」とも記す）に距離センサ１５ａ（指部１０ａ）が接触しているかどうかを判定する（Ｓ２）。ステップＳ２の具体的な判定方法は、ステップＳ１と同様である。もしステップＳ２で距離検出部２０５が自己に距離センサ１５ａが接触していると判定した場合は、ステップＳ４に進み、制御部２００はロボット１００に通常動作を行わせるような制御を行う。
【００４０】
ステップＳ２において、距離検出部２０５は、自己と距離センサ１５ａが接触していないと判定した場合、汚れ判定部２０６は距離センサ１５ａの値が正常かどうかを判定する（Ｓ３）。汚れ判定部２０６は、距離センサ１５ａの出力値から得られた距離データをＲＡＭ２０２から読み込み、測定した環境中の物体の中で、距離センサ１５ａとの間の距離が０もしくはほぼ０になるものがあるかを判定する。この場合には、汚れ判定部２０６は、距離センサ１５ａが測定したデータに基づき、距離センサ１５ａと把持対象物５０との距離が、０またはそれに近い値になるか否かを判定する。このステップＳ３により、制御部２００は、距離センサ１５ａの値が正常かどうかを判定する。
【００４１】
ここで距離センサ１５ａが正常ならば、ステップＳ３において把持対象物５０と距離センサ１５ａとの間の距離は、０もしくはほぼ０とは判定されない。その場合はステップＳ４に進み、通常動作部２０４はロボット１００に通常動作を行わせるような制御を行う。
【００４２】
ステップＳ３において、把持対象物５０と距離センサ１５ａとの距離が、０もしくはほぼ０であると判定されたとする。つまり、ステップＳ３において、距離センサ１５ａと距離検出ユニット２１ａとの測定から得られた距離データが、異なると判定されたとする。その場合、汚れ判定部２０６は、距離センサ１５ａが汚れていると判定する。ＣＰＵ２０１は、ＲＯＭ２０３に記憶されているプログラムを実行することで、プログラムはＣＰＵ２０１などを除去動作部２０７として機能させる。除去動作部２０７は、ロボット１００の各部が距離センサ１５ａの汚れを除去する動作をするような制御を行う（Ｓ５）。具体的な汚れの除去動作としては、汚れ判定部２０６の制御に基づき、ロボット１００の腕部１、指部１０は拭き取り布４０に距離センサ１５をこすりつける動作を行うことで、距離センサ１５の汚れを拭き取る。
【００４３】
以上、説明した通り、本発明の実施の形態１において、制御部２００は距離センサ１５ａの汚れの有無を判定することができる。また、汚れがあると判定した場合には、除去動作部２０７の制御に基づき、拭き取り布を用いることで距離センサ１５ａの汚れを拭き取ることができる。また、正常であると確認できた距離センサ１５ａを用いることで、把持対象物５０を円滑に動かすことができる。
【００４４】
実施の形態２
次に、図面を参照して本発明の実施の形態２について説明する。なお、この発明の実施の形態２にかかるロボット１００の構成及びロボット１００における指部１０の構成は、図１及び図２に示す構成と同様であり、説明を省略する。また、ロボット１００の指部１０の把持動作も、図４、図５、図６、図７と同様であるため、説明を省略する。
【００４５】
実施の形態２にかかる制御部２００の構成を、図１０で示す。実施の形態２にかかる制御部２００には、実施の形態１の制御部２００の構成要素に加えて、動作判定部２０８（動作判定手段）がさらに備わっている。動作判定部２０８は、後述する距離センサ１５ａの汚れ検出の判定において、指部１０が物体を動かしているか否かの判定を行う。動作判定部２０８は、ＣＰＵ２０１がＲＡＭ２０２に記憶された情報を読み込み、ＲＯＭ２０３に記憶されているプログラムを実行することで、ＣＰＵ２０１などのハードウェアがその機能を果たす。
【００４６】
以降では、ロボット１００の制御部２００が、距離センサ１５に汚れがあるか否かについて判定を行う際の詳細について、図１１のフローチャートを用いて説明する。実施の形態１での説明と同様、汚れの有無を判定する対象である距離センサは指部１０ａに設けられた距離センサ１５ａであり、判定に際して用いる距離検出ユニットは頭部２０にある距離検出ユニット２１ａとする。また、ロボット１００の周辺にある物体は、図４で示した把持対象物５０のみとする。
【００４７】
距離センサ１５ａの汚れの有無の判定を行う際、動作判定部２０８は、ロボット１００の各部が、現在物体を動かしているか否かの動作判定を行う（Ｓ１）。この場合は、動作判定部２０８は、ロボット１００の各部が把持対象物５０を動かしているか否かの判定を行う。ここでステップＳ１を行う理由として、ロボット１００の各部が物体を動作中であると判定された場合、距離センサ１５ａの汚れの検出判定を行わないことで、制御部２００が行う処理の負担を減らせることがいえる。
【００４８】
動作判定部２０８が行うステップＳ１の判定は、ロボットの指部１０に設けられたモータトルク（図示略）や力センサ（図示略）を用いて行ってもよい。具体的には、制御部２００はモータトルクや力センサから算出したデータをＲＡＭ２０２に記憶し、動作判定部２０８はＲＡＭ２０２に記憶された前記データを参照して、指部１０が物体を動かしているか否かの判定を行う。
【００４９】
あるいは、動作判定部２０８は、ステップＳ１で物体を動かしているか否かの判定を行う際、「過去に物体を動かす命令が制御部２００において発行され、ロボットが実行に移したか否か」といった履歴か、「物体を放すという命令が制御部２００において発行され、ロボットが実行に移したか否か」といった動作に関する命令の履歴情報を用いて、動作判定を行ってもよい。図１２は、そのような履歴情報を示したマトリックスである。図１２における「０」は命令が成されていないか、命令が成されたが取り消されたことを示している。図１２における「１」は、現在、命令が成されていることを示している。つまり、図１２に示した履歴情報は、現在ロボット１００の指部１０が物体を把持し、動かしている最中であることを表している。この場合には、図１１より、通常動作部２０４はステップＳ５の通常動作を行う。
【００５０】
特に制御部２００は、ステップＳ１で物体を動かしているか否かの判定を行う際、動作判定部２０８が「物体を放すという命令が制御部２００において最後に発行され、ロボットが実行に移した」と判定した場合に、図１１のステップＳ２以降の判定を行うようにしてもよい。これにより、制御部２００は物体を放した後に距離センサ１５ａの確認を行うことで、直前にロボット１００の指部１０が動かした物体により距離センサ１５ａに汚れが付着した場合でも、速やかに距離センサ１５ａを正常の状態にすることができる。
【００５１】
なお、図１２に示したような履歴情報は、ＲＡＭ２０２に記憶されており、制御部２００において新たな命令が実行された際に、ＣＰＵ２０１が更新を行っている。このような動作命令の履歴に基づいてステップＳ１の判定を行うことで、前述のようにトルクやセンサを用いてステップＳ１の判定を行うのに比べ、動作判定部２０８は効率的に動作確認の判定を行うことができる。
【００５２】
図１１のステップＳ２以降については、図９のステップＳ１以降のステップと同様の処理になるので、説明を省略する。このようにして、本発明の実施の形態２においても実施の形態１と同様に、制御部２００は距離センサ１５ａの汚れの有無を判定し、汚れがあると判定した場合には、除去動作部２０７の制御に基づき、拭き取り布を用いることで距離センサ１５ａの汚れを拭き取ることができる。また、本発明の実施の形態２においては、ロボット１００は物体を動かしているか否かを確認可能な動作判定部２０８を備えていることで、ロボット１００の各部が物体を動かしている場合、制御部２００は距離センサ１５ａの汚れ検出判定を行わずに済む。これにより、ロボット１００の制御部２００が行う処理の負担を減らすことができる。
【００５３】
ここで、実施の形態１及び２で示した汚れ検出の判定方法においては、距離検出部２０５はステップＳ１で環境に距離センサ（指部）が接触しているか否かの判定を行った後、ステップＳ２で自己に距離センサ（指部）が接触しているか否かの判定を行うとしたが、ステップＳ１とステップＳ２の順番は逆でもよい。更に、距離検出部２０５がステップＳ１とステップＳ２とを同時に行うような、汚れ検出の判定方法でもよい。つまり、距離検出部２０５が、ロボット自身を含む周辺環境にある物体と距離センサ１５との距離を測定して、距離センサ１５との距離が０もしくはほぼ０になる物体があるかどうかを判定するステップを備えた汚れ検出の判定方法であれば、十分である。
【００５４】
実施の形態１及び２では、環境中にある物体と、距離センサ１５ａとの「距離が０であるか否か」を判断基準にして、制御部２００は距離センサ１５ａの判定を行った。しかし、距離検出部２０５が検出した、距離検出ユニット２１ａの測定による距離センサ１５ａと把持対象物５０との距離と、距離センサ１５ａの測定による距離センサ１５ａと把持対象物５０との距離とが異なる場合も考えられる。（両者とも、検出された距離は０でないとする。）その場合でも、距離センサ１５に汚れがあると汚れ判定部２０６が判定するような、ロボット１００の構成でもよい。例えば、図４に示した状態において、距離センサ１５ａの測定により、距離センサ１５ａと把持対象物５０との距離が１０ｃｍと検出され、距離検出ユニット２１ａの測定により、距離センサ１５ａと把持対象物５０との距離が８ｃｍと検出されたとする。その場合に、汚れ判定部２０６は、距離センサ１５ａが汚れていると判定する。
【００５５】
その場合に制御部２００が行う汚れ検出の判定方法は、次のようになる。まず、距離検出部２０５は、距離検出ユニット２１ａの出力値に基づき、距離センサ１５ａと把持対象物５０との距離の検出を行う第１のステップと、距離センサ１５ａの出力値に基づき、距離センサ１５ａと把持対象物５０との距離の検出を行う第２のステップとを行う。このとき、距離検出部２０５はこの第１のステップと第２のステップのどちらかを先に行ってもよいし、両者とも同時に行うようにしてもよい。距離検出部２０５が行った第１のステップ及び第２のステップによる検出の結果は、汚れ判定部２０６で比較される。具体的には、汚れ判定部２０６は、第１のステップで得られた把持対象物５０と距離センサ１５ａとの距離データと、第２のステップで得られた把持対象物５０と距離センサ１５ａとの距離データとが、略同一であるかを判定する。もし、両者の結果が、ロボットが物体を動かすのに影響を及ぼしうる程度に異なるものであれば、汚れ判定部２０６は、距離センサ１５ａが汚れているという判定を行う。このような構成により、制御部２００は、距離センサ１５ａの検出結果と距離検出ユニット２１ａの検出結果とを比較し、両者の検出結果の相違から、距離センサ１５ａに異常があるか否かを判定することができる。
【００５６】
実施の形態１及び２では、距離センサ１５ａとの距離を測る対象として把持対象物５０を例にしたが、距離を測る対象としては環境にあるそれ以外の物体でもよいし、ロボット１００の本体でもよい。
【００５７】
なお、本発明は上記実施の形態に限られたものではなく、趣旨を逸脱しない範囲で適宜変更することが可能である。例えば、距離センサの汚れを取る方法として、実施の形態では、拭き取り布に距離センサをこすりつけるという方法を記した。しかし他にも、距離センサの近傍にワイパーを備え、距離センサが汚れたと判定されたときに、ワイパーで当該距離センサを拭くようなロボットの構成でもよい。また、ウオッシャーを備え、距離センサが汚れたと判定されたときに、水や洗剤等の液体で当該距離センサを洗浄するようなロボットの構成でもよい。距離検出ユニットも、距離センサと環境中にある物体との間の距離を測定できるのであれば、実施の形態で記したもの以外の構成でもよい。
【００５８】
また、ロボットに警告手段を搭載し、距離センサが汚れたと判定されたときに、外部に警告を発するようなロボットの構成でもよい。具体的な警告手段としては、例えば、ロボットの外部にランプを備え、距離センサが汚れたと判定されたときに当該ランプを点滅させるようにしてもよい。あるいは、ロボットの制御部をパソコン等の情報機器と連絡させ、距離センサが汚れたと判定されたときに当該情報機器に警告を出すようなロボットの構成でもよい。これにより、ロボットは外部に警告を行うことで、距離センサの異常を外部に知らせることができる。その場合に、距離センサの汚れを取る手段は設けても設けなくてもよい。汚れを取る手段を設けない場合は、警告を受けた人間が、距離センサの汚れを取ることが考えられる。
【００５９】
上記実施の形態においては、距離検出ユニット２１ａが「距離センサ１５ａとの距離が０もしくはほぼ０となる物体が存在しない」と判定し、距離センサ１５ａが「距離センサ１５ａとの距離が０もしくはほぼ０となる物体が存在する」と判定した場合には、制御部２００は距離センサ１５が汚れていると判定した。しかしそのような場合には、距離センサ１５ａは汚れている訳ではなく、壊れているといった異常があることも考えられる。なので、本発明の他の態様におけるロボットとして、前述の判定結果を得た場合に、「距離センサ１５ａに汚れがある」と判定するのではなく、「距離センサ１５ａに異常がある」という判定をするようなロボットの構成でもよい。なおその場合には、その旨を警告するような手段を、前述の通りロボットに設けることで、人間に距離センサ１５ａの点検や交換等のメンテナンスを行うことを促すようにしてもよい。
【００６０】
本発明の他の態様におけるロボットは、実施の形態で示したロボット１００とは、指部、腕部、頭部、胴体部の構成等は異なっていてもよい。上記実施の形態で示したロボット１００の全体構成に、下半身に相当する部分を付加させるロボットの構成にしてもよい。あるいは、本体として指部と腕部のみを備え、制御部は指部及び腕部の外部に設けられて、コンピュータで構成されるようなロボットの構成でもよい。ロボット１００が距離センサ等で得た情報は、ＲＡＭ２０２でなくＲＯＭ２０３に記憶されるようにしてもよい。ロボットが備える距離センサの数も、実施の形態のロボット１００とは異なる数でもよい。  
【００６１】
また、実施の形態１の汚れ検出の判定方法のステップＳ１において、実施の形態２のステップＳ１で用いるような履歴情報で、制御部２００が、指部１０が把持対象物に接触しているか否かの判定を行ってもよい。
【００６２】
さらに、上記実施の形態において距離センサ１５の汚れを判定するのに、距離検出ユニット２１は１個のみを用いたが、複数個の距離検出ユニット２１を用いた判定を行ってもよい。また、判定対象になる距離センサ１５も、１個だけでなく、複数個を判定するようにしてもよい。判定対象になる距離センサ１５は距離センサ１５ａでなくてもよいし、判定に用いる距離検出ユニット２１も距離検出ユニット２１ａでなくてもよい。
【符号の説明】
【００６３】
１  腕部
２  肩関節
３  上腕部
４  肘関節
５  前腕部
６  手首関節
７  アクチュエータ
８  掌部
１０  指部
１１  第１関節
１２  第２関節
１３  リンク
１４  指先部
１５  距離センサ
２０  頭部
２１  距離検出ユニット
３０  胴体部
４０  拭き取り布
５０  把持対象物
１００  ロボット
２００  制御部
２０１  ＣＰＵ
２０２  ＲＡＭ
２０３  ＲＯＭ
２０４  通常動作部
２０５  距離検出部
２０６  汚れ判定部
２０７  除去動作部
２０８  動作判定部
【図１】
2012056043.tif 000003
【図２】
2012056043.tif 000004
【図３】
2012056043.tif 000005
【図４】
2012056043.tif 000006
【図５】
2012056043.tif 000007
【図６】
2012056043.tif 000008
【図７】
2012056043.tif 000009
【図８】
2012056043.tif 000010
【図９】
2012056043.tif 000011
【図１０】
2012056043.tif 000012
【図１１】
2012056043.tif 000013
【図１２】
2012056043.tif 000014