(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-12-04
(45)【発行日】2023-12-12
(54)【発明の名称】ロボットシステムおよび制御方法
(51)【国際特許分類】
B25J 5/00 20060101AFI20231205BHJP
B25J 13/00 20060101ALI20231205BHJP
【FI】
B25J5/00 E
B25J13/00 A
(21)【出願番号】P 2019153547
(22)【出願日】2019-08-26
【審査請求日】2022-07-13
(73)【特許権者】
【識別番号】000002369
【氏名又は名称】セイコーエプソン株式会社
(74)【代理人】
【識別番号】100179475
【氏名又は名称】仲井 智至
(74)【代理人】
【識別番号】100216253
【氏名又は名称】松岡 宏紀
(74)【代理人】
【識別番号】100225901
【氏名又は名称】今村 真之
(72)【発明者】
【氏名】清澤 勇貴
【審査官】松浦 陽
(56)【参考文献】
【文献】特開2007-126254(JP,A)
【文献】特開2001-067127(JP,A)
【文献】特開2001-134318(JP,A)
【文献】特開平11-077562(JP,A)
【文献】特開2017-074631(JP,A)
【文献】特開2003-063607(JP,A)
【文献】特開2007-323478(JP,A)
【文献】特開平09-278122(JP,A)
【文献】特開平04-293108(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
B25J 1/00 - 21/02
G05D 1/00 - 1/12
(57)【特許請求の範囲】
【請求項1】
基台と、
前記基台に接続されたロボットアームと、
前記基台を移動させる移動機構と、
前記基台の目標位置が入力される入力部と、
前記入力部に入力された前記目標位置に基づいて前記移動機構の作動を制御する制御部と、
前記移動機構による前記基台の移動が完了した後の前記基台の停止位置と、前記目標位置との差異を検出する検出部と、
前記検出部が検出した前記差異に関する情報を記憶する記憶部と、を備え、
前記情報は、前記目標位置を補正した補正量を含み、
前記制御部は、
前記基台の移動を行う際、既に前記記憶部に記憶されている前記情報に応じて前記基台が停止すべき設定目標位置を設定し、
前記設定目標位置を設定する際、前記記憶部に既に記憶されている前記補正量を用いて前記目標位置を補正し、
前記記憶部に既に複数の前記補正量が記憶されている場合、前記各補正量のうち、最小の前記補正量を用いることを特徴とするロボットシステム。
【請求項2】
前記制御部は、前記情報が記憶された回数が所定回数に到達した場合、前記情報に基づいて前記設定目標位置を設定する請求項1に記載のロボットシステム。
【請求項3】
前記目標位置には、マーカーが付されており、
前記検出部は、前記マーカーを撮像する撮像部である請求項1または2に記載のロボットシステム。
【請求項4】
ロボットアームが接続された基台を入力された目標位置に向かって移動させる移動工程と、
前記基台の移動が完了した後の前記基台の停止位置と、前記目標位置との差異を検出する検出工程と、を備え、
前記移動工程では、過去に検出された差異に関する情報に応じて前記基台が停止すべき設定目標位置を設定し、
前記情報は、前記目標位置を補正した補正量を含み、
前記設定目標位置を設定する際、前記補正量を用いて前記目標位置を補正し、
複数の前記補正量が記憶されている場合、前記各補正量のうち、最小の前記補正量を用いることを特徴とする制御方法。
【請求項5】
基台と、
前記基台に接続されたロボットアームと、
前記基台を移動させる移動機構と、
前記基台の目標位置が入力される入力部と、
前記入力部に入力された前記目標位置に基づいて前記移動機構の作動を制御する制御部と、
前記移動機構による前記基台の移動が完了した後の前記基台の停止位置と、前記目標位置との差異を検出する検出部と、
前記検出部が検出した前記差異に関する情報を記憶する記憶部と、を備え、
前記情報は、前記目標位置を補正した補正量を含み、
前記制御部は、
前記基台の移動を行う際、既に前記記憶部に記憶されている前記情報に応じて前記基台が停止すべき設定目標位置を設定し、
前記設定目標位置を設定する際、前記記憶部に既に記憶されている前記補正量を用いて前記目標位置を補正し、
前記記憶部に既に複数の補正量が記憶されている場合、最後に記憶された前記補正量を用いることを特徴とするロボットシステム。
【請求項6】
ロボットアームが接続された基台を入力された目標位置に向かって移動させる移動工程と、
前記基台の移動が完了した後の前記基台の停止位置と、前記目標位置との差異を検出する検出工程と、を備え、
前記移動工程では、過去に検出された差異に関する情報に応じて前記基台が停止すべき設定目標位置を設定し、
前記情報は、前記目標位置を補正した補正量を含み、
前記設定目標位置を設定する際、前記補正量を用いて前記目標位置を補正し、
複数の前記補正量が記憶されている場合、前記各補正量のうち、
最後に記憶された前記補正量を用いることを特徴とする制御方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ロボットシステムおよび制御方法に関するものである。
【背景技術】
【0002】
近年、工場では人件費の高騰や人材不足により、各種ロボットやそのロボット周辺機器によって、人手で行われてきた作業の自動化が加速している。また、近年では、特許文献1に示すように、ロボットを備える車輪走行型の無人搬送車が自ら移動を行い、移動先で作業を行っている。
【0003】
特許文献1に示す無人搬送車は、ロボットアームと、ロボットアームを移動させる移動機構と、撮像部と、を備えている。また、無人搬送車の移動の目標位置である搬送ステーションに補正マークを設け、無人搬送車が移動先で補正マークを撮像し、その撮像結果に基づいて、位置、姿勢の調整を行っている。
【先行技術文献】
【特許文献】
【0004】
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、特許文献1のような車輪走行型の無人搬送車は、目標位置に到着してから位置の微調整を行うのが難しい。すなわち、一端目標位置に到着した後に、位置の微調整を行おうとすると、場合によっては、大回りをしないと微調整ができないことがある。また、例えば、周囲に障害物があって大回りできない場合は、出発地点に戻って再度移動し直す必要がある。このように、無人搬送車の移動は、正確に行う必要があるが、従来では、正確に移動する方法がなかった。
【課題を解決するための手段】
【0006】
本発明は、前述した課題の少なくとも一部を解決するためになされたものであり、以下により実現することが可能である。
【0007】
本適用例のロボットシステムは、基台と、
前記基台に接続されたロボットアームと、
前記基台を移動させる移動機構と、
前記基台の目標位置が入力される入力部と、
前記入力部に入力された前記目標位置に基づいて前記移動機構の作動を制御する制御部と、
前記移動機構による前記基台の移動が完了した後の前記基台の停止位置と、前記目標位置との差異を検出する検出部と、
前記検出部が検出した前記差異に関する情報を記憶する記憶部と、を備え、
前記制御部は、前記基台の移動を行う際、既に前記記憶部に記憶されている前記情報に応じて前記基台が停止すべき設定目標位置を設定することを特徴とする。
【0008】
本適用例の制御方法は、ロボットアームが接続された基台を入力された目標位置に向かって移動させる移動工程と、
前記基台の移動が完了した後の前記基台の停止位置と、前記目標位置との差異を検出する検出工程と、を備え、
前記移動工程では、過去に検出された差異に関する情報に応じて前記基台が停止すべき設定目標位置を設定することを特徴とする。
【図面の簡単な説明】
【0009】
【
図1】第1実施形態に係るロボットシステムを示す機能ブロック図である。
【
図2】
図1に示すロボットを鉛直上方から見た図であり、移動経路を説明するための図である。
【
図3】
図1に示すロボットを鉛直上方から見た図であり、移動経路を説明するための図である。
【
図4】
図1に示す検出部としての撮像部がマーカーを撮像した撮像画像である。
【
図5】
図1に示す検出部としての撮像部がマーカーを撮像した撮像画像である。
【
図6】
図1に示す制御装置が備える記憶部に記憶される差異に関する情報を示すテーブルである。
【
図7】
図1に示す制御装置が備える記憶部に記憶される差異に関する情報を示すテーブルである。
【
図8】
図1に示す制御装置が行う制御動作を説明するためのフローチャートである。
【
図9】第2実施形態に係るロボットシステムの制御方法を説明する図であって、ロボットおよびその周辺を鉛直上方から見た図である。
【
図10】第3実施形態に係るロボットシステムの制御方法を説明する図であって、ロボットおよびその周辺を鉛直上方から見た図である。
【発明を実施するための形態】
【0010】
以下、本発明のロボットシステムおよび制御方法を添付図面に示す好適な実施形態に基づいて詳細に説明する。
【0011】
<第1実施形態>
図1は、第1実施形態に係るロボットシステムを示す機能ブロック図である。
図2は、
図1に示すロボットを鉛直上方から見た図であり、移動経路を説明するための図である。
図3は、
図1に示すロボットを鉛直上方から見た図であり、移動経路を説明するための図である。
図4および
図5は、
図1に示す検出部としての撮像部がマーカーを撮像した撮像画像である。
図6および
図7は、
図1に示す制御装置が備える記憶部に記憶される差異に関する情報を示すテーブルである。
図8は、
図1に示す制御装置が行う制御動作を説明するためのフローチャートである。
【0012】
また、
図1~
図3では、説明の便宜上、互いに直交する3軸として、x軸、y軸およびz軸を図示している。また、以下では、x軸に平行な方向を「x軸方向」とも言い、y軸に平行な方向を「y軸方向」とも言い、z軸に平行な方向を「z軸方向」とも言う。
【0013】
また、以下では、説明の便宜上、
図1中の+z軸方向、すなわち、上側を「上」または「上方」、-z軸方向、すなわち、下側を「下」または「下方」とも言う。また、
図1中のz軸方向、すなわち、上下方向を「鉛直方向」とし、x軸方向およびy軸方向、すなわち、左右方向を「水平方向」とする。
【0014】
図1に示すロボットシステム100は、例えば、電子部品および電子機器等のワークの保持、搬送、組立ておよび検査等の作業で用いられる装置である。ロボットシステム100は、基台110およびロボットアーム10を有するロボット1と、基台110を移動させる移動機構2と、検出部3と、制御装置4と、を備える。また、移動機構2、検出部3および制御装置4は、本実施形態では、ロボット1に含まれていないものとして説明するが、これらの少なくとも1つは、ロボット1に含まれていてもよい。すなわち、移動機構2、検出部3および制御装置4は、ロボット1の構成要素であってもよく、ロボット1の構成要素でなくてもよい。
【0015】
図1に示すロボット1は、いわゆる6軸の垂直多関節ロボットであり、基台110と、基台110に接続されたロボットアーム10とを有する。
【0016】
基台110は、ロボットアーム10を支持するものである。基台110は、筐体を有し、該筐体の内部には、例えば、ロボットアーム10を駆動する駆動装置や、制御装置4と通信を行うための図示しない通信部等が設置されている。また、基台110の任意の位置、例えば、重心には、ロボット座標系の原点が設定されている。この原点が、後述する移動機構2による移動の制御点となる。
【0017】
なお、基台110は、図示のような形状に限定されず、ロボットアーム10を支持する機能を有していればよく、例えば、板状の部材や、複数本の脚で構成されていてもよい。
【0018】
図1に示すロボットアーム10は、その基端が基台110に接続されており、複数のアームであるアーム11、アーム12、アーム13、アーム14、アーム15およびアーム16を有する。これらアーム11~アーム16は、基端から先端に向かってこの順に連結されている。各アーム11~アーム16は、隣り合うアームまたは基台110に対して回動可能になっている。
【0019】
また、ロボット1は、それぞれ図示しないものの、基台110に対してアーム11を回動させる駆動装置、アーム11に対してアーム12を回動させる駆動装置、アーム12に対してアーム13を回動させる駆動装置、アーム13に対してアーム14を回動させる駆動装置、アーム14に対してアーム15を回動させる駆動装置、およびアーム15に対してアーム16を回動させる駆動装置を有している。各駆動装置は、モーターと、モーターの駆動を制御するコントローラーと、モーターの回転量を検出するエンコーダーと、を備えており、制御装置4によって互いに独立に制御される。
【0020】
図1に示すように、ロボットアーム10の先端には、作業対象物を保持するエンドエフェクター17が装着される。エンドエフェクター17は、図示の構成では、複数本、例えば、2本の指を接近、離間させて作業対象物を把持する。なお、エンドエフェクター17としては、この構成に限定されず、吸着ハンド、磁気ハンド、ドリル等の工具等であってもよい。
【0021】
次に、移動機構2について説明する。
移動機構2は、自動走行システムで構成されており、制御装置4からの指令に基づいて基台110を移動させる。移動機構2は、複数の車輪、すなわち、
図1中y軸方向に並ぶ一対の前輪21、
図1中y軸方向に並ぶ一対の後輪22および
図1中y軸方向に並ぶ一対の駆動輪23を有する。一対の駆動輪23は、一対の前輪21および一対の後輪22の間に設けられている。各駆動輪23は、図示しない駆動モーターに接続されており、駆動モーターからの駆動力により回転し、基台110を移動させる。なお、一対の前輪21および一対の後輪22は、本実施形態では、従動輪である。
【0022】
また、各駆動輪23は、独立してそれぞれ駆動モーターに接続され、それぞれ、正回転および逆回転可能に構成されている。このため、直進したり、後退したりすることができる。また、各駆動輪23の回転速度および回転方向の少なくとも一方を調整することにより、走行する向きを変更したりする等、操舵することができる。また、本実施形態では、前輪21、後輪22および駆動輪23は、z軸回りに回転しない構成であるが、これに限定されず、前輪21、後輪22および駆動輪23の少なくとも1つは、z軸回りに回転する構成であってもよい。この場合、z軸回りの回転量を調整することによって操舵することができる。
【0023】
なお、本明細書中の「移動」には、直進、カーブ、蛇行、往復動等はもちろん、回転も含まれる。また、移動機構2の車輪の数は、特に限定されない。また、移動機構2の構成としては、上記のような車輪走行型に限定されず、例えば、複数本の足を有し、歩行する構成等であってもよい。
【0024】
また、本実施形態では、移動機構2は、基台110に内蔵されているが、本発明ではこれに限定されず、例えば、移動機構2が走行車で構成され、この走行車の上に基台110を配置する構成であってもよく、走行車が基台110を牽引する構成であってもよい。
【0025】
次に、検出部3について説明する。
図1に示す検出部3は、基台110の進行方向前方の端部、すなわち、ロボット1が作業を行うエリア側の端部に設置されている。この検出部3は、マーカー200を検出する機能を有する。ここで、マーカー200は、移動機構2によって基台110が移動する際の目標位置を示すものである。マーカー200は、床、すなわち、走行面に付されている。マーカー200は、本実施形態では、
図4および
図5に示すように、QRコード(登録商標)で構成されている。目標位置とは、ロボット1、移動機構2、ロボットシステム100および基台110が移動走行後に停止すべき位置として、ユーザーにより設定される位置を想定している。また、以下においては、第2制御部42が移動機構2を制御し、ロボット1、移動機構2、ロボットシステム100および基台110が目標位置に向かって移動した後に停止した位置を、停止位置と称する。このとき、後述するように、目標位置と停止位置が一致することが理想の状態であるが、目標位置と停止位置がずれていることも想定される。また、ロボット1、移動機構2、ロボットシステム100および基台110が移動走行後に停止すべき位置として第2制御部42が設定した位置を、設定目標位置と称する。換言すれば、設定目標位置は、ユーザーが設定した目標位置に第2制御部42が補正を行い、再設定した位置とも言える。
【0026】
なお、マーカー200は、図示の構成では走行面上に付されているが、これに限定されず、例えば、床に設けられた突起や、壁や、天井等に付されていてもよい。また、マーカー200は、図示の構成に限定されず、周囲の色とは異なる着色部、発光部、レーザーポイントマーカー、プロジェクター等の投影部等で構成されていてもよい。また、この場合、形状や色は、特に限定されない。
【0027】
検出部3は、このようなマーカー200を撮像する撮像部31で構成されている。撮像部31としては、カラー画像、モノクロ画像、分光画像、赤外線画像等の二次元画像を取得可能な2Dカメラを用いることができる。また、撮像部31には、カメラ座標系が設置されており、このカメラ座標系は、前述したロボット座標系とキャリブレーションが済んだ状態である。このため、
図4および
図5に示すような撮像画像における特定の座標をロボット座標系でとらえることができる。
【0028】
また、撮像部31は、前述したように、基台110の進行方向前方の端部に設けられており、その光軸Oがz軸方向に沿って設けられている。また、撮像部31は、鉛直下方を向いて設置されている。
【0029】
このような検出部3は、制御装置4と通信可能に構成されている。このため、制御装置4から撮像指令信号を受け取ることができるとともに、撮像画像を制御装置4に送信することができる。なお、検出部3と制御装置4との接続は、有線による接続の他、無線による接続であってもよく、さらには、インターネット等のネットワークを介しての通信によるものであってもよい。
【0030】
このように、目標位置には、マーカー200が付されている。そして、検出部3は、前記マーカーを撮像する撮像部31を有する。これにより、後述するように、取得した撮像画像に基づいて、目標位置と停止位置との差異を正確に検出することができる。
【0031】
なお、撮像部31は、上記の設置位置とは異なる位置に設置されていてもよい。例えば、基台110の他の部位や、ロボットアーム10の任意の位置や、ロボット1以外の位置、例えば、マーカー200の鉛直上方や、マーカー200の周辺に設置されていてもよい。
【0032】
検出部3は、図示の構成では撮像部31であるが、これに限定されない。検出部3は、マーカー200の構成との組み合わせにより適宜選択され、例えば、光センサーや、力覚センサー、静電容量センサー、磁気センサー等であってもよい。力覚センサーを用いる場合、目標位置に当接部を設置しておき、この当接部とロボット1の任意の部位との接触を検出する構成とすることができる。
【0033】
次に、制御装置4について説明する。
制御装置4は、ロボットアーム10の作動を制御する第1制御部41と、移動機構2および検出部3の作動を制御する第2制御部42と、を有する。
【0034】
第1制御部41は、ロボットアーム10の作動を制御するものであり、CPU(Central Processing Unit)411と、記憶部412と、通信部413と、を有する。
【0035】
CPU411は、記憶部412に記憶されている各種プログラム等を読み出し、実行する。CPU411で生成された指令信号は、通信部413を介してロボット1に送信される。これにより、ロボットアーム10が所定の作業を実行することができる。
【0036】
記憶部412は、CPU411が実行可能な各種プログラム等を保存する。記憶部412としては、例えば、RAM(Random Access Memory)等の揮発性メモリー、ROM(Read Only Memory)等の不揮発性メモリー、着脱式の外部記憶装置等が挙げられる。また、記憶部412と第1制御部41との接続は、有線による接続の他、無線による接続であってもよく、さらには、インターネット等のネットワークを介しての通信によるものであってもよい。
【0037】
通信部413は、例えば有線LAN(Local Area Network)、無線LAN等の外部インターフェースを用いてロボット1、第2制御部42および入力部43との間でそれぞれ信号の送受信を行う。
【0038】
第2制御部42は、移動機構2および検出部3の作動を制御するものであり、制御部としてのCPU421と、記憶部422と、通信部423と、を有する。
【0039】
CPU421は、記憶部422に記憶されている各種プログラム等を読み出し、実行する。これにより、入力された目標位置に応じて、ロボット1、移動機構2、ロボットシステム100および基台110が移動走行後に停止すべき位置である設定目標位置を設定し、走行経路を算出し、その走行経路で基台110を移動させることができる。また、移動が完了した際に、検出部3を駆動し、撮像画像を取得する。これにより、この撮像画像に基づいて、目標位置と停止位置との差異を把握することができる。よって、差異に関する情報に基づいて後述するような制御を行って目標位置を正確に設定することができる。
【0040】
記憶部422は、CPU421が実行可能な各種プログラム等を保存する。記憶部422としては、例えば、RAM(Random Access Memory)等の揮発性メモリー、ROM(Read Only Memory)等の不揮発性メモリー、着脱式の外部記憶装置等が挙げられる。また、記憶部422には、
図6に示すような情報が記憶される。このことに関しては、後述する。
【0041】
通信部423は、例えば有線LAN(Local Area Network)、無線LAN等の外部インターフェースを用いて移動機構2、検出部3、第1制御部41および入力部43との間でそれぞれ信号の送受信を行う。
【0042】
なお、本実施形態では、第2制御部42が移動機構2および検出部3の作動を制御する構成であるが、本発明ではこれに限定されず、例えば、移動機構2の作動を制御する専用の制御部と、検出部3の作動を制御する専用の制御部とをそれぞれ有していてもよい。
【0043】
また、本実施形態では、第1制御部41がロボットアーム10の作動を制御し、第2制御部42が移動機構2および検出部3の作動を制御する構成であるが、本発明ではこれに限定されず、1つの制御部が第1制御部41および第2制御部42を兼ねていてもよい。すなわち、1つの制御部がロボットアーム10、移動機構2および検出部3の作動を制御する構成であってもよい。
【0044】
また、制御装置4の構成部は、一部または全部がロボット1の基台110内に配置されていてもよく、一部または全部が基台110外に配置されていてもよく、一部または全部がインターネット等のネットワーク等を介して遠隔地に設けられていてもよい。
【0045】
また、制御装置4は、入力装置5からの指令が入力される端子、すなわち、入力ポートを有する。この部位が、ロボット1を移動させる開始位置、目標位置等の各種情報が入力される入力部43として機能する。
【0046】
入力装置5は、ユーザーが情報を入力して制御装置4に対して各種設定を行うデバイスである。この入力装置5としては、特に限定されず、例えば、タブレット、パソコン、スマートフォン等が挙げられる。入力装置5と第1制御部41との接続は、有線による接続の他、無線による接続であってもよく、さらには、インターネット等のネットワークを介しての通信によるものであってもよい。
以上、ロボットシステム100の構成について説明した。
【0047】
このようなロボットシステム100では、ユーザーが入力装置5を用いてロボット1の現在位置、すなわち、開始位置および目標位置を入力することにより、これらの情報が第2制御部42の記憶部422に記憶される。例えば、
図2および
図3に示すように、入力された開始位置が位置A、入力された目標位置が位置Bであった場合、これらの情報に基づいてCPU421が、記憶部422に記憶されているプログラムを用いて、位置Aから位置Bまでの走行経路を算出する。そして、算出した走行経路を用いて移動機構2の作動を制御して、
図3に示すように、位置Bまで基台110を移動させ、停止させる。
なお、現在位置と開始位置とは、異なっていてもよい。
【0048】
また、開始位置および目標位置は、それぞれ、位置A、位置Bおよび位置Cの中から選択され、
図6のように地点の名称、すなわち、位置A~位置Cとして記憶部422に記憶される。なお、これに限定されず、開始位置および目標位置は、それぞれ、ロボット座標系における制御点の座標として入力される構成であってもよい。
【0049】
また、位置A~位置Cには、それぞれ、これらの位置を示すマーカー200が付されている。これらの位置A~位置Cに到着すると、検出部3がマーカー200を検出可能な位置になる。すなわち、到着後の検出部3の位置とマーカー200との位置関係は、予め設定されている。例えば、目標位置に到着し、停止位置が目標位置と一致すると、撮像部31の直下にマーカー200が位置する。すなわち、到着後の理想の状態は、撮像部31の光軸Oとマーカー200の中心Sが一致するよう設定することができる。
【0050】
マーカー200は、前述したようにQRコードであり、そのパターンからマーカー200の方向、角部の位置が特定される。なお、QRコードに担持された情報を読み取る構成であってもよく、読み取らない構成であってもよい。なお、以下では、QRコードに担持された情報を読み取らず、単にマーカーとして用いる場合について説明する。
【0051】
そして、ロボット1が目標位置に向かって移動し停止すると、すなわち、停止位置において、第2制御部42のCPU421は、撮像部31によりマーカー200を撮像させ、撮像画像Pを取得する。
図4に示す撮像画像Pは、理想の状態、すなわち、目標位置と停止位置との差異がない状態の画像である。この状態では、撮像画像Pに写っているマーカー200の位置が撮像画像Pにおいて基準位置に位置している。
【0052】
本実施形態では、CPU421は、マーカー200の2つの角部200Aおよび角部200Bを基準として理想状態か否かを判断する。CPU421は、角部200Aのカメラ座標系における座標と、予め記憶されている基準座標(x1,y1)とのずれ量、すなわち、差異をx軸方向およびy軸方向ごとに算出するとともに、角部200Bのカメラ座標系における座標と、予め記憶されている基準座標(x2,y2)との差異をx軸方向およびy軸方向ごとに算出する。理想状態では、これらの差異は、0である。
【0053】
なお、位置を特定する基準は、撮像画像Pにおける角部200Aおよび角部200Bを用いるのに限定されず、例えば対角上の角部を用いる構成であってもよい。
【0054】
一方、
図5に示すように、目標位置と停止位置とがずれていることがある。これは、走行面の状態や、車輪の状態等、種々の要因が挙げられる。目標位置と停止位置とがずれている場合、角部200Aのカメラ座標系における座標と、基準座標(x1,y1)との差異、および、角部200Bのカメラ座標系における座標と、基準座標(x2,y2)との差異をx軸方向およびy軸方向ごとに算出する。
【0055】
なお、以下では、角部200Aの基準座標(x1,y1)に対するx軸方向の差異をΔx1とし、y軸方向の差異をΔy1とし、角部200Bの基準座標(x2,y2)に対するx軸方向の差異をΔx2とし、y軸方向の差異をΔy2とする。
【0056】
差異Δx1、差異Δy1、差異Δx2および差異Δy2をそれぞれ算出したら、(Δx1+Δx2)/2を算出し、この値を目標位置と停止位置とのx軸方向の差異Δxとし、(Δy1+Δy2)/2を算出し、この値を目標位置と停止位置とのy軸方向の差異Δyとする。
【0057】
また、CPU421は、差異Δxおよび差異Δyの算出とともに、z軸回りの差異、すなわち、回転方向のずれ量を算出する。この算出は、基準座標(x1,y1)および基準座標(x2,y2)を通過する直線と、角部200Aおよび角部200Bを通過する直線とのなす角度を求めることにより行われる。そして、この値を差異Δθとする。
【0058】
なお、Δx1、Δx2、Δy1、Δy2、Δx、ΔyおよびΔθは、それぞれ、正の数値、負の数値、0のいずれかである。
【0059】
このように、CPU421は、差異Δx、差異Δyおよび差異Δθを算出し、これらの値、すなわち、差異に関する情報を記憶部422に記憶させる。なお、差異Δx、差異Δyおよび差異Δθの算出方法は、上記の方法に限定されない。
【0060】
また、移動機構2による移動が完了した後に、ロボット1が作業を行う場合、差異Δx、差異Δyおよび差異Δθを加味してロボットアーム10の制御を行ってもよい。また、再度開始位置に戻って、差異Δx、差異Δyおよび差異Δθを加味して再度目標位置に向かって移動させてもよい。
【0061】
このようなロボット1の開始位置から目標位置へ向かう移動は、作業を行う際に繰り返される。特に、ロボット1が、例えば、工場内等、同じ場所で繰り返し使用される場合、上記のような移動を繰り返すこととなる。すなわち、開始位置および目標位置がある程度決まっているため、これらの組み合わせが数パターンしかない場合が多い。このような場合、以下のような制御を行うことにより、停止位置と目標位置との差異Δx、差異Δyおよび差異Δθを可及的に小さくすることができ、目標位置への移動の精度を高めることができる。
【0062】
ロボットシステム100では、
図6に示すように、開始位置から目標位置へ向かって移動するごとに、停止位置および目標位置の差異を検出し、検出した差異に関する情報を記憶し、データを蓄積していく。以下、具体例を挙げて説明する。
【0063】
図6は、
図1に示す制御装置が備える記憶部に記憶される差異に関する情報を示すテーブルである。このテーブルにおいて、左右方向を「行」と言い、上下方向を「列」という。例えば、このテーブルにおいて、最も上の行には、項目が示されており、その列、すなわち、その下側に示されている情報の項目名を示している。最も上の行には、左側から順に、「総移動回数」、「開始位置・目標位置」、「回数」、「Δx」、「Δy」、「Δθ」、「補正の有無」、「移動の成否」および「補正量」が示されている。
【0064】
「総移動回数」は、開始位置および目標位置がどこかに関わらず、開始位置から目標位置に向かって移動した回数の合計のことである。「総移動回数」の列には、1から順に数字が示されている。
【0065】
「開始位置・目標位置」は、開始位置および目標位置がそれぞれどこかを示す項目であり、例えば「BからC」のように、A~Cのいずれか2つの組み合わせが示されている。
【0066】
「回数」は、開始位置および目標位置の組み合わせごとの回数のことである。例えば総移動回数4回目に「AからB」と記されているが、実際に「AからB」に移動したのは2回目であるため、「回数」は、2回となる。
「Δx」、「Δy」および「Δθ」は、前述した通りである。
【0067】
「補正の有無」は、補正が行われたか否かを示している。この補正に関しては、後述する。
【0068】
「移動の成否」は、移動が成功したか否かを示している。移動が成功したか否かは、撮像部31が撮像した撮像画像に、マーカー200の全部が写っているか否かに基づいて判断される。すなわち、差異Δx、差異Δyおよび差異Δθを検出できれば、成功とし、できなければ、差異が大きすぎて失敗とみなす。
【0069】
「補正量」は、目標位置に向かう前に補正を行った量のことである。本実施形態では、第2制御部42は、ロボット1、移動機構2、ロボットシステム100および基台110が移動走行後に停止すべき位置として、入力された目標位置の座標および到着する際の姿勢を補正した目標設定位置を設定する。なお、補正量は、目標位置の基準座標(x1,y1)および基準座標(x2,y2)をどの程度補正したかの数値で表される。図示の構成では、基準座標(x1,y1)および基準座標(x2,y2)のx軸座標を補正した量がDxで表され、y軸座標を補正した量がDyで表される。また、到着する際の姿勢の補正量は、Dθで表される。
なお、Dx、DyおよびDθは、それぞれ、正の数値または負の数値である。
【0070】
このように、ロボットシステム100では、差異に関する情報である「総移動回数」、「開始位置・目標位置」、「回数」、「Δx」、「Δy」、「Δθ」、「補正の有無」、「移動の成否」および「補正量」を対応付けて制御装置4が備える記憶部422に記憶していく。また、移動の総回数が増えるにしたがって、最も下の行に最新の情報が記憶され、情報が蓄積されていく。
【0071】
このように、目標位置と停止位置との差異に関する情報は、目標位置を補正した補正量を含む。これにより、例えば、後述するように、過去の補正量に基づいて設定目標位置の設定を行うことができる。よって、より正確に設定目標位置を設定することができる。
【0072】
そして、これらの情報に基づいて、本実施形態では、以下のようにして目標位置を補正する、すなわち、設定目標位置を設定する。具体的には、例えば、開始位置および目標位置の組み合わせが「AからB」のものに着目したとき、その移動回数が4回目、すなわち、総移動回数が10回までは補正を行わず、「AからB」の移動回数が5回目の時に、「AからB」の移動回数が1回~4回までの差異Δx、差異Δy、差異Δθに基づいて設定目標位置を設定する。換言すれば、過去の4回の「AからB」の移動における差異Δx、差異Δy、差異Δθの傾向に基づいて5回目の移動の際の、目標位置の補正量を算出し、その補正量で設定目標位置を設定する。例えば、4回分の差異Δxの平均値と、4回分の差異Δyの平均値と、4回分の差異Δθの平均値と、を算出し、これらの差異を相殺するように目標位置の基準座標(x1,y1)および基準座標(x2,y2)を補正した設定目標位置を設定する。これにより、過去の傾向を補正量に加味することができ、より正確な補正量を算出することができる。よって、5回目の「AからB」の移動を正確に行うことができる。
【0073】
このように、制御部としてのCPU421は、目標位置と停止位置との差異に関する情報が記憶された回数が所定回数、本実施形態では、4回に到達した場合、差異に関する情報に基づいて設定目標位置を設定する。これにより、より正確な補正量を算出することができ、これから行う移動を正確に行うことができる。
【0074】
なお、本実施形態では、所定回数を4回として説明したが、1回~3回であってもよく、5回以上であってもよい。
【0075】
また、開始位置および目標位置の組み合わせが「AからB」の移動回数が5回目の時に、初めて補正を行ったが、本実施形態では、6回目以降の「AからB」の移動の際、毎回補正を行ってもよい。この場合、5回目の「AからB」の移動における補正量を用いて、6回目の「AからB」の移動の際に設定目標位置を設定してもよい。
【0076】
すなわち、制御部としてのCPU421は、設定目標位置を設定する際、記憶部422に既に記憶されている補正量を用いて設定目標位置を設定する。これにより、補正量を算出するステップを省略することができ、より簡単な制御で目標位置を正確に補正することができる。
【0077】
また、
図7に示すように、「AからB」の移動の情報が複数回、例えば、7回蓄積された場合には、8回目の「AからB」の移動の際に、以下のようにして設定目標位置を設定することができる。
【0078】
8回目の「AからB」の移動の際には、過去に3回、補正を行ったデータが蓄積されている。すなわち、5回目~7回目の「AからB」の移動において、各補正量のデータが記憶されている。CPU421は、これらの補正量Dx、Dy、Dθの組み合わせのうち、最小の補正量の組み合わせを選択し、その補正量Dx、Dy、Dθで8回目の「AからB」の移動の際に設定目標位置を設定する。具体的には、7回目の「AからB」の移動では、補正量Dx、Dy、Dθがそれぞれ最小であるため、7回目の補正量Dx、Dy、Dθを用いて目標位置を補正する。
【0079】
このように、制御部としてのCPU421は、設定目標位置を設定する際、記憶部422に既に補正量Dx、Dy、Dθの組み合わせが複数記憶されている場合、各補正量Dx、Dy、Dθのうち、最小の補正量Dx、Dy、Dθの組み合わせを用いる。これにより、過剰に目標位置を補正した設定目標位置を設定してしまい、目標位置と停止位置との差異が大きくなってしまうのを防止することができるとともに、目標位置と停止位置との差異がより確実に小さくなるよう補正することができる。
【0080】
また、制御部としてのCPU421は、設定目標位置を補正する際、記憶部422に既に補正量Dx、Dy、Dθの組み合わせが複数記憶されている場合、最後に記憶された補正量Dx、Dy、Dθを用いてもよい。例えば、8回目の「AからB」の移動の際には、直前の移動、すなわち、7回目の「AからB」の移動の際に補正した補正量Dx、Dy、Dθを用いてもよい。このような制御を行うことにより、現状の走行面の状態に近いとき、および、現状の移動機構2の車輪の状態に近いときの移動の際に補正した補正量Dx、Dy、Dθを用いて設定目標位置の設定を行うことができる。よって、目標位置と停止位置との差異がより確実に小さくなるよう補正することができる。
【0081】
また、CPU421は、設定目標位置を設定する際、記憶部422に既に補正量Dx、Dy、Dθの組み合わせが複数記憶されている場合、各補正量Dxの標準偏差、各補正量Dyの標準偏差および各補正量Dθの標準偏差を算出し、これらの値を用いて目標位置の補正した設定目標位置の設定を行ってもよい。これにより、過去の傾向を補正量に反映させることができ、より正確な補正を行うことができる。
【0082】
以上説明したように、ロボットシステム100は、基台110と、基台110に接続されたロボットアーム10と、基台110を移動させる移動機構2と、基台110の目標位置が入力される入力部43と、入力部43に入力された目標位置に基づいて移動機構2の作動を制御する制御部としてのCPU421と、移動機構2による基台110の移動が完了した後の基台110の停止位置と、目標位置との差異を検出する検出部3と、検出部3が検出した差異に関する情報を記憶する記憶部422と、を備える。そして、CPU421は、基台110の移動を行う際、既に記憶部422に記憶されている情報に応じて基台110が停止すべき設定目標位置を設定する。これにより、基台110を移動させて停止した停止位置と、目標位置との差異を可及的に小さくすることができ、目標位置への移動の精度を高めることができる。
【0083】
また、制御部としてのCPU421は、補正量Dx、Dy、Dθがそれぞれ基準値以上であった場合、次回の移動の際の目標位置を補正し、補正量Dx、Dy、Dθが基準値未満であった場合、次回の移動の差異の目標位置を補正せず設定目標位置を設定する制御を行ってもよい。
【0084】
次に、制御装置4が行う制御、すなわち、本発明の制御方法を、
図8に示すフローチャートを用いて説明する。
【0085】
まず、ユーザーが入力装置5を用いて、ロボット1の開始位置および目標位置を入力する。そして、ステップS101において、開始位置および目標位置に関する情報を受け付ける。
【0086】
次いで、ステップS102において、目標位置の補正を行うか否かを判断する。この判断は、例えば、前述したように、目標位置と停止位置との差異に関する情報が記憶された回数が所定回数に到達しているか否かに基づいて判断を行う。
【0087】
ステップS102において、所定回数に達していたと判断した場合、ステップS103において、補正量Dx、補正量Dyおよび補正量Dθを決定する。この決定は、例えば、前述したように、補正量Dx、Dy、Dθの最小値、平均値、標準偏差等を選択することにより行われる。そして、ステップS104において、補正した目標位置、すなわち設定した設定目標位置に移動する。
【0088】
次いで、目標位置に到着して停止すると、ステップS106において、撮像部31によりマーカー200を撮像する。
【0089】
なお、ステップS102において、補正をしないと判断した場合、ステップS105において、目標位置を補正せずに設定した設定目標位置へ移動を行い、ステップS106に移行する。
【0090】
次いで、ステップS107では、ステップS106で撮像した撮像画像において、差異Δx、差異Δyおよび差異Δθが検出できたか否かを判断する。ステップS107において、差異Δx、差異Δyおよび差異Δθが検出できたと判断した場合、ステップS108において、差異に関する情報を記憶する。なお、差異に関する情報とは、
図6および
図7に示すように、「総移動回数」、「開始位置・目標位置」、「回数」、「Δx」、「Δy」、「Δθ」、「補正の有無」、「移動の成否」および「補正量」を含む。
【0091】
また、ステップS107において、差異が検出できなかった、すなわち、撮像画像にマーカー200の全部が写っていなかったと判断した場合、ステップS109において、移動が失敗であった旨を記憶する。なお、本ステップでは、
図6および
図7に示すように、「総移動回数」、「開始位置・目標位置」、「回数」、「補正の有無」および「移動の成否」の項目を記憶する。
【0092】
そして、ステップS110において、リトライするか否かを判断する。例えば、ユーザーが入力装置5により、リトライする旨を指示した場合、開始位置に戻って、再度移動を行う。なお、ステップS110において、リトライしないと判断した場合、プログラムを終了する。
【0093】
このように、本発明の制御方法は、ロボットアーム10が接続された基台110を、入力された目標位置に向かって移動させる移動工程と、基台110の移動が完了した後の基台110の停止位置と、目標位置との差異を検出する検出工程と、を備える。また、移動工程では、過去に検出された差異に関する情報に応じて、基台110が停止すべき設定目標位置を設定する。これにより、基台110を移動させて停止した停止位置と、目標位置との差異を可及的に小さくすることができ、目標位置への移動の精度を高めることができる。
【0094】
<第2実施形態>
図9は、第2実施形態に係るロボットシステムの制御方法を説明する図であって、ロボットおよびその周辺を鉛直上方から見た図である。
【0095】
以下、
図9を参照して本発明のロボットシステムおよび制御方法の第2実施形態について説明するが、前述した実施形態との相違点を中心に説明し、同様の事項はその説明を省略する。
【0096】
図9には、ロボット1が位置A1に位置している場合と、ロボット1が位置A1と異なる位置A2に位置している場合とを図示している。また、位置A1と位置A2との距離は、マーカー200までの距離に対して十分に小さい。また、いずれの場合も目標位置は、同じ位置であることとする。
【0097】
本実施形態では、位置A1を開始位置としてロボット1を目標位置に向かって移動させる場合と、位置A2を開始位置としてロボット1を目標位置に向かって移動させる場合とは、同じ走行経路であるとみなし、同じ補正量を用いる。すなわち、例えば、位置A1から目標位置に向かって移動させる際、過去に位置A2から同じ目標位置に向かって移動させたときの差異に関する情報が記憶されていた場合、その情報に基づいて目標位置を補正した設定目標位置を設定する。これにより、例えば、初めて移動する経路であっても、近い位置を通過する走行経路で移動したときの情報があれば、目標位置を補正して設定目標位置を設定することができる。また、補正量を算出する際のサンプル数も増えるため、さらに正確に設定目標位置を設定することができる。
【0098】
<第3実施形態>
図10は、第3実施形態に係るロボットシステムの制御方法を説明する図であって、ロボットおよびその周辺を鉛直上方から見た図である。
【0099】
以下、
図10を参照して本発明のロボットシステムおよび制御方法の第3実施形態について説明するが、前述した実施形態との相違点を中心に説明し、同様の事項はその説明を省略する。
【0100】
図10には、ロボット1が位置A1に位置している場合と、ロボット1が位置A2に位置している場合と、ロボット1が位置A3に位置している場合とを図示している。位置A1、位置A2および位置A3は、互いに異なる位置である。位置A1を開始位置としてロボット1を目標位置に向かって移動させる場合と、位置A2を開始位置としてロボット1を目標位置に向かって移動させる場合と、位置A3を開始位置としてロボット1を目標位置に向かって移動させる場合とにおいて、各走行経路は、D地点を経由してそれ以降の走行経路が一致していることとする。
【0101】
このような場合、図示はしないが、前記実施形態で述べたテーブルの項目に、D地点の座標およびD地点を経由した旨を追加して記憶する。すなわち、本実施形態での差異に関する情報は、経由地点に関する情報をさらに含む。
【0102】
そして、本実施形態では、ロボット1を目標位置に向かって移動させる際、D地点を経由して走行した場合、同じ走行経路を辿ったとみなし、同じ補正量を用いる。すなわち、例えば、位置A1からD地点を経由して目標位置に移動させる際、過去に位置A2または位置A3からD地点を経由して同じ目標位置に移動させたときの差異に関する情報が記憶されていた場合、その情報に基づいて目標位置を補正した設定目標位置を設定する。これにより、例えば、初めて移動する経路であっても、同じ経由地点を辿る走行経路で移動したときの情報があれば、目標位置を補正した設定目標位置を設定することができる。また、補正量を算出する際のサンプル数も増えるため、さらに正確に設定目標位置を設定することができる。
【0103】
なお、経由地点は、一致していなくてもよい。すなわち、経由地点のx座標およびy座標に幅を持たせて記憶しておくことにより、その領域を通過する走行経路であれば、同じ経由地点を経過するとみなしてもよい。
【0104】
以上、本発明のロボットシステムおよび制御方法を図示の実施形態に基づいて説明したが、本発明は、これに限定されるものではなく、各部の構成は、同様の機能を有する任意の構成のものに置換することができる。また、本発明に、他の任意の構成物が付加されていてもよい。さらに、前記実施形態に係るロボットシステムは、6軸の垂直多関節ロボットを備えたシステムであるが、垂直多関節ロボットの軸数は、5軸以下であっても7軸以上であってもよい。また、垂直多関節ロボットに代えて、水平多関節ロボットであってもよい。
【符号の説明】
【0105】
1…ロボット、2…移動機構、3…検出部、4…制御装置、5…入力装置、10…ロボットアーム、11…アーム、12…アーム、13…アーム、14…アーム、15…アーム、16…アーム、17…エンドエフェクター、21…前輪、22…後輪、23…駆動輪、31…撮像部、41…第1制御部、42…第2制御部、43…入力部、100…ロボットシステム、110…基台、200…マーカー、200A…角部、200B…角部、411…CPU、412…記憶部、413…通信部、421…CPU、422…記憶部、423…通信部、A…位置、A1…位置、A2…位置、A3…位置、B…位置、D…地点、Dx…補正量、Dy…補正量、Dθ…補正量、O…光軸、P…撮像画像、S…中心、Δx…差異、Δx1…差異、Δx2…差異、Δy…差異、Δy1…差異、Δy2…差異、Δθ…差異、x1…基準座標、x2…基準座標、y1…基準座標、y2…基準座標