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

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

▶ セイコーエプソン株式会社の特許一覧

<>
  • 特許-ロボットシステムの制御方法 図1
  • 特許-ロボットシステムの制御方法 図2
  • 特許-ロボットシステムの制御方法 図3
  • 特許-ロボットシステムの制御方法 図4
  • 特許-ロボットシステムの制御方法 図5
  • 特許-ロボットシステムの制御方法 図6
  • 特許-ロボットシステムの制御方法 図7
  • 特許-ロボットシステムの制御方法 図8
  • 特許-ロボットシステムの制御方法 図9
  • 特許-ロボットシステムの制御方法 図10
  • 特許-ロボットシステムの制御方法 図11
  • 特許-ロボットシステムの制御方法 図12
  • 特許-ロボットシステムの制御方法 図13
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-12-18
(45)【発行日】2023-12-26
(54)【発明の名称】ロボットシステムの制御方法
(51)【国際特許分類】
   B25J 9/10 20060101AFI20231219BHJP
   B25J 13/08 20060101ALI20231219BHJP
【FI】
B25J9/10 A
B25J13/08 Z
【請求項の数】 6
(21)【出願番号】P 2019206825
(22)【出願日】2019-11-15
(65)【公開番号】P2021079463
(43)【公開日】2021-05-27
【審査請求日】2022-09-15
(73)【特許権者】
【識別番号】000002369
【氏名又は名称】セイコーエプソン株式会社
(74)【代理人】
【識別番号】110000028
【氏名又は名称】弁理士法人明成国際特許事務所
(72)【発明者】
【氏名】清澤 勇貴
【審査官】國武 史帆
(56)【参考文献】
【文献】特開平07-266268(JP,A)
【文献】特開平04-048304(JP,A)
【文献】特開2011-045898(JP,A)
【文献】特開2011-121405(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
B25J 1/00 - 21/02
(57)【特許請求の範囲】
【請求項1】
ロボットシステムの制御方法であって、
前記ロボットシステムは、
ロボットアームと、
前記ロボットアームに取り付けられているエンドエフェクターと、
移動することができ、前記ロボットアームを支持する移動体と、
前記ロボットアームと前記移動体の少なくとも一方の、基準の向きに対する傾きを検出することができる傾斜センサーと、を備え、
前記制御方法は、前記ロボットアームの制御点が複数の目標点に順に位置するように、前記ロボットアームを制御する工程を備え、
前記ロボットアームを制御する工程は、
前記複数の目標点のうち、前記エンドエフェクターによる処理が行われるべき目標点である対象目標点の一つ前に前記制御点が位置すべき目標点に前記制御点が位置したときに、前記対象目標点に前記制御点を位置させるための制御パラメーターを、前記基準の向きからの傾きに基づいて再設定する工程と、
前記再設定された制御パラメーターを使用して、前記対象目標点に前記制御点を位置させる工程と、を含む、ロボットシステムの制御方法。
【請求項2】
請求項1記載の制御方法であって、
前記ロボットアームを制御する工程は、
前記複数の目標点のうちの対象目標点の二つ以上前に前記制御点が位置すべき目標点に前記制御点が位置したときに、前記対象目標点に前記制御点を位置させるための制御パラメーターを、前記基準の向きからの傾きに基づいて再設定する工程を含む、制御方法。
【請求項3】
請求項1または2記載の制御方法であって、
前記ロボットアームを制御する工程は、
前記対象目標点の一つ前に前記制御点が位置すべき目標点において再設定された前記制御パラメーターと、前記対象目標点の一つ前に前記制御点が位置すべき目標点において再設定される前の前記制御パラメーターと、のずれが、あらかじめ定められた範囲外となる場合には、警告を発する工程を含む、制御方法。
【請求項4】
請求項1から3のいずれか1項に記載の制御方法であって、
前記ロボットアームを制御する工程は、
前記対象目標点の一つ前に前記制御点が位置すべき目標点において再設定された前記制御パラメーターと、前記対象目標点の一つ前に前記制御点が位置すべき目標点において再設定される前の前記制御パラメーターと、のずれが、あらかじめ定められた範囲外となることを含む、あらかじめ定められた条件が満たされる場合には、対象目標点の一つ前に前記制御点が位置すべき目標点と、前記対象目標点と、の間に、目標点を追加する工程を含む、制御方法。
【請求項5】
請求項1から4のいずれか1項に記載の制御方法であって、
前記ロボットアームを制御する工程は、
前記対象目標点の一つ前に前記制御点が位置すべき目標点と、前記対象目標点との間の距離が、閾値よりも大きい場合には、警告を発する工程を含む、制御方法。
【請求項6】
請求項1から5のいずれか1項に記載の制御方法であって、
前記ロボットアームを制御する工程は、
前記対象目標点の一つ前に前記制御点が位置すべき目標点と、前記対象目標点との間の距離が、閾値よりも大きいことを含む、あらかじめ定められた条件が満たされる場合には、対象目標点の一つ前に前記制御点が位置すべき目標点と、前記対象目標点と、の間に、目標点を追加する工程を含む、制御方法。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、ロボットシステムの制御方法に関する。
【背景技術】
【0002】
従来、たとえば特許文献1のように、ロボットアームが設置された無人搬送台車が複数の作業スペースを往復する技術が存在する。この技術においては、ロボットアームによって、各作業スペースに配置されたトレーから部品がピックアップされ、組立てられることによって、製造作業が実施される。各作業スペースに対する無人搬送台車の停止位置のずれは、各作業スペースに設置されたキャリブレーションプレートが画像認識されることによって、補正される。
【先行技術文献】
【特許文献】
【0003】
【文献】特開2017-74631号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかし、特許文献1の技術においては、ロボットアームが設置されている無人搬送台車の姿勢のずれについては、考慮されていない。このため、無人搬送台車に設置されているロボットアームの座標系の位置および向きが、各作業スペースにおける作業の際に想定されているロボットアームの座標系の位置および向きに対して、ずれる可能性がある。その結果、ロボットアームが正しく制御されても、ロボットアームの制御点の位置が、実際に到達すべき位置からずれることがある。
【課題を解決するための手段】
【0005】
本開示の一形態によれば、 ロボットシステムの制御方法が提供される。前記ロボットシステムは、ロボットアームと、前記ロボットアームに取り付けられているエンドエフェクターと、移動することができ、前記ロボットアームを支持する移動体と、前記ロボットアームと前記移動体の少なくとも一方の、基準の向きに対する傾きを検出することができる傾斜センサーと、を備える。前記制御方法は、前記ロボットアームの制御点が複数の目標点に順に位置するように、前記ロボットアームを制御する工程を備える。前記ロボットアームを制御する工程は、前記複数の目標点のうち、前記エンドエフェクターによる処理が行われるべき目標点である対象目標点の一つ前に前記制御点が位置すべき目標点に前記制御点が位置したときに、前記対象目標点に前記制御点を位置させるための制御パラメーターを、前記基準の向きからの傾きに基づいて再設定する工程と、前記再設定された制御パラメーターを使用して、前記対象目標点に前記制御点を位置させる工程と、を含む。
【図面の簡単な説明】
【0006】
図1】第1実施形態の自律移動ロボット1を模式的に示す説明図である。
図2】ワークステーションWS1~WS3の配置と、自律移動ロボット1の移動の様子を示す説明図である。
図3】ワークステーションWS1における作業の内容を示す説明図である。
図4】自律移動ロボット1を運用する際の処理を示すフローチャートである。
図5】ワークステーションWSにおいて、自律移動ロボット1が作業を行う際の処理を示すフローチャートである。
図6】IMU710の出力に基づいて、ロボットアーム110の制御パラメーターを再設定する際の処理を示すフローチャートである。
図7】ステップS3430における処理の内容を示す説明図である。
図8】ワークステーションWSにおいて、自律移動ロボット1が作業を行う際の処理を示す第2実施形態のフローチャートである。
図9】ワークステーションWSにおいて、自律移動ロボット1が作業を行う際の処理を示す第3実施形態のフローチャートである。
図10】複数のプロセッサーによってロボットの制御装置が構成される一例を示す概念図である。
図11】複数のプロセッサーによって車両の制御装置が構成される一例を示す概念図である。
図12】複数のプロセッサーによってロボットの制御装置が構成される他の例を示す概念図である。
図13】複数のプロセッサーによって車両の制御装置が構成される他の例を示す概念図である。
【発明を実施するための形態】
【0007】
A.第1実施形態:
A1.ロボットシステムの構成:
図1は、第1実施形態の自律移動ロボット1を模式的に示す説明図である。自律移動ロボット1は、上位管理装置600の指示を受けて自律的に動作する。自律移動ロボット1は、ロボット100と、エンドエフェクター200と、動作制御装置300と、車両700と、を備える。
【0008】
図1において、技術の理解を容易にするために、基準座標系BCおよびロボット座標系RCを示す。基準座標系BCは、水平面HL上において互いに直交するX軸とY軸と、鉛直上向きを正方向とするZ軸とによって規定される3次元の直交座標系である。基準座標系BCは、ワークステーションWSごとに定められている。ワークステーションWSは、自律移動ロボット1が作業を行う場所である。ワークステーションWSについては、後に説明する。
【0009】
ロボット座標系RCは、自律移動ロボット1に対して固定されている座標系である。自律移動ロボット1の上方がZ軸正方向である。自律移動ロボット1の前方がX軸正方向である。Z軸とX軸に垂直な方向がY軸正方向である。ロボット座標系RCの原点Orは、関節J11の回転軸上であって、基台180内に位置する点である。基台180および関節J11については、後に説明する。基準座標系BCおよびロボット座標系RCは、いずれも右手系である。なお、基準座標系BC、ロボット座標系RCにおいて、X軸方向を前後方向、Y軸方向を左右方向、Z軸方向を上下方向とも呼ぶ。
【0010】
ロボット100は、垂直多関節ロボットである。ロボット100は、ロボットアーム110と、基台180と、力検出部190と、を備える。
【0011】
ロボットアーム110は、基台180に支持されている。ロボットアーム110は、ロボットアーム110の先端部に取りつけられたエンドエフェクター200を移動させることができる。ロボットアーム110は、アーム要素110a~110fと、関節J11~J16とを備える。すなわち、ロボット100は、6個の関節J11~J16を備えたロボットアーム110を有する6軸ロボットである。
【0012】
関節J12、関節J13、関節J15は、曲げ関節である。関節J11、関節J14、関節J16は、ねじり関節である。基台180とアーム要素110aは、関節J11を介して接続されている。アーム要素110aとアーム要素110bは、関節J12を介して接続されている。アーム要素110bとアーム要素110cは、関節J13を介して接続されている。アーム要素110cとアーム要素110dは、関節J14を介して接続されている。アーム要素110dとアーム要素110eは、関節J15を介して接続されている。アーム要素110eとアーム要素110fとは、関節J16を介して接続されている。エンドエフェクター200は、アーム要素110fに対して、アーム要素110eとは反対側に接続されている。
【0013】
各関節J11~J16は、サーボモーター410と、エンコーダー420と、減速機510と、を備える。サーボモーター410は、動作制御装置300に制御されて、その出力軸を回転させる。減速機510は、サーボモーター410の出力軸の回転を減速させてアーム要素に伝達する。エンコーダー420は、サーボモーター410の出力軸の回転角度を検出する。
【0014】
図1においては、関節J11を駆動するサーボモーター410aとエンコーダー420aと減速機510aを、符号を付して示す。技術の理解を容易にするため、関節J12~J16を駆動するサーボモーター410とエンコーダー420と減速機510とについては、図示を省略する。本明細書においては、各関節のサーボモーターについて、相互に区別せずに言及する場合には、サーボモーター410と表記する。各関節のエンコーダーについて、相互に区別せずに言及する場合には、エンコーダー420と表記する。各関節の減速機について、相互に区別せずに言及する場合には、減速機510と表記する。
【0015】
力検出部190は、基台180の下部に設けられている。力検出部190は、ロボットアーム110に加えられる力を検出することができる。より具体的には、力検出部190は、外部、すなわち、力検出部190以外の構成から加えられる、X軸、Y軸、Z軸の3軸方向の力と、回転軸としてのU軸、V軸、W軸まわりのトルクを検出することができる。その結果、力検出部190は、力検出部190以外の構成であるロボットアーム110に作用するX軸、Y軸、Z軸の3軸方向の力と、U軸、V軸、W軸まわりのトルクを測定することができる。力検出部190の出力は、動作制御装置300に送信され、ロボット100の制御に使用される。動作制御装置300は、力検出部190の出力に基づいて、力制御を実行することができる。
【0016】
ロボット100は、ロボットアーム110の6個の関節J11~J16をそれぞれサーボモーターで回転させることにより、ロボットアーム110の先端部に取りつけられたエンドエフェクター200を、3次元空間中の指定された位置である目標点に、指定された姿勢で配することができる。なお、3次元空間におけるエンドエフェクター200の位置を代表する点を、TCP(Tool Center Point)とも呼ぶ。
【0017】
エンドエフェクター200は、ロボットアーム110の先端に取りつけられている。エンドエフェクター200は、動作制御装置300に制御されて、作業の対象物であるワークピースをつかむことができ、また、つかんでいるワークピースを離すことができる。その結果、たとえば、エンドエフェクター200とロボット100は、動作制御装置300に制御されて、ワークピースをつかんで移動させることができる。
【0018】
動作制御装置300は、ロボット100およびエンドエフェクター200の動作を制御する制御装置である。動作制御装置300は、ロボット100に接続されている。動作制御装置300は、ロボット100とともに車両700に固定されている。
【0019】
動作制御装置300は、プロセッサーであるCPU(Central Processing Unit)301、RAM(Random Access Memory)302、ROM(Read-Only Memory)303を備える。動作制御装置300には、ロボット100を制御するための制御プログラムがインストールされている。動作制御装置300においては、ハードウェア資源としてのCPU301、RAM302、ROM303と、制御プログラムとが協働する。具体的には、CPU301が、ROM303に記憶されたコンピュータープログラムをRAM302にロードして実行することによって、様々な機能を実現する。
【0020】
車両700は、力検出部190および基台180を介してロボットアーム110を支持している。車両700は、ロボット100を床面上の任意の位置に移動させることができる。車両700は、1組の駆動輪DWと、2組の従動輪FW1,FW2と、サーボモーター410v1,410v2と、エンコーダー420v1,420v2と、減速機510v1,510v2と、慣性計測装置(IMU:Inertial Measurement Unit)710と、カメラ720と、車両制御部740と、を備える。
【0021】
サーボモーター410v1,410v2は、動作制御装置300に制御されて、その出力軸を回転させる。減速機510v1,510v2は、サーボモーター410v1,410v2の各出力軸の回転を減速させて二つの駆動輪DW,DWに伝達する。二つの駆動輪DW,DWは、減速機510v1,510v2から回転を伝達されて、駆動する。エンコーダー420v1,420v2は、それぞれサーボモーター410v1,410v2の出力軸の回転角度を検出する。なお、二つの駆動輪DW,DWは、それぞれサーボモーター410v1,410v2によって、独立に回転することができる。その結果、車両700は、任意の向きに移動することができる。
【0022】
本明細書において、サーボモーター410v1,410v2について、相互に区別せずに言及する場合には、サーボモーター410vと表記する。エンコーダー420v1,420v2について、相互に区別せずに言及する場合には、エンコーダー420vと表記する。減速機510v1,510v2について、相互に区別せずに言及する場合には、減速機510vと表記する。
【0023】
2組の従動輪FW1,FW2は、1組の駆動輪DWとともに車両700を支持する。従動輪FW1,FW2は、外力を加えられて回転する。従動輪FW1,FW2は、原動機によって駆動されない。1組の従動輪FW1の回転軸と、1組の従動輪FW2の回転軸と、1組の駆動輪DWの回転軸とは、互いに平行である。従動輪FW1,FW2の直径は、駆動輪DWの直径よりも小さい。
【0024】
車両700においては、1組の駆動輪DWは、常に床面に接している。1組の駆動輪DWが回転することにより、車両700は移動する。車両700においては、1組の駆動輪DWとともに、2組の従動輪FW1,FW2の少なくとも一方の組が、床面に接している。1組の駆動輪DWとともに床面に接している従動輪FW1,FW2は、1組の駆動輪DWとともに車両700を支持する。車両700は、1組の駆動輪DWが床面に接している点ICCを中心として傾く。車両700が点ICCを中心に傾くと、従動輪FW1,FW2のいずれか一方の組が床面に接触せずに床面から浮くこともある。この場合、車両700は、1組の駆動輪DWとともに、床面に接している従動輪FW1,FW2のいずれか一方の組の4個の車輪によって支持される。なお、車両700が点ICCを中心に傾いても、車両700が有する図示しないサスペンションの機能により、車両700は傾くが、1組の駆動輪DWおよび2組の従動輪FW1,FW2の6個の車輪によって、車両700が支持される場合もある。
【0025】
IMU710は、車両700のX軸方向、Y軸方向、Z軸方向の加速度、ならびにU軸方向、V軸方向、W軸方向の角速度の情報を取得することができる。それらの情報に基づいて、車両制御部740は、車両700の傾き、車両700の速さおよび向きを含む移動速度、ならびに車両700の現在位置を認識する。
【0026】
カメラ720は、車両700の前方、すなわち、ロボット座標系のX軸方向の所定の角度範囲の画像を取得することができる。カメラ720が生成した画像のデータに基づいて、車両制御部740は、車両700の速さおよび向きを含む移動速度、ならびに車両700の現在位置を認識する。
【0027】
車両制御部740は、車両700の動作を制御する制御装置である。車両制御部740は、プロセッサーであるCPU741、RAM742、ROM743を備える。車両制御部740には、車両700を制御するための制御プログラムがインストールされている。車両制御部740においては、ハードウェア資源としてのCPU741、RAM742、ROM743と、制御プログラムとが協働する。具体的には、CPU741が、ROM743に記憶されたコンピュータープログラムをRAM742にロードして実行することによって、様々な機能を実現する。
【0028】
車両制御部740は、IMU710から得られる情報に基づいて、基準の向きに対する車両700の傾きを認識する。具体的には、車両制御部740は、自律移動ロボット1が静止状態にあるときにIMU710によってロボット座標系RCで検出される重力加速度の向きに基づいて、車両700の傾きを決定する。すなわち、IMU710は、傾斜センサーとして機能する。なお、本実施形態において、傾斜センサーは、点ICC周りの回転を検出できればよいので、少なくともY軸回りの回転を検出できるセンサーであれば、IMU710に限らない。本実施形態において、車両700の基準の向きは、ロボット座標系RCのX軸、Y軸、Z軸の向きが、基準座標系BCのX軸、Y軸、Z軸の向きとそれぞれ平行となる向きである。
【0029】
上位管理装置600は、複数の自律移動ロボット1に指示を与えて、それらの自律移動ロボット1を制御する。上位管理装置600は、ロボット100の動作制御装置300および車両700の車両制御部740に接続されている。車両700と車両制御部740とは、有線、無線どちらで接続されていても良い。なお、図1においては、技術の理解を容易にするためえ、1台の自律移動ロボット1のみを示す。
【0030】
上位管理装置600は、プロセッサーであるCPU601、RAM602、ROM603、入力装置607、および出力装置608を備える。上位管理装置600には、複数の自律移動ロボット1を制御するための制御プログラムがインストールされている。上位管理装置600においては、ハードウェア資源としてのCPU601、RAM602、ROM603と、制御プログラムとが協働する。具体的には、CPU601が、ROM603に記憶されたコンピュータープログラムをRAM602にロードして実行することによって、様々な機能を実現する。
【0031】
入力装置607は、ユーザーからの指示を受け付ける。入力装置607は、例えば、マウス、キーボード、タッチパネル等である。出力装置608は、ユーザーに各種の情報を出力する。出力装置608は、例えば、ディスプレイやスピーカー等である。
【0032】
A2.ロボットシステムの動作:
図2は、ワークステーションWS1~WS3の配置と、自律移動ロボット1の移動の様子を示す説明図である。ワークステーションWS1~WS3は、自律移動ロボット1が作業を行う場所である。ワークステーションWS1~WS3は、互いに異なる場所に配置されている。自律移動ロボット1は、ワークステーションWS1~WS3の間を移動して、各ワークステーションWS1~WS3において、作業を行う。図1において、ワークステーションWS1~WS3の間の自律移動ロボット1の移動を矢印A12,A23,A13で示す。
【0033】
各ワークステーションWS1~WS3間を移動する経路の情報は、あらかじめ車両制御部740のRAM742に格納されている。CPU741は、RAM742に格納されている経路の情報と、IMU710およびカメラ720から得られる情報とに基づいて、サーボモーター410v1,410v2を制御して、次の作業を行うべきワークステーションWSに向かって、車両700を移動させる。
【0034】
ワークステーションWS1は、トレイT11,T12を備えている。トレイT11には、1以上のワークピースWPが配置されている。自律移動ロボット1は、ワークステーションWS1において、トレイT11からトレイT12にワークピースWPを移動させる作業を行う。
【0035】
ワークステーションWS2,WS3もワークステーションWS1と同様の構成を備える。すなわち、ワークステーションWS2は、トレイT21,T22を備えている。自律移動ロボット1は、ワークステーションWS2において、トレイT21からトレイT22にワークピースWPを移動させる作業を行う。ワークステーションWS3は、トレイT31,T32を備えている。自律移動ロボット1は、ワークステーションWS3において、トレイT31からトレイT32にワークピースWPを移動させる作業を行う。本明細書において、ワークステーションWS1~WS3相互に区別せずに言及する場合には、ワークステーションWSと表記する。
【0036】
図3は、ワークステーションWS1における作業の内容を示す説明図である。ワークステーションWS1において、ロボット100の動作制御装置300は、ロボットアーム110の制御点TCPが複数の目標点OP01~OP04に順に位置するように、ロボットアーム110を制御する。
【0037】
図3の例においては、まず、制御点TCPは、目標点OP01に配される。制御点TCPが目標点OP01にあるとき、エンドエフェクター200は、トレイT11上のワークピースWPをつかむ。その後、制御点TCPは、目標点OP02に向かって鉛直方向上向きに移動されて、目標点OP02に配される。その後、制御点TCPは、目標点OP03に向かって水平方向に移動されて、目標点OP03に配される。その後、制御点TCPは、目標点OP04に向かって鉛直方向下向きに移動されて、目標点OP04に配される。制御点TCPが目標点OP04にあるとき、エンドエフェクター200は、ワークピースWPを離し、トレイT12上にワークピースWPを置く。
【0038】
ワークステーションWS2,WS3においても、ロボット100の動作制御装置300は、同様にロボットアーム110を制御する。
【0039】
図4は、自律移動ロボット1を運用する際の処理を示すフローチャートである。ステップS100において、自律移動ロボット1を運用する際の各種の制御パラメーターが決定される。制御パラメーターには、各ワークステーションWS1~WS3において、各目標点に制御点TCPを配する際のロボットアーム110の関節J11~J16の角度が含まれている。ステップS100においては、各ワークステーションWSにおいて車両700が基準の向きで配されていることを前提として、各ワークステーションWSにおける作業で使用される制御パラメーターが、決定される。
【0040】
ステップS200において、自律移動ロボット1は、次の作業を行うべきワークステーションWSに移動する。ステップS200の処理は、主として、車両700の車両制御部740の制御によって実行される。ステップS100が自律制御ロボット1の運転に先立つ設定の処理である野に対して、ステップS200~S400の工程が、実質的なロボットシステムとしての自律制御ロボット1の制御方法である。
【0041】
ステップS300において、自律移動ロボット1は、到着したワークステーションWSにおいて、ロボットアーム110を制御して、作業を実行する。ステップS300の処理は、主として、ロボット100の動作制御装置300の制御によって実行される。
【0042】
ステップS400において、ワークステーションWS1~WS3において実行すべきすべての作業が完了したか否かを判定する。ワークステーションWS1~WS3において実行すべきすべての作業が完了していない場合は、処理はステップS200に戻る。ワークステーションWS1~WS3において実行すべきすべての作業が完了した場合には、処理を終了する。ステップS400の処理は、主として、上位管理装置600の制御によって実行される。
【0043】
図5は、ワークステーションWSにおいて、自律移動ロボット1が作業を行う際の処理を示すフローチャートである。図5の処理は、主として、ロボット100の動作制御装置300の制御によって実行される。
【0044】
ステップS310において、動作制御装置300は、制御点TCPを次の目標点に移動させる。図5の処理において、ステップS310の処理が繰り返し実行されることにより、ロボットアーム110の制御点TCPが複数の目標点に順に位置することとなる。
【0045】
ステップS320において、動作制御装置300は、制御点TCPが配された目標点が、エンドエフェクター200による処理を行うべき目標点か否かを判定する。エンドエフェクター200による処理を行うべき目標点を、本実施形態において「対象目標点」と呼ぶ。たとえば、エンドエフェクター200がトレイT11上のワークピースWPをつかむ目標点OP01、およびエンドエフェクター200がトレイT12上にワークピースWPを置く目標点OP04は、対象目標点である。
【0046】
制御点TCPが配された目標点が、対象目標点である場合は、処理は、ステップS350に進む。制御点TCPが配された目標点が、対象目標点ではない場合は、処理は、ステップS330に進む。
【0047】
ステップS350において、動作制御装置300は、エンドエフェクター200による処理を行う。たとえば、制御点TCPが目標点OP04にあるとき、エンドエフェクター200は、ワークピースWPを離し、トレイT12上にワークピースWPを置く。
【0048】
ステップS360において、動作制御装置300は、そのワークステーションWSにおいて実行すべきすべての作業が完了したか否かを判定する。そのワークステーションWSにおいて実行すべきすべての作業が完了していない場合は、処理はステップS310に戻る。そのワークステーションWSにおいて実行すべきすべての作業が完了した場合には、処理を終了する。その後、処理は、図4のステップS400に進む。
【0049】
ステップS330において、動作制御装置300は、制御点TCPが配された目標点が、対象目標点の一つ前の目標点か否かを判定する。たとえば、図3の例において、目標点OP03は、対象目標点の一つ前の目標点である。制御点TCPが配された目標点が、対象目標点の一つ前の目標点である場合は、処理は、ステップS340に進む。制御点TCPが配された目標点が、対象目標点の一つ前の目標点ではない場合は、処理は、ステップS310に戻る。
【0050】
ステップS340において、動作制御装置300は、傾斜センサーとしてのIMU710の出力に基づいて、ロボットアーム110の制御パラメーターを再設定する。すなわち、複数の目標点OP01~OP04のうちの対象目標点OP04の一つ前に制御点TCPが位置すべき目標点OP03に制御点TCPが位置したときに、対象目標点OP04に制御点TCPを位置させるための制御パラメーターが、基準の向きからの傾きに基づいて再設定される。再設定される制御パラメーターには、各目標点に制御点TCPを配する際のロボットアーム110の関節J11~J16の角度が含まれる。このとき、回転中心である点ICCを中心に自律移動ロボット1が回転し傾いていることを想定している。すなわち、基準座標系BCのY軸方向とロボット座標系RCのY軸方向とは平行であるが、基準座標系BCのX軸方向とロボット座標系RCのX軸方向とは平行でなく、交差する、またはねじれの位置の関係にあり、基準座標系BCのZ軸方向とロボット座標系RCのZ軸方向とは平行でなく、交差する、またはねじれの位置の関係にある状態である。
【0051】
本明細書において、「目標点に制御点が位置したときに、制御パラメーターを再設定する」とは、目標点に制御点が位置した瞬間を含む所定の時間区間に制御パラメーターを再設定することを意味する。
【0052】
図6は、IMU710の出力に基づいて、ロボットアーム110の制御パラメーターを再設定する際の処理を示すフローチャートである。図6の処理は、主として、動作制御装置300および車両制御部740によって実行される。
【0053】
ステップS3410において、車両制御部740は、IMU710から得られる情報に基づいて、基準の向きに対する車両700の傾きを認識する。動作制御装置300は、車両制御部740から基準の向きに対する車両700の傾きの情報を取得する。
【0054】
ステップS3420において、動作制御装置300は、車両700の傾きの中心の位置と、車両700の傾きと、に基づいて、ロボット座標系RCの原点Orの現在の位置B’を計算する。より具体的には、動作制御装置300は、(i)車両700の傾きの中心である点ICCと、基台180内に位置するロボット座標系RCの原点Orと、の相対位置と、(ii)基準の向きに対する車両700の傾きと、に基づいて、ロボット座標系RCの原点Orの現在の位置B’を計算する。本実施形態において、車両700の傾きの中心である点ICCは、駆動輪DWの床面との接触点である。このため、基台180内に位置するロボット座標系RCの原点Orの、点ICCに対する相対位置Voは、既知である。なお、(i)における車両700の傾きの中心である点ICCと、基台180内に位置するロボット座標系RCの原点Orと、の相対位置は、図1の矢印Voである。
【0055】
ステップS3430において、動作制御装置300は、ロボット座標系RCの原点Orの現在の位置B’から対象目標点Tarへの座標変換を行う同次変換行列B’tarを計算する。
【0056】
図7は、ステップS3430における処理の内容を示す説明図である。図7において、車両700の向きが基準の向きと一致する場合のロボット座標系RCの原点Orの位置を「B」とする。車両700の向きが基準の向きと一致する場合に、原点Orを通る水平面を水平面HLとする。
【0057】
車両700が基準の向きで配されている場合のロボット座標系RCの原点Orの位置Bに対する対象目標点Tarの相対位置Vtは、図4のステップS100の処理において、あらかじめ得られている。その相対位置に基づいて、車両700が基準の向きで配されている場合のロボット座標系RCの原点Orの位置Bから、対象目標点Tarへの座標変換を行う同次変換行列tarが得られる。
【0058】
車両700が基準の向きで配されている場合のロボット座標系RCの原点Orの位置Bと、ステップS3420の処理で得られるロボット座標系RCの原点Orの現在の位置B’との相対位置に基づいて、位置Bから位置B’への座標変換を行う同次変換行列B’が得られる。
【0059】
(i)ロボット座標系RCの原点Orの現在の位置B’から対象目標点Tarへの座標変換を行う同次変換行列B’tarと、(ii)車両700が基準の向きで配されている場合のロボット座標系RCの原点Orの位置Bから、対象目標点Tarへの座標変換を行う同次変換行列tarと、(iii)位置Bから位置B’への座標変換を行う同次変換行列B’との関係は、以下の式(1)で表される。
【0060】
【数1】
【0061】
式(1)より、B’tarは、以下の式(2)によって得られる。
【0062】
【数2】
【0063】
図6のステップS3440において、動作制御装置300は、ステップS3430で得られた同時変換行列B’tarに基づいて、現在のロボット座標系RCの原点Orを基準として制御点TCPを対象目標点Tarに配するためのロボットアーム110の関節J11~J16の角度を計算する。
【0064】
以上の処理によって、図5のステップS340におけるロボットアーム110の関節J11~J16の角度の再設定が実行される。
【0065】
図5のステップS340を経てステップS310の処理が行われた場合には、ステップS310においては、再設定された制御パラメーターを使用して、対象目標点OP04に制御点TCPを位置させる処理が行われる。
【0066】
このような処理を行うことにより、想定されている向きに対して車両700の向きが傾いている場合にも、ロボットアーム110の制御点TCPを本来の対象目標点OP04に正確に位置させることができる。
【0067】
本実施形態における自律移動ロボット1を「ロボットシステム」とも呼ぶ。車両700を「移動体」とも呼ぶ。IMU710を「傾斜センサー」とも呼ぶ。
【0068】
B.第2実施形態:
第2実施形態は、ワークステーションWSにおいて、自律移動ロボット1が作業を行う際の処理の一部が、第1実施形態とは異なる。より具体的には、図5のステップS340の後に、所定の処理が実行された後に、ステップS310の処理が実行される。第2実施形態の他の点は、第1実施形態と同じである。
【0069】
図8は、ワークステーションWSにおいて、自律移動ロボット1が作業を行う際の処理を示す第2実施形態のフローチャートである。第2実施形態において、自律移動ロボット1が作業を行う際の処理は、図8に示すステップS342~S348の処理を除いて、第1実施形態における処理と同じである。
【0070】
ステップS342において、動作制御装置300は、ステップS340で再設定された制御パラメーターと、再設定される前の前記制御パラメーターと、のずれが、あらかじめ定められた範囲外であるか否かを判定する。「あらかじめ定められた範囲」は、制御パラメーターごとに定められる。なお、「あらかじめ定められた範囲」は、複数の制御パラメーターから得られる演算値を対象として定めることもできる。
【0071】
再設定された制御パラメーターと再設定される前の前記制御パラメーターとのずれが、あらかじめ定められた範囲内にある場合は、処理は、ステップS310に戻る。再設定された制御パラメーターと再設定される前の前記制御パラメーターとのずれが、あらかじめ定められた範囲外である場合は、処理は、ステップS344に進む。
【0072】
ステップS344において、動作制御装置300は、警告メッセージを発すべき旨の通知を、上位管理装置600に送信する。上位管理装置600は、出力装置608を介して、ユーザーに対して警告を発する。より具体的には、車両700の傾きに起因して、現在のワークステーションWSにおける作業において、ロボットアームの制御点が本来の対象目標点に正確に位置しない可能性が大きい旨が告知される。また、上位管理装置600は、出力装置608を介して、目標点を追加することを促すメッセージを、出力する。
【0073】
制御パラメーターの再設定による制御パラメーターの変化が、あらかじめ定められた範囲外となる場合には、そうではない場合に比べて、以下の事態が生じる可能性が大きい。すなわち、制御パラメーターの再設定に起因して、ロボットアーム110の姿勢が当初予定されていた姿勢から大きく変化することにより、制御点TCPの移動の途中において、車両700の傾きが変化する可能性が大きい。このため、ロボットアーム110の制御点TCPが本来の対象目標点に正確に位置しない可能性が大きい。ステップS342,S344の処理を行うことにより、ユーザーは、ロボットアーム110の制御点TCPが本来の対象目標点に正確に位置しない可能性があることを、あらかじめ知ることができる。その結果、ユーザーは、以下で説明するように、制御点TCPが本来の対象目標点に正確に位置しない事態を回避する処理を行うことができる。
【0074】
ユーザーは、出力装置608を介して、目標点を追加することを促すメッセージを受け取る。目標点を追加すべき旨の判断をした場合には、ユーザーは、上位管理装置600の入力装置607を介して、目標点を追加すべき旨の入力を行う。目標点を追加しない旨の判断をした場合には、ユーザーは、上位管理装置600の入力装置607を介して、目標点を追加しない旨の入力を行う。
【0075】
ステップS346において、上位管理装置600は、上位管理装置600の入力装置607を介して、目標点を追加すべき旨の入力があったか否かを判定する。目標点を追加しない旨の入力があった場合は、処理は、ステップS310に戻る。目標点を追加すべき旨の入力があった場合は、処理は、ステップS348に進む。
【0076】
ステップS348において、上位管理装置600は、対象目標点の一つ前に制御点TCPが位置すべき目標点と、対象目標点と、の間に、目標点を追加する。追加される目標点は、対象目標点の一つ前に制御点TCPが位置すべき目標点と、対象目標点と、の中点に、追加される。図3の例においては、対象目標点OP04の一つ前に制御点TCPが位置すべき目標点OP03と、対象目標点OP04と、の間に、目標点OP05が追加される。その後、処理は、処理はステップS310に戻る。
【0077】
このような処理を行うことにより、対象目標点OP04の一つ前に制御点TCPが位置すべき目標点OP03よりも対象目標点OP04に近い目標点OP05において、制御パラメーターの再設定が行われる。これは、図5のS340において説明される。このため、その場合には、ステップS340で再設定された制御パラメーターと、再設定される前の前記制御パラメーターと、のずれが、あらかじめ定められた範囲内となる可能性が高い。よって、ロボットアーム110の制御点TCPを本来の対象目標点OP04に正確に位置させることができる可能性が高い。
【0078】
C.第3実施形態:
第3実施形態は、ワークステーションWSにおいて、自律移動ロボット1が作業を行う際の処理の一部が、第1実施形態とは異なる。より具体的には、図5のステップS330の判定結果がYesであった場合に、所定の処理が実行された後に、ステップS340の処理が実行される。第3実施形態の他の点は、第1実施形態と同じである。
【0079】
図9は、ワークステーションWSにおいて、自律移動ロボット1が作業を行う際の処理を示す第3実施形態のフローチャートである。第3実施形態において、自律移動ロボット1が作業を行う際の処理は、図9に示すステップS332~S338の処理を除いて、第1実施形態における処理と同じである。
【0080】
ステップS332において、動作制御装置300は、対象目標点の一つ前に制御点TCPが位置すべき目標点と、対象目標点との間の距離が、あらかじめ定められている閾値よりも大きいか否かを判定する。図3の例においては、目標点OP03と対象目標点OP04との間の距離Lobが、閾値よりも大きいか否かが判定される。
【0081】
対象目標点の一つ前に制御点TCPが位置すべき目標点と、対象目標点との間の距離が、あらかじめ定められている閾値よりも大きくない場合は、処理は、ステップS340に進む。対象目標点の一つ前に制御点TCPが位置すべき目標点と、対象目標点との間の距離が、あらかじめ定められている閾値よりも大きい場合は、処理は、ステップS334に進む。
【0082】
ステップS334において、動作制御装置300は、警告メッセージを発すべき旨の通知を、上位管理装置600に送信する。上位管理装置600は、出力装置608を介して、ユーザーに対して警告を発する。より具体的には、エンドエフェクター200で処理を行うべき目標点にエンドエフェクター200を移動させる際の移動距離が長いこと、および車両700の傾きに起因して、ロボットアームの制御点が本来の対象目標点に正確に位置しない可能性が大きい旨が告知される。また、上位管理装置600は、出力装置608を介して、目標点を追加することを促すメッセージを、出力する。
【0083】
ユーザーは、出力装置608を介して、目標点を追加することを促すメッセージを受け取る。目標点を追加すべき旨の判断をした場合には、ユーザーは、上位管理装置600の入力装置607を介して、目標点を追加すべき旨の入力を行う。目標点を追加しない旨の判断をした場合には、ユーザーは、上位管理装置600の入力装置607を介して、目標点を追加しない旨の入力を行う。
【0084】
ステップS336,S338の処理は、第2実施形態のステップS346,S348の処理と同じである。
【0085】
対象目標点の一つ前に制御点が位置すべき目標点と、対象目標点との間の距離が、閾値よりも大きい場合には、そうではない場合に比べて、対象目標点に至る制御点TCPの移動の途中において、重心位置の変化に起因して、移動体の傾きが変化する可能性が大きい。このため、ロボットアーム110の制御点TCPが本来の対象目標点に正確に位置しない可能性が大きい。ステップS322,S324の処理を行うことにより、ロボットシステムのユーザーは、ロボットアーム110の制御点TCPが本来の対象目標点OP04に正確に位置しない可能性があることを、あらかじめ知ることができる。その結果、ユーザーは、制御点TCPが本来の対象目標点に正確に位置しない事態を回避する処理を行うことができる。
【0086】
D.第4実施形態:
(1)図10は、複数のプロセッサーによってロボットの制御装置が構成される一例を示す概念図である。この例では、ロボット100およびその動作制御装置300の他に、パーソナルコンピューター1000,1000bと、LANなどのネットワーク環境を介して提供されるクラウドサービス1100とが描かれている。パーソナルコンピューター1000,1000bは、それぞれプロセッサーとメモリーとを含んでいる。また、クラウドサービス1100においてもプロセッサーとメモリーを利用可能である。プロセッサーは、コンピューター実行可能な命令を実行する。これらの複数のプロセッサーの一部または全部を利用して、動作制御装置300および上位管理装置600の一部または全部の機能を実現することが可能である。また、各種の情報を記憶する記憶部も、これらの複数のメモリーの一部または全部を利用して、実現することが可能である。
【0087】
(2)図11は、複数のプロセッサーによって車両の制御装置が構成される一例を示す概念図である。この例では、車両700およびその車両制御部740の他に、パーソナルコンピューター1000,1000bと、LANなどのネットワーク環境を介して提供されるクラウドサービス1100とが描かれている。パーソナルコンピューター1000,1000bは、それぞれプロセッサーとメモリーとを含んでいる。また、クラウドサービス1100においてもプロセッサーとメモリーを利用可能である。プロセッサーは、コンピューター実行可能な命令を実行する。これらの複数のプロセッサーの一部または全部を利用して、車両制御部740および上位管理装置600の一部または全部の機能を実現することが可能である。また、各種の情報を記憶する記憶部も、これらの複数のメモリーの一部または全部を利用して、実現することが可能である。
【0088】
(3)図12は、複数のプロセッサーによってロボットの制御装置が構成される他の例を示す概念図である。この例では、ロボット100の動作制御装置300が、ロボット100の中に格納されている点が図10と異なる。この例においても、複数のプロセッサーの一部または全部を利用して、動作制御装置300および上位管理装置600の一部または全部の機能を実現することが可能である。また、各種の情報を記憶する記憶部も、複数のメモリーの一部または全部を利用して、実現することが可能である。
【0089】
(4)図13は、複数のプロセッサーによって車両の制御装置が構成される他の例を示す概念図である。この例では、車両制御部740が、車両700の外部に配されている点が図11と異なる。この例においても、複数のプロセッサーの一部または全部を利用して、車両制御部740および上位管理装置600の一部または全部の機能を実現することが可能である。また、各種の情報を記憶する記憶部も、複数のメモリーの一部または全部を利用して、実現することが可能である。
【0090】
E.他の実施形態:
E1.他の実施形態1:
(1)上記実施形態においては、車両700の基準の向きは、ロボット座標系RCのX軸、Y軸、Z軸の向きが、基準座標系BCのX軸、Y軸、Z軸の向きとそれぞれ平行となる向きである。そして、基準座標系BCは、ワークステーションWSごとに定められている。しかし、ロボットアームと移動体の基準の向きは、たとえば、絶対座標に基づいて定められているなど、他の方法で定められていてもよい。
【0091】
(2)上記実施形態においては、車両700は、1組の駆動輪DWが床面に接している点ICCを中心として傾く。しかし、移動体は、たとえば、脚によって移動する移動体など、さまざまな点を傾きの中心として傾くものとすることができる。上記各実施形態は、傾きの中心をあらかじめ特定できる移動体を含むロボットシステムや、傾きの中心を推定できる移動体を含むロボットシステムに、適用することができる。
【0092】
(3)上記実施形態においては、一つのロボットアーム110を備える垂直多関節ロボットであるロボット100を例に本開示の技術を説明した。しかし、本開示の技術は、スカラロボットに適用することもできる。また、本開示の技術は、二つの腕を備えるロボットなど、複数の腕を備えるロボットに適用することもできる。
【0093】
(4)上記実施形態においては、対象目標点は、エンドエフェクター200による処理を行うべき目標点である。これは、図3のOP04において説明される。しかし、対象目標点は、これに限られない。たとえば、対象目標点は、たとえば、エンドエフェクターが保持しているワークピースやエンドエフェクター自身を、他の部材に接触させるべき目標点や、エンドエフェクターが保持しているワークピースやエンドエフェクター自身を、他の部材に接触させつつ移動させる処理を行うべき目標点とすることもできる。すなわち、対象目標点は、ロボットの制御点を正確に配すべき任意の目標点とすることができる。
【0094】
(5)上記実施形態においては、図6のステップS3410において、車両制御部740が、IMU710から得られる情報に基づいて、基準の向きに対する車両700の傾きを認識し、動作制御装置300が、車両制御部740からその傾きの情報を取得する。しかし、車両700の傾きは、力検出部190に基づいて検出されてもよい。すなわち、(i)自律移動ロボット1が基準となる向きに配されている状態にあるときであって、自律移動ロボット1が静止状態にあり、制御点がある目標点にあるときに、力検出部190が検出するはずの力の向きと、(ii)自律移動ロボット1が静止状態にあり、制御点が上記のある目標点にあるときに力検出部190が検出する、力検出部190が実際に検出する力の向きと、の関係から、車両700またはロボット100の傾きを得ることができる。このとき、力検出部190が傾斜センサーに相当する。また、ロボット100または車両700に設けられたジャイロセンサーに基づいて、車両700またはロボット100の傾きを得ることもできる。このとき、ジャイロセンサーが傾斜センサーに相当する。これらの処理は、ロボット100の動作制御装置300が行ってもよいし、車両700の車両制御部740が行ってもよい。
【0095】
(6)上記実施形態においては、IMU710は車両700に設けられており、力検出部190は、基台180の下部に設けられている。これらロボットアームと移動体の少なくとも一方の傾きを検出することができる傾斜センサーは、ロボットアームの基部に固定されていてもよいし、移動体に固定されていてもよい。また、ロボットアームにあらかじめ定めあられた姿勢を取らせることを前提として、ロボットアームの先端またはロボットアームの途中の部位に設けられた力検出部を、傾斜センサーとして利用することもできる。
【0096】
また、ロボットアームと移動体の少なくとも一方の傾きを検出することができる傾斜センサーは、ロボットシステムとしての自律移動ロボット1以外の構造に設けられたカメラや超音波センサーなどの、センサーであってもよい。
【0097】
制御部は、それらのセンサーのうちの1以上のものに基づいて、ロボットアームと移動体の少なくとも一方の傾きを検出することができる。
【0098】
(7)上記実施形態においては、図5のステップS340において再設定される制御パラメーターとして、各関節の角度位置を例に挙げて説明した。しかし、基準の向きからの傾きに基づいて再設定される制御パラメーターは、エンドエフェクターを介して他の部材に付与すべき力の向きおよび大きさなど、他の制御パラメーターとすることもできる。
【0099】
(8)上記第2実施形態のステップS344および第3実施形態のステップS334においては、上位管理装置600が出力装置608を介して、ユーザーに対して警告を発する。しかし、警告は、他の方法で実行されてもよい。たとえば、自律移動ロボット1が、ランプ、スピーカ、ディスプレイなどの出力装置を備え、それらの出力装置から警告が出力されてもよい。
【0100】
E2.他の形態2:
(1)上記第1実施形態においては、制御点TCPが配された目標点が対象目標点の一つ前の目標点である場合は、動作制御装置300は、傾斜センサーとしてのIMU710の出力に基づいて、ロボットアーム110の制御パラメーターを再設定する。これは、図5のS330,S340において説明される。しかし、さらに、制御点TCPが配された目標点が対象目標点の2個以上前の目標点である場合にも、動作制御装置300は、傾斜センサーとしてのIMU710の出力に基づいて、ロボットアーム110の制御パラメーターを再設定する態様とすることもできる。そのような態様においては、図3の例においては、複数の目標点OP01~OP04のうちの対象目標点OP04の二つ以上前に制御点TCPが位置すべき目標点OP02や目標点OP01に制御点TCPが位置したときに、対象目標点OP04に制御点TCPを位置させるための制御パラメーターが、基準の向きからの傾きに基づいて再設定される。
【0101】
このような態様においては、二つ以上前に制御点TCPが位置すべき目標点に制御点TCPが位置したときに再設定を行わない態様に比べて、以下のような効果が得られる。すなわち、対象目標点OP04の一つ前の目標点OP03において再設定される制御パラメーターと、それよりも前に、すなわち、目標点OP02において再設定された制御パラメーターと、のずれを小さくすることができる。このため、一つ前の目標点OP03における制御パラメーターの再設定によって、ロボットアーム110の姿勢が、その再設定の前に想定されていた姿勢から大きくずれることがない。その結果、対象目標点OP04の一つ前の目標点OP03において制御パラメーターの再設定に使用された傾きと、再設定された制御パラメーターによってロボットアーム110が制御された後の傾きと、の差が小さい。よって、対象目標点OP04の一つ前の目標点OP03において再設定された制御パラメーターによって、ロボットアーム110の制御点TCPを本来の対象目標点OP04に正確に位置させることができる。
【0102】
(2)対象目標点よりも前に制御点が位置する3個以上の目標点において、制御パラメーターの再設定を行うこともできる。
【0103】
E3.他の形態3:
上記第2実施形態においては、図8のステップS344において、ロボットアームの制御点が本来の対象目標点に正確に位置しない可能性が大きい旨の警告がなされる。しかし、再設定された制御パラメーターと再設定される前の前記制御パラメーターとのずれが、あらかじめ定められた範囲外であるか否かの判定が行われず、ステップS344の処理が行われない態様とすることもできる。
【0104】
E4.他の形態4:
(1)上記第2実施形態においては、再設定された制御パラメーターと再設定される前の前記制御パラメーターとのずれが、あらかじめ定められた範囲外であって、目標点を追加すべき旨の入力があった場合に、目標点が追加される。これは、図8のS342,S346,S348において説明される。しかし、目標点が追加される条件は、他の条件とすることもできる。たとえば、再設定された制御パラメーターと再設定される前の前記制御パラメーターとのずれが、あらかじめ定められた範囲外であった場合に、目標点を追加するか否かをあらかじめ設定できる態様とすることもできる。そのような態様においては、目標点を追加する旨の設定がなされている場合に、ユーザーによる確認を経て、または確認を経ずに、目標点が追加されることができる。
【0105】
また、再設定された制御パラメーターと再設定される前の前記制御パラメーターとのずれが、あらかじめ定められた範囲外であること以外に、目標点の追加のために要求される条件は、「ユーザーの指示や、所定のセンサーからの出力に基づいて、作業が中断されないこと」など、実質的に常に満たされる条件とすることもできる。
【0106】
(2)上記第2実施形態においては、ステップS344において、ロボットアームの制御点が本来の対象目標点に正確に位置しない可能性が大きい旨の警告がなされる。また、目標点を追加することを促すメッセージが、出力される。
【0107】
しかし、再設定された制御パラメーターと再設定される前の前記制御パラメーターとのずれが、あらかじめ定められた範囲外である場合は、警告のみが出力され、目標点を追加することを促すメッセージが、出力されない態様とすることもできる。また、再設定された制御パラメーターと再設定される前の前記制御パラメーターとのずれが、あらかじめ定められた範囲外である場合は、警告が出力されず、目標点を追加することを促すメッセージのみが、出力される態様とすることもできる。第3実施形態のステップS334における出力についても、同様である。
【0108】
(3)上記第2実施形態においては、図8のステップS348において、対象目標点の一つ前に制御点TCPが位置すべき目標点と、対象目標点と、の中点に、目標点が追加される。しかし、追加される目標点は、対象目標点の一つ前に制御点TCPが位置すべき目標点と、対象目標点と、の間を2:1に内分する点や、4:1に内分する点など、他の位置に追加されてもよい。また、対象目標点の一つ前に制御点TCPが位置すべき目標点と、対象目標点と、を両端とする線分上にない点を、追加の目標点として定めてもよい。第3実施形態のステップS338における目標点の追加についても、同様である(図9参照)。
【0109】
E5.他の形態5:
上記第2実施形態においては、図9のステップS334において、ロボットアームの制御点が本来の対象目標点に正確に位置しない可能性が大きい旨の警告がなされる(図8参照)。しかし、対象目標点の一つ前に制御点TCPが位置すべき目標点と、対象目標点との間の距離が、あらかじめ定められている閾値よりも大きいか否かの判定が行われず、ステップS334の処理が行われない態様とすることもできる。
【0110】
E6.他の形態6:
(1)上記第3実施形態においては、対象目標点の一つ前に制御点TCPが位置すべき目標点と、対象目標点との間の距離が、あらかじめ定められている閾値よりも大きく、目標点を追加すべき旨の入力があった場合に、目標点が追加される(図8のS332,S336,S338参照)。しかし、目標点が追加される条件は、他の条件とすることもできる。たとえば、対象目標点の一つ前に制御点TCPが位置すべき目標点と、対象目標点との間の距離が、あらかじめ定められている閾値よりも大きい場合に、目標点を追加するか否かをあらかじめ設定できる態様とすることもできる。そのような態様においては、目標点を追加する旨の設定がなされている場合に、ユーザーによる確認を経て、または確認を経ずに、目標点が追加されることができる。
【0111】
また、対象目標点の一つ前に制御点TCPが位置すべき目標点と、対象目標点との間の距離が、あらかじめ定められている閾値よりも大きいこと以外に、目標点の追加のために要求される条件は、「ユーザーの指示や、所定のセンサーからの出力に基づいて、作業が中断されないこと」など、実質的に常に満たされる条件とすることもできる。
【0112】
(2)また、図9のステップS332~S338の2対応する処理は、図4のステップS100において、あらかじめ制御パラメーターを設定する際に、実行することもできる。
【0113】
(3)上記第3実施形態においては、図8のステップS342~S348の処理は行われない。しかし、図9のステップS332~S338の処理と、図8のステップS342~S348の処理との両方を行う態様とすることもできる。
【0114】
F.さらに他の形態:
本開示は、上述した実施形態に限られるものではなく、その趣旨を逸脱しない範囲において種々の形態で実現することができる。例えば、本開示は、以下の形態によっても実現可能である。以下に記載した各形態中の技術的特徴に対応する上記実施形態中の技術的特徴は、本開示の課題の一部又は全部を解決するために、あるいは、本開示の効果の一部又は全部を達成するために、適宜、差し替えや、組み合わせを行うことが可能である。また、その技術的特徴が本明細書中に必須なものとして説明されていなければ、適宜、削除することが可能である。
【0115】
(1)本開示の一形態によれば、 ロボットシステムの制御方法が提供される。前記ロボットシステムは、ロボットアームと、移動することができ、前記ロボットアームを支持する移動体と、前記ロボットアームと前記移動体の少なくとも一方の、基準の向きに対する傾きを検出することができる傾斜センサーと、を備える。前記制御方法は、前記ロボットアームの制御点が複数の目標点に順に位置するように、前記ロボットアームを制御する工程を備える。前記ロボットアームを制御する工程は、前記複数の目標点のうちの対象目標点の一つ前に前記制御点が位置すべき目標点に前記制御点が位置したときに、前記対象目標点に前記制御点を位置させるための制御パラメーターを、前記基準の向きからの傾きに基づいて再設定する工程と、前記再設定された制御パラメーターを使用して、前記対象目標点に前記制御点を位置させる工程と、を含む。
このような態様においては、想定されている向きに対して移動体の向きが傾いている場合にも、ロボットアームの制御点を本来の対象目標点に正確に位置させることができる。
【0116】
(2)上記形態の制御方法において、前記前記ロボットアームを制御する工程は、前記複数の目標点のうちの対象目標点の二つ以上前に前記制御点が位置すべき目標点に前記制御点が位置したときに、前記対象目標点に前記制御点を位置させるための制御パラメーターを、前記基準の向きからの傾きに基づいて再設定する工程を含む、態様とすることができる。
このような態様においては、二つ以上前に制御点が位置すべき目標点に制御点が位置したときに再設定を行わない態様に比べて、以下のような効果が得られる。すなわち、対象目標点の一つ前の目標点において再設定される制御パラメーターと、それよりも前に設定されていた制御パラメーターと、のずれを小さくすることができる。このため、制御パラメーターの再設定によって、ロボットアームの姿勢が、一つ前の目標点における再設定の前に想定されていた姿勢から大きくずれることがない。その結果、対象目標点の一つ前の目標点において制御パラメーターの再設定に使用された傾きと、再設定された制御パラメーターによってロボットアームが制御された後の傾きと、の差が小さい。よって、対象目標点の一つ前の目標点において再設定された制御パラメーターによって、ロボットアームの制御点を本来の対象目標点に正確に位置させることができる。
【0117】
(3)上記形態の制御方法において、前記ロボットアームを制御する工程は、前記対象目標点の一つ前に前記制御点が位置すべき目標点において再設定された前記制御パラメーターと、前記対象目標点の一つ前に前記制御点が位置すべき目標点において再設定される前の前記制御パラメーターと、のずれが、あらかじめ定められた範囲外となる場合には、警告を発する工程を含む、態様とすることができる。
制御パラメーターの再設定による制御パラメーターの変化が、あらかじめ定められた範囲外となる場合には、そうではない場合に比べて、以下の事態が生じる可能性が大きい。すなわち、ロボットアームの姿勢が制御パラメーターの再設定に起因して大きく変化することにより、制御点の移動の途中において、移動体の傾きが変化する可能性が大きい。このため、ロボットアームの制御点が本来の対象目標点に正確に位置しない可能性が大きい。上記の態様においては、ロボットシステムのユーザーは、ロボットアームの制御点が本来の対象目標点に正確に位置しない可能性があることを、あらかじめ知ることができる。
【0118】
(4)上記形態の制御方法において、前記ロボットアームを制御する工程は、前記対象目標点の一つ前に前記制御点が位置すべき目標点において再設定された前記制御パラメーターと、前記対象目標点の一つ前に前記制御点が位置すべき目標点において再設定される前の前記制御パラメーターと、のずれが、あらかじめ定められた範囲外となることを含む、あらかじめ定められた条件が満たされる場合には、対象目標点の一つ前に前記制御点が位置すべき目標点と、前記対象目標点と、の間に、目標点を追加する工程を含む、態様とすることができる。
制御パラメーターの再設定による制御点が配される位置のずれが、あらかじめ定められた範囲外となる場合には、そうではない場合に比べて、制御点の移動の途中において、移動体の傾きが変化する可能性が大きい。このため、ロボットアームの制御点が本来の対象目標点に正確に位置しない可能性が大きい。しかし、上記の態様においては、そのような場合にも、ロボットアームの制御点を本来の対象目標点に正確に位置させることができる可能性が高い。
【0119】
(5)上記形態の制御方法において、前記ロボットアームを制御する工程は、前記対象目標点の一つ前に前記制御点が位置すべき目標点と、前記対象目標点との間の距離が、閾値よりも大きい場合には、警告を発する工程を含む、態様とすることができる。
対象目標点の一つ前に制御点が位置すべき目標点と、対象目標点との間の距離が、閾値よりも大きい場合には、そうではない場合に比べて、対象目標点に至る制御点の移動の途中において、移動体の傾きが変化する可能性が大きい。このため、ロボットアームの制御点が本来の対象目標点に正確に位置しない可能性が大きい。しかし、上記の態様においては、ロボットシステムのユーザーは、ロボットアームの制御点が本来の対象目標点に正確に位置しない可能性があることを、あらかじめ知ることができる。
【0120】
(6)上記形態の制御方法において、前記ロボットアームを制御する工程は、前記対象目標点の一つ前に前記制御点が位置すべき目標点と、前記対象目標点との間の距離が、閾値よりも大きいことを含む、あらかじめ定められた条件が満たされる場合には、対象目標点の一つ前に前記制御点が位置すべき目標点と、前記対象目標点と、の間に、目標点を追加する工程を含む、態様とすることができる。
対象目標点の一つ前に制御点が位置すべき目標点と、対象目標点との間の距離が、閾値よりも大きい場合には、そうではない場合に比べて、対象目標点に至る制御点の移動の途中において、移動体の傾きが変化する可能性が大きい。このため、ロボットアームの制御点が本来の対象目標点に正確に位置しない可能性が大きい。しかし、上記の態様においては、そのような場合にも、ロボットアームの制御点を本来の対象目標点に正確に位置させることができる可能性が高い。
【0121】
本開示は、ロボットシステムの制御方法以外の種々の形態で実現することも可能である。例えば、ロボットシステムや、ロボットシステムの制御方法を実現するコンピュータプログラム、そのコンピュータプログラムを記録した一時的でない記録媒体等の形態で実現することができる。
【0122】
上述した本開示の各形態の有する複数の構成要素はすべてが必須のものではなく、上述の課題の一部又は全部を解決するため、あるいは、本明細書に記載された効果の一部又は全部を達成するために、適宜、前記複数の構成要素の一部の構成要素について、その変更、削除、新たな他の構成要素との差し替え、限定内容の一部削除を行うことが可能である。また、上述の課題の一部又は全部を解決するため、あるいは、本明細書に記載された効果の一部又は全部を達成するために、上述した本開示の一形態に含まれる技術的特徴の一部又は全部を上述した本開示の他の形態に含まれる技術的特徴の一部又は全部と組み合わせて、本開示の独立した一形態とすることも可能である。
【符号の説明】
【0123】
1…自律移動ロボット、100…ロボット、110…ロボットアーム、110a…アーム要素、110b…アーム要素、110c…アーム要素、110d…アーム要素、110e…アーム要素、180…基台、190…力検出部、200…エンドエフェクター、300…動作制御装置、301…CPU、302…RAM、303…ROM、410…サーボモーター、410a…サーボモーター、410v…サーボモーター、410v1…サーボモーター、420…エンコーダー、420a…エンコーダー、420v…エンコーダー、420v1…エンコーダー、510…減速機、510a…減速機、510v…減速機、510v1…減速機、600…上位管理装置、601…CPU、602…RAM、603…ROM、607…入力装置、608…出力装置、700…車両、720…カメラ、740…車両制御部、741…CPU、742…RAM、743…ROM、1000…パーソナルコンピューター、1100…クラウドサービス、A12…自律移動ロボットの移動を示す矢印、A13…自律移動ロボットの移動を示す矢印、A23…自律移動ロボットの移動を示す矢印、B…車両700の向きが基準の向きと一致する場合のロボット座標系RCの原点Orの位置、B’…ロボット座標系RCの原点Orの現在の位置、BC…基準座標系、B’Ttar…ロボット座標系RCの原点Orの現在の位置B’から対象目標点Tarへの座標変換を行う同次変換行列、BTtar…車両700が基準の向きで配されている場合のロボット座標系RCの原点Orの位置Bから対象目標点Tarへの座標変換を行う同次変換行列、BTB’…位置Bから位置B’への座標変換を行う同次変換行列、DW…駆動輪、FW1…従動輪、FW2…従動輪、HL…水平面、ICC…駆動輪DWが床面に接している点、J11…関節、J12…関節、J13…関節、J14…関節、J15…関節、J16…関節、Lob…目標点OP03と対象目標点OP04との間の距離、OP01…目標点、OP02…目標点、OP03…目標点、OP04…対象目標点、OP05…目標点、Or…ロボット座標系RCの原点、RC…ロボット座標系、T11…トレイ、T12…トレイ、T21…トレイ、T22…トレイ、T31…トレイ、T32…トレイ、TCP…制御点、Tar…対象目標点、Vo…ロボット座標系RCの原点Orの点ICCに対する相対位置、Vt…車両700が基準の向きで配されている場合のロボット座標系RCの原点Orに対する対象目標点Tarの相対位置、WP…ワークピース、WS1…ワークステーション、WS2…ワークステーション、WS3…ワークステーション
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13