(57)【要約】【課題】ロボットの動作の成功率が低下するのを防ぎつつ、ロボットの動作の安全性が低下するのを防ぐことができる。【解決手段】ロボット制御装置１０は、ロボットＲＢの初期姿勢及び目標姿勢に関する姿勢情報、ロボットと干渉する範囲内に存在する障害物に関する障害物情報、及びロボットＲＢの仕様に関する仕様情報を取得する取得部２０と、ロボットＲＢ及びロボットＲＢと干渉する範囲内に存在する障害物の少なくとも一方について、ロボットＲＢと障害物との干渉を回避するためのクリアランスの量を表すクリアランス量を個別に設定する設定部と、設定部２２により設定されたクリアランス量に基づいてロボットＲＢの経路に関する経路情報を生成する経路生成部２４と、を備える。【選択図】図４
2020110885.tif 000002
【特許請求の範囲】
【請求項１】
ロボットの初期姿勢及び目標姿勢に関する姿勢情報、前記ロボットの位置に関する位置情報、前記ロボットと干渉する範囲内に存在する障害物の位置を含む障害物情報、及び前記ロボットの形状を含む仕様に関する仕様情報を取得する取得部と、
前記ロボットと前記障害物との位置関係に基づいて、前記ロボット及び前記ロボットと干渉する範囲内に存在する障害物の少なくとも一方について、前記干渉を回避するためのクリアランスの量を表すクリアランス量を設定する設定部と、
前記ロボットの初期姿勢及び目標姿勢、前記ロボットの位置、前記障害物の位置、前記ロボットの形状、及び前記設定部により設定されたクリアランス量に基づいて前記ロボットの経路に関する経路情報を生成する経路生成部と、
を備えた経路生成装置。
【請求項２】
前記設定部は、前記経路生成部が生成した経路が予め定めた経路条件を満たさない場合は、前記クリアランス量を小さくし、
前記経路生成部は、前記ロボットの初期姿勢及び目標姿勢と、前記ロボットの位置と、前記障害物の位置と、前記ロボットの形状と、前記設定部により設定されたクリアランス量と、に基づいて前記経路情報を再生成する
請求項１記載の経路生成装置。
【請求項３】
前記設定部は、前記障害物が凹みを有し且つ前記ロボットの操作対象であるワークが収容又は載置される障害物である場合、凹みを有さない障害物のクリアランス量よりも小さいクリアランス量を設定する
請求項１又は請求項２記載の経路生成装置。
【請求項４】
前記設定部は、前記経路情報に基づいて前記ロボットの関節の速度又は加速度を算出し、算出した前記ロボットの関節の速度又は加速度が予め定めた閾値以上の場合、前記速度又は加速度が予め定めた閾値未満となるように、前記クリアランス量を大きくする
請求項１〜３の何れか１項に記載の経路生成装置。
【請求項５】
前記設定部は、前記クリアランス量を調整する調整係数を受け付け、受け付けた調整係数に基づいて、複数の前記クリアランス量を調整する
請求項１〜４の何れか１項に記載の経路生成装置。
【請求項６】
前記クリアランス量に応じて前記障害物の表示が異なるように制御する表示制御部
を備えた請求項１〜５の何れか１項に記載の経路生成装置。
【請求項７】
コンピュータが、
ロボットの初期姿勢及び目標姿勢に関する姿勢情報、前記ロボットの位置に関する位置情報、前記ロボットと干渉する範囲内に存在する障害物の位置を含む障害物情報、及びロボットの形状を含む仕様に関する仕様情報を取得する取得工程と、
前記ロボットと前記障害物との位置関係に基づいて、前記ロボット及び前記ロボットと干渉する範囲内に存在する障害物の少なくとも一方について、前記干渉を回避するためのクリアランスの量を表すクリアランス量を設定する設定工程と、
前記ロボットの初期姿勢及び目標姿勢、前記ロボットの位置、前記障害物の位置、前記ロボットの形状、及び前記設定工程により設定されたクリアランス量に基づいて前記ロボットの経路に関する経路情報を生成する経路生成工程と、
を含む処理を実行する経路生成方法。
【請求項８】
コンピュータを、
ロボットの初期姿勢及び目標姿勢に関する姿勢情報、前記ロボットの位置に関する位置情報、前記ロボットと干渉する範囲内に存在する障害物の位置を含む障害物情報、及びロボットの形状を含む仕様に関する仕様情報を取得する取得部、
前記ロボットと前記障害物との位置関係に基づいて、前記ロボット及び前記ロボットと干渉する範囲内に存在する障害物の少なくとも一方について、前記干渉を回避するためのクリアランスの量を表すクリアランス量を設定する設定部、及び、
前記ロボットの初期姿勢及び目標姿勢、前記ロボットの位置、前記障害物の位置、前記ロボットの形状、及び前記設定部により設定されたクリアランス量に基づいて前記ロボットの経路に関する経路情報を生成する経路生成部、
として機能させる経路生成プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、経路生成装置、経路生成方法、及び経路生成プログラムに関する。
【背景技術】
【０００２】
特許文献１には、ロボットの動作プログラムのシミュレーションを実行して、第１の動作経路を取得する動作経路取得部と、第１の動作経路における干渉を検出して、該干渉が発生する前後の教示点である第１の教示点及び第２の教示点を特定する教示点特定部と、第１及び第２の教示点の間に、乱数で定めた探索方向及び探索距離に基づき少なくとも１つの第３の教示点を自動的に挿入し、干渉が発生しない第２の動作経路を生成する動作経路生成部と、第２の動作経路の各々について、予め定めた少なくとも１つのパラメータに基づく評価を行う評価部と、該評価に基づいて、複数の第２の動作経路から最適動作経路を選択する動作経路選択部とを備えたロボットシミュレーション装置が開示されている。
【０００３】
ロボットが移動する経路を生成する際には、ロボットが障害物と干渉しないように、すなわちロボットと障害物との距離が安全な距離を保つように経路が生成される。従来、ロボットと障害物との安全な距離を表すクリアランス量は、ロボット又は障害物に対して一律で設定されていた。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１５−１６０２７７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
クリアランス量がロボット又は障害物に対して一律に設定された場合、例えばピックアンドプレース装置において、安全性を高めるためにワークが収容される箱のクリアランス量が大きく設定されていると、箱の隅のワークのピッキングに失敗する確率が高まる。このため、全体のピッキングの成功率が低下する。一方、ピッキングの成功率を高めるためにクリアランス量を小さく設定すると安全性が低下してしまう。すなわち、ロボットが障害物と干渉するリスクが増加してしまう。
【０００６】
このように、ピッキング等のロボットの動作の成功率とロボットの動作の安全性とはトレードオフの関係にあり、両者を両立するのは困難であった。
【０００７】
本発明は、上記の点に鑑みてなされたものであり、ロボットの動作の成功率が低下するのを防ぎつつ、ロボットの動作の安全性が低下するのを防ぐことができる経路生成装置及び経路生成プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００８】
開示の第１態様は、経路生成装置であって、ロボットの初期姿勢及び目標姿勢に関する姿勢情報、前記ロボットの位置に関する位置情報、前記ロボットと干渉する範囲内に存在する障害物の位置を含む障害物情報、及び前記ロボットの形状を含む仕様に関する仕様情報を取得する取得部と、前記ロボットと前記障害物との位置関係に基づいて、前記ロボット及び前記ロボットと干渉する範囲内に存在する障害物の少なくとも一方について、前記干渉を回避するためのクリアランスの量を表すクリアランス量を設定する設定部と、前記ロボットの初期姿勢及び目標姿勢、前記ロボットの位置、前記障害物の位置、前記ロボットの形状、及び前記設定部により設定されたクリアランス量に基づいて前記ロボットの経路に関する経路情報を生成する経路生成部と、を備える。
【０００９】
上記第１態様において、前記設定部は、前記経路生成部が生成した経路が予め定めた経路条件を満たさない場合は、前記クリアランス量を小さくし、前記経路生成部は、前記ロボットの初期姿勢及び目標姿勢と、前記ロボットの位置と、前記障害物の位置と、前記ロボットの形状と、前記設定部により設定されたクリアランス量と、に基づいて前記経路情報を再生成してもよい。
【００１０】
上記第１態様において、前記設定部は、前記障害物が凹みを有し且つ前記ロボットの操作対象であるワークが収容又は載置される障害物である場合、凹みを有さない障害物のクリアランス量よりも小さいクリアランス量を設定してもよい。
【００１１】
上記第１態様において、前記設定部は、前記経路情報に基づいて前記ロボットの関節の速度又は加速度を算出し、算出した前記ロボットの関節の速度又は加速度が予め定めた閾値以上の場合、前記速度又は加速度が予め定めた閾値未満となるように、前記クリアランス量を大きくするようにしてもよい。
【００１２】
上記第１態様において、前記設定部は、前記クリアランス量を調整する調整係数を受け付け、受け付けた調整係数に基づいて、複数の前記クリアランス量を調整するようにしてもよい。
【００１３】
上記第１態様において、前記クリアランス量に応じて前記障害物の表示が異なるように制御する表示制御部を備えた構成としてもよい。
【００１４】
開示の第２態様は、経路生成方法であって、コンピュータが、ロボットの初期姿勢及び目標姿勢に関する姿勢情報、前記ロボットの位置に関する位置情報、前記ロボットと干渉する範囲内に存在する障害物の位置を含む障害物情報、及びロボットの形状を含む仕様に関する仕様情報を取得する取得工程と、前記ロボットと前記障害物との位置関係に基づいて、前記ロボット及び前記ロボットと干渉する範囲内に存在する障害物の少なくとも一方について、前記干渉を回避するためのクリアランスの量を表すクリアランス量を設定する設定工程と、前記ロボットの初期姿勢及び目標姿勢、前記ロボットの位置、前記障害物の位置、前記ロボットの形状、及び前記設定工程により設定されたクリアランス量に基づいて前記ロボットの経路に関する経路情報を生成する経路生成工程と、を含む処理を実行する。
【００１５】
開示の第３態様は、経路生成プログラムであって、コンピュータを、ロボットの初期姿勢及び目標姿勢に関する姿勢情報、前記ロボットの位置に関する位置情報、前記ロボットと干渉する範囲内に存在する障害物の位置を含む障害物情報、及びロボットの仕様に関する仕様情報を取得する取得部、前記ロボットと前記障害物との位置関係に基づいて、前記ロボット及び前記ロボットと干渉する範囲内に存在する障害物の少なくとも一方について、前記干渉を回避するためのクリアランスの量を表すクリアランス量を設定する設定部、及び、前記ロボットの初期姿勢及び目標姿勢、前記ロボットの位置、前記障害物の位置、前記ロボットの形状、及び前記設定部により設定されたクリアランス量に基づいて前記ロボットの経路に関する経路情報を生成する経路生成部、として機能させる。
【発明の効果】
【００１６】
本発明によれば、ロボットの動作の成功率が低下するのを防ぎつつ、ロボットの動作の安全性が低下するのを防ぐことができる。
【図面の簡単な説明】
【００１７】
【図１】ロボット及びロボット制御装置の概略構成を示す図である。
【図２】垂直多関節ロボットであるロボットの構成を示す図である。
【図３】ロボット制御装置のハードウェア構成を示すブロック図である。
【図４】ロボット制御装置の機能構成の例を示すブロック図である。
【図５】障害物の種類について説明するための図である。
【図６】ロボット制御装置によるロボット制御処理の流れを示すフローチャートである。
【図７】クリアランス量設定情報の一例を示す図である。
【図８】クリアランス量の表示例について説明するための図である。
【図９Ａ】クリアランスが設定された箱の側面図である。
【図９Ｂ】クリアランスが設定された箱の上面図である。
【図１０】クリアランス量に応じて表示を異ならせた場合の表示例を示す図である。
【図１１】クリアランス量が一律に設定された場合について説明するための図である。
【図１２Ａ】調整係数を受け付ける受付画面の一例を示す図である。
【図１２Ｂ】調整係数を受け付ける受付画面の一例を示す図である。
【図１２Ｃ】調整係数を受け付ける受付画面の一例を示す図である。
【発明を実施するための形態】
【００１８】
以下、本発明の実施形態の一例を、図面を参照しつつ説明する。なお、各図面において同一又は等価な構成要素及び部分には同一の参照符号を付与している。また、図面の寸法比率は、説明の都合上誇張されている場合があり、実際の比率とは異なる場合がある。
【００１９】
図１は、ロボット及びロボット制御装置の概略構成を示す図である。
【００２０】
図１に示すように、ロボット制御装置１０は、ロボットＲＢに接続され、ロボットＲＢの動作を制御する。ロボット制御装置１０は、ロボットＲＢの動作を制御するための各種パラメータ（動作指令値）をロボットＲＢに出力することでロボットＲＢの動作を制御する。また、ロボット制御装置１０は、ロボットＲＢの経路を生成する経路生成装置としての機能を有する。ロボット制御装置１０の詳細な構成については後述する。
【００２１】
ロボットＲＢは、ユーザにより教示される複数の教示点、又は、経路計画から生成された複数の経由点に沿って運動する。運動の際には、ロボットＲＢは、各種の動作指令値に従う。各種の動作指令値には、例えば、速度、加速度、減速度、ロボットＲＢの関節の回転角度等が含まれる。
【００２２】
ロボットＲＢは、一例として、先端にエンドエフェクタとしてロボットハンドＨが取り付けられている。この場合、ロボットＲＢは、例えばロボットＲＢの操作対象であるワークＷを所定の位置で把持し、所定の目的地まで搬送及び載置する、いわゆるピックアンドプレースロボットである。他の例として、ロボットＲＢは、エンドエフェクタとして工具が取り付けられている。この場合、ロボットＲＢは、教示された経路又は経路計画に基づく経路に従って移動し、所定の場所で、溶接、ねじ止め、検査等の所定の処理を行う。
【００２３】
ロボット制御装置１０の詳細について説明する前に、ロボットＲＢの構成について説明する。本実施形態では、一例としてロボットＲＢが垂直多関節ロボットである場合について説明する。しかし、水平多関節ロボット（スカラーロボット）、パラレルリンクロボット、直交ロボット、モバイルロボット、飛行ロボット（ドローン）、及びヒューマノイド型ロボット等にも本発明は適用可能である。
【００２４】
図２は、垂直多関節ロボットであるロボットの構成を示す図である。
【００２５】
図２に示すように、ロボットＲＢは、ベースリンクＢＬ、リンクＬ１〜Ｌ６、ジョイントＪ１〜Ｊ６を備えた６自由度の６軸ロボットである。なお、ジョイントとは、リンク同士を接続する関節である。ジョイントＪ１〜Ｊ６は、図示しないモータによりリンク同士を回転可能に接続する。本実施形態では、６軸ロボットを例に説明するが、軸の数は６に限定されず、２以上のいかなる数であっても良い。軸の数に伴い、リンクの数も変わる。
【００２６】
ベースリンクＢＬとリンクＬ１とは、図２において鉛直軸Ｓ１を中心として矢印Ｃ１方向に回転するジョイントＪ１を介して接続されている。従って、リンクＬ１は、ベースリンクＢＬを支点として矢印Ｃ１方向に回転する。
【００２７】
リンクＬ１とリンクＬ２とは、図２において水平軸Ｓ２を中心として矢印Ｃ２方向に回転するジョイントＪ２を介して接続されている。従って、リンクＬ２は、ジョイントＪ１を支点として矢印Ｃ２方向に回転する。
【００２８】
リンクＬ２とリンクＬ３とは、図２において軸Ｓ３を中心として矢印Ｃ３方向に回転するジョイントＪ３を介して接続されている。従って、リンクＬ３は、ジョイントＪ２を支点として矢印Ｃ３方向に回転する。
【００２９】
リンクＬ３とリンクＬ４とは、図２において軸Ｓ４を中心として矢印Ｃ４方向に回転するジョイントＪ４を介して接続されている。従って、リンクＬ４は、ジョイントＪ３を支点として矢印Ｃ４方向に回転する。
【００３０】
リンクＬ４とリンクＬ５とは、図２において軸Ｓ５を中心として矢印Ｃ５方向に回転するジョイントＪ５を介して接続されている。従って、リンクＬ５は、ジョイントＪ４を支点として矢印Ｃ５方向に回転する。
【００３１】
リンクＬ５とリンクＬ６とは、図２において軸Ｓ６を中心として矢印Ｃ６方向に回転するジョイントＪ６を介して接続されている。従って、リンクＬ６は、ジョイントＪ５を支点として矢印Ｃ６方向に回転する。なお、図２では図示は省略したが、リンクＬ６にロボットハンドＨが取り付けられる。
【００３２】
ジョイントＪ１〜Ｊ６は、予め定めた回転角度の範囲が可動域として各々設定されている。
【００３３】
ロボットＲＢの手先の位置又はロボットＲＢの姿勢は、各ジョイントＪ１〜Ｊ６の各々の回転角度によって定まる。従って、ロボットＲＢに経路を教示する場合には、各ジョイントＪ１〜Ｊ６の回転角度の角度値を、ロボットの持つ軸数分の次元のベクトル(本実施形態の場合は６次元のベクトル)として表現し、当該ベクトルを、教示点として順に教示する。経路を教示するのではなく生成する場合についても、同様に、ロボットＲＢが通過する経由点が、各ジョイントＪ１〜Ｊ６の軸数分の次元のベクトルとして生成される。なお、動作経路として、教示点又は経由点における各角度値を持つベクトルデータではなく、直交座標系上での各座標値を持つベクトルデータが与えられる場合もある。この場合、直交座標系上の座標値は、ロボットの逆運動学に基づいて、ジョイントＪ１〜Ｊ６の角度値に変換可能である。
【００３４】
次に、ロボット制御装置１０について説明する。
【００３５】
図３は、ロボット制御装置１０のハードウェア構成を示すブロック図である。
【００３６】
図３に示すように、ロボット制御装置１０は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）１１、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）１２、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）１３、ストレージ１４、入力部１５、モニタ１６、光ディスク駆動装置１７及び通信インタフェース１８を有する。各構成は、バス１９を介して相互に通信可能に接続されている。
【００３７】
本実施形態では、ＲＯＭ１２又はストレージ１４には、ロボットＲＢを制御するロボット制御プログラムが格納されている。ＣＰＵ１１は、中央演算処理ユニットであり、各種プログラムを実行したり、各構成を制御したりする。すなわち、ＣＰＵ１１は、ＲＯＭ１２又はストレージ１４からプログラムを読み出し、ＲＡＭ１３を作業領域としてプログラムを実行する。ＣＰＵ１１は、ＲＯＭ１２又はストレージ１４に記録されているプログラムに従って、上記各構成の制御及び各種の演算処理を行う。
【００３８】
ＲＯＭ１２は、各種プログラム及び各種データを格納する。ＲＡＭ１３は、作業領域として一時的にプログラム又はデータを記憶する。ストレージ１４は、ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）又はＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）により構成され、オペレーティングシステムを含む各種プログラム、及び各種データを格納する。
【００３９】
入力部１５は、キーボード１５１、及びマウス１５２等のポインティングデバイスを含み、各種の入力を行うために使用される。モニタ１６は、例えば、液晶ディスプレイであり、ワークＷの吸着の成否等の各種の情報を表示する。モニタ１６は、タッチパネル方式を採用して、入力部１５として機能してもよい。光ディスク駆動装置１７は、各種の記録媒体(ＣＤ−ＲＯＭ又はブルーレイディスクなど)に記憶されたデータの読み込みや、記録媒体に対するデータの書き込み等を行う。
【００４０】
通信インタフェース１８は、他の機器と通信するためのインタフェースであり、例えば、イーサネット（登録商標）、ＦＤＤＩ又はＷｉ−Ｆｉ（登録商標）等の規格が用いられる。
【００４１】
次に、ロボット制御装置１０の機能構成について説明する。
【００４２】
図４は、ロボット制御装置１０の機能構成の例を示すブロック図である。
【００４３】
図４に示すように、ロボット制御装置１０は、機能構成として、取得部２０、設定部２２、経路生成部２４、及び表示制御部２６を有する。各機能構成は、ＣＰＵ１１がＲＯＭ１２又はストレージ１４に記憶されたロボット制御プログラムを読み出し、ＲＡＭ１３に展開して実行することにより実現される。
【００４４】
取得部２０は、姿勢情報、位置情報、障害物情報、及び仕様情報を取得する。これらの情報は、予めストレージ１４に記憶されている情報を読み出すことにより取得してもよいし、外部装置から取得してもよい。
【００４５】
姿勢情報は、ロボットＲＢの初期姿勢及び目標姿勢に関する情報である。
【００４６】
位置情報は、ロボットＲＢの位置に関する情報であり、例えばロボットＲＢの３次元空間上の位置の座標値を含む。
【００４７】
障害物情報は、ロボットＲＢと干渉する範囲内に存在する障害物、すなわちロボットＲＢの動作において障害となる構造物の位置を含む情報であり、例えば障害物の３次元空間上の位置の座標値を含む。ここで、干渉とは、ロボットＲＢと接触することをいう。本実施形態では、例えば図５に示すように、ロボット制御装置１０がピックアンドプレース装置に適用される場合について説明する。障害物の種類としては、ワークが収容される箱３０、ワークが載置される棚３２、箱３０が設置される台座３４、棚３２が設置される台座３６、ロボットＲＢの動作を撮影するカメラ３８、及びカメラ３８が取り付けられたカメラスタンド４０等が挙げられる。また、本実施形態では、障害物情報は、障害物の位置に関する情報の他に、例えば障害物の三次元形状及び大きさを表す三次元形状データ又は障害物の種類を含む。
【００４８】
仕様情報は、ロボットＲＢの形状を含む仕様に関する情報である。本実施形態では一例として、仕様情報は、ロボットＲＢの各ジョイントＪ１〜Ｊ６の形状の他に、最大速度、最大加速度、最大減速度、回転角度が取り得る角度範囲等の仕様を表す情報を含む。
【００４９】
設定部２２は、ロボットＲＢと障害物との位置関係に基づいて、ロボットＲＢ及びロボットＲＢと干渉する範囲内に存在する障害物の少なくとも一方について、ロボットＲＢと障害物との干渉を回避するためのクリアランスの量を表すクリアランス量を設定する。
【００５０】
なお、ロボットＲＢ全体にクリアランス量を設定してもよいし、ジョイントＪ１〜Ｊ６の各ジョイントについて個別にクリアランス量を設定してもよい。本実施形態では、各ジョイントについて個別にクリアランス量を設定する場合について説明する。
【００５１】
また、ロボットＲＢのみにクリアランス量を設定してもよいし、障害物のみにクリアランス量を設定してもよいし、ロボットＲＢ及び障害物の両方にクリアランス量を設定してもよい。また、複数の障害物が存在する場合は、全ての障害物にクリアランス量を設定してもよいし、一部の障害物にのみクリアランス量を設定してもよい。
【００５２】
経路生成部２４は、ロボットＲＢの初期姿勢及び目標姿勢、ロボットＲＢの位置、障害物の位置、ロボットの形状、及び設定部２２により設定されたクリアランス量に基づいてロボットＲＢの経路に関する経路情報を生成する。経路情報は、ロボットＲＢの初期姿勢から目標姿勢までの経路及びロボットＲＢが経路を移動する際の速度に関する情報である。ここで、経路とは、ロボットＲＢを初期姿勢から目標姿勢まで動作させる場合の姿勢のリストである。ロボットＲＢの姿勢は、各ジョイントＪ１〜Ｊ６の回転角度の角度値で定まるため、経路は、ロボットＲＢの初期姿勢から目標姿勢までのロボットＲＢの教示点又は経由点の各ジョイントＪ１〜Ｊ６の回転角度の角度値のリストである。
【００５３】
また、速度に関する情報は、例えばロボットＲＢが初期姿勢から目標姿勢まで動作する場合の速度の変化を表す速度プロファイルである。ロボットＲＢは、速度プロファイルに従って速度が制御されて経路を移動する。
【００５４】
表示制御部２６は、クリアランス量が設定されたロボットＲＢ及び障害物をモニタ１６に表示させたりする等、各種の表示制御処理を実行する。
【００５５】
次に、ロボット制御装置１０の作用について説明する。
【００５６】
図６は、ロボット制御装置１０によるロボット制御処理の流れを示すフローチャートである。ＣＰＵ１１がＲＯＭ１２又はストレージ１４からロボット制御プログラムを読み出して、ＲＡＭ１３に展開し実行することにより、ロボット制御処理が行なわれる。なお、ロボット制御処理には、経路生成処理が含まれる。
【００５７】
ＣＰＵ１１は、取得部２０として、ロボットＲＢの姿勢情報、ロボットＲＢの位置情報、障害物に関する障害物情報、及びロボットＲＢの仕様情報を取得する（ステップＳ１００）。
【００５８】
ＣＰＵ１１は、ロボットＲＢ及びロボットＲＢと干渉する範囲内に存在する障害物の少なくとも一方について、ロボットＲＢと障害物との干渉を回避するためのクリアランスの量を表すクリアランス量を個別に設定する（ステップＳ１０２）。
【００５９】
以下、クリアランス量の設定方法について説明する。
【００６０】
まず、例えばユーザーによってクリアランス量を個別に設定することができる。この場合、例えば表示制御部２６が、仕様情報に基づいてロボットＲＢをモニタ１６に表示させると共に、障害物情報に基づいて障害物をモニタ１６に表示させる。そして、ユーザーが、入力部１５によりロボットＲＢの各ジョイント及び障害物の少なくとも一方に対して、ロボットＲＢと障害物との位置関係に基づいてクリアランス量を入力する。これにより、ロボットＲＢ及び障害物の少なくとも一方に対してクリアランス量を設定できる。
【００６１】
また、例えば図７に示すようなクリアランス量設定情報５０に従ってクリアランス量を自動で設定してもよい。図７に示すように、クリアランス量設定情報５０は、クリアランスの設定対象とクリアランス量との対応関係を表すテーブルデータである。図７に示すように、クリアランス量は、ロボットＲＢであればジョイントＪ１〜Ｊ６の各々に対して設定されている。ここで、根元側のジョイントであるジョイントＪ１〜Ｊ３のクリアランス量は１０ｍｍに設定されている。なお、ジョイントＪ１にクリアランス量１０ｍｍを設定するということは、ジョイントＪ１の表面に対して法線方向に１０ｍｍ分厚みが増すことを意味する。
【００６２】
一方、手先側のジョイントであるジョイントＪ４〜Ｊ６のクリアランス量は５ｍｍに設定されている。すなわち、根元側のジョイントのクリアランス量よりも手先側のクリアランス量が小さく設定されている。手先側のジョイントＪ４〜Ｊ６は、図５の箱３０又は棚３２のように凹みのある障害物の凹み部分に突入する可能性がある。このため、クリアランス量を大きめに設定してしまうと、例えば箱３０の隅に存在するワークのピックアップを失敗する場合がある。このため、手先側のジョイントＪ４〜Ｊ６のクリアランス量を根元側のジョイントＪ１〜Ｊ３のクリアランス量よりも小さくしている。また、図７に示すように、カメラスタンド４０のクリアランス量が１０ｍｍに設定されているのに対し、箱３０及び棚３２のクリアランス量はカメラスタンド４０よりも小さい５ｍｍに設定されている。このように、クリアランス量設定情報５０は、ロボットＲＢと障害物との位置関係に基づいてクリアランス量が設定されている。これにより、ワークのピックアップの成功率が低下するのを防ぐことができる。
【００６３】
次に、他のクリアランス量の設定方法について説明する。まず、例えば経路生成部２４が、ステップＳ１００で取得したロボットＲＢの姿勢情報、ロボットＲＢの位置情報、障害物に関する障害物情報、及びロボットＲＢの仕様情報に基づいて、初期姿勢から目標姿勢までの経路の経路情報を生成し、生成した経路情報に従ってロボットＲＢを動作させるシミュレーションを実行する。そして、設定部２２が、シミュレーションの実行結果に従ってロボットＲＢ及び障害物の少なくとも一方にクリアランス量を設定してもよい。具体的には、例えば箱３０及び棚３２のように凹みを有する障害物に突入するジョイントを特定し、障害物に突入するジョイントのクリアランス量を、障害物に突入しないジョイントのクリアランス量よりも小さく設定する。すなわち、ロボットＲＢと障害物との位置関係に基づいてクリアランス量を設定する。また、後述するステップＳ１０６と同様の処理により経路情報を生成し、生成した経路情報に基づいてジョイントの加速度を算出し、算出した加速度が予め定めた閾値以上の場合、加速度が予め定めた閾値未満となるように、クリアランス量を大きくしてもよい。これにより、より安全にロボットＲＢを動作させることができる。なお、加速度に代えてジョイントの速度を算出し、算出した速度に基づいてクリアランス量を設定してもよい。
【００６４】
ＣＰＵ１１は、表示制御部２６として、ステップＳ１００で取得した仕様情報及び障害物情報に基づいて、ロボットＲＢ及び障害物をモニタ１６に表示する（ステップＳ１０４）。このとき、ステップＳ１０２で設定されたクリアランス量でクリアランスが設定されていることが認識できるように表示する。図８には、クリアランスが設定された障害物の表示例を示した。図８の例では、箱６０、６２、支柱６４の各々に対して個別にクリアランスが設定されており、クリアランスが設定された領域を２点鎖線で示している。図８の例では、凹みを有し、ワークが収容される箱６０、ワークが載置される箱６２のクリアランス量が、凹みを有さない支柱６４のクリアランス量よりも小さくなっている。なお、箱６０、６２は凹みを有する。このため、例えば箱６０を側面から見た図９Ａに示すように、箱６０の外側にクリアランスが設定されるだけでなく、箱６０を上側から見た図９Ｂに示すように、箱６０の内側にもクリアランスが設定される。
【００６５】
なお、クリアランス量に応じて障害物の表示が異なるように制御するようにしてもよい。例えば図１０に示すように、箱６０、６２のクリアランス量が、支柱６４のクリアランス量よりも小さい場合は、箱６０、６２の色と、支柱６４の色と、を異ならせる。これにより、異なるクリアランス量が設定されていることを容易に認識できる。
【００６６】
また、１つの障害物に設定したクリアランス量を他の障害物に一律に設定するようにしてもよい。例えば図１１に示すように、支柱６４に設定したクリアランス量を箱６０、６２に一律に設定するようにしてもよい。
【００６７】
また、設定部２２が、クリアランス量を調整する調整係数を受け付け、受け付けた調整係数に基づいて、複数のクリアランス量を調整するようにしてもよい。例えば図１２Ａに示すように、調整係数を受け付ける受付画面７０をモニタ１６に表示する。図１２Ａの例では、調整バー７２を左右にスライドさせる操作を行うことにより、調整係数を０〜２の範囲で設定可能である。なお、調整係数の設定可能な範囲はこれに限られるものではなく、適宜設定すればよい。設定部２２は、調整係数を受け付けた場合、クリアランス量に調整係数を乗算した値を調整後のクリアランス量として設定する。
【００６８】
例えば図１２Ａでは、調整係数は「１」に設定されている。このため、例えば図７に示すようにロボットＲＢ及び障害物のクリアランス量が設定されていた場合、各クリアランス量は変化しない。
【００６９】
また、図１２Ｂでは、調整係数は「２」に設定されている。このため、例えば図７の箱のクリアランス量は２倍の１０ｍｍとなり、カメラスタンドのクリアランス量も２倍の２０ｍｍとなる。その他のクリアランス量についても同様に２倍となる。
【００７０】
また、図１２Ｃでは、調整係数は「０．５」に設定されている。このため、例えば図７の箱のクリアランス量は０．５倍の２．５ｍｍとなり、カメラスタンドのクリアランス量も０．５倍の５ｍｍとなる。その他のクリアランス量についても同様に０．５倍となる。
【００７１】
このように、調整係数を設定することで複数のクリアランス量を調整することができる。
【００７２】
ＣＰＵ１１は、経路生成部２４として、ステップＳ１００で取得した姿勢情報、位置情報、障害物情報、及び仕様情報と、ステップＳ１０２で設定されたクリアランス量と、に基づいてロボットＲＢの経路及び速度に関する経路情報を生成する（ステップＳ１０６）。
【００７３】
経路情報の生成方法としては種々公知の方法を採用することができる。例えば、経路の生成方法としては、ＲＲＴ(Ｒａｐｉｄｌｙ  ｅｘｐｌｏｒｉｎｇ  ｒａｎｄｏｍ  ｔｒｅｅ)、ＲＲＴ＊、ＲＲＴ  ｃｏｎｎｅｃｔ、ＰＲＭ（Ｐｒｏｂａｂｉｌｉｓｔｉｃ  Ｒｏａｄｍａｐ  Ｍｅｔｈｏｄ）、ＳＴＯＭＰ（Ｓｔｏｃｈａｓｔｉｃ  Ｔｒａｊｅｃｔｏｒｙ  Ｏｐｔｉｍｉｚａｔｉｏｎ  ｆｏｒ  Ｍｏｔｉｏｎ  Ｐｌａｎｎｉｎｎｇ）、ＣＨＯＭＰ（Ｃｏｖａｒｉａｎｔ  Ｈａｍｉｌｔｏｎｉａｎ  Ｏｐｔｉｍｉｚａｔｉｏｎ  ｆｏｒ  Ｍｏｔｉｏｎ  Ｐｌａｎｎｉｎｇ）、ＥＥＴ（Ｅｘｐｌｏｒｉｎｇ／Ｅｘｐｌｏｉｔｉｎｇ  Ｔｒｅｅ）等が挙げられる。
【００７４】
ＣＰＵ１１は、経路生成部２４として、ステップＳ１００で生成した経路情報と、障害物情報と、に基づいて、ステップＳ１０６で生成した経路において、ロボットＲＢが障害物と干渉するか否かを判定する（ステップＳ１０８）。干渉の判定には、例えばロボットＲＢと障害物との干渉を判定する公知の干渉判定技術を用いる。公知の干渉判定技術としては、例えば特開２００２−２７３６７５号公報に記載の技術を用いることができる。
【００７５】
そして、ロボットＲＢが障害物と干渉しないと判定した場合（ステップＳ１０８：ＮＯ）は、ステップＳ１１０へ移行する。一方、ロボットＲＢが障害物に干渉する場合（ステップＳ１１０：ＹＥＳ）、ステップＳ１０６へ移行し、ロボットＲＢが障害物と干渉しないように経路を再生成する。そして、ロボットＲＢが障害物と干渉しなくなるまでステップＳ１０６、Ｓ１０８の処理を繰り返す。
【００７６】
ＣＰＵ１１は、経路生成部２４として、ステップＳ１０６で生成した経路が予め定めた経路条件を満たすか否かを判定する（ステップＳ１１０）。経路条件を満たす場合とは、例えば経路の経路長が予め定めた基準経路長以下の場合である。ここで、経路長とは、ステップＳ１０６で生成した初期姿勢から目標姿勢までの経路の長さである。また、基準経路長は、例えばティーチングにより教示した経路の経路長に予め定めたマージン値を加算した値としてもよいし、クリアランスを設定しない場合の経路の経路長に予め定めたマージン値を加算した値としてもよい。これにより、経路長が長くなり過ぎるのを防ぐことができる。
【００７７】
なお、経路条件を満たす場合を、経路の動作時間が予め定めた基準動作時間以下の場合としてもよい。ここで、経路の動作時間とは、ステップＳ１０６で生成した初期姿勢から目標姿勢までの経路をロボットＲＢが移動する時間である。また、基準動作時間は、例えばティーチングにより教示した経路の動作時間に予め定めたマージン値を加算した値としてもよいし、クリアランスを設定しない場合の経路の動作時間に予め定めたマージン値を加算した値としてもよい。これにより、ロボットＲＢの動作時間が長くなり過ぎるのを防ぐことができる。
【００７８】
また、経路条件を満たす場合を、経路の経路長が基準経路長以下で且つ経路の動作時間が基準動作時間以下の場合としてもよい。
【００７９】
そして、ステップＳ１０６で生成した経路が予め定めた経路条件を満たす場合は、ステップＳ１１２へ移行する。一方、ステップＳ１１２で生成した経路が予め定めた経路条件を満たさない場合は、ステップＳ１０２へ移行し、クリアランス量を再設定する。すなわち、クリアランス量を小さくする。そして、生成した経路が予め定めた経路条件を満たすまでステップＳ１０２〜Ｓ１１０の処理を繰り返す。
【００８０】
ステップＳ１１２では、生成した経路情報に基づいて動作指令値をロボットＲＢに出力する。これにより、ロボットＲＢが経路情報に従って動作する
【００８１】
このように、本実施形態では、ロボットＲＢ及び障害物の少なくとも一方について、クリアランス量が個別に設定される。これにより、クリアランス量が一律に設定される場合と比較して、ロボットの動作の成功率が低下するのを防ぎつつ、ロボットの動作の安全性が低下するのを防ぐことができる。
【００８２】
なお、本実施形態では、障害物情報を取得する場合について説明したが、例えば図５に示すカメラ３８により撮影された撮影画像に基づいて箱３０、棚３２等の障害物に関する障害物情報を生成してもよい。この場合、カメラ３８は、二次元画像を撮影するカメラでもよいし、三次元画像を撮影するカメラでもよい。
【００８３】
取得部２０は、カメラ３８で撮影された撮影画像を取得する。設定部２２は、取得した撮影画像に基づいて障害物情報を生成し、生成した障害物情報に基づいてクリアランス量を設定する。障害物情報の生成には、公知のテンプレートマッチング等の手法を用いることができる。
【００８４】
このように、カメラ３８により撮影された撮影画像に基づいて生成した障害物情報に基づいてクリアランス量を設定することにより、障害物情報を予め用意しておく必要がない。
【００８５】
また、図６のステップＳ１０２で設定されたクリアランス量について、ワークの重さ及びサイズの少なくとも一方に応じてクリアランス量を調整するようにしてもよい。例えば、ワークの重さが重くなるに従ってクリアランス量が大きくなり、ワークの重さが軽くなるに従ってクリアランス量が小さくなるように調整してもよい。また、ワークのサイズが大きくなるに従ってクリアランス量が大きくなり、ワークのサイズが小さくなるに従ってクリアランス量が小さくなるように設定してもよい。
【００８６】
また、本実施形態では、ロボット制御装置の制御対象であるロボットＲＢが実機の場合について説明したが、ロボット制御装置の制御対象が、シミュレーション上で動作するロボットであってもよい。
【００８７】
なお、上記各実施形態でＣＰＵがソフトウェア（プログラム）を読み込んで実行したロボット制御処理を、ＣＰＵ以外の各種のプロセッサが実行してもよい。この場合のプロセッサとしては、ＦＰＧＡ（Ｆｉｅｌｄ−Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）等の製造後に回路構成を変更可能なＰＬＤ（Ｐｒｏｇｒａｍｍａｂｌｅ  Ｌｏｇｉｃ  Ｄｅｖｉｃｅ）、及びＡＳＩＣ（Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）等の特定の処理を実行させるために専用に設計された回路構成を有するプロセッサである専用電気回路等が例示される。また、ロボット制御処理を、これらの各種のプロセッサのうちの１つで実行してもよいし、同種又は異種の２つ以上のプロセッサの組み合わせ（例えば、複数のＦＰＧＡ、及びＣＰＵとＦＰＧＡとの組み合わせ等）で実行してもよい。また、これらの各種のプロセッサのハードウェア的な構造は、より具体的には、半導体素子等の回路素子を組み合わせた電気回路である。
【００８８】
また、上記各実施形態では、ロボット制御プログラムがストレージ１４又はＲＯＭ１２に予め記憶（インストール）されている態様を説明したが、これに限定されない。プログラムは、ＣＤ−ＲＯＭ（Ｃｏｍｐａｃｔ  Ｄｉｓｋ  Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、ＤＶＤ−ＲＯＭ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｋ  Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、及びＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）メモリ等の記録媒体に記録された形態で提供されてもよい。また、プログラムは、ネットワークを介して外部装置からダウンロードされる形態としてもよい。
【符号の説明】
【００８９】
１０   ロボット制御装置
２０   取得部
２２   設定部
２４   経路生成部
２６   表示制御部
３０、６０、６２     箱
３２   棚
３８   カメラ
４０   カメラスタンド
５０   クリアランス量設定情報
６４   支柱
７０   受付画面
７２   調整バー
【図１】
2020110885.tif 000003
【図２】
2020110885.tif 000004
【図３】
2020110885.tif 000005
【図４】
2020110885.tif 000006
【図５】
2020110885.tif 000007
【図６】
2020110885.tif 000008
【図７】
2020110885.tif 000009
【図８】
2020110885.tif 000010
【図９Ａ】
2020110885.tif 000011
【図９Ｂ】
2020110885.tif 000012
【図１０】
2020110885.tif 000013
【図１１】
2020110885.tif 000014
【図１２Ａ】
2020110885.tif 000015
【図１２Ｂ】
2020110885.tif 000016
【図１２Ｃ】
2020110885.tif 000017