説明

ロボット及びロボットの異常判定方法

【課題】距離センサに異常があるか否かを判定することができるロボット及びロボットの異常判定方法を提供すること。
【解決手段】本発明にかかるロボットは、距離センサ15と、距離センサ15と離れて設けられた距離検出ユニット21とを備える。ロボットはさらに、距離検出ユニット21の出力値に基づいて、距離センサ15と環境中にある物体50との距離を検出する第1の距離検出手段と、距離センサ15の出力値に基づいて、距離センサ15と環境中にある物体50との距離を検出する第2の距離検出手段と、第1の距離検出手段の検出結果と前記第2の距離検出手段の検出結果とを比較する比較手段と、前記比較手段の比較の結果、前記第1の距離検出手段の検出結果と前記第2の距離検出手段の検出結果とが異なる場合に、距離センサ15が異常であると判定する異常判定手段とを備える。

【発明の詳細な説明】
【技術分野】
【0001】
本発明はロボット及びロボットの異常判定方法に関し、特に距離センサを有するロボット及びロボットの異常判定方法に関する。
【背景技術】
【0002】
ロボットの技術において物体を把持する技術が、近年進展している。例えば特許文献1では、把持しようとする物体の形状及び材質に関係なく、より迅速かつ正確に物体に接近し、安全に物体を把持することができるロボット、ロボットハンド及びロボットハンドの制御方法の技術が開示されている。特許文献1に記載のロボットには、ロボットハンドの手の平及び複数の指に距離センサが設置されており、ロボットはその距離センサで物体までの距離を測りながら物体を把持する。具体的には、特許文献1に記載のロボットは、物体を把持する際に、手の平の第1距離センサを用いて手の平を物体に接近させ、複数の指に設置される第2距離センサを用いて複数の指を物体に接近させ、手の平及び複数の指を物体に接触させることで、物体を把持する。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2009−274204号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
ところで、距離センサを有するロボットにおいては、距離センサに汚れが付着する等の異常が起こった場合に、距離センサの誤検出によってロボットの動作に支障が出る可能性が考えられる。例えば、ハンド部に距離センサを有するロボットが、ハンド部を用いて物体の把持動作を行うとする。その際に、ハンド部にある距離センサに汚れがあると、ロボットは、ハンド部が既に物体と接触していると誤判定をする。その誤判定により、ハンド部は把持動作の途中で停止等を起こしてしまい、把持動作のガタツキが大きくなってしまう可能性が高くなる。結果として、ロボットは精密な制御ができなくなり、物体を落としてしまうこともありえる。これは、距離センサに異常があるか否かを、ロボットが判定できないことに問題点がある。
【0005】
本発明は、このような問題点を解決するためになされたものであり、距離センサに異常があるか否かを判定することができるロボット及びロボットの異常判定方法を提供することを目的とする。
【課題を解決するための手段】
【0006】
本発明にかかるロボットは、距離センサと、前記距離センサと離れて設けられた距離検出ユニットを備える。ロボットはさらに、前記距離検出ユニットの出力値に基づいて、前記距離センサと環境中にある物体との距離を検出する第1の距離検出手段と、前記距離センサの出力値に基づいて、前記距離センサと環境中にある物体との距離を検出する第2の距離検出手段と、前記第1の距離検出手段の検出結果と前記第2の距離検出手段の検出結果とを比較する比較手段と、前記比較手段の比較の結果、前記第1の距離検出手段の検出結果と前記第2の距離検出手段の検出結果とが異なる場合に、前記距離センサが異常であると判定する判定手段とを備える。このような構成により、距離センサの検出結果と距離検出ユニットの検出結果とを比較し、両者の検出結果の相違から、距離センサに異常があるか否かを判定することができる。
【0007】
前記ロボットは、前記距離センサが設けられた指部をさらに備えてもよい。これにより、正常であると確認できた距離センサを用いることで、物体を円滑に動かすことができる。
【0008】
また、前記ロボットは、物体を動かしているか否かを確認可能な動作判定手段をさらに備え、この動作判定手段が、前記ロボットが物体を動かしていないと判定した場合に、前記第1の距離検出手段は、前記距離検出ユニットの出力値に基づいて、前記距離センサと環境中にある物体との距離を検出し、前記第2の距離検出手段は、前記距離センサの出力値に基づいて、前記距離センサと環境中にある物体との距離を検出し、前記比較手段は、前記第1の距離検出手段の検出結果と前記第2の距離検出手段の検出結果とを比較して、前記判定手段は、前記比較手段の比較の結果、前記第1の距離検出手段の検出結果と前記第2の距離検出手段の検出結果とが異なる場合に、前記距離センサが異常であると判定するようにしてもよい。これにより、ロボットが物体を動かしている場合、距離センサの異常の検出判定を行わないことで、ロボットが行う処理の負担を減らすことができる。
【0009】
前記動作判定手段は、ロボットにおける物体の動作命令の履歴に基づき、前記ロボットが物体を動かしていないと判定した場合に、前記第1の距離検出手段は、前記距離検出ユニットの出力値に基づいて、前記距離センサと環境中にある物体との距離を検出し、前記第2の距離検出手段は、前記距離センサの出力値に基づいて、前記距離センサと環境中にある物体との距離を検出し、前記比較手段は、前記第1の距離検出手段の検出結果と前記第2の距離検出手段の検出結果とを比較して、前記判定手段は、前記比較手段の比較の結果、前記第1の距離検出手段の検出結果と前記第2の距離検出手段の検出結果とが異なる場合に、前記距離センサが異常であると判定するようにしてもよい。これにより、実行された動作命令の履歴を動作判定に用いることで、効率的に動作判定を行うことができる。
【0010】
さらに、前記動作判定手段は、ロボットにおいて最後に実行された命令が物体を放す命令であると判定した場合に、前記第1の距離検出手段は、前記距離検出ユニットの出力値に基づいて、前記距離センサと環境中にある物体との距離を検出し、前記第2の距離検出手段は、前記距離センサの出力値に基づいて、前記距離センサと環境中にある物体との距離を検出し、前記比較手段は、前記第1の距離検出手段の検出結果と前記第2の距離検出手段の検出結果とを比較して、前記判定手段は、前記比較手段の比較の結果、前記第1の距離検出手段の検出結果と前記第2の距離検出手段の検出結果とが異なる場合に、前記距離センサが異常であると判定するようにしてもよい。これにより、物体が放された後に距離センサの確認を行うことで、直前に動かされた物体により距離センサに異常が生じた場合でも、速やかに距離センサを正常の状態にすることができる。
【0011】
前記ロボットは、汚れを取る手段をさらに備え、前記判定手段が距離センサに異常があると判定した場合には、前記ロボットは前記距離センサが汚れていると判断し、汚れを取る手段で前記距離センサの汚れを取る処理を行うようにしてもよい。これにより、距離センサの汚れを取ることができる。
【0012】
前記ロボットは、外部への警告手段をさらに備え、距離センサに異常があると判定した場合に、警告手段で外部に警告を発するようにしてもよい。これにより、外部に警告を行うことで、距離センサの異常を外部に知らせることができる。
【0013】
本発明にかかるロボットの異常判定方法は、距離センサと、前記距離センサと離れて設けられた距離検出ユニットと、を備えるロボットにおける異常判定方法である。異常判定方法は、前記距離検出ユニットの出力値に基づいて、前記距離センサと環境中にある物体との距離を検出する第1のステップと、前記距離センサの出力値に基づいて前記距離センサと環境中にある物体との距離を検出する第2のステップと、前記第1のステップの検出結果と前記第2のステップの検出結果とを比較する第3のステップと、前記第3のステップにおける比較の結果、前記第1のステップの検出結果と前記第2のステップの検出結果が異なる場合に前記距離センサが異常であると判定する第4のステップと、を備えている。これにより、距離センサの検出結果と距離検出ユニットの検出結果とを比較することで、両者の検出結果の相違から、距離センサに異常があるか否かの判定ができる。
【発明の効果】
【0014】
本発明により、距離センサに異常があるか否かを判定することができるロボット及びロボットの異常判定方法を提供することができる。
【図面の簡単な説明】
【0015】
【図1】実施の形態1にかかる、ロボットの構成例を示す図である。
【図2】実施の形態1にかかる、ロボットの指部の構成例を示す図である。
【図3】実施の形態1にかかる、ロボットの制御部の構成例を示す図である。
【図4】実施の形態1にかかる、指部の把持動作の例を示す図その1である。
【図5】実施の形態1にかかる、指部の把持動作の例を示す図その2である。
【図6】実施の形態1にかかる、指部の把持動作の例を示す図その3である。
【図7】実施の形態1にかかる、指部の把持動作の例を示す図その4である。
【図8】実施の形態1にかかる、汚れが距離センサに付着した場合の距離センサの測定値の挙動を示す図である。
【図9】実施の形態1にかかる、距離センサの汚れを判定する方法の具体例を示すフローチャートである。
【図10】実施の形態2にかかる、ロボットの制御部の構成例を示す図である。
【図11】実施の形態2にかかる、距離センサの汚れを判定する方法の具体例を示すフローチャートである。
【図12】実施の形態2にかかる、ロボットの物体への動作命令の例を示す図である。
【発明を実施するための形態】
【0016】
実施の形態1
以下、図面を参照して本発明の実施の形態1について説明する。図1は、本実施の形態1にかかるロボット100の構成例を示す図である。ロボット100は、ヒトの形を模して製造されたロボットであり、以下に示す通り、例えば箱やボールなどの把持の対象物(以下、把持対象物ともいう)を把持することができる。ロボット100は、腕部1、頭部20、胴体部30を備えている。
【0017】
腕部1はロボット100において2本あり、胴体部30には、右腕部、左腕部として、2本の腕部1が接続されている。右腕部と、左腕部とは略同一の構成を有している。腕部1は、肩関節2、上腕部3、肘関節4、前腕部5、手首関節6、掌部8を備えている。胴体部30には、上腕部3の一端が、肩関節2を介して揺動自在に取り付けられている。
【0018】
上腕部3の他端には、肘関節4を介して、前腕部5の一端が接続されている。前腕部5は肘関節4を支点として揺動可能である。また、上腕部3の内部には前腕部5を揺動させるアクチュエータ7aが設けられている。アクチュエータ7aとしては、ソレノイドやモータ等を用いることができる。このアクチュエータ7aは、制御部200から出力される制御信号により駆動される。
【0019】
前腕部5の他端には、手首関節6を介して、掌部8が連結されている。掌部8は、手首関節6を支点として揺動可能である。前腕部5の内部には掌部8を揺動させるアクチュエータ7bが設けられている。アクチュエータ7bとしては、ソレノイドやモータ等を用いることができる。このアクチュエータ7bもまた、制御部200から出力される制御信号により駆動される。
【0020】
掌部8の他端には、第1関節11(図2を参照)を介して、2本の指部10a及び10bが連結されている。指部10a、10bは略同一の構成を有している。また、指部10a、10bは物体を把持できるように、掌部8において離れた位置に設置されている。
【0021】
ここで、図2を参照して、指部10aの構成について説明する。指部10aは、第1関節11、第2関節12、リンク13、指先部14、距離センサ15a及び15bを有している。第1関節11は、指部10aを内転及び外転させ、同一掌部8に設置されているもう片方の指部10bとの間隔の調整を行う。第2関節12は、指部10aを屈曲させる。なお、以降の記述で単に「指部10」と書く場合には、複数ある指部10のうちの任意のものを示すとする。「距離センサ15」と書く場合も、同様である。
【0022】
距離センサ15は、指部10aにおいてリンク13及び指先部14に1個ずつ設けられている。距離センサ15は、指部10が動かす対象物との距離を測定する。距離センサ15に用いられる距離センサは、例えばCCD(Charge Coupled Device)カメラやCMOS(Complementary Metal Oxide Semiconductor)カメラ等の電子カメラを用いてもよい。または、距離センサ15に超音波、レーザー若しくは赤外線等を用いたカメラを用いてもよい。
【0023】
頭部20には、距離検出ユニット21a及び21bが設けられている。以降の記述で単に「距離検出ユニット21」と書く場合には、複数ある距離検出ユニット21の任意のものを示すとする。この距離検出ユニット21は、距離センサ15(指部10)と環境中にある物体の距離を測定する。ここでいう「環境」とは、ロボット100以外に、ロボット100の周辺にあってロボット100が認識可能な全ての物体のことを指す。以降で「環境」という場合も同様である。距離検出ユニット21は、ステレオカメラ(図示略)と、画像認識手段(図示略)と、算出手段(図示略)とを備えている。ステレオカメラは、画像を撮影し、そのデータを画像認識手段に出力する。画像認識手段は、出力された画像データに基づいて、画像中にある物体の認識を三次元的に行う。算出手段は、三次元的に物体の認識が成された画像から、画像中にある複数の物体間の距離を算出する。以上のようにして、距離検出ユニット21は、距離センサ15と環境中にある物体の距離を測定することができる。距離検出ユニット21が、距離センサ15と接触している物体があるか否かを明確に確認できる程度に距離センサ15から離れていれば、距離検出ユニット21は任意の場所に設けられていてよい。
【0024】
胴体部30は、略直方体の形状を有している。胴体部30の内部には、ロボット100の各部の動作を統括的に制御する制御部200が設けられている。制御部200の詳細な構成については、次に説明する。また、胴体部30の表面には、拭き取り布40(汚れを取る手段)が設けられている。拭き取り布40は、胴体部30に備え付けられている布である。
【0025】
実施の形態1にかかる制御部200の構成を、図3で示す。制御部200は、CPU(Central Processing Unit)201、RAM(Random Access Memory)202、ROM(Read Only Memory)203、通常動作部204、距離検出部205(第1の距離検出手段及び第2の距離検出手段)、汚れ判定部(比較手段及び判定手段)206、除去動作部207を備えている。CPU201は、RAM202に記憶された情報を読み込み、ROM203に記憶されているプログラムを実行することで、プログラムはCPU201などのハードウェアを通常動作部204、距離検出部205、汚れ判定部206、除去動作部207として機能させる。RAM202には、距離センサ15または距離検出ユニット21の出力値である距離の測定データに基づいて、距離検出部205が検出した結果である距離データが記憶される。ROM203には、ロボット100の各部が行う動作についてのプログラムが記憶されている。通常動作部204は、ロボット100単独での動作や、ロボット100が物体に対して行う把持や移動といった動作の制御を行う。距離検出部205は、距離センサ15または距離検出ユニット21の出力値である距離の測定データに基づいて、測定した距離を検出し、その結果である距離データをRAM202に記憶させる。汚れ判定部206は、後に述べる距離センサ15の汚れの判定において、距離センサ15が汚れているかどうかの判定を行う。除去動作部207は、汚れ判定部206において距離センサ15が汚れていると判定された場合に、ロボット100の腕部1などを動作させ、距離センサ15の汚れを除去させるように制御を行う。
【0026】
実施の形態1にかかるロボット100の指部10の把持動作について、図4を用いて説明する。図4では、指部10a及び10bの間に距離をおいて把持対象物50がある。この場合、指部10a及び10bにおける距離センサ15の働きが正常ならば、指部10a及び10bに設けられた全ての距離センサ15の出力値に基づき、距離検出部205は、指部10a及び10bと把持対象物50との距離を0でない値と検出する。こうして検出された距離情報はRAM202に記憶される。
【0027】
図4の状態から、把持対象物50を把持する命令が制御部200で実行される場合に、CPU201はRAM202に記憶された前述の距離情報を読み込んだ上で、ROM203に記憶されているプログラムを実行することで、プログラムはCPU201などを通常動作部204として機能させる。それにより、通常動作部204は、ロボット100の指部10a及び10bを動作させ、把持対象物50を把持させるように制御を行う。具体的に通常動作部204が行う制御は、以下が一例として言える。通常動作部204は、図4の状態から、把持対象物50の形に合わせて指部10a及び10bの位置を把持対象物50と均等な距離を保たせるように制御し、その上で指部10a及び10bを把持対象物50に接近させ、接触させて適切な力を加えさせることで、把持対象物50を把持させるような制御を行う。
【0028】
通常動作部204がロボット100の指部10a及び10bに把持をさせる制御の方法として、指部10a及び10bの指先部14に設けられた距離センサ15と、把持対象物50との距離を0の値にするように、指部10a及び10bを操作することが一例として考えられる。その制御に基づき、指部10a及び10bによって、把持対象物50が把持されている状態が図5である。図5においては、通常動作部204が指部10a及び10bの指先部14を適度な力を把持対象物50に加えながら接触させるよう制御することで、指部10a及び10bは把持対象物50を把持している。このとき、指先部14に設けられた距離センサ15の出力値に基づいて、距離検出部205は把持対象物50との距離が0になることを検出し、その結果をRAM202に記憶させる。以上のように、距離センサ15の働きが正常である場合には、通常動作部204の制御に基づいて、把持対象物50を正確に把持することができる。なお、把持動作は指先部14のみならず、リンク13のみを用いてもよい。図6はその一例であり、通常動作部204の制御に基づいて、指部10a及び10bのリンク13に設けられた距離センサ15と把持対象物50との距離を0の値にするように、指部10a及び10bが把持対象物50を把持したものである。あるいは、通常動作部204は把持動作を行う際に、把持対象物50と、リンク13及び指先部14の両方を接触させるように指部10a及び10bを制御してもよい。
【0029】
図4の状態において、把持対象物50を把持する命令が制御部200で実行されない場合には、通常動作部204は指部10a及び10bを把持対象物50と決められた距離を保って停止させる制御を行う。この制御を行った後に通常動作部204は指部10a及び10bの動作を停止させ、把持対象物50を把持する命令が入力される場合に備える。
【0030】
ここで図4において、指部10aの距離センサ15a及び15bに汚れが付着しており、距離センサ15a及び15bが正常に把持対象物50との距離を測定できないという場合を考える。つまり、その場合には、把持対象物50と距離センサ15a及び15bとの距離が0でないにも関わらず、距離センサ15a及び15bは把持対象物50との距離が0となるような距離の測定データを距離検出部205に出力する。距離検出部205はこの測定データから距離データを検出した後、RAM202に距離データを記憶させる。通常動作部204はその距離データを読み込み、指部10aが既に物体と接触していると誤判定を起こす。
【0031】
この状態から、把持対象物50を把持する命令が制御部200で実行されたとする。その際には、通常動作部204は、指部10bを、指部10bと把持対象物50とが接触させるような操作を行う。しかし、前述の通り、通常動作部204は指部10aが既に物体と接触していると誤判定しているため、指部10aと把持対象物50とを接触させる制御は行わない。それにより、把持対象物50と接触するのは指部10bのみになり、指部10a及び10bで把持対象物50を確実に把持することができない。具体的には、図7のような状態になる。以上が、距離センサ15に汚れが付着している場合に、ロボット100の指部10の把持動作において考えられる問題点である。
【0032】
距離センサ15に汚れがつく原因として、ロボット100の把持対象物に汚れが付着しており、その汚れが距離センサ15に付着することが考えられる。図8は、その際に距離センサ15が測定した測定データから、距離検出部205が検出する距離データの一例である。時間t0において、距離センサ15が測定する対象物との距離はLであり、ロボット100の指部10はまだ当該対象物を把持していない。ここで、時間t1において、当該対象物を把持する命令が制御部200で実行されたとする。すると、CPU201はRAM202に記憶された前述の距離データを読み込んでROM203に記憶されているプログラムを実行し、プログラムはCPU201などを通常動作部204として機能させる。通常動作部204の制御により、指部10は当該対象物の把持動作を行う。それにより、距離センサ15と当該対象物との距離は時間を追うごとに狭まり、時間t2にて距離センサ15と当該対象物との実際の距離は0になる。距離センサ15が測定する当該対象物との距離もまた、0になる。つまり、距離センサ15と当該対象物とは接触する。当該対象物において汚れが付着していた場合、この時点で距離センサ15に汚れが付着することになる。
【0033】
時間t2から時間t3までの間、制御部200において把持動作を続ける命令が実行されることで、指部10は当該対象物を把持し続ける。時間t3で、制御部200において把持動作をやめ、物体を放す命令が実行されると、通常動作部204の制御により、指部10は物体を放す。その後、通常動作部204が、指部10を当該対象物から指部10を離し、元の位置に戻らせる制御を行う。このとき、把持動作において距離センサ15に汚れが付着した場合には、距離センサ15の測定値は0を示したままになる。この状態は、図5において実線で示している。もし、距離センサ15に汚れが付着していない場合においては、図5において点線で示した通り、時間t3〜時間t4において、距離センサ15の出力値は0からLに移行する。このように、汚れがついた物体を把持することで距離センサ15に汚れが付着する場合、汚れがついた物体を把持した後には、距離センサ15は正確な距離測定ができなくなる。
【0034】
以上の説明において、本実施の形態におけるロボット100の外部構成、内部構成及びその働きについて説明を行った。以降では、ロボット100の制御部200が、距離センサ15に汚れがあるか否かについて判定を行う際の詳細について、図9のフローチャートを用いて説明する。ここで、汚れの有無を判定する対象である距離センサは指部10aに設けられた距離センサ15aであり、判定に際して用いる距離検出ユニットは頭部20にある距離検出ユニット21aとする。また、ロボット100の周辺にある物体は、図4で示した把持対象物50のみとする。
【0035】
距離検出部205は、距離センサ15aの汚れの有無の判定を行う際、まず距離検出ユニット21aの測定値を用いて、環境に、距離センサ15a(指部10a)が接触しているかどうかの判定を行う(S1)。ここでいう環境とは、ロボット100以外で、ロボット100の周辺にある物体のことを指す。具体的な動作として、距離検出ユニット21aは、距離センサ15aと、距離センサ15aの周辺の環境中にある把持対象物50との距離測定を行う。距離検出ユニット21aの距離測定の方法は、前述の通りである。距離検出部205は、距離検出ユニット21aが出力した測定データに基づいて距離データを検出し、その結果をRAM202に記憶させる。距離検出部205は検出された距離データから、環境に、距離センサ15aが接触しているかどうかの判定を行う。
【0036】
このとき、距離検出部205が、距離センサ15aと把持対象物50との距離が0もしくはほぼ0となると判定すれば、距離検出部205は、環境と距離センサ15aとが接触していると判定する。距離検出部205が、距離センサ15aと把持対象物50との距離が0もしくはほぼ0とならないと判定すれば、距離検出部205は、環境と距離センサ15aとは接触していないと判定する。
【0037】
ステップS1で距離検出部205が、環境と距離センサ15aとが接触していると判定した場合、制御部200は、命令が実行された場合にはロボット100の各部をその通りに制御し、命令が実行されなければロボット100の各部を停止させて待機状態にさせるといった、ロボット100の通常動作の制御を行う(S4)。命令が実行された場合、制御部200中のCPU201がROM203に記憶されたプログラムを実行することで、CPU201などが通常動作部204として機能することにより、ロボット100の通常動作が行われる。
【0038】
なお、命令が実行された場合にロボット100の各部がステップS4で行う通常動作の内容は次の通りである。指部10aが把持対象物50と接触しているが把持をしていない場合は、通常動作部204の制御に基づき、把持対象物50を把持するように指部10aを操作することや、把持対象物50から指部10aを放すように動作することが例としていえる。指部10aが把持対象物50を把持している場合、指部10aは通常動作部204の制御に基づき、把持対象物50を移動させることや、把持対象物50から指部10aを放すように動作することが例としていえる。
【0039】
距離検出部205が、ステップS1において環境に距離センサ15aが接触していないと判定した場合、距離検出部205はロボット100(以下、「自己」とも記す)に距離センサ15a(指部10a)が接触しているかどうかを判定する(S2)。ステップS2の具体的な判定方法は、ステップS1と同様である。もしステップS2で距離検出部205が自己に距離センサ15aが接触していると判定した場合は、ステップS4に進み、制御部200はロボット100に通常動作を行わせるような制御を行う。
【0040】
ステップS2において、距離検出部205は、自己と距離センサ15aが接触していないと判定した場合、汚れ判定部206は距離センサ15aの値が正常かどうかを判定する(S3)。汚れ判定部206は、距離センサ15aの出力値から得られた距離データをRAM202から読み込み、測定した環境中の物体の中で、距離センサ15aとの間の距離が0もしくはほぼ0になるものがあるかを判定する。この場合には、汚れ判定部206は、距離センサ15aが測定したデータに基づき、距離センサ15aと把持対象物50との距離が、0またはそれに近い値になるか否かを判定する。このステップS3により、制御部200は、距離センサ15aの値が正常かどうかを判定する。
【0041】
ここで距離センサ15aが正常ならば、ステップS3において把持対象物50と距離センサ15aとの間の距離は、0もしくはほぼ0とは判定されない。その場合はステップS4に進み、通常動作部204はロボット100に通常動作を行わせるような制御を行う。
【0042】
ステップS3において、把持対象物50と距離センサ15aとの距離が、0もしくはほぼ0であると判定されたとする。つまり、ステップS3において、距離センサ15aと距離検出ユニット21aとの測定から得られた距離データが、異なると判定されたとする。その場合、汚れ判定部206は、距離センサ15aが汚れていると判定する。CPU201は、ROM203に記憶されているプログラムを実行することで、プログラムはCPU201などを除去動作部207として機能させる。除去動作部207は、ロボット100の各部が距離センサ15aの汚れを除去する動作をするような制御を行う(S5)。具体的な汚れの除去動作としては、汚れ判定部206の制御に基づき、ロボット100の腕部1、指部10は拭き取り布40に距離センサ15をこすりつける動作を行うことで、距離センサ15の汚れを拭き取る。
【0043】
以上、説明した通り、本発明の実施の形態1において、制御部200は距離センサ15aの汚れの有無を判定することができる。また、汚れがあると判定した場合には、除去動作部207の制御に基づき、拭き取り布を用いることで距離センサ15aの汚れを拭き取ることができる。また、正常であると確認できた距離センサ15aを用いることで、把持対象物50を円滑に動かすことができる。
【0044】
実施の形態2
次に、図面を参照して本発明の実施の形態2について説明する。なお、この発明の実施の形態2にかかるロボット100の構成及びロボット100における指部10の構成は、図1及び図2に示す構成と同様であり、説明を省略する。また、ロボット100の指部10の把持動作も、図4、図5、図6、図7と同様であるため、説明を省略する。
【0045】
実施の形態2にかかる制御部200の構成を、図10で示す。実施の形態2にかかる制御部200には、実施の形態1の制御部200の構成要素に加えて、動作判定部208(動作判定手段)がさらに備わっている。動作判定部208は、後述する距離センサ15aの汚れ検出の判定において、指部10が物体を動かしているか否かの判定を行う。動作判定部208は、CPU201がRAM202に記憶された情報を読み込み、ROM203に記憶されているプログラムを実行することで、CPU201などのハードウェアがその機能を果たす。
【0046】
以降では、ロボット100の制御部200が、距離センサ15に汚れがあるか否かについて判定を行う際の詳細について、図11のフローチャートを用いて説明する。実施の形態1での説明と同様、汚れの有無を判定する対象である距離センサは指部10aに設けられた距離センサ15aであり、判定に際して用いる距離検出ユニットは頭部20にある距離検出ユニット21aとする。また、ロボット100の周辺にある物体は、図4で示した把持対象物50のみとする。
【0047】
距離センサ15aの汚れの有無の判定を行う際、動作判定部208は、ロボット100の各部が、現在物体を動かしているか否かの動作判定を行う(S1)。この場合は、動作判定部208は、ロボット100の各部が把持対象物50を動かしているか否かの判定を行う。ここでステップS1を行う理由として、ロボット100の各部が物体を動作中であると判定された場合、距離センサ15aの汚れの検出判定を行わないことで、制御部200が行う処理の負担を減らせることがいえる。
【0048】
動作判定部208が行うステップS1の判定は、ロボットの指部10に設けられたモータトルク(図示略)や力センサ(図示略)を用いて行ってもよい。具体的には、制御部200はモータトルクや力センサから算出したデータをRAM202に記憶し、動作判定部208はRAM202に記憶された前記データを参照して、指部10が物体を動かしているか否かの判定を行う。
【0049】
あるいは、動作判定部208は、ステップS1で物体を動かしているか否かの判定を行う際、「過去に物体を動かす命令が制御部200において発行され、ロボットが実行に移したか否か」といった履歴か、「物体を放すという命令が制御部200において発行され、ロボットが実行に移したか否か」といった動作に関する命令の履歴情報を用いて、動作判定を行ってもよい。図12は、そのような履歴情報を示したマトリックスである。図12における「0」は命令が成されていないか、命令が成されたが取り消されたことを示している。図12における「1」は、現在、命令が成されていることを示している。つまり、図12に示した履歴情報は、現在ロボット100の指部10が物体を把持し、動かしている最中であることを表している。この場合には、図11より、通常動作部204はステップS5の通常動作を行う。
【0050】
特に制御部200は、ステップS1で物体を動かしているか否かの判定を行う際、動作判定部208が「物体を放すという命令が制御部200において最後に発行され、ロボットが実行に移した」と判定した場合に、図11のステップS2以降の判定を行うようにしてもよい。これにより、制御部200は物体を放した後に距離センサ15aの確認を行うことで、直前にロボット100の指部10が動かした物体により距離センサ15aに汚れが付着した場合でも、速やかに距離センサ15aを正常の状態にすることができる。
【0051】
なお、図12に示したような履歴情報は、RAM202に記憶されており、制御部200において新たな命令が実行された際に、CPU201が更新を行っている。このような動作命令の履歴に基づいてステップS1の判定を行うことで、前述のようにトルクやセンサを用いてステップS1の判定を行うのに比べ、動作判定部208は効率的に動作確認の判定を行うことができる。
【0052】
図11のステップS2以降については、図9のステップS1以降のステップと同様の処理になるので、説明を省略する。このようにして、本発明の実施の形態2においても実施の形態1と同様に、制御部200は距離センサ15aの汚れの有無を判定し、汚れがあると判定した場合には、除去動作部207の制御に基づき、拭き取り布を用いることで距離センサ15aの汚れを拭き取ることができる。また、本発明の実施の形態2においては、ロボット100は物体を動かしているか否かを確認可能な動作判定部208を備えていることで、ロボット100の各部が物体を動かしている場合、制御部200は距離センサ15aの汚れ検出判定を行わずに済む。これにより、ロボット100の制御部200が行う処理の負担を減らすことができる。
【0053】
ここで、実施の形態1及び2で示した汚れ検出の判定方法においては、距離検出部205はステップS1で環境に距離センサ(指部)が接触しているか否かの判定を行った後、ステップS2で自己に距離センサ(指部)が接触しているか否かの判定を行うとしたが、ステップS1とステップS2の順番は逆でもよい。更に、距離検出部205がステップS1とステップS2とを同時に行うような、汚れ検出の判定方法でもよい。つまり、距離検出部205が、ロボット自身を含む周辺環境にある物体と距離センサ15との距離を測定して、距離センサ15との距離が0もしくはほぼ0になる物体があるかどうかを判定するステップを備えた汚れ検出の判定方法であれば、十分である。
【0054】
実施の形態1及び2では、環境中にある物体と、距離センサ15aとの「距離が0であるか否か」を判断基準にして、制御部200は距離センサ15aの判定を行った。しかし、距離検出部205が検出した、距離検出ユニット21aの測定による距離センサ15aと把持対象物50との距離と、距離センサ15aの測定による距離センサ15aと把持対象物50との距離とが異なる場合も考えられる。(両者とも、検出された距離は0でないとする。)その場合でも、距離センサ15に汚れがあると汚れ判定部206が判定するような、ロボット100の構成でもよい。例えば、図4に示した状態において、距離センサ15aの測定により、距離センサ15aと把持対象物50との距離が10cmと検出され、距離検出ユニット21aの測定により、距離センサ15aと把持対象物50との距離が8cmと検出されたとする。その場合に、汚れ判定部206は、距離センサ15aが汚れていると判定する。
【0055】
その場合に制御部200が行う汚れ検出の判定方法は、次のようになる。まず、距離検出部205は、距離検出ユニット21aの出力値に基づき、距離センサ15aと把持対象物50との距離の検出を行う第1のステップと、距離センサ15aの出力値に基づき、距離センサ15aと把持対象物50との距離の検出を行う第2のステップとを行う。このとき、距離検出部205はこの第1のステップと第2のステップのどちらかを先に行ってもよいし、両者とも同時に行うようにしてもよい。距離検出部205が行った第1のステップ及び第2のステップによる検出の結果は、汚れ判定部206で比較される。具体的には、汚れ判定部206は、第1のステップで得られた把持対象物50と距離センサ15aとの距離データと、第2のステップで得られた把持対象物50と距離センサ15aとの距離データとが、略同一であるかを判定する。もし、両者の結果が、ロボットが物体を動かすのに影響を及ぼしうる程度に異なるものであれば、汚れ判定部206は、距離センサ15aが汚れているという判定を行う。このような構成により、制御部200は、距離センサ15aの検出結果と距離検出ユニット21aの検出結果とを比較し、両者の検出結果の相違から、距離センサ15aに異常があるか否かを判定することができる。
【0056】
実施の形態1及び2では、距離センサ15aとの距離を測る対象として把持対象物50を例にしたが、距離を測る対象としては環境にあるそれ以外の物体でもよいし、ロボット100の本体でもよい。
【0057】
なお、本発明は上記実施の形態に限られたものではなく、趣旨を逸脱しない範囲で適宜変更することが可能である。例えば、距離センサの汚れを取る方法として、実施の形態では、拭き取り布に距離センサをこすりつけるという方法を記した。しかし他にも、距離センサの近傍にワイパーを備え、距離センサが汚れたと判定されたときに、ワイパーで当該距離センサを拭くようなロボットの構成でもよい。また、ウオッシャーを備え、距離センサが汚れたと判定されたときに、水や洗剤等の液体で当該距離センサを洗浄するようなロボットの構成でもよい。距離検出ユニットも、距離センサと環境中にある物体との間の距離を測定できるのであれば、実施の形態で記したもの以外の構成でもよい。
【0058】
また、ロボットに警告手段を搭載し、距離センサが汚れたと判定されたときに、外部に警告を発するようなロボットの構成でもよい。具体的な警告手段としては、例えば、ロボットの外部にランプを備え、距離センサが汚れたと判定されたときに当該ランプを点滅させるようにしてもよい。あるいは、ロボットの制御部をパソコン等の情報機器と連絡させ、距離センサが汚れたと判定されたときに当該情報機器に警告を出すようなロボットの構成でもよい。これにより、ロボットは外部に警告を行うことで、距離センサの異常を外部に知らせることができる。その場合に、距離センサの汚れを取る手段は設けても設けなくてもよい。汚れを取る手段を設けない場合は、警告を受けた人間が、距離センサの汚れを取ることが考えられる。
【0059】
上記実施の形態においては、距離検出ユニット21aが「距離センサ15aとの距離が0もしくはほぼ0となる物体が存在しない」と判定し、距離センサ15aが「距離センサ15aとの距離が0もしくはほぼ0となる物体が存在する」と判定した場合には、制御部200は距離センサ15が汚れていると判定した。しかしそのような場合には、距離センサ15aは汚れている訳ではなく、壊れているといった異常があることも考えられる。なので、本発明の他の態様におけるロボットとして、前述の判定結果を得た場合に、「距離センサ15aに汚れがある」と判定するのではなく、「距離センサ15aに異常がある」という判定をするようなロボットの構成でもよい。なおその場合には、その旨を警告するような手段を、前述の通りロボットに設けることで、人間に距離センサ15aの点検や交換等のメンテナンスを行うことを促すようにしてもよい。
【0060】
本発明の他の態様におけるロボットは、実施の形態で示したロボット100とは、指部、腕部、頭部、胴体部の構成等は異なっていてもよい。上記実施の形態で示したロボット100の全体構成に、下半身に相当する部分を付加させるロボットの構成にしてもよい。あるいは、本体として指部と腕部のみを備え、制御部は指部及び腕部の外部に設けられて、コンピュータで構成されるようなロボットの構成でもよい。ロボット100が距離センサ等で得た情報は、RAM202でなくROM203に記憶されるようにしてもよい。ロボットが備える距離センサの数も、実施の形態のロボット100とは異なる数でもよい。
【0061】
また、実施の形態1の汚れ検出の判定方法のステップS1において、実施の形態2のステップS1で用いるような履歴情報で、制御部200が、指部10が把持対象物に接触しているか否かの判定を行ってもよい。
【0062】
さらに、上記実施の形態において距離センサ15の汚れを判定するのに、距離検出ユニット21は1個のみを用いたが、複数個の距離検出ユニット21を用いた判定を行ってもよい。また、判定対象になる距離センサ15も、1個だけでなく、複数個を判定するようにしてもよい。判定対象になる距離センサ15は距離センサ15aでなくてもよいし、判定に用いる距離検出ユニット21も距離検出ユニット21aでなくてもよい。
【符号の説明】
【0063】
1 腕部
2 肩関節
3 上腕部
4 肘関節
5 前腕部
6 手首関節
7 アクチュエータ
8 掌部
10 指部
11 第1関節
12 第2関節
13 リンク
14 指先部
15 距離センサ
20 頭部
21 距離検出ユニット
30 胴体部
40 拭き取り布
50 把持対象物
100 ロボット
200 制御部
201 CPU
202 RAM
203 ROM
204 通常動作部
205 距離検出部
206 汚れ判定部
207 除去動作部
208 動作判定部

