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

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

▶ 東芝機械株式会社の特許一覧

<>
  • 特許-ロボットシステム 図1
  • 特許-ロボットシステム 図2
  • 特許-ロボットシステム 図3
  • 特許-ロボットシステム 図4
  • 特許-ロボットシステム 図5
  • 特許-ロボットシステム 図6
  • 特許-ロボットシステム 図7
  • 特許-ロボットシステム 図8
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-03-01
(45)【発行日】2024-03-11
(54)【発明の名称】ロボットシステム
(51)【国際特許分類】
   B25J 9/18 20060101AFI20240304BHJP
   B25J 13/00 20060101ALI20240304BHJP
   G05B 19/4155 20060101ALI20240304BHJP
【FI】
B25J9/18
B25J13/00 Z
G05B19/4155 M
【請求項の数】 8
(21)【出願番号】P 2020097837
(22)【出願日】2020-06-04
(65)【公開番号】P2021186955
(43)【公開日】2021-12-13
【審査請求日】2023-04-19
(73)【特許権者】
【識別番号】000003458
【氏名又は名称】芝浦機械株式会社
(74)【代理人】
【識別番号】100091487
【弁理士】
【氏名又は名称】中村 行孝
(74)【代理人】
【識別番号】100105153
【弁理士】
【氏名又は名称】朝倉 悟
(74)【代理人】
【識別番号】100118843
【弁理士】
【氏名又は名称】赤岡 明
(74)【代理人】
【識別番号】100141830
【弁理士】
【氏名又は名称】村田 卓久
(74)【代理人】
【識別番号】100213654
【弁理士】
【氏名又は名称】成瀬 晃樹
(72)【発明者】
【氏名】江越 正大
(72)【発明者】
【氏名】勝又 和浩
(72)【発明者】
【氏名】風間 拓朗
【審査官】牧 初
(56)【参考文献】
【文献】特開2003-266252(JP,A)
【文献】特開2014-46423(JP,A)
【文献】特開2013-59817(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
B25J 1/00-21/02
G05B 19/18-19/416
G05B 19/42-19/46
(57)【特許請求の範囲】
【請求項1】
複数のアームと、該複数のアームと接続するように設けられるアーム接続部を支持し、前記アーム接続部を可動とする軸を含む支持部と、を有するロボットと、
前記ロボットの動作を制御するプログラムに含まれる、第1アームの動作における前記軸の角度である第1角度と、前記プログラムに含まれる、第2アームの動作における前記軸の角度である第2角度と、が略一致するか否かに基づいて、前記第1アームと前記第2アームとを互いに独立して動作させる制御部と、を備える、ロボットシステム。
【請求項2】
前記制御部は、前記第1角度と前記第2角度とが略一致するか否かに基づいて、教示点間における前記第1アームの動作中に、教示点における動作の開始および終了の少なくとも一方を前記第2アームにさせる、請求項1に記載のロボットシステム。
【請求項3】
前記制御部は、
前記第1角度と前記第2角度とが略一致する場合、前記第1アームと前記第2アームとを互いに独立して動作させ、
前記第1角度と前記第2角度とが一致しない場合、前記第1アームおよび前記第2アームの動作を停止させる、請求項1または請求項2に記載のロボットシステム。
【請求項4】
前記制御部は、前記第1アームの連続する複数の教示点を含む第1経路における前記第1角度と、前記第2アームの連続する複数の教示点を含む第2経路における前記第2角度と、が略一致するか否かに基づいて、前記第1アームと前記第2アームとを互いに独立して動作させる、請求項1から請求項3のいずれか一項に記載のロボットシステム。
【請求項5】
前記制御部は、前記第1経路および前記第2経路に含まれる教示点毎の前記軸の全ての角度が略一致するか否かに基づいて、前記第1アームと前記第2アームとを互いに独立して動作させる、請求項4に記載のロボットシステム。
【請求項6】
前記制御部は、前記軸の複数の角度の差が所定値以下である場合、前記軸の複数の角度が略一致すると判定する、請求項1から請求項5のいずれか一項に記載のロボットシステム。
【請求項7】
前記ロボットは、前記軸の角度を検出するセンサをさらに有し、
前記制御部は、前記第1アームの教示点毎に、前記センサの検出結果を前記プログラムに含まれる前記第1角度とし、前記第2アームの教示点毎に、前記センサの検出結果を前記プログラムに含まれる前記第2角度とする、請求項1から請求項6のいずれか一項に記載のロボットシステム。
【請求項8】
前記軸は、前記アーム接続部を旋回および傾動の少なくとも一方をさせる、請求項1から請求項7のいずれか一項に記載のロボットシステム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明による実施形態は、ロボットシステムに関する。
【背景技術】
【0002】
複数のアームを有するロボットは、各アームを同時に動作させる場合がある。例えば、或るアームの動作の開始および終了のタイミングを、他のアームの開始および終了のタイミングと合わせる制御方法が知られている。
【0003】
しかし、上記の制御方法では、他のアームと開始および終了のタイミングを合わせるために、或るアームの動作に無駄が生じ、効率が低下して動作時間(作業に要する時間)が長くなってしまう可能性があった。
【先行技術文献】
【特許文献】
【0004】
【文献】特開平7-20915号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
複数のアームをより効率よく制御することができるロボットシステムを提供することを目的とする。
【課題を解決するための手段】
【0006】
本実施形態によるロボットシステムは、複数のアームと、複数のアームと接続するように設けられるアーム接続部を支持し、アーム接続部を可動とする軸を含む支持部と、を有するロボットと、ロボットの動作を制御するプログラムに含まれる、第1アームの動作における軸の角度である第1角度と、プログラムに含まれる、第2アームの動作における軸の角度である第2角度と、が略一致するか否かに基づいて、第1アームと第2アームとを互いに独立して動作させる制御部と、を備える。
【図面の簡単な説明】
【0007】
図1】第1実施形態によるロボットシステムの構成を示す図。
図2】第1実施形態によるロボットにおける軸構成の全体を示す模式図。
図3】右アームおよび左アームの教示点および動作軌道の一例を示す図。
図4】プログラムの一例を示す図。
図5図4のプログラムにより生成された動作軌道の速度と時間との関係の一例を示すグラフ。
図6】右アームおよび左アームの並列動作の一例を示すフロー図。
図7】逐次実行のプログラムにより生成された動作軌道の速度と時間との関係の一例を示すグラフ。
図8】右アームおよび左アームの逐次実行の一例を示すフロー図。
【発明を実施するための形態】
【0008】
以下、図面を参照して本発明に係る実施形態を説明する。本実施形態は、本発明を限定するものではない。図面は模式的または概念的なものであり、各部分の比率などは、必ずしも現実のものと同一とは限らない。明細書と図面において、既出の図面に関して前述したものと同様の要素には同一の符号を付して詳細な説明は適宜省略する。
【0009】
(第1実施形態)
図1は、第1実施形態によるロボットシステム1の構成を示す図である。ロボットシステム1は、ロボット10と、制御装置70と、を備える。
【0010】
図2は、第1実施形態によるロボット10における軸構成の全体を示す模式図である。図2は、ロボット10における軸構成の全体を概観できるように示す。尚、図2では、図1において示されていない軸(JR4軸、JR5軸、JL3軸、JL4軸)も示されている。
【0011】
ロボット10は、腰部12と、胴体14と、右腕16Rと、左腕16Lと、を有する。図1および図2に示す例では、ロボット10は、人間の体に似た構造をもつ双腕ヒト型ロボットである。
【0012】
アーム接続部としての胴体14は、複数のアームとしての右腕16Rおよび左腕16Lと接続するように設けられる。
【0013】
支持部としての腰部12は、胴体14を支持し、胴体14を可動とする軸(腰軸)を含む。腰軸は、胴体14を旋回および傾動の少なくとも一方をさせる。従って、腰部12は、胴体14の中心を通る軸回りに胴体14を旋回させる旋回軸、および、胴体14を前後方向に傾動させる傾動軸の少なくとも一方を含む。
【0014】
次に、ロボット10の各構成について詳細に説明する。
【0015】
腰部12は、台(図示せず)などに載せられており、腰部12そのものは動くことはない。
【0016】
ここで、以下の説明における方向は、次のようなものとする。図1において、上下方向とは、腰部12を水平面上に設置した場合の上下をいい、前後方向とは、胴体14を基準にその前面側を前、背面側を後とし、左右は、胴体14を基準にいうものとする。
【0017】
胴体14は、その中心を通る鉛直な中心軸回りに回動可能であり、この軸をJB1とする。さらに、胴体14は、左右に延びる水平な軸JB2回りに傾動可能である。この実施形態では、胴体14は、JB1軸、JB2軸からなる2自由度を有している。
【0018】
次に、右腕16Rと左腕16Lについて説明する。
【0019】
右腕16Rは、肩部18Rと、上腕部19Rと、ひじ関節部20Rと、前腕部21Rと、手首部22Rと、から構成されている。同様に、左腕16Lは、肩部18Lと、上腕部19Lと、ひじ関節部20Lと、前腕部21Lと、手首部22Lと、から構成されている。
【0020】
図1および図2において、右腕16Rの肩部18Rは、上腕部19Rが回動するJR1軸、JR2軸を有し、2自由度である。右腕16Rのひじ関節部20Rは、JR3軸、JR4軸、JR5軸の都合3自由度の関節になっている。右腕16Rの手首部22Rは、JR6軸、JR7軸の2自由度を有している。したがって、右腕16Rは、合計で7自由度をもっている。
【0021】
同様に、左腕16Lの肩部18Lは、上腕部19Lが回動するJL1軸、JL2軸を有し、2自由度である。左腕16Lのひじ関節部20Lは、JL3軸、JL4軸、JL5軸の都合3自由度の関節になっている。左腕16Lの手首部22Lは、JL6軸、JL7軸の2自由度を有している。したがって、左腕16Lも、合計で7自由度をもっている。
【0022】
JR1軸、JL1軸は、上腕部19R、19Lをそれぞれ上腕部19R、19Lの長さ方向の中心線回りに回動させる軸である。JR2軸、JL2軸は、胴体14に垂直な面内で、上腕部19R、19Lをそれぞれ旋回させる軸である。胴体14が直立していれば、上腕部19R、19Lは水平面上を旋回することになる。
【0023】
JR3軸、JL3軸は、JR1軸、JL1軸と同軸な軸線回りに、ひじ関節部20R、20Lの全体がそれぞれ旋回する軸である。JR4軸、JL4軸は、ひじ関節部20R、20Lの下半分をJR3軸、JL3軸と直交する軸回りに回転させる軸である。JR5軸、JL5軸は、前腕部21R、21LをJR4軸、JL4軸と直交する軸回りに回転させる軸である。
【0024】
手首部22R、22LのJR6軸、JL6軸は、前腕部21R、21Lの長さ方向と平行な面内でそれぞれ手首部22R、22Lを旋回させる軸である。JR7軸、JL7軸は、JR6軸、JL6軸と直交し、手首部22R、22Lに取り付けられるエンドエフェクタを旋回させる軸である。
【0025】
また、ロボット10は、角度センサ(図示せず)をさらに有している。各回転軸JB1、JB2、JL1~JL7、JR1~JR7にはそれぞれモータが設けられている。モータは、回転軸の駆動に用いられる。各モータは、それぞれの回転位置を検出する角度センサを有している。角度センサは、例えば、エンコーダである。また、より詳細には、角度センサは、腰軸の角度を検出する。「腰軸」は、旋回軸であるJB1軸および傾動軸であるJB2軸の少なくとも一方である。
【0026】
尚、以下では、「右腕16R」は、「右アーム16R」または「ARM1」と呼ばれる場合がある。「左腕16L」は、「左アーム16L」または「ARM2」と呼ばれる場合がある。
【0027】
図1に示すように、制御装置70は、記憶部71と、制御部72と、を備える。
【0028】
記憶部71は、例えば、メインメモリとして機能するRAM(Random Access Memory)またはROM(Read Only Memory)、および、ストレージとして機能するHDD(Hard Disk Drive)またはSSD(Solid State Drive)を備えてもよい。記憶部71は、例えば、ロボット10を動作させる各種プログラムやデータを格納する。また、記憶部71は、教示により作成されたプログラムを格納する。教示は、例えば、アームの先端位置のXYZ座標を記憶部71が記憶することにより行われる。尚、記憶部71は、ロボットシステム1の外部に設けられていてもよい。
【0029】
制御部72は、ロボット10と接続し、ロボット10を制御する。制御部72は、例えば、ロボット10の動作を制御するプログラムを実行することによって、各モータを制御する。これにより、各回転軸(関節)が所望の角度に制御され、例えば、エンドエフェクタ(右アーム16Rおよび左アーム16Lの先端)を所望の位置および所望の角度に移動させることができる。このように、プログラムは、ロボット10を実際に動作させるために用いられる。
【0030】
プログラムには、例えば、アームの先端位置が含まれる。制御部72は、プログラムに基づいて、アームの動作軌道を生成する。尚、制御部72は、プログラムからアームの姿勢情報を取得し、動作軌道の生成に用いてもよい。この場合、制御部72は、教示の際に、アームの先端位置に加えてアームの姿勢情報をプログラムに含めればよい。これにより、目標の先端位置におけるアームの形態(例えば、アームの関節の曲がり具合等)を、途中経路によらずほぼ同じにすることができる。しかし、これに限られず、アームの姿勢情報の教示が行われず、動作軌道の生成にアームの姿勢情報が用いられなくてもよい。
【0031】
また、制御部72は、第1アームの教示点毎に、角度センサの検出結果をプログラムに含まれる第1角度とする。また、制御部72は、第2アームの教示点毎に、角度センサの検出結果をプログラムに含まれる第2角度とする。すなわち、制御部72は、アームの教示の際に、現在の腰軸の角度をアームの先端位置とともに記憶部71内のプログラムに取り込む。「第1アーム」および「第2アーム」は、複数のアームのうち任意のアームである。例えば、第1アームが右アーム16Rであり、第2アームが左アーム16Lであってもよい。一方、第1アームが左アーム16Lであり、第2アームが右アーム16Rであってもよい。この対応関係は、例えば、図5(A)および図5(B)を参照して後で説明するように、時間の経過等によって切り替わる場合がある。
【0032】
また、制御部72は、ロボット10の動作を制御するプログラムに含まれる、第1アームの動作における腰軸の角度である第1角度と、プログラムに含まれる、第2アームの動作における腰軸の角度である第2角度と、が略一致するか否かに基づいて、第1アームと第2アームとを互いに独立して動作させる。「第1アームと第2アームとを互いに独立して動作させる」ことは、第1アームが第2アームの動作の影響を受けることなく動作し、第2アームが第1アームの動作の影響を受けることなく動作することを示す。従って、第1アームおよび第2アームは、例えば、教示点における動作開始または動作終了のタイミングを同期することなく動作する。
【0033】
腰軸を有するロボット10では、腰軸の角度がアームの先端位置および動作に影響を与える場合がある。もし、アームが動作せずに腰軸の角度が変化すると、アームの先端位置がずれてしまう。また、教示の際にアームの姿勢情報がプログラムに含まれる場合であっても、教示時とプログラム実行時との間で腰軸の角度に差があると、教示時とプログラム時との間でアームの形態が異なってしまう可能性がある。これは、教示において、アームの先端位置のXYZ座標が設定されるためである。また、複数のアームを有するロボット10では、それぞれ別の動作(作業)を行わせるために、アーム毎に教示が行われる場合がある。また、このように個別に教示されたアームは、効率化のために、同時に動作する場合がある。
【0034】
ここで、腰軸は、複数のアームが共通に接続された胴体14を可動とする。従って、腰軸の角度は、各アームの先端位置および動作に影響を与える。従って、各アームの動作内容によっては、各アームが適切に動作することが難しく、また、各アームの動作が制限される可能性がある。そこで、制御部72は、プログラム中の腰軸の角度を比較することにより、各アームが別の作業が実行できるか否かを判断し、アームを独立して制御する。これにより、腰軸を有するロボット10において、異なる作業を実行する複数のアームをより効率よく制御することができる。
【0035】
また、制御部72は、第1アームの教示点毎に、第1角度および第1アームの先端位置を取得する。制御部72は、第1角度および第1アームの先端位置に基づいて、第1アームの動作軌道を生成する。同様に、制御部72は、第2アームの教示点毎に、第2角度および第2アームの先端位置を取得する。制御部72は、第2角度および第2アームの先端位置に基づいて、第2アームの動作軌道を生成する。
【0036】
図3は、右アーム16Rおよび左アーム16Lの教示点および動作軌道の一例を示す図である。図3(A)は、右アーム16Rの教示点および動作軌道の一例を示す。図3(B)は、左アーム16Lの教示点および動作軌道の一例を示す。
【0037】
RP0~RP3は、右アーム16Rの教示点を示す。LP0~LP4は、左アーム16Lの教示点を示す。尚、教示点RP0、LP0は、一連の軌道の開始教示点である。教示点RP0から教示点RP3までの軌道は、右アーム16Rの連続する複数の教示点を含む右アーム軌道である。右アーム16Rは、右アーム軌道に沿って移動する。教示点LP0から教示点LP4までの軌道は、左アーム16Lの連続する複数の教示点を含む左アーム軌道である。左アーム16Lは、左アーム軌道に沿って移動する。
【0038】
矢印は、教示点間の軌道を示す。矢印の距離は、軌道の距離を示す。図3(A)および図3(B)に示す例では、教示点LP1と教示点LP2との間の距離、および、教示点LP2と教示点LP3との間の距離は、他の教示点間の距離に比べて短くなっている。
【0039】
図4は、プログラムの一例を示す図である。
【0040】
「PARALLEL ARM1」は、右アーム16Rに「PARALLEL END」までの動作を並列動作として実行させることを示す。「PARALLEL ARM2」は、左アーム16Lに「PARALLEL END」までの動作を並列動作として実行させることを示す。「PARALLEL END」は、並列動作の終了を示す。図4に示す例では、右アーム16RであるARM1に関する「MOVE ARM1 RPn(n=1、2、3)」と、左アーム16LであるARM2に関する「MOVE ARM2 LPm(m=1、2、3、4)」と、が並列で実行される。
【0041】
「MOVE ARM1 RPn(n=1、2、3)」は、右アーム16Rを教示点RPn(n=1、2、3)まで移動させることを示す。従って、「MOVE ARM1 RPn(n=1、2、3)」は、図3(A)に示す右アーム軌道のプログラム行である。「MOVE ARM2 LPm(m=1、2、3、4)」は、左アーム16Lを教示点LPm(m=1、2、3、4)まで移動させることを示す。従って、「MOVE ARM2 LPm(m=1、2、3、4)」は、図3(B)に示す左腕アーム軌道のプログラム行である。
【0042】
制御部72は、第1角度と第2角度とが略一致する場合、第1アームと第2アームとを互いに独立して動作させる。また、制御部72は、第1角度と第2角度とが一致しない場合、第1アームおよび第2アームの動作を停止させる。第1角度と第2角度とが略一致する場合、教示点のタイミングを同期させることなく、第1アームと第2アームとを適切に動作させることができる。これは、各アームの教示の際に腰軸の角度が略一致しているためである。一方、第1角度と第2角度とが一致しない場合、第1アームと第2アームとを同時に動作させると、例えば、予期せず第1アームおよび第2アームが危険な動作をする可能性がある。従って、腰軸の角度が一致していない場合、例えば、プログラムエラーとして、第1アームおよび第2アームを動作させないようにする必要がある。制御部72は、例えば、表示部(図示せず)にエラーを表示してもよい。
【0043】
また、制御部72は、腰軸の複数の角度の差が所定値以下である場合、腰軸の複数の角度が略一致すると判定する。角度センサであるエンコーダの精度等によっては、腰軸の角度は、必ずしも一致しない場合がある。そこで、制御部72は、角度の差が小さい場合に、腰軸の角度が略一致すると判断する。所定値は、例えば、ユーザによって予め設定される。所定値は、例えば、作業内容によって変更される場合がある。例えば、細かい位置精度を必要とする作業が実行される場合、所定値は小さい値である必要がある。一方、位置精度が荒くてもよい作業が実行される場合、所定値は大きい値であってもよい。
【0044】
また、制御部72は、第1アームの連続する複数の教示点を含む第1経路における第1角度と、第2アームの連続する複数の教示点を含む第2経路における第2角度と、が略一致するか否かに基づいて、第1アームと第2アームとを互いに独立して動作させる。「第1経路」および「第2経路」は、例えば、右アーム軌道および左アーム軌道である。すなわち、制御部72は、右アーム軌道における腰軸の角度と、左アーム軌道における腰軸の角度と、を比較する。これにより、複数のアームは、互いに独立して一連の動作を行うことができる。
【0045】
図4に示す「PARALLEL」において、制御部72は、腰軸の角度が略一致しているか否かを比較判定する。腰軸の角度が略一致している場合、制御部72は、「MOVE」のプログラム行を実行し、右アーム16Rおよび左アーム16Lの並列動作を実行させる。
【0046】
「MOVE」において、制御部72は、教示点毎に、腰軸の角度およびアームの先端位置に基づいて軌道生成の演算を行う。制御部72は、上記判定により、右アーム16Rと左アーム16Lとの間で略一致した腰軸の角度の値を用いて軌道生成の演算を行う。制御部72は、生成した動作軌道をアームに実行させる。
【0047】
また、より詳細には、制御部72は、第1経路および第2経路に含まれる教示点毎の腰軸の全ての角度が略一致するか否かに基づいて、第1アームと第2アームとを互いに独立して動作させる。すなわち、制御部72は、第1経路に含まれる教示点毎の全ての第1角度が略一致するか否かと、第2経路に含まれる教示点毎の全ての第2角度が略一致するか否かと、をさらに判定する。図4に示す例では、制御部72は、教示点RP0~RP3、LP0~LP4における腰軸の角度が全て略一致するか否かを判定する。従って、制御部72は、腰軸をほぼ固定で、第1アームと第2アームとを互いに独立して動作させる。
【0048】
尚、ユーザは、例えば、個別に教示される第1アームおよび第2アームの動作を確認し、同時に独立して制御させる区間を選択(指定)する。また、ユーザは、例えば、腰軸の角度がほぼ変化しない区間として、並列動作が実行される右アーム軌道および左アーム軌道を選択する。ユーザは、選択した軌道に対して、「PARALLEL」を用いてプログラムを作成すればよい。
【0049】
以下では、教示点RP0~RP3、LP0~LP4における腰軸の角度が全て略一致している場合について、説明する。
【0050】
図5は、図4のプログラムにより生成された動作軌道の速度と時間との関係の一例を示すグラフである。図5(A)は、図3(A)に示す動作軌道における時間と速度との関係を示すグラフである。図5(B)は、図3(B)に示す動作軌道における時間と速度との関係を示すグラフである。縦軸はアームの移動速度を示し、横軸は時間を示す。尚、図5(A)の横軸は、図5(B)の横軸と対応する。また、右アーム16Rおよび左アーム16Lは、或る教示点から加速し、最大速度に達し、減速して次の教示点で停止する。また、速度のグラフの面積は、アームの移動距離を示す。
【0051】
制御部72は、第1角度と第2角度とが略一致するか否かに基づいて、教示点間における第1アームの動作中に、教示点における動作の開始および終了の少なくとも一方を第2アームにさせる。すなわち、制御部72は、教示点毎の動作開始または動作終了のタイミングを合わせないように(同期させないように)、右アーム16Rと左アーム16Lとを制御する。これにより、第2アームは、第1アームの動作の完了を待たずに、次の動作を実行することができる。
【0052】
図5(A)および図5(B)に示す例では、t0において、右アーム16Rおよび左アーム16Lは、それぞれ、教示点RP0および教示点LP0から略同時に動作を開始する。次に、t1において、右アーム16Rおよび左アーム16Lは、それぞれ、教示点RP1および教示点LP1に達する。尚、教示点RP1、LP1のタイミングは、略同時である。次に、t2において、左アーム16Lは、教示点LP2に達する。尚、t2において、右アーム16Rは、教示点RP1と教示点RP2との間の動作を実行中である。次に、t3において、左アーム16Lは、教示点LP3に達する。尚、t3において、右アーム16Rは、教示点RP1と教示点RP2との間の動作を実行中である。次に、t4において、右アーム16Rは、教示点RP2に達する。尚、t4において、左アーム16Lは、教示点LP3と教示点LP4との間の動作を実行中である。次に、t5において、左アーム16Lは、教示点LP4に達し、左アーム軌道の動作を終了する。尚、t5において、右アーム16Rは、教示点RP2と教示点RP3との間の動作を実行中である。次に、t6において、右アーム16Rは、教示点RP3に達し、右アーム軌道の動作を終了する。
【0053】
従って、t2、t3およびt5において、左アーム16Lは、教示点における右アーム16Rの動作開始および動作終了のタイミングとは無関係に、教示点における動作の開始および終了を行っている。この場合、右アーム16Rが第1アームに対応し、左アーム16Lが第2アームに対応する。一方、t4およびt6において、右アーム16Rは、教示点における左アーム16Lの動作開始および動作終了のタイミングとは無関係に、教示点における動作の開始および終了を行っている。この場合、左アーム16Lが第1アームに対応し、右アーム16Rが第2アームに対応する。
【0054】
図6は、右アーム16Rおよび左アーム16Lの並列動作の一例を示すフロー図である。
【0055】
図6に示すように、右アーム16Rと左アーム16Lとは、互いに影響することなく、並列動作する。従って、タイミングの同期のために、無駄な待機時間または低速動作等がほとんどなく、複数のアームを効率的に動作させることができる。
【0056】
以上のように、第1実施形態によれば、制御部72は、プログラムに含まれる、第1アームの動作における腰軸の角度である第1角度と、プログラムに含まれる、第2アームの動作における腰軸の角度である第2角度と、が略一致するか否かに基づいて、第1アームと第2アームとを互いに独立して動作させる。これにより、動作開始および動作終了のタイミングを同期させることなく、第1アームと第2アームとを並列動作させることができる。この結果、腰軸を有するロボット10において、異なる作業を実行する複数のアームをより効率よく制御することができる。
【0057】
複数アームを有するロボットでは、或るアームの動作の開始および終了のタイミングを、他のアームの開始および終了のタイミングと合わせる、逐次動作(逐次実行)の制御方法が用いられる場合がある。
【0058】
図7は、逐次実行のプログラムにより生成された動作軌道の速度と時間との関係の一例を示すグラフである。図7(A)は、図3(A)に示す動作軌道における時間と速度との関係を示すグラフである。図7(B)は、図3(B)に示す動作軌道における時間と速度との関係を示すグラフである。
【0059】
尚、逐次実行のプログラムとして、例えば、「MOVE ARM1 RPl,ARM2 LPl(l=1、2、3)」が用いられる。このプログラム行は、1行で右アーム16Rおよび左アーム16Lの両方を次の教示点に移動させることを示す。
【0060】
図7(A)および図7(B)に示す例では、t0~t1において、右アーム16Rおよび左アーム16Lは、図5(A)および図5(B)と同様に動作する。次に、t2aにおいて、右アーム16Rおよび左アーム16Lは、それぞれ、教示点RP2および教示点LP2に達する。尚、教示点RP2、LP2のタイミングは、略同時である。次に、t3aにおいて、右アーム16Rおよび左アーム16Lは、それぞれ、教示点RP3および教示点LP3に達する。尚、教示点RP3、LP3のタイミングは、略同時である。また、右アーム16Rは、教示点RP3に達して右アーム軌道の動作を終了する。次に、左アーム16Lは、教示点LP4に達し、左アーム軌道の動作を終了する。
【0061】
図3(A)および図3(B)に示すように、教示点LP1と教示点LP2との間の距離は、教示点RP1と教示点RP2との間の距離よりも短い。同様に、教示点LP2と教示点LP3との間の距離は、教示点RP2と教示点RP3との間の距離よりも短い。従って、t1~t3aにおいて、左アーム16Lは、図5(B)に示すt1~t3よりも低速で動作する。すなわち、左アーム16Lは、t1~t3aの区間において、最大速度よりも低速で動作する。この結果、全動作の終了までの時間が長くかかり、効率が低下してしまう。
【0062】
図8は、右アーム16Rおよび左アーム16Lの逐次実行の一例を示すフロー図である。
【0063】
図8に示すように、右アーム16Rおよび左アーム16Lは、教示点毎に、動作開始および動作終了のタイミングを同期させるように逐次動作する。
【0064】
これに対して、第1実施形態では、図6に示すように、腰軸の角度が略一致する場合に、複数のアームを同期させることなく並列動作させる。これにより、待機時間を低減させ、また、アームの低速動作を抑制することにより、作業効率を向上させることができる。
【0065】
尚、アームの数は、2つに限られず、3つ以上設けられてもよい。この場合、例えば、第1アームを複数のアームとし、または、第2アームを複数のアームとすればよい。
【0066】
また、腰軸は、旋回軸および傾動軸に限られず、胴体14を腰部12に対して並行移動させる軸であってもよい。
【0067】
本実施形態によるロボットシステム1の少なくとも一部は、ハードウェアで構成してもよいし、ソフトウェアで構成してもよい。ソフトウェアで構成する場合には、ロボットシステム1の少なくとも一部の機能を実現するプログラムをフレキシブルディスクやCD-ROM等の記録媒体に収納し、コンピュータに読み込ませて実行させてもよい。記録媒体は、磁気ディスクや光ディスク等の着脱可能なものに限定されず、ハードディスク装置やメモリなどの固定型の記録媒体でもよい。また、ロボットシステム1の少なくとも一部の機能を実現するプログラムを、インターネット等の通信回線(無線通信も含む)を介して頒布してもよい。さらに、同プログラムを暗号化したり、変調をかけたり、圧縮した状態で、インターネット等の有線回線や無線回線を介して、あるいは記録媒体に収納して頒布してもよい。
【0068】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれると同様に、特許請求の範囲に記載された発明とその均等の範囲に含まれるものである。
【符号の説明】
【0069】
1 ロボットシステム、10 ロボット、12 腰部、14 胴体、16R 右アーム、16L 左アーム、71 記憶部、72 制御部、JB1 旋回軸、JB2 傾動軸、RP0~RP3 教示点、LP0~LP4 教示点
図1
図2
図3
図4
図5
図6
図7
図8