IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ オムロン株式会社の特許一覧

特許7147571経路生成装置、経路生成方法、及び経路生成プログラム
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-09-27
(45)【発行日】2022-10-05
(54)【発明の名称】経路生成装置、経路生成方法、及び経路生成プログラム
(51)【国際特許分類】
   B25J 9/22 20060101AFI20220928BHJP
   G05B 19/4093 20060101ALI20220928BHJP
【FI】
B25J9/22 A
G05B19/4093 E
【請求項の数】 8
(21)【出願番号】P 2019004311
(22)【出願日】2019-01-15
(65)【公開番号】P2020110885
(43)【公開日】2020-07-27
【審査請求日】2020-12-14
(73)【特許権者】
【識別番号】000002945
【氏名又は名称】オムロン株式会社
(74)【代理人】
【識別番号】110001519
【氏名又は名称】特許業務法人太陽国際特許事務所
(72)【発明者】
【氏名】殿谷 徳和
(72)【発明者】
【氏名】藤井 春香
(72)【発明者】
【氏名】小島 岳史
【審査官】臼井 卓巳
(56)【参考文献】
【文献】特開2009-032189(JP,A)
【文献】特開2018-134703(JP,A)
【文献】特開2009-233757(JP,A)
【文献】特開2016-078184(JP,A)
【文献】特開平05-204428(JP,A)
【文献】特開平05-250023(JP,A)
【文献】特開平09-034524(JP,A)
【文献】特開2003-280710(JP,A)
【文献】特開2007-313592(JP,A)
【文献】米国特許出願公開第2018/0281191(US,A1)
【文献】米国特許出願公開第2014/0316431(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
B25J 9/10-19/06
G05B 19/18-19/42
(57)【特許請求の範囲】
【請求項1】
ロボットの初期姿勢及び目標姿勢に関する姿勢情報、前記ロボットの位置に関する位置情報、前記ロボットと干渉する範囲内に存在する障害物の位置を含む障害物情報、及び前記ロボットの形状を含む仕様に関する仕様情報を取得する取得部と、
前記ロボットと前記障害物との位置関係に基づいて、前記ロボット及び前記ロボットと干渉する範囲内に存在する障害物の少なくとも一方について、前記干渉を回避するためのクリアランスの量を表すクリアランス量を設定する設定部と、
前記ロボットの初期姿勢及び目標姿勢、前記ロボットの位置、前記障害物の位置、前記ロボットの形状、及び前記設定部により設定されたクリアランス量に基づいて前記ロボットの経路に関する経路情報を生成する経路生成部と、
を備え
前記設定部は、前記ロボットを構成する複数のジョイントのうち手先側のジョイントのクリアランス量を根元側のジョイントのクリアランス量よりも小さく設定する
経路生成装置。
【請求項2】
前記設定部は、前記経路生成部が生成した経路が予め定めた経路条件を満たさない場合は、前記クリアランス量を小さくし、
前記経路生成部は、前記ロボットの初期姿勢及び目標姿勢と、前記ロボットの位置と、前記障害物の位置と、前記ロボットの形状と、前記設定部により設定されたクリアランス量と、に基づいて前記経路情報を再生成する
請求項1記載の経路生成装置。
【請求項3】
前記設定部は、前記障害物が凹みを有し且つ前記ロボットの操作対象であるワークが収容又は載置される障害物である場合、凹みを有さない障害物のクリアランス量よりも小さいクリアランス量を設定する
請求項1又は請求項2記載の経路生成装置。
【請求項4】
前記設定部は、前記経路情報に基づいて前記ロボットの関節の速度又は加速度を算出し、算出した前記ロボットの関節の速度又は加速度が予め定めた閾値以上の場合、前記速度又は加速度が予め定めた閾値未満となるように、前記クリアランス量を大きくする
請求項1~3の何れか1項に記載の経路生成装置。
【請求項5】
前記設定部は、前記クリアランス量を調整する調整係数を受け付け、受け付けた調整係数に基づいて、複数の前記クリアランス量を調整する
請求項1~4の何れか1項に記載の経路生成装置。
【請求項6】
前記クリアランス量に応じて前記障害物の表示が異なるように制御する表示制御部
を備えた請求項1~5の何れか1項に記載の経路生成装置。
【請求項7】
コンピュータが、
ロボットの初期姿勢及び目標姿勢に関する姿勢情報、前記ロボットの位置に関する位置情報、前記ロボットと干渉する範囲内に存在する障害物の位置を含む障害物情報、及びロボットの形状を含む仕様に関する仕様情報を取得する取得工程と、
前記ロボットと前記障害物との位置関係に基づいて、前記ロボット及び前記ロボットと干渉する範囲内に存在する障害物の少なくとも一方について、前記干渉を回避するためのクリアランスの量を表すクリアランス量を設定する設定工程と、
前記ロボットの初期姿勢及び目標姿勢、前記ロボットの位置、前記障害物の位置、前記ロボットの形状、及び前記設定工程により設定されたクリアランス量に基づいて前記ロボットの経路に関する経路情報を生成する経路生成工程と、
を含み、
前記設定工程は、前記ロボットを構成する複数のジョイントのうち手先側のジョイントのクリアランス量を根元側のジョイントのクリアランス量よりも小さく設定する
処理を実行する経路生成方法。
【請求項8】
コンピュータを、
ロボットの初期姿勢及び目標姿勢に関する姿勢情報、前記ロボットの位置に関する位置情報、前記ロボットと干渉する範囲内に存在する障害物の位置を含む障害物情報、及びロボットの形状を含む仕様に関する仕様情報を取得する取得部、
前記ロボットと前記障害物との位置関係に基づいて、前記ロボット及び前記ロボットと干渉する範囲内に存在する障害物の少なくとも一方について、前記干渉を回避するためのクリアランスの量を表すクリアランス量を設定する設定部、及び、
前記ロボットの初期姿勢及び目標姿勢、前記ロボットの位置、前記障害物の位置、前記ロボットの形状、及び前記設定部により設定されたクリアランス量に基づいて前記ロボットの経路に関する経路情報を生成する経路生成部、
として機能させ
前記設定部は、前記ロボットを構成する複数のジョイントのうち手先側のジョイントのクリアランス量を根元側のジョイントのクリアランス量よりも小さく設定する
経路生成プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、経路生成装置、経路生成方法、及び経路生成プログラムに関する。
【背景技術】
【0002】
特許文献1には、ロボットの動作プログラムのシミュレーションを実行して、第1の動作経路を取得する動作経路取得部と、第1の動作経路における干渉を検出して、該干渉が発生する前後の教示点である第1の教示点及び第2の教示点を特定する教示点特定部と、第1及び第2の教示点の間に、乱数で定めた探索方向及び探索距離に基づき少なくとも1つの第3の教示点を自動的に挿入し、干渉が発生しない第2の動作経路を生成する動作経路生成部と、第2の動作経路の各々について、予め定めた少なくとも1つのパラメータに基づく評価を行う評価部と、該評価に基づいて、複数の第2の動作経路から最適動作経路を選択する動作経路選択部とを備えたロボットシミュレーション装置が開示されている。
【0003】
ロボットが移動する経路を生成する際には、ロボットが障害物と干渉しないように、すなわちロボットと障害物との距離が安全な距離を保つように経路が生成される。従来、ロボットと障害物との安全な距離を表すクリアランス量は、ロボット又は障害物に対して一律で設定されていた。
【先行技術文献】
【特許文献】
【0004】
【文献】特開2015-160277号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
クリアランス量がロボット又は障害物に対して一律に設定された場合、例えばピックアンドプレース装置において、安全性を高めるためにワークが収容される箱のクリアランス量が大きく設定されていると、箱の隅のワークのピッキングに失敗する確率が高まる。このため、全体のピッキングの成功率が低下する。一方、ピッキングの成功率を高めるためにクリアランス量を小さく設定すると安全性が低下してしまう。すなわち、ロボットが障害物と干渉するリスクが増加してしまう。
【0006】
このように、ピッキング等のロボットの動作の成功率とロボットの動作の安全性とはトレードオフの関係にあり、両者を両立するのは困難であった。
【0007】
本発明は、上記の点に鑑みてなされたものであり、ロボットの動作の成功率が低下するのを防ぎつつ、ロボットの動作の安全性が低下するのを防ぐことができる経路生成装置及び経路生成プログラムを提供することを目的とする。
【課題を解決するための手段】
【0008】
開示の第1態様は、経路生成装置であって、ロボットの初期姿勢及び目標姿勢に関する姿勢情報、前記ロボットの位置に関する位置情報、前記ロボットと干渉する範囲内に存在する障害物の位置を含む障害物情報、及び前記ロボットの形状を含む仕様に関する仕様情報を取得する取得部と、前記ロボットと前記障害物との位置関係に基づいて、前記ロボット及び前記ロボットと干渉する範囲内に存在する障害物の少なくとも一方について、前記干渉を回避するためのクリアランスの量を表すクリアランス量を設定する設定部と、前記ロボットの初期姿勢及び目標姿勢、前記ロボットの位置、前記障害物の位置、前記ロボットの形状、及び前記設定部により設定されたクリアランス量に基づいて前記ロボットの経路に関する経路情報を生成する経路生成部と、を備える。
【0009】
上記第1態様において、前記設定部は、前記経路生成部が生成した経路が予め定めた経路条件を満たさない場合は、前記クリアランス量を小さくし、前記経路生成部は、前記ロボットの初期姿勢及び目標姿勢と、前記ロボットの位置と、前記障害物の位置と、前記ロボットの形状と、前記設定部により設定されたクリアランス量と、に基づいて前記経路情報を再生成してもよい。
【0010】
上記第1態様において、前記設定部は、前記障害物が凹みを有し且つ前記ロボットの操作対象であるワークが収容又は載置される障害物である場合、凹みを有さない障害物のクリアランス量よりも小さいクリアランス量を設定してもよい。
【0011】
上記第1態様において、前記設定部は、前記経路情報に基づいて前記ロボットの関節の速度又は加速度を算出し、算出した前記ロボットの関節の速度又は加速度が予め定めた閾値以上の場合、前記速度又は加速度が予め定めた閾値未満となるように、前記クリアランス量を大きくするようにしてもよい。
【0012】
上記第1態様において、前記設定部は、前記クリアランス量を調整する調整係数を受け付け、受け付けた調整係数に基づいて、複数の前記クリアランス量を調整するようにしてもよい。
【0013】
上記第1態様において、前記クリアランス量に応じて前記障害物の表示が異なるように制御する表示制御部を備えた構成としてもよい。
【0014】
開示の第2態様は、経路生成方法であって、コンピュータが、ロボットの初期姿勢及び目標姿勢に関する姿勢情報、前記ロボットの位置に関する位置情報、前記ロボットと干渉する範囲内に存在する障害物の位置を含む障害物情報、及びロボットの形状を含む仕様に関する仕様情報を取得する取得工程と、前記ロボットと前記障害物との位置関係に基づいて、前記ロボット及び前記ロボットと干渉する範囲内に存在する障害物の少なくとも一方について、前記干渉を回避するためのクリアランスの量を表すクリアランス量を設定する設定工程と、前記ロボットの初期姿勢及び目標姿勢、前記ロボットの位置、前記障害物の位置、前記ロボットの形状、及び前記設定工程により設定されたクリアランス量に基づいて前記ロボットの経路に関する経路情報を生成する経路生成工程と、を含む処理を実行する。
【0015】
開示の第3態様は、経路生成プログラムであって、コンピュータを、ロボットの初期姿勢及び目標姿勢に関する姿勢情報、前記ロボットの位置に関する位置情報、前記ロボットと干渉する範囲内に存在する障害物の位置を含む障害物情報、及びロボットの仕様に関する仕様情報を取得する取得部、前記ロボットと前記障害物との位置関係に基づいて、前記ロボット及び前記ロボットと干渉する範囲内に存在する障害物の少なくとも一方について、前記干渉を回避するためのクリアランスの量を表すクリアランス量を設定する設定部、及び、前記ロボットの初期姿勢及び目標姿勢、前記ロボットの位置、前記障害物の位置、前記ロボットの形状、及び前記設定部により設定されたクリアランス量に基づいて前記ロボットの経路に関する経路情報を生成する経路生成部、として機能させる。
【発明の効果】
【0016】
本発明によれば、ロボットの動作の成功率が低下するのを防ぎつつ、ロボットの動作の安全性が低下するのを防ぐことができる。
【図面の簡単な説明】
【0017】
図1】ロボット及びロボット制御装置の概略構成を示す図である。
図2】垂直多関節ロボットであるロボットの構成を示す図である。
図3】ロボット制御装置のハードウェア構成を示すブロック図である。
図4】ロボット制御装置の機能構成の例を示すブロック図である。
図5】障害物の種類について説明するための図である。
図6】ロボット制御装置によるロボット制御処理の流れを示すフローチャートである。
図7】クリアランス量設定情報の一例を示す図である。
図8】クリアランス量の表示例について説明するための図である。
図9A】クリアランスが設定された箱の側面図である。
図9B】クリアランスが設定された箱の上面図である。
図10】クリアランス量に応じて表示を異ならせた場合の表示例を示す図である。
図11】クリアランス量が一律に設定された場合について説明するための図である。
図12A】調整係数を受け付ける受付画面の一例を示す図である。
図12B】調整係数を受け付ける受付画面の一例を示す図である。
図12C】調整係数を受け付ける受付画面の一例を示す図である。
【発明を実施するための形態】
【0018】
以下、本発明の実施形態の一例を、図面を参照しつつ説明する。なお、各図面において同一又は等価な構成要素及び部分には同一の参照符号を付与している。また、図面の寸法比率は、説明の都合上誇張されている場合があり、実際の比率とは異なる場合がある。
【0019】
図1は、ロボット及びロボット制御装置の概略構成を示す図である。
【0020】
図1に示すように、ロボット制御装置10は、ロボットRBに接続され、ロボットRBの動作を制御する。ロボット制御装置10は、ロボットRBの動作を制御するための各種パラメータ(動作指令値)をロボットRBに出力することでロボットRBの動作を制御する。また、ロボット制御装置10は、ロボットRBの経路を生成する経路生成装置としての機能を有する。ロボット制御装置10の詳細な構成については後述する。
【0021】
ロボットRBは、ユーザにより教示される複数の教示点、又は、経路計画から生成された複数の経由点に沿って運動する。運動の際には、ロボットRBは、各種の動作指令値に従う。各種の動作指令値には、例えば、速度、加速度、減速度、ロボットRBの関節の回転角度等が含まれる。
【0022】
ロボットRBは、一例として、先端にエンドエフェクタとしてロボットハンドHが取り付けられている。この場合、ロボットRBは、例えばロボットRBの操作対象であるワークWを所定の位置で把持し、所定の目的地まで搬送及び載置する、いわゆるピックアンドプレースロボットである。他の例として、ロボットRBは、エンドエフェクタとして工具が取り付けられている。この場合、ロボットRBは、教示された経路又は経路計画に基づく経路に従って移動し、所定の場所で、溶接、ねじ止め、検査等の所定の処理を行う。
【0023】
ロボット制御装置10の詳細について説明する前に、ロボットRBの構成について説明する。本実施形態では、一例としてロボットRBが垂直多関節ロボットである場合について説明する。しかし、水平多関節ロボット(スカラーロボット)、パラレルリンクロボット、直交ロボット、モバイルロボット、飛行ロボット(ドローン)、及びヒューマノイド型ロボット等にも本発明は適用可能である。
【0024】
図2は、垂直多関節ロボットであるロボットの構成を示す図である。
【0025】
図2に示すように、ロボットRBは、ベースリンクBL、リンクL1~L6、ジョイントJ1~J6を備えた6自由度の6軸ロボットである。なお、ジョイントとは、リンク同士を接続する関節である。ジョイントJ1~J6は、図示しないモータによりリンク同士を回転可能に接続する。本実施形態では、6軸ロボットを例に説明するが、軸の数は6に限定されず、2以上のいかなる数であっても良い。軸の数に伴い、リンクの数も変わる。
【0026】
ベースリンクBLとリンクL1とは、図2において鉛直軸S1を中心として矢印C1方向に回転するジョイントJ1を介して接続されている。従って、リンクL1は、ベースリンクBLを支点として矢印C1方向に回転する。
【0027】
リンクL1とリンクL2とは、図2において水平軸S2を中心として矢印C2方向に回転するジョイントJ2を介して接続されている。従って、リンクL2は、ジョイントJ1を支点として矢印C2方向に回転する。
【0028】
リンクL2とリンクL3とは、図2において軸S3を中心として矢印C3方向に回転するジョイントJ3を介して接続されている。従って、リンクL3は、ジョイントJ2を支点として矢印C3方向に回転する。
【0029】
リンクL3とリンクL4とは、図2において軸S4を中心として矢印C4方向に回転するジョイントJ4を介して接続されている。従って、リンクL4は、ジョイントJ3を支点として矢印C4方向に回転する。
【0030】
リンクL4とリンクL5とは、図2において軸S5を中心として矢印C5方向に回転するジョイントJ5を介して接続されている。従って、リンクL5は、ジョイントJ4を支点として矢印C5方向に回転する。
【0031】
リンクL5とリンクL6とは、図2において軸S6を中心として矢印C6方向に回転するジョイントJ6を介して接続されている。従って、リンクL6は、ジョイントJ5を支点として矢印C6方向に回転する。なお、図2では図示は省略したが、リンクL6にロボットハンドHが取り付けられる。
【0032】
ジョイントJ1~J6は、予め定めた回転角度の範囲が可動域として各々設定されている。
【0033】
ロボットRBの手先の位置又はロボットRBの姿勢は、各ジョイントJ1~J6の各々の回転角度によって定まる。従って、ロボットRBに経路を教示する場合には、各ジョイントJ1~J6の回転角度の角度値を、ロボットの持つ軸数分の次元のベクトル(本実施形態の場合は6次元のベクトル)として表現し、当該ベクトルを、教示点として順に教示する。経路を教示するのではなく生成する場合についても、同様に、ロボットRBが通過する経由点が、各ジョイントJ1~J6の軸数分の次元のベクトルとして生成される。なお、動作経路として、教示点又は経由点における各角度値を持つベクトルデータではなく、直交座標系上での各座標値を持つベクトルデータが与えられる場合もある。この場合、直交座標系上の座標値は、ロボットの逆運動学に基づいて、ジョイントJ1~J6の角度値に変換可能である。
【0034】
次に、ロボット制御装置10について説明する。
【0035】
図3は、ロボット制御装置10のハードウェア構成を示すブロック図である。
【0036】
図3に示すように、ロボット制御装置10は、CPU(Central Processing Unit)11、ROM(Read Only Memory)12、RAM(Random Access Memory)13、ストレージ14、入力部15、モニタ16、光ディスク駆動装置17及び通信インタフェース18を有する。各構成は、バス19を介して相互に通信可能に接続されている。
【0037】
本実施形態では、ROM12又はストレージ14には、ロボットRBを制御するロボット制御プログラムが格納されている。CPU11は、中央演算処理ユニットであり、各種プログラムを実行したり、各構成を制御したりする。すなわち、CPU11は、ROM12又はストレージ14からプログラムを読み出し、RAM13を作業領域としてプログラムを実行する。CPU11は、ROM12又はストレージ14に記録されているプログラムに従って、上記各構成の制御及び各種の演算処理を行う。
【0038】
ROM12は、各種プログラム及び各種データを格納する。RAM13は、作業領域として一時的にプログラム又はデータを記憶する。ストレージ14は、HDD(Hard Disk Drive)又はSSD(Solid State Drive)により構成され、オペレーティングシステムを含む各種プログラム、及び各種データを格納する。
【0039】
入力部15は、キーボード151、及びマウス152等のポインティングデバイスを含み、各種の入力を行うために使用される。モニタ16は、例えば、液晶ディスプレイであり、ワークWの吸着の成否等の各種の情報を表示する。モニタ16は、タッチパネル方式を採用して、入力部15として機能してもよい。光ディスク駆動装置17は、各種の記録媒体(CD-ROM又はブルーレイディスクなど)に記憶されたデータの読み込みや、記録媒体に対するデータの書き込み等を行う。
【0040】
通信インタフェース18は、他の機器と通信するためのインタフェースであり、例えば、イーサネット(登録商標)、FDDI又はWi-Fi(登録商標)等の規格が用いられる。
【0041】
次に、ロボット制御装置10の機能構成について説明する。
【0042】
図4は、ロボット制御装置10の機能構成の例を示すブロック図である。
【0043】
図4に示すように、ロボット制御装置10は、機能構成として、取得部20、設定部22、経路生成部24、及び表示制御部26を有する。各機能構成は、CPU11がROM12又はストレージ14に記憶されたロボット制御プログラムを読み出し、RAM13に展開して実行することにより実現される。
【0044】
取得部20は、姿勢情報、位置情報、障害物情報、及び仕様情報を取得する。これらの情報は、予めストレージ14に記憶されている情報を読み出すことにより取得してもよいし、外部装置から取得してもよい。
【0045】
姿勢情報は、ロボットRBの初期姿勢及び目標姿勢に関する情報である。
【0046】
位置情報は、ロボットRBの位置に関する情報であり、例えばロボットRBの3次元空間上の位置の座標値を含む。
【0047】
障害物情報は、ロボットRBと干渉する範囲内に存在する障害物、すなわちロボットRBの動作において障害となる構造物の位置を含む情報であり、例えば障害物の3次元空間上の位置の座標値を含む。ここで、干渉とは、ロボットRBと接触することをいう。本実施形態では、例えば図5に示すように、ロボット制御装置10がピックアンドプレース装置に適用される場合について説明する。障害物の種類としては、ワークが収容される箱30、ワークが載置される棚32、箱30が設置される台座34、棚32が設置される台座36、ロボットRBの動作を撮影するカメラ38、及びカメラ38が取り付けられたカメラスタンド40等が挙げられる。また、本実施形態では、障害物情報は、障害物の位置に関する情報の他に、例えば障害物の三次元形状及び大きさを表す三次元形状データ又は障害物の種類を含む。
【0048】
仕様情報は、ロボットRBの形状を含む仕様に関する情報である。本実施形態では一例として、仕様情報は、ロボットRBの各ジョイントJ1~J6の形状の他に、最大速度、最大加速度、最大減速度、回転角度が取り得る角度範囲等の仕様を表す情報を含む。
【0049】
設定部22は、ロボットRBと障害物との位置関係に基づいて、ロボットRB及びロボットRBと干渉する範囲内に存在する障害物の少なくとも一方について、ロボットRBと障害物との干渉を回避するためのクリアランスの量を表すクリアランス量を設定する。
【0050】
なお、ロボットRB全体にクリアランス量を設定してもよいし、ジョイントJ1~J6の各ジョイントについて個別にクリアランス量を設定してもよい。本実施形態では、各ジョイントについて個別にクリアランス量を設定する場合について説明する。
【0051】
また、ロボットRBのみにクリアランス量を設定してもよいし、障害物のみにクリアランス量を設定してもよいし、ロボットRB及び障害物の両方にクリアランス量を設定してもよい。また、複数の障害物が存在する場合は、全ての障害物にクリアランス量を設定してもよいし、一部の障害物にのみクリアランス量を設定してもよい。
【0052】
経路生成部24は、ロボットRBの初期姿勢及び目標姿勢、ロボットRBの位置、障害物の位置、ロボットの形状、及び設定部22により設定されたクリアランス量に基づいてロボットRBの経路に関する経路情報を生成する。経路情報は、ロボットRBの初期姿勢から目標姿勢までの経路及びロボットRBが経路を移動する際の速度に関する情報である。ここで、経路とは、ロボットRBを初期姿勢から目標姿勢まで動作させる場合の姿勢のリストである。ロボットRBの姿勢は、各ジョイントJ1~J6の回転角度の角度値で定まるため、経路は、ロボットRBの初期姿勢から目標姿勢までのロボットRBの教示点又は経由点の各ジョイントJ1~J6の回転角度の角度値のリストである。
【0053】
また、速度に関する情報は、例えばロボットRBが初期姿勢から目標姿勢まで動作する場合の速度の変化を表す速度プロファイルである。ロボットRBは、速度プロファイルに従って速度が制御されて経路を移動する。
【0054】
表示制御部26は、クリアランス量が設定されたロボットRB及び障害物をモニタ16に表示させたりする等、各種の表示制御処理を実行する。
【0055】
次に、ロボット制御装置10の作用について説明する。
【0056】
図6は、ロボット制御装置10によるロボット制御処理の流れを示すフローチャートである。CPU11がROM12又はストレージ14からロボット制御プログラムを読み出して、RAM13に展開し実行することにより、ロボット制御処理が行なわれる。なお、ロボット制御処理には、経路生成処理が含まれる。
【0057】
CPU11は、取得部20として、ロボットRBの姿勢情報、ロボットRBの位置情報、障害物に関する障害物情報、及びロボットRBの仕様情報を取得する(ステップS100)。
【0058】
CPU11は、ロボットRB及びロボットRBと干渉する範囲内に存在する障害物の少なくとも一方について、ロボットRBと障害物との干渉を回避するためのクリアランスの量を表すクリアランス量を個別に設定する(ステップS102)。
【0059】
以下、クリアランス量の設定方法について説明する。
【0060】
まず、例えばユーザーによってクリアランス量を個別に設定することができる。この場合、例えば表示制御部26が、仕様情報に基づいてロボットRBをモニタ16に表示させると共に、障害物情報に基づいて障害物をモニタ16に表示させる。そして、ユーザーが、入力部15によりロボットRBの各ジョイント及び障害物の少なくとも一方に対して、ロボットRBと障害物との位置関係に基づいてクリアランス量を入力する。これにより、ロボットRB及び障害物の少なくとも一方に対してクリアランス量を設定できる。
【0061】
また、例えば図7に示すようなクリアランス量設定情報50に従ってクリアランス量を自動で設定してもよい。図7に示すように、クリアランス量設定情報50は、クリアランスの設定対象とクリアランス量との対応関係を表すテーブルデータである。図7に示すように、クリアランス量は、ロボットRBであればジョイントJ1~J6の各々に対して設定されている。ここで、根元側のジョイントであるジョイントJ1~J3のクリアランス量は10mmに設定されている。なお、ジョイントJ1にクリアランス量10mmを設定するということは、ジョイントJ1の表面に対して法線方向に10mm分厚みが増すことを意味する。
【0062】
一方、手先側のジョイントであるジョイントJ4~J6のクリアランス量は5mmに設定されている。すなわち、根元側のジョイントのクリアランス量よりも手先側のクリアランス量が小さく設定されている。手先側のジョイントJ4~J6は、図5の箱30又は棚32のように凹みのある障害物の凹み部分に突入する可能性がある。このため、クリアランス量を大きめに設定してしまうと、例えば箱30の隅に存在するワークのピックアップを失敗する場合がある。このため、手先側のジョイントJ4~J6のクリアランス量を根元側のジョイントJ1~J3のクリアランス量よりも小さくしている。また、図7に示すように、カメラスタンド40のクリアランス量が10mmに設定されているのに対し、箱30及び棚32のクリアランス量はカメラスタンド40よりも小さい5mmに設定されている。このように、クリアランス量設定情報50は、ロボットRBと障害物との位置関係に基づいてクリアランス量が設定されている。これにより、ワークのピックアップの成功率が低下するのを防ぐことができる。
【0063】
次に、他のクリアランス量の設定方法について説明する。まず、例えば経路生成部24が、ステップS100で取得したロボットRBの姿勢情報、ロボットRBの位置情報、障害物に関する障害物情報、及びロボットRBの仕様情報に基づいて、初期姿勢から目標姿勢までの経路の経路情報を生成し、生成した経路情報に従ってロボットRBを動作させるシミュレーションを実行する。そして、設定部22が、シミュレーションの実行結果に従ってロボットRB及び障害物の少なくとも一方にクリアランス量を設定してもよい。具体的には、例えば箱30及び棚32のように凹みを有する障害物に突入するジョイントを特定し、障害物に突入するジョイントのクリアランス量を、障害物に突入しないジョイントのクリアランス量よりも小さく設定する。すなわち、ロボットRBと障害物との位置関係に基づいてクリアランス量を設定する。また、後述するステップS106と同様の処理により経路情報を生成し、生成した経路情報に基づいてジョイントの加速度を算出し、算出した加速度が予め定めた閾値以上の場合、加速度が予め定めた閾値未満となるように、クリアランス量を大きくしてもよい。これにより、より安全にロボットRBを動作させることができる。なお、加速度に代えてジョイントの速度を算出し、算出した速度に基づいてクリアランス量を設定してもよい。
【0064】
CPU11は、表示制御部26として、ステップS100で取得した仕様情報及び障害物情報に基づいて、ロボットRB及び障害物をモニタ16に表示する(ステップS104)。このとき、ステップS102で設定されたクリアランス量でクリアランスが設定されていることが認識できるように表示する。図8には、クリアランスが設定された障害物の表示例を示した。図8の例では、箱60、62、支柱64の各々に対して個別にクリアランスが設定されており、クリアランスが設定された領域を2点鎖線で示している。図8の例では、凹みを有し、ワークが収容される箱60、ワークが載置される箱62のクリアランス量が、凹みを有さない支柱64のクリアランス量よりも小さくなっている。なお、箱60、62は凹みを有する。このため、例えば箱60を側面から見た図9Aに示すように、箱60の外側にクリアランスが設定されるだけでなく、箱60を上側から見た図9Bに示すように、箱60の内側にもクリアランスが設定される。
【0065】
なお、クリアランス量に応じて障害物の表示が異なるように制御するようにしてもよい。例えば図10に示すように、箱60、62のクリアランス量が、支柱64のクリアランス量よりも小さい場合は、箱60、62の色と、支柱64の色と、を異ならせる。これにより、異なるクリアランス量が設定されていることを容易に認識できる。
【0066】
また、1つの障害物に設定したクリアランス量を他の障害物に一律に設定するようにしてもよい。例えば図11に示すように、支柱64に設定したクリアランス量を箱60、62に一律に設定するようにしてもよい。
【0067】
また、設定部22が、クリアランス量を調整する調整係数を受け付け、受け付けた調整係数に基づいて、複数のクリアランス量を調整するようにしてもよい。例えば図12Aに示すように、調整係数を受け付ける受付画面70をモニタ16に表示する。図12Aの例では、調整バー72を左右にスライドさせる操作を行うことにより、調整係数を0~2の範囲で設定可能である。なお、調整係数の設定可能な範囲はこれに限られるものではなく、適宜設定すればよい。設定部22は、調整係数を受け付けた場合、クリアランス量に調整係数を乗算した値を調整後のクリアランス量として設定する。
【0068】
例えば図12Aでは、調整係数は「1」に設定されている。このため、例えば図7に示すようにロボットRB及び障害物のクリアランス量が設定されていた場合、各クリアランス量は変化しない。
【0069】
また、図12Bでは、調整係数は「2」に設定されている。このため、例えば図7の箱のクリアランス量は2倍の10mmとなり、カメラスタンドのクリアランス量も2倍の20mmとなる。その他のクリアランス量についても同様に2倍となる。
【0070】
また、図12Cでは、調整係数は「0.5」に設定されている。このため、例えば図7の箱のクリアランス量は0.5倍の2.5mmとなり、カメラスタンドのクリアランス量も0.5倍の5mmとなる。その他のクリアランス量についても同様に0.5倍となる。
【0071】
このように、調整係数を設定することで複数のクリアランス量を調整することができる。
【0072】
CPU11は、経路生成部24として、ステップS100で取得した姿勢情報、位置情報、障害物情報、及び仕様情報と、ステップS102で設定されたクリアランス量と、に基づいてロボットRBの経路及び速度に関する経路情報を生成する(ステップS106)。
【0073】
経路情報の生成方法としては種々公知の方法を採用することができる。例えば、経路の生成方法としては、RRT(Rapidly exploring random tree)、RRT*、RRT connect、PRM(Probabilistic Roadmap Method)、STOMP(Stochastic Trajectory Optimization for Motion Planninng)、CHOMP(Covariant Hamiltonian Optimization for Motion Planning)、EET(Exploring/Exploiting Tree)等が挙げられる。
【0074】
CPU11は、経路生成部24として、ステップS100で生成した経路情報と、障害物情報と、に基づいて、ステップS106で生成した経路において、ロボットRBが障害物と干渉するか否かを判定する(ステップS108)。干渉の判定には、例えばロボットRBと障害物との干渉を判定する公知の干渉判定技術を用いる。公知の干渉判定技術としては、例えば特開2002-273675号公報に記載の技術を用いることができる。
【0075】
そして、ロボットRBが障害物と干渉しないと判定した場合(ステップS108:NO)は、ステップS110へ移行する。一方、ロボットRBが障害物に干渉する場合(ステップS110:YES)、ステップS106へ移行し、ロボットRBが障害物と干渉しないように経路を再生成する。そして、ロボットRBが障害物と干渉しなくなるまでステップS106、S108の処理を繰り返す。
【0076】
CPU11は、経路生成部24として、ステップS106で生成した経路が予め定めた経路条件を満たすか否かを判定する(ステップS110)。経路条件を満たす場合とは、例えば経路の経路長が予め定めた基準経路長以下の場合である。ここで、経路長とは、ステップS106で生成した初期姿勢から目標姿勢までの経路の長さである。また、基準経路長は、例えばティーチングにより教示した経路の経路長に予め定めたマージン値を加算した値としてもよいし、クリアランスを設定しない場合の経路の経路長に予め定めたマージン値を加算した値としてもよい。これにより、経路長が長くなり過ぎるのを防ぐことができる。
【0077】
なお、経路条件を満たす場合を、経路の動作時間が予め定めた基準動作時間以下の場合としてもよい。ここで、経路の動作時間とは、ステップS106で生成した初期姿勢から目標姿勢までの経路をロボットRBが移動する時間である。また、基準動作時間は、例えばティーチングにより教示した経路の動作時間に予め定めたマージン値を加算した値としてもよいし、クリアランスを設定しない場合の経路の動作時間に予め定めたマージン値を加算した値としてもよい。これにより、ロボットRBの動作時間が長くなり過ぎるのを防ぐことができる。
【0078】
また、経路条件を満たす場合を、経路の経路長が基準経路長以下で且つ経路の動作時間が基準動作時間以下の場合としてもよい。
【0079】
そして、ステップS106で生成した経路が予め定めた経路条件を満たす場合は、ステップS112へ移行する。一方、ステップS112で生成した経路が予め定めた経路条件を満たさない場合は、ステップS102へ移行し、クリアランス量を再設定する。すなわち、クリアランス量を小さくする。そして、生成した経路が予め定めた経路条件を満たすまでステップS102~S110の処理を繰り返す。
【0080】
ステップS112では、生成した経路情報に基づいて動作指令値をロボットRBに出力する。これにより、ロボットRBが経路情報に従って動作する
【0081】
このように、本実施形態では、ロボットRB及び障害物の少なくとも一方について、クリアランス量が個別に設定される。これにより、クリアランス量が一律に設定される場合と比較して、ロボットの動作の成功率が低下するのを防ぎつつ、ロボットの動作の安全性が低下するのを防ぐことができる。
【0082】
なお、本実施形態では、障害物情報を取得する場合について説明したが、例えば図5に示すカメラ38により撮影された撮影画像に基づいて箱30、棚32等の障害物に関する障害物情報を生成してもよい。この場合、カメラ38は、二次元画像を撮影するカメラでもよいし、三次元画像を撮影するカメラでもよい。
【0083】
取得部20は、カメラ38で撮影された撮影画像を取得する。設定部22は、取得した撮影画像に基づいて障害物情報を生成し、生成した障害物情報に基づいてクリアランス量を設定する。障害物情報の生成には、公知のテンプレートマッチング等の手法を用いることができる。
【0084】
このように、カメラ38により撮影された撮影画像に基づいて生成した障害物情報に基づいてクリアランス量を設定することにより、障害物情報を予め用意しておく必要がない。
【0085】
また、図6のステップS102で設定されたクリアランス量について、ワークの重さ及びサイズの少なくとも一方に応じてクリアランス量を調整するようにしてもよい。例えば、ワークの重さが重くなるに従ってクリアランス量が大きくなり、ワークの重さが軽くなるに従ってクリアランス量が小さくなるように調整してもよい。また、ワークのサイズが大きくなるに従ってクリアランス量が大きくなり、ワークのサイズが小さくなるに従ってクリアランス量が小さくなるように設定してもよい。
【0086】
また、本実施形態では、ロボット制御装置の制御対象であるロボットRBが実機の場合について説明したが、ロボット制御装置の制御対象が、シミュレーション上で動作するロボットであってもよい。
【0087】
なお、上記各実施形態でCPUがソフトウェア(プログラム)を読み込んで実行したロボット制御処理を、CPU以外の各種のプロセッサが実行してもよい。この場合のプロセッサとしては、FPGA(Field-Programmable Gate Array)等の製造後に回路構成を変更可能なPLD(Programmable Logic Device)、及びASIC(Application Specific Integrated Circuit)等の特定の処理を実行させるために専用に設計された回路構成を有するプロセッサである専用電気回路等が例示される。また、ロボット制御処理を、これらの各種のプロセッサのうちの1つで実行してもよいし、同種又は異種の2つ以上のプロセッサの組み合わせ(例えば、複数のFPGA、及びCPUとFPGAとの組み合わせ等)で実行してもよい。また、これらの各種のプロセッサのハードウェア的な構造は、より具体的には、半導体素子等の回路素子を組み合わせた電気回路である。
【0088】
また、上記各実施形態では、ロボット制御プログラムがストレージ14又はROM12に予め記憶(インストール)されている態様を説明したが、これに限定されない。プログラムは、CD-ROM(Compact Disk Read Only Memory)、DVD-ROM(Digital Versatile Disk Read Only Memory)、及びUSB(Universal Serial Bus)メモリ等の記録媒体に記録された形態で提供されてもよい。また、プログラムは、ネットワークを介して外部装置からダウンロードされる形態としてもよい。
【符号の説明】
【0089】
10 ロボット制御装置
20 取得部
22 設定部
24 経路生成部
26 表示制御部
30、60、62 箱
32 棚
38 カメラ
40 カメラスタンド
50 クリアランス量設定情報
64 支柱
70 受付画面
72 調整バー
図1
図2
図3
図4
図5
図6
図7
図8
図9A
図9B
図10
図11
図12A
図12B
図12C