【特許請求の範囲】
【請求項1】
距離センサと、
前記距離センサと離れて設けられた距離検出ユニットと、
前記距離検出ユニットの出力値に基づいて、前記距離センサと、環境中にある物体との距離を検出する第1の距離検出手段と、
前記距離センサの出力値に基づいて、前記距離センサと、環境中にある物体との距離を検出する第2の距離検出手段と、
前記第1の距離検出手段の検出結果と、前記第2の距離検出手段の検出結果と、を比較する比較手段と、
前記比較手段の比較の結果、前記第1の距離検出手段の検出結果と、前記第2の距離検出手段の検出結果とが異なる場合に、前記距離センサが異常であると判定する判定手段と、
を備えたロボット。
【請求項2】
前記距離センサが設けられた指部をさらに備えた、
請求項1に記載のロボット。
【請求項3】
物体を動かしているか否かを確認可能な動作判定手段をさらに備え、
前記動作判定手段が、前記ロボットが物体を動かしていないと判定した場合に、
前記第1の距離検出手段は前記距離検出ユニットの出力値に基づいて、前記距離センサと、環境中にある物体との距離を検出し、
前記第2の距離検出手段は前記距離センサの出力値に基づいて、前記距離センサと、環境中にある物体との距離を検出し、
前記比較手段は、前記第1の距離検出手段の検出結果と、前記第2の距離検出手段の検出結果とを比較し、
前記判定手段は、前記比較手段の比較の結果、前記第1の距離検出手段の検出結果と、前記第2の距離検出手段の検出結果とが異なる場合に、前記距離センサが異常であると判定する、
請求項2に記載のロボット。
【請求項4】
前記動作判定手段が、前記ロボットにおける物体の動作命令の履歴に基づいて、前記ロボットが物体を動かしていないと判定した場合に、
前記第1の距離検出手段は前記距離検出ユニットの出力値に基づいて、前記距離センサと、環境中にある物体との距離を検出し、
前記第2の距離検出手段は前記距離センサの出力値に基づいて、前記距離センサと、環境中にある物体との距離を検出し、
前記比較手段は、前記第1の距離検出手段の検出結果と、前記第2の距離検出手段の検出結果とを比較し、
前記判定手段は、前記比較手段の比較の結果、前記第1の距離検出手段の検出結果と、前記第2の距離検出手段の検出結果とが異なる場合に、前記距離センサが異常であると判定する、
請求項3に記載のロボット。
【請求項5】
前記動作判定手段が、前記ロボットにおいて最後に実行された命令が、物体を放す命令であると判定した場合に、
前記第1の距離検出手段は前記距離検出ユニットの出力値に基づいて、前記距離センサと、環境中にある物体との距離を検出し、
前記第2の距離検出手段は前記距離センサの出力値に基づいて、前記距離センサと、環境中にある物体との距離を検出し、
前記比較手段は、前記第1の距離検出手段の検出結果と、前記第2の距離検出手段の検出結果とを比較し、
前記判定手段は、前記比較手段の比較の結果、前記第1の距離検出手段の検出結果と、前記第2の距離検出手段の検出結果とが異なる場合に、前記距離センサが異常であると判定する、
請求項3又は4に記載のロボット。
【請求項6】
汚れを取る手段をさらに備え、
前記判定手段が前記距離センサに異常があると判定した場合に、前記ロボットは前記距離センサが汚れていると判断し、前記汚れを取る手段で前記距離センサの汚れを取る処理を行う、
請求項1乃至5に記載のロボット。
【請求項7】
外部への警告手段をさらに備え、
前記ロボットは、前記距離センサに異常があると判定した場合に、前記警告手段で外部に警告を発する、請求項1乃至6に記載のロボット。
【請求項8】
距離センサと、前記距離センサと離れて設けられた距離検出ユニットと、を備えるロボットにおける異常判定方法であって、
前記距離検出ユニットの出力値に基づいて、前記距離センサと、環境中にある物体との距離を検出する第1のステップと、
前記距離センサの出力値に基づいて、前記距離センサと、環境中にある物体との距離を検出する第2のステップと、
前記第1のステップの検出結果と、前記第2のステップの検出結果と、を比較する第3のステップと、
前記第3のステップにおける比較の結果、前記第1のステップの検出結果と、前記第2のステップの検出結果が異なる場合に、前記距離センサが異常であると判定する第4のステップと、
を備えた異常判定方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate