(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024092449
(43)【公開日】2024-07-08
(54)【発明の名称】ロボットシステム、ロボット制御方法、およびプログラム
(51)【国際特許分類】
B25J 19/06 20060101AFI20240701BHJP
【FI】
B25J19/06
【審査請求】未請求
【請求項の数】18
【出願形態】OL
(21)【出願番号】P 2022208372
(22)【出願日】2022-12-26
(71)【出願人】
【識別番号】306022513
【氏名又は名称】日鉄エンジニアリング株式会社
(74)【代理人】
【識別番号】100149548
【弁理士】
【氏名又は名称】松沼 泰史
(74)【代理人】
【識別番号】100140774
【弁理士】
【氏名又は名称】大浪 一徳
(74)【代理人】
【識別番号】100134359
【弁理士】
【氏名又は名称】勝俣 智夫
(74)【代理人】
【識別番号】100188592
【弁理士】
【氏名又は名称】山口 洋
(74)【代理人】
【識別番号】100217249
【弁理士】
【氏名又は名称】堀田 耕一郎
(74)【代理人】
【識別番号】100221279
【弁理士】
【氏名又は名称】山口 健吾
(74)【代理人】
【識別番号】100207686
【弁理士】
【氏名又は名称】飯田 恭宏
(74)【代理人】
【識別番号】100224812
【弁理士】
【氏名又は名称】井口 翔太
(72)【発明者】
【氏名】村上 健太
(72)【発明者】
【氏名】川口 秀喜
(72)【発明者】
【氏名】中尾 泰三
【テーマコード(参考)】
3C707
【Fターム(参考)】
3C707BS12
3C707JU12
3C707MS01
3C707MS08
3C707MS14
3C707MS15
(57)【要約】
【課題】作業効率の低下を防止しつつ、ロボットに対する負荷モーメントが許容モーメントを超えることを防止すること。
【解決手段】本開示に係るロボットシステムは、所定の軸であるX軸に沿って移動可能であり且つX軸に直交する軸であるY軸の回りを回転可能なエンドエフェクターE、を有するロボット、を備えるロボットシステムであって、エンドエフェクターEがY軸の回りを回転可能な範囲である第1範囲を変更する第1変更手段、を備え、第1変更手段は、エンドエフェクターEがX軸に沿って基準位置から移動するに連れ、第1範囲のうち、エンドエフェクターEがX軸に沿って移動する方向であるX軸移動方向の側の第1範囲を狭くする、ことを特徴とする。
【選択図】
図3
【特許請求の範囲】
【請求項1】
所定の軸であるX軸に沿って移動可能であり且つ前記X軸に直交する軸であるY軸の回りを回転可能な可動部、を有するロボット、を備えるロボットシステムであって、
前記可動部が前記Y軸の回りを回転可能な範囲である第1範囲を変更する第1変更手段、
を備え、
前記第1変更手段は、前記可動部が前記X軸に沿って基準位置から移動するに連れ、前記第1範囲のうち、前記可動部が前記X軸に沿って移動する方向であるX軸移動方向の側の前記第1範囲を狭くする、
ことを特徴とするロボットシステム。
【請求項2】
前記第1変更手段は、前記可動部が前記X軸に沿って前記基準位置から移動するに連れ、前記第1範囲のうち、前記X軸移動方向の反対方向の側の前記第1範囲を広げる、
ことを特徴とする請求項1に記載のロボットシステム。
【請求項3】
第2変更手段、
を更に備え、
前記可動部は、前記Y軸に沿って移動可能であり且つ前記X軸の回りを回転可能であり、
前記第2変更手段は、前記可動部が前記X軸の回りを回転可能な範囲である第2範囲を変更し、
前記第2変更手段は、前記可動部が前記Y軸に沿って前記基準位置から移動するに連れ、前記第2範囲のうち、前記可動部が前記Y軸に沿って移動する方向であるY軸移動方向の側の前記第2範囲を狭くする、
ことを特徴とする請求項2に記載のロボットシステム。
【請求項4】
前記第2変更手段は、前記可動部が前記Y軸に沿って前記基準位置から移動するに連れ、前記第2範囲のうち、前記Y軸移動方向の反対方向の側の前記第2範囲を広げる、
ことを特徴とする請求項3に記載のロボットシステム。
【請求項5】
前記Y軸移動方向の先には、物体が存在し、
前記Y軸に沿う直線上の位置であって前記Y軸移動方向の側の前記第2範囲を前記第2変更手段が狭くし始める位置と、前記X軸及び前記Y軸が交わる点である原点と、の距離は、前記X軸に沿う直線上の位置であって前記X軸移動方向の側の前記第1範囲を前記第1変更手段が狭くし始める位置と、前記原点と、の距離より、短い、
ことを特徴とする請求項3に記載のロボットシステム。
【請求項6】
前記Y軸移動方向の先には、物体が存在し、
前記第2範囲の大きさは、前記可動部の移動であって前記Y軸に沿う移動に応じ、変化する、
ことを特徴とする請求項3に記載のロボットシステム。
【請求項7】
前記可動部の姿勢が前記第1範囲の端部を含む所定範囲に含まれる場合に、前記第1範囲の前記端部に向けて、前記可動部が前記X軸に沿って移動する移動速度、又は、前記可動部が前記Y軸の回りを回転する回転速度が、基準速度よりも遅くなるよう、前記可動部が前記X軸に沿って移動する移動速度、又は、前記可動部が前記Y軸の回りを回転する回転速度を変更する、速度変更手段、をさらに備える、
ことを特徴とする請求項1乃至6のいずれか一項に記載のロボットシステム。
【請求項8】
前記可動部が前記X軸に沿って移動する速さ、又は、前記可動部が前記Y軸の回りを回転する速さは、前記第1変更手段が前記X軸移動方向の側の前記第1範囲を狭くするに連れ、遅くなる、
ことを特徴とする請求項1乃至6のいずれか一項に記載のロボットシステム。
【請求項9】
前記X軸移動方向の側の前記第1範囲であって前記第1変更手段により狭くされた前記第1範囲をユーザに通知する第1通知手段、
を更に備えることを特徴とする請求項1乃至6のいずれか一項に記載のロボットシステム。
【請求項10】
前記X軸移動方向の側の前記第1範囲を前記第1変更手段が狭くしたことをユーザに通知する第2通知手段、
を更に備えることを特徴とする請求項1乃至6のいずれか一項に記載のロボットシステム。
【請求項11】
前記X軸移動方向の側の前記第1範囲の端部であって前記第1変更手段により狭くされた前記第1範囲の端部をユーザに通知する第3通知手段、
を更に備えることを特徴とする請求項1乃至6のいずれか一項に記載のロボットシステム。
【請求項12】
前記X軸に沿う直線上の位置を示す位置情報と、前記X軸移動方向の側の前記第1範囲を前記第1変更手段が狭くする大きさを示す大きさ情報と、を対応付けて記憶部に記憶させる記憶制御手段、
を更に備え、
前記第1変更手段は、前記記憶部に前記対応付けて記憶される情報に基づき、前記可動部が前記X軸に沿って移動するに連れ、前記X軸移動方向の側の前記第1範囲を狭くする、
ことを特徴とする請求項1乃至6のいずれか一項に記載のロボットシステム。
【請求項13】
前記位置情報と前記大きさ情報とをユーザから取得する取得手段、
を更に備え、
前記記憶部に前記対応付けて記憶される前記位置情報及び前記大きさ情報は、前記取得手段により取得される、
ことを特徴とする請求項12に記載のロボットシステム。
【請求項14】
前記可動部は、ユーザによって操作される操作装置からの指令に基づき、制御される、
ことを特徴とする請求項1乃至6のいずれか一項に記載のロボットシステム。
【請求項15】
前記第1変更手段が前記第1範囲を狭くする程度を、前記ロボットの許容モーメントに基づき、算出する算出手段、
を更に備えることを特徴とする請求項1乃至6のいずれか一項に記載のロボットシステム。
【請求項16】
前記可動部が前記X軸に沿って移動可能な範囲であるX軸移動範囲を設定する設定手段、
を更に備え、
前記設定手段が設定する前記X軸移動範囲は、前記第1変更手段が前記第1範囲を広げるに連れ、狭くなる、
ことを特徴とする請求項2乃至6のいずれか一項に記載のロボットシステム。
【請求項17】
所定の軸であるX軸に沿って移動可能であり且つ前記X軸に直交する軸であるY軸の回りを回転可能な可動部、を有するロボット、を制御するロボットシステムが実行するロボット制御方法であって、
前記可動部が前記Y軸の回りを回転可能な範囲である第1範囲を変更する第1変更ステップ、
を備え、
前記第1変更ステップでは、前記可動部が前記X軸に沿って基準位置から移動するに連れ、前記第1範囲のうち、前記可動部が前記移動する方向であるX軸移動方向の側の前記第1範囲を狭くする、
ことを特徴とするロボット制御方法。
【請求項18】
請求項1に記載のロボットシステムとしてコンピュータを機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ロボットシステム、ロボット制御方法、およびプログラムに関する。
【背景技術】
【0002】
人の安全性、作業の効率改善を目的に、人の作業をロボットに代替させる技術開発が行われている。ロボットにより作業を代替する方法として、人が遠隔でロボットを操作することによってロボットに作業を行わせる方法、若しくは、自動でロボットの操作を行う方法が考えられる。ロボットは、対象物に対して所定の作業を行うエンドエフェクターと、エンドエフェクターを移動および回転させるマニピュレーターと、を有するアームを備える。
【0003】
ロボットには、アーム(エンドエフェクター)による負荷モーメントが発生する。ロボットに対する負荷モーメントが許容モーメントを超えた場合、ロボットはエラー停止し、復旧が煩雑になる。特許文献1のロボットシステムでは、エンドエフェクターに、エンドエフェクターの傾斜角度を検出する傾斜センサが取り付けられている。傾斜センサが検出した傾斜角度が閾値を超えた際、ロボットに対する負荷モーメントが許容モーメントを超えることを示す警告信号が出力されるとともに、マニピュレーターが停止される。
【先行技術文献】
【特許文献】
【0004】
【発明の概要】
【発明が解決しようとする課題】
【0005】
特許文献1では、ロボットに対する負荷モーメントが許容モーメントを超えることを防止するために、エンドエフェクターの傾斜(すなわち、エンドエフェクターの回転可能な範囲)を一意に制限する。この場合、ロボットの支持台の近傍など、ロボットに対する負荷モーメントが許容モーメントを超える可能性が低い作業エリアでの作業時にも、エンドエフェクターの回転が制限されてしまうため、作業効率が低下する可能性がある。また、ロボットに対する負荷モーメントが許容モーメントを超えることを防止するために、エンドエフェクターの移動範囲を一意に制限することも考えられる。しかしながら、この場合、ロボットの作業エリアが狭くなり、作業効率が低下する可能性がある。
【0006】
本発明は、前述した事情に鑑みてなされたものであって、作業効率の低下を防止しつつ、ロボットに対する負荷モーメントが許容モーメントを超えることを防止することが可能なロボットシステム、ロボット制御方法、およびプログラムを提供することを目的とする。
【課題を解決するための手段】
【0007】
<1>本発明の一態様に係るロボットシステムは、所定の軸であるX軸に沿って移動可能であり且つ前記X軸に直交する軸であるY軸の回りを回転可能な可動部、を有するロボット、を備えるロボットシステムであって、前記可動部が前記Y軸の回りを回転可能な範囲である第1範囲を変更する第1変更手段、を備え、前記第1変更手段は、前記可動部が前記X軸に沿って基準位置から移動するに連れ、前記第1範囲のうち、前記可動部が前記X軸に沿って移動する方向であるX軸移動方向の側の前記第1範囲を狭くする、ことを特徴とする。
【0008】
ロボットには、可動部による負荷モーメントが発生する。可動部がX軸に沿って基準位置から移動するに連れ、ロボットに対する負荷モーメントは大きくなる。また、可動部が基準位置から離れる方向に傾いているほど、ロボットに対する負荷モーメントは大きくなる。第1変更手段は、可動部がX軸に沿って基準位置から移動するに連れ、第1範囲のうち、可動部が移動する方向の側(可動部が基準位置から離れる方向の側)の第1範囲を狭くする。これにより、ロボットに対する負荷モーメントが許容モーメントを超えることを防止できる。また、第1変更手段は、可動部のX軸方向における位置に応じて、第1範囲を変更する。したがって、可動部の移動範囲を一意に制限したり、可動部が回転可能な範囲を一意に制限したりする必要がないため、作業効率の低下を防止することができる。以上より、作業効率の低下を防止しつつ、ロボットに対する負荷モーメントが許容モーメントを超えることを防止できる。
【0009】
<2>上記<1>に係るロボットシステムでは、前記第1変更手段は、前記可動部が前記X軸に沿って前記基準位置から移動するに連れ、前記第1範囲のうち、前記X軸移動方向の反対方向の側の前記第1範囲を広げる、構成を採用してもよい。
【0010】
この場合、可動部がY軸の回りを回転可能な範囲を広げることができるため、作業効率を向上させることができる。
【0011】
<3>上記<1>または<2>に係るロボットシステムでは、第2変更手段、を更に備え、前記可動部は、前記Y軸に沿って移動可能であり且つ前記X軸の回りを回転可能であり、前記第2変更手段は、前記可動部が前記X軸の回りを回転可能な範囲である第2範囲を変更し、前記第2変更手段は、前記可動部が前記Y軸に沿って前記基準位置から移動するに連れ、前記第2範囲のうち、前記可動部が前記Y軸に沿って移動する方向であるY軸移動方向の側の前記第2範囲を狭くする、構成を採用してもよい。
【0012】
第2変更手段は、可動部がY軸に沿って基準位置から移動するに連れ、第2範囲のうち、可動部が移動する方向の側(可動部が基準位置から離れる方向の側)の第2範囲を狭くする。これにより、ロボットに対する負荷モーメントが許容モーメントを超えることを防止できる。また、第2変更手段は、可動部のY軸方向における位置に応じて、第2範囲を変更する。したがって、可動部の移動範囲を一意に制限したり、可動部が回転可能な範囲を一意に制限したりする必要がないため、作業効率の低下を防止することができる。以上より、作業効率の低下を防止しつつ、ロボットに対する負荷モーメントが許容モーメントを超えることを防止できる。
【0013】
<4>上記<3>に係るロボットシステムでは、前記第2変更手段は、前記可動部が前記Y軸に沿って前記基準位置から移動するに連れ、前記第2範囲のうち、前記Y軸移動方向の反対方向の側の前記第2範囲を広げる、構成を採用してもよい。
【0014】
この場合、可動部がX軸の回りを回転可能な範囲を広げることができるため、作業効率を向上させることができる。
【0015】
<5>上記<3>または<4>に係るロボットシステムでは、前記Y軸移動方向の先には、物体が存在し、前記Y軸に沿う直線上の位置であって前記Y軸移動方向の側の前記第2範囲を前記第2変更手段が狭くし始める位置と、前記X軸及び前記Y軸が交わる点である原点と、の距離は、前記X軸に沿う直線上の位置であって前記X軸移動方向の側の前記第1範囲を前記第1変更手段が狭くし始める位置と、前記原点と、の距離より、短い、構成を採用してもよい。
<6>上記<3>~<5>のいずれか一つに係るロボットシステムでは、前記Y軸移動方向の先には、物体が存在し、前記第2範囲の大きさは、前記可動部の移動であって前記Y軸に沿う移動に応じ、変化する、構成を採用してもよい。
【0016】
この場合、Y軸移動方向の先に物体が存在する場合であっても、可動部と物体との干渉を防止することができる。
【0017】
<7>上記<1>~<6>のいずれか一つに係るロボットシステムでは、前記可動部の姿勢が前記第1範囲の端部を含む所定範囲に含まれる場合に、前記第1範囲の前記端部に向けて、前記可動部が前記X軸に沿って移動する移動速度、又は、前記可動部が前記Y軸の回りを回転する回転速度が、基準速度よりも遅くなるよう、前記可動部が前記X軸に沿って移動する移動速度、又は、前記可動部が前記Y軸の回りを回転する回転速度を変更する、速度変更手段、をさらに備える、構成を採用してもよい。
【0018】
この場合、可動部の姿勢が第1範囲の端部に近づいた場合に、可動部をより細やかに制御することができる。
【0019】
<8>上記<1>~<6>のいずれか一つに係るロボットシステムでは、前記可動部が前記X軸に沿って移動する速さ、又は、前記可動部が前記Y軸の回りを回転する速さは、前記第1変更手段が前記X軸移動方向の側の前記第1範囲を狭くするに連れ、遅くなる、構成を採用してもよい。
【0020】
この場合、X軸移動方向の側の第1範囲が狭くなるに連れ、可動部をより細やかに制御することができる。
【0021】
<9>上記<1>~<8>のいずれか一つに係るロボットシステムでは、前記X軸移動方向の側の前記第1範囲であって前記第1変更手段により狭くされた前記第1範囲をユーザに通知する第1通知手段、を更に備える、構成を採用してもよい。
【0022】
この場合、X軸移動方向の側の第1範囲が狭くなっても、その範囲をユーザが容易に把握することができる。
【0023】
<10>上記<1>~<9>のいずれか一つに係るロボットシステムでは、前記X軸移動方向の側の前記第1範囲を前記第1変更手段が狭くしたことをユーザに通知する第2通知手段、を更に備える、構成を採用してもよい。
【0024】
この場合、X軸移動方向の側の第1範囲が狭くなったことを、ユーザが容易に把握することができる。
【0025】
<11>上記<1>~<10>のいずれか一つに係るロボットシステムでは、前記X軸移動方向の側の前記第1範囲の端部であって前記第1変更手段により狭くされた前記第1範囲の端部をユーザに通知する第3通知手段、を更に備える、構成を採用してもよい。
【0026】
この場合、X軸移動方向の側の第1範囲が狭くされても、その範囲の限界をユーザが容易に把握することができる。
【0027】
<12>上記<1>~<11>のいずれか一つに係るロボットシステムでは、前記X軸に沿う直線上の位置を示す位置情報と、前記X軸移動方向の側の前記第1範囲を前記第1変更手段が狭くする大きさを示す大きさ情報と、を対応付けて記憶部に記憶させる記憶制御手段、を更に備え、前記第1変更手段は、前記記憶部に前記対応付けて記憶される情報に基づき、前記可動部が前記X軸に沿って移動するに連れ、前記X軸移動方向の側の前記第1範囲を狭くする、構成を採用してもよい。
【0028】
この場合、第1変更手段が第1範囲を狭くする程度を、X軸に沿う直線上の位置に対応させて、確実かつ正確に指定することができる。
【0029】
<13>上記<12>に係るロボットシステムでは、前記位置情報と前記大きさ情報とをユーザから取得する取得手段、を更に備え、前記記憶部に前記対応付けて記憶される前記位置情報及び前記大きさ情報は、前記取得手段により取得される、構成を採用してもよい。
【0030】
この場合、上記の位置情報および大きさ情報を、ユーザが容易に設定することができる。
【0031】
<14>上記<1>~<13>のいずれか一つに係るロボットシステムでは、前記可動部は、ユーザによって操作される操作装置からの指令に基づき、制御される、構成を採用してもよい。
【0032】
この場合、ユーザによって操作される操作装置からの指令に基づき、可動部を確実に動作させることができる。
【0033】
<15>上記<1>~<14>のいずれか一つに係るロボットシステムでは、前記第1変更手段が前記第1範囲を狭くする程度を、前記ロボットの許容モーメントに基づき、算出する算出手段、を更に備える、構成を採用してもよい。
【0034】
この場合、ロボットの許容モーメントに応じて、可動部が移動する方向の側の第1範囲を狭くすることができる。したがって、ロボットに対する負荷モーメントが許容モーメントを超えることをより確実に防止できる。
【0035】
<16>上記<1>~<15>のいずれか一つに係るロボットシステムでは、前記可動部が前記X軸に沿って移動可能な範囲であるX軸移動範囲を設定する設定手段、を更に備え、前記設定手段が設定する前記X軸移動範囲は、前記第1変更手段が前記第1範囲を広げるに連れ、狭くなる、構成を採用してもよい。
【0036】
この場合、ロボットに対する負荷モーメントが許容モーメントを超えることを防止しつつ、可動部がY軸の回りに回転可能な範囲を広げることができる。したがって、可動部の姿勢を大きく動かせるようになり、作業効率を向上させることができる。
【0037】
<17>本発明の一態様に係るロボット制御方法は、所定の軸であるX軸に沿って移動可能であり且つ前記X軸に直交する軸であるY軸の回りを回転可能な可動部、を有するロボット、を制御するロボットシステムが実行するロボット制御方法であって、前記可動部が前記Y軸の回りを回転可能な範囲である第1範囲を変更する第1変更ステップ、を備え、前記第1変更ステップでは、前記可動部が前記X軸に沿って基準位置から移動するに連れ、前記第1範囲のうち、前記可動部が前記移動する方向であるX軸移動方向の側の前記第1範囲を狭くする、ことを特徴とする。
【0038】
<18>本発明の一態様に係るプログラムは、上記ロボットシステムとしてコンピュータを機能させるためのプログラムである。
【発明の効果】
【0039】
本発明によれば、作業効率の低下を防止しつつ、ロボットに対する負荷モーメントが許容モーメントを超えることを防止することができる。
【図面の簡単な説明】
【0040】
【
図1】本発明の実施形態に係るロボット制御システムを示す図である。
【
図2】本実施形態に係るロボットシステムに設定される座標系の一例を示す図である。
【
図3】本実施形態に係るロボットシステムにおける第1範囲を説明するための図である。
【
図4】本実施形態に係るロボットシステムにおける第2範囲を説明するための図である。
【
図5】本実施形態に係る制御装置のシステムブロック図である。
【
図6】本実施形態に係る制御装置の制御部のシステムブロック図である。
【
図7】本実施形態に係るロボットシステムにおいて、入力部に入力される位置情報および第1範囲情報の一例を示す図である。
【
図8】本実施形態に係るロボットシステムにおいて、入力部に入力される位置情報および第2範囲情報の一例を示す図である。
【
図9】本実施形態に係るロボットシステムにおいて、第1範囲算出部が作成する第1対応情報の一例を示すグラフである。
【
図10】本実施形態に係るロボットシステムにおいて、第2範囲算出部が作成する第2対応情報の一例を示すグラフである。
【
図11】本実施形態に係るロボットシステムにおいて、速度変更部によるエンドエフェクターの速度の変更について説明する図である。
【
図12】本実施形態に係る制御装置が実行する処理の流れの一例を示すフローチャートである。
【
図13】本実施形態に係る制御装置が実行する処理の流れの一例を示すフローチャートである。
【
図14】本実施形態に係る制御装置が実行する処理の流れの一例を示すフローチャートである。
【
図15】本実施形態に係る制御装置が実行する処理の流れの一例を示すフローチャートである。
【
図16】本実施形態の変形例に係る制御装置の制御部のシステムブロック図である。
【発明を実施するための形態】
【0041】
次に、本実施形態のロボットシステム、およびロボット制御方法を、図面を参照しつつ説明する。以下で説明する実施形態は一例に過ぎず、本発明が適用される実施形態は、以下の実施形態に限られない。
なお、実施形態を説明するための全図において、同一の機能を有するものは同一符号を用い、繰り返しの説明は省略する。
また、本願でいう「XXに基づいて」とは、「少なくともXXに基づく」ことを意味し、XXに加えて別の要素に基づく場合も含む。また、「XXに基づいて」とは、XXを直接に用いる場合に限定されず、XXに対して演算や加工が行われたものに基づく場合も含む。「XX」は、任意の要素(例えば、任意の情報)である。
【0042】
図1は、本発明の一実施形態に係るロボットシステム1を示す図である。
本実施形態に係るロボットシステム1は、ロボット2と、ロボット2を制御する制御システム100と、を備える。制御システム100は、制御装置110と、操作装置120と、を備える。操作装置120は、ロボット2を遠隔操作するために用いられる。制御装置110は、ユーザが操作装置120を操作することによる操作指令に基づき、ロボット2を制御する。
【0043】
ロボット2は、アームAと、アームAを支持する支持台4と、を備える。ロボット2は、1本のアームAを備える単腕ロボットであってもよい。ロボット2は、2本以上のアーム(例えば、2本以上のアームA)を備える複腕ロボットであってもよい。
【0044】
アームAは、エンドエフェクターE(可動部)と、マニピュレーターMと、を備える。エンドエフェクターEの一例は、空気の吸引や磁力、治具等によって物体を持ち上げることが可能なエンドエフェクター、物体を把持可能な指部を備えるエンドエフェクターである。エンドエフェクターEは、例えばケーブル(図示なし)によって制御装置110と通信可能に接続されている。これにより、エンドエフェクターEは、制御装置110から取得される制御信号に基づいて動作を行う。なお、ケーブルを介した有線通信は、例えば、イーサネット(登録商標)やUSB等の規格によって行われる。また、エンドエフェクターEは、Wi-Fi(登録商標)等の通信規格により行われる無線通信によって制御装置110と接続される構成であってもよい。
【0045】
マニピュレーターMは、エンドエフェクターEを回転させる関節を含む複数の関節を備える。また、複数の関節はそれぞれ、アクチュエーター(図示なし)を備える。マニピュレーターMを備えるアームAの一例は、6軸垂直多関節型のアームである。アームAの一例は、支持台4と、エンドエフェクターEと、マニピュレーターMと、マニピュレーターMが備える複数の関節それぞれのアクチュエーターとによる連携した動作によって6軸の自由度の動作を行う。なお、アームAの一例は、5軸以下の自由度で動作する構成であってもよく、7軸以上の自由度で動作する構成であってもよい。
【0046】
マニピュレーターMが備える複数の関節に備えられたアクチュエーターはそれぞれ、ケーブル(図示なし)によって制御装置110と通信可能に接続されている。これにより、アクチュエーターは、制御装置110から取得される制御信号に基づいて、マニピュレーターMを動作させる。なお、ケーブルを介した有線通信は、例えば、イーサネット(登録商標)やUSB等の規格によって行われる。また、マニピュレーターMが備える複数のアクチュエーターのうちの一部又は全部は、Wi-Fi(登録商標)等の通信規格により行われる無線通信によって制御装置110と接続される構成であってもよい。
【0047】
図2を参照して、本実施形態に係るロボットシステム1に設定される座標系の一例を説明する。本実施形態では、ロボット2の支持台4を基準(原点)とし、鉛直方向に延びるZ軸と、Z軸に直交するX軸及びY軸で表される直交座標系であるロボット座標系が設定される。また、本実施形態において、X軸に沿う一方向を、+X方向という。また、+X方向と反対の方向を、-X方向という。Y軸に沿う一方向を、+Y方向という。また、+Y方向と反対の方向を、-Y方向という。Z軸に沿う一方向を、+Z方向という。また、+Z方向と反対の方向を、-Z方向という。なお、ロボットシステム1に設定される座標系として、例えば、エンドエフェクターEにおける所定位置(例えば、エンドエフェクターEの先端e1)を基準(原点)とする直交座標系であるツール座標系や、ロボット2が所定の作業を行う対象物における所定位置を基準(原点)とする直交座標系であるワーク座標系が用いられてもよい。
【0048】
マニピュレーターMの動作により、エンドエフェクターEの先端e1は、X軸、Y軸、およびZ軸に沿って移動可能である。また、マニピュレーターMの動作により、エンドエフェクターEは、エンドエフェクターEの先端e1を中心として、X軸回り、Y軸回り、およびZ軸回りに回転可能である。以下、ロボット座標系におけるエンドエフェクターEの先端e1の位置を、エンドエフェクターEの位置という。エンドエフェクターEの先端e1を中心とした、ロボット座標系の各軸回りの回転によるエンドエフェクターEの傾きを、エンドエフェクターEの姿勢という。
【0049】
操作装置120は、ユーザのロボット2に対する操作を受け付ける入力機器である。操作装置120は、受け付けた操作に基づいて、エンドエフェクターEの位置及び姿勢の変更を指示するための変更指示信号を作成し、制御装置110へ出力する。例えば、操作装置120は、操作装置120に作用した力やモーメント(トルク)を検出する力検出部を備える操作レバーである。力検出部は、例えば、力覚センサである。力検出部は、検出した力やモーメントの大きさを示す値を出力値として含む力検出情報を、変更指示信号として、制御装置110へ送信する。
【0050】
操作装置120は、ケーブル(図示なし)によって制御装置110と通信可能に接続されている。ケーブルを介した有線通信は、例えば、イーサネット(登録商標)やUSB等の規格によって行われる。また、操作装置120と制御装置110とは、Wi-Fi(登録商標)等の通信規格により行われる無線通信によって接続される構成であってもよい。
【0051】
操作装置120は、ロボット2を操作するための制御モードとして、姿勢変更モードと、位置変更モードと、位置姿勢変更モードと、を備えていてもよい。姿勢変更モードは、エンドエフェクターEの姿勢の変更を指示するための制御モードである。位置変更モードは、エンドエフェクターEの位置の変更を指示するための制御モードである。位置姿勢変更モードは、エンドエフェクターEの位置及び姿勢の両方の変更を指示するための制御モードである。操作装置120において、上述のいずれかの制御モードが選択されている間は、例えば、その他の制御モードは機能しないように制御されてもよい。
【0052】
制御装置110は、操作装置120から出力される変更指示信号に基づいて、エンドエフェクターEの位置及び姿勢のいずれか一方又は両方を変更させるための制御信号を作成する。制御装置110は、作成した制御信号を、ロボット2へ出力する。制御装置110は、ロボット2に制御信号を送信することにより、ロボット2を動作させる。これにより、制御装置110は、ロボット2に所定の作業を行わせる。なお、制御装置110は、ロボット2の外部に設置される構成に代えて、ロボット2に内蔵される構成であってもよい。制御装置110の詳細については後述する。
【0053】
<ロボット2が行う作業について>
以下、本実施形態に係るロボットシステム1においてロボット2が行う所定の作業の概要について説明する。ロボット2は、エンドエフェクターEによって対象物(図示なし)に所定の作業を行う。なお、ロボット2は、予め対象物を把持していてもよいし、所定の給材領域に配置された対象物を把持する構成であってもよい。対象物は、例えば、産業用の部品や部材、製品等である。
【0054】
ロボット2が対象物に所定の作業を行う際に、制御装置110は、ロボット2からエンドエフェクターEの現在座標データを読み出す。座標データは、位置情報と、姿勢情報とが対応付けられた情報である。位置情報は、エンドエフェクターEの位置を示す情報を含む。姿勢情報は、エンドエフェクターEの姿勢を示す情報を含む。エンドエフェクターEの姿勢が変更されることによってエンドエフェクターEの所定点は、エンドエフェクターEの先端e1を中心とする円弧を描く。制御装置110は、読み出した現在座標データに対し、操作装置120から受け取った変更指示信号に基づき、移動座標データを生成する。制御装置110は、生成された移動座標データに基づいて位置制御によりアームAを動かすことによって、エンドエフェクターEの位置及び姿勢を変化させる。位置制御は、移動座標データに含まれる位置情報が示す位置にエンドエフェクターEの位置を一致させるとともに、移動座標データに含まれる姿勢情報が示す姿勢にエンドエフェクターEの姿勢を一致させるように、アームAを移動させる制御である。
【0055】
<ロボット2に対する負荷モーメントについて>
ここで、ロボット2には、アームA(エンドエフェクターE)による負荷モーメントが発生する。負荷モーメントは、エンドエフェクターEの姿勢により変動する。また、負荷モーメントは、エンドエフェクターEの位置により変動する。例えば、エンドエフェクターEの姿勢が同一であるとき、エンドエフェクターEの先端e1が支持台4から離間しているほど、ロボット2に対する負荷モーメントは大きくなる。エンドエフェクターEの位置が同一であるとき、エンドエフェクターEが、エンドエフェクターEの先端e1を中心として、支持台4から離れる方向に傾いているほど、ロボット2に対する負荷モーメントは大きくなる。ロボット2に対する負荷モーメントが許容モーメントを超えた場合、ロボット2はエラー停止する。
ロボット2に対する負荷モーメントが許容モーメントを超えることを防止するために、エンドエフェクターEの移動範囲を一意に制限したり、エンドエフェクターEが回転可能な範囲(すなわち、エンドエフェクターEの姿勢)を一意に制限したりすることが考えられる。しかしながら、この場合、作業効率が低下する可能性がある。
【0056】
本実施形態では、エンドエフェクターEの位置に応じて、エンドエフェクターEが回転可能な範囲(すなわち、エンドエフェクターEの姿勢の限界値)を変更する。具体的には、エンドエフェクターEの先端e1のX軸方向における位置(以下、エンドエフェクターEのX軸位置とも称する)に応じて、エンドエフェクターEがY軸回りを回転可能な範囲である第1範囲を変更する。エンドエフェクターEの先端e1のY軸方向における位置(以下、エンドエフェクターEのY軸位置とも称する)に応じて、エンドエフェクターEがX軸回りを回転可能な範囲である第2範囲を変更する。
【0057】
図3を参照して、第1範囲の変更の一例について説明する。
図3(a)は、Y軸方向から見たときの(すなわち、XZ平面における)、エンドエフェクターEがY軸回りを回転可能な範囲を示した図であり、
図3(b)は、
図3(a)の斜視図である。なお、制御装置110によるロボット2の制御に際し、エンドエフェクターEの移動範囲として、エンドエフェクターEの先端e1がX軸に沿って移動可能な範囲であるX軸移動範囲と、エンドエフェクターEの先端e1がY軸に沿って移動可能な範囲であるY軸移動範囲と、が設定されている。X軸移動範囲およびY軸移動範囲は、エンドエフェクターEの種類などに応じて設定される。
図3では、ロボット座標系におけるX座標が0である位置が、X軸位置が0である位置に対応する。+X方向におけるエンドエフェクターEのX軸位置は、X軸移動範囲の+X方向における限界位置(すなわち、X軸移動範囲の上限位置)にエンドエフェクターEの先端e1が位置するときのX軸位置を100とした相対値として示される。-X方向におけるX軸位置は、X軸移動範囲の-X方向における限界位置(すなわち、X軸移動範囲の下限位置)にエンドエフェクターEの先端e1が位置するときのX軸位置を-100とした相対値として示される。
【0058】
また、以下の説明では、エンドエフェクターEが、エンドエフェクターEの先端e1を中心として、Z軸方向に沿った基準線に対して、Y軸回りに-X方向側へ回転すること(すなわち、エンドエフェクターEが
図3に実線で示される姿勢となること)を、エンドエフェクターEが-X方向側へ回転するという。エンドエフェクターEが、エンドエフェクターEの先端e1を中心として、Z軸方向に沿った基準線に対して、Y軸回りに+X方向側へ回転すること(すなわち、エンドエフェクターEが
図3に破線で示される姿勢となること)を、エンドエフェクターEが+X方向側へ回転するという。
同様に、エンドエフェクターEが、エンドエフェクターEの先端e1を中心として、Z軸方向に沿った基準線に対して、X軸回りに-Y方向側へ回転することを、エンドエフェクターEが-Y方向側へ回転するという。エンドエフェクターEが、エンドエフェクターEの先端e1を中心として、Z軸方向に沿った基準線に対して、X軸回りに+Y方向側へ回転することを、エンドエフェクターEが+Y方向側へ回転するという。
【0059】
図3に示されるように、エンドエフェクターEが、X軸に沿って原点(基準位置)から+X方向に移動するに連れ、第1範囲のうち、エンドエフェクターEの+X方向側への回転可能な範囲(以下、+X方向の側の第1範囲ともいう)が狭くなり、エンドエフェクターEの-X方向側への回転可能な範囲(以下、-X方向の側の第1範囲ともいう)が広がる。エンドエフェクターEが、X軸に沿って原点(基準位置)から-X方向に移動するに連れ、第1範囲のうち、エンドエフェクターEの-X方向側の回転可能な範囲(-X方向の側の第1範囲)が狭くなり、エンドエフェクターEの+X方向側の回転可能な範囲(+X方向の側の第1範囲)が広がる。このように、エンドエフェクターEがX軸に沿って原点(基準位置)から移動するに連れ、第1範囲のうち、エンドエフェクターEが移動する方向の側へのエンドエフェクターEの回転可能な範囲(以下、エンドエフェクターEが移動する方向の側の第1範囲ともいう)を狭くすることで、作業効率の低下を防止しつつ、ロボット2に対する負荷モーメントが許容モーメントを超えることを防止することができる。
このような制御を実現するための具体的な構成については、制御装置110の説明とともに後述する。
【0060】
なお、第2範囲についても、上述の第1範囲と同様に変更される。すなわち、エンドエフェクターEが、Y軸に沿って原点(基準位置)から+Y方向に移動するに連れ、第2範囲のうち、エンドエフェクターEの+Y方向側への回転可能な範囲(以下、+Y方向の側の第2範囲ともいう)が狭くなり、エンドエフェクターEの-Y方向側への回転可能な範囲(以下、-Y方向の側の第2範囲ともいう)が広がる。エンドエフェクターEが、Y軸に沿って原点(基準位置)から-Y方向に移動するに連れ、第2範囲のうち、エンドエフェクターEの-Y方向側の回転可能な範囲(-Y方向の側の第2範囲)が狭くなり、エンドエフェクターEの+Y方向側の回転可能な範囲(+Y方向の側の第2範囲)が広がる。このように、エンドエフェクターEがY軸に沿って原点(基準位置)から移動するに連れ、第2範囲のうち、エンドエフェクターEが移動する方向の側へのエンドエフェクターEの回転可能な範囲(以下、エンドエフェクターEが移動する方向の側の第2範囲ともいう)を狭くすることで、作業効率の低下を防止しつつ、ロボット2に対する負荷モーメントが許容モーメントを超えることを防止することができる。
【0061】
<障害物について>
ロボット2による作業領域に障害物P(物体)が存在する場合がある。この場合、エンドエフェクターEの移動範囲を障害物Pより手前に設定した場合であっても、エンドエフェクターEの姿勢によっては、エンドエフェクターEが障害物Pと干渉してしまう可能性がある。エンドエフェクターEの姿勢の変更を考慮してエンドエフェクターEの移動範囲を制限すると、ロボット2の作業エリアが狭くなり、作業効率が低下する可能性がある。
【0062】
本実施形態では、エンドエフェクターEと障害物Pとの距離に応じて、エンドエフェクターEが回転可能な範囲(すなわち、エンドエフェクターEの姿勢の限界値)を変更する。
以下、
図4を参照して、障害物Pが+Y方向に存在する場合における、第2範囲の変更の一例について説明する。
図4(a)は、X軸方向から見たときの(すなわち、YZ平面における)、エンドエフェクターEがX軸回りを回転可能な範囲を示した図であり、
図4(b)は、
図4(a)の斜視図である。ロボット座標系におけるY座標が0である位置が、Y軸位置が0である位置に対応する。+Y方向におけるエンドエフェクターEのY軸位置は、Y軸移動範囲の+Y方向における限界位置(すなわち、Y軸移動範囲の上限位置)にエンドエフェクターEの先端e1が位置するときのY軸位置を100とした相対値として示される。-Y方向におけるY軸位置は、Y軸移動範囲の-Y方向における限界位置(すなわち、Y軸移動範囲の下限位置)にエンドエフェクターEの先端e1が位置するときのX軸位置を-100とした相対値として示される。
【0063】
まず、
図4の例においても、
図3の例と同様に、ロボット2に対するモーメントを考慮して、第2範囲が変更されている。すなわち、エンドエフェクターEがY軸に沿って原点(基準位置)から移動するに連れ、第2範囲のうち、エンドエフェクターEが移動する方向の側へのエンドエフェクターEの回転可能な範囲が狭くされている。
また、障害物Pが+Y方向に存在する場合には、エンドエフェクターEが、Y軸に沿って原点(基準位置)から+Y方向に移動するに連れ、エンドエフェクターEと障害物Pとの距離が近くなる。エンドエフェクターEがY軸に沿って原点から+Y方向に移動していき、エンドエフェクターEと障害物Pとの距離が所定の閾値より小さくなったとき(
図4の例では、エンドエフェクターEのY軸位置が40になったとき)に、第2範囲のうち、+Y方向側への回転可能な範囲を狭くし始める。すなわち、障害物Pが+Y方向に存在する場合、障害物Pが存在しない場合と比べて、+Y方向側への回転可能な範囲を狭くし始める位置が、原点に近くなる。これにより、作業効率の低下を防止しつつ、エンドエフェクターEと障害物Pとの干渉を防止することができる。
このような制御を実現するための具体的な構成については、制御装置110の説明とともに後述する。
【0064】
<制御装置110について>
以下、
図5および
図6を参照して、ロボットシステム1に含まれる制御装置110について詳細に説明する。
図5は、実施形態における制御装置110のハードウェア構成の一例を示す図である。制御装置110は、バスで接続されたCPU(Central Processing Unit)等のプロセッサ111とメモリ112とを備え、プログラムを実行する。制御装置110は、プログラムの実行によって通信部131、入力部132(取得手段)、表示部133、制御部134、及び記憶部135を備える装置として機能する。
【0065】
より具体的には、制御装置110は、プロセッサ111が記憶部135に記憶されているプログラムを読み出し、読み出したプログラムをメモリ112に記憶させる。プロセッサ111が、メモリ112に記憶させたプログラムを実行することによって、制御装置110は、通信部131、入力部132、表示部133、制御部134、及び記憶部135を備える装置として機能する。
【0066】
通信部131は、通信モジュールによって実現される。通信部131は、外部の通信装置と通信する。通信部131は、例えば有線LANなどの通信方式で通信してもよい。また、通信部131は、例えば無線LAN、ブルートゥース(登録商標)又はLTE(登録商標)などの無線通信方式で通信してもよい。
通信部131は、操作装置120が出力した変更指示信号を受信する。通信部131は、ロボット2が送信した現在座標データを受信する。通信部131は、制御部134が出力した制御信号をロボット2へ送信する。
【0067】
入力部132は、マウスやキーボード、タッチパネル等の入力装置を含んで構成される。入力部132は、これらの入力装置を制御装置110に接続するインタフェースとして構成されてもよい。入力部132は、制御装置110に対する各種情報の入力を受け付ける。
例えば、入力部132には、ユーザから、X軸移動範囲を示すX軸移動範囲情報およびY軸移動範囲を示すY軸移動範囲情報が入力される。入力部132には、ユーザから、X軸位置を示す位置情報と、その位置情報が示すX軸位置にエンドエフェクターEが位置するときの第1範囲を示す第1範囲情報と、が対応付けて入力される。第1範囲情報には、第1範囲を、後述する制御部134の第1範囲変更部156が変更する(広げる、または狭くする)大きさを示す大きさ情報が含まれる。入力部132には、ユーザから、Y軸位置を示す位置情報と、その位置情報が示すY軸位置にエンドエフェクターEが位置するときの第2範囲を示す第2範囲情報と、が対応付けて入力される。第2範囲情報には、第2範囲を、後述する制御部134の第2範囲変更部157が変更する(広げる、または狭くする)大きさを示す大きさ情報が含まれる。入力部132には、ユーザから、障害物Pの位置(例えば、障害物PのY座標)を示す障害物位置情報が入力される。
【0068】
図7を参照して、入力部132に入力される、X軸位置を示す位置情報、および第1範囲を示す第1範囲情報の一例について説明する。なお、入力部132に入力される位置情報および第1範囲情報は、ロボット2の許容モーメント、エンドエフェクターEの重量、などに応じて適宜変更可能である。
図7に示されるように、ユーザは、入力部132により、エンドエフェクターEが-X方向側へ回転する場合と、エンドエフェクターEが+X方向側へ回転する場合とのそれぞれについて、X軸位置、および、そのX軸位置にエンドエフェクターEが位置するときのエンドエフェクターEのY軸回りの回転の制限角度(第1範囲)を入力する。
【0069】
制限角度について、
図3も参照して説明する。エンドエフェクターEが-X方向側へ回転する場合のエンドエフェクターEの回転の制限角度を、-X方向制限角度θ1といい、エンドエフェクターEが+X方向側へ回転する場合のエンドエフェクターEの回転の制限角度を、+X方向制限角度θ2という。XZ平面上において、エンドエフェクターEが-X方向へ傾いたときの、Z軸方向に沿った基準線とエンドエフェクターEとのなす角を、エンドエフェクターEの-X方向側への回転角という。-X方向制限角度θ1は、エンドエフェクターEの-X方向側への回転角の限界値である。XZ平面上において、エンドエフェクターEが+X方向へ傾いたときの、Z軸方向に沿った基準線とエンドエフェクターEとのなす角を、エンドエフェクターEの+X方向側への回転角という。+X方向制限角度θ2は、エンドエフェクターEの+X方向側への回転角の限界値である。第1範囲は、-X方向制限角度θ1と+X方向制限角度θ2とを合わせた範囲である。-X方向制限角度θ1は、第1範囲の-X方向側の端部に対応する。+X方向制限角度θ2は、第1範囲の+X方向側の端部に対応する。
図7においては、エンドエフェクターEが-X方向側へ回転する場合の制限角度(-X方向制限角度θ1)は正の値として示され、エンドエフェクターEが+X方向側へ回転する場合の制限角度(+X方向制限角度θ2)は負の値として示される。
【0070】
図7において、例えば、X軸位置が-80であるとき、エンドエフェクターEが-X方向側へ回転する場合の制限角度は15°であり、エンドエフェクターEが+X方向側へ回転する場合の制限角度は45°であると設定されている。すなわち、X軸位置が-80であるとき、エンドエフェクターEの-X方向側への回転は15°まで許容され、+X方向側への回転は45°まで許容されるよう設定されている。X軸位置が-100であるとき、エンドエフェクターEが-X方向側へ回転する場合の制限角度は0°であり、エンドエフェクターEが+X方向側へ回転する場合の制限角度は60°であると設定されている。すなわち、X軸位置が-100であるとき、エンドエフェクターEの-X方向側への回転は制限され、+X方向側への回転は60°まで許容されるよう設定されている。
【0071】
図8を参照して、入力部132に入力される、Y軸位置を示す位置情報、および第2範囲を示す第2範囲情報の一例について説明する。なお、入力部132に入力される位置情報および第2範囲情報は、ロボット2の許容モーメント、エンドエフェクターEの重量、障害物Pの配置、などに応じて適宜変更可能である。
図8に示されるように、ユーザは、入力部132により、エンドエフェクターEが-Y方向側へ回転する場合と、エンドエフェクターEが+Y方向側へ回転する場合とのそれぞれについて、Y軸位置、および、そのY軸位置にエンドエフェクターEが位置するときのエンドエフェクターEのX軸回りの回転の制限角度(第2範囲)を入力する。
【0072】
制限角度について、
図4も参照して説明する。エンドエフェクターEが-Y方向側へ回転する場合のエンドエフェクターEの回転の制限角度を、-Y方向制限角度θ3といい、エンドエフェクターEが+Y方向側へ回転する場合のエンドエフェクターEの回転の制限角度を、+Y方向制限角度θ4という。YZ平面上において、エンドエフェクターEが-Y方向へ傾いたときの、Z軸方向に沿った基準線とエンドエフェクターEとのなす角を、エンドエフェクターEの-Y方向側への回転角という。-Y方向制限角度θ3は、エンドエフェクターEの-Y方向側への回転角の限界値である。YZ平面上において、エンドエフェクターEが+Y方向へ傾いたときの、Z軸方向に沿った基準線とエンドエフェクターEとのなす角を、エンドエフェクターEの+Y方向側への回転角という。+Y方向制限角度θ4は、エンドエフェクターEの+Y方向側への回転角の限界値である。第2範囲は、-Y方向制限角度θ3と+Y方向制限角度θ4とを合わせた範囲である。-Y方向制限角度θ3は、第2範囲の-Y方向側の端部に対応する。+Y方向制限角度θ4は、第2範囲の+Y方向側の端部に対応する。
図8においては、エンドエフェクターEが-Y方向側へ回転する場合の制限角度(-Y方向制限角度θ3)は正の値として示され、エンドエフェクターEが+Y方向側へ回転する場合の制限角度(+Y方向制限角度θ4)は負の値として示される。
【0073】
表示部133は、各種情報を表示する。表示部133は、表示装置と、警告音出力装置と、を含んで構成される。表示装置は、例えばCRT(Cathode Ray Tube)ディスプレイや液晶ディスプレイ、有機EL(Electro-Luminescence)ディスプレイ等である。表示部133は、例えば入力部132に入力された情報を出力する。表示部133は、例えば制御部134による処理の実行の結果を表示する。
【0074】
表示部133は、第1通知部140(第1通知手段)、第2通知部141(第2通知手段)、および第3通知部142(第3通知手段)として機能する。第1通知部140、第2通知部141、および第3通知部142は、制御部134による処理の実行により第1範囲または第2範囲が変更されたとき、第1範囲または第2範囲の変更に関する情報を通知する。
具体的には、第1通知部140は、第1範囲または第2範囲が変更されると、変更された第1範囲または第2範囲をユーザに通知する。例えば、第1通知部140は、変更された第1範囲または第2範囲を表示装置に表示することで、変更された第1範囲または第2範囲をユーザに通知する。
第2通知部141は、第1範囲または第2範囲が変更されると、第1範囲または第2範囲が変更されたことを、ユーザに通知する。例えば、第2通知部141は、警告音出力装置からブザーを鳴らすことにより、第1範囲または第2範囲が変更されたことをユーザに通知する。
第3通知部142は、第1範囲または第2範囲が変更されると、変更された第1範囲または第2範囲の端部をユーザに通知する。例えば、第3通知部142は、変更された第1範囲または第2範囲の端部を表示装置に表示することで、第1範囲または第2範囲の端部をユーザに通知する。
【0075】
記憶部135は、磁気ハードディスク装置や半導体記憶装置などのコンピュータ読み出し可能な記憶媒体装置を用いて構成される。記憶部135は、制御装置110自体を含む制御システム100に関する各種情報を記憶する。記憶部135は、例えば通信部131又は入力部132を介して入力された情報を記憶する。記憶部135は、例えば制御部134による処理の実行により生じた各種情報を記憶する。
【0076】
制御部134は、制御装置110が備える各種機能部の動作を制御する。また、制御部134は、ロボット2の動作を制御する。
図6は、実施形態における制御部134の機能構成の一例を示す図である。制御部134は、ロボット姿勢情報取得部151、ロボット位置情報取得部152、障害物位置情報取得部153、第1範囲算出部154(取得手段)、第2範囲算出部155(取得手段)、第1範囲変更部156(第1変更手段)、第2範囲変更部157(第2変更手段)、速度変更部158(速度変更手段)、ロボット制御部159、通信制御部171、入力制御部172、表示制御部173、及び記憶制御部174(記憶制御手段)を備える。
【0077】
通信制御部171は、通信部131の動作を制御する。通信制御部171は、通信部131の動作を制御することで、通信部131が受信した情報を取得する。通信制御部171は、通信部131の動作を制御することで、制御部134で生じた情報を通信部131の通信先に送信させる。
入力制御部172は、入力部132の動作を制御する。入力制御部172は、入力部132の動作を制御することで入力部132に入力された情報を取得する。
表示制御部173は、表示部133の動作を制御する。表示制御部173は、表示部133の動作を制御することで、制御部134で生じた情報を表示部133に表示させる。
記憶制御部174は、各種情報を記憶部135に記録する。記憶制御部174は、例えば制御部134の動作によって生じた各種情報を記憶部135に記録する。
【0078】
ロボット姿勢情報取得部151は、通信部131が受信した現在座標データに含まれる姿勢情報を取得する。
ロボット位置情報取得部152は、通信部131が受信した現在座標データに含まれる位置情報を取得する。
障害物位置情報取得部153は、ユーザが入力部132を用いて入力した、障害物Pの位置を示す障害物位置情報を取得する。なお、障害物Pの位置を示す障害物位置情報は、例えば不図示の撮像装置やセンサによりリアルタイムで取得されてもよい。
【0079】
第1範囲算出部154は、ユーザが入力部132を用いて入力した、X軸位置を示す位置情報、および第1範囲を示す第1範囲情報を取得する。第1範囲算出部154は、X軸位置を示す位置情報と、第1範囲を示す第1範囲情報と、を対応付けた第1対応情報を作成する。第1対応情報は、例えば、
図9に示されるグラフである。具体的には、第1範囲算出部154は、
図7に示されるX軸位置および制限角度の各々を、縦軸が制限角度を示し、横軸がX軸位置を示す座標系にプロットする。第1範囲算出部154は、プロットした点の間を線形補間したグラフを作成する。作成された第1対応情報(グラフ)は、記憶部135に記憶される。
【0080】
第2範囲算出部155は、ユーザが入力部132を用いて入力した、Y軸位置を示す位置情報、および第2範囲を示す第2範囲情報を取得する。第2範囲算出部155は、Y軸位置を示す位置情報と、第2範囲を示す第2範囲情報と、を対応付けた第2対応情報を作成する。第2対応情報は、例えば、
図10に示されるグラフである。具体的には、第2範囲算出部155は、
図8に示されるY軸位置および制限角度の各々を、縦軸が制限角度を示し、横軸がY軸位置を示す座標系にプロットする。第2範囲算出部155は、プロットした点の間を線形補間したグラフを作成する。作成された第2対応情報(グラフ)は、記憶部135に記憶される。
【0081】
第1範囲変更部156は、ロボット位置情報取得部152が取得した現在座標データに含まれる位置情報と、第1範囲算出部154が作成した第1対応情報とに基づき、第1範囲を変更する。具体的には、第1範囲変更部156は、ロボット位置情報取得部152が取得した現在座標データに含まれる位置情報に基づき、エンドエフェクターEの現在のX軸位置を示す位置情報を取得する。第1範囲変更部156は、第1範囲算出部154により作成された第1対応情報を取得する。第1範囲変更部156は、第1対応情報に基づき、エンドエフェクターEの現在のX軸位置に対応した第1範囲を導出する。第1範囲変更部156は、第1範囲を、エンドエフェクターEの現在のX軸位置に対応した第1範囲に変更する。第1範囲変更部156は、変更された第1範囲を示す第1範囲変更情報を、速度変更部158およびロボット制御部159に出力する。
【0082】
図9に示されるグラフを参照して、第1範囲変更部156による第1範囲の変更について説明する。このグラフにおいて、実線は、所定のX軸位置における-X方向制限角度を示し、破線は、所定のX軸位置における+X方向制限角度を示す。また、所定のX軸位置における第1範囲は、この実線と破線との間の範囲として示される。所定のX軸位置における第1範囲の大きさは、この実線と破線との間の距離として示される。
図9に示されるように、エンドエフェクターEの-X方向側への回転について、X軸位置が40より大きくなると、エンドエフェクターEの-X方向側へ回転可能な範囲が広がり始め、X軸位置が100のときに、エンドエフェクターEの-X方向側へ回転可能な範囲が最大(60°)となる。また、X軸位置が-40より小さくなると、エンドエフェクターEの-X方向側へ回転可能な範囲が狭まり始め、X軸位置が-100のときに、エンドエフェクターEの-X方向側へ回転可能な範囲が最小(0°)となり、エンドエフェクターEの-X方向側への回転が制限される。エンドエフェクターEの+X方向側への回転について、X軸位置が40より大きくなると、エンドエフェクターEの+X方向側へ回転可能な範囲が狭まり始め、X軸位置が100のときに、エンドエフェクターEの+X方向側へ回転可能な範囲が最小(0°)となり、エンドエフェクターEの+X方向側への回転が制限される。また、X軸位置が-40より小さくなると、エンドエフェクターEの+X方向側へ回転可能な範囲が広がり始め、X軸位置が-100のときに、エンドエフェクターEの+X方向側へ回転可能な範囲が最大(60°)となる。エンドエフェクターEの-X方向側への回転可能な範囲と、エンドエフェクターEの+X方向側への回転可能な範囲とは、平行に変化していき、第1範囲の大きさは、X軸位置によらず一定(60°)となる。
【0083】
第2範囲変更部157は、ロボット位置情報取得部152が取得した現在座標データに含まれる位置情報と、第2範囲算出部155が作成した第2対応情報とに基づき、第2範囲を変更する。具体的には、第2範囲変更部157は、ロボット位置情報取得部152が取得した現在座標データに含まれる位置情報に基づき、エンドエフェクターEの現在のY軸位置を示す位置情報を取得する。第2範囲変更部157は、第2範囲算出部155により作成された第2対応情報を取得する。第2範囲変更部157は、第2対応情報に基づき、エンドエフェクターEの現在のY軸位置に対応した第2範囲を導出する。第2範囲変更部157は、第2範囲を、エンドエフェクターEの現在のY軸位置に対応した第2範囲に変更する。第2範囲変更部157は、変更された第2範囲を示す第2範囲変更情報を、速度変更部158およびロボット制御部159に出力する。
【0084】
図10に示されるグラフを参照して、第2範囲変更部157による第2範囲の変更について説明する。このグラフにおいて、実線は、所定のY軸位置における-Y方向制限角度を示し、破線は、所定のY軸位置における+Y方向制限角度を示す。また、所定のY軸位置における第2範囲は、この実線と破線との間の範囲として示される。所定のY軸位置における第2範囲の大きさは、この実線と破線との間の距離として示される。
図10に示されるように、エンドエフェクターEの-Y方向側への回転について、Y軸位置が40より大きくなると、エンドエフェクターEの-Y方向側へ回転可能な範囲が広がり始め、Y軸位置が100のときに、エンドエフェクターEの-Y方向側へ回転可能な範囲が最大(60°)となる。また、Y軸位置が-40より小さくなると、エンドエフェクターEの-Y方向側へ回転可能な範囲が狭まり始め、Y軸位置が-100のときに、エンドエフェクターEの-Y方向側へ回転可能な範囲が最小(0°)となり、エンドエフェクターEの-Y方向側への回転が制限される。ここで、上述のように、本実施形態では、障害物Pが+Y方向に存在する。これにより、エンドエフェクターEの+Y方向側への回転について、Y軸位置が40のときに、エンドエフェクターEの+Y方向側へ回転可能な範囲が15°まで瞬間的に狭まる。その後、Y軸位置が40より大きくなるに連れ、エンドエフェクターEの+Y方向側へ回転可能な範囲が15°から更に狭まっていき、Y軸位置が100のときに、エンドエフェクターEの+Y方向側へ回転可能な範囲が最小(0°)となり、エンドエフェクターEの+Y方向側への回転が制限される。すなわち、第2範囲変更部157が+Y方向側への回転可能な範囲を狭くし始める位置と、原点との距離は、第1範囲変更部156が+X方向側への回転可能な範囲を狭くし始める位置(
図9を参照)と、原点との距離よりも、短くなる。また、Y軸位置が-40より小さくなると、エンドエフェクターEの+Y方向側へ回転可能な範囲が広がり始め、Y軸位置が-100のときに、エンドエフェクターEの+Y方向側へ回転可能な範囲が最大(60°)となる。
図10に示されるように、第2範囲の大きさは、Y軸位置により異なる。
【0085】
速度変更部158は、ロボット姿勢情報取得部151が取得した現在座標データに含まれる姿勢情報、および第1範囲変更部156により変更された第1範囲を示す第1範囲変更情報を取得する。速度変更部158は、現在座標データに含まれる姿勢情報と、第1範囲変更部156により変更された第1範囲とに基づき、エンドエフェクターEのX軸方向に沿った移動速度およびY軸回りの回転速度のうちいずれか一方または両方を変更する。より具体的には、速度変更部158は、エンドエフェクターEの姿勢が第1範囲の端部を含む所定範囲に含まれる場合、第1範囲の上記端部に向けた、エンドエフェクターEのX軸方向に沿った移動速度および/またはY軸回りの回転速度が基準速度より遅くなるよう、エンドエフェクターEのX軸方向に沿った移動速度および/またはY軸回りの回転速度を変更する。例えば、速度変更部158は、基準速度に、速度補正倍率(例えば0.5)を乗じることで、第1範囲の端部に向けた、エンドエフェクターEのX軸方向に沿った移動速度および/またはY軸回りの回転速度を遅くする。速度変更部158は、変更されたエンドエフェクターEのX軸方向に沿った移動速度および/またはY軸回りの回転速度を示す第1速度変更情報を、ロボット制御部159に出力する。
【0086】
図11を参照して、エンドエフェクターEのX軸位置が0である場合を例として、速度変更部158による速度の変更について詳細に説明する。ロボットシステム1には、-X方向速度補正範囲δ1と、+X方向速度補正範囲δ2と、を含む速度補正範囲が設定される。-X方向速度補正範囲δ1は、第1範囲の-X方向側の端部(すなわち、-X方向制限角度θ1に対応する位置)と、第1範囲の-X方向側の端部から所定角度(例えば、5°)だけ、Z軸方向に沿った基準線側(すなわち、+X方向側)へ回転した位置との間の範囲である。
図11の例では、-X方向速度補正範囲δ1は、エンドエフェクターEの-X方向への回転角が30°から25°の範囲に対応する。+X方向速度補正範囲δ2は、第1範囲の+X方向側の端部(すなわち、+X方向制限角度θ2に対応する位置)と、第1範囲の+X方向側の端部から所定角度だけ、Z軸方向に沿った基準線側(すなわち、-X方向側)へ回転した位置との間の範囲である。
図11の例では、+X方向速度補正範囲δ2は、エンドエフェクターEの+X方向への回転角が30°から25°の範囲に対応する。また、第1範囲において、-X方向速度補正範囲δ1および+X方向速度補正範囲δ2を除く範囲を、基準速度範囲δ3という。
【0087】
速度変更部158は、ロボット姿勢情報取得部151が取得した現在座標データに含まれる姿勢情報に基づき、エンドエフェクターEの現在の姿勢を示す姿勢情報を取得する。速度変更部158は、エンドエフェクターEの姿勢が、-X方向速度補正範囲δ1と、+X方向速度補正範囲δ2と、基準速度範囲δ3と、のいずれに含まれるか判定する。
エンドエフェクターEの姿勢が基準速度範囲δ3に含まれる場合、速度変更部158は、エンドエフェクターEのX軸方向に沿った移動速度および/またはY軸回りの回転速度を基準速度のままとする(すなわち、エンドエフェクターEのX軸方向に沿った移動速度および/またはY軸回りの回転速度を変更しない)。
エンドエフェクターEの姿勢が-X方向速度補正範囲δ1に含まれる場合、速度変更部158は、第1範囲の-X方向側の端部に向けた、エンドエフェクターEのX軸方向に沿った移動速度および/またはY軸回りの回転速度が基準速度より遅くなるよう、エンドエフェクターEのX軸方向に沿った移動速度および/またはY軸回りの回転速度を変更する。すなわち、速度変更部158は、エンドエフェクターEの-X方向側への移動速度、およびエンドエフェクターEの-X方向側への回転速度を基準速度より遅くし、エンドエフェクターEの+X方向側への移動速度、およびエンドエフェクターEの+X方向側への回転速度は基準速度のままとする。
エンドエフェクターEの姿勢が+X方向速度補正範囲δ2に含まれる場合、速度変更部158は、第1範囲の+X方向側の端部に向けた、エンドエフェクターEのX軸方向に沿った移動速度および/またはY軸回りの回転速度が基準速度より遅くなるよう、エンドエフェクターEのX軸方向に沿った移動速度および/またはY軸回りの回転速度を変更する。すなわち、速度変更部158は、エンドエフェクターEの+X方向側への移動速度、およびエンドエフェクターEの+X方向側への回転速度を基準速度より遅くし、エンドエフェクターEの-X方向側への移動速度、およびエンドエフェクターEの-X方向側への回転速度は基準速度のままとする。
【0088】
速度変更部158は、ロボット姿勢情報取得部151が取得した現在座標データに含まれる姿勢情報、および第2範囲変更部157により変更された第2範囲を示す第2範囲変更情報を取得する。速度変更部158は、現在座標データに含まれる姿勢情報と、第2範囲変更部157により変更された第2範囲とに基づき、エンドエフェクターEのY軸方向に沿った移動速度およびX軸回りの回転速度のうちいずれか一方または両方を変更する。より具体的には、速度変更部158は、エンドエフェクターEの姿勢が第2範囲の端部を含む所定範囲に含まれる場合、第2範囲の上記端部に向けた、エンドエフェクターEのY軸方向に沿った移動速度および/またはX軸回りの回転速度が基準速度より遅くなるよう、エンドエフェクターEのY軸方向に沿った移動速度および/またはX軸回りの回転速度を変更する。例えば、速度変更部158は、基準速度に、速度補正倍率(例えば0.5)を乗じることで、第2範囲の端部に向けた、エンドエフェクターEのY軸方向に沿った移動速度および/またはX軸回りの回転速度を遅くする。速度変更部158は、変更されたエンドエフェクターEのY軸方向に沿った移動速度および/またはX軸回りの回転速度を示す第2速度変更情報を、ロボット制御部159に出力する。
【0089】
ロボット制御部159は、エンドエフェクターEの位置及び姿勢のうちいずれか一方または両方を変更するための制御信号を作成する。
具体的には、ロボット制御部159は、通信部131が受信した変更指示信号を取得する。ロボット制御部159は、ロボット姿勢情報取得部151から現在座標データに含まれる姿勢情報を取得する。ロボット制御部159は、ロボット位置情報取得部152から現在座標データに含まれる位置情報を取得する。
操作装置120からの変更指示信号に、エンドエフェクターEのY軸回りの回転指示が含まれる場合は、ロボット制御部159は、第1範囲変更部156が出力した第1範囲変更情報を取得する。ロボット制御部159は、速度変更部158が出力した第1速度変更情報を取得する。ロボット制御部159は、取得した姿勢情報と、変更指示信号と、第1範囲変更情報と、第1速度変更情報と、に基づいて、エンドエフェクターEをY軸回りに回転させる(すなわち、エンドエフェクターEの姿勢を変更する)制御信号を作成する。ロボット制御部159は、作成した制御信号を通信部131へ出力する。
操作装置120からの変更指示信号に、エンドエフェクターEのX軸回りの回転指示が含まれる場合は、ロボット制御部159は、第2範囲変更部157が出力した第2範囲変更情報を取得する。ロボット制御部159は、速度変更部158が出力した第2速度変更情報を取得する。ロボット制御部159は、取得した姿勢情報と、変更指示信号と、第2範囲変更情報と、第2速度変更情報と、に基づいて、エンドエフェクターEをX軸回りに回転させる(すなわち、エンドエフェクターEの姿勢を変更する)制御信号を作成する。ロボット制御部159は、作成した制御信号を通信部131へ出力する。
操作装置120からの変更指示信号に、エンドエフェクターEのX軸に沿った移動指示が含まれる場合は、ロボット制御部159は、速度変更部158が出力した第1速度変更情報を取得する。ロボット制御部159は、取得した位置情報と、変更指示信号と、第1速度変更情報と、に基づいて、エンドエフェクターEをX軸に沿って移動させる(すなわち、エンドエフェクターEの位置を変更する)制御信号を作成する。ロボット制御部159は、作成した制御信号を通信部131へ出力する。
操作装置120からの変更指示信号に、エンドエフェクターEのY軸に沿った移動指示が含まれる場合は、ロボット制御部159は、速度変更部158が出力した第2速度変更情報を取得する。ロボット制御部159は、取得した位置情報と、変更指示信号と、第2速度変更情報と、に基づいて、エンドエフェクターEをY軸に沿って移動させる(すなわち、エンドエフェクターEの位置を変更する)制御信号を作成する。ロボット制御部159は、作成した制御信号を通信部131へ出力する。
【0090】
<制御システムが実行する制御例>
以下、ロボットシステム1が実行する制御例について説明する。操作装置120からの変更指示信号に、エンドエフェクターEのY軸回りの回転指示が含まれる場合と、エンドエフェクターEのX軸回りの回転指示が含まれる場合と、エンドエフェクターEのX軸に沿った移動指示が含まれる場合と、エンドエフェクターEのY軸に沿った移動指示が含まれる場合と、のそれぞれにおける制御例を説明する。なお、例えば、操作装置120からの変更指示信号に、エンドエフェクターEのY軸回りの回転指示と、エンドエフェクターEのX軸に沿った移動指示との双方が含まれるときには、変更指示信号にエンドエフェクターEのY軸回りの回転指示が含まれる場合における制御と、変更指示信号にエンドエフェクターEのX軸に沿った移動指示が含まれる場合における制御と、が並行して行われてもよい。
【0091】
図12は、変更指示信号にエンドエフェクターEのY軸回りの回転指示が含まれる場合に、制御装置110が実行する処理の流れの一例を示すフローチャートである。
【0092】
まず、ユーザが操作装置120を操作すると、操作装置120は、受け付けた操作に基づいて、ロボット2の位置及び姿勢の変更を指示するための変更指示信号を作成する。操作装置120は、作成した変更指示信号を、制御装置110へ出力する。
【0093】
以下、
図12に示される制御装置110における処理について説明する。
通信部131は、操作装置120から変更指示信号を受信する(ステップS101)。
通信部131は、ロボット2から現在座標データを受信する(ステップS102)。ロボット姿勢情報取得部151は、現在座標データに含まれる姿勢情報を取得する。ロボット位置情報取得部152は、現在座標データに含まれる位置情報を取得する。
【0094】
第1範囲変更部156は、ロボット位置情報取得部152が取得した現在座標データに含まれる位置情報に基づき、エンドエフェクターEの現在のX軸位置を示す位置情報を取得する(ステップS103)。
第1範囲変更部156は、第1範囲算出部154により作成された第1対応情報を取得する(ステップS104)。
第1範囲変更部156は、エンドエフェクターEの現在のX軸位置を示す位置情報と、第1範囲算出部154が作成した第1対応情報とに基づき、第1範囲を、エンドエフェクターEの現在のX軸位置に対応した第1範囲に変更する(ステップS105)。第1範囲変更部156は、変更された第1範囲を示す第1範囲変更情報を、速度変更部158およびロボット制御部159に出力する。
【0095】
第1通知部140、第2通知部141、および第3通知部142は、第1範囲の変更に関する情報をユーザに通知する(ステップS106)。具体的には、第1通知部140は、ステップS105で変更された第1範囲を表示装置に表示することで、変更された第1範囲をユーザに通知する。第2通知部141は、警告音出力装置からブザーを鳴らすことにより、ステップS105で第1範囲が変更されたことをユーザに通知する。第3通知部142は、ステップS105で変更された第1範囲の端部を表示装置に表示することで、変更された第1範囲の端部をユーザに通知する。
【0096】
速度変更部158は、現在座標データに含まれる姿勢情報と、ステップS105で変更された第1範囲とに基づき、エンドエフェクターEのY軸回りの回転速度を変更する(ステップS107)。具体的には、速度変更部158は、ロボット姿勢情報取得部151が取得した現在座標データに含まれる姿勢情報、および第1範囲変更部156が出力した第1範囲変更情報を取得する。速度変更部158は、エンドエフェクターEの姿勢が第1範囲の端部を含む所定範囲に含まれる場合、第1範囲の上記端部に向けた、エンドエフェクターEのY軸回りの回転速度が基準速度より遅くなるよう、エンドエフェクターEのY軸回りの回転速度を変更する。速度変更部158は、変更されたエンドエフェクターEのY軸回りの回転速度を示す第1速度変更情報を、ロボット制御部159に出力する。
【0097】
ロボット制御部159は、第1範囲変更部156が出力した第1範囲変更情報を取得する。ロボット制御部159は、速度変更部158が出力した第1速度変更情報を取得する。ロボット制御部159は、ロボット姿勢情報取得部151が取得した姿勢情報と、操作装置120からの変更指示信号と、第1範囲変更情報と、第1速度変更情報と、に基づいて、エンドエフェクターEをY軸回りに回転させる制御信号を作成する(ステップS108)。ロボット制御部159は、作成した制御信号を通信部131へ出力する。
このとき、変更指示信号に含まれるエンドエフェクターEのY軸回りの回転量が、第1範囲を超えている場合、ロボット制御部159は、エンドエフェクターEのY軸回りの回転量を、第1範囲内に制限する。例えば、エンドエフェクターEの現在のX軸位置が-80であり、変更指示信号に、エンドエフェクターEの-X方向側への回転角を20°とする指示が含まれる場合、ロボット制御部159は、エンドエフェクターEの-X方向側への回転角を、第1範囲の-X方向制限角度である15°に変更して、エンドエフェクターEをY軸回りに回転させる制御信号を作成する。
【0098】
通信部131は、ロボット制御部159が出力した制御信号を、ロボット2へ出力する(ステップS109)。これにより、制御装置110における処理は終了する。
ロボット2は、受信した制御信号に基づき、エンドエフェクターEをY軸回りに回転させる。
【0099】
図13は、変更指示信号にエンドエフェクターEのX軸回りの回転指示が含まれる場合に、制御装置110が実行する処理の流れの一例を示すフローチャートである。
【0100】
まず、ユーザが操作装置120を操作すると、操作装置120は、受け付けた操作に基づいて、ロボット2の位置及び姿勢の変更を指示するための変更指示信号を作成する。操作装置120は、作成した変更指示信号を、制御装置110へ出力する。
【0101】
以下、
図13に示される制御装置110における処理について説明する。
通信部131は、操作装置120から変更指示信号を受信する(ステップS201)。
通信部131は、ロボット2から現在座標データを受信する(ステップS202)。ロボット姿勢情報取得部151は、現在座標データに含まれる姿勢情報を取得する。ロボット位置情報取得部152は、現在座標データに含まれる位置情報を取得する。
【0102】
第2範囲変更部157は、ロボット位置情報取得部152が取得した現在座標データに含まれる位置情報に基づき、エンドエフェクターEの現在のY軸位置を示す位置情報を取得する(ステップS203)。
第2範囲変更部157は、第2範囲算出部155により作成された第2対応情報を取得する(ステップS204)。
第2範囲変更部157は、エンドエフェクターEの現在のY軸位置を示す位置情報と、第2範囲算出部155が作成した第2対応情報とに基づき、第2範囲を、エンドエフェクターEの現在のY軸位置に対応した第2範囲に変更する(ステップS205)。第2範囲変更部157は、変更された第2範囲を示す第2範囲変更情報を、速度変更部158およびロボット制御部159に出力する。
【0103】
第1通知部140、第2通知部141、および第3通知部142は、第2範囲の変更に関する情報をユーザに通知する(ステップS206)。具体的には、第1通知部140は、ステップS205で変更された第2範囲を表示装置に表示することで、変更された第2範囲をユーザに通知する。第2通知部141は、警告音出力装置からブザーを鳴らすことにより、ステップS205で第2範囲が変更されたことをユーザに通知する。第3通知部142は、ステップS205で変更された第2範囲の端部を表示装置に表示することで、変更された第2範囲の端部をユーザに通知する。
【0104】
速度変更部158は、現在座標データに含まれる姿勢情報と、ステップS205で変更された第2範囲とに基づき、エンドエフェクターEのX軸回りの回転速度を変更する(ステップS207)。具体的には、速度変更部158は、ロボット姿勢情報取得部151が取得した現在座標データに含まれる姿勢情報、および第2範囲変更部157が出力した第2範囲変更情報を取得する。速度変更部158は、エンドエフェクターEの姿勢が第2範囲の端部を含む所定範囲に含まれる場合、第2範囲の上記端部に向けた、エンドエフェクターEのX軸回りの回転速度が基準速度より遅くなるよう、エンドエフェクターEのX軸回りの回転速度を変更する。速度変更部158は、変更されたエンドエフェクターEのX軸回りの回転速度を示す第2速度変更情報を、ロボット制御部159に出力する。
【0105】
ロボット制御部159は、第2範囲変更部157が出力した第2範囲変更情報を取得する。ロボット制御部159は、速度変更部158が出力した第2速度変更情報を取得する。ロボット制御部159は、ロボット姿勢情報取得部151が取得した姿勢情報と、操作装置120からの変更指示信号と、第2範囲変更情報と、第2速度変更情報と、に基づいて、エンドエフェクターEをX軸回りに回転させる制御信号を作成する(ステップS208)。ロボット制御部159は、作成した制御信号を通信部131へ出力する。
このとき、変更指示信号に含まれるエンドエフェクターEのX軸回りの回転量が、第2範囲を超えている場合、ロボット制御部159は、エンドエフェクターEのX軸回りの回転量を、第2範囲内に制限する。
【0106】
通信部131は、ロボット制御部159が出力した制御信号を、ロボット2へ出力する(ステップS209)。これにより、制御装置110における処理は終了する。
ロボット2は、受信した制御信号に基づき、エンドエフェクターEをX軸回りに回転させる。
【0107】
図14は、変更指示信号にエンドエフェクターEのX軸に沿った移動指示が含まれる場合に、制御装置110が実行する処理の流れの一例を示すフローチャートである。
【0108】
まず、ユーザが操作装置120を操作すると、操作装置120は、受け付けた操作に基づいて、ロボット2の位置及び姿勢の変更を指示するための変更指示信号を作成する。操作装置120は、作成した変更指示信号を、制御装置110へ出力する。
【0109】
以下、
図14に示される制御装置110における処理について説明する。
通信部131は、操作装置120から変更指示信号を受信する(ステップS301)。
通信部131は、ロボット2から現在座標データを受信する(ステップS302)。ロボット姿勢情報取得部151は、現在座標データに含まれる姿勢情報を取得する。ロボット位置情報取得部152は、現在座標データに含まれる位置情報を取得する。
【0110】
第1範囲変更部156は、ロボット位置情報取得部152が取得した現在座標データに含まれる位置情報に基づき、エンドエフェクターEの現在のX軸位置を示す位置情報を取得する(ステップS303)。
第1範囲変更部156は、第1範囲算出部154により作成された第1対応情報を取得する(ステップS304)。
第1範囲変更部156は、エンドエフェクターEの現在のX軸位置を示す位置情報と、第1範囲算出部154が作成した第1対応情報とに基づき、第1範囲を、エンドエフェクターEの現在のX軸位置に対応した第1範囲に変更する(ステップS305)。第1範囲変更部156は、変更された第1範囲を示す第1範囲変更情報を、速度変更部158およびロボット制御部159に出力する。
【0111】
第1通知部140、第2通知部141、および第3通知部142は、第1範囲の変更に関する情報をユーザに通知する(ステップS306)。具体的には、第1通知部140は、ステップS305で変更された第1範囲を表示装置に表示することで、変更された第1範囲をユーザに通知する。第2通知部141は、警告音出力装置からブザーを鳴らすことにより、ステップS305で第1範囲が変更されたことをユーザに通知する。第3通知部142は、ステップS305で変更された第1範囲の端部を表示装置に表示することで、変更された第1範囲の端部をユーザに通知する。
【0112】
速度変更部158は、現在座標データに含まれる姿勢情報と、ステップS305で変更された第1範囲とに基づき、エンドエフェクターEのX軸に沿った移動速度を変更する(ステップS307)。具体的には、速度変更部158は、ロボット姿勢情報取得部151が取得した現在座標データに含まれる姿勢情報、および第1範囲変更部156が出力した第1範囲変更情報を取得する。速度変更部158は、エンドエフェクターEの姿勢が第1範囲の端部を含む所定範囲に含まれる場合、第1範囲の上記端部に向けた、エンドエフェクターEのX軸に沿った移動速度が基準速度より遅くなるよう、エンドエフェクターEのX軸に沿った移動速度を変更する。速度変更部158は、変更されたエンドエフェクターEのX軸に沿った移動速度を示す第1速度変更情報を、ロボット制御部159に出力する。
【0113】
ロボット制御部159は、速度変更部158が出力した第1速度変更情報を取得する。ロボット制御部159は、ロボット位置情報取得部152が取得した位置情報と、操作装置120からの変更指示信号と、第1速度変更情報と、に基づいて、エンドエフェクターEをX軸に沿って移動させる制御信号を作成する(ステップS308)。ロボット制御部159は、作成した制御信号を通信部131へ出力する。
【0114】
通信部131は、ロボット制御部159が出力した制御信号を、ロボット2へ出力する(ステップS309)。これにより、制御装置110における処理は終了する。
ロボット2は、受信した制御信号に基づき、エンドエフェクターEをX軸に沿って移動させる。
【0115】
図15は、変更指示信号にエンドエフェクターEのY軸に沿った移動指示が含まれる場合に、制御装置110が実行する処理の流れの一例を示すフローチャートである。
【0116】
まず、ユーザが操作装置120を操作すると、操作装置120は、受け付けた操作に基づいて、ロボット2の位置及び姿勢の変更を指示するための変更指示信号を作成する。操作装置120は、作成した変更指示信号を、制御装置110へ出力する。
【0117】
以下、
図15に示される制御装置110における処理について説明する。
通信部131は、操作装置120から変更指示信号を受信する(ステップS401)。
通信部131は、ロボット2から現在座標データを受信する(ステップS402)。ロボット姿勢情報取得部151は、現在座標データに含まれる姿勢情報を取得する。ロボット位置情報取得部152は、現在座標データに含まれる位置情報を取得する。
【0118】
第2範囲変更部157は、ロボット位置情報取得部152が取得した現在座標データに含まれる位置情報に基づき、エンドエフェクターEの現在のY軸位置を示す位置情報を取得する(ステップS403)。
第2範囲変更部157は、第2範囲算出部155により作成された第2対応情報を取得する(ステップS404)。
第2範囲変更部157は、エンドエフェクターEの現在のY軸位置を示す位置情報と、第2範囲算出部155が作成した第2対応情報とに基づき、第2範囲を、エンドエフェクターEの現在のY軸位置に対応した第2範囲に変更する(ステップS405)。第2範囲変更部157は、変更された第2範囲を示す第2範囲変更情報を、速度変更部158およびロボット制御部159に出力する。
【0119】
第1通知部140、第2通知部141、および第3通知部142は、第2範囲の変更に関する情報をユーザに通知する(ステップS406)。具体的には、第1通知部140は、ステップS405で変更された第2範囲を表示装置に表示することで、変更された第2範囲をユーザに通知する。第2通知部141は、警告音出力装置からブザーを鳴らすことにより、ステップS405で第2範囲が変更されたことをユーザに通知する。第3通知部142は、ステップS405で変更された第2範囲の端部を表示装置に表示することで、変更された第2範囲の端部をユーザに通知する。
【0120】
速度変更部158は、現在座標データに含まれる姿勢情報と、ステップS405で変更された第2範囲に基づき、エンドエフェクターEのY軸に沿った移動速度を変更する(ステップS407)。具体的には、速度変更部158は、ロボット姿勢情報取得部151が取得した現在座標データに含まれる姿勢情報、および第2範囲変更部157が出力した第2範囲変更情報を取得する。速度変更部158は、エンドエフェクターEの姿勢が第2範囲の端部を含む所定範囲に含まれる場合、第2範囲の上記端部に向けた、エンドエフェクターEのY軸に沿った移動速度が基準速度より遅くなるよう、エンドエフェクターEのY軸に沿った移動速度を変更する。速度変更部158は、変更されたエンドエフェクターEのY軸に沿った移動速度を示す第2速度変更情報を、ロボット制御部159に出力する。
【0121】
ロボット制御部159は、速度変更部158が出力した第2速度変更情報を取得する。ロボット制御部159は、ロボット位置情報取得部152が取得した位置情報と、操作装置120からの変更指示信号と、第2速度変更情報と、に基づいて、エンドエフェクターEをY軸に沿って移動させる制御信号を作成する(ステップS408)。ロボット制御部159は、作成した制御信号を通信部131へ出力する。
【0122】
通信部131は、ロボット制御部159が出力した制御信号を、ロボット2へ出力する(ステップS409)。これにより、制御装置110における処理は終了する。
ロボット2は、受信した制御信号に基づき、エンドエフェクターEをY軸に沿って移動させる。
【0123】
以上説明したように、本実施形態に係るロボットシステム1は、X軸に沿って移動可能であり且つY軸の回りを回転可能なエンドエフェクターE、を有するロボット2、を備える。ロボットシステム1は、エンドエフェクターEがY軸の回りを回転可能な範囲である第1範囲を変更する第1範囲変更部156を備える。第1範囲変更部156は、エンドエフェクターEがX軸に沿って原点(基準位置)から移動するに連れ、第1範囲のうち、エンドエフェクターEがX軸に沿って移動する方向であるX軸移動方向の側の第1範囲(エンドエフェクターEのX軸移動方向の側への回転可能な範囲)を狭くする。
【0124】
また、本実施形態に係るロボット制御方法は、X軸に沿って移動可能であり且つY軸の回りを回転可能なエンドエフェクターE、を有するロボット2、を制御するロボットシステム1が実行するロボット制御方法であって、エンドエフェクターEがY軸の回りを回転可能な範囲である第1範囲を変更する第1変更ステップ(ステップS105)、を備える。第1変更ステップでは、エンドエフェクターEがX軸に沿って原点(基準位置)から移動するに連れ、第1範囲のうち、エンドエフェクターEがX軸に沿って移動する方向であるX軸移動方向の側の第1範囲(エンドエフェクターEのX軸移動方向の側への回転可能な範囲)を狭くする。
【0125】
ロボット2には、エンドエフェクターEによる負荷モーメントが発生する。エンドエフェクターEがX軸に沿って原点(基準位置)から移動するに連れ、ロボット2に対する負荷モーメントは大きくなる。また、エンドエフェクターEが原点(基準位置)から離れる方向に傾いているほど、ロボット2に対する負荷モーメントは大きくなる。第1範囲変更部156は、エンドエフェクターEがX軸に沿って原点(基準位置)から移動するに連れ、第1範囲のうち、エンドエフェクターEが移動する方向の側(エンドエフェクターEが原点(基準位置)から離れる方向の側)の第1範囲を狭くする。これにより、ロボット2に対する負荷モーメントが許容モーメントを超えることを防止できる。また、第1範囲変更部156は、エンドエフェクターEのX軸方向における位置に応じて、第1範囲を変更する。したがって、エンドエフェクターEの移動範囲を一意に制限したり、エンドエフェクターEが回転可能な範囲を一意に制限したりする必要がないため、作業効率の低下を防止することができる。以上より、作業効率の低下を防止しつつ、ロボット2に対する負荷モーメントが許容モーメントを超えることを防止できる。
【0126】
また、第1範囲変更部156は、エンドエフェクターEがX軸に沿って原点(基準位置)から移動するに連れ、第1範囲のうち、X軸移動方向の反対方向の側の第1範囲(エンドエフェクターEのX軸移動方向の反対方向の側への回転可能な範囲)を広げる。
これにより、エンドエフェクターEがY軸の回りを回転可能な範囲を広げることができるため、作業効率を向上させることができる。
【0127】
また、ロボットシステム1は、第2範囲変更部157を更に備える。エンドエフェクターEは、Y軸に沿って移動可能であり且つX軸の回りを回転可能である。第2範囲変更部157は、エンドエフェクターEがX軸の回りを回転可能な範囲である第2範囲を変更する。第2範囲変更部157は、エンドエフェクターEがY軸に沿って原点(基準位置)から移動するに連れ、第2範囲のうち、エンドエフェクターEがY軸に沿って移動する方向であるY軸移動方向の側の第2範囲(エンドエフェクターEのY軸移動方向の側への回転可能な範囲)を狭くする。
第2範囲変更部157は、エンドエフェクターEがY軸に沿って原点(基準位置)から移動するに連れ、第2範囲のうち、エンドエフェクターEが移動する方向の側(エンドエフェクターEが原点(基準位置)から離れる方向の側)の第2範囲を狭くする。これにより、ロボット2に対する負荷モーメントが許容モーメントを超えることを防止できる。また、第2範囲変更部157は、エンドエフェクターEのY軸方向における位置に応じて、第2範囲を変更する。したがって、エンドエフェクターEの移動範囲を一意に制限したり、エンドエフェクターEが回転可能な範囲を一意に制限したりする必要がないため、作業効率の低下を防止することができる。以上より、作業効率の低下を防止しつつ、ロボット2に対する負荷モーメントが許容モーメントを超えることを防止できる。
【0128】
また、第2範囲変更部157は、エンドエフェクターEがY軸に沿って原点(基準位置)から移動するに連れ、第2範囲のうち、Y軸移動方向の反対方向の側の第2範囲(エンドエフェクターEのY軸移動方向の反対方向の側への回転可能な範囲)を広げる。
これにより、エンドエフェクターEがX軸の回りを回転可能な範囲を広げることができるため、作業効率を向上させることができる。
【0129】
また、Y軸移動方向の先には、障害物Pが存在する。Y軸に沿う直線上の位置であってY軸移動方向の側の第2範囲を第2範囲変更部157が狭くし始める位置と、原点と、の距離は、X軸に沿う直線上の位置であってX軸移動方向の側の第1範囲を第1範囲変更部156が狭くし始める位置と、原点と、の距離より、短い。
また、第2範囲の大きさは、エンドエフェクターEの移動であってY軸に沿う移動に応じ、変化する。
これにより、Y軸移動方向の先に障害物Pが存在する場合であっても、エンドエフェクターEと障害物Pとの干渉を防止することができる。
【0130】
また、ロボットシステム1は、エンドエフェクターEの姿勢が第1範囲の端部を含む所定範囲に含まれる場合に、第1範囲の上記端部に向けて、エンドエフェクターEがX軸に沿って移動する移動速度、又は、エンドエフェクターEがY軸の回りを回転する回転速度が、基準速度よりも遅くなるよう、エンドエフェクターEがX軸に沿って移動する移動速度、又は、エンドエフェクターEがY軸の回りを回転する回転速度を変更する、速度変更部158、をさらに備える。
この場合、エンドエフェクターEの姿勢が第1範囲の端部に近づいた場合に、エンドエフェクターEをより細やかに制御することができる。
【0131】
また、ロボットシステム1は、X軸移動方向の側の第1範囲であって第1範囲変更部156により狭くされた第1範囲をユーザに通知する第1通知部140、を更に備える。
これにより、X軸移動方向の側の第1範囲が狭くなっても、その範囲をユーザが容易に把握することができる。
【0132】
また、ロボットシステム1は、X軸移動方向の側の第1範囲を第1範囲変更部156が狭くしたことをユーザに通知する第2通知部141、を更に備える。
これにより、X軸移動方向の側の第1範囲が狭くなったことを、ユーザが容易に把握することができる。
【0133】
また、ロボットシステム1は、X軸移動方向の側の第1範囲の端部であって第1範囲変更部156により狭くされた第1範囲の端部をユーザに通知する第3通知部142、を更に備える。
これにより、X軸移動方向の側の第1範囲が狭くされても、その範囲の限界をユーザが容易に把握することができる。
【0134】
また、ロボットシステム1は、X軸に沿う直線上の位置(X軸位置)を示す位置情報と、X軸移動方向の側の第1範囲を第1範囲変更部156が狭くする大きさを示す大きさ情報と、を対応付けて記憶部135に記憶させる記憶制御部174、を更に備える。第1範囲変更部156は、記憶部135に対応付けて記憶される情報に基づき、エンドエフェクターEがX軸に沿って移動するに連れ、X軸移動方向の側の第1範囲を狭くする。
これにより、第1範囲変更部156が第1範囲を狭くする程度を、X軸位置に対応させて、確実かつ正確に指定することができる。
【0135】
また、ロボットシステム1は、上記の位置情報と大きさ情報とをユーザから取得する入力部132、を更に備える。記憶部135に対応付けて記憶される位置情報及び大きさ情報は、入力部132により取得される。
これにより、上記の位置情報および大きさ情報を、ユーザが容易に設定することができる。
【0136】
また、エンドエフェクターEは、ユーザによって操作される操作装置120からの指令に基づき、制御される。
これにより、ユーザによって操作される操作装置120からの指令に基づき、エンドエフェクターEを確実に動作させることができる。
【0137】
なお、本発明は、図面を参照して説明した上記実施形態に限定されるものではなく、その技術的範囲において様々な変形例が考えられる。
【0138】
例えば、上記実施形態では、ユーザが、入力部132を用いて、X軸位置を示す位置情報と、第1範囲を示す第1範囲情報と、を対応付けて入力する。しかしながら、第1範囲算出部154が、ロボット2の許容モーメントに基づき、エンドエフェクターEのX軸位置に応じた第1範囲(エンドエフェクターEのY軸回りの回転の制限角度)を算出してもよい。すなわち、第1範囲算出部154が、第1範囲変更部156が第1範囲を狭くする程度を、ロボット2の許容モーメントに基づき、算出する算出手段として機能してもよい。
この場合、ロボット2の許容モーメントに応じて、エンドエフェクターEが移動する方向の側の第1範囲を狭くすることができる。したがって、ロボット2に対する負荷モーメントが許容モーメントを超えることをより確実に防止できる。
【0139】
例えば、上記実施形態では、ユーザが、入力部132を用いて、エンドエフェクターEがX軸に沿って移動可能な範囲であるX軸移動範囲を入力する。しかしながら、制御部134において、X軸移動範囲が設定されてもよい。
図16は、本実施形態の変形例に係る制御装置110の制御部134のシステムブロック図である。
図16に示されるように、本変形例では、制御部134は、X軸移動範囲を設定するX軸移動範囲設定部181(設定手段)をさらに備える。X軸移動範囲設定部181は、第1範囲変更部156が変更した第1範囲に応じて、X軸移動範囲を設定する。
具体的には、X軸移動範囲設定部181は、第1範囲変更部156が第1範囲を広げるに連れ、X軸移動範囲が狭くなるように、X軸移動範囲を設定する。
これにより、ロボット2に対する負荷モーメントが許容モーメントを超えることを防止しつつ、エンドエフェクターEがY軸回りに回転可能な範囲を広げることができる。したがって、エンドエフェクターEの姿勢を大きく動かせるようになり、作業効率を向上させることができる。
【0140】
例えば、速度変更部158は、第1範囲変更部156により変更された第1範囲が狭くなるほど、エンドエフェクターEのX軸方向に沿った移動速度および/またはY軸回りの回転速度が遅くなるよう、エンドエフェクターEのX軸方向に沿った移動速度および/またはY軸回りの回転速度を変更してもよい。この場合、エンドエフェクターEのX軸方向に沿った移動速度およびY軸回りの回転速度を変更するための第1速度補正倍率が、第1範囲に応じて設定されている。第1速度補正倍率は、第1範囲が狭くなるほど、小さくなるよう設定されている。速度変更部158は、エンドエフェクターEのX軸方向に沿った移動速度および/またはY軸回りの回転速度の基準速度に、第1範囲変更部156により変更された第1範囲に応じた第1速度補正倍率を乗じることで、エンドエフェクターEのX軸方向に沿った移動速度および/またはY軸回りの回転速度を変更する。
すなわち、ロボットシステム1では、エンドエフェクターEがX軸に沿って移動する移動速度、又は、エンドエフェクターEがY軸の回りを回転する回転速度は、第1範囲変更部156がX軸移動方向の側の第1範囲を狭くするに連れ、遅くなってもよい。
これにより、X軸移動方向の側の第1範囲が狭くなるに連れ、エンドエフェクターEをより細やかに制御することができる。
【0141】
また、速度変更部158は、第2範囲変更部157により変更された第2範囲が狭くなるほど、エンドエフェクターEのY軸方向に沿った移動速度および/またはX軸回りの回転速度が遅くなるよう、エンドエフェクターEのY軸方向に沿った移動速度および/またはX軸回りの回転速度を変更してもよい。この場合、エンドエフェクターEのY軸方向に沿った移動速度およびX軸回りの回転速度を変更するための第2速度補正倍率が、第2範囲に応じて設定されている。第2速度補正倍率は、第2範囲が狭くなるほど、小さくなるよう設定されている。速度変更部158は、エンドエフェクターEのY軸方向に沿った移動速度および/またはX軸回りの回転速度の基準速度に、第2範囲変更部157により変更された第2範囲に応じた第2速度補正倍率を乗じることで、エンドエフェクターEのY軸方向に沿った移動速度および/またはX軸回りの回転速度を変更する。
すなわち、ロボットシステム1では、エンドエフェクターEがY軸に沿って移動する移動速度、又は、エンドエフェクターEがX軸の回りを回転する回転速度は、第2範囲変更部157がY軸移動方向の側の第2範囲を狭くするに連れ、遅くなってもよい。
これにより、Y軸移動方向の側の第2範囲が狭くなるに連れ、エンドエフェクターEをより細やかに制御することができる。
【0142】
また、ロボットシステム1の各機能の全て又は一部は、ASIC(Application Specific Integrated Circuit)やPLD(Programmable Logic Device)やFPGA(Field Programmable Gate Array)等のハードウェアを用いて実現されてもよい。プログラムは、コンピュータ読み取り可能な記録媒体に記録されてもよい。コンピュータ読み取り可能な記録媒体とは、例えばフレキシブルディスク、光磁気ディスク、ROM、CD-ROM等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置である。プログラムは、電気通信回線を介して送信されてもよい。
【0143】
その他、本発明の趣旨に逸脱しない範囲で、前記実施形態における構成要素を周知の構成要素に置き換えることは適宜可能であり、また、前記した変形例を適宜組み合わせてもよい。
【符号の説明】
【0144】
1 ロボットシステム
2 ロボット
100 制御システム
110 制御装置
120 操作装置
131 通信部
132 入力部(取得手段)
133 表示部
134 制御部
135 記憶部
140 第1通知部(第1通知手段)
141 第2通知部(第2通知手段)
142 第3通知部(第3通知手段)
151 ロボット姿勢情報取得部
152 ロボット位置情報取得部
153 障害物位置情報取得部
154 第1範囲算出部(取得手段、算出手段)
155 第2範囲算出部(取得手段、算出手段)
156 第1範囲変更部(第1変更手段)
157 第2範囲変更部(第2変更手段)
158 速度変更部(速度変更手段)
159 ロボット制御部
171 通信制御部
172 入力制御部
173 表示制御部
174 記憶制御部(記憶制御手段)
181 X軸移動範囲設定部(設定手段)
A アーム
E エンドエフェクター
e1 エンドエフェクターの先端
M マニピュレーター
P 障害物(物体)