(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024133899
(43)【公開日】2024-10-03
(54)【発明の名称】ロボット、ロボットシステム、及びロボットの制御方法
(51)【国際特許分類】
B25J 19/06 20060101AFI20240926BHJP
G05B 9/02 20060101ALI20240926BHJP
【FI】
B25J19/06
G05B9/02 B
【審査請求】未請求
【請求項の数】8
【出願形態】OL
(21)【出願番号】P 2023043905
(22)【出願日】2023-03-20
(71)【出願人】
【識別番号】000002369
【氏名又は名称】セイコーエプソン株式会社
(74)【代理人】
【識別番号】100179475
【弁理士】
【氏名又は名称】仲井 智至
(74)【代理人】
【識別番号】100216253
【弁理士】
【氏名又は名称】松岡 宏紀
(74)【代理人】
【識別番号】100225901
【弁理士】
【氏名又は名称】今村 真之
(72)【発明者】
【氏名】清澤 勇貴
【テーマコード(参考)】
3C707
5H209
【Fターム(参考)】
3C707AS01
3C707AS06
3C707AS14
3C707BS12
3C707HS27
3C707HT40
3C707JS07
3C707MS25
5H209AA07
5H209BB08
5H209BB09
5H209CC01
5H209DD06
5H209GG06
5H209HH04
5H209JJ01
5H209JJ07
5H209JJ09
(57)【要約】
【課題】モーターは、電力の供給を停止されることによって停止する場合、モーターの回転軸の停止位置は不定となる。
【解決手段】ロボットは、コントローラーと、監視部と、を備え、前記コントローラーは、所定の動作をモーターに実行させるとき、第1の制御信号を制御信号として前記モーターに送信することと、前記第1の制御信号に基づく第1の出力信号を出力信号としてエンコーダーから受信することと、前記第1の出力信号との差異が前記第1の制御信号と前記第1の出力信号との間の差異値よりも小さい第2の制御信号を生成することと、前記第2の制御信号を前記モーターに送信することと、を行い、前記監視部は、前記第2の制御信号を前記コントローラーから受信することと、前記第2の制御信号と前記出力信号との間の差異を前記閾値と比較することと、を行う。
【選択図】
図11
【特許請求の範囲】
【請求項1】
回転軸を有するモーターと、
前記モーターに所定のタイミングで制御信号を送信するコントローラーと、
前記制御信号に基づく前記モーターの動作を検出して出力信号を出力するエンコーダーと、
前記制御信号と前記出力信号とを受信し、前記制御信号と前記出力信号との間の差異を予め定めた閾値と比較し、前記差異が前記閾値よりも大きいときに電力遮断指令を出力する監視部と、を備え、
所定の動作を前記モーターに実行させるとき、
前記コントローラーは、
第1の制御信号を前記制御信号として前記モーターに送信することと、
前記第1の制御信号に基づく第1の出力信号を前記出力信号として前記エンコーダーから受信することと、
前記第1の出力信号との差異が前記第1の制御信号と前記第1の出力信号との間の差異値よりも小さい第2の制御信号を生成することと、
前記第2の制御信号を前記制御信号として前記モーターに送信することと、を行い、
前記監視部は、
前記第2の制御信号を前記制御信号として前記コントローラーから受信することと、
前記第2の制御信号と前記出力信号との間の差異を前記閾値と比較することと、を行う、
ロボット。
【請求項2】
前記コントローラーは、
前記閾値よりも小さい第2閾値を記憶することと、
前記第1の制御信号と前記第1の出力信号との間の前記差異値を算出することと、
前記差異値が前記第2閾値よりも大きいとき、前記第2の制御信号を生成することと、を行う、
請求項1に記載のロボット。
【請求項3】
使用者の入力操作によって停止指令を出力する停止スイッチを備え、
前記所定の動作は、前記停止スイッチから出力される前記停止指令に基づく停止動作である、
請求項1または2に記載のロボット。
【請求項4】
前記所定の動作は、トルク制御動作である、
請求項1または2に記載のロボット。
【請求項5】
前記出力信号は、前記回転軸の回転位置を含む、
請求項1または2に記載のロボット。
【請求項6】
前記出力信号は、前記回転軸の回転速度を含む、
請求項1または2に記載のロボット。
【請求項7】
所定のタイミングで制御信号を送信するコントローラー、及び前記制御信号と前記制御信号に基づく出力信号との間の差異と閾値とを比較して前記差異が前記閾値よりも大きいときに電力遮断指令を出力する監視部を有するロボット制御装置と、
回転軸を有するモーター、前記制御信号に基づく前記出力信号を出力するエンコーダーを有するロボットと、を備え、
所定の動作を前記モーターに実行させるとき、
前記コントローラーは、
第1の制御信号を前記制御信号として送信することと、
前記第1の制御信号に基づく第1の出力信号を前記出力信号として前記エンコーダーから受信することと、
前記第1の出力信号との差異が前記第1の制御信号と前記第1の出力信号との間の差異値よりも小さい第2の制御信号を生成することと、
前記第2の制御信号を前記制御信号として前記モーターに送信することと、を行い、
前記監視部は、
前記第2の制御信号を前記制御信号として前記コントローラーから受信することと、
前記第2の制御信号と前記出力信号との間の差異を前記閾値と比較することと、を行う、
ロボットシステム。
【請求項8】
制御信号に基づいて動作するモーターと、前記制御信号に基づく前記モーターの動作を検出して出力信号を出力するエンコーダーと、前記制御信号と前記制御信号に基づく前記出力信号との間の差異と閾値とを比較して前記差異が前記閾値よりも大きいときに電力遮断指令を出力する監視部と、を備えるロボットの制御方法であって、
所定の動作を実行するとき、
第1の制御信号を前記制御信号として前記モーターに送信することと、
前記第1の制御信号に基づく第1の出力信号を前記出力信号として前記エンコーダーから受信することと、
前記第1の出力信号との差異が前記第1の制御信号と前記第1の出力信号との間の差異値よりも小さい第2の制御信号を生成することと、
前記第2の制御信号を前記制御信号として前記モーターに送信することと、
前記第2の制御信号に基づく第2の出力信号を前記出力信号として前記エンコーダーから受信することと、
前記第2の制御信号と前記出力信号との間の差異を前記閾値と比較することと、を行う、
ロボットの制御方法。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、ロボット、ロボットシステム、及びロボットの制御方法に関する。
【背景技術】
【0002】
セーフティユニットを備えるサーボシステムが知られている。特許文献1に記載されるサーボシステムは、産業ロボットのアームを駆動するためのシステムに用いられる。セーフティユニットは、サーボモーターが正常に制御されていることを監視する。セーフティユニットは、監視ユニットの一例である。セーフティユニットは、サーボモーターへの指令値と指令値に追従してサーボモーターが駆動された結果としてのフィードバック値とを取得する。セーフティユニットは、指令値及びフィードバック値の一方または両方の値が異常である場合に停止信号を生成する。サーボドライバーは、停止信号に応じてサーボモーターへの電力の供給を停止する。セーフティユニットは、停止信号を送信することによって、サーボモーターへの電力の供給を停止させる。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
モーターは電力の供給を停止されることによって停止する場合、モーターの回転軸の停止位置は不定となる。モーターによって駆動されるアームの停止位置が不定となり、ロボットの再起動に時間が掛かる場合がある。
【課題を解決するための手段】
【0005】
本開示のロボットは、回転軸を有するモーターと、前記モーターに所定のタイミングで制御信号を送信するコントローラーと、前記制御信号に基づく前記モーターの動作を検出して出力信号を出力するエンコーダーと、前記制御信号と前記出力信号とを受信し、前記制御信号と前記出力信号との間の差異を予め定めた閾値と比較し、前記差異が前記閾値よりも大きいときに電力遮断指令を出力する監視部と、を備え、所定の動作を前記モーターに実行させるとき、前記コントローラーは、第1の制御信号を前記制御信号として前記モーターに送信することと、前記第1の制御信号に基づく第1の出力信号を前記出力信号として前記エンコーダーから受信することと、前記第1の出力信号との差異が前記第1の制御信号と前記第1の出力信号との間の差異値よりも小さい第2の制御信号を生成することと、前記第2の制御信号を前記制御信号として前記モーターに送信することと、を行い、前記監視部は、前記第2の制御信号を前記制御信号として前記コントローラーから受信することと、前記第2の制御信号と前記出力信号との間の差異を前記閾値と比較することと、を行う。
【0006】
本開示のロボットシステムは、所定のタイミングで制御信号を送信するコントローラー、及び前記制御信号と前記制御信号に基づく出力信号との間の差異と閾値とを比較して前記差異が前記閾値よりも大きいときに電力遮断指令を出力する監視部を有するロボット制御装置と、回転軸を有するモーター、前記制御信号に基づく前記出力信号を出力するエンコーダーを有するロボットと、を備え、所定の動作を前記モーターに実行させるとき、前記コントローラーは、第1の制御信号を前記制御信号として送信することと、前記第1の制御信号に基づく第1の出力信号を前記出力信号として前記エンコーダーから受信することと、前記第1の出力信号との差異が前記第1の制御信号と前記第1の出力信号との間の差異値よりも小さい第2の制御信号を生成することと、前記第2の制御信号を前記制御信号として前記モーターに送信することと、を行い、前記監視部は、前記第2の制御信号を前記制御信号として前記コントローラーから受信することと、前記第2の制御信号と前記出力信号との間の差異を前記閾値と比較することと、を行う。
【0007】
本開示のロボットの制御方法は、制御信号に基づいて動作するモーターと、前記制御信号に基づく前記モーターの動作を検出して出力信号を出力するエンコーダーと、前記制御信号と前記制御信号に基づく前記出力信号との間の差異と閾値とを比較して前記差異が前記閾値よりも大きいときに電力遮断指令を出力する監視部と、を備えるロボットの制御方法であって、所定の動作を実行するとき、第1の制御信号を前記制御信号として前記モーターに送信することと、前記第1の制御信号に基づく第1の出力信号を前記出力信号として前記エンコーダーから受信することと、前記第1の出力信号との差異が前記第1の制御信号と前記第1の出力信号との間の差異値よりも小さい第2の制御信号を生成することと、前記第2の制御信号を前記制御信号として前記モーターに送信することと、前記第2の制御信号に基づく第2の出力信号を前記出力信号として前記エンコーダーから受信することと、前記第2の制御信号と前記出力信号との間の差異を前記閾値と比較することと、を行う。
【図面の簡単な説明】
【0008】
【
図8】所定のタイミングで出力されるコントローラー制御値等を示す図。
【
図10】所定のタイミングで出力されるコントローラー制御値等を示す図。
【
図11】ロボットで実行される制御フローを示す図。
【
図12】ロボットが行うワーク操作の一例を示す図。
【
図13】ロボットのブロック構成を模式的に示す図。
【
図14】ロボットのブロック構成を模式的に示す図。
【
図15】所定のタイミングで出力されるコントローラー制御値等を示す図。
【
図16】部品の位置とモーターに掛かるトルクの経時変化を模式的に示す図。
【
図17】ロボットで実行される制御フローを示す図。
【
図19】ロボットシステムのブロック構成を示す図。
【発明を実施するための形態】
【0009】
第1実施形態
図1は、ロボット10の概略構成を示している。
図1は、ロボット10の斜視図を示している。
図1に示すロボット10は、各種ワークの搬送、組立、検査等の各作業で用いられる。
【0010】
ロボット10は、基台11と、ロボットアーム20と、第1駆動部31と、第2駆動部32と、第3駆動部33と、第4駆動部34と、第5駆動部35と、第6駆動部36と、を有する。
【0011】
基台11は、水平な床FLに載置される。基台11は、床FLではなく、壁、天井、架台等に載置されてもよい。基台11は、後述する電源ユニット70、制御ユニット100等を収容する。
【0012】
ロボットアーム20は、複数のアームを含む。
図1に示すロボットアーム20は、複数のアームとして、第1アーム21、第2アーム22、第3アーム23、第4アーム24、第5アーム25、及び第6アーム26を備える。第6アーム26の先端には、図示しないエンドエフェクターが着脱可能に取り付けられる。
【0013】
エンドエフェクターは、特に限定されないが、ワークを把持するハンド、ワークを吸着する吸着ヘッド等で構成される。ワークは、特に限定されない。ワークは、電子部品、電子機器等である。
【0014】
ロボット10は、基台11とロボットアーム20が有する複数のアームとを、基台11、第1アーム21、第2アーム22、第3アーム23、第4アーム24、第5アーム25、第6アーム26の順に連結した単腕の6軸垂直多関節ロボットである。
【0015】
第1アーム21、第2アーム22、第3アーム23、第4アーム24、第5アーム25、及び第6アーム26の長さは、それぞれ、特に限定されず、適宜設定可能である。ロボットアーム20が有するアームの数は、5本以下、又は、7本以上であってもよい。ロボット10は、スカラロボットであってもよく、2つ以上のロボットアーム20を備える双腕ロボットであってもよい。
【0016】
第1駆動部31は、第1アーム21に配置される。第1駆動部31は、基台11に対して、第1アーム21を回動させる。第1駆動部31は、第1モーターユニット40aと、図示しない減速機と、を有する。第1モーターユニット40aは、モーターユニット40の一例である。第1モーターユニット40aは、第1アーム21を回動させる推力を発生する。
【0017】
第2駆動部32は、第2アーム22に配置される。第2駆動部32は、第1アーム21に対して、第2アーム22を回動させる。第2駆動部32は、第2モーターユニット40bと、図示しない減速機と、を有する。第2モーターユニット40bは、モーターユニット40の一例である。第2モーターユニット40bは、第2アーム22を回動させる推力を発生する。
【0018】
第3駆動部33は、第2アーム22に配置される。第3駆動部33は、第2アーム22に対して、第3アーム23を回動させる。第3駆動部33は、第3モーターユニット40cと、図示しない減速機と、を有する。第3モーターユニット40cは、モーターユニット40の一例である。第3モーターユニット40cは、第3アーム23を回動させる推力を発生する。
【0019】
第4駆動部34は、第3アーム23に配置される。第4駆動部34は、第3アーム23に対して、第4アーム24を回動させる。第4駆動部34は、第4モーターユニット40dと、図示しない減速機と、を有する。第4モーターユニット40dは、モーターユニット40の一例である。第4モーターユニット40dは、第4アーム24を回動させる推力を発生する。
【0020】
第5駆動部35は、第4アーム24に配置される。第5駆動部35は、第4アーム24に対して、第5アーム25を回動させる。第5駆動部35は、第5モーターユニット40eと、図示しない減速機と、を有する。第5モーターユニット40eは、モーターユニット40の一例である。第5モーターユニット40eは、第5アーム25を回動させる推力を発生する。
【0021】
第6駆動部36は、第4アーム24に配置される。第6駆動部36は、第5アーム25に対して、第6アーム26を回動させる。第6駆動部36は、第6モーターユニット40fと、図示しない減速機と、を有する。第6モーターユニット40fは、モーターユニット40の一例である。第6モーターユニット40fは、第6アーム26を回動させる推力を発生する。
【0022】
図2は、ロボット10を模式的に示している。
図2は、
図1に示すロボット10を模式的に示している。
図2は、第1関節51と、第2関節52と、第3関節53と、第4関節54と、第5関節55と、第6関節56と、を示している。
【0023】
基台11と第1アーム21は、第1関節51を介して連結する。第1アーム21は、基台11に対し、鉛直軸と平行な第1回動軸R1を回動中心として回動可能に構成される。鉛直軸は、床FLに垂直な軸である。第1アーム21は、第1駆動部31の駆動により第1回動軸R1を中心に回動する。
【0024】
第1アーム21と第2アーム22は、第2関節52を介して連結する。第2アーム22は、第1アーム21に対し、床FLと平行な第2回動軸R2を回動中心として回動可能に構成される。第2アーム22は、第2駆動部32の駆動により第2回動軸R2を中心に回動する。
【0025】
第2アーム22と第3アーム23は、第3関節53を介して連結する。第3アーム23は、第2アーム22に対し、床FLと平行な第3回動軸R3を回動中心として回動可能に構成される。第3アーム23は、第3駆動部33の駆動により第3回動軸R3を中心に回動する。
【0026】
第3アーム23と第4アーム24は、第4関節54を介して連結する。第4アーム24は、第3アーム23に対し、第3アーム23の中心軸と平行な第4回動軸R4を回動中心として回動可能に構成される。第4アーム24は、第4駆動部34の駆動により第4回動軸R4を中心に回動する。
【0027】
第4アーム24と第5アーム25は、第5関節55を介して連結する。第5アーム25は、第4アーム24に対し、第4アーム24の中心軸と直交する第5回動軸R5を回動中心として回動可能に構成される。第5アーム25は、第5駆動部35の駆動により第5回動軸R5を中心に回動する。
【0028】
第5アーム25と第6アーム26は、第6関節56を介して連結する。第6アーム26は、第5アーム25に対し、第5アーム25の先端部の中心軸と平行な第6回動軸R6を回動中心として回動可能に構成される。第6アーム26は、第6駆動部36の駆動により第6回動軸R6を中心に回動する。
【0029】
図3は、モーターユニット40の概略構成を示している。モーターユニット40は、モーター41と、エンコーダー45と、ブレーキ47と、プーリー49と、を備える。モーターユニット40は、モータープレートMPに支持される。モーターユニット40は、一例として、ロータリーエンコーダーを有するサーボモーターで構成される。
【0030】
モータープレートMPは、モーターユニット40をロボット10に固定する部材である。モーターユニット40は、ロボット10にモータープレートMPを介して固定される。モータープレートMPは、アーム等を構成する部材でもよい。モータープレートMPがアームの一部を構成することによって、モーターユニット40は、ロボット10に直接固定される。モータープレートMPには、モーター41とブレーキ47とが固定される。モータープレートMPは、軸孔SHを備える。
【0031】
モーター41は、アームを回動させる駆動力を発生させる。モーター41は、出力軸43を有する。モーター41は、電力の供給を受けて出力軸43の回転出力を生成する。モーター41は、出力軸43への回転力の供給を受けて電力を生成する。モーター41は、モータープレートMPに固定される。出力軸43は、モータープレートMPの軸孔SHを貫通する。出力軸43は、回転軸の一例に対応する。
【0032】
プーリー49は、減速機を介して、モーター41の出力軸43に接続される。プーリー49は、モーター41の出力軸43によって回転する。プーリー49は、ベルトを介してアームに駆動力を伝達することによって、アームを回動させる。プーリー49は、モーター41に電力が供給されていない状態で、アームの回動に起因する回転力を伝達される。プーリー49は、アームの回動に起因する回転力を出力軸43に供給する。プーリー49がアームの回動に起因する回転力を出力軸43に供給することによって、モーター41は、発電機として機能する。
【0033】
エンコーダー45は、モーター41の出力軸43の回転位置を検出する。エンコーダー45は、検出する回転位置を用いて、出力軸43の回転速度を算出してもよい。エンコーダー45は、回転位置、もしくは回転速度をエンコーダー信号ESとして制御ユニット100等に出力する。エンコーダー信号ESは、モーター41の動作を示す。エンコーダー信号ESは、出力信号の一例に対応する。エンコーダー45は、モーター41に対してモータープレートMPとは逆の側で、モーター41に固定される。
【0034】
ブレーキ47は、モータープレートMPに対してモーター41とは逆の側で、モータープレートMPに固定される。ブレーキ47は、機械式ブレーキ、電磁ブレーキ、油圧式ブレーキ等で構成される。ブレーキ47は、電磁ブレーキであることが好ましい。電磁ブレーキは、電力が供給されていない状態で、出力軸43を回転不能に保持する。電磁ブレーキは、バネ等の弾性部材、及び可動部材を有する。出力軸43に接続する接合部材に対して、弾性部材が可動部材を押圧する。接合部材と可動部材との間の摩擦力によって、出力軸43は回転不能に保持される。電磁ブレーキは、電力が供給されている状態で、出力軸43を回転可能にする。電力が供給されると、電磁ブレーキは、弾性部材に抗して、接合部材から可動部材を離間させる。可動部材が接合部材と離間することによって、出力軸43は回転可能となる。可動部材は、接合部材ではなく、出力軸43を押圧してもよい。
【0035】
モーターユニット40は、図示しないトルクリミッターを有してもよい。トルクリミッターは、モーター41の出力軸43に過負荷が掛かったとき、出力軸43に掛かる負荷を遮断する。トルクリミッターは、ロボット10がトルク制御を行うときに用いられる。
【0036】
図4は、ロボット10のブロック構成を示している。
図4は、ロボットアーム20の動作に係る構成を示している。ロボット10は、複数のモーターユニット40と、複数のモータードライバー60と、電源ユニット70と、遮断ユニット80と、制御ユニット100と、停止スイッチ150と、エリアセンサー160と、を備える。
図4は、エンドエフェクターを動作させるユニットを省略して示している。
【0037】
複数のモーターユニット40のそれぞれは、アームを回動させる。
図4は、複数のモーターユニット40として、第1モーターユニット40a、第2モーターユニット40b、第3モーターユニット40c、第4モーターユニット40d、第5モーターユニット40e、及び第6モーターユニット40fを示している。
【0038】
第1モーターユニット40aは、第1モーター41aと、第1エンコーダー45aと、第1ブレーキ47aと、を備える。第1モーター41aは、モーター41の一例である。第1エンコーダー45aは、エンコーダー45の一例である。第1エンコーダー45aは、第1モーター41aの出力軸43の回転位置もしくは回転角度をエンコーダー信号ESとして出力する。第1ブレーキ47aは、ブレーキ47の一例である。
【0039】
第2モーターユニット40bは、第2モーター41bと、第2エンコーダー45bと、第2ブレーキ47bと、を備える。第2モーター41bは、モーター41の一例である。第2エンコーダー45bは、エンコーダー45の一例である。第2エンコーダー45bは、第2モーター41bの出力軸43の回転位置もしくは回転角度をエンコーダー信号ESとして出力する。第2ブレーキ47bは、ブレーキ47の一例である。
【0040】
第3モーターユニット40cは、第3モーター41cと、第3エンコーダー45cと、第3ブレーキ47cと、を備える。第3モーター41cは、モーター41の一例である。第3エンコーダー45cは、エンコーダー45の一例である。第3エンコーダー45cは、第3モーター41cの出力軸43の回転位置もしくは回転角度をエンコーダー信号ESとして出力する。第3ブレーキ47cは、ブレーキ47の一例である。
【0041】
第4モーターユニット40dは、第4モーター41dと、第4エンコーダー45dと、第4ブレーキ47dと、を備える。第4モーター41dは、モーター41の一例である。第4エンコーダー45dは、エンコーダー45の一例である。第4エンコーダー45dは、第4モーター41dの出力軸43の回転位置もしくは回転角度をエンコーダー信号ESとして出力する。第4ブレーキ47dは、ブレーキ47の一例である。
【0042】
第5モーターユニット40eは、第5モーター41eと、第5エンコーダー45eと、第5ブレーキ47eと、を備える。第5モーター41eは、モーター41の一例である。第5エンコーダー45eは、エンコーダー45の一例である。第5エンコーダー45eは、第5モーター41eの出力軸43の回転位置もしくは回転角度をエンコーダー信号ESとして出力する。第5ブレーキ47eは、ブレーキ47の一例である。
【0043】
第6モーターユニット40fは、第6モーター41fと、第6エンコーダー45fと、第6ブレーキ47fと、を備える。第6モーター41fは、モーター41の一例である。第6エンコーダー45fは、エンコーダー45の一例である。第6エンコーダー45fは、第6モーター41fの出力軸43の回転位置もしくは回転角度をエンコーダー信号ESとして出力する。第6ブレーキ47fは、ブレーキ47の一例である。
【0044】
複数のモータードライバー60は、それぞれモーターユニット40と接続する。モータードライバー60は、モーターユニット40にドライバー信号MSを送信することによって、モーターユニット40の動作を制御する。モータードライバー60は、制御ユニット100から送信される制御信号CSに基づいてドライバー信号MSを生成する。モータードライバー60は、モーターユニット40に応じたドライバー信号MSを生成する。ドライバー信号MSは、制御信号CSと同一の制御値でもよいし、制御信号CSを変換した制御値でもよい。モータードライバー60は、制御ユニット100が所定の動作をモーター41に実行させるとき、制御信号CSを変換したドライバー信号MSを生成してもよい。モータードライバー60は、モーターユニット40から出力されるエンコーダー信号ESを受信する。
【0045】
複数のモータードライバー60は、第1モータードライバー60a、第2モータードライバー60b、第3モータードライバー60c、第4モータードライバー60d、第5モータードライバー60e、及び第6モータードライバー60fを含む。
【0046】
第1モータードライバー60aは、第1モーターユニット40aを制御する。第1モータードライバー60aは、第1モーターユニット40aにドライバー信号MSを送信することによって、第1モーター41a及び第1ブレーキ47aの動作を制御する。第1モータードライバー60aは、第1エンコーダー45aから出力されるエンコーダー信号ESを受信する。第1モータードライバー60aは、制御ユニット100等にエンコーダー信号ESを送信する。
【0047】
第2モータードライバー60bは、第2モーターユニット40bを制御する。第2モータードライバー60bは、第2モーターユニット40bにドライバー信号MSを送信することによって、第2モーター41b及び第2ブレーキ47bの動作を制御する。第2モータードライバー60bは、第2エンコーダー45bから出力されるエンコーダー信号ESを受信する。第2モータードライバー60bは、制御ユニット100等にエンコーダー信号ESを送信する。
【0048】
第3モータードライバー60cは、第3モーターユニット40cを制御する。第3モータードライバー60cは、第3モーターユニット40cにドライバー信号MSを送信することによって、第3モーター41c及び第3ブレーキ47cの動作を制御する。第3モータードライバー60cは、第3エンコーダー45cから出力されるエンコーダー信号ESを受信する。第3モータードライバー60cは、制御ユニット100等にエンコーダー信号ESを送信する。
【0049】
第4モータードライバー60dは、第4モーターユニット40dを制御する。第4モータードライバー60dは、第4モーターユニット40dにドライバー信号MSを送信することによって、第4モーター41d及び第4ブレーキ47dの動作を制御する。第4モータードライバー60dは、第4エンコーダー45dから出力されるエンコーダー信号ESを受信する。第4モータードライバー60dは、制御ユニット100等にエンコーダー信号ESを送信する。
【0050】
第5モータードライバー60eは、第5モーターユニット40eを制御する。第5モータードライバー60eは、第5モーターユニット40eにドライバー信号MSを送信することによって、第5モーター41e及び第5ブレーキ47eの動作を制御する。第5モータードライバー60eは、第5エンコーダー45eから出力されるエンコーダー信号ESを受信する。第5モータードライバー60eは、制御ユニット100等にエンコーダー信号ESを送信する。
【0051】
第6モータードライバー60fは、第6モーターユニット40fを制御する。第6モータードライバー60fは、第6モーターユニット40fにドライバー信号MSを送信することによって、第6モーター41f及び第6ブレーキ47fの動作を制御する。第6モータードライバー60fは、第6エンコーダー45fから出力されるエンコーダー信号ESを受信する。第6モータードライバー60fは、制御ユニット100等にエンコーダー信号ESを送信する。
【0052】
電源ユニット70は、外部電源からの電力を各ユニットに供給する。電源ユニット70は、各モーターユニット40、各モータードライバー60、制御ユニット100等に電力を供給する。電源ユニット70は、遮断ユニット80を経由して各モーターユニット40に電力を供給する。
図4には、電源ユニット70から制御ユニット100へ電力を供給する経路等の一部の電力供給経路は、図示されない。
【0053】
遮断ユニット80は、モーター41を含むモーターユニット40へ外部電源からの電力を供給もしくは遮断する。遮断ユニット80は、スイッチ、リレー、コンタクター等で構成される。遮断ユニット80は、リレーで構成されることが好ましい。遮断ユニット80がリレーで構成されることによって、小さな電流で大きな電流のオン/オフをコントロールすることができる。遮断ユニット80は、電源ユニット70とモーターユニット40との間の電力供給経路に設けられる。ロボット10が動作するとき、遮断ユニット80は、電源ユニット70からの電力を各モーターユニット40に供給する。制御ユニット100の監視ユニット120が遮断信号DSを遮断ユニット80に送信すると、遮断ユニット80は、各モーターユニット40への電力を遮断する。遮断ユニット80がモーターユニット40への電力を遮断することによって、モーター41は非制御下で停止する。モーター41が非制御下で停止すると、アームの停止位置は、不定となる。
【0054】
制御ユニット100は、ロボット10の各ユニットを制御する。制御ユニット100は、各ユニットに各種信号を送信することによって、各ユニットの動作を制御する。制御ユニット100は、一例として、CPU(Central Processing Unit)を有するプロセッサー回路である。制御ユニット100は、1又は複数のプロセッサー回路で構成される。制御ユニット100は、ロボットコントローラー110、及び監視ユニット120として機能する。制御ユニット100は、ロボットコントローラー110、及び監視ユニット120とは異なる機能部として機能してもよい。制御ユニット100は、メモリー130と、通信インターフェイス140と、を備える。
【0055】
制御ユニット100は、ロボット制御プログラムを実行することによって、ロボットコントローラー110として機能する。制御ユニット100は、監視プログラムを実行することによって、監視ユニット120として機能する。ロボットコントローラー110と監視ユニット120は、同一のプロセッサーで機能してもよいし、異なるプロセッサーで機能してもよい。ロボットコントローラー110と監視ユニット120は、それぞれ独立して機能する。
【0056】
ロボットコントローラー110は、ロボットアーム20の動作を制御する。ロボットコントローラー110は、モータードライバー60に所定のタイミングで制御信号CSを送信する。ロボットコントローラー110は、モータードライバー60に制御信号CSを出力することによって、モーター41を有する各モーターユニット40の動作を制御する。制御信号CSは、モーター41の出力軸43の回転位置、もしくは回転速度を指示する信号である。ロボットコントローラー110は、各モーターユニット40の動作を制御することによって、各アームの動作を制御する。
【0057】
ロボットコントローラー110は、各モータードライバー60を介してエンコーダー45が出力するエンコーダー信号ESを受信する。ロボットコントローラー110は、制御信号CSに基づくモーター41の動作を示すエンコーダー信号ESを受信する。ロボットコントローラー110は、エンコーダー信号ESを用いて各種制御を行う。
【0058】
ロボットコントローラー110は、停止スイッチ150等から各種信号を受信する。ロボットコントローラー110は、各種信号に基づいて動作信号を生成する。ロボットコントローラー110は、各種信号を動作信号としてモータードライバー60等に送信してもよい。ロボットコントローラー110は、ロボットアーム20に所定の動作を実行させるとき、動作信号を生成する。ロボットコントローラー110は、動作信号をモータードライバー60に送信する。ロボットコントローラー110は、動作信号をモータードライバー60に送信することによって、各種制御を行う。
【0059】
ロボットコントローラー110は、信号処理部111、動作制御部113として機能する。ロボットコントローラー110は、コントローラーの一例に対応する。
【0060】
信号処理部111は、ロボットアーム20の動作に対応する動作信号を生成する。信号処理部111は、停止スイッチ150等から出力される各種信号を処理する。信号処理部111は、各種信号を受信する。信号処理部111は、各種信号に基づいて動作信号を生成する。信号処理部111は、各種信号を動作信号としてもよい。信号処理部111は、動作信号を動作制御部113に送信する。信号処理部111は、モータードライバー60、監視ユニット120等に動作信号を送信してもよい。
【0061】
信号処理部111は、一例として、停止スイッチ150から出力される停止信号SSを受信する。信号処理部111は、停止信号SSを動作信号として、動作制御部113に送信する。停止信号SSは、ロボットアーム20及びモーターユニット40の停止動作に対応する。信号処理部111は、エリアセンサー160から出力されるエリアエラー信号を受信する。信号処理部111は、エリアエラー信号を動作信号として動作制御部113に送信する。エリアエラー信号は、ロボットアーム20及びモーターユニット40の停止動作もしくは減速動作に対応する。信号処理部111は、停止スイッチ150、エリアセンサー160とは異なるセンサー等から出力された判別信号を受信してもよい。判別信号は、一例としてロボットアーム20及びモーターユニット40の動作を修正させる軌道修正動作である。信号処理部111は、判別信号を動作制御部113等に送信する。停止信号SS及びエリアエラー信号は、停止指令の一例に対応する。
【0062】
信号処理部111は、ロボットアーム20の動作に対応する動作信号を生成する。信号処理部111は、動作信号をモータードライバー60に送信する。信号処理部111は、動作信号を送信することによって、ロボットアーム20の動作に対応するモーター制御をモーターユニット40に実行させる。信号処理部111は、一例として、使用者がロボットアーム20にワークを所定の位置に配置する配置動作を実行させるとき、トルク制御信号TCを生成する。信号処理部111は、トルク制御信号TCを動作制御部113に送信する。
【0063】
動作制御部113は、モーター41を含むモーターユニット40に各種動作を実行させる。動作制御部113は、各種動作に係る一連の制御信号CSを生成する。動作制御部113は、制御信号CSを所定のタイミングでモータードライバー60に送信する。動作制御部113は、制御信号CSを送信することによって、モーターユニット40に各種動作を実行させる。モーターユニット40が各種動作を行うことによって、ロボットアーム20は、所望の動作を行う。
【0064】
動作制御部113は、動作信号を受信する。動作制御部113は、動作信号に基づいて、モーターユニット40に各種動作を実行させる。動作制御部113は、信号処理部111から動作信号を受信する。動作制御部113は、動作信号に基づいて一連の制御信号CSを生成する。動作制御部113は、制御信号CSを所定のタイミングでモータードライバー60に送信する。動作制御部113は、制御信号CSを送信することによって、モーター41に各種の動作を実行させる。
【0065】
動作制御部113は、動作信号として停止信号SSもしくはエリアエラー信号を受信する。動作制御部113は、停止信号SSもしくはエリアエラー信号に基づいて、一連の制御信号CSを生成する。生成される制御信号CSは、モーター41を停止させる停止動作を実行させる信号である。停止動作は、所定の動作の一例に対応する。動作制御部113は、所定のタイミングで制御信号CSをモータードライバー60に送信する。動作制御部113は、制御信号CSをモータードライバー60に送信することによって、モーター41に停止動作を実行させる。
【0066】
動作制御部113は、動作信号としてトルク制御信号TCを受信する。動作制御部113は、トルク制御信号TCに基づいて、一連の制御信号CSを生成する。生成される制御信号CSは、モーター41にトルク制御動作を実行させる信号である。トルク制御動作は、所定の動作の一例に対応する。動作制御部113は、所定のタイミングで制御信号CSをモータードライバー60に送信する。動作制御部113は、制御信号CSをモータードライバー60に送信することによって、モーター41にトルク制御動作を実行させる。動作制御部113は、停止動作、トルク制御動作と異なる動作をモーター41に実行させてもよい。動作制御部113は、一例として、減速動作、起動修正動作等をモーター41に実行させる。減速動作、起動修正動作等は、所定の動作の一例に対応する。
【0067】
動作制御部113は、各エンコーダー45から出力されたエンコーダー信号ESを受信する。動作制御部113は、エンコーダー信号ESを用いて制御信号CSを調整してもよい。動作制御部113は、一例として、エンコーダー信号ESをフィードバック信号として用いる。
【0068】
監視ユニット120は、モーター41を有する各モーターユニット40の動作を監視する。監視ユニット120は、モーターユニット40の動作を監視することによって、モーター41の動作異常を検出する。監視ユニット120は、モーター41の動作異常を検出すると、遮断信号DSを出力する。監視ユニット120は、比較部121、及び信号出力部123として機能する。監視ユニット120は、監視部の一例に対応する。
【0069】
比較部121は、制御信号CSとエンコーダー信号ESとを比較する。比較部121は、所定のタイミングで制御信号CS及びエンコーダー信号ESを受信する。比較部121は、ロボットコントローラー110の動作制御部113が出力する制御信号CSを受信する。比較部121は、各モーターユニット40のエンコーダー45が出力するエンコーダー信号ESを受信する。エンコーダー信号ESは、出力軸43の回転位置、もしくは回転角度である。比較部121は、制御信号CS及びエンコーダー信号ESを受信すると、制御信号CSとエンコーダー信号ESとの間の差異を絶対値で算出する。比較部121は、差異と許容値とを比較する。許容値は、予め定められた値である。許容値は、閾値の一例に対応する。比較部121は、差異が許容値よりも小さいと判定すると、モーター41が正常に動作していると判断する。比較部121は、差異が許容値よりも大きいと判定すると、モーター41が動作異常であると判断する。比較部121は、差異が許容値よりも大きいと判定すると、動作不良信号を生成する。比較部121は、動作不良信号を信号出力部123に送信する。
【0070】
信号出力部123は、遮断ユニット80等に各種信号を出力する。信号出力部123は、比較部121が送信した動作不良信号を受信する。信号出力部123は、遮断ユニット80に遮断信号DSを出力する。信号出力部123は、各モータードライバー60、信号処理部111等に動作不良信号を送信してもよい。信号出力部123は、信号処理部111から出力される動作信号を受信してもよい。
【0071】
遮断信号DSは、STO機能を実行させる信号である。STOは、Safe Torque Offの略である。STO機能は、ロボット10にモーター41への駆動エネルギーを電気的に遮断する機能である。信号出力部123は、遮断ユニット80に遮断信号DSを出力することによって、モーター41を含むモーターユニット40への電力を遮断させる。遮断ユニット80は、遮断信号DSを受信したとき、モータードライバー60、制御ユニット100等への電力を遮断してもよい。遮断信号DSは、電力遮断指令の一例に対応する。
【0072】
メモリー130は、各種データ等を記憶する。メモリー130は、ROM(Read Only Memory)、RAM(Random Access Memory)等の半導体メモリーで構成される。メモリー130は、制御ユニット100で実行されるロボット制御プログラム、及び監視プログラムを記憶する。メモリー130は、ロボットコントローラー110で用いられる各種制御データを記憶する。メモリー130は、比較部121で用いられる許容値等の監視データを記憶する。メモリー130は、比較部121で算出される評価値、比較結果等を履歴データとして記憶する。
【0073】
通信インターフェイス140は、外部装置と通信接続するインターフェイス回路である。通信インターフェイス140は、外部装置と所定の通信プロトコルに従って、有線、もしくは無線で接続する。通信インターフェイス140は、有線コネクター、もしくは無線通信ポートで構成される。有線コネクターは、USB(Universal Serial Bus)コネクター、LAN(Local Area Network)コネクター等である。無線通信ポートは、Wi-Fi通信ポート、Bluetooth通信ポート等である。Wi-Fi、及びBluetoothは、登録商標である。通信インターフェイス140は、外部装置から各種制御データを受信する。通信インターフェイス140は、履歴データ等を外部装置に送信する。
【0074】
停止スイッチ150は、ロボット10の使用者によって入力操作される。停止スイッチ150は、制御ユニット100と有線、もしくは無線で接続される。使用者は、一例として、ロボットアーム20が予期しない動作を実行したとき、停止スイッチ150に対して手動で入力操作を行う。入力操作が行われると、停止スイッチ150は、停止信号SSを制御ユニット100の信号処理部111に出力する。
【0075】
エリアセンサー160は、ロボットアーム20が所定の動作範囲内に位置しているか否かを検出する。エリアセンサー160は、ロボットアーム20が所定の動作範囲外に位置していると検出したとき、エリアエラー信号を信号処理部111に出力する。
【0076】
図5は、ロボット10のブロック構成を模式的に示している。
図5は、ロボットコントローラー110がモーターユニット40を制御しているときの状態を示している。
図5は、各信号の流れと電力の供給状態とを示している。複数のモーターユニット40は、それぞれ
図5に示す各信号の流れに基づいて制御される。
図5は、エリアセンサー160を省略して示している。
【0077】
ロボットコントローラー110は、モーターユニット40を動作させるとき、一連の制御信号CSを含む制御信号群を生成する。ロボットコントローラー110は、制御信号群に含まれる制御信号CSを所定のタイミングでモータードライバー60に送信する。制御信号CSは、一例として、モーター41の出力軸43の回転速度を指示するコントローラー制御値を含む。ロボットコントローラー110は、モータードライバー60に制御信号CSを送信するとき、監視ユニット120に制御信号CSを送信する。
【0078】
モータードライバー60は、制御信号CSを受信する。モータードライバー60は、制御信号CSに対応するドライバー信号MSを生成する。ドライバー信号MSは、モーターユニット40が処理可能な信号である。モーターユニット40が制御信号CSを処理可能であれば、モータードライバー60は、制御信号CSをドライバー信号MSとしてモーターユニット40に送信してもよい。
【0079】
モーターユニット40は、ドライバー信号MSを受信する。モーターユニット40に含まれるモーター41は、ドライバー信号MSに基づいて出力軸43を回転させる。エンコーダー45は、ドライバー信号MSに基づいて回転する出力軸43の回転速度をエンコーダー出力値として検出する。モーターユニット40は、エンコーダー出力値を含むエンコーダー信号ESをモータードライバー60に送信する。モーターユニット40は、エンコーダー信号ESを監視ユニット120に送信してもよい。
【0080】
モータードライバー60は、エンコーダー出力値を含むエンコーダー信号ESを受信する。受信したエンコーダー信号ESは、制御信号CSに基づく信号である。モータードライバー60は、エンコーダー信号ESをロボットコントローラー110、及び監視ユニット120に送信する。モーターユニット40がエンコーダー信号ESを直接監視ユニット120に送信する場合、モータードライバー60は、監視ユニット120にエンコーダー信号ESを送信しなくてもよい。
【0081】
ロボットコントローラー110は、エンコーダー信号ESを受信する。ロボットコントローラー110は、エンコーダー信号ESに含まれるエンコーダー出力値を用いて、コントローラー制御値を調整してもよい。ロボットコントローラー110は、エンコーダー出力値を用いて、次に送信する制御信号CSに含まれるコントローラー制御値を調整する。ロボットコントローラー110は、調整したコントローラー制御値を含む制御信号CSをモータードライバー60に送信する。ロボットコントローラー110は、エンコーダー出力値で調整しないコントローラー制御値を含む制御信号CSを続けてモータードライバー60に送信してもよい。
【0082】
監視ユニット120は、制御信号CSと、制御信号CSに基づくエンコーダー信号ESを受信する。監視ユニット120は、制御信号CSとエンコーダー信号ESとを比較する。監視ユニット120は、制御信号CSに含まれるコントローラー制御値と、エンコーダー信号ESに含まれるエンコーダー出力値と、を比較する。監視ユニット120は、コントローラー制御値とエンコーダー出力値との間の差異を算出する。監視ユニット120は、差異と許容値とを比較する。監視ユニット120は、差異が許容値よりも小さいと判定すると、モーター41が正常に動作していると判断する。監視ユニット120は、差異が許容値よりも大きいと判定すると、モーター41が動作異常であると判断する。監視ユニット120は、差異が許容値よりも大きいと判定すると、遮断ユニット80に遮断信号DSを出力する。
【0083】
図6は、ロボット10のブロック構成を模式的に示している。
図6は、停止スイッチ150が停止信号SSを出力したときの状態を示している。
図6は、各信号の流れと電力の供給状態とを示している。複数のモーターユニット40は、それぞれ
図6に示す各信号の流れに基づいて制御される。
図6は、エリアセンサー160を省略して示している。
【0084】
使用者が停止スイッチ150に対して入力操作を行うと、停止スイッチ150は停止信号SSを出力する。停止スイッチ150は、ロボットコントローラー110に停止信号SSを出力する。
【0085】
ロボットコントローラー110は、停止信号SSを受信する。ロボットコントローラー110は、停止信号SSをモータードライバー60に送信する。ロボットコントローラー110は、停止信号SSに基づいて、モーター41を停止動作させる制御信号群を生成する。ロボットコントローラー110は、制御信号群に含まれる制御信号CSを所定のタイミングでモータードライバー60に送信する。
【0086】
モータードライバー60は、停止信号SS及びモーター41を停止動作させる制御信号CSを受信する。モータードライバー60は、停止信号SSを受信したとき、モーター41を停止動作させるドライバー信号MSを生成する。ドライバー信号MSは、ドライバー制御値を含む。ドライバー制御値は、モーター41の出力軸43の回転速度を指示する値である。ドライバー制御値は、コントローラー制御値に対応する。モータードライバー60は、モーター41を停止動作させるドライバー信号MSを用いることによって、制御信号CSを用いる場合よりも速くモーター41を停止させることができる。モータードライバー60は、モーター41を停止動作させる制御信号CSに代えてモーター41を停止動作させるドライバー信号MSをモーターユニット40に送信する。
【0087】
モータードライバー60は、制御信号CSをドライバー信号MSとしてモーターユニット40に送信してもよい。モータードライバー60は、制御信号CSをモーターユニット40に送信するとき、ブレーキ47を作動させるブレーキ作動信号をドライバー信号MSに含めて送信してもよい。
【0088】
モーターユニット40は、ドライバー信号MSを受信する。モーター41は、ドライバー信号MSに基づいて、停止動作を行う。エンコーダー45は、モーター41が停止動作を行うときの出力軸43の回転速度をエンコーダー出力値として検出する。モーターユニット40は、エンコーダー出力値を含むエンコーダー信号ESをモータードライバー60に送信する。モーターユニット40は、ドライバー信号MSにブレーキ作動信号が含まれているとき、ブレーキ47を作動させる。モーターユニット40は、監視ユニット120に直接エンコーダー信号ESを送信してもよい。
【0089】
モータードライバー60は、エンコーダー信号ESを受信する。エンコーダー信号ESは、制御信号CSに対応付けられる。モータードライバー60は、エンコーダー信号ESをロボットコントローラー110及び監視ユニット120に送信する。モーターユニット40が監視ユニット120に直接エンコーダー信号ESを送信している場合、モータードライバー60は、監視ユニット120にエンコーダー信号ESを送信しなくてもよい。
【0090】
監視ユニット120は、制御信号CSと、制御信号CSに基づくエンコーダー信号ESを受信する。監視ユニット120は、制御信号CSとエンコーダー信号ESとを比較する。監視ユニット120は、制御信号CSに含まれるコントローラー制御値と、エンコーダー信号ESに含まれるエンコーダー出力値と、を比較する。監視ユニット120は、コントローラー制御値とエンコーダー出力値との間の差異を算出する。監視ユニット120は、差異と許容値とを比較する。監視ユニット120は、差異が許容値よりも小さいと判定すると、モーター41が正常に動作していると判断する。監視ユニット120は、差異が許容値よりも大きいと判定すると、モーター41が動作異常であると判断する。監視ユニット120は、差異が許容値よりも大きいと判定すると、遮断ユニット80に遮断信号DSを出力する。
【0091】
ロボットコントローラー110は、制御信号CSに対応するエンコーダー信号ESを受信する。ロボットコントローラー110は、制御信号CSとエンコーダー信号ESとを比較する。監視ユニット120は、制御信号CSに含まれるコントローラー制御値と、エンコーダー信号ESに含まれるエンコーダー出力値と、を比較する。ロボットコントローラー110は、コントローラー制御値とエンコーダー出力値との間の差異を評価値として算出する。
【0092】
ロボットコントローラー110は、メモリー130に記憶される許容値を読み出す。ロボットコントローラー110は、許容値に基づいて制御許容値を決定する。制御許容値は、予めメモリー130に記憶されてもよい。制御許容値がメモリー130に記憶されている場合、ロボットコントローラー110は、制御許容値をメモリー130から読み出す。ロボットコントローラー110は、一時的に制御許容値を記憶する。制御許容値は、許容値よりも小さい値である。制御許容値は、第2閾値の一例に対応する。
【0093】
ロボットコントローラー110は、評価値と制御許容値とを比較する。評価値が制御許容値よりも小さいとき、ロボットコントローラー110は、制御信号群に含まれる制御信号CSを用いて、引き続きモーター41を停止動作させる。評価値が制御許容値よりも大きいとき、ロボットコントローラー110は、制御信号CSを修正し、修正制御信号MCSを生成する。
【0094】
修正制御信号MCSは、修正コントローラー制御値を含む。修正制御信号MCSは、モーター41を停止動作させる信号である。ロボットコントローラー110は、一例として、修正制御信号MCSを生成する直前に受信したエンコーダー出力値を修正コントローラー制御値とする修正制御信号MCSを生成する。
【0095】
図7は、ロボット10のブロック構成を模式的に示している。
図7は、ロボットコントローラー110が修正制御信号MCSを生成したときの状態を示している。
図7は、各信号の流れと電力の供給状態とを示している。複数のモーターユニット40は、それぞれ
図7に示す各信号の流れに基づいて制御される。
図7は、エリアセンサー160を省略して示している。
【0096】
ロボットコントローラー110は、修正コントローラー制御値を含む修正制御信号MCSを所定のタイミングでモータードライバー60に送信する。ロボットコントローラー110は、修正制御信号MCSを監視ユニット120に送信する。
【0097】
モータードライバー60は、修正制御信号MCSを受信する。モータードライバー60は、修正制御信号MCSを受信すると、モーター41を停止動作させるドライバー信号MSをモーターユニット40に送信する。モータードライバー60は、修正制御信号MCSに基づいてドライバー信号MSを修正してもよいし、修正しなくてもよい。モータードライバー60は、修正制御信号MCSに対応するドライバー信号MSをモーターユニット40に送信する。
【0098】
モータードライバー60は、修正制御信号MCSをドライバー信号MSとしてモーターユニット40に送信してもよい。モータードライバー60は、ドライバー信号MSをモーターユニット40に送信するとき、ブレーキ47を作動させるブレーキ作動信号をドライバー信号MSに含めて送信してもよい。
【0099】
モーターユニット40は、ドライバー信号MSを受信する。モーター41は、ドライバー信号MSに基づいて、停止動作を行う。エンコーダー45は、モーター41が停止動作を行うときの出力軸43の回転速度をエンコーダー出力値として検出する。モーターユニット40は、エンコーダー出力値を含むエンコーダー信号ESをモータードライバー60に送信する。モーターユニット40は、ドライバー信号MSにブレーキ作動信号が含まれているとき、ブレーキ47を作動させる。モーターユニット40は、監視ユニット120に直接エンコーダー信号ESを送信してもよい。
【0100】
モータードライバー60は、エンコーダー信号ESを受信する。エンコーダー信号ESは、修正制御信号MCSに対応付けられる。モータードライバー60は、エンコーダー信号ESをロボットコントローラー110及び監視ユニット120に送信する。モーターユニット40が監視ユニット120に直接エンコーダー信号ESを送信している場合、モータードライバー60は、監視ユニット120にエンコーダー信号ESを送信しなくてもよい。
【0101】
監視ユニット120は、修正制御信号MCSと、修正制御信号MCSに基づくエンコーダー信号ESを受信する。監視ユニット120は、修正制御信号MCSとエンコーダー信号ESとを比較する。監視ユニット120は、修正制御信号MCSに含まれる修正コントローラー制御値と、エンコーダー信号ESに含まれるエンコーダー出力値と、を比較する。監視ユニット120は、コントローラー制御値とエンコーダー出力値との間の差異を算出する。監視ユニット120は、差異と許容値とを比較する。監視ユニット120は、差異が許容値よりも小さいと判定すると、モーター41が正常に動作していると判断する。監視ユニット120は、差異が許容値よりも大きいと判定すると、モーター41が動作異常であると判断する。監視ユニット120は、差異が許容値よりも大きいと判定すると、遮断ユニット80に遮断信号DSを出力する。修正制御信号MCSは、第2の制御信号の一例に対応し、監視ユニット120が、差異と許容値とを比較することは、第2の制御信号と出力信号との間の差異を閾値と比較することの一例に対応する。
【0102】
修正制御信号MCSに含まれる修正コントローラー制御値は、前回受信したエンコーダー出力値である。修正コントローラー制御値と修正コントローラー制御値に基づくエンコーダー出力値との差異は、許容値よりも小さい可能性が高くなる。監視ユニット120が遮断信号DSを出力する可能性は低下する。ロボットコントローラー110は、モーターユニット40を制御して、モーター41に停止動作を行わせることができる。
【0103】
ロボットコントローラー110は、修正制御信号MCSに対応するエンコーダー信号ESを受信する。ロボットコントローラー110は、エンコーダー信号ESに含まれるエンコーダー出力値を取得する。ロボットコントローラー110は、取得したエンコーダー出力値を修正コントローラー制御値とする修正制御信号MCSを生成する。ロボットコントローラー110は、エンコーダー出力値を修正コントローラー制御値として含む修正制御信号MCSをエンコーダー信号ESを受信するごとに生成する。ロボットコントローラー110は、修正制御信号MCSをモータードライバー60に送信することによって、モーター41を停止させる。
【0104】
図8は、所定のタイミングで出力されるコントローラー制御値等を示している。
図8は、モーター41に停止動作を実行させるときのコントローラー制御値等を示している。
図8は、t
0時間の直前に停止信号SSを受信した場合を示している。コントローラー制御値は、制御信号CSに含まれる。ドライバー制御値は、各時間でモータードライバー60が制御信号CSを受信したときにモーターユニット40に出力されるドライバー信号MSに含まれる制御値である。エンコーダー出力値は、コントローラー制御値を含む制御信号CSに対応してエンコーダー45から出力される検出値である。(評価値-制御許容値)は、各時間ごとの評価値から制御許容値を引いた結果を示している。「-」は、評価値が制御許容値よりも小さいことを示している。「+」は、評価値が制御許容値よりも大きいことを示している。
【0105】
ロボットコントローラー110は、停止信号SSを受信すると、モーター41に停止動作を実行させる制御信号群を生成する。ロボットコントローラー110は、一例として、t0時間からtn時間までの制御信号群を生成する。制御信号群は、tn時間でモーター41を停止させるn+1個のデータ群である。ここで、nは整数である。
【0106】
ロボットコントローラー110は、t
0時間にコントローラー制御値がv
0である制御信号CS及び停止信号SSをモータードライバー60に送信する。v
0は、モーター41の出力軸43の回転速度に対する指示値である。
図8では、コントローラー制御値は、回転速度の指示値を示している。
【0107】
モータードライバー60は、コントローラー制御値がv0である制御信号CS及び停止信号SSを受信する。モータードライバー60は、停止信号SSを受信すると、モーター41に停止動作を実行させるドライバー信号MSを生成する。モータードライバー60は、モーター41に停止動作を実行させる一連のドライバー信号群を生成してもよい。モータードライバー60は、制御信号CSを受信したときにドライバー信号MSを生成してもよい。ドライバー信号MSは、ドライバー出力値を含む。モータードライバー60は、コントローラー制御値がv0である制御信号CSを受信すると、ドライバー制御値がm0であるドライバー信号MSをモーターユニット40に送信する。m0は、モーター41の出力軸43の回転速度に対する指示値である。m0は、v0と等しいか、v0よりも大きい値である。
【0108】
モーターユニット40は、ドライバー制御値がm0であるドライバー信号MSを受信する。モーター41は、ドライバー信号MSに基づいて、出力軸43の回転速度をm0に向けて減速する。モーター41が減速をしたのち、エンコーダー45は、出力軸43の回転速度を検出する。エンコーダー45は、エンコーダー出力値がe0であると検出する。モーターユニット40は、エンコーダー出力値がe0であるエンコーダー信号ESをモータードライバー60に出力する。
【0109】
モータードライバー60は、エンコーダー出力値がe0であるエンコーダー信号ESを受信する。モータードライバー60は、エンコーダー信号ESをロボットコントローラー110及び監視ユニット120に送信する。
【0110】
ロボットコントローラー110は、エンコーダー出力値がe0であるエンコーダー信号ESを受信する。ロボットコントローラー110は、v0とe0の差異の絶対値を評価値として算出する。ロボットコントローラー110は、評価値から制御許容値を引いた値を算出する。t0時間では、評価値から制御許容値を引いた値は、-値である。評価値は、制御許容値よりも小さい。ロボットコントローラー110は、t1時間に制御信号群に含まれる制御信号CSをモータードライバー60に送信する。t1時間に送信される制御信号CSは、コントローラー制御値がv1である信号である。ロボットコントローラー110は、所定のタイミングで制御信号CSを送信し、モータードライバー60から制御信号CSに対応するエンコーダー信号ESを受信する。
【0111】
監視ユニット120は、コントローラー制御値がv0である制御信号CSとエンコーダー出力値がe0であるエンコーダー信号ESとを受信する。監視ユニット120は、v0とe0の差異の絶対値を差異として算出する。監視ユニット120は、差異と許容値とを比較する。t0時間での差異は、制御許容値よりも小さい。t0時間での差異は、許容値よりも小さい。監視ユニット120は、遮断信号DSを遮断ユニット80に送信しない。ロボットコントローラー110は、制御信号CSに基づいてモーター41に停止動作を実行させることができる。
【0112】
ロボットコントローラー110は、tk時間にコントローラー制御値がvkである制御信号CSをモータードライバー60に送信する。kは、nよりも小さい整数である。コントローラー制御値がvkである制御信号CSは、第1の制御信号の一例に対応する。モータードライバー60は、コントローラー制御値がvkである制御信号CSを受信する。モータードライバー60は、制御信号CSに対応するドライバー信号MSをモーターユニット40に送信する。ドライバー信号MSに含まれるドライバー制御値は、mkである。モーターユニット40は、ドライバー信号MSを受信する。モーター41は、ドライバー信号MSに基づいて出力軸43を減速させる。モーター41が減速したとき、エンコーダー45は、出力軸43の回転速度を検出する。モーターユニット40は、エンコーダー出力値がekであるエンコーダー信号ESをモータードライバー60に送信する。モータードライバー60は、エンコーダー出力値がekであるエンコーダー信号ESをロボットコントローラー110及び監視ユニット120に送信する。エンコーダー出力値がekであるエンコーダー信号ESは、第1の出力信号の一例に対応する。
【0113】
ロボットコントローラー110は、エンコーダー出力値がekであるエンコーダー信号ESを受信する。ロボットコントローラー110は、vkとekの差異の絶対値を評価値として算出する。tk時間での評価値は、差異値の一例に対応する。ロボットコントローラー110は、評価値から制御許容値を引いた値を算出する。tk時間では、評価値から制御許容値を引いた値は、+値である。評価値は、制御許容値よりも大きい。
【0114】
ロボットコントローラー110は、評価値が制御許容値よりも大きいと判別したとき、修正制御信号MCSを生成する。ロボットコントローラー110は、コントローラー制御値がekである修正制御信号MCSを生成する。ekは、修正コントローラー制御値である。ロボットコントローラー110は、エンコーダー出力値を修正コントローラー制御値とする。ロボットコントローラー110は、tk時間のエンコーダー出力値との差異がtk時間での評価値よりも小さい修正コントローラー制御値を含む修正制御信号MCSを生成する。ロボットコントローラー110は、一例として、修正コントローラー制御値がekである修正制御信号MCSを生成する。修正コントローラー制御値がekである修正制御信号MCSは、第2の制御信号の一例に対応する。ロボットコントローラー110は、tk+1時間に修正コントローラー制御値がekである修正制御信号MCSをモータードライバー60に送信する。
【0115】
モータードライバー60は、修正コントローラー制御値がekである修正制御信号MCSを受信する。モータードライバー60は、修正制御信号MCSに対応するドライバー信号MSをモーターユニット40に送信する。ドライバー信号MSは、mk+1であるドライバー制御値を含む。モーターユニット40は、ドライバー信号MSを受信する。モーター41は、ドライバー信号MSに基づいて出力軸43を減速させる。モーター41が減速したとき、エンコーダー45は、出力軸43の回転速度を検出する。モーターユニット40は、エンコーダー出力値がek+1であるエンコーダー信号ESをモータードライバー60に送信する。モータードライバー60は、エンコーダー出力値がek+1であるエンコーダー信号ESをロボットコントローラー110及び監視ユニット120に送信する。
【0116】
ロボットコントローラー110は、エンコーダー出力値がek+1であるエンコーダー信号ESを受信する。ロボットコントローラー110は、ekとek+1の差異の絶対値を評価値として算出する。ロボットコントローラー110は、評価値から制御許容値を引いた値を算出する。tk+1時間では、評価値から制御許容値を引いた値は、-値である。評価値は、制御許容値よりも小さい。ロボットコントローラー110は、修正コントローラー制御値がek+1である修正制御信号MCSを生成する。ロボットコントローラー110は、修正コントローラー制御値がek+1である修正制御信号MCSをモータードライバー60に送信する。
【0117】
監視ユニット120は、修正コントローラー制御値がekである修正制御信号MCSとエンコーダー出力値がek+1であるエンコーダー信号ESとを受信する。監視ユニット120は、ekとek+1の差異の絶対値を算出する。監視ユニット120は、差異と許容値とを比較する。tk+1時間での差異は、制御許容値よりも小さい。tk+1時間での差異は、許容値よりも小さい。監視ユニット120は、遮断信号DSを遮断ユニット80に送信しない。ロボットコントローラー110は、制御信号CSに基づいてモーター41に停止動作を行わせることができる。
【0118】
tk+1時間以降、ロボットコントローラー110は、直前に受信したエンコーダー出力値を修正コントローラー制御値とする修正制御信号MCSを生成する。ロボットコントローラー110は、修正制御信号MCSをモータードライバー60に送信する。ロボットコントローラー110は、修正制御信号MCSを送信することによって、モーター41に停止動作を行わせる。ロボットコントローラー110は、モーター41が停止するまで修正制御信号MCSを送信する。モーター41は、ロボットコントローラー110の制御に基づいて停止動作を行う。
【0119】
図9は、出力軸43の回転速度の経時変化を示している。
図9は、ロボットコントローラー110がモーター41に停止動作を実行させるときの回転速度変化を示している。
図9は、
図8に示すコントローラー制御値を含む制御信号CS及び修正制御信号MCSを送信したときの回転速度変化を第1変化線L1で示している。
図9は、モーター41を停止させる制御信号群を用いてモーター41を停止させるときの回転速度変化を第2変化線L2で示している。停止信号SSは、t
0時間の直前に出力される。
【0120】
第1変化線L1は、エンコーダー45の検出結果に対応する。第1変化線L1は、出力軸43の回転速度の実測値と等しいか、略等しい。ロボットコントローラー110は、制御信号群を用いると、第2変化線L2に示すように、tn時間でモーター41の出力軸43を停止させる。tk時間のとき、コントローラー制御値は、Vkとなる。tk時間のとき、エンコーダー出力値は、ekとなる。
【0121】
tk時間以降、第1変化線L1と第2変化線L2との差は、さらに拡大する。差が許容値を超えると、監視ユニット120は、遮断信号DSを遮断ユニット80に送信する。遮断ユニット80が遮断信号DSに基づいてモーターユニット40への電力を遮断すると、モーター41は、非制御下で停止する。モーター41が非制御下で停止すると、出力軸43及びアームの停止位置は不定となる。ロボット10の再起動に時間が掛かる場合が生じることになる。
【0122】
tk時間後、ロボットコントローラー110は、制御信号CSに含まれるコントローラー制御値を直前に受信したエンコーダー出力値とする修正制御信号MCSを生成する。エンコーダー出力値は、修正制御信号MCSに含まれる修正コントローラー制御値として用いられる。ロボットコントローラー110は、修正制御信号MCSを用いてモーター41の停止動作を制御することによって、監視ユニット120が遮断信号DSを出力させる可能性を低下させる。モーター41は、ロボットコントローラー110の制御に基づいて停止動作を行う。モーター41は、ts時間に停止する。ts時間は、tn時間よりも短い時間である。
【0123】
図8では、ロボットコントローラー110は、t
k+1時間以降のエンコーダー出力値を修正コントローラー制御値としたが、これに限定されない。修正コントローラー制御値は、t
k時間での制御信号CSに含まれるコントローラー制御値であるv
kよりもe
kに近い値であればよい。修正コントローラー制御値とe
kとの差異は、v
kとe
kとの差異の絶対値である評価値よりも小さくなる。監視ユニット120が遮断信号DSを出力する可能性が低下する。
【0124】
図8では、t
k+1時間以降、ロボットコントローラー110は、修正制御信号MCSを生成して送信したが、これに限定されない。ロボットコントローラー110は、停止信号SSを受信すると、修正制御信号MCSを生成して送信してもよい。
【0125】
図10は、所定のタイミングで出力されるコントローラー制御値等を示している。
図10は、モーター41に停止動作を実行させるときのコントローラー制御値等を示している。
図10は、t
0時間もしくはt
0時間の直前に停止信号SSを受信した場合を示している。
【0126】
ロボットコントローラー110は、t0時間に停止信号SSを受信すると、t0時間でのエンコーダー出力値e0を取得する。ロボットコントローラー110は、コントローラー制御値がv0である制御信号CS及び停止信号SSをモータードライバー60に送信する。モータードライバー60は、制御信号CS及び停止信号SSを受信する。モータードライバー60は、制御信号CSに対応するドライバー信号MSをモーターユニット40に送信する。モーターユニット40は、ドライバー信号MSを受信する。モーター41は、ドライバー信号MSに基づいて出力軸43を回転させる。モーター41が出力軸43を回転させると、エンコーダー45は、回転速度を検出する。モーターユニット40は、エンコーダー出力値がe0であるエンコーダー信号ESを生成し、モータードライバー60に送信する。モータードライバー60は、エンコーダー出力値がe0であるエンコーダー信号ESをロボットコントローラー110及び監視ユニット120に送信する。ロボットコントローラー110は、エンコーダー出力値がe0であるエンコーダー信号ESを受信する。
【0127】
ロボットコントローラー110は、モーター41に停止動作を行わせる制御信号CSを生成する。ロボットコントローラー110は、エンコーダー出力値を用いる修正制御信号MCSをモーター41に停止動作を行わせる制御信号CSとして生成する。t1時間で、ロボットコントローラー110は、e0であるエンコーダー出力値を修正コントローラー制御値とする修正制御信号MCSを生成する。ロボットコントローラー110は、修正制御信号MCSをモータードライバー60に送信する。モータードライバー60は、修正制御信号MCSを受信する。
【0128】
モータードライバー60は、停止信号SSを受信すると、モーター41を停止させるドライバー信号MSを生成する。モータードライバー60は、修正制御信号MCSを受信すると、ドライバー信号MSをモーターユニット40に送信する。モーターユニット40は、ドライバー信号MSを受信する。モーター41は、ドライバー信号MSに基づいて出力軸43を減速させる。モーター41が出力軸43を減速させると、エンコーダー45は、回転速度を検出する。モーターユニット40は、エンコーダー出力値がe1であるエンコーダー信号ESを生成し、モータードライバー60に送信する。モータードライバー60は、エンコーダー出力値がe1であるエンコーダー信号ESをロボットコントローラー110及び監視ユニット120に送信する。
【0129】
ロボットコントローラー110は、エンコーダー出力値がe1であるエンコーダー信号ESを受信する。ロボットコントローラー110は、e1をコントローラー制御値とする修正制御信号MCSを生成する。t2時間に、ロボットコントローラー110は、e1をコントローラー制御値とする修正制御信号MCSをモータードライバー60に送信する。ロボットコントローラー110は、t1時間以降、エンコーダー出力値をコントローラー制御値とする修正制御信号MCSをモータードライバー60に送信する。ロボットコントローラー110は、修正制御信号MCSを送信することによって、モーター41に停止動作を行わせる。ロボットコントローラー110は、所定のタイミングで修正制御信号MCSをモータードライバー60に送信する。ロボットコントローラー110は、所定のタイミングで修正制御信号MCSを送信することによって、ロボットコントローラー110の制御下でモーター41に停止動作を行わせることができる。
【0130】
ロボット10は、出力軸43を有するモーター41と、モーター41に所定のタイミングで制御信号CSを送信するロボットコントローラー110と、制御信号CSに基づくモーター41の動作を検出してエンコーダー信号ESを出力するエンコーダー45と、制御信号CSとエンコーダー信号ESとを受信し、制御信号CSとエンコーダー信号ESとの間の差異を予め定めた許容値と比較し、差異が許容値よりも大きいときに遮断信号DSを出力する監視ユニット120と、を備える。所定の動作をモーター41に実行させるとき、ロボットコントローラー110は、コントローラー制御値がvkである制御信号CSをモーター41に送信することと、コントローラー制御値がvkである制御信号CSに基づくエンコーダー出力値がekであるエンコーダー信号ESをエンコーダー45から受信することと、エンコーダー出力値がekであるエンコーダー信号ESとの差異がコントローラー制御値がvkである制御信号CSとエンコーダー出力値がekであるエンコーダー信号ESとの間の評価値よりも小さい修正コントローラー制御値がekである修正制御信号MCSを生成することと、修正コントローラー制御値がekである修正制御信号MCSをモーター41に送信することと、を行い、監視ユニット120は、修正コントローラー制御値がekである修正制御信号MCSをロボットコントローラー110から受信することと、修正コントローラー制御値がekである修正制御信号MCSとエンコーダー信号ESとの間の差異を許容値と比較することと、を行う、。
モーター41は、所定の動作を行うとき、ロボットコントローラー110の制御に基づいて動作する。モーター41で駆動するアームの位置が制御される。ロボット10は、所定の動作を行ったのちの再起動等を短時間で行うことができる。また、修正コントローラー制御値とekとの差異は、vkとekとの差異の絶対値である評価値よりも小さくなることで、監視ユニット120が遮断信号DSを出力する可能性が低下する。換言すると、モーター41は電力の供給を停止されることによって停止する可能性が低下し、モーター41の回転軸の停止位置は不定となることが抑制される。
【0131】
ロボットコントローラー110は、許容値よりも小さい制御許容値を記憶することと、コントローラー制御値がvkである制御信号CSとエンコーダー出力値がekであるエンコーダー信号ESとの間の評価値を算出することと、評価値が制御許容値よりも大きいとき、修正コントローラー制御値がekである修正制御信号MCSを生成することと、を行う。
ロボットコントローラー110は、監視ユニット120が遮断信号DSを出力しない状態を維持してモーター41の制御を行うことができる。
【0132】
使用者の入力操作によって停止信号SSを出力する停止スイッチ150を備え、所定の動作は、停止スイッチ150から出力される停止信号SSに基づく停止動作である。
非常停止等の停止動作を使用者が行ったとき、ロボットコントローラー110は、モーター41及びモーター41のアームを所定の位置に停止させることができる。
【0133】
エンコーダー信号ESは、出力軸43の回転速度を含むことが好ましい。
ロボットコントローラー110は、出力軸43の回転速度を確認しながら制御を行うことができる。
【0134】
図11は、ロボット10で実行される制御フローを示している。
図11は、モーター41が停止動作を実行するときの制御フローを示している。
図11は、制御ユニット100で実行される制御フローをフローチャートで示している。制御フローは、ロボット10の制御方法の一例に対応する。
【0135】
ロボット10は、ステップS101で、モーター41を駆動させる。ロボット10のロボットコントローラー110は、制御信号CSに基づいて、モーター41を含むモーターユニット40を動作させる。モーター41が動作することによって、ロボットアーム20は定められた動作を行う。
【0136】
ロボット10は、モーター41が駆動しているときに、ステップS103で、停止信号SSを入力しているか否かを判別する。ロボット10は、一例として、t0時間の直前に停止信号SSを受信する。使用者が停止スイッチ150に対して入力操作を行うと、停止スイッチ150は、停止信号SSをロボットコントローラー110に送信する。ロボットコントローラー110は、停止スイッチ150から送信される停止信号SSを受信する。ロボット10は、停止信号SSを入力したと判別すると、ステップS105に進む(ステップS103:YES)。ロボット10は、停止信号SSを入力していないと判別すると、ステップS113に進む(ステップS103:NO)。
【0137】
ロボット10は、停止信号SSを入力すると、ステップS105で、制御信号CSに基づいて停止制御を行う。ロボットコントローラー110は、モーター41を停止させる制御信号CSを含む制御信号群を生成する。制御信号CSは、コントローラー制御値を含む。ロボットコントローラー110は、所定のタイミングで制御信号群に含まれる制御信号CSをモータードライバー60に送信する。モータードライバー60は、制御信号CSを受信する。モータードライバー60は、制御信号CSに対応するドライバー信号MSをモーターユニット40に送信する。モーターユニット40は、ドライバー信号MSを受信する。モーター41は、ドライバー信号MSに基づいて停止動作を行う。モーター41がドライバー信号MSに基づいて減速すると、エンコーダー45は回転速度を検出する。モーターユニット40は、回転速度をエンコーダー出力値として含むエンコーダー信号ESを生成する。モーターユニット40は、エンコーダー信号ESをモータードライバー60に送信する。モータードライバー60は、エンコーダー信号ESをロボットコントローラー110及び監視ユニット120に送信する。
【0138】
ロボット10は、エンコーダー信号ESを受信すると、ステップS107で、評価値と制御許容値とを比較する。ロボットコントローラー110は、評価値が制御許容値よりも大きいか否かを判別する。
【0139】
ロボットコントローラー110は、一例として、t1時間のときに、コントローラー制御値がv1である制御信号CSとエンコーダー出力値がe1であるエンコーダー信号ESとの間の評価値を算出する。ロボットコントローラー110は、評価値が制御許容値よりも小さいと判別する。評価値が制御許容値よりも小さいとき、ステップS105に戻る(ステップS107:NO)。
【0140】
ロボットコントローラー110は、一例として、tk時間のときに、コントローラー制御値がvkである制御信号CSとエンコーダー出力値がekであるエンコーダー信号ESとの間の評価値を算出する。ロボットコントローラー110は、評価値が制御許容値よりも大きいと判別する。評価値が制御許容値よりも大きいとき、ステップS109に進む(ステップS107:YES)。
【0141】
ロボット10は、ステップS109で、修正制御信号MCSに基づいて停止制御を行う。ロボットコントローラー110は、修正コントローラー制御値を含む修正制御信号MCSを生成する。ロボットコントローラー110は、一例として、直前に受信したエンコーダー出力値を修正コントローラー制御値とする修正制御信号MCSを生成する。ロボットコントローラー110は、tk時間で、コントローラー制御値がvkである制御信号CSとエンコーダー出力値がekであるエンコーダー信号ESを取得する。ロボットコントローラー110は、vkとekとの間の評価値よりもekとの間の差異が小さい修正コントローラー制御値を含む修正制御信号MCSを生成してもよい。ロボットコントローラー110は、修正制御信号MCSをモータードライバー60に送信する。ロボットコントローラー110は、修正制御信号MCSをモータードライバー60に送信することによって、モーター41の停止制御を行う。
【0142】
ロボット10は、ステップS111で、制御が終了したか否かを判別する。ロボットコントローラー110は、エンコーダー信号ESに基づいて停止制御が終了しているか否かを判別する。エンコーダー信号ESに含まれるエンコーダー出力値が0であるとき、ロボットコントローラー110は、停止制御を終了したと判別する(ステップS111:YES)。ロボット10は制御を終了する。エンコーダー信号ESに含まれるエンコーダー出力値が0でないとき、ロボットコントローラー110は、停止制御を終了していないと判別する(ステップS111:NO)。ロボット10は、ステップS109に戻る。
【0143】
ロボット10は、ステップS113で、制御が終了したか否かを判別する。ロボットコントローラー110は、エンコーダー信号ESに基づいて制御信号CSに基づく動作が終了しているか否かを判別する。制御信号CSによる制御が終了しているとき、ロボットコントローラー110は、制御を終了したと判別する(ステップS113:YES)。ロボット10は制御を終了する。制御信号CSによる制御が終了していないとき、ロボットコントローラー110は、制御を終了していないと判別する(ステップS113:NO)。ロボット10は、ステップS103に戻る。
【0144】
ここで、ステップS107において、評価値が制御許容値よりも小さいとき(ステップS107:NO)に、ステップS105に戻る処理を実行する構成を説明したが、これに限定されない。例えば、ロボットコントローラー110は、評価値が制御許容値よりも小さいと判別した(ステップS107:NO)後に、エンコーダー信号ESに基づいて停止制御が終了しているか否かを判別してもよい。また、エンコーダー信号ESに含まれるエンコーダー出力値が0であるとき、ロボットコントローラー110は、停止制御を終了したと判別し、ロボット10は制御を終了する構成としてもよい。
【0145】
ロボット10は、制御信号CSに基づいて動作するモーター41と、制御信号CSに基づくモーター41の動作を検出してエンコーダー信号ESを出力するエンコーダー45と、制御信号CSと制御信号CSに基づくエンコーダー信号ESとの間の差異と許容値とを比較して差異が許容値よりも大きいときに遮断信号DSを出力する監視ユニット120と、を備える。ロボット10の制御方法は、所定の動作である停止動作を実行するとき、コントローラー制御値がvkである制御信号CSをモーター41に送信することと、コントローラー制御値がvkである制御信号CSに基づくエンコーダー出力値がekであるエンコーダー信号ESをエンコーダー45から受信することと、エンコーダー出力値がekであるエンコーダー信号ESとの差異がコントローラー制御値がvkである制御信号CSとエンコーダー出力値がekであるエンコーダー信号ESとの間の評価値よりも小さい修正コントローラー制御値がekである修正制御信号MCSを生成することと、修正コントローラー制御値がekである修正制御信号MCSをモーター41に送信することと、修正制御信号MCSに基づくエンコーダー出力値がek+1であるエンコーダー信号ESをエンコーダー45から受信することと、修正制御信号MCSとエンコーダー出力値がek+1であるエンコーダー信号ESとの間の差異を許容値と比較することと、を行う。
モーター41は、所定の動作を行うとき、ロボットコントローラー110の制御に基づいて動作する。モーター41によって動作するアームの位置は制御される。ロボット10は、所定の動作を行ったのちの再起動等を短時間で行うことができる。また、修正コントローラー制御値とekとの差異は、vkとekとの差異の絶対値である評価値よりも小さくなることで、監視ユニット120が遮断信号DSを出力する可能性が低下する。換言すると、モーター41は電力の供給を停止されることによって停止する可能性が低下し、モーター41の回転軸の停止位置は不定となることが抑制される。
【0146】
図12は、ロボット10が行うワーク操作の一例を示している。
図12は、ロボット10がワークの一例である部品APを所定の位置に搬送する場合を示している。ロボット10は、図示しないエンドエフェクターで部品APを把持する。ロボット10は、部品APを搬送し、テーブルTA上の所定の位置に部品APを載置する。制御ユニット100は、ロボットアーム20をトルク制御によって、制御開始位置P0から載置位置P1に移動させる。載置位置P1は、テーブルTAの表面である。
【0147】
ロボットコントローラー110は、制御信号CSを含む制御信号群を生成する。制御信号CSは、コントローラー制御値を含む。コントローラー制御値は、出力軸43の回転位置を指示する情報である。ロボットコントローラー110は、制御信号CSを用いて、部品APの搬送を制御する。
【0148】
ロボットコントローラー110は、トルク制御を行うとき、制御移動位置P2に移動させる制御信号群を生成する。ロボットコントローラー110は、制御信号CSに基づいて、部品APを制御移動位置P2に移動させる制御を行う。ロボットコントローラー110がトルク制御を行うと、モーター41は、トルク制御動作を行う。トルク制御動作は、所定の動作の一例に対応する。
【0149】
図13は、ロボット10のブロック構成を模式的に示している。
図13は、ロボットコントローラー110がトルク制御を行うときの状態を示している。
図13は、各信号の流れと電力の供給状態とを示している。複数のモーターユニット40は、それぞれ
図13に示す各信号の流れに基づいて制御される。
図13は、エリアセンサー160を省略して示している。
【0150】
ロボットコントローラー110は、トルク制御でモーターユニット40を動作させるとき、一連の制御信号CSを含む制御信号群を生成する。ロボットコントローラー110は、制御信号群に含まれる制御信号CSを所定のタイミングでモータードライバー60に送信する。制御信号CSは、一例として、モーター41の出力軸43の回転位置を指示するコントローラー制御値を含む。ロボットコントローラー110は、モータードライバー60に制御信号CSを送信するとき、監視ユニット120に制御信号CSを送信する。ロボットコントローラー110は、トルク制御を行うとき、トルク制御を行うことを示すトルク制御信号TCを生成してもよい。ロボットコントローラー110は、トルク制御信号TCをモータードライバー60に送信する。
【0151】
モータードライバー60は、制御信号CS及びトルク制御信号TCを受信する。モータードライバー60は、制御信号CSに対応するドライバー信号MSを生成する。ドライバー信号MSは、モーターユニット40が処理可能な信号である。モータードライバー60は、コントローラー制御値を含むドライバー信号MSを生成する。モータードライバー60は、ドライバー信号MSをモーターユニット40に送信する。
【0152】
モーターユニット40は、ドライバー信号MSを受信する。モーターユニット40に含まれるモーター41は、ドライバー信号MSに含まれるコントローラー制御値に基づいて出力軸43を回転させる。エンコーダー45は、コントローラー制御値に基づいて回転する出力軸43の回転位置をエンコーダー出力値として検出する。モーターユニット40は、エンコーダー出力値を含むエンコーダー信号ESをモータードライバー60に出力する。モーターユニット40は、エンコーダー信号ESを監視ユニット120に出力してもよい。
【0153】
モータードライバー60は、エンコーダー出力値を含むエンコーダー信号ESを受信する。受信したエンコーダー信号ESは、制御信号CSに基づく信号である。モータードライバー60は、エンコーダー信号ESをロボットコントローラー110、及び監視ユニット120に送信する。モーターユニット40がエンコーダー信号ESを直接監視ユニット120に送信する場合、モータードライバー60は、監視ユニット120にエンコーダー信号ESを送信しなくてもよい。
【0154】
監視ユニット120は、制御信号CSと、制御信号CSに基づくエンコーダー信号ESとを受信する。監視ユニット120は、制御信号CSとエンコーダー信号ESとを比較する。監視ユニット120は、制御信号CSに含まれるコントローラー制御値と、エンコーダー信号ESに含まれるエンコーダー出力値と、を比較する。監視ユニット120は、コントローラー制御値とエンコーダー出力値との間の差異を算出する。監視ユニット120は、差異と許容値とを比較する。監視ユニット120は、差異が許容値よりも小さいと判定すると、モーター41が正常に動作していると判断する。監視ユニット120は、差異が許容値よりも大きいと判定すると、モーター41が動作異常であると判断する。監視ユニット120は、差異が許容値よりも大きいと判定すると、遮断ユニット80に遮断信号DSを出力する。
【0155】
ロボットコントローラー110は、制御信号CSに対応するエンコーダー信号ESを受信する。ロボットコントローラー110は、制御信号CSとエンコーダー信号ESとを比較する。監視ユニット120は、制御信号CSに含まれるコントローラー制御値と、エンコーダー信号ESに含まれるエンコーダー出力値と、を比較する。監視ユニット120は、コントローラー制御値とエンコーダー出力値との間の差異を評価値として算出する。
【0156】
ロボットコントローラー110は、メモリー130に記憶される許容値を読み出す。ロボットコントローラー110は、許容値に基づいて制御許容値を決定する。制御許容値は、予めメモリー130に記憶されてもよい。制御許容値がメモリー130に記憶されている場合、ロボットコントローラー110は、制御許容値をメモリー130から読み出す。ロボットコントローラー110は、一時的に制御許容値を記憶する。制御許容値は、許容値よりも小さい値である。制御許容値は、第2閾値の一例に対応する。
【0157】
ロボットコントローラー110は、評価値と制御許容値とを比較する。評価値が制御許容値よりも小さいとき、ロボットコントローラー110は、制御信号群に含まれる制御信号CSを用いて、引き続きモーター41を停止動作させる。評価値が制御許容値よりも大きいとき、ロボットコントローラー110は、制御信号CSを修正し、修正制御信号MCSを生成する。修正制御信号MCSは、修正コントローラー制御値を含む。ロボットコントローラー110は、一例として、修正制御信号MCSを生成する直前に受信したエンコーダー出力値を修正コントローラー制御値とする修正制御信号MCSを生成する。
【0158】
図14は、ロボット10のブロック構成を模式的に示している。
図14は、ロボットコントローラー110が修正制御信号MCSを生成したときの状態を示している。
図14は、各信号の流れと電力の供給状態とを示している。複数のモーターユニット40は、それぞれ
図14に示す各信号の流れに基づいて制御される。
図14は、エリアセンサー160を省略して示している。
【0159】
ロボットコントローラー110は、修正コントローラー制御値を含む修正制御信号MCSを所定のタイミングでモータードライバー60に送信する。ロボットコントローラー110は、修正制御信号MCSを監視ユニット120に送信する。
【0160】
モータードライバー60は、修正制御信号MCSを受信する。モータードライバー60は、修正制御信号MCSを受信すると、ドライバー信号MSをモーターユニット40に送信する。モータードライバー60は、修正制御信号MCSに対応するドライバー信号MSをモーターユニット40に送信する。
【0161】
モーターユニット40は、ドライバー信号MSを受信する。モーター41は、ドライバー信号MSに基づいて動作する。エンコーダー45は、モーター41が動作するときの出力軸43の回転位置をエンコーダー出力値として検出する。モーターユニット40は、エンコーダー出力値を含むエンコーダー信号ESをモータードライバー60に出力する。モーターユニット40は、図示しないトルクリミッターを有してもよい。モーターユニット40は、所定のトルク以上のトルクがモーター41に掛けられたとき、出力軸43に掛ける負荷を遮断する。
【0162】
モータードライバー60は、エンコーダー信号ESを受信する。エンコーダー信号ESは、修正制御信号MCSに対応する。モータードライバー60は、エンコーダー信号ESをロボットコントローラー110及び監視ユニット120に送信する。モーターユニット40が監視ユニット120に直接エンコーダー信号ESを送信している場合、モータードライバー60は、監視ユニット120にエンコーダー信号ESを送信しなくてもよい。
【0163】
監視ユニット120は、修正制御信号MCSと、修正制御信号MCSに基づくエンコーダー信号ESを受信する。監視ユニット120は、修正制御信号MCSとエンコーダー信号ESとを比較する。監視ユニット120は、修正制御信号MCSに含まれる修正コントローラー制御値と、エンコーダー信号ESに含まれるエンコーダー出力値と、を比較する。監視ユニット120は、修正コントローラー制御値とエンコーダー出力値との間の差異を算出する。監視ユニット120は、差異と許容値とを比較する。監視ユニット120は、差異が許容値よりも小さいと判定すると、モーター41が正常に動作していると判断する。監視ユニット120は、差異が許容値よりも大きいと判定すると、モーター41が動作異常であると判断する。監視ユニット120は、差異が許容値よりも大きいと判定すると、遮断ユニット80に遮断信号DSを出力する。
【0164】
修正制御信号MCSに含まれる修正コントローラー制御値は、前回受信したエンコーダー出力値である。修正コントローラー制御値と修正コントローラー制御値に基づくエンコーダー出力値との差異は、許容値よりも小さい。監視ユニット120が遮断信号DSを出力する可能性は低下する。ロボットコントローラー110は、モーターユニット40を制御して、モーター41に停止動作を行わせることができる。
【0165】
ロボットコントローラー110は、修正制御信号MCSに対応するエンコーダー信号ESを受信する。ロボットコントローラー110は、エンコーダー信号ESに含まれるエンコーダー出力値を取得する。ロボットコントローラー110は、取得したエンコーダー出力値を修正コントローラー制御値とする修正制御信号MCSを生成する。ロボットコントローラー110は、エンコーダー出力値を修正コントローラー制御値として含む修正制御信号MCSをエンコーダー信号ESを受信するごとに生成する。ロボットコントローラー110は、修正制御信号MCSをモータードライバー60に送信することによって、モーター41を動作させる。
【0166】
図15は、所定のタイミングで出力されるコントローラー制御値等を示している。
図15は、モーター41にトルク制御動作を実行させるときのコントローラー制御値等を示している。
図15は、t
0時間からトルク制御動作が行われる場合を示している。コントローラー制御値は、制御信号CSに含まれる。エンコーダー出力値は、コントローラー制御値を含む制御信号CSに対応してエンコーダー45から出力される検出値である。(評価値-制御許容値)は、各時間ごとの評価値から制御許容値を引いた結果を示している。「-」は、評価値が制御許容値よりも小さいことを示している。「+」は、評価値が制御許容値よりも大きいことを示している。
【0167】
ロボットコントローラー110は、トルク制御を行うとき、モーター41にトルク制御動作を実行させる制御信号群を生成する。ロボットコントローラー110は、一例として、t0時間からtn時間までの制御信号群を生成する。制御信号群は、n+1個のデータ群である。ここで、nは整数である。
【0168】
ロボットコントローラー110は、t
0時間にコントローラー制御値がp
0である制御信号CS及びトルク制御信号TCをモータードライバー60に送信する。p
0は、モーター41の出力軸43の回転位置に対する指示値である。
図15では、コントローラー制御値は、回転位置の指示値を示している。
【0169】
モータードライバー60は、コントローラー制御値がp0である制御信号CS及びトルク制御信号TCを受信する。モータードライバー60は、制御信号CSを受信したときにドライバー信号MSを生成する。ドライバー信号MSは、コントローラー制御値を含む。モータードライバー60は、コントローラー制御値がp0である制御信号CSを受信すると、コントローラー制御値がp0であるドライバー信号MSをモーターユニット40に送信する。
【0170】
モーターユニット40は、コントローラー制御値がp0であるドライバー信号MSを受信する。モーター41は、ドライバー信号MSに基づいて、出力軸43の回転位置をp0に向けて駆動する。モーター41が駆動をしたのち、エンコーダー45は、出力軸43の回転位置を検出する。エンコーダー45は、エンコーダー出力値がE0であると検出する。E0は、回転位置を示す。モーターユニット40は、エンコーダー出力値がE0であるエンコーダー信号ESをモータードライバー60に出力する。
【0171】
モータードライバー60は、エンコーダー出力値がE0であるエンコーダー信号ESを受信する。モータードライバー60は、エンコーダー信号ESをロボットコントローラー110及び監視ユニット120に送信する。
【0172】
ロボットコントローラー110は、エンコーダー出力値がE0であるエンコーダー信号ESを受信する。ロボットコントローラー110は、p0とE0の差異の絶対値を評価値として算出する。ロボットコントローラー110は、評価値から制御許容値を引いた値を算出する。t0時間では、評価値から制御許容値を引いた値は、-値である。評価値は、制御許容値よりも小さい。ロボットコントローラー110は、t1時間に制御信号群に含まれる制御信号CSをモータードライバー60に送信する。t1時間に送信される制御信号CSは、コントローラー制御値がp1である信号である。ロボットコントローラー110は、所定のタイミングで制御信号CSを送信し、モータードライバー60から制御信号CSに対応するエンコーダー信号ESを受信する。
【0173】
監視ユニット120は、コントローラー制御値がp0である制御信号CSとエンコーダー出力値がE0であるエンコーダー信号ESとを受信する。監視ユニット120は、p0とE0の差異の絶対値を差異として算出する。監視ユニット120は、差異と許容値とを比較する。t0時間での差異は、制御許容値よりも小さい。t0時間での差異は、許容値よりも小さい。監視ユニット120は、遮断信号DSを遮断ユニット80に送信しない。ロボットコントローラー110は、制御信号CSに基づいてモーター41に停止動作を行わせることができる。
【0174】
ロボットコントローラー110は、tm時間にコントローラー制御値がpmである制御信号CSをモータードライバー60に送信する。mは、nよりも小さい整数である。コントローラー制御値がpmである制御信号CSは、第1の制御信号の一例に対応する。モータードライバー60は、コントローラー制御値がpmである制御信号CSを受信する。モータードライバー60は、制御信号CSに対応するドライバー信号MSをモーターユニット40に送信する。モーターユニット40は、ドライバー信号MSを受信する。モーター41は、ドライバー信号MSに基づいて出力軸43を駆動させる。モーター41が駆動したとき、エンコーダー45は、出力軸43の回転位置を検出する。モーターユニット40は、エンコーダー出力値がEmであるエンコーダー信号ESをモータードライバー60に送信する。モータードライバー60は、エンコーダー出力値がEmであるエンコーダー信号ESをロボットコントローラー110及び監視ユニット120に送信する。エンコーダー出力値がEmであるエンコーダー信号ESは、第1の検出値の一例に対応する。
【0175】
ロボットコントローラー110は、エンコーダー出力値がEmであるエンコーダー信号ESを受信する。ロボットコントローラー110は、pmとEmの差異の絶対値を評価値として算出する。tm時間での評価値は、差異値の一例に対応する。ロボットコントローラー110は、評価値から制御許容値を引いた値を算出する。tm時間では、評価値から制御許容値を引いた値は、+値である。評価値は、制御許容値よりも大きい。
【0176】
ロボットコントローラー110は、評価値が制御許容値よりも大きいと判別したとき、修正制御信号MCSを生成する。ロボットコントローラー110は、コントローラー制御値がEmである修正制御信号MCSを生成する。Emは、修正コントローラー制御値である。ロボットコントローラー110は、エンコーダー出力値を修正コントローラー制御値とする。ロボットコントローラー110は、tm時間のエンコーダー出力値との差異がtm時間での評価値よりも小さい修正コントローラー制御値を含む修正制御信号MCSを生成する。ロボットコントローラー110は、修正コントローラー制御値がEmである修正制御信号MCSを生成する。修正コントローラー制御値がEmである修正制御信号MCSは、第2の制御信号の一例に対応する。ロボットコントローラー110は、tm+1時間に修正コントローラー制御値がEmである修正制御信号MCSをモータードライバー60に送信する。
【0177】
モータードライバー60は、修正コントローラー制御値がEmである修正制御信号MCSを受信する。モータードライバー60は、修正制御信号MCSに対応するドライバー信号MSをモーターユニット40に送信する。モーターユニット40は、ドライバー信号MSを受信する。モーター41は、ドライバー信号MSに基づいて出力軸43を駆動させる。モーター41が駆動したとき、エンコーダー45は、出力軸43の回転位置を検出する。モーターユニット40は、エンコーダー出力値がEm+1であるエンコーダー信号ESをモータードライバー60に送信する。モータードライバー60は、エンコーダー出力値がEm+1であるエンコーダー信号ESをロボットコントローラー110及び監視ユニット120に送信する。
【0178】
ロボットコントローラー110は、エンコーダー出力値がEm+1であるエンコーダー信号ESを受信する。ロボットコントローラー110は、EmとEm+1の差異の絶対値を評価値として算出する。ロボットコントローラー110は、評価値から制御許容値を引いた値を算出する。tm+1時間では、評価値から制御許容値を引いた値は、-値である。評価値は、制御許容値よりも小さい。ロボットコントローラー110は、修正コントローラー制御値がEm+1である修正制御信号MCSを生成する。ロボットコントローラー110は、修正コントローラー制御値がEm+1である修正制御信号MCSをモータードライバー60に送信する。
【0179】
監視ユニット120は、修正コントローラー制御値がEmである修正制御信号MCSとエンコーダー出力値がEm+1であるエンコーダー信号ESとを受信する。監視ユニット120は、EmとEm+1の差異の絶対値を差異として算出する。監視ユニット120は、差異と許容値とを比較する。tm+1時間での差異は、制御許容値よりも小さい。tm+1時間での差異は、許容値よりも小さい。監視ユニット120は、遮断信号DSを遮断ユニット80に送信しない。ロボットコントローラー110は、制御信号CSに基づいてモーター41に停止動作を行わせることができる。
【0180】
tm+1時間以降、ロボットコントローラー110は、直前に受信したエンコーダー出力値を修正コントローラー制御値とする修正制御信号MCSを生成する。ロボットコントローラー110は、修正制御信号MCSをモータードライバー60に送信する。ロボットコントローラー110は、修正制御信号MCSを送信することによって、モーター41にトルク制御動作を実行させるモーター41は、ロボットコントローラー110の制御に基づいてトルク制御動作を実行する。
【0181】
図16は、部品APの位置とモーター41に掛かるトルクの経時変化を模式的に示している。ロボットコントローラー110は、
図13、
図14及び
図15に示すトルク制御によって、部品APを移動させる。
図16は、ロボットアーム20が部品APを移動させるときの部品APの位置変動を示している。
図16は、ロボットアーム20が部品APを移動させるときにモーター41に掛かるトルクの変動を示している。
図16は、エンコーダー45によって検出された検出位置DPとコントローラー制御値であるコントローラー制御位置CPを示している。
【0182】
ロボットコントローラー110は、t0時間からモーター41にトルク制御動作を実行させる。t0時間のとき、部品APの下端は、制御開始位置P0に位置する。t0時間以降、ロボットコントローラー110は、制御信号群に含まれる制御信号CSをモータードライバー60に送信する。ロボットコントローラー110は、制御信号CSをモータードライバー60に送信することによって、モーター41を駆動させる。モーター41が駆動すると、エンコーダー45は出力軸43の回転位置を検出する。
【0183】
t0時間以降、ロボットコントローラー110は、部品APを下降させる。部品APは、制御開始位置P0から載置位置P1まで下降する。ts時間で、部品APは、載置位置P1に到達する。sは、mよりも小さい整数である。部品APは、載置位置P1に到達したのち、載置位置P1に位置する。ロボットコントローラー110は、制御移動位置P2まで移動させる制御信号CSを引き続きモータードライバー60に送信する。ロボットコントローラー110は、載置位置P1よりも下方の制御移動位置P2まで部品APを下降させる制御を行う。ロボットコントローラー110は、部品APに応力をかけることによって、所定の位置に静止させる。
【0184】
ts時間以降、ロボットコントローラー110の制御によって、モーター41に掛かるトルクは上昇する。tm時間のとき、ロボットコントローラー110は、評価値が制御許容値よりも大きいと判断する。ロボットコントローラー110は、修正コントローラー制御値を含む修正制御信号MCSを生成する。修正コントローラー制御値は、直前に受信したエンコーダー出力値に変換される。ロボットコントローラー110は、tm+1時間以降、修正制御信号MCSをモータードライバー60に送信する。tm+1時間以降、モーター41に掛かるトルクの急激な上昇は抑えられる。
【0185】
図17は、ロボット10で実行される制御フローを示している。
図17は、モーター41がトルク制御動作を実行するときの制御フローを示している。
図17は、制御ユニット100で実行される制御フローをフローチャートで示している。制御フローは、ロボット10の制御方法の一例に対応する。
【0186】
ロボット10は、ステップS201で、モーターユニット40をトルク制御で駆動させるか否かを判別する。ロボットコントローラー110は、モーターユニット40に含まれるモーター41にトルク制御動作を実行させるか否かを判別する。ロボットコントローラー110は、トルク制御でモーターユニット40を動作させないと判別したとき、ステップS203に進む(ステップS201:NO)。ロボットコントローラー110は、トルク制御でモーターユニット40を動作させると判別したとき、ステップS205に進む(ステップS201:YES)。
【0187】
ロボット10は、ステップS203で、モーターユニット40を速度制御で駆動させる。ロボットコントローラー110は、モーター41を速度制御駆動で動作させる。ロボットコントローラー110は、速度制御以外の制御でモーター41を駆動させてもよい。
【0188】
ロボット10は、ステップS205で、制御信号CSに基づいてトルク制御を行う。ロボットコントローラー110は、モーター41をトルク制御させる制御信号CSを含む制御信号群を生成する。制御信号CSは、コントローラー制御値を含む。ロボットコントローラー110は、所定のタイミングで制御信号群に含まれる制御信号CSをモータードライバー60に送信する。モータードライバー60は、制御信号CSを受信する。モータードライバー60は、制御信号CSに対応するドライバー信号MSをモーターユニット40に送信する。モーターユニット40は、ドライバー信号MSを受信する。モーター41は、ドライバー信号MSに基づいてトルク制御動作を行う。モーター41がドライバー信号MSに基づいて駆動すると、エンコーダー45は回転位置を検出する。モーターユニット40は、回転位置をエンコーダー出力値とするエンコーダー信号ESを生成する。モーターユニット40は、エンコーダー信号ESをモータードライバー60に出力する。モータードライバー60は、エンコーダー信号ESをロボットコントローラー110及び監視ユニット120に送信する。
【0189】
ロボット10は、エンコーダー信号ESを受信すると、ステップS207で、評価値と制御許容値とを比較する。ロボットコントローラー110は、評価値が制御許容値よりも大きいか否かを判別する。
【0190】
ロボットコントローラー110は、一例として、t1時間のときに、コントローラー制御値がp1である制御信号CSとエンコーダー出力値がE1であるエンコーダー信号ESとの間の評価値を算出する。ロボットコントローラー110は、評価値が制御許容値よりも小さいと判別する。評価値が制御許容値よりも小さいとき、ステップS205に戻る(ステップS207:NO)。
【0191】
ロボットコントローラー110は、一例として、tm時間のときに、コントローラー制御値がpmである制御信号CSとエンコーダー出力値がEmであるエンコーダー信号ESとの間の評価値を算出する。ロボットコントローラー110は、評価値が制御許容値よりも大きいと判別する。評価値が制御許容値よりも大きいとき、ステップS209に進む(ステップS207:YES)。
【0192】
ロボット10は、ステップS209で、修正制御信号MCSに基づいてトルク制御を行う。ロボットコントローラー110は、修正コントローラー制御値を含む修正制御信号MCSを生成する。ロボットコントローラー110は、一例として、直前に受信したエンコーダー出力値を修正コントローラー制御値とする修正制御信号MCSを生成する。ロボットコントローラー110は、tm時間で、コントローラー制御値がpmである制御信号CSとエンコーダー出力値がEmであるエンコーダー信号ESを取得する。ロボットコントローラー110は、pmとEmとの間の評価値よりもEmとの間の差異が小さい修正コントローラー制御値を含む修正制御信号MCSを生成してもよい。ロボットコントローラー110は、修正制御信号MCSをモータードライバー60に送信する。ロボットコントローラー110は、修正制御信号MCSをモータードライバー60に送信することによって、モーター41のトルク制御動作を行う。
【0193】
ロボット10は、ステップS211で、制御が終了したか否かを判別する。ロボットコントローラー110は、エンコーダー信号ESに基づいてトルク制御が終了しているか否かを判別する。ロボットコントローラー110は、トルク制御を終了したと判別すると、制御を終了する(ステップS211:YES)。ロボットコントローラー110は、トルク制御を終了していないと判別すると、ステップS209に戻る(ステップS211:NO)。
【0194】
ここで、ステップS207において、評価値が制御許容値よりも小さいとき(ステップS207:NO)に、ステップS205に戻る処理を実行する構成を説明したが、これに限定されない。例えば、ロボットコントローラー110は、評価値が制御許容値よりも小さいと判別した(ステップS207:NO)後に、エンコーダー信号ESに基づいてトルク制御が終了しているか否かを判別してもよい。また、ロボットコントローラー110は、トルク制御を終了したと判別したとき、ロボット10は制御を終了する構成としてもよい。
【0195】
所定の動作は、トルク制御動作であることが好ましい。
ロボットコントローラー110は、監視ユニット120が遮断信号DSを出力しない状態で、モーター41の駆動を制御することができる。
【0196】
エンコーダー信号ESは、出力軸43の回転位置を含むことが好ましい。
ロボットコントローラー110は、部品AP等のワークの位置を制御し易くなる。
【0197】
第2実施形態
図18は、ロボットシステム500の概略構成を示している。
図18は、ロボット10と制御装置200とを示している。
図18に示すロボットシステム500は、各種ワークの搬送、組立、検査等の各作業で用いられる。
【0198】
図18に示すロボット10の構成は、
図1に示すロボット10の構成と同じである。ロボット10は、床FLに載置される。ロボット10は、制御装置200と通信可能に接続される。
【0199】
制御装置200は、ロボット10の動作を制御する。制御装置200は、ロボット10と別体で構成される。制御装置200は、ロボット10と通信可能に接続する。制御装置200は、ケーブルを介してロボット10と有線で通信接続する。制御装置200は、無線でロボット10と通信接続してもよい。制御装置200は、ロボット10にケーブルを介して電力を供給する。制御装置200は、ロボット制御装置の一例に対応する。
【0200】
図19は、ロボットシステム500のブロック構成を示している。
図19は、ロボット10及び制御装置200に含まれる各ユニット等の配置の一例を示している。各ユニット等の配置は、
図19の構成に限定されない。
【0201】
ロボット10は、ロボットアーム20と、遮断ユニット80と、エリアセンサー160と、を備える。ロボットアーム20は、モーターユニット40と、モータードライバー60とを含む。
図19に示すロボットアーム20、モーターユニット40、モータードライバー60、遮断ユニット80、及びエリアセンサー160は、
図4に示すロボットアーム20、モーターユニット40、モータードライバー60、遮断ユニット80、及びエリアセンサー160と同じ構成である。
【0202】
モーターユニット40は、モーター41、エンコーダー45、及びブレーキ47を有する。モーター41は、モータードライバー60から送信される制御信号CSに基づいて出力軸43を回転させる。エンコーダー45は、出力軸43の回転位置、もしくは回転角度をエンコーダー信号ESとして生成する。モーターユニット40は、エンコーダー信号ESをモータードライバー60に送信する。
【0203】
モータードライバー60は、制御装置200のロボットコントローラー110から送信される制御信号CSを受信する。モータードライバー60は、制御信号CSに基づくドライバー信号MSをモーターユニット40に送信する。モータードライバー60は、エンコーダー信号ESをモーターユニット40から受信する。モータードライバー60は、エンコーダー信号ESを制御装置200のロボットコントローラー110及び監視ユニット120に送信する。
【0204】
遮断ユニット80は、制御装置200の電源ユニット70からの電力をモーターユニット40に供給もしくは遮断する。遮断ユニット80は、監視ユニット120から出力される遮断信号DSを受信すると、モーターユニット40への電力を遮断する。
【0205】
エリアセンサー160は、ロボットアーム20もしくは各アームの動作範囲を検出する。ロボットアーム20が予め定めた動作領域を超えたとき、エリアエラー信号を制御装置200に送信する。
【0206】
制御装置200は、電源ユニット70と、メモリー130と、通信インターフェイス140と、停止スイッチ150と、第1プロセッサー210と、第2プロセッサー220と、を備える。
図19に示す電源ユニット70、メモリー130、通信インターフェイス140、及び停止スイッチ150は、
図4に示す電源ユニット70、メモリー130、通信インターフェイス140、及び停止スイッチ150と同じ構成である。
【0207】
電源ユニット70は、外部電源からの電力を制御装置200内の各ユニット及びロボット10に供給する。電源ユニット70は、遮断ユニット80を介してモーターユニット40に電力を供給する。
【0208】
メモリー130は、各種データ等を記憶する。メモリー130は、第1プロセッサー210で実行されるロボット制御プログラムを記憶する。メモリー130は、第2プロセッサー220で実行される監視プログラムを記憶する。メモリー130は、ロボットコントローラー110で用いられる各種制御データを記憶する。メモリー130は、監視ユニット120で用いられる許容値等の監視データを記憶する。メモリー130は、監視ユニット120で算出される評価値、比較結果等を履歴データとして記憶する。
【0209】
通信インターフェイス140は、外部装置と通信接続するインターフェイス回路である。通信インターフェイス140は、外部装置と所定の通信プロトコルに従って、有線、もしくは無線で接続する。
【0210】
停止スイッチ150は、ロボットシステム500の使用者によって入力操作されるスイッチである。使用者は、一例として、ロボットアーム20が予期しない動作を実行したとき、停止スイッチ150に対して入力操作を行う。入力操作が行われると、停止スイッチ150は、停止信号SSをロボットコントローラー110に出力する。
【0211】
第1プロセッサー210は、CPUを有するプロセッサー回路である。第1プロセッサー210は、メモリー130に記憶されるロボット制御プログラムを実行することによって、ロボットコントローラー110として機能する。ロボットコントローラー110は、第1プロセッサー210で動作する機能部である。
図19に示すロボットコントローラー110は、
図4に示すロボットコントローラー110と同じ機能を有する。
【0212】
第2プロセッサー220は、CPUを有するプロセッサー回路である。第2プロセッサー220は、メモリー130に記憶される監視プログラムを実行することによって、監視ユニット120として機能する。監視ユニット120は、第2プロセッサー220で動作する機能部である。
図19に示す監視ユニット120は、
図4に示す監視ユニット120と同じ機能を有する。
【0213】
第1プロセッサー210と第2プロセッサー220は、
図4に示す制御ユニット100として機能する。
図19は、第1プロセッサー210と第2プロセッサー220を備えるが、この構成に限定されない。1つのプロセッサーが
図4に示す制御ユニット100として機能してもよい。
【0214】
ロボットコントローラー110は、モーター41に所定の動作を実行させるとき、モーター41を動作させる制御信号群を生成する。所定の動作は、停止動作、トルク制御動作等である。ロボットコントローラー110は、制御信号群に含まれる制御信号CSを所定のタイミングでモータードライバー60に送信する。
【0215】
モータードライバー60は、制御信号CSを受信する。モータードライバー60は、制御信号CSに対応するドライバー信号MSを生成する。モータードライバー60は、ドライバー信号MSをモーターユニット40に送信する。
【0216】
モーターユニット40は、ドライバー信号MSを受信する。モーター41は、ドライバー信号MSに基づいて動作する。エンコーダー45は、モーター41が動作を行うときの出力軸43の回転位置もしくは回転速度をエンコーダー出力値として検出する。モーターユニット40は、エンコーダー出力値を含むエンコーダー信号ESをモータードライバー60に出力する。
【0217】
モータードライバー60は、エンコーダー信号ESを受信する。エンコーダー信号ESは、制御信号CSに対応する。モータードライバー60は、エンコーダー信号ESをロボットコントローラー110及び監視ユニット120に送信する。
【0218】
監視ユニット120は、制御信号CSと、制御信号CSに基づくエンコーダー信号ESを受信する。監視ユニット120は、制御信号CSとエンコーダー信号ESとを比較する。監視ユニット120は、制御信号CSに含まれるコントローラー制御値と、エンコーダー信号ESに含まれるエンコーダー出力値と、を比較する。監視ユニット120は、コントローラー制御値とエンコーダー出力値との間の差異を算出する。監視ユニット120は、差異と許容値とを比較する。監視ユニット120は、差異が許容値よりも小さいと判定すると、モーター41が正常に動作していると判断する。監視ユニット120は、差異が許容値よりも大きいと判定すると、モーター41が動作異常であると判断する。監視ユニット120は、差異が許容値よりも大きいと判定すると、遮断ユニット80に遮断信号DSを出力する。
【0219】
ロボットコントローラー110は、制御信号CSに対応するエンコーダー信号ESを受信する。ロボットコントローラー110は、制御信号CSとエンコーダー信号ESとを比較する。監視ユニット120は、制御信号CSに含まれるコントローラー制御値と、エンコーダー信号ESに含まれるエンコーダー出力値と、を比較する。監視ユニット120は、コントローラー制御値とエンコーダー出力値との間の差異を評価値として算出する。
【0220】
ロボットコントローラー110は、メモリー130に記憶される許容値を読み出す。ロボットコントローラー110は、許容値に基づいて制御許容値を決定する。制御許容値は、予めメモリー130に記憶されてもよい。制御許容値がメモリー130に記憶されている場合、ロボットコントローラー110は、制御許容値をメモリー130から読み出す。ロボットコントローラー110は、一時的に制御許容値を記憶する。制御許容値は、許容値よりも小さい値である。
【0221】
ロボットコントローラー110は、評価値と制御許容値とを比較する。評価値が制御許容値よりも小さいとき、ロボットコントローラー110は、制御信号群に含まれる制御信号CSを用いて、引き続きモーター41を動作させる。評価値が制御許容値よりも大きいとき、ロボットコントローラー110は、制御信号CSを修正し、修正制御信号MCSを生成する。
【0222】
修正制御信号MCSは、修正コントローラー制御値を含む。修正制御信号MCSは、モーター41を停止動作させる信号である。ロボットコントローラー110は、一例として、修正制御信号MCSを生成する直前に受信したエンコーダー出力値を修正コントローラー制御値とする修正制御信号MCSを生成する。ロボットコントローラー110は、修正制御信号MCSをモータードライバー60に送信する。ロボットコントローラー110は、モーター41の動作を制御する。
【0223】
ロボットシステム500は、制御装置200とロボット10とを備える。制御装置200は、所定のタイミングで制御信号CSを送信するロボットコントローラー110、及び制御信号CSと制御信号CSに基づくエンコーダー信号ESとの間の差異と許容値とを比較して差異が許容値よりも大きいときに遮断信号DSを出力する監視ユニット120を有する。ロボット10は、出力軸43を有するモーター41、制御信号CSに基づくエンコーダー信号ESを出力するエンコーダー45を有する。所定の動作をモーター41に実行させるとき、ロボットコントローラー110は、制御信号CSを送信することと、制御信号CSに基づくエンコーダー信号ESをエンコーダー45から受信することと、エンコーダー信号ESとの差異が制御信号CSとエンコーダー信号ESとの間の評価値よりも小さい修正制御信号MCSを生成することと、修正制御信号MCSをモーター41に送信することと、を行い、前記監視部は、修正制御信号MCSをロボットコントローラー110から受信することと、修正制御信号MCSとエンコーダー信号ESとの間の差異を許容値と比較することと、を行う、。
モーター41は、所定の動作を行うとき、ロボットコントローラー110の制御に基づいて動作する。モーター41によって動作するアームの位置は制御される。ロボット10は、所定の動作を行ったのちの再起動等を短時間で行うことができる。また、修正制御信号MCSとエンコーダー信号ESとの差異は、制御信号CSとエンコーダー信号ESとの差異よりも小さくなることで、監視ユニット120が遮断信号DSを出力する可能性が低下する。換言すると、モーター41は電力の供給を停止されることによって停止する可能性が低下し、モーター41の回転軸の停止位置は不定となることが抑制される。
【0224】
図19では、遮断ユニット80は、ロボット10に設けられるが、これに限定されない。遮断ユニット80は、制御装置200に設けられてもよい。電源ユニット70は、ロボット10に設けられてもよい。各ユニットの配置は、適宜設定される。
【符号の説明】
【0225】
10…ロボット、11…基台、20…ロボットアーム、21…第1アーム、22…第2アーム、23…第3アーム、24…第4アーム、25…第5アーム、26…第6アーム、31…第1駆動部、32…第2駆動部、33…第3駆動部、34…第4駆動部、35…第5駆動部、36…第6駆動部、40…モーターユニット、40a…第1モーターユニット、40b…第2モーターユニット、40c…第3モーターユニット、40d…第4モーターユニット、40e…第5モーターユニット、40f…第6モーターユニット、41…モーター、41a…第1モーター、41b…第2モーター、41c…第3モーター、41d…第4モーター、41e…第5モーター、41f…第6モーター、43…出力軸、45…エンコーダー、45a…第1エンコーダー、45b…第2エンコーダー、45c…第3エンコーダー、45d…第4エンコーダー、45e…第5エンコーダー、45f…第6エンコーダー、47…ブレーキ、47a…第1ブレーキ、47b…第2ブレーキ、47c…第3ブレーキ、47d…第4ブレーキ、47e…第5ブレーキ、47f…第6ブレーキ、49…プーリー、51…第1関節、52…第2関節、53…第3関節、54…第4関節、55…第5関節、56…第6関節、60…モータードライバー、60a…第1モータードライバー、60b…第2モータードライバー、60c…第3モータードライバー、60d…第4モータードライバー、60e…第5モータードライバー、60f…第6モータードライバー、70…電源ユニット、80…遮断ユニット、100…制御ユニット、110…ロボットコントローラー、111…信号処理部、113…動作制御部、120…監視ユニット、121…比較部、123…信号出力部、130…メモリー、140…通信インターフェイス、150…停止スイッチ、160…エリアセンサー、200…制御装置、210…第1プロセッサー、220…第2プロセッサー、500…ロボットシステム、AP…部品、CP…コントローラー制御位置、CS…制御信号、DP…検出位置、DS…遮断信号、ES…エンコーダー信号、FL…床、L1…第1変化線、L2…第2変化線、MCS…修正制御信号、MP…モータープレート、MS…ドライバー信号、P0…制御開始位置、P1…載置位置、P2…制御移動位置、R1…第1回動軸、R2…第2回動軸、R3…第3回動軸、R4…第4回動軸、R5…第5回動軸、R6…第6回動軸、SH…軸孔、SS…停止信号、TA…テーブル、TC…トルク制御信号。