JP5740554B2 - ロボットアームの制御装置及び制御方法、ロボット、ロボットアームの制御プログラム、及び、ロボットアーム制御用集積電子回路 - Google Patents

ロボットアームの制御装置及び制御方法、ロボット、ロボットアームの制御プログラム、及び、ロボットアーム制御用集積電子回路 Download PDF

Info

Publication number
JP5740554B2
JP5740554B2 JP2010288106A JP2010288106A JP5740554B2 JP 5740554 B2 JP5740554 B2 JP 5740554B2 JP 2010288106 A JP2010288106 A JP 2010288106A JP 2010288106 A JP2010288106 A JP 2010288106A JP 5740554 B2 JP5740554 B2 JP 5740554B2
Authority
JP
Japan
Prior art keywords
robot arm
unit
information
force
control
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2010288106A
Other languages
English (en)
Other versions
JP2011088273A (ja
Inventor
津坂 優子
優子 津坂
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Panasonic Intellectual Property Management Co Ltd
Original Assignee
Panasonic Intellectual Property Management Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Panasonic Intellectual Property Management Co Ltd filed Critical Panasonic Intellectual Property Management Co Ltd
Priority to JP2010288106A priority Critical patent/JP5740554B2/ja
Publication of JP2011088273A publication Critical patent/JP2011088273A/ja
Application granted granted Critical
Publication of JP5740554B2 publication Critical patent/JP5740554B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1656Programme controls characterised by programming, planning systems for manipulators
    • B25J9/1664Programme controls characterised by programming, planning systems for manipulators characterised by motion, path, trajectory planning
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J13/00Controls for manipulators
    • B25J13/08Controls for manipulators by means of sensing devices, e.g. viewing or touching devices
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/40Robotics, robotics mapping to robotics vision
    • G05B2219/40424Online motion planning, in real time, use vision to detect workspace changes

Landscapes

  • Engineering & Computer Science (AREA)
  • Robotics (AREA)
  • Mechanical Engineering (AREA)
  • Human Computer Interaction (AREA)
  • Manipulator (AREA)

Description

本発明は、ロボットアームの動作を生成及び教示するためのロボットアームの制御装置及び制御方法、ロボットアームの制御装置を有するロボット、ロボットアームの制御プログラム、及び、ロボットアーム制御用集積電子回路に関する。
近年、介護ロボット又は家事支援ロボットなどの家庭用ロボットが盛んに開発されるようになってきた。家庭ロボットは産業用ロボットと異なり、家庭の素人が操作するため、動作を簡単に教示できる必要がある。さらに、ロボットが作業する際の動作環境も、家庭に応じて様々であるため、多種多様な家庭環境に柔軟に対応する必要がある。
ロボット装置の教示方法の一例として、ロボットの手首などに力センサを装着し、力センサの先に装着されたハンドルを教示者が直接把持してロボットを教示点に誘導し、ロボットの位置の教示を行っている(特許文献1を参照)。
特開昭59−157715号公報
しかしながら、特許文献1においては、全ての教示点を教示者が教示する必要があるため、教示に時間がかかり、非常に面倒であった。さらに、産業用分野にて、教示した動きの一部を修正する場合に、ティーチングペンダントと呼ばれる遠隔装置により、プログラミングにより修正するか、若しくは、全ての動作を一から教示しなければならず、効率が悪かった。
特に、家庭用ロボットでは、できるだけ教示する時間を短くする必要がある。さらに、ティーチングペンダンドなどの遠隔装置を用いたプログラミングの併用は、操作ステップが増大し、プログラミング言語の習得が必要となり、家庭の素人には困難である。
また、特許文献1で記載しているように、産業ロボットでは、ロボットの動作を教示する教示作業とロボットが実際に作業する本作業とは明確に分けて行っている。しかし、家庭において、教示した作業を実行する場合に、教示を行った環境とは異なる環境に変動することが頻繁に起こるため、教示作業をそのまま実行しても、環境変動によりロボットが停止したり、誤って作業をしてしまうことがある。ここで環境変動とは、ロボットが動作する際の周辺の物の位置又は状態の変動と、人又はロボットが周辺環境に対して直接作用することによる物の位置又は状態の変動を指す。例えば、家庭環境においては、家にある物の配置又は形状が様々であり、例えば、調理作業における調理前と調理後では、物の形又は状態が変わるなどの環境の変動が起こる。さらに、産業用途では、セル生産時のフレキシブル基盤などの柔軟物の形状が変化したり、配線時のコネクタの位置が頻繁に変動する。また、リサイクル工場では、解体する家電製品の形が様々であり、さらに、図37B(図37Aのネジ73の頭部73aを上から見た図)に示すようなネジの破損部分92、又は、図37Cのような汚れ部分93、図37Dのようなさび部分94などの経年変化により形状が様々である。
これらの環境変動の全てを事前に想定して教示しておくことは、困難である。
さらに、組み立て作業などの製造現場において、モデルチェンジが頻繁に発生するために、教示作業が頻繁に発生する。
そこで、環境変動又はモデルチェンジの度に、一から全ての動作を教示するのではなく、動作中のロボットに対して、人が状況の認識を行い、環境変化があれば、人がその都度ロボットに伝達することで、教示を意識させずに操作することが可能となる。また、教示時に予期していない環境の変動が起こった場合にでも、その都度、人が教示することでロボットを動作させることが可能となる。
しかしながら、この方法では、環境の変動が発生する度に、人が毎回操作をしなければならず、面倒であった。
本発明の目的は、このような課題に鑑みてなされたものであり、予測できない環境の変動があっても、作業者が簡単で短時間にロボットアームの教示を行うことが可能なロボット制御を実現することができる、ロボットアームの制御装置及び制御方法、ロボット、ロボットアームの制御プログラム、及び、ロボットアーム制御用集積電子回路を提供するものである。
上記の目的を達成するために、本発明は以下のように構成する。
本発明の第1態様によれば、ロボットアームの動作を制御する、ロボットアームの制御装置であって、
前記動作に対応する、前記ロボットアームが対象物に加える力の時系列の動作情報として記憶された動作情報データベースから前記動作情報を取得する動作情報取得部と、
作業環境が変化することを人により前記ロボットアームへ通知する通知操作に応じて、前記ロボットアームが動作する際の前記ロボットアームの周辺の前記対象物の位置及び状態に関する情報と、前記人及び前記ロボットアームが周辺環境に対して直接作用することによる前記対象物の前記位置及び前記状態に関する情報である環境情報を取得する環境情報取得部と、
前記通知操作及び前記環境情報取得部による前記環境情報を取得した後に前記人が前記ロボットアームを操作して、前記ロボットアームの前記動作を補正する際に、前記動作情報取得部で取得した前記動作情報に関連しかつ前記ロボットアームが加える力に関する補正動作情報を取得する補正動作情報取得部と
記動作情報取得部で取得した前記動作情報に設定された力で前記対象物に対して前記ロボットアームが力制御を行なうよう前記ロボットアームを力制御モードで制御する制御部と、
前記制御部により前記ロボットアームを前記力制御モードで制御している最中に前記補正動作情報取得部で取得したそれぞれの時間での前記補正動作情報に応じて前記動作情報を補正するとともに、前記通知操作の終了に基づき前記動作情報の補正を開始する動作補正部と、
前記ロボットアームの前記人の前記通知操作に応じて、前記環境情報取得部で取得する前記環境情報を決定するとともに、前記動作補正部で補正された前記動作情報と前記環境情報取得部で取得した前記環境情報とを対応付けることにより、前記ロボットアームが自動で動作するための制御ルールを生成する制御ルール生成部とを備えて、
前記環境情報取得部で取得した前記環境情報を参照しながら、前記制御ルール生成部により生成された前記制御ルールに基づいて、前記ロボットアームの前記動作を制御するとともに、
前記環境情報取得部は、前記ロボットアームに加えられた前記人の力を検出する力検出部と、
前記力検出部で検出された前記人の前記力が閾値以上であり、かつ、前記人の前記力の検出時間が一定時間以上続いた場合に前記通知操作が開始されたと判断し、前記力検出部で検出された前記人の前記力が前記閾値未満であるか、又は、前記人の前記力の検出時間が前記一定時間未満の場合に前記通知操作が終了したと判断して、判断結果を前記動作補正部に出力する動作指令部とを備えて、
前記力検出部で検出された前記人の力とその検出時間とに応じて前記人が前記ロボットアームを操作したことを検出して、前記ロボットアームの前記動作を補正する際の前記ロボットアームが加える力に関する前記補正動作情報を前記補正動作情報取得部で取得する、
ロボットアームの制御装置を提供する。
本発明の第2態様によれば、前記ロボットアームと、
前記ロボットアームを制御する第1の態様に記載の前記ロボットアームの制御装置とを備えるロボットを提供する。
本発明の第態様によれば、ロボットアームの動作を制御する、ロボットアームの制御方法であって、
前記動作に対応する、前記ロボットアームが対象物に加える力の時系列の動作情報として記憶された動作情報データベースから前記動作情報を動作情報取得部で取得し、
作業環境が変化することを人により前記ロボットアームへ通知する通知操作に応じて、前記ロボットアームが動作する際の前記ロボットアームの周辺の前記対象物の位置及び状態に関する情報と、前記人及び前記ロボットアームが周辺環境に対して直接作用することによる前記対象物の前記位置及び前記状態に関する情報である環境情報を環境情報取得部で取得し、
前記通知操作及び前記環境情報取得部による前記環境情報を取得した後に前記人が前記ロボットアームを操作して、前記ロボットアームの前記動作を補正する際に、前記動作情報取得部で取得した前記動作情報に関連しかつ前記ロボットアームが加える力に関する補正動作情報を補正動作情報取得部で取得し
記動作情報取得部で取得した前記動作情報に設定された力で前記対象物に対して前記ロボットアームが力制御を行なうよう前記ロボットアームを力制御モードで制御部で制御し、
前記制御部により前記ロボットアームを前記力制御モードで制御している最中に前記補正動作情報取得部で取得したそれぞれの時間での前記補正動作情報に応じて前記動作情報を動作補正部で補正するとともに、前記通知操作の終了に基づき前記動作情報の補正を開始し、
前記ロボットアームの前記人の前記通知操作に応じて、前記環境情報取得部で取得する前記環境情報を決定するとともに、前記動作補正部で補正された前記動作情報と前記環境情報取得部で取得した前記環境情報とを対応付けることにより、前記ロボットアームが自動で動作するための制御ルールを制御ルール生成部で生成し、
前記環境情報取得部で取得した前記環境情報を参照しながら、前記制御ルール生成部により生成された前記制御ルールに基づいて、前記ロボットアームの前記動作を制御するとともに、
前記環境情報取得部は力検出部と動作指令部とを備えており、前記ロボットアームに加えられた前記人の力を前記力検出部で検出するとともに、
前記力検出部で検出された前記人の前記力が閾値以上であり、かつ、前記人の前記力の検出時間が一定時間以上続いた場合に前記通知操作が開始されたと判断し、前記力検出部で検出された前記人の前記力が前記閾値未満であるか、又は、前記人の前記力の検出時間が前記一定時間未満の場合に前記通知操作が終了したと判断して、判断結果を前記動作補正部に動作指令部で出力し、
前記力検出部で検出された前記人の力とその検出時間とに応じて前記人が前記ロボットアームを操作したことを検出して、前記ロボットアームの前記動作を補正する際の前記ロボットアームが加える力に関する前記補正動作情報を前記補正動作情報取得部で取得する、
ロボットアームの制御方法を提供する。
本発明の第態様によれば、ロボットアームの動作を制御する、ロボットアームの制御プログラムであって、
前記動作に対応する、前記ロボットアームが対象物に加える力の時系列の動作情報として記憶された動作情報データベースから前記動作情報を動作情報取得部で取得するステップと、
作業環境が変化することを人により前記ロボットアームへ通知する通知操作に応じて、前記ロボットアームが動作する際の前記ロボットアームの周辺の前記対象物の位置及び状態に関する情報と、前記人及び前記ロボットアームが周辺環境に対して直接作用することによる前記対象物の前記位置及び前記状態に関する情報である環境情報を環境情報取得部で取得するステップと、
前記通知操作及び前記環境情報取得部による前記環境情報を取得した後に前記人が前記ロボットアームを操作して、前記ロボットアームの前記動作を補正する際に、前記動作情報取得部で取得した前記動作情報に関連しかつ前記ロボットアームが加える力に関する補正動作情報を補正動作情報取得部で取得するステップと
記動作情報取得部で取得した前記動作情報に設定された力で前記対象物に対して前記ロボットアームが力制御を行なうよう前記ロボットアームを力制御モードで制御部で制御するステップと、
前記制御部により前記ロボットアームを前記力制御モードで制御している最中に前記補正動作情報取得部で取得したそれぞれの時間での前記補正動作情報に応じて前記動作情報を動作補正部で補正するとともに、前記通知操作の終了に基づき前記動作情報の補正を開始するステップと、
前記ロボットアームの前記人の前記通知操作に応じて、前記環境情報取得部で取得する前記環境情報を決定するとともに、前記動作補正部で補正された前記動作情報と前記環境情報取得部で取得した前記環境情報とを対応付けることにより、前記ロボットアームが自動で動作するための制御ルールを制御ルール生成部で生成するステップと、
前記環境情報取得部で取得した前記環境情報を参照しながら、前記制御ルール生成部により生成された前記制御ルールに基づいて、前記ロボットアームの前記動作を制御するステップとを実行させるとともに、
前記環境情報取得部で前記環境情報を取得するステップでは、
前記ロボットアームに加えられた前記人の力を力検出部で検出するステップと、
前記力検出部で検出された前記人の前記力が閾値以上であり、かつ、前記人の前記力の検出時間が一定時間以上続いた場合に前記通知操作が開始されたと判断し、前記力検出部で検出された前記人の前記力が前記閾値未満であるか、又は、前記人の前記力の検出時間が前記一定時間未満の場合に前記通知操作が終了したと判断して、判断結果を前記動作補正部に動作指令部で出力するステップとを実行させ、
前記補正動作情報取得部で前記補正動作情報を取得するステップでは、前記力検出部で検出された前記人の力とその検出時間とに応じて前記人が前記ロボットアームを操作したことを検出して、前記ロボットアームの前記動作を補正する際の前記ロボットアームが加える力に関する前記補正動作情報を前記補正動作情報取得部で取得するためのロボットアームの制御プログラムを提供する。
本発明の第態様によれば、ロボットアームの動作を制御する、ロボットアーム制御用集積電子回路であって、
前記動作に対応する、前記ロボットアームが対象物に加える力の時系列の動作情報として記憶された動作情報データベースから前記動作情報を動作情報取得部で取得し、
作業環境が変化することを人により前記ロボットアームへ通知する通知操作に応じて、前記ロボットアームが動作する際の前記ロボットアームの周辺の前記対象物の位置及び状態に関する情報と、前記人及び前記ロボットアームが周辺環境に対して直接作用することによる前記対象物の前記位置及び前記状態に関する情報である環境情報を環境情報取得部で取得し、
前記通知操作及び前記環境情報取得部による前記環境情報を取得した後に前記人が前記ロボットアームを操作して、前記ロボットアームの前記動作を補正する際に、前記動作情報取得部で取得した前記動作情報に関連しかつ前記ロボットアームが加える力に関する補正動作情報を補正動作情報取得部で取得し
記動作情報取得部で取得した前記動作情報に設定された力で前記対象物に対して前記ロボットアームが力制御を行なうよう前記ロボットアームを力制御モードで制御部で制御し、
前記制御部により前記ロボットアームを前記力制御モードで制御している最中に前記補正動作情報取得部で取得したそれぞれの時間での前記補正動作情報に応じて前記動作情報を動作補正部で補正するとともに、前記通知操作の終了に基づき前記動作情報の補正を開始し、
前記ロボットアームの前記人の前記通知操作に応じて、前記環境情報取得部で取得する前記環境情報を決定するとともに、前記動作補正部で補正された前記動作情報と前記環境情報取得部で取得した前記環境情報とを対応付けることにより、前記ロボットアームが自動で動作するための制御ルールを制御ルール生成部で生成し、
前記環境情報取得部で取得した前記環境情報を参照しながら、前記制御ルール生成部により生成された前記制御ルールに基づいて、前記ロボットアームの前記動作を制御するとともに、
前記環境情報取得部は力検出部と動作指令部とを備えており、前記ロボットアームに加えられた前記人の力を前記力検出部で検出するとともに、
前記力検出部で検出された前記人の前記力が閾値以上であり、かつ、前記人の前記力の検出時間が一定時間以上続いた場合に前記通知操作が開始されたと判断し、前記力検出部で検出された前記人の前記力が前記閾値未満であるか、又は、前記人の前記力の検出時間が前記一定時間未満の場合に前記通知操作が終了したと判断して、判断結果を前記動作補正部に動作指令部で出力し、
前記力検出部で検出された前記人の力とその検出時間とに応じて前記人が前記ロボットアームを操作したことを検出して、前記ロボットアームの前記動作を補正する際の前記ロボットアームが加える力に関する前記補正動作情報を前記補正動作情報取得部で取得する、
ロボットアーム制御用集積電子回路を提供する。
以上述べたように、本発明は、周辺環境が変化した際に、人がロボットアームを操作して動作を補正することで、次回同じ環境になった場合に、環境情報取得部で取得した環境情報を参照しながら、制御ルール生成部により生成された制御ルールに基づいてロボットアームを自律的に動作させることが可能となる。
本発明のこれらと他の目的と特徴は、添付された図面についての好ましい実施形態に関連した次の記述から明らかになる。この図面においては、
図1Aは、本発明の第1実施形態における、ロボットアームとその制御装置とを備えるロボットの構成の概要を示す図であり、 図1Bは、本発明の前記第1実施形態における前記ロボット及びその周辺環境の概要を示す図であり、 図1Cは、本発明の前記第1実施形態における前記ロボット及びその周辺環境の概要を示す図であり、 図2は、本発明の前記第1実施形態におけるロボットを構成する前記制御装置と制御対象である前記ロボットアームとの詳細構成を示す図であり、 図3Aは、本発明の前記第1実施形態における座標系に関する図であり、 図3Bは、本発明の前記第1実施形態における座標系に関する図であり、 図3Cは、本発明の前記第1実施形態における座標系に関する図であり、 図4は、本発明の前記第1実施形態における前記制御装置の制御部の構成を示すブロック図であり、 図5Aは、前記制御装置の動作情報データベースのデータである動作情報を説明する図であり、 図5Bは、前記制御装置の前記動作情報データベースのデータである動作情報を説明する図であり、 図5Cは、前記制御装置の前記動作情報データベースのデータである動作情報を説明する図であり、 図6は、前記制御装置の前記動作情報データベースのフラグの情報を説明する図であり、 図7は、前記制御装置の前記動作情報データベースの補正パラメータフラグに関する情報を説明する図であり、 図8は、本発明の前記第1実施形態における前記ロボットアームの制御装置の動作及び人の操作状態を示す図であり、 図9Aは、前記制御装置の環境情報データベースの環境情報の一覧表を説明する図であり、 図9Bは、前記制御装置の前記環境情報データベースのフラグの情報を説明する図であり、 図10Aは、前記制御装置の制御ルールデータベースの制御ルールの一覧表を説明する図であり、 図10Bは、前記制御装置の前記制御ルールデータベースの制御ルールの一覧表を説明する図であり、 図11Aは、前記制御装置の検出部選択ルールデータベースの検出部選択ルールの一覧表を説明する図であり、 図11Bは、前記制御装置の前記検出部選択ルールデータベースの検出部選択ルールの環境情報の種別に関する情報を説明する図であり、 図12は、本発明の前記第1実施形態における前記ロボットアームの制御装置の動作状態を示す図であり、 図13Aは、本発明の前記第1実施形態における前記ロボットアームの制御装置の動作状態を示す図であり、 図13Bは、本発明の前記第1実施形態における前記ロボットアームの制御装置の動作状態を示す図であり、 図13Cは、本発明の前記第1実施形態における前記ロボットアームの制御装置の動作及び人の操作状態を示す図であり、 図13Dは、本発明の前記第1実施形態における前記ロボットアームの制御装置の動作及び人の操作状態を示す図であり、 図13Eは、本発明の前記第1実施形態における前記ロボットアームの制御装置の動作状態を示す図であり、 図14は、本発明の前記第1実施形態における環境情報の画像の例を示す図であり、 図15は、本発明の前記第1実施形態における前記ロボットアームの制御装置の動作状態を示す図であり、 図16は、本発明の前記第1実施形態における前記制御部の動作ステップを表すフローチャートであり、 図17Aは、本発明の前記第1実施形態における動作指令部の動作ステップを表すフローチャートであり、 図17Bは、本発明の前記第1実施形態における動作補正部と動作指令部と制御ルール生成部と環境情報取得部と制御パラメータ管理部との動作ステップを表すフローチャートであり、 図18Aは、本発明の第2実施形態におけるロボットアームの制御装置の動作及び人の操作状態を示す図であり、 図18Bは、本発明の前記第2実施形態における前記ロボットアームの制御装置の動作及び人の操作状態を示す図であり、 図19Aは、本発明の前記第2実施形態における前記ロボットアームの制御装置の動作状態を示す図であり、 図19Bは、本発明の前記第2実施形態における前記ロボットアームの制御装置の動作及び人の操作状態を示す図であり、 図19Cは、本発明の前記第2実施形態における前記ロボットアームの制御装置の動作状態を示す側面図であり、 図19Dは、本発明の前記第2実施形態における前記ロボットアームの制御装置の動作状態を示す平面図であり、 図19Eは、本発明の前記第2実施形態における前記ロボットアームの制御装置の動作状態を示す平面図であり、 図20は、本発明の前記第2実施形態における環境情報の画像の例を示す図であり、 図21は、本発明の第3実施形態におけるロボットの概要を示す図であり、 図22Aは、前記第3実施形態におけるロボットのロボットアームの制御装置の動作情報データベースの動作情報の一覧表を説明する図であり、 図22Bは、前記第3実施形態におけるロボットのロボットアームの制御装置の前記動作情報データベースの動作情報の一覧表を説明する図であり、 図23は、前記第3実施形態におけるロボットのロボットアームの制御装置の前記動作情報データベースのフラグの情報を説明する図であり、 図24Aは、本発明の前記第3実施形態における前記ロボットアームの制御装置の動作状態を示す図であり、 図24Bは、本発明の前記第3実施形態における前記ロボットアームの制御装置の動作状態を示す図であり、 図25は、本発明の前記第3実施形態における環境情報の画像の例を示す図であり、 図26Aは、本発明の前記第3実施形態における前記ロボットアームの制御装置の動作状態を示す図(ただし、図の簡略化のため、電動ドライバ器具を省略して、ハンドにネジを直接把持した状態で図示している。)であり、 図26Bは、本発明の前記第3実施形態における前記ロボットアームの制御装置の動作状態を示す図(ただし、図の簡略化のため、電動ドライバ器具を省略して、ハンドにネジを直接把持した状態で図示している。)であり、 図26Cは、本発明の前記第3実施形態における前記ロボットアームの制御装置の動作及び人の操作状態を示す図(ただし、図の簡略化のため、電動ドライバ器具を省略して、ハンドにネジを直接把持した状態で図示している。)であり、 図26Dは、本発明の前記第3実施形態における前記ロボットアームの制御装置の動作及び人の操作状態を示す図(ただし、図の簡略化のため、電動ドライバ器具を省略して、ハンドにネジを直接把持した状態で図示している。)であり、 図27は、本発明の前記第3実施形態における前記ロボットアームの制御装置の環境情報の画像の例を示す図であり、 図28Aは、本発明の前記第3実施形態におけるロボットアームの制御装置の動作状態を示す図(ただし、図の簡略化のため、電動ドライバ器具を省略して、ハンドにネジを直接把持した状態で図示している。)であり、 図28Bは、本発明の前記第3実施形態におけるロボットアームの制御装置の動作状態を示す図(ただし、図の簡略化のため、電動ドライバ器具を省略して、ハンドにネジを直接把持した状態で図示している。)であり、 図28Cは、本発明の前記第3実施形態におけるロボットアームの制御装置の動作状態を示す図(ただし、図の簡略化のため、電動ドライバ器具を省略して、ハンドにネジを直接把持した状態で図示している。)であり、 図29は、本発明の前記第1実施形態における動作指令部の動作ステップを表すフローチャートであり、 図30Aは、前記第1実施形態における人のかける力とその時刻の関係を示す図であり、 図30Bは、前記第1実施形態における人のかける力とその時刻の関係を示す図であり、 図31は、本発明の第4実施形態におけるロボットアームの制御装置の構成の概要を示す図であり、 図32Aは、前記第4実施形態における動作情報データベースの動作情報の一覧表を説明する図であり、 図32Bは、前記第4実施形態における前記動作情報データベースの動作情報の一覧表を説明する図であり、 図33Aは、本発明の前記第4実施形態における前記ロボットアームの制御装置の動作状態を示す図であり、 図33Bは、本発明の前記第4実施形態における前記ロボットアームの制御装置の動作状態を示す図であり、 図33Cは、本発明の前記第4実施形態における前記ロボットアームの制御装置の動作状態を示す図であり、 図34は、本発明の前記第4実施形態における環境情報の画像の例を示す図であり、 図35Aは、本発明の前記第4実施形態における前記ロボットアームの制御装置の動作状態を示す図であり、 図35Bは、本発明の前記第4実施形態における前記ロボットアームの制御装置の動作状態を示す図であり、 図35Cは、本発明の前記第4実施形態における前記ロボットアームの制御装置の動作及び人の操作状態を示す図であり、 図35Dは、本発明の前記第4実施形態における前記ロボットアームの制御装置の動作及び人の操作状態を示す図であり、 図35Eは、本発明の前記第4実施形態における前記ロボットアームの制御装置の動作状態を示す図であり、 図36Aは、本発明の前記第1実施形態における前記ロボットアームの制御装置の動作状態を示す図であり、 図36Bは、本発明の前記第1実施形態における前記ロボットアームの制御装置の動作状態を示す図であり、 図36Cは、本発明の前記第1実施形態における前記ロボットアームの制御装置の動作状態を示す図であり、 図36Dは、本発明の前記第1実施形態における前記ロボットアームの制御装置の動作状態を示す図であり、 図36Eは、本発明の前記第1実施形態における前記ロボットアームの制御装置の動作状態を示す図であり、 図36Fは、本発明の前記第1実施形態における前記ロボットアームの制御装置の動作状態を示す図であり、 図36Gは、本発明の前記第1実施形態における前記ロボットアームの制御装置の動作状態を示す図であり、 図37Aは、従来のネジの斜視図であり、 図37Bは、従来の破損部分のあるネジの頭部の平面図であり、 図37Cは、従来の汚れ部分のあるネジの頭部の平面図であり、 図37Dは、従来のさび部分のあるネジの頭部の平面図である。
以下に、本発明にかかる実施の形態を図面に基づいて詳細に説明する。
以下、図面を参照して本発明における実施形態を詳細に説明する前に、本発明の種々の態様について説明する。
本発明の第1態様によれば、ロボットアームの動作を制御する、ロボットアームの制御装置であって、
前記動作に対応する、前記ロボットアームが対象物に加える力の時系列の動作情報として記憶された動作情報データベースから前記動作情報を取得する動作情報取得部と、
人が前記ロボットアームを操作して、前記ロボットアームの前記動作を補正する際に、前記動作情報取得部で取得した前記動作情報に関連しかつ前記ロボットアームが加える力に関する補正動作情報を取得する補正動作情報取得部と、
前記ロボットアームが作用する前記対象物に関する情報である環境情報を前記ロボットアームへの前記人の環境変化通知操作に応じて取得する環境情報取得部と、
前記動作情報取得部で取得した前記動作情報に設定された力で前記対象物に対して前記ロボットアームが力制御を行なうよう前記ロボットアームを力制御モードで制御する制御部と、
前記制御部により前記ロボットアームを前記力制御モードで制御している最中に前記補正動作情報取得部で取得したそれぞれの時間での前記補正動作情報に応じて前記動作情報を補正する動作補正部と、
前記ロボットアームの前記人の前記環境変化通知操作に応じて、前記環境情報取得部で取得する前記環境情報を決定するとともに、前記動作補正部で補正された前記動作情報と前記環境情報取得部で取得した前記環境情報とを対応付けることにより、前記ロボットアームが自動で動作するための制御ルールを生成する制御ルール生成部とを備えて、
前記環境情報取得部で取得した前記環境情報を参照しながら、前記制御ルール生成部により生成された前記制御ルールに基づいて、前記ロボットアームの前記動作を制御するロボットアームの制御装置を提供する。
本発明の第2態様によれば、前記環境情報取得部は、前記ロボットアームに加えられた前記人の力を検出する力検出部を備えて、
前記力検出部で検出された前記人の力とその検出時間とに応じて前記人が前記ロボットアームを操作したことを検出して、前記ロボットアームの前記動作を補正する際の前記ロボットアームが加える力に関する前記補正動作情報を前記補正動作情報取得部で取得する第1の態様に記載のロボットアームの制御装置を提供する。
本発明の第3態様によれば、前記環境情報取得部は、前記ロボットアームに加えられた前記人の力を検出する力検出部を備えて、
前記制御ルール生成部は、前記人の前記ロボットアームの操作時の前記ロボットアームの前記力制御モードに応じて、制御ルール生成の際に前記力検出部で取得した環境情報を使用する第1の態様に記載のロボットアームの制御装置を提供する。
本発明の第4態様によれば、前記環境変化通知操作と、前記人が前記ロボットアームを操作して、前記ロボットアームの前記動作を補正する動作補正操作とが同じ操作である場合は、前記動作補正操作の代わりに前記環境変化通知操作を使用する第1の態様に記載のロボットアームの制御装置を提供する。
本発明の第5態様によれば、前記環境情報は、複数種類の検出方向から検出され取得された環境情報を有し、
前記制御ルール生成部は、前記ロボットアームの前記人の操作に応じて取得する前記環境情報の検出方向を決定する第4の態様に記載のロボットアームの制御装置を提供する。
本発明の第6態様によれば、前記制御ルール生成部で生成された制御ルールのうちの複数の動作情報から、前記環境情報取得部で取得した前記環境情報を参照して1つの動作情報を算出する動作算出部をさらに備える第1の態様に記載のロボットアームの制御装置を提供する。
本発明の第7態様によれば、前記人が前記ロボットアームを操作して、前記ロボットアームの前記動作を補正して、前記動作情報取得部で取得した前記動作情報のうちの少なくとも1つ以上の前記動作情報に対応する補正動作情報を前記補正動作情報取得部で取得したのち、
前記環境情報取得部で取得した前記環境情報が、前記補正の操作時の前記環境情報と同じであるときに、前記制御ルール生成部により生成された前記制御ルールに基づいて、前記ロボットアームの前記動作を、前記補正動作情報取得部で取得した前記補正動作情報に基づき補正するように制御する第1の態様に記載のロボットアームの制御装置を提供する。
本発明の第8態様によれば、前記環境情報取得部は、前記ロボットアーム及び前記ロボットアームの前記動作を行う周辺環境を撮像可能な複数の画像撮像装置を備え、
前記ロボットアームの先端には、フレキシブル基板を着脱可能に把持可能なハンドを備え、前記フレキシブル基板は前記対象物であり、
前記複数の画像撮像装置で取得した前記環境情報を参照しながら、前記制御ルール生成部により生成された前記制御ルールに基づいて、前記ロボットアームの前記ハンドに把持した前記フレキシブル基板を機器に取り付ける作業において前記ロボットアームの前記動作を制御する、第1の態様に記載のロボットアームの制御装置を提供する。
本発明の第9態様によれば、ロボットアームの動作を制御する、ロボットアームの制御方法であって、
前記動作に対応する、前記ロボットアームが対象物に加える力の時系列の動作情報として記憶された動作情報データベースから前記動作情報を動作情報取得部で取得し、
人が前記ロボットアームを操作して、前記ロボットアームの前記動作を補正する際に、前記動作情報取得部で取得した前記動作情報に関連しかつ前記ロボットアームが加える力に関する補正動作情報を補正動作情報取得部で取得し、
前記ロボットアームが作用する前記対象物に関する情報である環境情報を前記ロボットアームへの前記人の環境変化通知操作に応じて環境情報取得部で取得し、
前記動作情報取得部で取得した前記動作情報に設定された力で前記対象物に対して前記ロボットアームが力制御を行なうよう前記ロボットアームを力制御モードで制御部で制御し、
前記制御部により前記ロボットアームを前記力制御モードで制御している最中に前記補正動作情報取得部で取得したそれぞれの時間での前記補正動作情報に応じて前記動作情報を動作補正部で補正し、
前記ロボットアームの前記人の前記環境変化通知操作に応じて、前記環境情報取得部で取得する前記環境情報を決定するとともに、前記動作補正部で補正された前記動作情報と前記環境情報取得部で取得した前記環境情報とを対応付けることにより、前記ロボットアームが自動で動作するための制御ルールを制御ルール生成部で生成し、
前記環境情報取得部で取得した前記環境情報を参照しながら、前記制御ルール生成部により生成された前記制御ルールに基づいて、前記ロボットアームの前記動作を制御するロボットアームの制御方法を提供する。
本発明の第10態様によれば、前記ロボットアームと、
前記ロボットアームを制御する第1〜8のいずれか1つの態様に記載の前記ロボットアームの制御装置とを備えるロボットを提供する。
本発明の第11態様によれば、ロボットアームの動作を制御する、ロボットアームの制御プログラムであって、
前記動作に対応する、前記ロボットアームが対象物に加える力の時系列の動作情報として記憶された動作情報データベースから前記動作情報を動作情報取得部で取得するステップと、
人が前記ロボットアームを操作して、前記ロボットアームの前記動作を補正する際に、前記動作情報取得部で取得した前記動作情報に関連しかつ前記ロボットアームが加える力に関する補正動作情報を補正動作情報取得部で取得するステップと、
前記ロボットアームが作用する前記対象物に関する情報である環境情報を前記ロボットアームへの前記人の環境変化通知操作に応じて環境情報取得部で取得するステップと、
前記動作情報取得部で取得した前記動作情報に設定された力で前記対象物に対して前記ロボットアームが力制御を行なうよう前記ロボットアームを力制御モードで制御部で制御するステップと、
前記制御部により前記ロボットアームを前記力制御モードで制御している最中に前記補正動作情報取得部で取得したそれぞれの時間での前記補正動作情報に応じて前記動作情報を動作補正部で補正するステップと、
前記ロボットアームの前記人の前記環境変化通知操作に応じて、前記環境情報取得部で取得する前記環境情報を決定するとともに、前記動作補正部で補正された前記動作情報と前記環境情報取得部で取得した前記環境情報とを対応付けることにより、前記ロボットアームが自動で動作するための制御ルールを制御ルール生成部で生成するステップと、
前記環境情報取得部で取得した前記環境情報を参照しながら、前記制御ルール生成部により生成された前記制御ルールに基づいて、前記ロボットアームの前記動作を制御するステップとを実行させるためのロボットアームの制御プログラムを提供する。
本発明の第12態様によれば、ロボットアームの動作を制御する、ロボットアーム制御用集積電子回路であって、
前記動作に対応する、前記ロボットアームが対象物に加える力の時系列の動作情報として記憶された動作情報データベースから前記動作情報を動作情報取得部で取得し、
人が前記ロボットアームを操作して、前記ロボットアームの前記動作を補正する際に、前記動作情報取得部で取得した前記動作情報に関連しかつ前記ロボットアームが加える力に関する補正動作情報を補正動作情報取得部で取得し、
前記ロボットアームが作用する前記対象物に関する情報である環境情報を前記ロボットアームへの前記人の環境変化通知操作に応じて環境情報取得部で取得し、
前記動作情報取得部で取得した前記動作情報に設定された力で前記対象物に対して前記ロボットアームが力制御を行なうよう前記ロボットアームを力制御モードで制御部で制御し、
前記制御部により前記ロボットアームを前記力制御モードで制御している最中に前記補正動作情報取得部で取得したそれぞれの時間での前記補正動作情報に応じて前記動作情報を動作補正部で補正し、
前記ロボットアームの前記人の前記環境変化通知操作に応じて、前記環境情報取得部で取得する前記環境情報を決定するとともに、前記動作補正部で補正された前記動作情報と前記環境情報取得部で取得した前記環境情報とを対応付けることにより、前記ロボットアームが自動で動作するための制御ルールを制御ルール生成部で生成し、
前記環境情報取得部で取得した前記環境情報を参照しながら、前記制御ルール生成部により生成された前記制御ルールに基づいて、前記ロボットアームの前記動作を制御するロボットアーム制御用集積電子回路を提供する。
以下、本発明の各実施形態について図面を用いて詳細に説明する。
(第1実施形態)
本発明の第1実施形態における、ロボットアームとその制御装置とを備えるロボット1の構成について説明する。
図1Aは、本発明の第1実施形態におけるロボットアーム5と、そのロボットアーム5を駆動制御する制御装置70とを備えるロボット1の概要を示す。図1Bは、ロボットアーム5が作業を行う図1Aの作業台7を上方から見た図であり、図1Cは図1Aの作業台7及び鍋3を正面から見た図である。
(装置構成)
図1Aに示すように、ロボット1のロボットアーム5は、例えば家庭内のキッチン又はテーブルなどの作業台7の壁面7aに設置される。ロボットアーム5の基端5aが、壁面7aに固定されたレール8に対して移動可能な状態で支持され、ロボットアーム5が、レール8上に沿って横方向(例えば水平方向)に、人4Aの手4の力により、移動可能としている。ロボットアーム5の基端の固定場所は、作業台7の壁面7aに限られるものではなく、天井などでもよい。
後述する環境情報取得部19の一例としての、カメラなどの第1及び第2画像撮像装置15a及び15bは、ロボットアーム5及びロボットアーム5の動作を行う周辺環境を撮像して環境情報を取得可能としている。本第1実施形態において、第1画像撮像装置15aは、図1Cに示すように、天井7bから作業台7の全体を撮像可能なように天井7bから下向きに取り付けられ、第2画像撮像装置15bは、図1B、図1Cに示すように、作業台7の上面7dと平行に作業台7の側面7cに取り付けられ、作業台7の上面付近を横方向から撮像可能としている。
ロボット1の操作を指示する操作盤13は、データ入力IF26の一例として機能し、IHクッキングヒーター又はガスコンロなどの調理装置6の前側側面に配置されている。操作盤13は、ユーザによる操作指示を入力するための操作ボタン13a又は音声入力装置などが設けられている。
ロボットアーム5の先端にはハンド30が設けられ、ハンド30は作業用冶具9(例えばレードルなどの調理用具、又は、拭き掃除用モップなど、又は、電動ドライバ器具72など)を着脱可能に把持する。ハンド30としては、例えば、機械的チャックなど公知の着脱可能な取り付け機構を使用することができる。
表示手段の一例としての表示部95は、例えば作業台7に設置されたディスプレイ装置であり、後述するロボットの動作などを表示部95に表示する。すなわち、表示部95は、必要に応じて、必要な情報を表示部95に表示して、本発明の様々な動作を円滑に行なえるようにする。
尚、レール8は、作業台7の壁面7aに配置したが、壁面の無いアイランドキッチンの場合は、天井面又はアイランドキッチンの天板6aの側面など作業をするのに適した場所に設置することができる。
さらに、データ入力IF26の一例としての操作盤13は、調理装置6の側面に固定したが、操作盤13に代えて、遠隔操作が可能なリモコンでも良い。
ロボット1は、例えば、家庭内において、ロボットアーム5を使用して、鍋3の中の具材をかき混ぜる作業、又は、キッチンの汚れ91をふき取る作業(図19Bなどに示す、汚れた部分91での拭き掃除作業)などを、ロボットアーム5と人4Aとが協働して行う。
以下、一例として、まず、ロボットアーム5により、かき混ぜ作業を行う場合の動作について図1Aを用いて簡単に説明する。
まず、人4Aがロボット1のロボットアーム5を直接把持し、人4Aが手4でロボットアーム5に力を加える。そして、人4Aからロボットアーム5に加えられた力により、ロボットアーム5がレール8に沿って移動し、例えば鍋などの調理器具3の付近までロボットアーム5が誘導される。
次に、人4Aが、手4でロボットアーム5の先端のハンド30に、作業用冶具9の一例として、かき混ぜ作業のためのレードルなどの調理用具9を取り付ける。
次に、人4Aが、手4で操作盤13から、ロボットアーム5に動作開始指令を入力すると、ロボットアーム5が作動し、予め選択された作業、すなわち、かき混ぜ作業を開始させる。
ロボットアーム5がレードル9により鍋3の中でかき混ぜているとき、人4Aがかき混ぜている具材の状態を確認し、人4Aがロボットアーム5を直接把持して、補正したい方向にロボットアーム5に力を加えることで、ロボットアーム5の動作を補正する。
調理終了後、人4Aは、ロボットアーム5を調理器具の一例としての鍋3内から鍋3の外部に移動させて、次の作業に移行する。
次に、本第1実施形態のロボット1の詳細を説明する。図2はロボットアーム5と、ロボットアーム5の制御装置70との詳細構成図である。ロボットアーム5の制御装置70は、図2に示すように、制御装置本体部11と、ロボットアーム5の動作を生成する動作生成装置12と、周辺装置14とを備えている。
《ロボットアーム》
第1実施形態のロボットアーム5は、一例として、6自由度の多リンクマニピュレータで構成される多関節ロボットアームとする。ロボットアーム5は、ハンド30と、ハンド30が取り付けられている手首部31を先端32aに有する前腕リンク32と、前腕リンク32の基端32bに回転可能に先端33aが連結される上腕リンク33と、上腕リンク33の基端33bが回転可能に連結支持される台部34とを備えている。台部34は、移動可能なレール8に連結されているが、一定位置に固定されていても良い。手首部31は、第4関節部38と、第5関節部39と、第6関節部40との3つの回転軸を有しており、前腕リンク32に対するハンド30の相対的な姿勢(向き)を変化できる。すなわち、図2において、第4関節部38は、手首部31に対するハンド30の横軸(ψ)周りの相対的な姿勢を変化できる。第5関節部39は、手首部31に対するハンド30の、第4関節部38の横軸とは直交する縦軸(Φ)周りの相対的な姿勢を変化させることができる。第6関節部40は、手首部31に対するハンド30の、第4関節部38の横軸(ψ)及び第5関節部39の縦軸(φ)とそれぞれ直交する横軸(θ)周りの相対的な姿勢を変化できる。前腕リンク32の他端は、上腕リンク33の先端に対して第3関節部37周りに、すなわち、第4関節部38の横軸と平行な横軸周りに回転可能とする。上腕リンク33の他端は、台部34に対して第2関節部36周りに、すなわち、第4関節部38の横軸と平行な横軸周りに回転可能とする。さらに、台部34の上側可動部34aは、台部34の下側固定部34bに対して第1関節部35周りに、すなわち、第5関節部39の縦軸と平行な縦軸周りに回転可能としている。
この結果、ロボットアーム5は、合計6個の軸周りに回転可能として前記6自由度の多リンクマニピュレータを構成している。
各軸の回転部分を構成する各関節部(具体的には第1関節部35〜第6関節部40)には、一例としてモータ43のような回転駆動装置と、モータ43の回転軸の回転位相角(すなわち関節角)を検出するエンコーダ44を備えている。
この第1実施形態のモータ43は、ロボットアーム5の各関節部の内部に配設されている。モータ43は、各関節部を構成する2つのリンク部材(例えば、回動側部材と、該回動側部材を支持する支持側部材)のうちの一方のリンク部材に備えられるとともに、その一方のリンク部材に備えられかつ後述するモータドライバ25によりモータ43が駆動制御される。各関節部の前記一方のリンク部材の関節部の近傍部分に備えられたモータ43の回転軸が、他方のリンク部材の関節部の近傍部分に連結されて、前記回転軸を正逆回転させることにより、前記他方のリンク部材を前記一方のリンク部材に対して第1関節部35〜第6関節部40のそれぞれの各軸周りに回転可能とする。また、エンコーダ44は、モータ43の回転軸の回転位相角(すなわち、関節角)を検出するために、一方のリンク部材に備えられる(実際には、ロボットアーム5の各関節部の一方のリンク部材の内部に配設されている)。
41は台部34の下側固定部34bに対して相対的な位置関係が固定された絶対座標系であり、42はハンド30に対して相対的な位置関係が固定された手先座標系である。絶対座標系41から見た手先座標系42の原点位置O(x,y,z)をロボットアーム5の手先位置(ハンド30の位置)とし、絶対座標系41から見た手先座標系42の姿勢をロール角とピッチ角とヨー角で表現した(φ,θ,ψ)をロボットアーム5の手先姿勢とし、手先位置及び姿勢ベクトルをベクトルr=[x,y,z,φ,θ,ψ]と定義する。
図3は、本発明の第1実施形態におけるロボットアーム5の座標系を示す。
この第1実施形態では、絶対座標系35のZ軸を回転軸として、座標系を角度φだけ回転させた座標系を考える(図3A参照)。このときの座標軸を[X',Y',Z]とする。
次に、この座標系を、Y'を回転軸として角度θだけ回転させる(図3B参照)。このときの座標軸を[X'',Y',Z'']とする。
最後に、この座標系を、X''軸を回転軸として角度ψだけX''軸周りに回転させる(図3C参照)。このときの座標軸を[X'',Y'''、Z''']とする。このときの座標系の姿勢をロール角度φ、ピッチ角度θ、ヨー角度ψとし、このときの姿勢ベクトルは(φ,θ,ψ)となる。姿勢(φ,θ,ψ)の座標系が原点位置を手先座標系42の原点位置O(x,y,z)に平行移動した座標系と、手先座標系42が一致する場合、手先座標系42の姿勢ベクトルは(φ,θ,ψ)であるとする。
ロボットアーム5の手先位置及び姿勢を制御する場合には、手先位置及び姿勢ベクトルrを、後述する目標軌道生成部55で生成された手先位置及び姿勢目標ベクトルrに追従させることになる。
ロボットアーム5は、後述する動作生成装置12と、制御装置本体部11と、周辺装置14とを備えたロボットアームの制御装置により、次にように動作制御される。
ロボットアーム5の各関節部の、後述するエンコーダ44より出力される各関節角度情報が、入出力IF(インターフェース)24のカウンタボードを通じて制御装置本体部11に取り込まれる。取り込まれた各関節角度情報に基づき制御装置本体部11によって各関節部の回転動作での制御指令値が算出される。制御装置本体部11によって算出された各制御指令値は、入出力IF24のD/Aボードを通じて、ロボットアーム5の各関節部を駆動制御するためのモータドライバ25に与えられる。モータドライバ25から送られた前記各制御指令値に従って、ロボットアーム5の各関節部のモータ43が独立して正逆回転駆動される。
また、モータドライバ25により駆動制御されるハンド用駆動装置の一例としてハンド30は、ハンド開閉駆動用のモータ62と、ハンド開閉駆動用のモータ62の回転軸の回転位相角を検出するエンコーダ61とを備える。
エンコーダ61で検出されたモータ62の回転軸の回転角度情報が、入出力IF24のカウンタボードを通じて制御装置本体部11に取り込まれる。制御装置本体部11に取り込まれた回転角度情報を基に、制御装置本体部11の制御部22のハンド制御部54(図4に図示)によってハンド30の開閉動作での制御指令値が算出される。算出された制御指令値は、入出力IF24のD/Aボードを通じて、ハンド30の開閉駆動も行うモータドライバ25に与えられる。モータドライバ25から送られた前記各制御指令値に従って、モータ62の回転を駆動制御して、ハンド開閉駆動用のモータ62の回転軸が正逆回転して、ハンド30を開閉させる。例えば、モータ62の回転軸を正方向に回転させることによりハンド30を開いて、作業用冶具9(例えばレードル又はモップなど)を人4Aの手4で取り付け可能とする一方、モータ62の回転軸を逆方向に回転させることによりハンド30を閉じて、ハンド30に取り付けられた作業用冶具9(例えばレードル又はモップなど)を固定するように構成することができる。
制御装置本体部11及び動作生成装置12及び周辺装置14は、一例として、それぞれ一般的なパーソナルコンピュータにより構成される。
《周辺装置14》
周辺装置14は、データ入力IF(インターフェース)26と、入出力IF(インターフェース)24と、モータドライバ25とを有する。
入出力IF24は、パーソナルコンピュータのPCIバスなどの拡張スロットに接続された、例えばD/AボードとA/Dボードとカウンタボードとなどを有する。入出力IF24は、ロボットアーム5の各関節部のエンコーダ44より出力される各関節角度情報と、ハンド30のエンコーダ61より出力される角度情報とを取得し、制御部22に入力する。一方、入出力IF24は、制御部22から制御信号などの制御情報が入力されるとともに、モータドライバ25に制御指令値などの制御情報を出力する。モータドライバ25は、ロボットアーム5の各関節部のモータ43及びハンド30のモータ62に対し制御指令値などの制御情報を出力する。
データ入力IF(インターフェース)26は、人4Aがキーボード、マウス又はマイクなどの外部入力装置26aを使用して、データ入力IF26とデータベース入出力部28とを介して、作業情報(例えば作業ID)、又は、動作補正操作指令情報、ロボットアーム5の関節角速度情報に基づいた環境変化通知操作の指令、動作補正操作の指令、又は、動作情報を入力したり、変更したりするためのインターフェースである。よって、データ入力IF26は、外部入力装置26aと、データベース入出力部28と、動作指令部27(動作算出部2)と、制御部22の力検出部53と制御パラメータ管理部21と、表示部95とに接続されている。
また、データ入力IF26は、データ入力IF26の一例としての図1Aに示す操作盤13のボタン13aなどの入力装置を使用して、人4Aから動作指令部27に対して制御動作開始及び終了の指令を受けるようにしてもよい。ボタン13aは、例えばトグルスイッチとして1つのボタンで制御動作開始及び制御動作終了をそれぞれ入力可能としてもよいし、制御動作開始ボタンと制御動作終了ボタンと別々に設けてもよい。ボタンの代わりに、キーボード又はマウス又はマイクなどの入力装置を使用して、制御動作開始及び制御動作終了などの指令をロボット1に入力するインターフェースである。
《動作生成装置12》
動作生成装置12は、動作情報データベース17と、環境情報データベース18と、制御ルールデータベース16と、検出部選択ルールデータベース29と、動作指令部27(動作算出部2)と、動作補正部20と、制御ルール生成部23と、環境情報取得部19と、データベース入出力部28とにより構成される。
動作補正部20と制御パラメータ管理部21との間では、ロボットアーム5の手先位置及び姿勢と、人4Aが加えた力の情報と、動作指令などが入出力される。制御パラメータ管理部21からは、ロボットアーム5の手先位置及び姿勢と、人4Aの加えられた力の情報などが動作補正部20に出力される。なお、動作生成装置12における各制御モード((i)位置制御モード、(ii)インピーダンス制御モード、(iii)ハイブリッドインピーダンス制御モード、(v)力ハイブリッドインピーダンス制御モード)の詳細については、制御装置本体部11の制御パラメータ管理部21にて後述する。
−動作情報データベース−
動作情報データベース17は、所定の時間におけるロボットアーム5の手先位置及び姿勢などのロボットアーム5の動作に関する情報(以下、動作情報と称す)を記憶している。動作情報は、予め設定しておいてもよいし、制御ルール生成部23を介してデータベース入出力部28により動作情報データベース17に入力されて記憶してもよい。
図5A(図5B、図5Cも同様)は、動作情報データベース17のデータである動作情報を示す。
図6は、動作情報データベース17のフラグの情報を示す
図7は、動作情報データベース17の補正パラメータフラグに関する情報を示す。 動作情報の具体例として、図5Aを参照して以下に示す。
(1)動作情報データベース17に記憶されている動作情報の「動作ID」の欄は、作業をロボットアーム5に実行するためのロボットアーム5の個々の動きを識別する動作ID番号を示す。 (2)動作情報の「キー動作ID」の欄は、ロボットアーム5の動作制御する制御プログラムにおける個々の動作(キー動作)(コマンド,command)を識別するキー動作ID番号を示す。
(3)動作情報の「位置姿勢」の欄は、1つの動作におけるロボットアーム5の手先位置及び姿勢に関する情報を示す。尚、本第1実施形態は、一例として、メートル(m)単位系で手先位置及び姿勢の座標を示す。
(4)動作情報の「力」の欄は、ロボットアーム5が作業をする際に作業対象となる物体(作業対象物、例えば作業用治具9,46,72又はフレキシブル基板74)に加える力に関する情報を示す。尚、本第1実施形態は、一例として、ニュートン(N)単位系で示す。
(5)動作情報の「フラグ」の欄は、ロボットアーム5の手先位置、姿勢、及び力のパラメータのうちのいずれの情報が有効か否かを示すフラグに関する情報を示す。
(6)動作情報の「ハンド」の欄は、ハンド30が開閉しているか否かのハンド開閉状態を表す情報を示す。
(7)動作情報の「時間」の欄は、ロボットアーム5の各キー動作を実行するための時間に関する情報を示す。尚、本第1実施形態では、一例として、秒(sec)単位で示す。
(8)動作情報の「補正パラメータフラグ」の欄は、後述する動作補正部20を用いて動作情報データベース17の動作情報を補正する際の、補正すべきパラメータの種別に関する情報を示す。
ここで、「作業」とは、例えば、かき混ぜ作業又は拭き掃除作業などの一定の手順に従ってロボットアーム5で実行する仕事を意味する。
また、「動作」とは、例えば、かき混ぜ作業又は拭き掃除作業などの「作業」をロボットアーム5に実行させるためのロボットアーム5の動きを意味する。1つ以上の「動作」を実行することで、前記「作業」をロボットアーム5に実行させることができる。
また、「キー動作」とは、ロボットアーム5を動作制御する制御プログラム上で、ある時刻でロボットアーム5にある「動作」を行なわせるためのコマンド(指令)を意味し、複数の「キー動作」(コマンド)で前記「動作」を構成し、複数の「キー動作」(コマンド)を時系列に前記制御装置で実行するように制御することでロボットアーム5の前記「動作」を実現することができる。
図5Aの動作情報データベース17の「位置姿勢」、すなわち、ロボットアーム5の手先位置及び姿勢に関する情報は、前述したロボットアーム5の手先位置及び姿勢を表し、原点位置Oと姿勢から、(x,y,z,φ,θ,ψ)と表す。
力に関する情報は、ロボットアーム5が作業をする際に作業対象となる物体(作業対象物)に加える力に関する情報を示し、力のx、y、z、φ、θ、ψ方向の成分を(f,f,f,fφ,fθ,fψ)と表す。例えば、f=5[N]である場合は、z軸方向に5[N]の力を加えて、作業することを表す。具体的には、IHクッキングヒーター6などの天板6aを拭き掃除作業する際に、天板6aの表面に力を加えて擦る場合などに使用する。
図5Aの動作情報データベース17の「フラグ」に関する情報は、各「キー動作ID」が示す動作情報に基づくロボットアーム5の手先位置及び姿勢及び力のうちのいずれの情報が有効か否かを示す値である。具体的には、図6は、図5Aで示した32ビットの数値で表し、各ビット数と位置姿勢と力とのパラメータは対応付けられている。図6において、それぞれのビットで、手先位置及び姿勢及び力のそれぞれの値が有効の場合は「1」とし、手先位置及び姿勢及び力のそれぞれの値が無効の場合は「0」とする。例えば、0ビット目において、ロボットアーム5の手先位置のx座標の値が有効の場合には「1」とし、無効の場合には「0」とする。また、1ビット目において、ロボットアーム5の手先位置のy座標の値が有効の場合には「1」とし、無効の場合には「0」とする。また、2ビット目において、ロボットアーム5の手先位置のz座標の値が有効の場合には「1」とし、無効の場合には「0」とする。以後、順次、3,4,5ビット目は姿勢のφ、θ、ψの有効性を表す(すなわち、有効の場合は「1」とし、無効の場合は「0」とする)。さらに、6ビット目〜11ビット目においては、力のそれぞれの成分が有効か無効かを示す(すなわち、有効の場合は「1」とし、無効の場合は「0」とする)。また、フラグに関する情報は、将来の拡張用に多め(32ビット)に用意しているため、この例では12ビット目から31ビット目は使用しないので、「0」を入れておくが、12ビットのみ記憶できる変数としても良い。図6は、図5Aの動作情報データベース17の「キー動作ID」の「1」のキー動作のフラグを示す。0ビット目から1ビット目、及び、3ビット目から5ビット目、及び、8ビット目が「1」となっているので、動作情報の手先位置及び姿勢情報うち、x、y、φ、θ、ψ情報、及び、力情報のうちのf情報のみが有効であることを示している。この結果、動作情報のうち、2ビット目、6〜7ビット目、及び9〜11ビット目が「0」となっているので、z、f、f、fφ、fθ、fψの値にどういう値が記憶されていても無効であるとする。
図5Aの「ハンド」に関する情報は、動作中のハンド30の開閉の有無を表すフラグとし、ハンド30が開いている場合は「0」と記載し、ハンド30が閉じている場合は「1」と記載する。
図5Aの動作情報データベース17の「時間」に関する情報は、ロボットアーム5の各キー動作を実行するための時間である。すなわち、ロボットアーム5は「キー動作ID」に記憶された動作を、対応する「時間」に関する情報として記憶された時間をかけて行うことを表す。この「時間」は、絶対時刻ではなく、前の動作からの相対時間を表す。すなわち、「キー動作ID」が示す「位置姿勢」に、ロボットアーム5のハンド30が移動するまでの時間又は「キー動作ID」が示す「力」になるまでの時間を表す。
図5Aの動作情報データベース17の「補正パラメータフラグ」に関する情報は、後述する動作補正部20で、どのパラメータを補正するかを表す情報である。具体的には、図7に示した32ビットの数値で表す。図7において、それぞれのビットで、手先位置及び姿勢及び力のそれぞれの値の補正が可能な場合は「1」とし、手先位置及び姿勢及び力のそれぞれの値の補正が不可能な場合は「0」とする。例えば、0ビット目においては、手先位置のx座標の値の補正が可能な場合は「1」とし、手先位置のx座標の値の補正が不可能な場合は「0」とする。また、1ビット目においては、手先位置のy座標の値の補正が可能な場合は「1」とし、手先位置のy座標の値の補正が不可能な場合は「0」とする。また、2ビット目においては、手先位置のz座標の値の補正が可能な場合は「1」とし、手先位置のz座標の値の補正が不可能な場合は「0」とする。以後、順次、3,4,5ビット目は、姿勢のφ、θ、ψの補正可能性を表す(すなわち、補正が可能な場合は「1」とし、補正が不可能な場合は「0」とする)。さらに、6ビット目〜11ビット目においては、力のそれぞれの成分の補正可能性を示す(すなわち、補正可能の場合は「1」とし、補正不可能の場合は「0」とする)。また、フラグに関する情報は、将来の拡張用に多め(32ビット)に用意しているため、この例では、12ビット目から31ビット目は使用しないので、「0」を入れておくが、12ビットのみ記憶できる変数としても良い。
動作情報データベース17の情報は、予め設定してデータベース化しておくが、ロボットアーム5の手先の位置姿勢、力の入力及び更新は、ロボットアーム5を用いた教示を行ってもよく、以下に説明する。
図8は、本発明の前記第1実施形態におけるロボットアーム5を用いた人4Aによる教示の状態を示す。
ロボットアーム5の手先の位置姿勢及び時間の情報は、以下のようにして作成する。すなわち、例えば、図8に示すように、ロボットアーム5を人4Aが手4で直接把持して、後述するインピーダンス制御モードにて、ロボットアーム5を移動させる。このとき、ある一定時間毎(例えば0.2msec毎)にロボットアーム5の手先位置及び姿勢の情報を制御部22及び制御パラメータ管理部21を介してデータベース入出力部28で取得する。取得したロボットアーム5の手先位置及び姿勢の情報を、時間と共に、データベース入出力部28により動作情報データベース17に記憶する。このようにしてロボットアーム5の手先の位置姿勢及び時間の情報を動作情報データベース17に作成することができる。
さらに、動作情報データベース17の力の情報は、データ入力IF26を使用しかつデータベース入出力部28を介して、加えたい力の値を動作情報データベース17に入力することにより作成する。
なお、この例ではロボットアーム5の手先の位置姿勢及び時間の情報を連続的に作成したが、それぞれの位置姿勢及び時間の情報を、人4Aが、キーボード、マウス、又はマイクなどの外部入力装置26aを使用して個別に入力しても良い。
−環境情報データベース−
環境情報データベース18は、ロボットアーム5が動作する際のロボットアーム5の周辺の物体の位置及び状態に関する情報と、人4A及びロボットアーム5が周辺環境に対して直接作用することによる物体の位置及び状態に関する情報(以下、これらの情報を環境情報と称す。)が記憶されている。環境情報は、後述する環境情報取得部19で取得し、環境情報取得部19からデータベース入出力部28を介して環境情報データベース18に記憶される。
次に、環境情報データベース18の詳細について説明する。
図9Aは、環境情報データベース18のデータである環境情報を示す。
図9Bは、環境情報データベース18のフラグの情報を示す。
(1)環境情報データベース18に記憶された環境情報の「環境ID」の欄は、個々の環境情報を識別する環境ID番号を示す。
(2)環境情報の「画像ID」の欄は、環境情報取得部19の一例として機能する第1及び第2画像撮像装置15a及び15bで撮像された画像を識別する画像ID番号を示す。ここでは、ファイル名を使用する。
(3)環境情報の「画像撮像装置ID」の欄は、2つの画像撮像装置15a及び15bのうちのどの画像撮像装置で撮影したかを識別するID番号である。この例では、第1画像撮像装置15aで撮影した場合には「1」、第2画像撮像装置15bで撮像された場合には「2」で示す。
(4)環境情報の「力」の欄は、力検出部53で検出された力に関する情報(力の情報)を示す。
力に関する情報は、ロボットアーム5の力検出部53で検出した力に関する情報を示し、力のx、y、z、φ、θ、ψ方向の成分を(f,f,f,fφ,fθ,fψ)と表す。
(5)環境情報の「フラグ」の欄は、環境情報の力及び画像のパラメータのうちのいずれの情報が有効か否かを示すフラグに関する情報を示す。
図9Aの環境情報データベース18の「フラグ」に関する情報は、各「環境ID」が示す環境情報の画像及び力の情報が有効か否かを示す値である。具体的には、図9Bで示した32ビットの数値で表す。図9Bにおいて、各ビットで、画像及び力の値がそれぞれ有効の場合は「1」とし、画像及び力の値がそれぞれ無効の場合は「0」とする。本第1実施形態では0ビット目から5ビット目は力の情報、6ビット目は、画像の情報を示す。例えば、0ビット目において、力のx座標の値が有効の場合は「1」とし、無効の場合は「0」とする。また、1ビット目において、力のy座標の値が有効の場合は「1」とし、無効の場合は「0」とする。また、2ビット目において、力のz座標の値が有効の場合は「1」とし、無効の場合は「0」とする。以後、順次、3,4,5ビット目は力のφ、θ、ψの有効性を表す。すなわち、有効の場合は「1」とし、無効の場合は「0」とする。さらに、6ビット目においては、第1又は第2画像撮像装置15a又は15bで撮影された画像が有効か無効かを示す(すなわち、有効の場合は「1」とし、無効の場合は「0」とする)。
また、フラグに関する情報は、将来の拡張用に多め(32ビット)に用意しているため、この例では7ビット目から31ビット目は使用しないので、「0」を入れておくが、6ビットのみ記憶できる変数としても良い。図9Bでは、0ビット目から5ビット目が「0」、6ビット目が「1」となっているので、環境情報の画像情報のみが有効であることを示す。
−制御ルールデータベース−
制御ルールデータベース16は、ロボットアーム5が作動する際のロボットアーム5の制御ルールに関する情報(以下、制御ルール情報と称す)が記憶されている。制御ルール情報は、後述する制御ルール生成部23で生成し、データベース入出力部28により、制御ルール生成部23と制御ルールデータベース16との間で、生成された情報又は生成に必要な情報などが入出力される。また、データベース入出力部28により、制御ルール生成部23と他のデータベース18,17,29との間で、生成に必要な情報などが入出力される。
次に、制御ルールデータベース16の詳細について図10A及び図10Bを用いて説明する。
図10Aと図10Bは、制御ルールデータベース16の制御ルールの一例を示す。
(1)制御ルールデータベース16に記憶された制御ルールの「作業ID」の欄は、作業に関する情報を識別する作業ID番号を示す。
(2)制御ルールの「環境ID」の欄は、個々の環境情報を識別する環境ID番号を示し、環境情報データベース18の環境IDの値を参照可能とする。環境情報データベース18の環境IDの値を参照可能としない場合は、「−1」として記憶する。
(3)制御ルールの「動作ID」の欄は、作業の中のロボットアーム5の動作を識別する動作ID番号を示し、動作情報データベース17の動作IDを参照可能とする。
(4)制御ルールの「進捗情報」の欄は、ロボットアーム5の所定の動作が動作中か否かを示し、動作中である場合は「1」とし、動作中でない場合は「0」として、データベース入出力部28により制御ルールデータベース16に記憶する。具体的には、動作指令部27によって、作業が開始されると、ロボットアーム5により現在動作(実行)中の動作については「1」をデータベース入出力部28により制御ルールデータベース16に記憶し、現在動作(実行)していない動作については「0」をデータベース入出力部28により制御ルールデータベース16に記憶する。
−検出部選択ルールデータベース−
検出部選択ルールデータベース29は、ロボットアーム5を操作して環境情報を取得する際に、ロボットアーム5の制御モードにより、複数の環境情報の中から優先的に取得する環境情報の種別を選択するためのルール(検出部選択ルール)が記憶されている。検出部選択ルールデータベース29は、ロボット1に予め用意されており、データベース入出力部28により、検出部選択ルールの情報が入出力される。
次に、図11A、図11Bを用いて検出部選択ルールデータベース29の詳細を説明する。
図11Aは、検出部選択ルールデータベース29の検出部選択ルールを示す。
図11Bは、検出部選択ルールデータベース29の検出部選択ルールの環境情報の種別に関する情報を示す。
(1)検出部選択ルールデータベース29に記憶された検出部選択ルールの「制御モード」の欄は、ロボットアーム5の制御モードに関する情報を示す。具体的には、制御装置本体部11の制御パラメータ管理部21に関連して後述する。
(2)検出部選択ルールの「環境情報の種別ID」の欄は、環境情報の種別を識別する識別IDを示す。環境情報の識別IDは、検出部である環境情報取得部19、例えば、ロボットアーム5が搭載する各種センサ(例えば、力検出部53)又は、ロボット1の各種センサ(例えば、第1又は第2画像撮像装置15a又は15b)で取得した環境情報の種別を識別するためのIDである。図11Aの「環境情報種別ID」は、図11Bで定義されている。具体的には、検出部選択ルールとして、図11Bのように、「環境情報の種別ID」が「1」の場合は、検出部の一例としての第1又は第2画像撮像装置15a又は15bで撮像した画像を表し、「環境情報の種別ID」が「2」の場合は、検出部の別の例としての力検出部53で検出された力を表すとする。
−データベース入出力部−
データベース入出力部28は、各データベース群(動作情報データベース17と、環境情報データベース18と、制御ルールデータベース16と、検出部選択ルールデータベース29と)と、動作指令部27と、制御ルール生成部23と、環境情報取得部19と、及び動作補正部20との間でのデータの入出力を行う。よって、データベース入出力部28は、動作情報取得部及び補正動作情報取得部の一例として機能することができる。すなわち、データベース入出力部28は、ロボットアーム5の動作に対応する、ロボットアーム5の位置、姿勢、及び、速度の少なくとも1つ以上が時系列に動作情報として記憶された動作情報データベース17から前記動作情報を取得する動作情報取得部、又は、ロボットアーム5の動作に対応する、ロボットアーム5が作業対象物9,46,72,74に加える力の時系列の動作情報として記憶された動作情報データベース17から前記動作情報を取得する動作情報取得部として機能することができる。また、データベース入出力部28は、人4Aがロボットアーム5を操作して、ロボットアーム5の前記動作を補正する際に、動作情報取得部で取得した動作情報のうちの少なくとも1つ以上の前記動作情報に対応する補正動作情報を取得する補正動作情報取得部、又は、人4Aがロボットアーム5を操作して、ロボットアーム5の動作を補正する際に、動作情報取得部で取得した動作情報に関連しかつロボットアーム5が加える力に関する補正動作情報を取得する補正動作情報取得部としても機能することができる。
もちろん、データベース入出力部28を、動作情報の入出力を行う動作情報取得部と、補正動作情報の入出力を行う補正動作情報取得部と、その他の情報の入出力を行う他情報取得部とに分割してもよい。
−環境情報取得部−
環境情報取得部19は、ロボットアーム5が作用する作業対象物9,46,72,74に関する情報である環境情報、すなわち、ロボットアーム5が動作する際のロボットアーム5の周辺の物体の位置及び状態に関する情報と、人4A及びロボットアーム5が周辺環境に対して直接作用することによる物体の位置及び状態に関する情報を取得する。具体的には、第1又は第2画像撮像装置15a又は15bで撮像された画像と力検出部53で検出された力の情報とを取得し、第1又は第2画像撮像装置15a又は15bで取得した画像及び力検出部53で検出された力の情報を、環境情報取得部19から制御ルール生成部23及び動作指令部27へ出力する。よって、第1及び第2画像撮像装置15a及び15b及び力検出部53は、それぞれ、環境情報取得部19の一例として機能する。
−動作指令部−
動作指令部27には、人4Aがデータ入力IF26により指定した「作業ID」の作業の動作開始の指令が、データ入力IF26から入力される。動作指令部27は、指定された「作業ID」の作業の動作開始の指令を受けて、制御ルールデータベース16の指定された「作業ID」をデータベース入出力部28を介して参照して、その「作業ID」の作業を開始させるように制御パラメータ管理部21へ指令する。
以下、動作指令部27の機能について説明する。
人4Aは、データ入力IF26により、表示部95で作業などが表示された表示画像を使用しつつ、制御ルールデータベース16の作業の中の「作業ID」に関する作業の中からロボットアーム5に実行させたい作業を選択して、選択した作業情報を動作指令部27に入力して指定する。
動作指令部27は、データベース入出力部28を介して制御ルールデータベース16を参照し、指定された「作業ID」に対応する「動作ID」の動作を実行する。ここで、「動作ID」の動作を実行するとは、動作指令部27が、データベース入出力部28を介して動作情報データベース17を参照し、対応するキー動作(具体的には、位置情報、姿勢情報、時間情報、及び、力情報)を基にフラグ(有効か無効かを示すフラグ)に従って制御モードを設定してロボットアーム5が動作するように、制御パラメータ管理部21へ指令を出すことを意味する。
動作指令部27がデータベース入出力部28を介して制御ルールデータベース16を参照するとき、1つの「作業ID」に関する作業の中に複数の「環境ID」の環境情報が存在すると動作指令部27で判断した場合又は複数の「動作ID」の動作が存在すると動作指令部27で判断した場合には、それぞれの環境情報又は動作を制御ルールデータベース16の上から下に順番に実行する。
ここで、「環境ID」が「−1」の値の場合には、環境情報データベース18の「環境ID」の値を参照しないことを意味している。よって、ロボットアーム5が動作している周辺の環境に拘わらず、「動作ID」で記述されているIDと同じ「動作ID」の動作を、動作指令部27がデータベース入出力部28を介して動作情報データベース17から参照する。
以下、人4Aがデータ入力IF26により、「作業ID」の「1」を選択した場合と、「作業ID」の「2」を選択した場合とについて説明する。
(「作業ID」の「1」を選択した場合)
具体的には、図10Aの「作業ID」が「1」の作業が選択された場合は、「作業ID」が「1」の作業の「環境ID」が「−1」の値である場合には、このときの「動作ID」は「1」の動作である。従って、動作指令部27は、環境に拘わらず、ロボットアーム5に動作を実行させるために、データベース入出力部28を介して動作情報データベース17の「動作ID」を参照する。この例では、制御ルールデータベース16の「動作ID」には「1」と記憶されており、動作指令部27は、データベース入出力部28を介して、図5Aの動作情報データベース17の「動作ID」が「1」の動作の「キー動作ID」の「1」、「2」、「3」、「4」、「5」、「6」、「7」、「8」のキー動作(コマンド)を順番に参照する。
動作情報データベース17の「キー動作ID」が「1」のキー動作(コマンド)の場合には、「フラグ」は、0、1、3、4、5、8ビット目が「1」であるので、ロボットアーム5の手先位置のx、y、φ、θ、ψの値、及び、力のz座標の値が有効ということを示している。よって、x軸、y軸、φ軸、θ軸、ψ軸については位置制御モードで動作させ、z軸については力制御モードで動作するように、動作指令部27からデータベース入出力部28を介して制御パラメータ管理部21へ指令を出す(力ハイブリッドインピーダンス制御の指令と同等)。同様に、「キー動作ID」が「2」〜「8」のキー動作(コマンド)についても、力ハイブリッドインピーダンス制御モードで動作するように、動作指令部27からデータベース入出力部28を介して制御パラメータ管理部21へ指令を出す。
(「作業ID」の「2」を選択した場合)
同様に、図10Aの「作業ID」が「2」の作業が選択された場合には、「作業ID」が「2」の作業の「環境ID」が「−1」の値であり、このときの「動作ID」は「2」の動作である。従って、動作指令部27は、環境に拘わらず、ロボットアーム5に動作を実行するために、データベース入出力部28を介して動作情報データベース17の「動作ID」を参照する。この例では、制御ルールデータベース16の「動作ID」には「2」と記憶されており、動作指令部27は、データベース入出力部28を介して、図5Aの動作情報データベース17の「動作ID」が「2」の動作の「キー動作ID」が「10」、「11」、「12」、「13」、「14」、「15」、「16」、「17」のキー動作(コマンド)を順番に参照する。
このとき、「キー動作ID」が「10」のキー動作(コマンド)の場合には、「フラグ」が0〜5ビット目が「1」であるので、x軸、y軸、z軸、φ軸、θ軸、ψ軸の全ての軸について、位置制御モードで動作するように、動作指令部27から、データベース入出力部28を介して制御パラメータ管理部21へ指令を出す。
外部入力装置26aにより入力されて、動作が実行されると、動作指令部27は、データベース入出力部28を介して、制御ルールデータベース16の動作中の「動作ID」の「進捗情報」に「1」を設定し、動作中の「動作ID」の「進捗情報」が「1」であるとの情報を、データベース入出力部28により制御ルールデータベース16に記憶する。その他の「動作ID」の「進捗情報」については「0」を動作指令部27に設定し、その他の「動作ID」の「進捗情報」が「0」であるとの情報を、データベース入出力部28により制御ルールデータベース16に記憶する。
ここで、具体的な作業例について説明する。
人4Aによりデータ入力IF26を使用して制御ルールデータベース16の作業の中の「作業ID」が「1」である作業が選択された場合は、動作指令部27は、z軸方向を力制御モードで、その他の軸方向は位置制御モードで作業するように、データベース入出力部28を介して制御パラメータ管理部21へ指令を出す。その結果、制御パラメータ管理部21は、後述するように、前記制御モードに従ってロボットアーム5が動作するように、制御部22へ指令を出して、制御部22による制御の下に、図12に示すように、ロボットアーム5は、IHクッキングヒーターなどの調理装置6の天板6aの拭き掃除作業を開始する。
人4Aによりデータ入力IF26を使用して制御ルールデータベース16の作業の中の「作業ID」が「2」である作業が選択された場合は、動作指令部27は、位置制御モードでかき混ぜ動作をするように、データベース入出力部28を介して制御パラメータ管理部21へ指令を出す。その結果、制御パラメータ管理部21は、後述するように、前記制御モードに従ってロボットアーム5が動作するように、制御部22へ指令を出して、制御部22による制御の下に、図13Aに示すように、ロボットアーム5はかき混ぜ動作を開始する。
一方、図10Aの「作業ID」が「1」の作業が選択された場合であって、かつ、「作業ID」が「1」の作業の「環境ID」が「−1」の値でない場合には、「環境ID」で記憶されたIDと同じ「環境ID」の環境情報を、環境情報データベース18から動作指令部27がデータベース入出力部28を介して参照する。「環境ID」と同じ「環境ID」の環境情報(具体的には、画像の情報と力の情報)のうちのフラグにより有効な環境情報が、後述する環境情報取得部19で取得した環境情報と合致したと動作指令部27で判断した場合のみ、「動作ID」の動作を動作指令部27で実行する。詳細については、制御ルール生成部23と関連して後述する。
また、選択された「作業ID」の中に複数の「環境ID」と「動作ID」とが存在する場合は、それぞれの「環境ID」とそれぞれの「動作ID」とのフラグ(ここでのフラグとは、「動作ID」で動作情報データベース17を動作指令部27がデータベース入出力部28を介して参照し、そこで記憶されているフラグを意味する。)により、最終的に実行すべき動作情報を、動作指令部27の動作算出部2により算出する。動作算出部2の詳細については、制御ルール生成部23に関連して後述する。
−動作補正部−
動作補正部20は、制御装置本体部11よりロボットアーム5を力制御モードで制御している最中又は制御部22の位置制御部59の制御によりロボットアーム5が位置制御モードで移動している最中に補正動作情報取得部の一例としてのデータベース入出力部28で取得したそれぞれの時間での補正動作情報に応じて動作情報を補正することができる。すなわち、動作補正部20は、ロボットアーム5の制御動作中に、データ入力IF26から動作指令部27を介して動作補正操作の開始の指令を受ける。動作補正部20は、データベース入出力部28を介して動作情報データベース18の補正パラメータフラグに基づいて、ロボットアーム5の制御パラメータを切り替えることで、補正された動作(補正動作)でロボットアーム5を動作し、人4Aがロボットアーム5に力を加えることで、データベース入出力部28を介して制御ルールデータベース16のロボットアーム5の制御ルールを修正する。
ここで、前記ロボットアーム5の制御動作は、後述する(i)位置制御モード、(iii)力制御モード、若しくは、(v)それらを方向別に組み合わせた力ハイブリッドインピーダンス制御モード、のうち、いずれかのモードで動作することを示す。
また、前記ロボットアーム5の補正動作は、ロボットアーム5に人4Aが加えた力によりロボットアーム5の動作を補正する動作で、後述する(ii)インピーダンス制御モード、(vi)高剛性位置制御モード、若しくは、(v)それらを方向別に組み合わせた力ハイブリッドインピーダンス制御モード、のうち、いずれかのモードで動作することを示す。
以下、動作補正について説明する。
人4Aは、データ入力IF26により、制御ルールデータベース16の「作業ID」に関する作業の中からロボットアーム5に実行させたい作業を選択して、動作指令部27により動作を実行する。
このとき、図10Aの「作業ID」が「2」の作業が選択された場合には、動作指令部27は、位置制御モードでかき混ぜ動作をするように制御パラメータ管理部21へ指令を出す。よって、図13Aに示すように、ロボットアーム5はかき混ぜ動作を開始する。ここで、「作業ID」が「2」の作業の場合には「環境ID」が「−1」の値であるため(図10A参照)、ロボットアーム5が動作する環境情報に関わらず、「動作ID」で記憶された動作で動作(具体的には、「動作ID」が「2」の動作で動作)する。
次に、人4Aがデータ入力IF26から動作指令部27を介して動作補正部20に動作補正操作の開始を指示すると、動作補正部20は、動作補正の処理に移行する。
図13は、本発明の前記第1実施形態におけるロボットアーム5の補正動作を説明する図である。
本第1実施形態では、レードル9をハンド30に保持したロボットアーム5が、図13Aに示す鍋3aのかき混ぜを中止し、図13Eに示すように、鍋3aに比べて鍋の直径が大きい鍋3bをかき混ぜる動作を行う場合について説明する。ここで、動作補正を行わない場合、「作業ID」が「2」の作業は「環境ID」が「−1」の値であるため、鍋の大きさに拘わらず、「動作ID」で記述された動作を実行するため、鍋3aを、直径が大きい鍋3bに交換したとしても、図13Bのように直径の小さなかき混ぜを行うことになる。このため、鍋3bの中の具材が、うまく混ざらないという問題が発生する。
そこで、人4Aは、鍋3bの大きさを確認して、図13Eのように鍋3bの直径に合わせて、レードル9で大きくかき混ぜるために、ロボットアーム5のかき混ぜ動作を補正する。
このため、人4Aは、以下の2つの入力操作を行う。
第1の入力操作は、作業環境が変化することを知らせる操作(以下、環境変化通知操作と称す。)である。この操作は、本第1実施形態では、かき混ぜ動作の対象の鍋3aが直径の大きな鍋3bに変わった事をロボットアーム5に知らせる操作である。
第2の入力操作は、実際のロボットアーム5の動作を補正するための操作(以下、動作補正操作と称す。)である。
本第1実施形態では、かき混ぜ動作を図13Eのように大きくかき混ぜるように動作を補正するための操作である環境変化通知操作を開始した時点で、ロボットアーム5のかき混ぜ動作は停止し、次に、環境変化通知操作が終了し、ロボットアーム5のかき混ぜ動作を再開する。人4Aはロボットアーム5がかき混ぜ動作している最中に動作補正操作を行う。
人4Aは、データ入力IF26により、環境変化通知操作の開始の指令を動作指令部27に入力する。動作指令部27に環境変化通知操作の開始の命令が入力されると、動作指令部27により、ロボットアーム5の動作を停止させる。そして、人4Aによる環境変化通知操作が終了した時点で、引き続き、人4Aはデータ入力IF26により、動作補正操作の開始の指令を動作指令部27に入力する。動作指令部27が、動作補正操作の開始の指令をデータ入力IF26を介して受け取ると、動作指令部27は環境変化通知操作が終了したと判断して、動作補正操作の開始のためにロボットアーム5の動作を再開する。このとき、人4Aはロボットアーム5の動作に対して動作補正操作を行う。
動作指令部27は、データ入力IF26を介して環境変化通知操作の指令又は動作補正操作の指令を受けると、動作補正部20及び後述する制御ルール生成部23にそれぞれの環境変化通知操作の開始の情報又は動作補正操作の開始の情報を出力する。
前記操作の具体的な指令は、位置制御モードでかき混ぜ動作をロボットアーム5が実行している最中に、人4Aが手4でロボットアーム5を把持してロボットアーム5を補正したい方向に力をかける。このとき、図30Aのように、人4Aがロボットアーム5にかけた力(後述する力検出部53で検出された力)が、ある閾値(図30Aの値t)以上であり、その状態がある一定時間(図30Aの時間time 1)以上続いた場合(後述する、制御パラメータ管理部21のタイマ21aで検出された時間が前記ある一定時間以上続いた場合)に、環境変化通知操作の開始の指令が入力されたと動作指令部27が判断する。逆に言えば、図30Bのように、人4Aがロボットアーム5にかけた力が、前記ある閾値(図30Bの値t)未満の場合、又は、前記ある閾値(図30Bの値t)以上であっても、その状態が前記ある一定時間(図30Aの時間time 1)未満の時間(図30Bの時間time 2)の場合に、環境変化通知操作の開始の指令は入力されていないと、動作指令部27が判断する。人4Aによる環境変化通知操作の開始の指令が入力されたと動作指令部27で判断すると、動作指令部27は、環境変化通知操作の開始の情報を動作補正部20に入力する。
環境変化通知操作の開始の指令が入力されたと動作指令部27が判断すると、動作指令部27により、かき混ぜ動作が停止される。このかき混ぜ動作の停止動作により、人4Aは、環境変化通知操作が開始したとロボット1が判断したことがわかる。なお、後述するように、力検出部53で検出された力の情報は制御パラメータ管理部21に入力され、前記力の情報とタイマ21aで検出された時間の情報とが、制御パラメータ管理部21から動作指令部27に入力されて、動作指令部27で前記判断が実行できるように構成している。
次に、人4Aが前記環境変化通知操作を行った後で、人4Aがロボットアーム5にかけた力が前記閾値(図30Aの値t)より小さくなったと動作指令部27により判断した場合には、動作指令部27により環境変化通知操作が終了したと判断し、動作指令部27により位置制御モードでのかき混ぜ動作を再開する。かき混ぜ動作を再開することにより、人4Aは、環境変化通知操作が終了したとロボット1が判断したことがわかる。
次に、前記したように環境変化通知操作が終了したとロボット1が判断したことを人4Aが分かったのち、人4Aがロボットアーム5を手4で把持して、ロボットアーム5の動作を補正したい方向にロボットアーム5に力をかける。図30Aのように、ロボットアーム5にかけた力が前記ある閾値(図30Aの値t)以上であり、その状態が前記ある一定時間(図30Aの時間time 1)以上続いたと動作指令部27が判断した場合に、人4Aによる動作補正操作の開始の指令が入力されたと動作指令部27で判断する。逆に言えば、図30Bのように、人4Aがロボットアーム5にかけた力が、前記ある閾値(図30Bの値t)未満の場合、又は、前記ある閾値(図30Bの値t)以上であっても、その状態が前記ある一定時間(図30Aの時間time 1)未満の時間(図30Bの時間time 2)の場合に、動作補正操作の開始の指令が入力されていないと、動作指令部27が判断する。人4Aによる動作補正操作の開始の指令が入力されたと動作指令部27で判断すると、動作指令部27は、動作補正操作の開始の情報を動作補正部20に入力する。なお、一定時間経過しても、動作補正操作が開始されなかった場合には、環境変化通知操作を無効とし、かき混ぜ動作を再開する。
動作補正操作の開始の指令が入力されたと動作指令部27で判断すると、動作指令部27の指令により、ロボットアーム5のかき混ぜ動作の速度が遅くなり(例えば、動作補正操作の開始前の通常のかき混ぜ動作のときの速度の半分の速度)、人4Aは、動作補正操作の開始の指令が入力されたとロボット1が判断したことがわかる。さらに、かき混ぜ動作の速度が遅くなるため、動作中のロボットアーム5の動作を人4Aが補正しやすくなる。ロボットアーム5の動作を人4Aが補正している間、その補正動作の情報は、後述するように、動作補正部20で取得する。ロボットアーム5の動作を人4Aが補正した後、人4Aがかけた力が前記閾値(図30Aの値t)より小さくなったと動作指令部27が判断した場合には、動作指令部27により動作補正操作を終了し、動作指令部27によりロボットアーム5の速度を補正前の速度に戻し、さらに、動作指令部27及び動作補正部20により、補正した動作を実行する。動作補正操作が終了したと動作指令部27で判断すると、動作指令部27の指令により、ロボットアーム5のかき混ぜ動作の速度が速くなり(例えば、動作補正操作時のかき混ぜ動作のときの速度の二倍の速度)、人4Aは、動作補正操作が終了したとロボット1が判断したことがわかる。
なお、この例では、人4Aが加えた力により、環境変化通知操作及び動作補正操作の開始及び終了を動作指令部27で自動的に判断して自動で切り替えたが、人4Aがボタンを押すなどのデータ入力IF26を使用することにより、環境変化通知操作及び動作補正操作の開始及び終了を手動で切り替えても良い。さらに、それぞれの操作によりロボットアーム5の動作を停止したり、遅くすることで、どのような操作をしているかを人4Aに知らせたが、例えば、作業台7の壁面7aなどに設置された表示部95の一例としてのモニタなどに、環境変化通知操作又は動作補正操作のどちらの操作をしているかを表示しても良い。
一方、動作補正部20は、動作指令部27から環境変化通知操作の開始の情報を受けたとき、人4Aからロボットアーム5を介して入力される環境変化通知操作の情報を取得するため、補正したい「作業ID」の「動作ID」について、動作情報データベース17の「動作ID」のフラグに従って制御モードを設定して動作するように、制御パラメータ管理部21へ指令を出力する。
具体的には、図10Aの「作業ID」の「2」の作業の「動作ID」の「2」の動作に対応する、動作情報データベース18の「キー動作ID」が「10」〜「17」のキー動作(コマンド)について説明する。図5Aにおいて、各「キー動作ID」のフラグが、0〜5ビット目のみ「1」であり、その他は「0」であるので、ロボットアーム5の動作のうち、x軸、y軸、z軸、φ軸、θ軸、ψ軸のみデータが有効である。従って、ロボットアーム5のx軸、y軸、z軸、φ軸、θ軸、ψ軸を、人4Aが加えた力を用いて、動作補正操作することが可能となる。そして、ロボットアーム5のx軸、y軸、z軸、φ軸、θ軸、ψ軸について、位置制御モードからインピーダンス制御モード(人4Aの力を検知した方向にロボットアーム5を移動させるモード)で動作するように、動作補正部20は制御パラメータ管理部21へ指令を出す。位置制御モードからインピーダンス制御モードに切り替わるため、人4Aの力が加わっていない状態ではロボットアーム5は停止し、人4Aが力を加えると、人4Aが加えた力の方向にロボットアーム5を移動させることができる。
次に、環境変化通知操作の開始後に、図13Cに示すように、鍋3aが直径の大きな鍋3bに変わった事をロボットアーム5に知らせる操作(環境変化通知操作)を人4Aが行う。具体的には、図13Cに示すように人4Aがロボットアーム5のハンド30又はハンド30の近傍の前腕リンク32を手4で直接把持して、鍋3bの鍋底面に平行(x−y平面)に力をかけると、インピーダンス制御モードにより、人4Aの力を力検出部53で検知して、人4Aがロボットアーム5に力をかけた方向(矢印AX方向)にロボットアーム5を移動させる。この例では、この矢印AX方向にロボットアーム5を人4Aにより移動させる操作が環境変化通知操作である。
次いで、環境変化通知操作後に、人4Aが力を加えて移動させた補正動作の情報を動作補正部20で取得するために、制御パラメータ管理部21からのロボットアーム5の手先位置を動作補正部20で取得し、動作補正部20から後述する制御ルール生成部23へ出力する。
次に、動作補正部20は、データ入力IF26から動作指令部27を介して動作補正操作の開始の指令を受けて、動作情報データベース17の補正パラメータフラグに従って、制御モードを設定して動作するように、動作補正部20から制御パラメータ管理部21へ指令を出す。具体的には、図10Aの「作業ID」が「2」の作業の「動作ID」が「2」の動作に対応する、動作情報データベース18の「キー動作ID」が「10」〜「17」のキー動作(コマンド)について説明する。図5Aにおいて、それぞれの「キー動作ID」の補正パラメータフラグは、0,1,2ビット目のみ「1」であり、その他は「0」であるので、ロボットアーム5の動作のうち、x軸、y軸、z軸のみ補正が可能である。従って、ロボットアーム5のx軸、y軸、z軸が人4Aの加えた力を用いて補正することが可能となる。そして、ロボットアーム5のx軸、y軸、z軸について、位置制御モードからハイブリッドインピーダンス制御モード(位置制御モードで移動しながら、人4Aの力を検知した方向にインピーダンス制御で移動させるモード)で動作するように、動作補正部20は制御パラメータ管理部21へ指令を出す。
そして、図13Dに示すように、人4Aがロボットアーム5を直接把持して、鍋3bの直径に合わせて大きく混ぜるように鍋3bの底面沿いの方向に力をかけると、ロボットアーム5は、前述したようにハイブリッドインピーダンス制御モードを行う。その結果、ロボットアーム5は、(1)位置制御モードによるロボットアーム5の移動と、(2)インピーダンス制御モードによる、人4Aの力をかけた方向にロボットアーム5をx軸方向、又は、y軸方向、又は、x軸方向及びy軸方向への移動とを実行する。人4Aは、x−y平面において、鍋3b内で、鍋3aの場合よりも円状に大きくかき混ぜるように補正したいことから、人4Aはロボットアーム5を図13Dに示すように、鍋底面に平行にロボットアーム5に力を加えて移動させる。人4Aが力を加えて移動させたロボットアーム5の動作を動作補正部20で取得するために、制御パラメータ管理部21からのロボットアーム5の動作補正操作の情報として手先位置及び時間を所定の一定時間毎(例えば0.2秒毎)に動作補正部20で取得し、取得した手先位置及び時間を、後述する制御ルール生成部23へ動作補正部20から出力する。ロボットアーム5の手先位置は、エンコーダ44を介して制御パラメータ管理部21より取得する。さらに、時間情報は、制御パラメータ管理部21に備えたタイマ21aにより取得する。また、制御パラメータ管理部21には、力検出部53で検出された力の情報も入力されるため、この力検出部53で検出された力の情報と、タイマ21aによる時間情報とが制御パラメータ管理部21から動作指令部37に入力されて、例えば、補正動作の環境変化通知操作及び動作補正操作の開始及び終了の判断を前記したように行うことができる。
なお、この時間に関する情報は、人4Aが作業を選択して、開始指令をデータ入力IF26を介して動作指令部27に出した時点を0とした相対時間とする。
−制御ルール生成部−
制御ルール生成部23は、動作補正部20で補正された動作情報と環境情報取得部19で取得した環境情報とを対応付けることにより、ロボットアーム5が自動で動作するための制御ルールを生成することができる。すなわち、制御ルール生成部23は、後述するロボットアーム5の制御動作中に、データ入力IF26から動作指令部27を介して、動作補正部20と同様に、動作補正操作の開始の指令を受ける。制御ルール生成部23は、動作補正部20で補正した動作情報と環境情報取得部19で取得した環境情報とに基づいて、制御ルールを生成し、制御ルールデータベース16に記憶する。ここで、ロボットアーム5の制御動作は、(ii)インピーダンス制御モード、(i)位置制御モード、(iv)力制御モード、若しくは、(v)それらを方向別に組み合わせた力ハイブリッド制御モードのうち、いずれかのモードである。
制御ルール生成部23には、環境変化通知操作の開始の指令を受けて、人4Aからの環境変化通知操作にて生成したロボットアーム5の手先位置及び時間が、動作補正部20から入力される。また、制御ルール生成部23には、環境変化通知操作により、環境情報取得部19にて取得した環境情報がデータベース入出力部28を介して入力される。すなわち、環境情報は、ロボットアーム5への人の環境変化通知操作に応じて、環境情報取得部19で取得して、データベース入出力部28を介して制御ルール生成部23に入力される。また、制御ルール生成部23には、環境変化通知操作の開始時の動作中の「動作ID」を動作情報データベース17からデータベース入出力部28を介して参照し、その「動作ID」の「キー動作ID」のフラグに関する情報からロボットアーム5の制御モードに関する情報を取得する。
具体例として、図10Aの「作業ID」が「2」の作業で動作中の「動作ID」が「2」の動作の「キー動作ID」が「10」〜「17」のキー動作を、制御ルール生成部23が、動作情報データベース18をデータベース入出力部28を介して参照する。それぞれの「キー動作ID」のフラグが、図5Aでは、0〜5ビット目のみ「1」であり、その他は「0」であるので、ロボットアーム5の動作のうち、x軸、y軸、z軸、φ軸、θ軸、ψ軸のみデータが有効であると動作指令部27で判断することができる。従って、ロボットアーム5のx軸、y軸、z軸、φ軸、θ軸、ψ軸が人4Aの加えた力で補正ができるように、インピーダンス制御モードとなっている。
制御ルール生成部23は、環境変化通知操作時における(1)ロボットアーム5の移動方向の制御モードと(2)検出部選択ルールデータベース29の情報とに基づいて、複数の環境情報の中から制御ルールを生成するための環境情報の種別を選択する。具体的には、図10Aの「作業ID」が「2」の作業の環境変化通知操作の開始のタイミングでは、図13Cのように、x軸方向及びy軸方向で環境変化通知操作を行っている。x軸及びy軸はインピーダンス制御モードで補正しているので、検出部選択ルールデータベース29の検出部選択ルールの一例を示す図11Aより、「制御モード」が「インピーダンス制御モード」のときの「環境情報の種別ID」は「1」となり、図11Bより、「環境情報の種別ID」が「1」のときは「画像」を制御ルール生成部23で選択する。さらに、図13Cでは、x軸方向及びy軸方向に環境変化通知操作をしているので、x−y平面を撮影可能な第1画像撮像装置15aでの画像を環境変化通知操作の方向により環境情報取得部19で取得し制御ルール生成部23で選択し、第1画像撮像装置15aからの画像を制御ルール生成部23で取得する。なお、x−y平面を撮影可能な第1画像撮像装置15aが複数存在する場合には、それらの複数の第1画像撮像装置15aの中で、環境変化通知操作の前後で画像が最も変化した画像を撮影した第1画像撮像装置15aを制御ルール生成部23で選択する。
図14は、第1画像撮像装置15aにより、鍋3の上方から取得した画像を示す。
第1画像撮像装置15aにより制御ルール生成部23で取得した画像は、データベース入出力部28を介して環境情報データベース18に記憶する。
なお、この例では、x−y平面において環境変化通知操作をしたので、第1画像撮像装置15aの画像を制御ルール生成部23で選択したが、y−z平面及びx−z平面において環境変化通知操作をした場合には、第2画像撮像装置15bの画像を制御ルール生成部23で選択する。制御ルール生成部23で選択した画像は、制御ルール生成部23がデータベース入出力部28を介して環境情報データベース18に記憶する。さらに、変形例として、図36Cと図36Dのように、x−y平面の環境変化通知(鍋3の開口寸法の変化通知)の後に、y−z平面及びx−z平面の環境変化(鍋3の深さ寸法の変化通知)を通知した場合には、制御ルール生成部23が第1画像撮像装置15aと第2画像撮像装置15bの両方の画像を選択する。
前記例で、x−y平面において環境変化通知操作をしたとき、具体的には、図9Aの「環境ID」が「10」として示すように、制御ルール生成部23により、新しい「環境ID」に「10」を付与し、その「環境ID」の「画像ID」に、選択した画像のファイル名(この例では「画像3」)を制御ルール生成部23が環境情報データベース18に記憶する。さらに、フラグは画像のみであるので、制御ルール生成部23により、6ビット目のみ「1」を、その他のビットに「0」を環境情報データベース18に記憶する。
なお、前記変形例において、図36Cと図36Dのように、x−y平面の環境変化通知の後に、y−z平面及びx−z平面の環境変化を通知した場合には、「環境ID」が「33」の環境情報に示すように、制御ルール生成部23により、複数の画像(この例では「画像8」と「画像9」)を環境情報データベース18に記憶するようにしても良い。
次に、動作補正操作の開始の指令を受けて、人4Aがロボットアーム5に力を加えてロボットアーム5を移動させて補正したロボットアーム5の動作情報(ロボットアーム5の手先位置と時間)を制御パラメータ管理部21より制御ルール生成部23で取得する。制御ルール生成部23は、取得した動作情報をデータベース入出力部28を介して動作情報データベース17に記憶する。
具体的には、図5Bに示すように、制御ルール生成部23により、図5Bの動作情報データベース17に新規に動作IDを付与し(この例では「3」)、更に、取得した手先位置の数だけ「キー動作ID」として「20」〜「31」を付与し、動作補正部20で補正した動作情報(手先情報、時間)を動作情報データベース17の各「キー動作ID」に記憶する。
動作情報の時間は、人4Aが作業を選択して開始指令を出した時点を0とした相対時間が、制御ルール生成部23により動作情報データベース17に入力される。このため、動作情報データベース17の時間のデータ欄は、追加した最初のキー動作(この例では「20」)の時間として、全ての動作のそれぞれの時間から減算した値を、制御ルール生成部23により、動作情報データベース17に記憶する。
フラグのデータ欄は、動作補正操作前のフラグが「1」となる動作情報の成分のうち、補正前と補正後におけるキー動作の位置姿勢と、力の値とを成分毎にそれぞれ制御ルール生成部23により比較し、制御ルール生成部23により、閾値以上の差があると判断された場合の成分のみ、図6に示すフラグの各成分を「1」とし、閾値未満であるとされた場合のフラグの成分は「0」とするように、動作情報データベース17に記憶する。
なお、ここで比較する動作補正操作前後の「キー動作」は、動作補正操作前と動作補正操作後のそれぞれの「動作ID」の一番先頭のキー動作のみ、制御ルール生成部23により比較する。
具体的には、補正前の「動作ID」が「2」の動作の「キー動作ID」が「10」のキー動作のフラグは、0〜5ビット目が「1」であり、その他は「0」であるので、補正前の動作と補正後の動作の位置姿勢と、力の値とのうち、位置姿勢成分のみを制御ルール生成部23により比較する。
ここで、制御ルール生成部23により、補正前の「キー動作ID」は「10」のキー動作、補正後の「キー動作ID」は「20」のキー動作とする。
「キー動作ID」が「10」のキー動作と「キー動作ID」が「20」のキー動作では、位置姿勢(x,y,z,φ,θ,ψ)の成分のうち、z,φ,θ,ψは同じで、x座標、y座標の差がそれぞれ(0.2、0.2)となる。上記差の閾値を0.1とすると、x成分及びy成分のみが閾値以上と、制御ルール生成部23により判断される。従って、フラグは0,1ビット目が「1」で、その他は「0」として、制御ルール生成部23により動作情報データベース17に記憶する。
補正パラメータフラグは、補正前の動作(この例では「10」〜「17」)の値を記憶する。
なお、図36Eに示すように、鍋の側面から鍋の底面に向かってかき混ぜるような動作として補正した場合には、図36Fに示すように、時刻t、時刻t、時刻tと時間の経過とともに、ロボットアーム5の姿勢成分が変化するように補正しても良い。
次に、制御ルール生成部23は、取得した環境情報と動作補正部20の動作補正操作により補正した動作とから、制御ルールデータベース16に新しい制御ルールを生成して記憶する。
具体的には、制御ルールデータベース16の「作業ID」が「2」の作業で動作中に動作を補正するため、制御ルール生成部23により、「作業ID」が「2」の作業に1行追加し、動作補正操作により新しく追加した「動作ID」が「3」の動作を追加するように、制御ルールデータベース16に記憶させる。
次に、制御ルール生成部23で選択した環境情報の環境IDを、制御ルール生成部23により制御ルールデータベース16に記憶する。
以上、人4Aが環境変化通知操作及び動作補正操作を行って制御ルール生成部23により新しい制御ルールを生成して制御ルールデータベース16に記憶することで、鍋の大きさを考慮した動作を事前に用意しておかなくても、その場で人4Aがロボットアーム5の操作を行なって環境変化通知を行い、ロボットアーム5の動作を補正するだけで、その操作及び補正動作を制御ルールデータベース16に記憶させることができ、次に同じような環境になった場合に、制御ルールデータベース16の情報を基に(言い換えれば、環境情報取得部19で取得した環境情報を参照しながら、制御ルール生成部23により生成された制御ルールに基づいて)ロボットアーム5は自律的に動作することができるようになる。
−動作指令部(動作算出部)−
この例では、図10Bに示すように、「作業ID」が「2」の作業には、複数の「動作ID」(「2」、「3」)を制御ルールデータベース16に記憶しているため、その場合の動作指令部27の機能について説明する。
図10Bの「作業ID」が「2」の作業の「動作ID」が「2」の動作は図13Aの動作、「動作ID」が「3」の動作は図13Eの動作を行うための動作情報を表す。
人4Aが図13Eの鍋3bを作業台7に設置し、人4Aがデータ入力IF26を介して「作業ID」が「2」の作業の開始を動作指令部27に指令する。動作指令部27は、指定された「作業ID」の作業の作業開始の指令を受けて、制御ルールデータベース16の指定された「作業ID」をデータベース入出力部28を介して参照して、その「作業ID」の作業を開始させるように制御パラメータ管理部21へ指令する。
複数の動作が存在する場合には、「環境ID」に応じて、動作する動作情報を動作指令部27により選択する。具体的には、動作指令部27により、制御ルールデータベースに記憶されているそれぞれの「動作ID」の「環境ID」で環境情報データベース18をデータベース入出力部28を介して参照した環境情報が、ロボットアーム5の動作中の「環境ID」と合致したと判断した場合のみ、その「動作ID」の動作を実行するように、動作指令部27から制御パラメータ管理部21へ指令する。
具体的には、図10Bの「作業ID」が「2」の作業には、「動作ID」が「2」の動作と「3」の動作とがある。「動作ID」が「2」の動作は「環境ID」が「−1」の値であるので、ロボットアーム5の周辺環境に拘わらず、ロボットアーム5は動作するので、実行すべき動作として動作指令部27により選択する。
次に、「動作ID」が「3」の動作の「環境ID」は「10」の環境情報となり、「−1」の値ではないので、動作指令部27により、環境情報データベース18の「環境ID」が「10」の環境情報をデータベース入出力部28を介して参照する。図9Aの「環境ID」が「10」の環境情報のフラグは、6ビット目のみ「1」であり、それ以外は「0」であるので、画像が有効であると、動作指令部27で判断することができる。そこで、画像IDより、データベース入出力部28を介して環境情報データベース18に記憶されている画像情報を動作指令部27が取得する。
次に、環境情報取得部19より、現在の画像情報を動作指令部27が取得して、画像マッチングにより、前記取得した2つの画像を動作指令部27で比較する。2つの画像が合致したと動作指令部27で判断した場合には、「動作ID」が「3」の動作で記憶されている動作を実行すべき動作として動作指令部27で選択する。
動作指令部27で選択された動作が複数存在する場合は(この例では「動作ID」が「2」の動作と「3」の動作)、選択された複数の動作を制御ルールデータベース16に記憶されている順に、それぞれの動作情報のフラグに応じて、最終的に実行すべき動作を、動作指令部27の動作算出部2により算出する。
この例では、「動作ID」が「2」の動作と「3」の動作とが動作指令部27で選択されており、図10Bの制御ルールデータベース16の「動作ID」には「2」の動作、「3」の動作の順に記憶されている。従って、「動作ID」が「2」の動作の動作情報のフラグが、図5Cより0〜5ビット目が「1」であるので、「動作ID」が「2」の動作の動作情報のうち、位置姿勢情報(x,y,z,φ,θ,ψ)を動作指令部27で取得する。次に、「動作ID」が「3」の動作のフラグは、0,1ビット目のみ「1」であるので、「動作ID」が「2」の動作の位置姿勢情報(x,y,z,φ,θ,ψ)のうち、(x、y)成分のみ「動作ID」が「3」の動作の値に置き換えて動作指令部27で算出する。例えば、「キー動作ID」が「10」のキー動作の位置姿勢は、(0.1,0.1,0.4,0,0,0)であり、「動作ID」が「3」の動作の「キー動作ID」が「20」のキー動作の位置姿勢は、(0.3,0.3,0.4,0,0,0)であるので、「キー動作ID」が「10」のキー動作の位置姿勢は、(0.1,0.1,0.4,0,0,0)のx成分及びy成分のみ、「キー動作」が「20」のキー動作の位置姿勢(0.3,0.3,0.4,0,0,0)を動作指令部27で置き換えることで、最終の位置姿勢は、(0.3,0.3,0.4,0,0,0)となる。同様に「キー動作ID」が「11」のキー動作のx成分及びy成分を「キー動作ID」が「21」のキー動作で動作指令部27で置き換え、以降、「キー動作ID」の終わりまで順次動作指令部27で算出する。
動作指令部27により、フラグについては、「動作ID」が「2」の動作と「3」の動作とのそれぞれのビットにおいて、どちらかのビットに「1」の場合には、算出後のフラグのビットを「1」にするとともに、両方とも「0」の場合には、「0」とする。ただし、位置と力のそれぞれの成分はどちらかにしか「1」とならないため(位置制御モード若しくは力制御モードのどちらかでしか作動しないため)、位置と力の両方に「1」となった場合には、力を優先する。よって、「動作ID」が「2」の動作のフラグは、0〜5ビット目が「1」であり、「動作ID」が「3」の動作は0、1ビット目が「1」であるので、0〜5ビット目が「1」となる。「動作ID」が「2」の動作と「3」の動作との動作パラメータフラグは、両方とも0,1,2ビット目が「1」であるので、算出後の動作パラメータフラグも0,1,2ビット目が「1」となり、その他は「0」となる。
算出後の動作情報をフラグに応じて制御モードを動作指令部27で切り替えて、動作情報を動作指令部27から制御パラメータ管理部21へ出力することで、算出した動作を制御部22で実行することが可能となる。
(制御装置本体部11)
制御装置本体部11は、制御パラメータ管理部21と、制御部22とを有する。制御部22と制御パラメータ管理部21との間では、ロボットアーム5の手先位置又は力の情報などが入出力される。この制御装置本体部11は、動作情報取得部の一例であるデータベース入出力部28で取得した動作情報に設定された力で作業対象物に対してロボットアーム5が力制御を行なうようロボットアーム5を力制御モードで制御する力制御部として機能することができる。
−制御パラメータ管理部−
制御パラメータ管理部21は、動作補正部20又は動作指令部27の指示に基づいて、設定された制御モードに従ってロボットアーム5が動作するように、制御部22へ指令を出して、制御部22による制御の下にロボットアーム5を動作させる。さらに、制御パラメータ管理部21は、制御部22からロボットアーム5の手先位置又は力の情報などを取得して動作補正部20へ出力する。
制御パラメータ管理部21の詳細を説明する。
制御パラメータ管理部21は、動作補正部20又は動作指令部27の指示に基づいて、ロボットアーム5の制御モードを切り替える設定信号を出力する。
それぞれの制御モードは、動作補正部20又は動作指令部27にて、動作情報データベースのフラグにより決定し、制御モードを切り替える設定信号を制御パラメータ管理部21へ出力する。
制御モードは、(i)位置制御モードと、(ii)インピーダンス制御モードと、(iii)ハイブリッドインピーダンス制御モードと、(iv)力制御モードと、(v)力ハイブリッドインピーダンス制御モードと、(vi)高剛性位置制御モードとのうち、いずれかの制御方法のモードである。
また、制御パラメータ管理部21は、(iii)インピーダンス制御モード、(iv)ハイブリッドインピーダンス制御モード、及び、(v)力ハイブリッドインピーダンス制御モードにおける機械インピーダンス設定値の設定を行う。また、制御パラメータ管理部21は、後述するインピーダンス計算部51で出力する手先位置、姿勢目標補正出力rd△の設定、及び、目標軌道生成部55への動作情報の設定を行う。
−制御モードの切替動作−
各制御モードについて説明する。
(i)位置制御モード
位置制御モードは、後述する目標軌道生成部55の手先位置と姿勢と時間とに関する情報に基づいて、ロボットアーム5が作動するモードである。
この位置制御モードは、人4Aがロボットアーム5に力を加えてもロボットアーム5は移動しないように、ロボットアーム5の動作を制御するモードである。例えば、かき混ぜ作業又は拭き掃除作業などの作業を行うためにロボットアーム5が動作する場合に用いるモードである。ただし、柔構造のロボットアーム5の場合は、機械的に柔らかい機構であるため、位置制御モードに設定していても、人4Aがロボットアーム5に加えた力でロボットアーム5が若干移動する場合がある。これに対して、後述する高剛性位置制御モードは、人4Aがロボットアーム5に加えた力では、ロボットアーム5が絶対に動かないように制御するモードである。
(ii)インピーダンス制御モード
インピーダンス制御モードは、人4Aなどからロボットアーム5に加わる力(具体的には、力検出部53で検出された力)に応じて、ロボットアーム5が作動するようにロボットアーム5の動作を制御するモードである。例えば、図8に示すように、人4Aが手4でロボットアーム5を直接持ち、ロボットアーム5の手先の位置姿勢を教示する場合に用いるモードである。
(iii)ハイブリッドインピーダンス制御モード
ハイブリッドインピーダンス制御モードは、ロボットアーム5が位置制御モードで動作しているときに、力検出部53で検出された力に応じて、ロボットアーム5が作動するようにロボットアーム5の動作を制御するモードである。例えば、図13Aに示すように、ロボットアーム5が位置制御モードによるかき混ぜ業を行っているときに、人4Aが鍋3aの中の底側の部分をかき混ぜるようにロボットアーム5の動作を補正したい場合に用いるモードである。ハイブリッドインピーダンス制御モードを行うことにより、図13Dに示すように、人4Aがロボットアーム5を把持して、鍋3bの底面沿い方向に力をかけることで、水平方向に大きくかき混ぜる動作に補正することができる。
(iv)力制御モード
力制御モードは、動作補正部20から制御パラメータ管理部21へ設定された力で、ロボットアーム5を用いて作業対象物(作業用治具、例えば、レードル9又は拭き掃除用モップ若しくはスポンジ46、又は、電動ドライバ器具72、又はフレキシブル基板74)を作業対象面(例えば、鍋底、又は、掃除対象面、又は、器具71のネジ穴71aにネジ73を取り付けるときの作業対象面)に押し付けながらかき混ぜ動作又は拭き掃除動作又はネジ回し動作などするようにロボットアーム5の動作を制御するモードである。図12は、本第1実施形態におけるキッチンの拭き掃除動作を行うロボットを示す。例えば、図12に示すようにIHクッキングヒーター6などの天板6aの表面に力を加えて拭き掃除を行う場合、又は図15に示すように、鍋3の底の部分で、レードル9により力を加えて、かき混ぜ作業を行う場合など、力を加えながら、制御する方向に使用する制御モードである。
(v)力ハイブリッドインピーダンス制御モード
力ハイブリッドインピーダンス制御モードは、ロボットアーム5の6軸の方向(x軸,y軸,z軸,φ軸,θ軸,ψ軸の方向)別に、(iii)ハイブリッドインピーダンス制御モード、(ii)インピーダンス制御モード、(i)位置制御モード、を切り替えるとともに、指定した力を作用させて動作する(iii)力制御モードで制御するモードである。なお、力制御モードとインピーダンス制御モードとは排他的な関係であるため、力制御モードが設定された方向にインピーダンス制御モードを設定することはできない。
この力ハイブリッドインピーダンス制御モードは、例えば、図12に示すようにIHクッキングヒーター6などの天板6aの掃除面に対して、ロボットアーム5の先端のハンド30で支持した作業用冶具9、例えば拭き掃除用モップが平行に円状に移動しながら、当該掃除面に垂直下向きに指定した力をかけて、拭き掃除をする場合に用いるモードである。具体的には、(x,y,z,φ,θ,ψ)の6軸それぞれに、以下の制御モードを設定する。すなわち、(x,y)成分がハイブリッドインピーダンス制御モードで、(φ,θ,ψ)成分がインピーダンス制御モードで、z軸成分が力制御モードでそれぞれ動作する力ハイブリッドインピーダンス制御モードである。このように掃除面と水平な方向はハイブリッドインピーダンス制御モードとすることで、位置制御モードで動作している最中に、人4Aなどからロボットアーム5に加わる力に応じて、ロボットアーム5を移動させることができる。さらに、(φ,θ,ψ)成分をインピーダンス制御モードとすることで、ロボットアーム5が動作を停止している状態で人4Aなどからロボットアーム5に加わる力に応じて、ロボットアーム5の姿勢を変更することができるようになる。また、z軸成分を力制御モードに設定することで、指定された力で拭き掃除用モップを掃除面に押し付けながらロボットアーム5を動作させることができるようになる。又は、力ハイブリッドインピーダンス制御モードは、(x,y,z,φ,θ,ψ)の6軸のうち、z軸成分が力制御モードで、その他の軸は位置制御モードで動作させる制御モードであっても良い。その場合は、衝突など不用意な力がロボットアーム5に加わっても、位置制御成分を誤って移動させることはない。
(vi)高剛性位置制御モード
高剛性位置制御モードは、ロボットアーム5の動作中の位置制御モードをさらに高剛性にした制御モードである。具体的には、後述する位置誤差補償部56でのゲインを大きくすることで実現する。人4Aがロボットアーム5に力をかけても、高剛性位置制御モードは、ロボットアーム5を容易に移動させることができず、接触面からの抗力の影響をロボットアーム5が受けないため、人4Aがロボットアーム5にかけた力を正しく検出できる。
これらの制御モード(i)〜(vi)は、ロボットアーム5の動作の際に、ロボットアーム5の方向及び姿勢別にそれぞれ適切な制御モードを設定して動作させる。
さらに、(iii)ハイブリッドインピーダンス制御モード又は(v)力ハイブリッドインピーダンスモードでロボットアーム5が動作中に、補正するパラメータに応じて、機械インピーダンス設定値又はインピーダンス計算部51で出力する手先位置及び姿勢目標補正出力rd△の設定を制御パラメータ管理部21により変更する。
機械インピーダンス設定値の設定パラメータとしては、慣性Mと粘性Dと剛性Kとがある。機械インピーダンス設定値の各パラメータの設定は、補正値を使って、以下の評価式に基づいて行う。
Figure 0005740554
Figure 0005740554
Figure 0005740554
前記式(3)〜(5)中のKM、KD、KKはそれぞれゲインであり、それぞれある定数値である。
制御パラメータ管理部21は、前記式(3)〜(5)に基づき計算した機械インピーダンス設定値の慣性Mと粘性Dと剛性Kとを制御部22へ出力する。
前記式(3)〜(5)により、ロボットアーム5のx軸及びy軸以外の位置成分及び姿勢成分が簡単に動かせると、ロボットアーム5の動作の補正作業が行ないにくくなる。そこで、制御パラメータ管理部21は、ロボットアーム5のx軸及びy軸以外の位置成分及び姿勢成分についてのみ、上記補正値を高く(例えば、上記補正値の約10倍)設定し、ロボットアーム5の粘性D及び剛性Kが大きくなるように設定する。この結果、ロボットアーム5の動きに抵抗感又は硬さが生じ、ロボットアーム5がそのx軸及びy軸以外の位置成分及び姿勢成分について動きにくくなる。例えば図13Dに示すように、人4Aがロボットアーム5のハンド30で把持されたレードル9を使用して、鍋3bのサイズに合わせて大きくかき混ぜるよう動作を補正させたい場合に、このような設定を適用することができる。
又は、別の方法として、インピーダンス計算部51から出力される手先位置及び姿勢目標補正出力rd△の各成分のうち、x軸及びy軸以外の値を、制御パラメータ管理部21により、全て0にする方法がある。これによって、x軸及びy軸以外は、人4Aの力でロボットアーム5が移動できなくなるため、誤操作を防ぐことができる。
制御パラメータ管理部21は、動作補正部20に、ロボットアーム5の手先位置及び姿勢と、ロボットアーム5に対して人4Aの加えた力の情報(ロボットアーム5に作用する人4Aの力に関する情報)とを出力する必要がある。そのため、制御部22から制御パラメータ管理部21にロボットアーム5の手先位置及び力の情報を受けると、制御パラメータ管理部21は、動作補正部20へ出力する。また、動作補正部20及び動作指令部27から制御パラメータ管理部21に入力された、位置及び姿勢と時間などの動作情報を制御パラメータ管理部21から制御部22へ出力する。
−制御部−
次に、制御部22の詳細について、図4を用いて説明する。図4は、本第1実施形態のロボットアームの制御装置70の制御部22の詳細を示す。制御部22は、目標軌道生成部55と、ハンド制御部54と、力検出手段の一例としての力検出部53と、インピーダンス計算部51と、位置制御部59と、位置誤差計算部80とを有する。位置制御部59は、位置誤差補償部56と、近似逆運動学計算部57と、順運動学計算部58とを有して、動作情報取得部の一例としてのデータベース入出力部28で取得した動作情報に基づいてロボットアーム5を移動するよう位置制御モードでロボットアーム5を制御することができる。力検出部53は、図4では制御部22の一部として図示しているが、制御部22とは別の構成としてもよい。
制御部22は、制御パラメータ管理部21で設定された制御モードで動作し、さらに制御モードに応じて、慣性Mと粘性Dと剛性Kとの設定値に基づき設定されたロボットアーム5の機械インピーダンス設定値に、ロボットアーム5の機械インピーダンスの値を制御する。
制御部22は、入出力IF24を介してロボットアーム5との制御信号などの信号のやり取りを行うが、図4では、制御部22とロボットアーム5とのデータ信号のやり取りとして簡略化した図とする。
ロボットアーム5のそれぞれの関節部に設けた各関節軸のエンコーダ44により計測された関節角の現在値(関節角度ベクトル)ベクトルq=[q,q,q,q,q,qが出力され、入出力IF24により制御部22に取り込まれる。ここで、q,q,q,q,q,qは、それぞれ、第1関節部35、第2関節部36、第3関節部37、第4関節部38、第5関節部39、第6関節部40の関節角度である。
目標軌道生成部55は、制御パラメータ管理部21から入力された動作情報(具体的には、ロボットアーム5の手先位置、姿勢、時間)に基づいて、ロボットアーム5の目標とする手先位置及び姿勢目標ベクトルrを生成する。目標軌道生成部55は、生成した手先位置及び姿勢目標ベクトルrを位置誤差計算部80に出力する。
具体的には、目標軌道生成部55は、制御パラメータ管理部21からの制御モード設定信号及び動作情報に基づき、各制御モードでロボットアーム5を動作するように、動作目標とする手先の位置及び姿勢目標ベクトルrと力目標ベクトルfとを生成する。
具体的には、目標とするロボットアーム5の動作は、目的とする作業に応じて動作指令部27からそれぞれの時間(t=0、t=t、t=t、・・・)でのポイント毎の位置及び姿勢(rd0、rd1、rd2、・・・)の情報と、力(fd0、fd1、fd2、・・・)の情報とが与えられている。
目標軌道生成部55は、多項式補間を使用し、前記各ポイント間の軌道を補間し、手先位置及び姿勢目標ベクトルrと力目標ベクトルfとを生成する。
目標軌道生成部55は、(i)位置制御モード、(iii)インピーダンス制御、(iv)ハイブリッドインピーダンス制御モード、(v)力ハイブリッドインピーダンス制御モード、又は(vi)高剛性位置制御モードで、ロボットアーム5を動作するように動作目標とする手先の位置及び姿勢目標ベクトルrを生成する。
目標軌道生成部55は、生成した目標とするロボットアーム5の動作を実現するための手先位置及び姿勢目標ベクトルrと力目標ベクトルfとそれぞれの方向別にどのパラメータが有効かを示すフラグとが、目標軌道生成部55から位置誤差計算部80に出力される。
目標軌道生成部55は、動作情報に含まれる「ハンド」の開閉フラグに基づいて、後述するハンド制御部54に、ハンド30の開閉指令を出す。
ハンド制御部54は、目標軌道生成部55から入力された開閉フラグに基づいて、ハンド開閉駆動用のモータ62を駆動してハンド30を開閉するように、入出力IF24を介してロボットアーム5のハンド開閉駆動用のモータ62に指令を出す。
力検出部53は、力検出手段の一例として機能し、人4A等とロボットアーム5との接触によってロボットアーム5に加わる外力Fextを検出して、検出した力の情報をインピーダンス計算部51と環境情報取得部19と制御パラメータ管理部21(制御パラメータ管理部21を介して動作司令部27)とに出力する。ただし、ロボットアーム5の手先(ハンド30)に質量mの物体(たとえば、作業用冶具9)を把持して又は取り付けて作業している場合は、力検出部53で検出したFextからmgを力検出部53で予め減じておく。ここで、gは重力加速度である。把持物体(たとえば、作業用冶具9)の質量mの値は、物体を把持する(たとえば、作業用冶具9を取り付ける)前に、人4Aが、外部入力装置26aからデータ入力IF26を介して力検出部53に入力できる(図4参照)。また、把持物体(たとえば、作業用冶具9,46,72又はフレキシブル基板74など)である作業対象物の識別番号、質量、形状、寸法、及び、色などの物品情報を物品データベース(図示せず)に記憶しておき、物品認識装置(図示せず)が、作業対象物に備えられたタグなどの識別情報を読み取り、読み取られた識別情報を基に物品データベースに記憶された情報を参照して、対応する作業対象物の質量を取得することも可能である。
力検出部53は、モータドライバ25の電流センサで計測された、ロボットアーム5の各関節部を駆動するモータ43を流れる電流値i=[i,i,i,i,i,iを、入出力IF24を介して取得する。また、力検出部53には、各エンコーダ44で計測された関節角の現在値qが入出力IF24を介して取り込まれるとともに、後述する近似逆運動学計算部57からの関節角度誤差補償出力uqeが取り込まれる。力検出部53は、オブザーバーとして機能し、前記電流値iと、関節角の現在値qと関節角度誤差補償出力uqeとに基づいて、ロボットアーム5に加わる外力により各関節部に発生するトルクτextを算出する。
そして、力検出部53は、式:Fext=J(q)−Tτext−[0,0,mg]によりロボットアーム5の手先における等価手先外力Fextに換算して、この等価手先外力Fextをインピーダンス計算部51に出力する。ここで、J(q)は、
Figure 0005740554
を満たすヤコビ行列である。ただし、v=[v,v,v,ω,ω,ωであり、(v,v,v)は手先座標系42でのロボットアーム5の手先の並進速度、(ω,ω,ω)は手先座標系42でのロボットアーム5の手先の角速度である。また、mはハンド30で把持している把持物体(又はハンド30に取り付けられた作業用冶具9)の質量であり、gは重力加速度である。また、ロボットアーム5のハンド30による物体の把持又は取付を実際に行い、そのときの力検出部53の等価手先外力Fextの推定結果に基づいて把持物体(又はハンド30に取り付けられた作業用冶具9)の質量mの値を算出する事も可能である。物体を把持しない場合はm=0として算出する。
インピーダンス計算部51は、制御パラメータ管理部21から制御モードの設定信号及び機械インピーダンス設定値を受け取り、前記機械インピーダンス設定値にロボットアーム5の機械インピーダンス値を制御する。制御パラメータ管理部21から(i)位置制御モードの設定信号をインピーダンス計算部51が受け取った場合は、機械インピーダンス値として“0”をインピーダンス計算部51から位置誤差計算部80に出力する。制御パラメータ管理部21から(iii)インピーダンス制御モード及び(iv)ハイブリッドインピーダンス制御モードの設定信号をインピーダンス計算部51が受け取った場合は、制御パラメータ管理部21で設定された機械インピーダンス設定値である慣性Mと粘性Dと剛性Kと、エンコーダ44で計測した関節角の現在値qと、力検出部53で検出した外力Fextとに基づいて、インピーダンス計算部51は、ロボットアーム5が機械インピーダンス設定値の制御を実現するための手先位置及び姿勢目標補正出力rdΔを、以下の式(6)により計算する。インピーダンス計算部51は、計算して求められた手先位置及び姿勢目標補正出力rdΔを位置誤差計算部80に出力する。
制御パラメータ管理部21から(v)力ハイブリッドインピーダンス制御モード又は(ii)力制御モードの設定信号をインピーダンス計算部51が受け取った場合、動作制御の「フラグ」で指定された力成分が存在する場合には、制御パラメータ管理部21で設定された機械インピーダンス設定値である慣性Mと粘性Dと剛性Kと、エンコーダ44で計測した関節角の現在値qと、力検出部53で検出した外力Fextと、目標軌道生成部55から出力される力fとに基づいて、インピーダンス計算部51は、ロボットアーム5が機械インピーダンス設定値の制御を実現するための手先位置及び姿勢目標補正出力rdΔを、以下の式(10)により計算する。インピーダンス計算部51は、計算して求められた手先位置及び姿勢目標補正出力rdΔを位置誤差計算部80に出力する。
位置誤差計算部80は、インピーダンス計算部51から出力された手先位置及び姿勢目標補正出力rdΔと、目標軌道生成部55から出力された手先の位置姿勢目標ベクトルrとを加算し、手先位置及び姿勢補正目標ベクトルrdmを生成する。ただし、ハイブリッドインピーダンス制御モード時に、補正パラメータに応じて、ロボットアーム5の動作を拘束する場合に、例えばz軸のみロボットアーム5が動くようにするには、手先位置及び姿勢目標補正出力rdΔのz成分以外を0にインピーダンス計算部51で設定して、位置誤差計算部80に出力する。
Figure 0005740554
ただし、
Figure 0005740554
Figure 0005740554
Figure 0005740554
であり、sはラプラス演算子である。
Figure 0005740554
ただし、
Figure 0005740554
は式(7)、式(8)、式(9)により算出する。
位置誤差計算部80は、さらに、手先位置及び姿勢補正目標ベクトルrdmと、後述する順運動学計算部58により計算される手先位置及び姿勢ベクトルrとの誤差rを求め、求められた誤差rを位置誤差補償部56に出力する。
順運動学計算部58には、ロボットアーム5の各関節部の各関節軸のエンコーダ44からエンコーダ44で計測された関節角の現在値qである関節角度ベクトルqが、入出力IF24を介して入力される。順運動学計算部58は、ロボットアーム5の関節角度ベクトルqから、手先位置及び姿勢ベクトルrへの変換の幾何学的計算を行う。順運動学計算部58で計算された手先位置及び姿勢ベクトルrは、位置誤差計算部80及びインピーダンス計算部51及び目標軌道生成部55に出力される。
位置誤差補償部56は、位置誤差計算部80で求められた誤差rに基づいて、位置誤差補償出力ureを近似逆運動学計算部57に出力する。
具体的には、位置誤差補償出力ureは、
Figure 0005740554
により計算される。ここで、Kは比例ゲイン行列、Kは積分ゲイン行列、Kは微分ゲイン行列であり、その対角成分が手先位置ベクトルr = [x、y、z、φ、θ、ψ]Tの各成分に対するゲインで構成される対角行列である。
さらに、位置誤差補償部56では、高剛性位置制御モードが設定された際に、比例ゲイン行列K、積分ゲイン行列K、微分ゲイン行列Kをあらかじめ設定された値に大きく設定する。ここで、高剛性とは、通常の位置制御と比較して剛性が高くなることを意味し、具体的には、通常の位置制御モードと比較して大きな値を設定する。例えば、通常の位置制御モード時の2倍程度の値に設定すると、剛性を約2倍まで高くすることができる。
このようにすることで、高剛性の位置制御を実現することができる。なお、前記ゲインを各成分毎に値を変えることで、例えば、z軸方向のみ高剛性で、その他の方向は通常の位置制御で動作するよう制御することができる。
近似逆運動学計算部57は、位置誤差補償部56から入力される位置誤差補償出力ureとロボットアーム5において計測される関節角度ベクトルqとに基づいて、近似式uout=J(q)−1inにより、逆運動学の近似計算を行う。ただし、J(q)は、
Figure 0005740554
の関係を満たすヤコビ行列であり、uinは近似逆運動学計算部57への入力であり、uoutは近似逆運動学計算部57からの出力であり、入力uinを関節角度誤差qとすれば、q=J(q)−1のように手先の位置姿勢誤差rから関節角度誤差qへの変換式となる。
従って、位置誤差補償部56から位置誤差補償出力ureが近似逆運動学計算部57に入力されると、近似逆運動学計算部57からの出力として、関節角度誤差qを補償するための関節角度誤差補償出力uqeが近似逆運動学計算部57から入出力IF24を介してロボットアーム5のモータドライバ25に出力される。
関節角度誤差補償出力uqeは、入出力IF24のD/Aボードを介してロボットアーム5のモータドライバ25に電圧指令値として与えられ、各モータ43により各関節軸が正逆回転駆動されロボットアーム5が動作する。
(ロボットアーム5のインピーダンス制御動作の原理)
以上のように構成される制御部22に関して、ロボットアーム5のインピーダンス制御動作の原理について説明する。
インピーダンス制御動作(ハイブリッドインピーダンス制御も同様)の基本は、位置誤差補償部56による手先の位置姿勢誤差rのフィードバック制御(位置制御)であり、図4の点線で囲まれた部分が位置制御部59になっている。位置誤差補償部56として、例えば、PID補償器を使用すれば、手先位置及び姿勢誤差rが0に収束するように位置制御部59による制御が働き、目標とするロボットアーム5のインピーダンス制御動作を実現できる。
(iii)インピーダンス制御モードと、(iv)ハイブリッドインピーダンス制御モードと、(v)力ハイブリッドインピーダンス制御モードとの場合、位置誤差計算部80は、インピーダンス計算部51からの手先位置及び姿勢目標補正出力rdΔを加算し、位置制御部59に対して手先位置及び姿勢の目標値の補正を行う。このため位置制御部59は、手先位置及び姿勢の目標値が本来の値より微妙にずれることになり、結果的に、ロボットアーム5の機械インピーダンスの値を前記適切に設定された設定値に制御でき、位置制御部59の位置制御動作を補正できる。
手先位置及び姿勢目標補正出力rdΔは、(ii)インピーダンス制御モードと、(iii)ハイブリッドインピーダンス制御モードとの場合は式(6)により算出され、(v)力ハイブリッドインピーダンス制御モードの場合は式(10)による算出されるため、ロボットアーム5の慣性Mと粘性Dと剛性Kとの機械インピーダンスの値を設定された設定値に制御できる。
(制御部22の動作ステップ)
本第1実施形態の制御部22の動作ステップについ説明する。図16は、本第1実施形態の制御部22の動作フローチャートである。
ロボットアーム5の各関節部のエンコーダ44により計測された関節角度ベクトルqが、入出力IF24を介して、制御装置本体部11の制御部22に取り込まれる(ステップS1)。
次に、制御部22に取り込まれた関節角度ベクトルqに基づいて、近似運動学計算部57は、ロボットアーム5の運動学計算に必要なヤコビ行列J等の計算を行う (ステップS2)。ここでは、制御動作始動時のため、位置誤差補償部56から入力される位置誤差補償出力ureは、“0”値として近似運動学計算部57で計算する。
次に、順運動学計算部58は、ロボットアーム5の各エンコーダ44から計測された関節角度ベクトルqから、ロボットアーム5の現在の手先位置及び姿勢ベクトルrを計算して、計算した現在の手先位置及び姿勢ベクトルrを、順運動学計算部58から位置誤差計算部80と目標軌道生成部55とインピーダンス計算部51とに出力する(ステップS3)。
次に、動作指令部27及び動作補正部20から制御パラメータ管理部21を介して入力された動作情報に基づき、目標軌道計算部55は、ロボットアーム5の手先位置及び姿勢目標ベクトルr及び力目標ベクトルfを計算し、インピーダンス制御モード時は、ロボットアーム5の手先位置を、目標とする手先位置及び姿勢目標ベクトルr及び力目標ベクトルfとして位置誤差計算部80に出力する(ステップS4)。
次に、力検出部53は、モータ43の駆動電流値iと、関節角度ベクトルqと、関節角度誤差補償出力uqeとに基づいて、ロボットアーム5の手先における等価手先外力Fextを計算して、計算された等価手先外力Fextをインピーダンス計算部51と環境情報取得部19と制御パラメータ管理部21とに出力する(ステップS5)。
次に、制御パラメータ管理部21は、各成分毎に制御モードの切り替えを実行する(ステップS6)。
このステップS6において、制御モードのそれぞれの成分において、(vi)高剛性位置制御モードの場合はステップS7に進み、(i)位置制御モードの場合はステップS8に進み、(iv)力制御モードの場合は、ステップS9に進む。
また、ステップS6において、(v)力ハイブリッドインピーダンス制御モード又はハイブリッドインピーダンス制御モードの場合は、ロボットアーム5の回転軸のうち、変更したい位置成分を(ii)インピーダンス制御モードに変更するために、ステップS9に進む。
具体的には、制御パラメータ管理部21において、動作補正部20により「補正有り」と指示され且つ補正パラメータで6軸のうち力成分を補正する場合は、力成分が設定された成分は高剛性位置制御モードに制御モードを切り替えられる(ステップS6)。その後、ステップS7へ進む。
また、ステップS6では、制御パラメータ管理部21において、力ハイブリッドインピーダンス制御モード又はハイブリッドインピーダンス制御モードが設定されている場合には、6軸のうち位置成分を補正する場合は、変更したい位置成分をインピーダンス制御モードに変更する。その後、ステップS9へ進む。
また、ステップS6では、制御パラメータ管理部21において、位置制御モードが設定されている場合には、ステップS8へ進む。ステップS8で、位置制御モードを設定する。若しくは、ステップS6で制御パラメータ管理部21において、力制御モードが設定されている場合には、ステップS9へ進み、ステップS9で力制御モードを設定する。
制御パラメータ管理部21により高剛性位置制御モードに設定された場合、インピーダンス計算部51は、手先位置及び姿勢目標補正出力rdΔを0ベクトルとする(ステップS7)。その後、ステップS10に進む。
位置誤差補償部56の定数の対角行列である比例、微分、積分の3つのゲインを調整することにより、位置誤差rが0に収束するように位置誤差補償部56の制御が働く。そのゲインを、ある値まで大きくすることで、高剛性の位置制御を実現する(ステップS10)。その後、ステップS12に進む。
制御パラメータ管理部21により位置制御モードが設定された場合、インピーダンス計算部51は、手先位置及び姿勢目標補正出力rdΔを0ベクトルとする(ステップS8)。その後、ステップS11に進む。
制御パラメータ管理部21により、インピーダンス制御モード若しくは力制御モードが設定された場合、インピーダンス計算部51は、制御パラメータ管理部21において設定された機械インピーダンス設定値の慣性Mと粘性Dと剛性Kと、関節角度ベクトルqと、力検出部53により計算されたロボットアーム5に加わる等価手先外力Fextとから、手先位置及び姿勢目標補正出力rdΔが、インピーダンス計算部80により計算される。さらに、補正パラメータに基づいて、手先位置及び姿勢目標補正出力rdΔのいずれか成分の値を0に設定する(ステップS9)。その後、ステップS11に進む。
位置誤差補償部56は、手先位置及び姿勢目標ベクトルrと手先位置及び姿勢目標補正出力rdΔとの和である手先位置及び姿勢補正目標ベクトルrdmと、現在の手先位置及び姿勢ベクトルrとの差である手先位置及び姿勢の誤差rを計算する(ステップS11)。位置誤差補償部56の具体例としては、PID補償器が考えられる。定数の対角行列である比例、微分、積分の3つのゲインを調整することにより、位置誤差rが0に収束するように位置誤差補償部56の制御が働く。その後、ステップS12に進む。
近似逆運動学計算部57は、ステップS2で計算したヤコビ行列Jの逆行列を位置誤差補償出力ureに乗算することにより、位置誤差補償出力ureを、手先位置及び姿勢の誤差に関する値から関節角度の誤差に関する値である関節角度誤差補償出力uqeが得られるように計算する(ステップS12)。
次に、関節角度誤差補償出力uqeが、近似逆運動学計算部57から入出力IF24を通じ、モータドライバ25に与えられる。モータドライバ25は、関節角度誤差補償出力uqeに基づき、ロボットアーム5の関節部のそれぞれのモータ43を流れる電流量を変化させる。この電流量の変化により、ロボットアーム5のそれぞれの関節部のモータ駆動制御を行い(ステップS13)、ロボットアーム5の動作を行う。
以上のステップS1からステップS13が制御の計算ループとして繰り返し実行されることにより、ロボットアーム5の動作の制御、すなわち、ロボットアーム5の機械インピーダンスの値を所定の設定値に制御する動作を実現することができる。
(環境情報を考慮した制御ルール作成のための動作と環境情報を考慮した実際の動作フロー)
ロボットアーム5の制御装置における、環境情報を考慮した制御ルール作成のための動作と環境情報を考慮した実際の動作フローとについて説明する。
図17Aは、本第1実施形態におけるロボットアーム5の制御装置における、ロボットアーム5の動作フローチャートを示す。
人4Aは、外部入力装置26aにより、制御ルールデータベース16の作業の中からロボットアーム5に実行させたい作業を選択し、データ入力IF26を介して、前記選択された作業に対応する「作業ID」の選択指令を動作指令部27に入力する(ステップS50)。
次に、動作指令部27に入力された前記選択指令に基づいて、動作指令部27は、データベース入出力部28を介して制御ルールデータベース16を参照して、前記選択した「作業ID」に関する「動作ID」を特定する。そして、動作指令部27は、前記特定した「動作ID」の情報に基づいて、データベース入出力部28を介して動作情報データベース17を参照し、動作情報データベース17に記憶された「動作ID」に従ってロボットアーム5の動作手順を設定する(ステップS51)。
次に、人4Aが、データ入力IF26を使用して、前記選択した作業についての動作開始の指令を動作指令部27に入力すると、その動作開始指令を動作指令部27が受けて、データベース入出力部28を介して、制御パラメータ管理部21へ、設定した制御モードで動作するよう指令を出す。制御パラメータ管理部21は、設定した制御モードでロボットアーム5が動作するように、制御部22へ指令を出して、制御部22の制御の下にロボットアーム5を動作させる(ステップS52)。
以上が、通常のロボットアーム5の制御動作フローである。
(環境情報の変化を考慮した場合の、ロボットアーム5の制御動作フロー)
次に、環境情報の変化を考慮した場合の、ロボットアーム5の制御動作フローを説明する。
図17Bは、本第1実施形態におけるロボットアーム5の制御装置における、環境情報を考慮した制御ルール作成のための動作フローチャートを示す。
上記ロボットアーム5の動作中に、人4Aがロボットアーム5を操作して、環境変化通知操作の開始の指令の入力を、データ入力IF26を介して、動作指令部27に行う(ステップS53)。動作指令部27に環境変化通知操作の開始の命令が入力されると、動作指令部27により、ロボットアーム5の動作を停止させる。
次に、人4Aがロボットアーム5を把持して、前記制御装置に環境変化を通知するために、人4Aが力をロボットアーム5にかけることで、データ入力IF26から動作指令部27を介して、動作補正部20が環境変化通知操作の動作情報を取得する。具体的には、人4Aが補正を開始した時点から終了する時点までのロボットアーム5の手先位置及び姿勢の情報を、データ入力IF26から動作指令部27を介して、動作補正部20で取得し、制御ルール生成部23へ環境変化通知操作の動作情報として出力する(ステップS54)。
次に、環境情報取得部19により、ロボットアーム5が作用する環境に関する情報又はロボットアーム5が作動する周辺の環境に関する情報(環境情報)を取得する(ステップS55)。
次に、人4Aの環境変化通知操作が終了すると、人4Aが、データ入力IF26を介して、環境変化通知操作の終了情報を動作指令部27へ出力する(ステップS56)。環境変化通知操作の終了情報が動作指令部27へ出力されると、動作指令部27から制御ルール生成部23への環境変化通知操作の動作情報の出力が停止される。
次に、ロボットアーム5の動作中に、人4Aがロボットアーム5を操作して、動作補正操作の開始の指令の入力を、データ入力IF26を介して、動作指令部27に行う(ステップS57)。一例として、ステップS56とステップS57とにおいて、環境変化通知操作の終了情報を受け取っていなくても、動作指令部27が、人4Aから動作補正操作の開始の指令をデータ入力IF26を介して受け取ると、動作指令部27は環境変化通知操作が終了したと判断して、動作補正操作の開始のためにロボットアーム5の動作を再開して、動作補正操作を開始するようにしてもよい。
次に、ロボットアーム5の動作中に人4Aがロボットアーム5を把持して、人4Aが補正したい方向に力をロボットアーム5にかけることで、データ入力IF26から動作指令部27を介して、動作補正部20が補正情報を取得し、動作補正部20が動作情報を補正する。具体的には、人4Aが補正を開始した時点から終了する時点までのロボットアーム5の手先位置及び姿勢の情報をある一定時間毎(例えば0.2秒毎)に、データ入力IF26から動作指令部27を介して、動作補正部20で補正情報として取得し、動作補正部20から制御ルール生成部23へ補正情報を出力して動作情報を補正する(ステップS58)。
次に、人4Aの動作補正操作が終了すると、データ入力IF26を介して、動作補正操作の終了情報を動作指令部27で判断して、動作指令部27から、動作補正部20を介して制御ルール生成部23への補正情報の出力を停止する(ステップS59)
次に、制御ルール生成部23は、動作補正部20で補正した動作情報と環境情報取得部19で取得した環境情報に基づいて、制御ルールを生成し、データベース入出力部28を介して制御ルールデータベース16に記憶する(ステップS60)。
(ロボットアーム5の制御装置の環境情報を考慮した実際の動作フロー)
図29は、本第1実施形態におけるロボットアーム5の制御装置の環境情報を考慮した実際の動作フローチャートを示す。
人4Aは、外部入力装置26aにより、制御ルールデータベース16の作業の中からロボットアーム5に実行させたい作業を選択し、データ入力IF26を介して、前記選択された作業に対応する「作業ID」の選択指令を動作指令部27に入力する(ステップS100)。
次に、動作指令部27に入力された前記選択指令に基づいて、動作指令部27は、データベース入出力部28を介して制御ルールデータベース16を参照して、制御ルールデータベース16において、前記選択された「作業ID」に対応して複数の「動作ID」が存在するか否かを動作指令部27で判断する(ステップS101)。前記選択された「作業ID」に対応して複数の「動作ID」が存在すると動作指令部27で判断された場合には、ステップS102に進む。前記選択された「作業ID」に対応する「動作ID」が1つであると動作指令部27で判断された場合には、ステップS107に進む。
ステップS102では、環境情報取得部19により、現在動作中のロボットアーム5の周辺の環境情報を取得する。その後、ステップS103に進む。
次に、ステップS102で取得した環境情報と、前記各「動作ID」に対応する「環境ID」で参照された環境情報の比較を動作指令部27で行う(ステップS103)。
動作指令部27での比較により、環境情報が合致した「動作ID」の個数が1個であると動作指令部27で判断された場合には、ステップS107に進む。環境情報が合致した動作の個数が0個であると動作指令部27で判断された場合には、ステップS112に進む。環境情報が合致した動作の個数が2個以上であると動作指令部27で判断された場合には、ステップS105に進む。
ステップS105では、動作指令部27の動作算出部2により、合致した2個以上の動作から1つの動作情報を算出する。その後、ステップS106に進む。
ステップS106では、動作算出部2により算出した動作情報は、制御パラメータ管理部21へ出力して、このフローを終了する。
一方、ステップS104で合致した動作が0個であると動作指令部27で判断された場合は、動作すべき動作が無しとなり、このフローを終了するとともに、ロボットアーム5は動作を停止する(ステップS112)。
また、ステップS104で合致した動作が1個であると動作指令部27で判断された場合とステップS101で「動作ID」が1個であると動作指令部27で判断された場合には、その「動作ID」の「環境ID」が「−1」の値であるかを動作指令部27で判断する(ステップS7)。「動作ID」の「環境ID」が「−1」の値であると動作指令部27で判断された場合には、ステップS111に進む。「動作ID」の「環境ID」が「−1」の値でないと動作指令部27で判断された場合には、ステップS108に進む。
ステップS108では、環境情報取得部19により、現在動作中のロボットアーム5の周辺の環境情報を取得する。その後、ステップS109に進む。
ステップS109では、ステップS108で取得した環境情報と、前記1個の「動作ID」に対応する「環境ID」で参照された環境情報との比較を動作指令部27で行う。
次いで、ステップS110において、ステップS109で環境情報が合致したと動作指令部27で判断した場合には、動作指令部27が制御ルールデータベース16を参照して、前記合致した「環境ID」に対応する「動作ID」で記憶されている動作情報を取得し、取得した動作情報を制御パラメータ管理部21へ出力して、このフローを終了する(ステップS111)。
ステップS110において、環境情報が合致しなかったと動作指令部27で判断した場合には、動作すべき動作が無しとして、このフローを終了するとともに、ロボットアーム5は動作を停止する(ステップS112)。
以上、図16の動作ステップS1〜ステップS13及び図17A〜図17BのステップS50〜ステップS60により、制御ルールに基づいてロボットアーム5の動作中に、人4Aがロボットアーム5を直接把持して、力をロボットアーム5にかけることで、ロボットアーム5の周辺環境の変化を通知し、さらにその環境に応じて、動作情報を補正することができる。
さらに、制御ルールを新たに生成することで、図29のステップS100〜S112の動作指令部27の動作により、次回同じ環境となった際に、再度、人4Aが動作補正の操作をすることなく、制御ルールデータベース16の情報を基に(言い換えれば、環境情報取得部19で取得した環境情報を参照しながら、制御ルール生成部23により生成された制御ルールに基づいて)ロボットアーム5が自律的に動作することが可能となる。
(第2実施形態)
本発明の第2実施形態における、ロボットアーム5とその制御装置の基本的な構成は、第1実施形態の場合と同様であるので、共通部分の説明は省略し、異なる部分についてのみ以下、詳細に説明する。
図19Aに示すように、ロボットアーム5とロボットアーム5制御装置を備えるロボット1を使って、IHクッキングヒーター6などの天板6aを拭き掃除作業する場合を例に説明する。ロボットアーム5のハンド30には、作業対象物の一例である拭き掃除作業用治具の一例としてのスポンジ46が取付けられている。
まず、比較例として、本発明とは異なり、汚れが発生した場合(汚れた部分を見つけた場合)に、その都度、人4Aが補正操作をしなければならない場合について説明する。
人4Aは、ロボットアーム5が、例えば図10Aの「作業ID」の「1」の作業で、図19A(図18AはIHクッキングヒーター6の天板6aを上方から見た図)に示すように、IHクッキングヒーター6などの天板6aをスポンジ46で拭き掃除動作をしている最中に、人4Aが、IHクッキングヒーター6などの天板6a上の拭き掃除動作中の場所とは別の場所(汚れた部分)91が汚れていることを見つけたとする。このとき、図19B(図18BはIHクッキングヒーター6の上方から見た図)に示すように、汚れ付近をスポンジ46で掃除するために、人4Aが手4でロボットアーム5を把持して、ロボットアーム5の手先位置にあるスポンジ46を、汚れた部分91に移動させる。
次に、汚れた部分91に対して、天板6aの平面方向のスポンジ46(ハンド30)の移動速度を加速させると同時に天板6aの汚れ面に対してはスポンジ46で強めに擦るために、人4Aが動作中のロボットアーム5を把持して、天板6aの平面方向は加速させて移動させながら、さらに、人4Aが、IHクッキングヒーター6の上方から下向きに汚れた部分91に向かって力をロボットアーム5に加える。
この結果、ロボットアーム5のIHクッキングヒーター6の平面方向は加速して移動しながら、ロボットアーム5は、さらに、IHクッキングヒーター6の擦る力を強めて、拭き掃除作業を行う。
以上のような補正は、次回同じような汚れが発生した場合(汚れた部分を見つけた場合)に、再度、人4Aが補正操作をしなければならず、面倒であった。
そこで、この第2実施形態では、人4Aからの操作とその際の環境情報から、制御ルール生成部23により制御ルールを生成することにより、次回同じような汚れが発生した場合には、制御ルールデータベース16の情報を基に(言い換えれば、環境情報取得部19で取得した環境情報を参照しながら、制御ルール生成部23により生成された制御ルールに基づいて)ロボットアーム5が自律的に拭き掃除作業をすることができるようになる。
以下、その機能について説明する。
−動作指令部−
以下、動作指令部27の機能について説明する。
人4Aは、データ入力IF26により、制御ルールデータベース16の作業の中の「作業ID」に関する作業の中からロボットアーム5に実行させたい作業を選択して、動作指令部27により動作を実行する。すなわち、人4Aがデータ入力IF26により図10Aの「作業ID」が「1」の作業が選択された場合には、動作指令部27は、その「1」の作業に対応する「動作ID」で動作情報データベース17をデータベース入出力部28を介して参照し、動作情報(具体的には、位置、姿勢、時間、力)を基にフラグに従って制御モードを設定してロボットアーム5が動作するように、制御パラメータ管理部21へ指令を出す。
具体的には、図10Aの「作業ID」が「1」の作業が選択された場合は、「環境ID」が「−1」の値であるので、ロボットアーム5が動作する環境情報に関わらず、「動作ID」で記憶された動作で動作するように動作指令部27から制御パラメータ管理部21へ指令を出す。「作業ID」が「1」の作業の「動作ID」が「1」の動作の場合には、図5Aの動作情報データベース17より、「フラグ」が0、1、3、4、5ビット目が「1」であるので、ロボットアーム5の手先のx、y、φ、θ、ψが有効ということを示しているので、x、y、φ、θ、ψについては位置制御モードで動作させ、z軸についてはフラグの「8」ビット目が「1」であるので、力制御モードで動作するように動作指令部27から制御パラメータ管理部21へ指令を出す。以上により、図19Aに示すように、ロボットアーム5は、IHクッキングヒーター6などの天板6aの拭き掃除作業を開始する。
−動作補正部−
以下、動作補正部20の機能について説明する。
IHクッキングヒーター6などの天板6aを拭き掃除動作をしている最中に、人4AがIHクッキングヒーター6などの天板6a上の拭き掃除動作中の場所とは別の場所が汚れていることを確認し、データ入力IF26により、汚れの状態をロボットアーム5に知らせる操作(環境変化通知操作)の開始の指令を動作指令部27に出す。
まず、動作補正部20は、データ入力IF26から動作指令部27を介して環境変化通知操作の指令を受けて、データベース入出力部28を介して動作情報データベース17のフラグに従って、制御モードを設定して動作するように、制御パラメータ管理部21へ指令を出す。具体的には、図10Aの「作業ID」が「1」の作業で動作中の「動作ID」が「1」の動作をデータベース入出力部28を介して動作情報データベース17から参照すると、それぞれの「キー動作ID」のフラグが、図5Aでは、0、1、3〜5ビット目、8ビット目のみ「1」であり、その他は「0」であるので、ロボットアーム5の動作のうち、位置姿勢に関しては、x軸、y軸、φ軸、θ軸、ψ軸、力に関してはz軸のみデータが有効ということが動作補正部20でわかる。
従って、x軸、y軸、φ軸、θ軸、ψ軸が人4Aの加えた力で補正ができるように、x軸、y軸、φ軸、θ軸、ψ軸について、位置制御モードからインピーダンス制御モード(人4Aの力を検知した方向に移動させるモード)で動作するように、動作補正部20は制御パラメータ管理部21へ指令を出す。z軸については、IHクッキングヒーター6などの天板6aの位置で高剛性位置制御モードにより動作するように、動作補正部20は制御パラメータ管理部21へ指令を出す。インピーダンス制御モードでは、人4Aから力が加わっていない場合は停止し、人4Aから力が加わっている場合はその方向に移動することができる。高剛性位置制御モードでは、人4Aが力を加えても容易にロボットアーム5が移動しないモードで、人4Aが加えた力を力検出部53により検出することができる。
次に、図19B(図18B)のように、IHクッキングヒーター6などの天板6aの汚れ箇所をロボットアーム5に知らせる操作(環境変化通知操作)を人4Aが行う。具体的には、人4Aが手4でロボットアーム5を直接把持して、汚れた部分91に向かって力をロボットアーム5に加えてx−y平面を移動させる。次いで、汚れた部分91の上でx軸方向及びy軸方向にスポンジ46を移動させながら、人4Aがz軸方向下向きに力をロボットアーム5に加える。
人4Aが環境変化通知操作によりロボットアーム5に力を加えてロボットアーム5を移動させた動作を取得するために、制御パラメータ管理部21からのロボットアーム5の手先位置及び力を動作補正部20で取得し、取得した情報を動作補正部20から、後述する制御ルール生成部23へ出力する。
次に、動作補正部20は、データ入力IF26から動作指令部27を介して動作補正操作の開始の指令を受けて、動作情報データベース17の補正パラメータフラグに従って、制御モードを設定して動作するように、制御パラメータ管理部21へ指令を出す。具体的には、図10Aの「作業ID」が「1」の作業で動作中の「動作ID」が「1」の動作をデータベース入出力部28を介して動作情報データベース18から動作補正部20が参照すると、それぞれの「キー動作ID」の補正パラメータフラグが、図5Aでは、0、1、8ビット目のみ「1」であり、その他は「0」であるので、ロボットアーム5の動作のうち、x軸及びy軸の位置成分及びz軸の力成分のみ補正が可能ということが動作補正部20でわかる。x軸及びy軸の位置成分とz軸の力成分を補正する場合には、x軸及びy軸の位置成分とz軸の力成分を人4Aの加えた力で補正ができるように、x軸及びy軸はハイブリッドインピーダンス制御モードに、z軸は高剛性位置制御モードで動作するように、動作補正部20は制御パラメータ管理部21へ指令を出す。
人4Aは、図19Cに示すように、汚れた部分91及びその付近を強めに力をかけて速く移動してスポンジ46で掃除するために、図19D(図19Cを上から見た図)に示すように、人4Aでロボットアーム5を直接把持して、加速したい場合は、拭き掃除の進行方向と同じ向きに人4Aでロボットアーム5に力をかけ、減速したい場合は掃除の進行方向に逆らう向きに人4Aの手4でロボットアーム5に力をかける。さらに、汚れた部分91に向かう方向については、人4Aがロボットアーム5を把持して汚れのある部分に向かってロボットアーム5に力を加える。
x軸及びy軸は、ハイブリッドインピーダンス制御モードにより、位置制御モードでロボットアーム5を移動させながら、インピーダンス制御モードにより、人4Aの手4でロボットアーム5にかけた力を力検出部53で検出して人4Aの手4でロボットアーム5に力をかけた方向にロボットアーム5をx軸方向及びy軸方向に移動させる。図10Aの「作業ID」が「1」の作業で動作中の「動作ID」が「1」の動作で示されたロボットアーム5の位置(x、y)から、次の「動作ID」のロボットアーム5の位置(x、y)まで移動するのにかかる時間をtとすると、ロボットアーム5の速度を人4Aの力で変更した場合(図19D参照)には、すなわち、位置(x、y)から位置(x、y)までに移動するのにかかる時間がtからtに変更された場合には、時間tの値が、動作補正部20から、制御パラメータ管理部21へ出力する。これにより、図19Eのような動作に補正される。
さらに、z軸方向に加えた力は力検出部53で検出し、制御パラメータ管理部21からのロボットアーム5の力及び時間を動作補正部20で取得し、取得した情報を動作補正部20から、後述する制御ルール生成部23へ出力する。なお、この時間に関する情報は、人4Aが作業を選択して開始指令を出した時点を0とした相対時間とする。
−制御ルール生成部−
制御ルール生成部23は、第1実施形態の場合と同様に、データベース入出力部28を介して、制御ルールデータベース16の「動作ID」が参照する動作情報データベース17の位置及び姿勢及び力及び時間との情報にて、後述するインピーダンス制御モード、若しくは位置制御モード、若しくは力制御モード、若しくはそれらを方向別に組み合わせた制御モード、のうち、いずれかのモードでのロボットアーム5の動作中に、データ入力IF26から動作指令部27を介して、制御ルール生成部23で動作補正操作の開始の指令を受ける。すると、制御ルール生成部23では、動作補正部20で補正した動作情報と環境情報取得部19で取得した環境情報とに基づいて、制御ルールを生成し、データベース入出力部28を介して、制御ルールデータベース16に記憶する機能を有している。
以下、制御ルール生成部23の機能について説明する。
制御ルール生成部23には、データ入力IF26から動作指令部27を介して、動作中の作業IDに対して、環境変化通知操作の開始の指令を受けて、人4Aからの環境変化通知操作にて生成したロボットアーム5の手先位置及び時間を動作補正部20より入力される。加えて、環境変化通知操作の開始のタイミングより、環境情報取得部19より環境情報が制御ルール生成部23に入力される。さらに、環境変化通知操作の開始時の動作中の「動作ID」を動作情報データベース18からデータベース入出力部28を介して制御ルール生成部23で参照し、その「動作ID」の「キー動作ID」のフラグに関する情報から、現在のロボットアーム5の制御モードに関する情報を制御ルール生成部23で取得する。具体的には、図10Aの「作業ID」が「1」の作業で動作中の「動作ID」が「1」の動作の「キー動作ID」が「1」〜「8」のキー動作をデータベース入出力部28を介して動作情報データベース18から制御ルール生成部23で参照すると、それぞれの「キー動作ID」のフラグが、図5Aでは、0、1、3〜5、8ビット目のみ「1」であり、その他は「0」であるので、ロボットアーム5の動作のうち、位置姿勢に関しては、x軸、y軸、φ軸、θ軸、ψ軸、力に関してはz軸のみデータが有効ということが制御ルール生成部23でわかる。従って、x軸、y軸、φ軸、θ軸、ψ軸が人4Aの加えた力で補正ができるように、インピーダンス制御モードとなっている。
現在動作中の環境変化通知操作の際のロボットアーム5の移動方向の制御モードと検出部選択ルールデータベース29に基づいて、複数の環境情報の中から制御ルールを生成するための環境情報の種別を制御ルール生成部23で選択する。具体的には、図10Aの「作業ID」が「1」の作業の環境変化通知操作の開始のタイミングでは、図18Bのようにx軸方向及びy軸方向で環境変化通知操作を行っている。x軸及びy軸はインピーダンス制御モードで補正しているので、図11Aより、環境情報の種別IDは「1」となり、図11Bより、「画像」となる。さらに、図18Bでは、x軸方向及びy軸方向に環境変化通知操作をしているので、x−y平面を撮影可能な第1画像撮像装置15aでの画像を制御ルール生成部23で選択する(例えば図20の汚れが撮像された画像)。さらに、図18Bの操作では、高剛性位置制御モードにてz軸方向に力を加える操作をしている。図11Aより、環境情報の種別IDは、高剛性位置制御モードの場合は「2」となり、図11Bより、「力」となり、力検出部53で検出した力を制御ルール生成部23で選択する。
制御ルール生成部23で取得した画像と力の情報を、制御ルール生成部23によりデータベース入出力部28を介して環境情報データベース18に記憶する。具体的には、図9Aの「環境ID」が「11」の環境情報に示すように、新しい「環境ID」に「11」を制御ルール生成部23で付与し、その「環境ID」の「画像ID」に、選択した画像のファイル名を制御ルール生成部23でデータベース入出力部28を介して環境情報データベース18に記憶する(この例では画像4であり、図20の汚れた部分91が撮像された画像である。)。さらに、検出した力の値を制御ルール生成部23でデータベース入出力部28を介して環境情報データベース18に記憶する。なお、力に関しては全ての軸を制御ルール生成部23でデータベース入出力部28を介して環境情報データベース18に記憶する。力に関しては、汚れによって摩擦係数(摩擦係数は、拭き掃除動作時の力検出部53の出力のうち、掃除面上の進行方向の力を、掃除面の垂直抗力で割ることで算出される)が異なる。例えば、粘性のある物質がこびりついている場合には、摩擦係数が大きくなる。従って、力に関する情報を制御ルール生成部23でデータベース入出力部28を介して環境情報データベース18に記憶することで、摩擦係数に応じて拭き掃除の力加減を変えることができるようになる。
フラグは、画像及び力の全ての値が有効であるので、0〜6ビット目を「1」として、制御ルール生成部23でデータベース入出力部28を介して環境情報データベース18に記憶する。
動作補正操作の開始の指令を受けて、動作補正部20で補正した動作情報をデータベース入出力部28を介して動作情報データベース17に記憶する。
具体的には、図5Cに示すように、動作情報データベース17に新規に「動作ID」を動作補正部20で付与し(この例では「4」)、さらに「キー動作ID」として(「32」〜「38」)を動作補正部20で付与し、動作補正部20で補正した動作情報をそれぞれの「キー動作ID」に記憶する。時間については、動作補正部20からは、人4Aが作業を選択して開始指令を出した時点を0とした相対時間が入力されるため、一番最初のキー動作(この例では「20」)の時間を全ての動作のそれぞれの時間から減算した値を動作情報データベース17に記憶する。フラグについては、補正前のフラグで「1」となっている動作情報の成分のうち、補正前と補正後の「動作ID」のそれぞれのキー動作の位置姿勢と力の値とをそれぞれの成分毎に動作補正部20で比較し、その差がある閾値以上の成分のみ、動作補正部20により、図6のフラグのそれぞれの成分を「1」とし、閾値未満の場合には「0」とする。
具体的には、補正前の「動作ID」が「1」の動作のフラグは、0、1、3〜5、8ビット目が「1」であり、その他は「0」であるので、補正前の動作と補正後の動作の位置姿勢、力の値のうち、位置姿勢(x,y,φ,θ,ψ)、力z成分のみを動作補正部20で比較する。「キー動作ID」が「1」のキー動作と「4」のキー動作とでは、位置姿勢(x,y,φ,θ,ψ)の成分のうち、x成分の差は0.1(m)、y成分の差は0.2(m)、その他の成分は同じで、力のz成分の差が3(N)となる。位置の差の閾値を0.05(m)、力の差の閾値を0.5(N)とすると、位置x成分及びy成分、力のz軸成分が閾値以上となる。従って、「動作ID」が「4」の動作のそれぞれの「キー動作ID」のフラグは、0、1、8ビット目が「1」で、その他は「0」となる。
補正パラメータフラグについては、補正前の動作(この例では「1」〜「8」)の値を動作補正部20により動作情報データベース17に記憶する。
以上により、人4Aが環境変化通知操作及び動作補正操作をすることにより、制御ルール生成部23により、新しい制御ルールを生成することで、環境変化に伴って、人4Aが操作をして動作を補正すれば、次に同じような環境になった場合に、制御ルールデータベース16の情報を基に(言い換えれば、環境情報取得部19で取得した環境情報を参照しながら、制御ルール生成部23により生成された制御ルールに基づいて)ロボットアーム5は自律的に動作することができるようになる。
以上のように、制御ルールを新しく生成することで、次に同じ環境になった場合に(この例では、汚れがひどい場合は強めに速く拭き掃除を行う場合に)、制御ルールデータベース16の情報を基に(言い換えれば、環境情報取得部19で取得した環境情報を参照しながら、制御ルール生成部23により生成された制御ルールに基づいて)追加した制御ルールで作業を行うことが可能になる。
この例では、図10Bに示すように、「作業ID」が「1」の作業には、複数の「動作ID」(「1」、「4」)を動作情報データベース17に記憶しているため、その場合の動作指令部27の機能(動作算出部2)について説明する。
図10Bの「作業ID」が「1」の作業の「動作ID」が「1」の動作は、図19Aの動作を行うための動作情報を表し、一方、「作業ID」が「1」の作業の「動作ID」が「4」の動作は図19Bのように汚れがひどい場合の拭き掃除動作を行うための動作情報を表す。
人4Aが、データ入力IF26により、「作業ID」が「1」の作業の開始を動作指令部27に指令する。
動作指令部27は、指定された「作業ID」の作業の作業開始指令を受けて、データベース入出力部28を介して制御ルールデータベース16の指定された「作業ID」の作業を開始させる。このとき、「作業ID」の中に複数の「動作ID」が存在すると動作指令部27で判断した場合は、それぞれの「環境ID」とそれぞれの「動作ID」のフラグ(「動作ID」で動作情報データベース17をデータベース入出力部28を介して動作指令部27が参照し、そこで記憶されているフラグ)により、最終的に実行すべき動作情報を動作指令部27の動作算出部2により算出する。
具体的には、図10Bにおいて、「作業ID」が「1」の作業には、「動作ID」が「1」の動作と「4」の動作とがある。「動作ID」が「1」の動作は「環境ID」が「−1」の値であるので、ロボットアーム5の周辺環境に拘わらず動作するので、実行すべき動作として動作指令部27により選択する。
次に、「動作ID」が「4」の動作の「環境ID」は「11」の環境情報となり、「−1」の値ではないので、動作指令部27により、環境情報データベース18の「環境ID」が「11」の環境情報をデータベース入出力部28を介して参照する。図9Aの「環境ID」が「11」の環境情報のフラグは、1〜6ビット目が「1」であるので、画像及び力が有効であると、動作指令部27で判断できる。そこで、画像ID(具体的には画像ファイル名)及び力を、データベース入出力部28を介して環境情報データベース18により動作指令部27が取得する。
次に、環境情報取得部19より、現在の画像情報及び力情報を動作指令部27が取得して、画像マッチングにより、前記取得した画像IDの画像情報と現在の画像情報とに基づく2つの画像を動作指令部27で比較する。2つの画像が合致したと動作指令部27で判断した場合には、「動作ID」が「3」で記憶されている動作を実行すべき動作として動作指令部27で選択する。
選択された動作が複数存在する場合は(この例では、「動作ID」が「1」の動作と「4」の動作)、選択された複数の動作を、制御ルールデータベース16に記憶されている順に、それぞれの動作情報のフラグに応じて、実行すべき動作を動作指令部27で足し合わせる。
この例では、「動作ID」が「1」の動作と「4」の動作とが動作指令部27で選択されており、図10Bの制御ルールデータベース16の「動作ID」には「1」の動作、「4」の動作の順に記憶されている。従って、「動作ID」が「1」の動作の動作情報のフラグが、図5Cより0、1、3〜5ビット目及びビット目が「1」であるので、「動作ID」が「1」の動作の動作情報のうち、位置姿勢情報(x,y,φ,θ,ψ)と力z軸成分の動作情報を動作指令部27で取得する。
次に、「動作ID」が「4」の動作のフラグは、0、1、8ビット目のみ「1」であるので、「動作ID」が「1」の動作の位置のx成分及びy成分と力のz軸成分を「動作ID」が「4」の動作のそれぞれに置き換えて動作指令部27で算出する。例えば、「キー動作ID」が「1」のキー動作の位置姿勢は、(0.1,0.1,0,0,0,0)、力(0,0,5,0,0,0)であり、「動作ID」が「4」の動作の「キー動作」が「32」の動作の位置姿勢は、(0.2,0.3,0,0,0,0)、力(0,0,8,0,0,0)であるので、「キー動作」が「1」のキー動作の位置姿勢、力情報のうち、「キー動作ID」が「32」のキー動作の位置のx成分及びy成分(0.2、0.3)と力z軸成分8(N)のみを動作指令部27で置き換えることで、最終の位置姿勢は、(0.2,0.3,0,0,0,0)、力情報(0,0,8,0,0,0)となる。同様に「キー動作ID」が「2」のキー動作の位置のx成分及びy成分と力のz成分を、「キー動作ID」が「33」のキー動作のx成分及びy成分と力のz成分で動作指令部27で置き換え、以降、「キー動作ID」の終わりまで動作指令部27で順次算出する。
動作情報のフラグ及び動作情報フラグについて、「動作ID」が「1」の動作と「4」の動作とのそれぞれのビットにおいて、どちらかのビットが「1」の場合には、算出後のフラグのビットを「1」にするとともに、両方とも「0」の場合には、「0」とする。ただし、位置と力のそれぞれの成分はどちらかにしか「1」とならないため(位置制御モード若しくは力制御モードのどちらかでしか作動しないため)、位置と力の両方に「1」となった場合には、力を優先する。
「動作ID」の「1」の動作のフラグは、0、1、3〜5、8ビット目が「1」であり、「4」は8ビット目が「1」であるので、算出した動作のフラグは、0、1、3〜5、8ビット目が「1」となる。
「動作ID」の「1」の動作と「4」の動作との動作パラメータフラグは、共に0、1、8ビット目が「1」であるので、算出した動作の動作パラメータフラグは0、1、8ビット目が「1」となる。
算出後の動作情報をフラグに応じて制御モードを動作指令部27で切り替えて、動作情報を動作指令部27から制御パラメータ管理部21へ出力することで、算出した動作を動作指令部27で実行することが可能となる。
以上により、拭き掃除中に人4Aが汚れている箇所をロボットアーム5を直接把持して、力をロボットアーム5にかけることで、ロボットアーム5の周辺環境の変化(汚れのある箇所)を通知し、汚れの色又は汚れ面の摩擦係数に応じて、動作情報を補正することができる。さらに、第1実施形態と同様に、制御ルールを新たに生成することで、図29のステップS100〜S112の動作指令部27の動作により、次回同じ環境となった際に、再度人4Aが動作補正の操作をすることなく、制御ルールデータベース16の情報を基に(言い換えれば、環境情報取得部19で取得した環境情報を参照しながら、制御ルール生成部23により生成された制御ルールに基づいて)ロボットアーム5が自律的に動作することができるようになる。
(第3実施形態)
本発明の第3実施形態における、ロボットアーム5とその制御装置の基本的な構成は、第1実施形態の場合と同様であるので、共通部分の説明は省略し、異なる部分についてのみ以下、詳細に説明する。
第3実施形態においては、ロボットアーム5とロボットアーム5の制御装置を備えるロボット1を使って、図21に示すように、セル生産の工場でテレビ又はDVDレコーダなどの機器71にネジ73を取り付ける場合を例にとって説明する。ロボットアーム5のハンド30には、作業用治具の一例としてネジ73を取り付けるための工具が取付け可能としている。
図21に示したように、ロボット1のロボットアーム5は、例えば工場内の作業台テーブルなどの作業台7の壁面7aに設置され、ロボットアーム5の基端が、壁面7aに固定されたレール8に、移動可能に支持され、レール8上をロボットアーム5がレール8沿いの横方向例えば水平方向に、人4Aの力により、移動可能とする。15aはカメラなどの第1画像撮像装置であり、例えば天井7bから作業台7を撮像できるように取り付けられている。
ロボット1は、例えば、工場内で、テレビ又はDVDレコーダのネジ73の取り付け作業などのロボットアーム5と人4Aとが協働して行う作業をロボットアーム5を使用して行う。
第1実施形態と同様に、まず、人4Aが手4でロボット1のロボットアーム5を直接把持してロボットアーム5に力を加える。そして、人4Aからロボットアーム5に加えられた力により、ロボット1のロボットアーム5をレール8に沿って移動させることで、器具71(この例では、ネジ73を取り付けるテレビ又はDVDレコーダの機器を示す。)の付近までロボットアーム5を誘導する。
次に、人4Aが、ロボット1のロボットアーム5の手先すなわち先端のハンド30に、作業対象物の一例である作業用冶具9の別の例として、ネジ73を取り付けるための工具、例えば、電動ドライバ器具72を取り付ける。電動ドライバ器具72は、例えば、ネジ73をその下端に支持可能でかつ電動ドライバ器具72を下方に向けて機器71に押し付けることにより、スイッチがオンになり、ドライバが自動的に回転してネジ73をネジ穴71aに対してネジ回転動作可能(締め付け動作可能又は取り外し動作可能)に構成している。押し付けを解除すれば、推知がオフとなり、電動ドライバ器具72のドライバの回転が停止される。
次に、セル生産の作業台7などの前側側面7eなどに配置されている、データ入力IF26の一例としてのロボット1の操作盤13のボタン13aを、人4Aが押すなどしてデータ入力IF26を使用することにより、ロボットアーム5が作動し、予め選択された作業、すなわち、器具71のネジ穴71aに、ハンド30で把持した電動ドライバ器具72の先端に支持されたネジ73を取り付ける(締め付ける)作業を開始させる。
次に、機器71の仕様変更により、機器71の形状又はネジ73若しくはネジ穴71aの仕様が変更になった場合に、ロボットアーム5が、ハンド30で把持した電動ドライバ72によりネジ73の取り付け作業を行っているときに、人4Aがネジ73の取り付け状態を確認し、人4Aがロボットアーム5に力を加えて、ネジ73の締め付け方、又は、ネジ73の位置の調整などの動作補正を行うことにより、ロボット1のロボットアーム5の動作を補正する。
レール8は、作業台7の壁面7aに配置したが、壁面の無い作業台の場合は、天井面又は作業台の天板6aの側面など作業をするのに適した場所に設置することができる。
さらに、操作盤13は、作業台7の側面に固定したが、操作盤13に代えて、遠隔操作が可能なリモコンでも良い。
−動作情報データベース−
動作情報データベース17は、第1実施形態と同様に、ロボットアーム5の、ある時間におけるロボットアーム5の手先位置及び姿勢などのロボットアーム5の動作に関する情報(動作情報)を記憶している。動作情報は、制御ルール生成部23を介してデータベース入出力部28により動作情報データベース17に入出力される。
図22A、図22Bは、本第3実施形態の動作情報データベース17を示す。フラグ以外の動作情報は第1実施形態と同様であるので、説明を省略する。フラグは、ロボットアーム5の手先位置及び姿勢及び力のパラメータのうちのいずれの情報が有効かを示すフラグに関する情報である(図22Aの「フラグ」の欄参照)。具体的には図23に示した32ビットの数値で表す。0〜11ビット目は第1実施形態と同様である。12〜17ビット目は、手先位置及び姿勢のそれぞれの値が有効である場合に(0〜5ビット目のいずれかが「1」の場合)、その手先位置及び姿勢の動作情報として、その動作情報を実行する際の直前の手先位置及び姿勢の値をコピーして使う場合に「1」とし、使わない場合は「0」とする。例えば、図22Aの「キー動作ID」が「50」のキー動作の「フラグ」は、0、1、3〜5、8、12、13、15〜17目が「1」で、その他は「0」である。これは、0,1、3〜5、8ビット目が「1」であることから、手先位置及び姿勢のうち、(x,y,φ,θ,ψ)と力のz成分が有効であることを示す。さらに、12,13,15〜17目が「1」であるので、手先位置及び姿勢のうち、(x,y,φ,θ,ψ)成分を直前で動作している手先位置及び姿勢の(x,y,φ,θ,ψ)成分をコピーする。例えば「キー動作ID」が「50」のキー動作の開始直前に「キー動作ID」が「48」のキー動作が動作していた場合には、「キー動作ID」が「48」のキー動作の位置姿勢のうち、(x,y,φ,θ,ψ)の値(この例では、(0.2,0.1,0,0,0))を「キー動作ID」が「50」のキー動作の位置姿勢(x,y,φ,θ,ψ)にコピーする。直前の手先位置及び姿勢をコピーするため、直前の手先位置及び姿勢が次の手先位置及び姿勢の値と同じであることから、ロボットアーム5はその手先位置及び姿勢で停止することになる。
−動作指令部(動作算出部)−
以下、動作指令部27の機能について説明する。
人4Aは、データ入力IF26により、制御ルールデータベース16の作業の中の「作業ID」に関する作業の中からロボットアーム5に実行させたい作業をデータベース入出力部28を介して選択して、動作指令部27により、その選択した「作業ID」にかかる動作を実行するように制御パラメータ管理部21へ指令する。
動作指令部27がデータベース入出力部28を介して制御ルールデータベース16を参照するとき、1つの「作業ID」の作業が選択された場合で、かつ、動作指令部27は、前記1つの「作業ID」の作業の中に複数の「動作ID」が記憶されていると判断した場合は、動作算出部2により動作情報を算出し、算出した動作情報(具体的には、位置、姿勢、時間、力)をフラグに従って、制御モードを設定して動作するように、データベース入出力部28を介して制御パラメータ管理部21へ指令を出す。
具体的には、図10Aの「作業ID」が「3」の作業は、図24A(図21を上方から見た図)に示すように、ロボットアーム5の手先位置のハンド30がネジ穴71a間を移動しながら、ネジ穴71aをロボット1で検出すると、ロボットアーム5の手先位置のハンド30の電動ドライバ器具72に支持されたネジ73をネジ穴71aに締め付ける動作を行う制御ルールでの作業を示す。「作業ID」が「3」の作業には複数の「動作ID」(「11」、「12」)が記憶されている。
動作算出部2では、複数の動作から1つの動作情報を算出する。具体的には、「動作ID」が「11」の動作と「12」の動作との中から1つの動作情報を動作算出部2で算出する。「動作ID」が「11」の動作は、ロボットアーム5の手先位置のハンド30(正確には、ハンド30で把持した電動ドライバ器具72)が、図24Aに示すように、ネジ穴71a間を移動する動作を表す。「動作ID」が「11」の動作の「環境ID」は「−1」の値であるので、ロボットアーム5の周辺環境に拘わらず、ロボットアーム5が動作するので、実行すべき動作として動作指令部27で選択する。「動作ID」が「12」の動作は、下記するように、ネジ穴71aであると動作指令部27で判断した場合に、ネジ73を締め付ける動作を表す。「動作ID」が「12」の動作の「環境ID」は「20」の環境情報で、「−1」の値ではないので、環境情報データベース18の「環境ID」が「20」の環境情報をデータベース入出力部28を介して動作指令部27で参照する。図9Aの「環境ID」が「20」の環境情報のフラグは、6ビット目のみ「1」であり、それ以外は「0」であるので、画像が有効であると、動作指令部27で判断することができる。そこで、画像IDより、環境情報データベース18に記憶されている画像の情報を動作指令部27で取得する。この画像は図25のネジ穴71aの画像の情報を示す。次に、環境情報取得部19より、現在の画像情報を動作指令部27で取得して、画像マッチングにより、2つの画像を動作指令部27で比較し、ネジ穴71aかどうかを動作指令部27で判断する。2つの画像が合致したと動作指令部27で判断した場合には、ネジ穴71aだと動作指令部27で判断し、「動作ID」が「12」で記憶されている動作を実行すべき動作として動作指令部27で選択する。合致しなかったと動作指令部27で判断した場合には、「動作ID」が「12」の動作は動作指令部27で選択せず、「11」の動作のみを動作指令部27で選択する。
動作指令部27で選択された「動作ID」が1つのみの場合には、第1実施形態と同様に、「動作ID」と同じ「動作ID」の動作を動作情報データベース17からデータベース入出力部28を介して動作指令部27で参照する。「動作ID」と同じIDの動作情報は複数の「キー動作ID」で管理する動作情報(具体的には、位置の情報と、姿勢の情報と、時間の情報と、力の情報)を動作情報のフラグに従って、制御モードを設定して動作するように、動作指令部27から制御パラメータ管理部21へ指令を出して、それぞれのキー動作を順次実行するように、動作指令部27から制御パラメータ管理部21へ動作情報を出力する。この例では、ロボットアーム5の周辺の環境が、「動作ID」が「12」の動作の「環境ID」が「20」の環境情報に合致しないと動作指令部27で判断した場合には、ネジ穴71aが検出できなかったと動作指令部27で判断し、「動作ID」が「11」で示した動作を実行するように動作指令部27から制御パラメータ管理部21へ指令を出す。
すなわち、図22Aの動作情報データベース17より、「フラグ」が0〜5ビット目が「1」であるので、ロボットアーム5の手先のx、y、z、φ、θ、ψが有効ということを示しているので、x、y、z、φ、θ、ψについては位置制御モードで動作させる。
以上により、図24A(図21を上方から見た図)に示すように、ロボットアーム5はネジ穴71a間を移動する動作を開始する。
「動作ID」が「11」の動作でロボットアーム5がネジ穴71a間を移動中に、ネジ穴71aの上方の部分にロボットアーム5が到達したと動作指令部27で判断した場合には、「動作ID」が「12」の動作の「環境ID」が「20」の環境情報の画像と環境情報取得部19で取得した現在の画像情報の画像とが合致すると動作指令部27で判断されるため、「動作ID」が「11」の動作と「12」の動作との2つの動作が動作指令部27で選択される。動作指令部27の動作算出部2では、それぞれの「動作ID」のフラグ(「動作ID」で動作情報データベース17をデータベース入出力部28を介して動作指令部27で参照し、そこで記憶されているフラグ)により、最終的に実行すべき動作情報を算出する。
この例では、「動作ID」が「11」の動作と「12」の動作とが動作指令部27で選択されており、図10Aの制御ルールデータベース16の「動作ID」には「11」の動作、「12」の動作の順に記憶されている。従って、「動作ID」が「11」の動作の動作情報のフラグが、図22Aより0〜5ビット目及びビット目が「1」であるので、「動作ID」が「11」の動作の動作情報のうち、位置姿勢情報(x,y,z,φ,θ,ψ)の動作情報を動作指令部27で取得する。
次に、「動作ID」が「12」の動作のフラグは、0、1、3〜5、8、12、13、15〜17目が「1」で、その他は「0」である。フラグのうち、12,13,15〜17ビット目が「1」であるので、その際に、「動作ID」が「12」の動作のそれぞれのキー動作のフラグのうち、12,13,15〜17ビット目が「1」であるので、「動作ID」が「11」の動作の動作情報を現在実行中のロボットアーム5の手先位置情報をコピーして動作指令部27で置き換える。この例では、ネジ穴71aの上方にロボットアーム5が配置されているので、その位置及び姿勢情報を「動作ID」が「11」の動作に動作指令部27でコピーする。他のキー動作の位置についても同様に動作指令部27で置き換える。
次に、「動作ID」が「11」の動作の動作情報のうち、(x,y,φ,θ,ψ)と力z成分の値を「動作ID」が「12」の動作のそれぞれの動作情報に動作指令部27で置き換えて動作算出部2で算出する。
以降、「キー動作ID」の終わりまで順次動作算出部2で算出する。
動作算出部2で算出した動作情報のフラグ及び動作情報フラグについて、動作算出部2により、「動作ID」が「11」の動作と「12」の動作とのそれぞれのビットにおいて、どちらかのビットに「1」の場合には、算出後のフラグのビットを「1」に、両方とも「0」の場合には、「0」とする。ただし、位置と力のそれぞれの成分はどちらかにしか「1」とならないため(位置制御モード若しくは力制御モードのどちらかでしか作動しないため)、位置と力の両方に「1」となった場合には、力を優先する。
「動作ID」が「11」の動作のフラグは、0〜5ビット目が「1」であり、「12」は0、1、3〜5、8、12、13、15〜17ビット目が「1」であるので、0〜5、8、12、13、15〜17ビット目が「1」となる。位置z成分と力z分の両方が「1」となっているので、力を優先するため、最終的には、0、1、3〜5、8、12、13、15〜17ビット目が「1」となる。
「動作ID」が「11」の動作の動作パラメータフラグは、1,2,3ビット目が「1」であり、「動作ID」が「12」の動作の動作パラメータフラグは、8ビット目が「1」である。従って、動作算出部2で算出した動作の動作パラメータフラグは、1,2,3,8ビット目が「1」となる。
動作算出部2で算出した動作の「フラグ」が0、1、3〜5ビット目が「1」であるので、ロボットアーム5の手先のx、y、φ、θ、ψが有効ということを示しているので、x、y、φ、θ、ψについては位置制御モードで動作させる。さらに、8ビット目が「1」であるので、z軸は力制御モードで動作するように、動作指令部27から制御パラメータ管理部21へ指令を出す。
以上により、図24B(図21を上方から見た図)に示すように、ロボットアーム5はネジ73をネジ穴71aの中に締め付ける動作を開始する。
−動作補正部−
以下、動作補正部20の機能について説明する。
人4Aがデータ入力IF26により、「作業ID」が「3」の作業を指定して動作指令部27に作業開始を指示すると、図26Aに示すように、ロボットアーム5にネジ73をネジ穴71aから取り外す作業を開始する。
次に、TV又はDVDレコーダなどの機器71の仕様変更に伴い、図26Bに示すように、仕様変更箇所に立設された突出部材(例えば、新たに装着された部品又はネジなど)71bを追加するよう仕様変更した機器を設置する。あらかじめ生成されている「作業ID」が「3」の作業は突出部材71bの仕様変更前に生成されているため、そのまま動作させると、突出部材71bにぶつかって、ロボットアーム5の動作が止まってしまう。
そこで、人4Aは、図26Cに示すような環境変化通知操作の開始の指令をデータ入力IF26を介して動作指令部27に入力する。動作補正部20は、データ入力IF26から動作指令部27を介しての環境変化通知操作の指令を受けて、動作情報データベース17のフラグに従って、制御モードを設定して動作するように、制御パラメータ管理部21へ指令を出す。
具体的には、図26Bに示すように、仕様変更箇所の突出部材71bに衝突した箇所では、ネジ穴71aがないので、「動作ID」が「12」の動作の「環境ID」が「20」の環境情報に合致しないと動作補正部20で判断するため、「動作ID」が「11」の動作のみで動作している。動作中の「動作ID」が「11」の動作を動作情報データベース18からデータベース入出力部28を介して動作補正部20で参照すると、それぞれの「キー動作ID」のフラグが、図22Aでは、0〜5ビット目が「1」であり、その他は「0」であるので、ロボットアーム5の動作のうち、位置姿勢に関しては、x軸、y軸、z軸、φ軸、θ軸、ψ軸が有効ということが動作補正部20でわかる。従って、x軸、y軸、z軸、φ軸、θ軸、ψ軸が人4Aの加えた力で補正ができるように、x軸、y軸、φ軸、θ軸、ψ軸について、位置制御モードからインピーダンス制御モード(人4Aの力を検知した方向に移動させるモード)で動作するように、動作補正部20は制御パラメータ管理部21へ指令を出す。
次に、図26Cのように、機器71上の仕様変更箇所の突出部材71bを知らせるために、仕様変更箇所の突出部材71bの上方箇所を71と平行にx−y平面を移動させる。人4Aが環境変化通知操作により力を加えて移動させた動作を動作補正部20で取得するために、制御パラメータ管理部21からのロボットアーム5の手先位置及び力を動作補正部20で取得し、後述する制御ルール生成部23へ動作補正部20から出力する。
次に、動作補正部20は、データ入力IF26から動作指令部27を介しての動作補正操作の開始の指令を受けて、動作情報データベース17の補正パラメータフラグに従って、制御モードを設定して動作するように、制御パラメータ管理部21へ動作補正部20から指令を出す。具体的には、図10Aの「作業ID」が「3」の作業で動作中の「動作ID」が「11」の動作を動作情報データベース18から動作補正部20で参照すると、それぞれの「キー動作ID」の補正パラメータフラグが、図22Aでは、0〜2ビット目のみ「1」であり、その他は「0」であるので、ロボットアーム5の動作の位置姿勢のうち、x軸成分、y軸成分、及び、z軸成分のみ補正が可能ということが動作補正部20でわかる。x軸、y軸、及び、z軸について、位置制御モードからハイブリッドインピーダンス制御モード(位置制御モードで移動しながら、人4Aの力を検知した方向にインピーダンス制御で移動させるモード)で動作するように、動作補正部20は制御パラメータ管理部21へ指令を出す。
次に、図26Dに示すように、人4Aがロボットアーム5を直接把持して、仕様変更箇所の突出部材71bに衝突しない高さになるように力をかけると、ハイブリッドインピーダンス制御モードにより、位置制御モードでロボットアーム5を移動させながら、インピーダンス制御モードにより、人4Aの力を検知して力をかけた方向にロボットアーム5をx軸方向、y軸方向、及び、z軸方向に移動させることができる。人4Aが力を加えて移動させた動作を取得するために、制御パラメータ管理部21からのロボットアーム5の手先位置及び時間を動作補正部20で取得し、後述する制御ルール生成部23へ動作補正部20から出力する。なお、この時間に関する情報は、人4Aが作業を選択して開始指令を出した時点を0とした相対時間とする。
−制御ルール生成部−
制御ルール生成部23は、第1実施形態の場合と同様に、制御ルールデータベース16の動作IDが参照する動作情報データベース17の位置及び姿勢及び力及び時間との情報にて、後述するインピーダンス制御モード、若しくは位置制御モード、若しくは力制御モード、若しくはそれらを方向別に組み合わせた制御モード、のうち、いずれかのモードでのロボットアーム5の動作中に、データ入力IF26から動作指令部27を介して、制御ルール生成部23で環境変化通知操作及び動作補正開始の指令を受ける。すると、制御ルール生成部23では、動作補正部20で補正した動作情報と環境情報取得部19で取得した環境情報とに基づいて、制御ルールを生成し、制御ルールデータベース16に記憶する機能を有している。
以下、制御ルール生成部23の機能について説明する。
図26Bに示すように、仕様変更箇所の突出部材71bに衝突した箇所では、ネジ穴71aがないので、「動作ID」が「12」の動作の「環境ID」が「20」の環境情報に合致しないため、「動作ID」が「11」の動作のみで動作している。
制御ルール生成部23は、データ入力IF26から動作指令部27を介して動作中の作業IDに対して、環境変化通知操作の開始の指令を受けて、人4Aからの環境変化通知操作にて生成したロボットアーム5の手先位置及び時間を動作補正部20より入力する。加えて、環境変化通知操作の開始のタイミングより、環境情報取得部19より環境情報を入力する。さらに、環境変化通知操作の開始時の動作中の「動作ID」を動作情報データベース18から制御ルール生成部23で参照し、その「動作ID」の「キー動作ID」のフラグに関する情報から現在のロボットアーム5の制御モードに関する情報を制御ルール生成部23で取得する。具体的には、図10Aの「作業ID」が「3」の作業で動作中の「動作ID」が「11」の動作の「キー動作ID」が「41」〜「48」のキー動作を動作情報データベース18から参照すると、それぞれの「キー動作ID」のフラグが、図22Aでは、0〜5ビット目のみ「1」であり、その他は「0」であるので、ロボットアーム5の動作のうち、x軸、y軸、z軸、φ軸、θ軸、ψ軸のみデータが有効ということが制御ルール生成部23でわかる。従って、x軸、y軸、z軸、φ軸、θ軸、ψ軸が人4Aの加えた力で補正ができるように、インピーダンス制御モードとなっている。
現在動作中の環境変化通知操作の際のロボットアーム5の移動方向の制御モードと検出部選択ルールデータベース29に基づいて、複数の環境情報の中から制御ルールを生成するための環境情報の種別を制御ルール生成部23で選択する。具体的には、図10Aの「作業ID」が「3」の作業の環境変化通知操作の開始のタイミングでは、図26Cのようにx軸方向及びy軸方向で環境変化通知操作を行っている。x軸及びy軸はインピーダンス制御モードで補正しているので、図11Aより、環境情報の種別IDは「1」となり、図11Bより、「画像」を制御ルール生成部23で選択する。さらに、図26Cでは、x軸方向及びy軸方向に環境変化通知操作をしているので、x−y平面を撮影可能な画像撮像装置15aでの画像を制御ルール生成部23で選択する。具体的には、図27に示すように、仕様変更箇所の突出部材71bを上方から下向きに撮像した画像となる。選択した画像は、制御ルール生成部23によりデータベース入出力部28を介して環境情報データベース18に記憶する。この例では、図9Aの「環境ID」が「21」の環境情報に示すように、新しい「環境ID」として「21」を制御ルール生成部23で付与し、その「環境ID」の「画像ID」に、選択した画像のファイル名を制御ルール生成部23によりデータベース入出力部28を介して環境情報データベース18に記憶する。さらに、フラグは画像のみであるので、6ビット目のみ「1」を、その他のビットに「0」を制御ルール生成部23によりデータベース入出力部28を介して環境情報データベース18に記憶する。
次に、動作補正操作の開始の指令を受けて、動作補正部20で補正した動作情報を、データベース入出力部28を介して動作情報データベース17に記憶する。
具体的には、図22Bの動作情報データベース17に新規に「動作ID」を動作補正部20で付与し(この例では「13」)、さらに「キー動作ID」として「60」〜「67」を動作補正部20で付与し、動作補正部20で補正した動作情報を、動作補正部20によりデータベース入出力部28を介して動作情報データベース17のそれぞれの「キー動作ID」に記憶する。時間について、動作補正部20からは、人4Aが作業を選択して開始指令を出した時点を0とした相対時間が入力されるため、一番最初のキー動作(この例では「60」)の時間を全ての動作のそれぞれの時間から減算した値を、動作補正部20によりデータベース入出力部28を介して動作情報データベース17に記憶する。フラグについては、補正前のフラグで「1」となっている動作情報の成分のうち、補正前と補正後の「動作ID」のそれぞれのキー動作の位置姿勢と、力の値とをそれぞれの成分毎に動作補正部20で比較し、その差がある閾値以上の成分のみ、図6のフラグのそれぞれの成分を動作補正部20で「1」とし、閾値未満の場合には動作補正部20で「0」とする。
具体的には、補正前の「動作ID」が「11」の動作のフラグは、0〜5ビット目が「1」であり、その他は「0」であるので、補正前の動作と補正後の動作の位置姿勢と、力の値とのうち、位置姿勢成分のみを動作補正部20で比較する。「キー動作ID」が「41」のキー動作と「キー動作ID」が「60」のキー動作とでは、位置姿勢(x,y,z,φ,θ,ψ)の成分のうち、φ,θ,ψは同じで、x座標、y座標、及び、z座標の差がそれぞれ(0.2、0.2、0.4)となり、差の閾値を0.1とすると、x成分、y成分、及びz成分のみが閾値以上となる。従って、動作補正部20により、フラグは0,1、2ビット目が「1」で、その他は「0」とする。
補正パラメータフラグについては、補正前の動作(この例では「41」〜「48」)の値を動作補正部20によりデータベース入出力部28を介して動作情報データベース17に記憶する。
次に、取得した環境情報と動作補正部20の動作補正操作で補正した動作から制御ルールデータベース19に新しい制御ルールを制御ルール生成部23で生成して記憶する。
具体的には、制御ルールデータベース16の「作業ID」が「3」の作業で動作中に動作を補正するため、制御ルール生成部23により、図10Bに示すように、「作業ID」が「3」の作業に1行追加し、動作補正により新しく追加した「動作ID」が「13」の動作を追加する。
次に、制御ルール生成部23で選択した環境情報の環境IDをデータベース入出力部28を介して制御ルールデータベース16に記憶する(この例では環境ID「21」)。
以上により、人4Aが環境変化通知操作及び動作補正操作を行い、制御ルール生成部23により新しい制御ルールを生成することで、機器71の仕様変更を考慮した動作を事前に用意しておかなくても、その場で人4Aが操作をして環境通知及び動作を補正するだけで、次に同じような環境になった場合に、制御ルールデータベース16の情報を基に(言い換えれば、環境情報取得部19で取得した環境情報を参照しながら、制御ルール生成部23により生成された制御ルールに基づいて)ロボットアーム5は自律的に動作することができるようになる。
−動作指令部(動作算出部)−
この例では、図10Bに示すように、「作業ID」が「3」の作業には、複数の「動作ID」(「11」「12」、「13」)を記憶しているため、その場合の動作指令部27の機能について説明する。
図10Bの「作業ID」が「3」の作業の「動作ID」が「11」の動作は図28Aの動作(ネジ穴71a間を移動する動作)、「動作ID」が「12」の動作は図28Bの動作(ネジ73を締め付ける動作)、「動作ID」が「13」の動作は図28Cの動作(仕様変更箇所の突出部材71bを避ける動作)を行うための動作情報を表す。
動作算出部2により、複数の動作から1つの動作情報を算出する。具体的には、「動作ID」が「11」の動作の「環境ID」は「−1」の値であるので、ロボットアーム5の周辺環境に拘わらず、ロボットアーム5は動作するので、実行すべき動作として動作指令部27で選択する。「動作ID」が「12」の動作は、ネジ穴71aであると動作指令部27で判断した場合に、ネジ73をネジ穴71aに締め付ける動作を表す。「動作ID」が「12」の動作の「環境ID」は「20」の環境情報で、「−1」の値ではないので、環境情報データベース18の「環境ID」が「20」の環境情報をデータベース入出力部28を介して動作指令部27で参照する。「環境ID」が[20]の環境情報により動作指令部27で参照された画像情報と環境情報取得部19より現在の画像情報とを動作指令部27で取得して、画像マッチングにより、2つの画像を動作指令部27で比較し、ネジ穴71aかどうかを動作指令部27で調べる。2つの画像が合致したと動作指令部27で判断した場合には、ネジ穴71aであると動作指令部27で判断し、「動作ID」が「12」の動作で記憶されている動作を実行すべき動作として動作指令部27で選択する。
さらに、「動作ID」が「13」の動作の「環境ID」は「21」の環境情報で、「−1」の値ではないので、環境情報データベース18の「環境ID」が「21」の環境情報をデータベース入出力部28を介して動作指令部27で参照する。「環境ID」が「21」の環境情報により動作指令部27で参照された画像情報と環境情報取得部19より現在の画像情報とを動作指令部27で取得して、画像マッチングにより2つの画像を動作指令部27で比較し、仕様変更箇所の突出部材71bかどうかを動作指令部27で判断する。2つの画像が合致したと動作指令部27で判断した場合には、仕様変更箇所の突出部材71bだと動作指令部27で判断し、「動作ID」が「13」の動作で記憶されている動作を実行すべき動作として動作指令部27で選択する。
動作指令部27で選択された「動作ID」が「11」の動作のみの場合には、「動作ID」が「11」の動作で参照される動作情報を、動作指令部27から制御パラメータ管理部21へ出力して、図28Aの動作を実行する。
図28Bのように、ネジ穴71aの上方近傍の部分でハンド30が動作している場合には、「動作ID」が「11」の動作と「12」の動作とが動作指令部27で選択され、「動作ID」が「13」の動作は動作指令部27で選択されない。従って、上述したように、動作算出部2により「11」の動作と「12」の動作とから1つの動作を算出し、動作算出部2で算出した動作情報を、動作指令部27から制御パラメータ管理部21へ出力して、図28Bの動作を実行する。
図28Cのように、仕様変更箇所の突出部材71bの上方近傍の部分でハンド30が動作している場合には、「動作ID」が「11」の動作と「13」の動作とが動作指令部27で選択され、「動作ID」が「12」の動作は動作指令部27で選択されない。従って、動作算出部2により「11」「13」の動作から1つの動作を算出し、動作算出部2で算出した動作情報を動作指令部27から制御パラメータ管理部21へ出力して、図28Cの動作を実行する。
なお、第3実施形態では、仕様変更箇所の突出部材71bの迂回動作を補正したが、例えば、ネジ締め付けの際の力加減についても、同様に、適応可能である。
さらに、リサイクル工場でテレビ又はエアーコンディショナーなどのリサイクル対象物に取れ付けられたネジ73を取り外す場合に、図37B(図37Aのネジ73の十字穴付きの頭部73aを上から見た図)に参照符号92で示すようなネジ73の破損部分、又は、図37C(図37Aのネジ73の十字穴付きの頭部73aを上から見た図)に参照符号93で示すような汚れ部分、図37D(図37Aのネジ73の十字穴付きの頭部73aを上から見た図)に参照符号94で示すようなさび部分に対しても、同様に、適応可能である。なお、ネジに限らず、リサイクル対象物から取り外すべき取外物体(例えば、部品、基板、かしめ部材など)に対しても、取外物体取り外し用治具をハンド30に把持させた場合にも、本発明を適用することができる。
(第4実施形態)
本発明の第4実施形態における、ロボットアーム5とその制御装置の基本的な構成は、第1実施形態の場合と同様であるので、共通部分の説明は省略し、異なる部分についてのみ以下、詳細に説明する。
第4実施形態においては、図31に示すように、ロボットアーム5とロボットアーム5の制御装置を備えるロボット1を使って、セル生産の工場でテレビ又はDVDレコーダなどの機器71の挿入口75に作業対象物の一例であるフレキシブル基板74を取り付ける場合を例にとって説明する。
図31に示したように、ロボット1のロボットアーム5は、例えば工場内の作業台テーブルなどの作業台7の壁面7aに設置され、ロボットアーム5の基端が、壁面7aに固定されたレール8に、移動可能に支持され、レール8上をロボットアーム5がレール8沿いの横方向例えば水平方向に、人4Aの力により、移動可能とする。15aはカメラなどの第1画像撮像装置であり、例えば天井7bから作業台7を撮像できるように取り付けられている。
ロボット1は、例えば、工場内で、テレビ又はDVDレコーダのフレキシブル基板74の取り付け作業などのロボットアーム5と人4Aとが協働して行う作業をロボットアーム5により行う。
第1実施形態と同様に、まず、人4Aが手4でロボット1のロボットアーム5を直接把持してロボットアーム5に力を加える。そして、人4Aからロボットアーム5に加えられた力により、ロボット1のロボットアーム5をレール8に沿って移動させることで、器具71(この例では、フレキシブル基板74を挿入するテレビ又はDVDレコーダの機器を示す)の付近までロボットアーム5を誘導する。
次に、セル生産の作業台7などの前側側面7eなどに配置されている、データ入力IF26の一例としてのロボット1の操作盤13のボタン13aを、人4Aが押すなどしてデータ入力IF26を使用することにより、ロボットアーム5が作動し、予め選択された作業、すなわち、器具71の挿入口75に、ハンド30でコネクタ部分74aを把持したフレキシブル基板74を挿入して取り付ける作業を開始させる。
次に、機器71の仕様変更により、機器71の形状又はフレキシブル基板74の仕様が変更になった場合に、ロボットアーム5が、フレキシブル基板74の取り付け作業を行っているときに、人4Aがフレキシブル基板74の取り付け状態を確認し、人4Aがロボットアーム5に力を加えて、取り付ける力具合、又は、フレキシブル基板74の位置の調整などの動作補正を行うことにより、ロボット1のロボットアーム5の動作を補正する。
レール8は、作業台7の壁面7aに配置したが、壁面の無い作業台の場合は、天井面又は作業台の天板6aの側面など作業をするのに適した場所に設置することができる。
さらに、操作盤13は、作業台7の側面に固定したが、操作盤13に代えて、遠隔操作が可能なリモコンでも良い。
−動作情報データベース−
動作情報データベース17は、第3実施形態と同様に、ロボットアーム5の、ある時間におけるロボットアーム5の手先位置及び姿勢などのロボットアーム5の動作に関する情報(動作情報)を記憶している。動作情報は、制御ルール生成部23を介してデータベース入出力部28により動作情報データベース17に入出力される。
図32A、図32Bは、本第4実施形態の動作情報データベース17を示す。動作情報は第1実施形態と同様であるので、説明を省略する。
−動作指令部(動作算出部)−
以下、動作指令部27の機能について説明する。
人4Aは、データ入力IF26により、制御ルールデータベース16の作業の中の「作業ID」に関する作業の中からロボットアーム5に実行させたい作業をデータベース入出力部28を介して選択して、動作指令部27により、その選択した「作業ID」にかかる動作を実行するように制御パラメータ管理部21へ指令する。
動作指令部27がデータベース入出力部28を介して制御ルールデータベース16を参照するとき、1つの「作業ID」の作業が選択された場合で、かつ、動作指令部27は、前記1つの「作業ID」の作業の中に複数の「動作ID」が記憶されていると判断した場合は、動作算出部2により動作情報を算出し、算出した動作情報(具体的には、位置、姿勢、時間、力)をフラグに従って、制御モードを設定して動作するように、データベース入出力部28を介して制御パラメータ管理部21へ指令を出す。
具体的には、図10Aの「作業ID」が「4」の作業は、図33A(図31を上方から見た図)に示すように、ロボットアーム5が移動しながら挿入口75をロボット1で検出すると、ロボットアーム5の手先位置のハンド30でコネクタ部分74aが把持されたフレキシブル基板74のコネクタ部分74aを挿入口75に挿入する動作を行う制御ルールでの作業を示す。「作業ID」が「4」の作業には複数の「動作ID」(「21」、「22」、「23」の動作)が記憶されている。
動作算出部2では、複数の動作から1つの動作情報を算出する。具体的には、「動作ID」が「21」の動作と「22」の動作と「23」の動作との中から1つの動作情報を動作算出部2で算出する。「動作ID」が「21」の動作は、ロボットアーム5の手先位置のハンド30(正確には、ハンド30で把持したフレキシブル基板74)が、図33Aに示すように、機器71の挿入口75の近傍の上方部分を移動する動作を表す。「動作ID」が「21」の動作の「環境ID」は「−1」の値であるので、ロボットアーム5の周辺環境に拘わらず、ロボットアーム5が動作するので、実行すべき動作として動作指令部27で選択する。「動作ID」が「22」の動作は、下記するように、挿入口75であると動作指令部27で判断した場合に、挿入口75の入り口にフレキシブル基板74のコネクタ部74aが接触するまで、フレキシブル基板74を移動させる動作を表す。「動作ID」が「22」の動作の「環境ID」は「30」の環境情報で、「−1」の値ではないので、環境情報データベース18の「環境ID」が「30」の環境情報をデータベース入出力部28を介して動作指令部27で参照する。図9Aの「環境ID」が「30」の環境情報のフラグは、6ビット目のみ「1」であり、それ以外は「0」であるので、画像が有効であると、動作指令部27で判断することができる。そこで、画像IDより、環境情報データベース18に記憶されている画像の情報を動作指令部27で取得する。この画像は、図34の挿入口75の画像の情報を示す。次に、環境情報取得部19より、現在の画像情報を動作指令部27で取得して、画像マッチングにより、2つの画像を動作指令部27で比較し、挿入口75かどうかを動作指令部27で判断する。2つの画像が合致したと動作指令部27で判断した場合には、挿入口だと動作指令部27で判断し、「動作ID」が「22」で記憶されている動作を実行すべき動作として動作指令部27で選択する。合致しなかったと動作指令部27で判断した場合には、「動作ID」が「22」の動作は動作指令部27で選択せず、「21」の動作のみを動作指令部27で選択する。
「動作ID」が「23」の動作は、フレキシブル基板74のコネクタ部74aを挿入口75に挿入するために、フレキシブル基板74を移動させる動作を表す。「動作ID」が「23」の動作の「環境ID」は「31」の環境情報で、「−1」の値ではないので、環境情報データベース18の「環境ID」が「31」の環境情報をデータベース入出力部28を介して動作指令部27で参照する。図9Aの「環境ID」が「31」の環境情報のフラグは、0〜5ビット目のみ「1」であり、それ以外は「0」であるので、力が有効であると、動作指令部27で判断することができる。環境情報取得部19より、現在の力検出部の値を動作指令部27で取得して、環境情報データベース18で記憶されている力と動作指令部27で比較する。この2つの力が合致したと動作指令部27で判断した場合には、フレキシブル基板74が挿入口75から受ける力が、環境情報データベース18で記憶されている力が合致したと動作指令部27で判断し、「動作ID」が「23」の動作で記憶されている動作を実行すべき動作として動作指令部27で選択する。合致しなかったと動作指令部27で判断した場合には、「動作ID」が「23」の動作は動作指令部27で選択せず、「21」の動作又は「22」の動作のどちらかを動作指令部27で選択する。
選択された「動作ID」が1つのみの場合には、第1実施形態と同様に、「動作ID」と同じ「動作ID」の動作をデータベース入出力部28を介して動作情報データベース17から動作指令部27で参照する。「動作ID」と同じIDの動作情報は複数の「キー動作ID」で管理する動作情報(具体的には、位置の情報と、姿勢の情報と、時間の情報と、力の情報)を動作情報のフラグに従って、制御モードを設定して動作するように、動作指令部27から制御パラメータ管理部21へ指令を出して、それぞれのキー動作を順次実行するように、動作指令部27から制御パラメータ管理部21へ動作情報を出力する。この例では、ロボットアーム5の周辺の環境が、「動作ID」が「22」の動作の「環境ID」が「30」の環境情報に合致しないと動作指令部27で判断した場合には、挿入口75が検出できなかったと動作指令部27で判断し、「動作ID」が「21」の動作で示した動作を実行するように動作指令部27から制御パラメータ管理部21へ指令を出す。
すなわち、図32Aの動作情報データベース17より、「フラグ」が0〜5ビット目が「1」であるので、ロボットアーム5の手先のx、y、z、φ、θ、ψが有効ということを示しているので、x、y、z、φ、θ、ψについては位置制御モードで動作させる。
以上により、図33A(図31を上方から見た図)に示すように、ロボットアーム5は機器71上を移動する動作を開始する。
「動作ID」が「21」の動作でロボットアーム5が機器71上を移動中に、挿入口75の上方の部分にロボットアーム5が到達したと動作指令部27で判断した場合には、「動作ID」が「22」の動作の「環境ID」が「30」の環境情報の画像と環境情報取得部19で取得した現在の画像情報の画像とが合致すると動作指令部27で判断されるため、「動作ID」が「21」の動作と「22」の動作との2つの動作が動作指令部27で選択される。動作指令部27の動作算出部2では、それぞれの「動作ID」のフラグ(「動作ID」で動作情報データベース17をデータベース入出力部28を介して動作指令部27で参照し、そこで記憶されているフラグ)により、最終的に実行すべき動作情報を算出する。
この例では、「動作ID」が「21」の動作と「22」の動作とが動作指令部27で選択されており、図10Aの制御ルールデータベース16の「動作ID」には「21」の動作、「22」の動作の順に記憶されている。従って、「動作ID」が「21」の動作の動作情報のフラグが、図32Aより0〜5ビット目及びビット目が「1」であるので、「動作ID」が「21」の動作の動作情報のうち、位置姿勢情報(x,y,z,φ,θ,ψ)の動作情報を取得する。
次に、「動作ID」が「22」の動作のフラグは、0、1、3〜5、8、12、13、15〜17目が「1」で、その他は「0」である。フラグのうち、12,13,15〜17ビット目が「1」であるので、その際に、「動作ID」が「22」の動作のそれぞれのキー動作のフラグのうち、12,13,15〜17ビット目が「1」であるので、「動作ID」が「21」の動作の動作情報を現在実行中のロボットアーム5の手先位置情報をコピーして動作指令部27で置き換える。この例では、挿入口75の上方にロボットアーム5が配置されているので、その位置及び姿勢情報を「動作ID」が「21」の動作に動作指令部27でコピーする。他のキー動作の位置についても同様に動作指令部27で置き換える。
次に、「動作ID」が「21」の動作の動作情報のうち、(x,y,φ,θ,ψ)の値を「動作ID」が「22」の動作のそれぞれの動作情報に動作指令部27で置き換えて動作算出部2で算出する。
以降、「キー動作ID」の終わりまで順次動作算出部2で算出する。
動作算出部2で算出した動作情報のフラグ及び動作情報フラグについて、動作算出部2により、「動作ID」が「21」の動作と「22」の動作とのそれぞれのビットにおいて、どちらかのビットに「1」の場合には、算出後のフラグのビットを「1」に、両方とも「0」の場合には、「0」とする。ただし、位置と力のそれぞれの成分はどちらかにしか「1」とならないため(位置制御モード若しくは力制御モードのどちらかでしか作動しないため)、位置と力の両方に「1」となった場合には、力を優先する。
「動作ID」が「21」の動作のフラグは、0〜5ビット目が「1」であり、「22」は0、1、3〜5、8、12、13、15〜17ビット目が「1」であるので、0〜5、8、12、13、15〜17ビット目が「1」となる。位置z成分と力z分の両方が「1」となっているので、力を優先するため、最終的には、0、1、3〜5、8、12、13、15〜17ビット目が「1」となる。
「動作ID」が「21」の動作の動作パラメータフラグは、1,2,3ビット目が「1」であり、「動作ID」が「22」の動作の動作パラメータフラグは、8ビット目が「1」である。従って、動作算出部2で算出した動作の動作パラメータフラグは、1,2,3,8ビット目が「1」となる。
動作算出部2で算出した動作の「フラグ」が0、1、3〜5ビット目が「1」であるので、ロボットアーム5の手先のx、y、φ、θ、ψが有効ということを示しているので、x、y、φ、θ、ψについては位置制御モードで動作させる。さらに、8ビット目が「1」であるので、z軸は力制御モードで動作するように、動作指令部27から制御パラメータ管理部21へ指令を出す。
以上により、図33Bに示すように、ロボットアーム5は挿入口75にフレキシブル基板74のコネクタ部24aを接触するまで移動させる動作を開始する。
「動作ID」が「22」の動作にてフレキシブル基板74のコネクタ部24aを挿入口75に接触するまで移動させる動作が完了した時点で、次に動作させる動作を動作指令部27で選択する。「動作ID」が「23」の動作の「環境ID」が「31」の環境情報の力と環境情報取得部19で取得した力が合致したと動作指令部27で判断した場合には、「動作ID」が「21」の動作と「23」の動作との2つの動作が動作指令部27で選択される。さらに、「動作ID」が「22」の動作の「環境ID」が「30」の環境情報の力と環境情報取得部19で取得した画像が合致すると動作指令部27で判断した場合には、「動作ID」が「21」の動作と「22」の動作と「23」の動作との3つの動作が動作指令部27で選択される。
動作算出部2では、それぞれの「動作ID」のフラグ(「動作ID」で動作情報データベース17をデータベース入出力部28を介して動作指令部27で参照し、そこで記憶されているフラグ)により、最終的に実行すべき動作情報を算出する。
この例では、「動作ID」が「21」の動作と「22」の動作と「23」の動作とが選択されており、図10Aの制御ルールデータベース16の「動作ID」には「21」の動作、「22」の動作、「23」の動作の順に記憶されている。この場合は、最も番号の大きい「動作ID」を優先して動作指令部27で選択する。「動作ID」が「22」の動作の動作情報のフラグが、図32Aより0、1、3〜5、8、12、13、15〜17ビット目が「1」であるので、「動作ID」が「22」の動作の動作情報のうち、位置姿勢情報(x,y,φ,θ,ψ)とz成分の力情報の動作情報を取得する。次に、「動作ID」が「23」の動作のフラグは、0、1、3〜5、8、12、13、15〜17目が「1」で、その他は「0」である。フラグのうち、12,13,15〜17ビット目が「1」であるので、その際に、「動作ID」が「22」の動作のそれぞれのキー動作のフラグのうち、12,13,15〜17ビット目が「1」であるので、「動作ID」が「11」の動作の動作情報を現在実行中のロボットアーム5の手先位置情報をコピーして動作指令部27で置き換える。この例では、挿入口の上方にロボットアーム5が配置されているので、その位置及び姿勢情報を「動作ID」が「21」の動作に動作指令部27でコピーする。他のキー動作の位置についても、同様に動作指令部27で置き換える。次に、「動作ID」が「22」の動作の動作情報のうち、(x,y,φ,θ,ψ)成分の値を「動作ID」が「23」の動作のそれぞれの動作情報に置き換えて動作算出部2で算出する。
以降、「キー動作ID」の終わりまで順次動作算出部2で算出する。
−動作補正部−
以下、動作補正部20の機能について説明する。
人4Aがデータ入力IF26により、「作業ID」が「4」の作業を指定して動作指令部27に作業開始を指示すると、図35Aに示すように、ロボットアーム5はフレキシブル基板74のコネクタ部74aを挿入口74に挿入する作業を開始する。
次に、TV又はDVDレコーダなどの機器71の仕様変更に伴い、図35Bに示すように、フレキシブル基板74Aのサイズ又は厚み、フレキシブル基板自体の剛性の変更、挿入口75Aのサイズ変更が発生する。あらかじめ生成されている「作業ID」が「4」の作業は仕様変更前に生成されているため、そのまま動作させると、フレキシブル基板74A又は挿入口75Aの変更により、例えば、「作業ID」が「4」の作業の動作から挿入時の力加減が足りず、挿入口75Aに十分に差し込むことができないということが起こる。
そこで、人4Aは、環境変化通知操作の開始の指令をデータ入力IF26を介して動作指令部27に入力する。動作補正部20は、データ入力IF26から動作指令部27を介しての環境変化通知操作の指令を受けて、動作情報データベース17のフラグに従って、制御モードを設定して動作するように、制御パラメータ管理部21へ指令を出す。
具体的には、図35Bに示すように、フレキシブル基板74Aの挿入時は「動作ID」が「23」の動作で動作している。動作中の「動作ID」が「23」の動作を動作情報データベース18からデータベース入出力部28を介して動作補正部20で参照すると、それぞれの「キー動作ID」のフラグが、図32Aでは、0、1、3〜5、8、12、13、15〜17目が「1」であり、その他は「0」であるので、ロボットアーム5の動作のうち、位置姿勢に関しては、x軸、y軸、φ軸、θ軸、ψ軸が、力に関してはz軸が有効ということを表す。従って、x軸、y軸、φ軸、θ軸、ψ軸が人4Aの加えた力で補正ができるように、x軸、y軸、φ軸、θ軸、ψ軸について、位置制御モードからインピーダンス制御モード(人4Aの力を検知した方向に移動させるモード)で動作し、z軸については、高剛性位置制御モードにより動作するように、動作補正部20は制御パラメータ管理部21へ指令を出す。
次に、図35Cのように、機器71上の仕様変更箇所に伴う力の状態変更を知らせるために、人4Aがz軸方向に力を加える。人4Aが環境変化通知操作により力を加えた動作を動作補正部20で取得するために、制御パラメータ管理部21からのロボットアーム5の力を動作補正部20で取得し、後述する制御ルール生成部23へ動作補正部20から出力する。
次に、動作補正部20は、データ入力IF26から動作指令部27を介しての動作補正操作の開始の指令を受けて、動作情報データベース17の補正パラメータフラグに従って、制御モードを設定して動作するように、制御パラメータ管理部21へ動作補正部20から指令を出す。具体的には、図10Aの「作業ID」が「4」の作業で動作中の「動作ID」が「23」の動作を動作情報データベース18から動作補正部20で参照すると、それぞれの「キー動作ID」の補正パラメータフラグが、図22Aでは、8ビット目のみ「1」であり、その他は「0」であるので、ロボットアーム5の動作の力のうち、z軸成分のみ補正が可能ということが動作補正部20でわかる。z軸について、高剛性位置制御モードで動作するように、動作補正部20は制御パラメータ管理部21へ指令を出す。
次に、図35Dに示すように、人4Aがロボットアーム5を直接把持して、仕様変更箇所の突出部材71bについて、もう少し力を強めに挿入するように動作させる。人4Aが加えた力を取得するために、制御パラメータ管理部21からのロボットアーム5の手先の力を動作補正部20で取得し、後述する制御ルール生成部23へ動作補正部20から出力する。
なお、ここで、環境変化通知操作と動作補正操作とを分けて別々に入力したが、環境変化通知操作と動作補正操作との操作の方向が同じである場合は、動作補正操作又は環境変化通知操作のいずれか一方の操作を省略することができる。具体的には、データ入力IF26から動作補正操作の開始の指令を省略して、環境変化通知操作の開始の指令を出した場合には、動作補正操作を省略することができる(第5実施形態を参照)。その場合の動作補正部20は、人4が動作補正操作をした際に、環境情報を取得した後、動作補正を行う。
−制御ルール生成部−
制御ルール生成部23は、第3実施形態の場合と同様に、制御ルールデータベース16の「動作ID」が参照する動作情報データベース17の位置及び姿勢及び力及び時間との情報にて、後述するインピーダンス制御モード、若しくは位置制御モード、若しくは力制御モード、若しくはそれらを方向別に組み合わせた制御モード、のうち、いずれかのモードでのロボットアーム5の動作中に、データ入力IF26から動作指令部27を介して、制御ルール生成部23で環境変化通知操作及び動作補正開始の指令を受ける。すると、制御ルール生成部23では、動作補正部20で補正した動作情報と環境情報取得部19で取得した環境情報とに基づいて、制御ルールを生成し、制御ルールデータベース16に記憶する機能を有している。
以下、制御ルール生成部23の機能について説明する。
図35Bに示すように、フレキシブル基板挿入時は「動作ID」が「23」の動作で動作している。
制御ルール生成部23は、データ入力IF26から動作指令部27を介して動作中の作業IDに対して、環境変化通知操作の開始の指令を受けて、人4Aからの環境変化通知操作にて生成したロボットアーム5の手先位置及び時間を動作補正部20より入力する。加えて、環境変化通知操作の開始のタイミングより、環境情報取得部19より環境情報を入力する。さらに、環境変化通知操作の開始時の動作中の「動作ID」を動作情報データベース18から制御ルール生成部23で参照し、その「動作ID」の「キー動作ID」のフラグに関する情報から現在のロボットアーム5の制御モードに関する情報を制御ルール生成部23で取得する。具体的には、図10Aの「作業ID」が「4」の作業で動作中の「動作ID」が「23」の動作の「キー動作ID」が「78」〜「86」のキー動作を動作情報データベース18から制御ルール生成部23で参照すると、それぞれの「キー動作ID」のフラグが、図32Aでは、0、1、3〜5、8、12、13、15〜17目のみ「1」であり、その他は「0」であるので、ロボットアーム5の動作のうち、位置姿勢に関してはx軸、y軸、φ軸、θ軸、ψ軸、力に関してはz軸成分のデータが有効ということが制御ルール生成部23でわかる。従って、x軸、y軸、θ軸、ψ軸が人4Aの加えた力で補正ができるように、インピーダンス制御モードとなり、z軸については高剛性位置制御モードとなる。
現在動作中の環境変化通知操作の際のロボットアーム5の移動方向の制御モードと検出部選択ルールデータベース29に基づいて、複数の環境情報の中から制御ルールを生成するための環境情報の種別を制御ルール生成部23で選択する。具体的には、図10Aの「作業ID」が「4」の作業の環境変化通知操作の開始のタイミングでは、図35Cのようにz軸方向で環境変化通知操作を行っている。z軸は高剛性位置制御モードで補正しているので、図11Aより、環境情報の種別IDは「2」となり、図11Bより、「力」を制御ルール生成部23で選択する。したがって、力検出部53で検出した力を制御ルール生成部23で選択する。取得した力は、制御ルール生成部23によりデータベース入出力部28を介して環境情報データベース18に記憶する。この例では、図9Aに示すように、新しい「環境ID」として「32」を制御ルール生成部23で付与し、その「環境ID」の「力」に、取得した力の情報を制御ルール生成部23によりデータベース入出力部28を介して環境情報データベース18に記憶する。さらに、フラグは力のみであるので、0〜5ビット目のみ「1」を、その他のビットに「0」を制御ルール生成部23によりデータベース入出力部28を介して環境情報データベース18に記憶する。
次に、動作補正操作の開始の指令を受けて、動作補正部20で補正した動作情報を、データベース入出力部28を介して動作情報データベース17に記憶する。
具体的には、図32Bの動作情報データベース17に新規に「動作ID」を動作補正部20で付与し(この例では「24」)、さらに「キー動作ID」として「90」〜「98」を動作補正部20で付与し、動作補正部20で補正した動作情報を、動作補正部20によりデータベース入出力部28を介して動作情報データベース17のそれぞれの「キー動作ID」に記憶する。時間について、動作補正部20からは、人4Aが作業を選択して開始指令を出した時点を0とした相対時間が入力されるため、一番最初のキー動作(この例では「90」)の時間を全ての動作のそれぞれの時間から減算した値を、動作補正部20によりデータベース入出力部28を介して動作情報データベース17に記憶する。フラグについては、補正前のフラグで「1」となっている動作情報の成分のうち、補正前と補正後の「動作ID」のそれぞれのキー動作の位置姿勢と、力の値とをそれぞれの成分毎に動作補正部20で比較し、その差がある閾値以上の成分のみ、図6のフラグのそれぞれの成分を動作補正部20で「1」とし、閾値未満の場合には動作補正部20で「0」とする。
具体的には、補正前の「動作ID」が「23」の動作のフラグは、0、1、3〜5、8、12、13、15〜17目が「1」であり、その他は「0」であるので、補正前の動作と補正後の動作の位置姿勢と、力の値とのうち、位置姿勢の成分x,y,φ,θ,ψと力のz軸成分を動作補正部20で比較する。「キー動作ID」が「77」のキー動作と「キー動作ID」が「86」のキー動作とでは、位置姿勢(x,y,φ,θ,ψ)の成分は同じで、力のz軸成分のみ異なり、差の閾値を0.1(N)とすると、力のz成分のみが閾値以上となる。従って、動作補正部20により、フラグは8ビット目が「1」で、その他は「0」とする。
補正パラメータフラグについては、補正前の動作(この例では「78」〜「86」)の値を動作補正部20によりデータベース入出力部28を介して動作情報データベース17に記憶する。
次に、取得した環境情報と動作補正部20の動作補正操作で補正した動作から制御ルールデータベース19に新しい制御ルールを制御ルール生成部23で生成して記憶する。
具体的には、制御ルールデータベース16の「作業ID」が「4」の作業で動作中に動作を補正するため、制御ルール生成部23により、図10Bに示すように、「作業ID」が「4」の作業に1行追加し、動作補正により新しく追加した「動作ID」が「24」の動作を追加する。
次に、制御ルール生成部23で選択した環境情報の環境IDをデータベース入出力部28を介して制御ルールデータベース16に記憶する(この例では「環境ID」が「32」の環境情報)。
動作指令部(動作算出部2)27により、具体的には上記した補正により、図35Eのように仕様変更後に自動でロボットアーム5の動作を行うことができる。その仕様変更後の自動的に行う動作については、第3実施形態又は先の実施形態と同様であるので、説明を省略する。
以上により、人4Aが環境変化通知操作及び動作補正操作を行い、制御ルール生成部23により新しい制御ルールを生成することで、機器71の仕様変更を考慮した動作を事前に用意しておかなくても、その場で人4Aが操作をして環境通知及び動作を補正するだけで、次に同じような環境になった場合に、制御ルールデータベース16の情報を基に(言い換えれば、環境情報取得部19で取得した環境情報を参照しながら、制御ルール生成部23により生成された制御ルールに基づいて)ロボットアーム5は自律的に動作することができるようになる。
(第5実施形態)
本発明の第5実施形態における、ロボットアーム5とその制御装置の基本的な構成は、第1実施形態又は第4実施形態の場合と同様であるので、共通部分の説明は省略し、異なる部分についてのみ以下、詳細に説明する。なお、この第5実施形態は、環境変化通知操作と動作補正操作が同じ場合には、2つの操作を行う代わりに、動作補正操作を省略して、1つの操作(ここでは、環境変化及び動作通知操作と呼ぶ。)のみ行うことができる例について説明している。
第5実施形態においては、第4実施形態と同様、図31に示すように、ロボットアーム5とロボットアーム5の制御装置を備えるロボット1を使って、セル生産の工場でテレビ又はDVDレコーダなどの機器71の挿入口75に作業対象物の一例であるフレキシブル基板74を取り付ける場合を例にとって説明する。
図31に示したように、ロボット1のロボットアーム5は、例えば工場内の作業台テーブルなどの作業台7の壁面7aに設置され、ロボットアーム5の基端が、壁面7aに固定されたレール8に、移動可能に支持され、レール8上をロボットアーム5がレール8沿いの横方向例えば水平方向に、人4Aの力により、移動可能とする。15aはカメラなどの第1画像撮像装置であり、例えば天井7bから作業台7を撮像できるように取り付けられている。
ロボット1は、例えば、工場内で、テレビ又はDVDレコーダのフレキシブル基板74の取り付け作業などのロボットアーム5と人4Aとが協働して行う作業をロボットアーム5により行う。
第4実施形態と同様に、まず、人4Aが手4でロボット1のロボットアーム5を直接把持してロボットアーム5に力を加える。そして、人4Aからロボットアーム5に加えられた力により、ロボット1のロボットアーム5をレール8に沿って移動させることで、器具71(この例では、フレキシブル基板74を挿入するテレビ又はDVDレコーダの機器を示す)の付近までロボットアーム5を誘導する。
次に、セル生産の作業台7などの前側側面7eなどに配置されている、データ入力IF26の一例としてのロボット1の操作盤13のボタン13aを、人4Aが押すなどしてデータ入力IF26を使用することにより、ロボットアーム5が作動し、予め選択された作業、すなわち、器具71の挿入口75に、ハンド30でコネクタ部分74aを把持したフレキシブル基板74を挿入して取り付ける作業を開始させる。
次に、機器71の仕様変更により、機器71の形状又はフレキシブル基板74の仕様が変更になった場合に、ロボットアーム5が、フレキシブル基板74の取り付け作業を行っているときに、人4Aがフレキシブル基板74の取り付け状態を確認し、人4Aがロボットアーム5に力を加えて、取り付ける力具合、又は、フレキシブル基板74の位置の調整などの動作補正を行うことにより、ロボット1のロボットアーム5の動作を補正する。
レール8は、作業台7の壁面7aに配置したが、壁面の無い作業台の場合は、天井面又は作業台の天板6aの側面など作業をするのに適した場所に設置することができる。
さらに、操作盤13は、作業台7の側面に固定したが、操作盤13に代えて、遠隔操作が可能なリモコンでも良い。
−動作情報データベース−
動作情報データベース17は、第4実施形態と同様に、ロボットアーム5の、ある時間におけるロボットアーム5の手先位置及び姿勢などのロボットアーム5の動作に関する情報(動作情報)を記憶している。動作情報は、制御ルール生成部23を介してデータベース入出力部28により動作情報データベース17に入出力される。
図32A、図32Bは、第4実施形態と同様に、本第5実施形態の動作情報データベース17を示す。動作情報は第1実施形態と同様であるので、説明を省略する。
−動作指令部(動作算出部)−
以下、動作指令部27の機能について説明する。
人4Aは、データ入力IF26により、制御ルールデータベース16の作業の中の「作業ID」に関する作業の中からロボットアーム5に実行させたい作業をデータベース入出力部28を介して選択して、動作指令部27により、その選択した「作業ID」にかかる動作を実行するように制御パラメータ管理部21へ指令する。
動作指令部27がデータベース入出力部28を介して制御ルールデータベース16を参照するとき、1つの「作業ID」の作業が選択された場合で、かつ、動作指令部27は、前記1つの「作業ID」の作業の中に複数の「動作ID」が記憶されていると判断した場合は、動作算出部2により動作情報を算出し、算出した動作情報(具体的には、位置、姿勢、時間、力)をフラグに従って、制御モードを設定して動作するように、データベース入出力部28を介して制御パラメータ管理部21へ指令を出す。
具体的には、図10Aの「作業ID」が「4」の作業は、図33A(図31を上方から見た図)に示すように、ロボットアーム5が移動しながら挿入口75をロボット1で検出すると、ロボットアーム5の手先位置のハンド30でコネクタ部分74aが把持されたフレキシブル基板74のコネクタ部分74aを挿入口75に挿入する動作を行う制御ルールでの作業を示す。「作業ID」が「4」の作業には複数の「動作ID」(「21」、「22」、「23」の動作)が記憶されている。
動作算出部2では、複数の動作から1つの動作情報を算出する。具体的には、「動作ID」が「21」の動作と「22」の動作と「23」の動作との中から1つの動作情報を動作算出部2で算出する。「動作ID」が「21」の動作は、ロボットアーム5の手先位置のハンド30(正確には、ハンド30で把持したフレキシブル基板74)が、図33Aに示すように、機器71の挿入口75の近傍の上方部分を移動する動作を表す。「動作ID」が「21」の動作の「環境ID」は「−1」の値であるので、ロボットアーム5の周辺環境に拘わらず、ロボットアーム5が動作するので、実行すべき動作として動作指令部27で選択する。「動作ID」が「22」の動作は、下記するように、挿入口75であると動作指令部27で判断した場合に、挿入口75の入り口にフレキシブル基板74のコネクタ部74aが接触するまで、フレキシブル基板74を移動させる動作を表す。「動作ID」が「22」の動作の「環境ID」は「30」の環境情報で、「−1」の値ではないので、環境情報データベース18の「環境ID」が「30」の環境情報をデータベース入出力部28を介して動作指令部27で参照する。図9Aの「環境ID」が「30」の環境情報のフラグは、6ビット目のみ「1」であり、それ以外は「0」であるので、画像が有効であると、動作指令部27で判断することができる。そこで、画像IDより、環境情報データベース18に記憶されている画像の情報を動作指令部27で取得する。この画像は、図34の挿入口75の画像の情報を示す。次に、環境情報取得部19より、現在の画像情報を動作指令部27で取得して、画像マッチングにより、2つの画像を動作指令部27で比較し、挿入口75かどうかを動作指令部27で判断する。2つの画像が合致したと動作指令部27で判断した場合には、挿入口だと動作指令部27で判断し、「動作ID」が「22」で記憶されている動作を実行すべき動作として動作指令部27で選択する。合致しなかったと動作指令部27で判断した場合には、「動作ID」が「22」の動作は動作指令部27で選択せず、「21」の動作のみを動作指令部27で選択する。
「動作ID」が「23」の動作は、フレキシブル基板74のコネクタ部74aを挿入口75に挿入するために、フレキシブル基板74を移動させる動作を表す。「動作ID」が「23」の動作の「環境ID」は「31」の環境情報で、「−1」の値ではないので、環境情報データベース18の「環境ID」が「31」の環境情報をデータベース入出力部28を介して動作指令部27で参照する。図9Aの「環境ID」が「31」の環境情報のフラグは、0〜5ビット目のみ「1」であり、それ以外は「0」であるので、力が有効であると、動作指令部27で判断することができる。環境情報取得部19より、現在の力検出部の値を動作指令部27で取得して、環境情報データベース18で記憶されている力と動作指令部27で比較する。この2つの力が合致したと動作指令部27で判断した場合には、フレキシブル基板74が挿入口75から受ける力が、環境情報データベース18で記憶されている力が合致したと動作指令部27で判断し、「動作ID」が「23」の動作で記憶されている動作を実行すべき動作として動作指令部27で選択する。合致しなかったと動作指令部27で判断した場合には、「動作ID」が「23」の動作は動作指令部27で選択せず、「21」の動作又は「22」の動作のどちらかを動作指令部27で選択する。
選択された「動作ID」が1つのみの場合には、第1実施形態と同様に、「動作ID」と同じ「動作ID」の動作をデータベース入出力部28を介して動作情報データベース17から動作指令部27で参照する。「動作ID」と同じIDの動作情報は複数の「キー動作ID」で管理する動作情報(具体的には、位置の情報と、姿勢の情報と、時間の情報と、力の情報)を動作情報のフラグに従って、制御モードを設定して動作するように、動作指令部27から制御パラメータ管理部21へ指令を出して、それぞれのキー動作を順次実行するように、動作指令部27から制御パラメータ管理部21へ動作情報を出力する。この例では、ロボットアーム5の周辺の環境が、「動作ID」が「22」の動作の「環境ID」が「30」の環境情報に合致しないと動作指令部27で判断した場合には、挿入口75が検出できなかったと動作指令部27で判断し、「動作ID」が「21」の動作で示した動作を実行するように動作指令部27から制御パラメータ管理部21へ指令を出す。
すなわち、図32Aの動作情報データベース17より、「フラグ」が0〜5ビット目が「1」であるので、ロボットアーム5の手先のx、y、z、φ、θ、ψが有効ということを示しているので、x、y、z、φ、θ、ψについては位置制御モードで動作させる。
以上により、図33A(図31を上方から見た図)に示すように、ロボットアーム5は機器71上を移動する動作を開始する。
「動作ID」が「21」の動作でロボットアーム5が機器71上を移動中に、挿入口75の上方の部分にロボットアーム5が到達したと動作指令部27で判断した場合には、「動作ID」が「22」の動作の「環境ID」が「30」の環境情報の画像と環境情報取得部19で取得した現在の画像情報の画像とが合致すると動作指令部27で判断されるため、「動作ID」が「21」の動作と「22」の動作との2つの動作が動作指令部27で選択される。動作指令部27の動作算出部2では、それぞれの「動作ID」のフラグ(「動作ID」で動作情報データベース17をデータベース入出力部28を介して動作指令部27で参照し、そこで記憶されているフラグ)により、最終的に実行すべき動作情報を算出する。
この例では、「動作ID」が「21」の動作と「22」の動作とが動作指令部27で選択されており、図10Aの制御ルールデータベース16の「動作ID」には「21」の動作、「22」の動作の順に記憶されている。従って、「動作ID」が「21」の動作の動作情報のフラグが、図32Aより0〜5ビット目及びビット目が「1」であるので、「動作ID」が「21」の動作の動作情報のうち、位置姿勢情報(x,y,z,φ,θ,ψ)の動作情報を取得する。
次に、「動作ID」が「22」の動作のフラグは、0、1、3〜5、8、12、13、15〜17目が「1」で、その他は「0」である。フラグのうち、12,13,15〜17ビット目が「1」であるので、その際に、「動作ID」が「22」の動作のそれぞれのキー動作のフラグのうち、12,13,15〜17ビット目が「1」であるので、「動作ID」が「21」の動作の動作情報を現在実行中のロボットアーム5の手先位置情報をコピーして動作指令部27で置き換える。この例では、挿入口75の上方にロボットアーム5が配置されているので、その位置及び姿勢情報を「動作ID」が「21」の動作に動作指令部27でコピーする。他のキー動作の位置についても同様に動作指令部27で置き換える。
次に、「動作ID」が「21」の動作の動作情報のうち、(x,y,φ,θ,ψ)の値を「動作ID」が「22」の動作のそれぞれの動作情報に動作指令部27で置き換えて動作算出部2で算出する。
以降、「キー動作ID」の終わりまで順次動作算出部2で算出する。
動作算出部2で算出した動作情報のフラグ及び動作情報フラグについて、動作算出部2により、「動作ID」が「21」の動作と「22」の動作とのそれぞれのビットにおいて、どちらかのビットに「1」の場合には、算出後のフラグのビットを「1」に、両方とも「0」の場合には、「0」とする。ただし、位置と力のそれぞれの成分はどちらかにしか「1」とならないため(位置制御モード若しくは力制御モードのどちらかでしか作動しないため)、位置と力の両方に「1」となった場合には、力を優先する。
「動作ID」が「21」の動作のフラグは、0〜5ビット目が「1」であり、「22」は0、1、3〜5、8、12、13、15〜17ビット目が「1」であるので、0〜5、8、12、13、15〜17ビット目が「1」となる。位置z成分と力z分の両方が「1」となっているので、力を優先するため、最終的には、0、1、3〜5、8、12、13、15〜17ビット目が「1」となる。
「動作ID」が「21」の動作の動作パラメータフラグは、1,2,3ビット目が「1」であり、「動作ID」が「22」の動作の動作パラメータフラグは、8ビット目が「1」である。従って、動作算出部2で算出した動作の動作パラメータフラグは、1,2,3,8ビット目が「1」となる。
動作算出部2で算出した動作の「フラグ」が0、1、3〜5ビット目が「1」であるので、ロボットアーム5の手先のx、y、φ、θ、ψが有効ということを示しているので、x、y、φ、θ、ψについては位置制御モードで動作させる。さらに、8ビット目が「1」であるので、z軸は力制御モードで動作するように、動作指令部27から制御パラメータ管理部21へ指令を出す。
以上により、図33Bに示すように、ロボットアーム5は挿入口75にフレキシブル基板74のコネクタ部24aを接触するまで移動させる動作を開始する。
「動作ID」が「22」の動作にてフレキシブル基板74のコネクタ部24aを挿入口75に接触するまで移動させる動作が完了した時点で、次に動作させる動作を動作指令部27で選択する。「動作ID」が「23」の動作の「環境ID」が「31」の環境情報の力と環境情報取得部19で取得した力が合致したと動作指令部27で判断した場合には、「動作ID」が「21」の動作と「23」の動作との2つの動作が動作指令部27で選択される。さらに、「動作ID」が「22」の動作の「環境ID」が「30」の環境情報の力と環境情報取得部19で取得した画像が合致すると動作指令部27で判断した場合には、「動作ID」が「21」の動作と「22」の動作と「23」の動作との3つの動作が動作指令部27で選択される。
動作算出部2では、それぞれの「動作ID」のフラグ(「動作ID」で動作情報データベース17をデータベース入出力部28を介して動作指令部27で参照し、そこで記憶されているフラグ)により、最終的に実行すべき動作情報を算出する。
この例では、「動作ID」が「21」の動作と「22」の動作と「23」の動作とが選択されており、図10Aの制御ルールデータベース16の「動作ID」には「21」の動作、「22」の動作、「23」の動作の順に記憶されている。この場合は、最も番号の大きい「動作ID」を優先して動作指令部27で選択する。「動作ID」が「22」の動作の動作情報のフラグが、図32Aより0、1、3〜5、8、12、13、15〜17ビット目が「1」であるので、「動作ID」が「22」の動作の動作情報のうち、位置姿勢情報(x,y,φ,θ,ψ)とz成分の力情報の動作情報を取得する。次に、「動作ID」が「23」の動作のフラグは、0、1、3〜5、8、12、13、15〜17目が「1」で、その他は「0」である。フラグのうち、12,13,15〜17ビット目が「1」であるので、その際に、「動作ID」が「22」の動作のそれぞれのキー動作のフラグのうち、12,13,15〜17ビット目が「1」であるので、「動作ID」が「11」の動作の動作情報を現在実行中のロボットアーム5の手先位置情報をコピーして動作指令部27で置き換える。この例では、挿入口の上方にロボットアーム5が配置されているので、その位置及び姿勢情報を「動作ID」が「21」の動作に動作指令部27でコピーする。他のキー動作の位置についても、同様に動作指令部27で置き換える。次に、「動作ID」が「22」の動作の動作情報のうち、(x,y,φ,θ,ψ)成分の値を「動作ID」が「23」の動作のそれぞれの動作情報に置き換えて動作算出部2で算出する。
以降、「キー動作ID」の終わりまで順次動作算出部2で算出する。
−動作補正部−
以下、動作補正部20の機能について説明する。
人4Aがデータ入力IF26により、「作業ID」が「4」の作業を指定して動作指令部27に作業開始を指示すると、図35Aに示すように、ロボットアーム5はフレキシブル基板74のコネクタ部74aを挿入口74に挿入する作業を開始する。
次に、TV又はDVDレコーダなどの機器71の仕様変更に伴い、図35Bに示すように、フレキシブル基板74Aのサイズ又は厚み、フレキシブル基板自体の剛性の変更、挿入口75Aのサイズ変更が発生する。あらかじめ生成されている「作業ID」が「4」の作業は仕様変更前に生成されているため、そのまま動作させると、フレキシブル基板74A又は挿入口75Aの変更により、例えば、「作業ID」が「4」の作業の動作から挿入時の力加減が足りず、挿入口75Aに十分に差し込むことができないということが起こる。
第4実施形態と同様の補正を行う場合に、図35Cに示す環境変化通知操作と図35Dに示す動作補正操作とが同じ場合の実施形態について説明する。
人4Aは、環境変化通知操作と動作補正操作とを1つの操作で操作するために、1つの環境変化及び動作通知操作の開始の指令をデータ入力IF26を介して動作指令部27に入力する。環境変化及び動作通知操作は、第4実施形態の環境変化通知操作と動作補正操作とを1つの操作で入力可能にした操作である(例えば、操作方向が同じ場合には、環境変化通知操作での操作方向と動作補正操作での操作方向との2つの操作方向を入力する代わりに、環境変化及び動作通知操作として、同じ1つの操作方向を入力することを意味する。)。動作補正部20は、データ入力IF26から動作指令部27を介しての環境変化及び動作通知操作の指令を受けて、動作情報データベース17のフラグに従って、制御モードを設定して動作するように、制御パラメータ管理部21へ指令を出す。
具体的には、図35Bに示すように、フレキシブル基板74Aの挿入時は「動作ID」が「23」の動作で動作している。動作中の「動作ID」が「23」の動作を動作情報データベース18からデータベース入出力部28を介して動作補正部20で参照すると、それぞれの「キー動作ID」のフラグが、図32Aでは、0、1、3〜5、8、12、13、15〜17目が「1」であり、その他は「0」であるので、ロボットアーム5の動作のうち、位置姿勢に関しては、x軸、y軸、φ軸、θ軸、ψ軸が、力に関してはz軸が有効ということを表す。従って、x軸、y軸、φ軸、θ軸、ψ軸が人4Aの加えた力で補正ができるように、x軸、y軸、φ軸、θ軸、ψ軸について、位置制御モードからインピーダンス制御モード(人4Aの力を検知した方向に移動させるモード)で動作し、z軸については、高剛性位置制御モードにより動作するように、動作補正部20は制御パラメータ管理部21へ指令を出す。
次に、図35Cのように、機器71上の仕様変更箇所に伴う力の状態変更及び補正すべき動作の両方を知らせるために、人4Aがz軸方向に力を加える。人4Aが環境変化及び動作通知操作により力を加えた動作を動作補正部20で取得するために、制御パラメータ管理部21からのロボットアーム5の力を動作補正部20で取得し、後述する制御ルール生成部23へ動作補正部20から出力する。
次に、動作補正部20は、環境変化及び動作通知操作により、もう少し力を強めに挿入するように動作させる。人4Aが加えた力を取得するために、制御パラメータ管理部21からのロボットアーム5の手先の力を動作補正部20で取得し、後述する制御ルール生成部23へ動作補正部20から出力する。
−制御ルール生成部−
制御ルール生成部23は、制御ルールデータベース16の「動作ID」が参照する動作情報データベース17の位置及び姿勢及び力及び時間との情報にて、後述するインピーダンス制御モード、若しくは位置制御モード、若しくは力制御モード、若しくはそれらを方向別に組み合わせた制御モード、のうち、いずれかのモードでのロボットアーム5の動作中に、データ入力IF26から動作指令部27を介して、制御ルール生成部23で環境変化及び動作補正開始の指令を受ける。すると、制御ルール生成部23では、動作補正部20で補正した動作情報と環境情報取得部19で取得した環境情報とに基づいて、制御ルールを生成し、制御ルールデータベース16に記憶する機能を有している。
以下、制御ルール生成部23の機能について説明する。
図35Bに示すように、フレキシブル基板挿入時は「動作ID」が「23」の動作で動作している。
制御ルール生成部23は、データ入力IF26から動作指令部27を介して動作中の作業IDに対して、環境変化及び動作通知操作の開始の指令を受けて、人4Aからの環境変化及び動作通知操作にて生成したロボットアーム5の手先位置及び時間を動作補正部20より入力する。加えて、環境変化及び動作通知操作の開始のタイミングより、環境情報取得部19より環境情報を入力する。さらに、環境変化及び動作通知操作の開始時の動作中の「動作ID」を動作情報データベース18から制御ルール生成部23で参照し、その「動作ID」の「キー動作ID」のフラグに関する情報から現在のロボットアーム5の制御モードに関する情報を制御ルール生成部23で取得する。具体的には、図10Aの「作業ID」が「4」の作業で動作中の「動作ID」が「23」の動作の「キー動作ID」が「78」〜「86」のキー動作を動作情報データベース18から制御ルール生成部23で参照すると、それぞれの「キー動作ID」のフラグが、図32Aでは、0、1、3〜5、8、12、13、15〜17目のみ「1」であり、その他は「0」であるので、ロボットアーム5の動作のうち、位置姿勢に関してはx軸、y軸、φ軸、θ軸、ψ軸、力に関してはz軸成分のデータが有効ということが制御ルール生成部23でわかる。従って、x軸、y軸、θ軸、ψ軸が人4Aの加えた力で補正ができるように、インピーダンス制御モードとなり、z軸については高剛性位置制御モードとなる。
現在動作中の環境変化及び動作通知操作の際のロボットアーム5の移動方向の制御モードと検出部選択ルールデータベース29に基づいて、複数の環境情報の中から制御ルールを生成するための環境情報の種別を制御ルール生成部23で選択して決定する。具体的には、図10Aの「作業ID」が「4」の作業の環境変化及び動作通知操作の開始のタイミングでは、図35Cのようにz軸方向で環境変化及び動作通知操作を行っている。z軸は高剛性位置制御モードで補正しているので、図11Aより、環境情報の種別IDは「2」となり、図11Bより、「力」を制御ルール生成部23で選択する。したがって、力検出部53で検出した力を制御ルール生成部23で選択する。取得した力は、制御ルール生成部23によりデータベース入出力部28を介して環境情報データベース18及び動作情報データベース17に記憶する。この例では、図9Aに示すように、新しい「環境ID」として「32」を制御ルール生成部23で付与し、その「環境ID」の「力」に、取得した力の情報を制御ルール生成部23によりデータベース入出力部28を介して環境情報データベース18に記憶する。さらに、フラグは力のみであるので、0〜5ビット目のみ「1」を、その他のビットに「0」を制御ルール生成部23によりデータベース入出力部28を介して環境情報データベース18に記憶する。
また、図32Bの動作情報データベース17に新規に「動作ID」を動作補正部20で付与し(この例では「24」)、さらに「キー動作ID」として「90」〜「98」を動作補正部20で付与し、動作補正部20で補正した動作情報を、動作補正部20によりデータベース入出力部28を介して動作情報データベース17のそれぞれの「キー動作ID」に記憶する。時間について、動作補正部20からは、人4Aが作業を選択して開始指令を出した時点を0とした相対時間が入力されるため、一番最初のキー動作(この例では「90」)の時間を全ての動作のそれぞれの時間から減算した値を、動作補正部20によりデータベース入出力部28を介して動作情報データベース17に記憶する。フラグについては、補正前のフラグで「1」となっている動作情報の成分のうち、補正前と補正後の「動作ID」のそれぞれのキー動作の位置姿勢と、力の値とをそれぞれの成分毎に動作補正部20で比較し、その差がある閾値以上の成分のみ、図6のフラグのそれぞれの成分を動作補正部20で「1」とし、閾値未満の場合には動作補正部20で「0」とする。
具体的には、補正前の「動作ID」が「23」の動作のフラグは、0、1、3〜5、8、12、13、15〜17目が「1」であり、その他は「0」であるので、補正前の動作と補正後の動作の位置姿勢と、力の値とのうち、位置姿勢の成分x,y,φ,θ,ψと力のz軸成分を動作補正部20で比較する。「キー動作ID」が「77」のキー動作と「キー動作ID」が「86」のキー動作とでは、位置姿勢(x,y,φ,θ,ψ)の成分は同じで、力のz軸成分のみ異なり、差の閾値を0.1(N)とすると、力のz成分のみが閾値以上となる。従って、動作補正部20により、フラグは8ビット目が「1」で、その他は「0」とする。
補正パラメータフラグについては、補正前の動作(この例では「78」〜「86」)の値を動作補正部20によりデータベース入出力部28を介して動作情報データベース17に記憶する。
次に、取得した環境情報と動作補正部20の動作補正操作で補正した動作から制御ルールデータベース19に新しい制御ルールを制御ルール生成部23で生成して記憶する。
具体的には、制御ルールデータベース16の「作業ID」が「4」の作業で動作中に動作を補正するため、制御ルール生成部23により、図10Bに示すように、「作業ID」が「4」の作業に1行追加し、動作補正により新しく追加した「動作ID」が「24」の動作を追加する。
次に、制御ルール生成部23で選択した環境情報の環境IDをデータベース入出力部28を介して制御ルールデータベース16に記憶する(この例では「環境ID」が「32」の環境情報)。
動作指令部(動作算出部2)27により、具体的には上記した補正により、図35Eのように仕様変更後に自動でロボットアーム5の動作を行うことができる。その仕様変更後の自動的に行う動作については、第3実施形態又は先の実施形態と同様であるので、説明を省略する。
以上により、人4Aが環境変化通知操作と動作補正操作が同じ場合は、1つの環境変化及び動作補正のみの操作により、操作の負荷を削減でき、さらに、制御ルール生成部23により新しい制御ルールを生成することで、機器71の仕様変更を考慮した動作を事前に用意しておかなくても、その場で人4Aが操作をして環境通知及び動作を補正するだけで、次に同じような環境になった場合に、制御ルールデータベース16の情報を基に(言い換えれば、環境情報取得部19で取得した環境情報を参照しながら、制御ルール生成部23により生成された制御ルールに基づいて)ロボットアーム5は自律的に動作することができるようになる。
(変形例)
なお、上記第1〜第5実施形態では、作業を行うロボットアーム5を直接把持して操作をしたが、マスタースレーブ方式のように、実際に作業を行うロボットアーム5ではなく、容易に動かすことが可能な別の操作機器(マスター)を人4Aが操作することで、それに接続された実際のロボットアーム(スレーブ)を動かし、動作を補正する方法についても適応可能である。
さらに、上記第1〜第5実施形態では、ロボットアーム5を例に説明したが、本発明は、アームに限らず、車輪により動く移動ロボット、又は、2足歩行ロボット、又は、多足歩行ロボットなどにも適用することができ、移動ロボットなどと人間との接触に関して同様の効果を発揮する。
上記様々な実施形態のうちの任意の実施形態を適宜組み合わせることにより、それぞれの有する効果を奏するようにすることができる。
本発明は、家庭用ロボットなど、人とロボットが協調して作業を行う際のロボットアームの動作の制御を行うロボットアームの制御装置及び制御方法、ロボット、ロボットアームの制御プログラム、及び、ロボットアーム制御用集積電子回路として有用である。また、家庭用ロボットに限らず、産業用ロボット、又は、生産設備等における可動機構のロボットアームの制御装置及び制御方法、ロボットアームの制御装置を有するロボット、ロボットアームの制御プログラム、及び、ロボットアーム制御用集積電子回路としても適用が可能である。
本発明は、添付図面を参照しながら好ましい実施形態に関連して充分に記載されているが、この技術の熟練した人々にとっては種々の変形又は修正は明白である。そのような変形又は修正は、添付した請求の範囲による本発明の範囲から外れない限りにおいて、その中に含まれると理解されるべきである。

Claims (5)

  1. ロボットアームの動作を制御する、ロボットアームの制御装置であって、
    前記動作に対応する、前記ロボットアームが対象物に加える力の時系列の動作情報として記憶された動作情報データベースから前記動作情報を取得する動作情報取得部と、
    作業環境が変化することを人により前記ロボットアームへ通知する通知操作に応じて、前記ロボットアームが動作する際の前記ロボットアームの周辺の前記対象物の位置及び状態に関する情報と、前記人及び前記ロボットアームが周辺環境に対して直接作用することによる前記対象物の前記位置及び前記状態に関する情報である環境情報を取得する環境情報取得部と、
    前記通知操作及び前記環境情報取得部による前記環境情報を取得した後に前記人が前記ロボットアームを操作して、前記ロボットアームの前記動作を補正する際に、前記動作情報取得部で取得した前記動作情報に関連しかつ前記ロボットアームが加える力に関する補正動作情報を取得する補正動作情報取得部と
    記動作情報取得部で取得した前記動作情報に設定された力で前記対象物に対して前記ロボットアームが力制御を行なうよう前記ロボットアームを力制御モードで制御する制御部と、
    前記制御部により前記ロボットアームを前記力制御モードで制御している最中に前記補正動作情報取得部で取得したそれぞれの時間での前記補正動作情報に応じて前記動作情報を補正するとともに、前記通知操作の終了に基づき前記動作情報の補正を開始する動作補正部と、
    前記ロボットアームの前記人の前記通知操作に応じて、前記環境情報取得部で取得する前記環境情報を決定するとともに、前記動作補正部で補正された前記動作情報と前記環境情報取得部で取得した前記環境情報とを対応付けることにより、前記ロボットアームが自動で動作するための制御ルールを生成する制御ルール生成部とを備えて、
    前記環境情報取得部で取得した前記環境情報を参照しながら、前記制御ルール生成部により生成された前記制御ルールに基づいて、前記ロボットアームの前記動作を制御するとともに、
    前記環境情報取得部は、前記ロボットアームに加えられた前記人の力を検出する力検出部と、
    前記力検出部で検出された前記人の前記力が閾値以上であり、かつ、前記人の前記力の検出時間が一定時間以上続いた場合に前記通知操作が開始されたと判断し、前記力検出部で検出された前記人の前記力が前記閾値未満であるか、又は、前記人の前記力の検出時間が前記一定時間未満の場合に前記通知操作が終了したと判断して、判断結果を前記動作補正部に出力する動作指令部とを備えて、
    前記力検出部で検出された前記人の力とその検出時間とに応じて前記人が前記ロボットアームを操作したことを検出して、前記ロボットアームの前記動作を補正する際の前記ロボットアームが加える力に関する前記補正動作情報を前記補正動作情報取得部で取得する、
    ロボットアームの制御装置。
  2. 前記ロボットアームと、
    前記ロボットアームを制御する請求項1に記載の前記ロボットアームの制御装置とを備えるロボット。
  3. ロボットアームの動作を制御する、ロボットアームの制御方法であって、
    前記動作に対応する、前記ロボットアームが対象物に加える力の時系列の動作情報として記憶された動作情報データベースから前記動作情報を動作情報取得部で取得し、
    作業環境が変化することを人により前記ロボットアームへ通知する通知操作に応じて、前記ロボットアームが動作する際の前記ロボットアームの周辺の前記対象物の位置及び状態に関する情報と、前記人及び前記ロボットアームが周辺環境に対して直接作用することによる前記対象物の前記位置及び前記状態に関する情報である環境情報を環境情報取得部で取得し、
    前記通知操作及び前記環境情報取得部による前記環境情報を取得した後に前記人が前記ロボットアームを操作して、前記ロボットアームの前記動作を補正する際に、前記動作情報取得部で取得した前記動作情報に関連しかつ前記ロボットアームが加える力に関する補正動作情報を補正動作情報取得部で取得し
    記動作情報取得部で取得した前記動作情報に設定された力で前記対象物に対して前記ロボットアームが力制御を行なうよう前記ロボットアームを力制御モードで制御部で制御し、
    前記制御部により前記ロボットアームを前記力制御モードで制御している最中に前記補正動作情報取得部で取得したそれぞれの時間での前記補正動作情報に応じて前記動作情報を動作補正部で補正するとともに、前記通知操作の終了に基づき前記動作情報の補正を開始し、
    前記ロボットアームの前記人の前記通知操作に応じて、前記環境情報取得部で取得する前記環境情報を決定するとともに、前記動作補正部で補正された前記動作情報と前記環境情報取得部で取得した前記環境情報とを対応付けることにより、前記ロボットアームが自動で動作するための制御ルールを制御ルール生成部で生成し、
    前記環境情報取得部で取得した前記環境情報を参照しながら、前記制御ルール生成部により生成された前記制御ルールに基づいて、前記ロボットアームの前記動作を制御するとともに、
    前記環境情報取得部は力検出部と動作指令部とを備えており、前記ロボットアームに加えられた前記人の力を前記力検出部で検出するとともに、
    前記力検出部で検出された前記人の前記力が閾値以上であり、かつ、前記人の前記力の検出時間が一定時間以上続いた場合に前記通知操作が開始されたと判断し、前記力検出部で検出された前記人の前記力が前記閾値未満であるか、又は、前記人の前記力の検出時間が前記一定時間未満の場合に前記通知操作が終了したと判断して、判断結果を前記動作補正部に動作指令部で出力し、
    前記力検出部で検出された前記人の力とその検出時間とに応じて前記人が前記ロボットアームを操作したことを検出して、前記ロボットアームの前記動作を補正する際の前記ロボットアームが加える力に関する前記補正動作情報を前記補正動作情報取得部で取得する、
    ロボットアームの制御方法。
  4. ロボットアームの動作を制御する、ロボットアームの制御プログラムであって、
    前記動作に対応する、前記ロボットアームが対象物に加える力の時系列の動作情報として記憶された動作情報データベースから前記動作情報を動作情報取得部で取得するステップと、
    作業環境が変化することを人により前記ロボットアームへ通知する通知操作に応じて、前記ロボットアームが動作する際の前記ロボットアームの周辺の前記対象物の位置及び状態に関する情報と、前記人及び前記ロボットアームが周辺環境に対して直接作用することによる前記対象物の前記位置及び前記状態に関する情報である環境情報を環境情報取得部で取得するステップと、
    前記通知操作及び前記環境情報取得部による前記環境情報を取得した後に前記人が前記ロボットアームを操作して、前記ロボットアームの前記動作を補正する際に、前記動作情報取得部で取得した前記動作情報に関連しかつ前記ロボットアームが加える力に関する補正動作情報を補正動作情報取得部で取得するステップと
    記動作情報取得部で取得した前記動作情報に設定された力で前記対象物に対して前記ロボットアームが力制御を行なうよう前記ロボットアームを力制御モードで制御部で制御するステップと、
    前記制御部により前記ロボットアームを前記力制御モードで制御している最中に前記補正動作情報取得部で取得したそれぞれの時間での前記補正動作情報に応じて前記動作情報を動作補正部で補正するとともに、前記通知操作の終了に基づき前記動作情報の補正を開始するステップと、
    前記ロボットアームの前記人の前記通知操作に応じて、前記環境情報取得部で取得する前記環境情報を決定するとともに、前記動作補正部で補正された前記動作情報と前記環境情報取得部で取得した前記環境情報とを対応付けることにより、前記ロボットアームが自動で動作するための制御ルールを制御ルール生成部で生成するステップと、
    前記環境情報取得部で取得した前記環境情報を参照しながら、前記制御ルール生成部により生成された前記制御ルールに基づいて、前記ロボットアームの前記動作を制御するステップとを実行させるとともに、
    前記環境情報取得部で前記環境情報を取得するステップでは、
    前記ロボットアームに加えられた前記人の力を力検出部で検出するステップと、
    前記力検出部で検出された前記人の前記力が閾値以上であり、かつ、前記人の前記力の検出時間が一定時間以上続いた場合に前記通知操作が開始されたと判断し、前記力検出部で検出された前記人の前記力が前記閾値未満であるか、又は、前記人の前記力の検出時間が前記一定時間未満の場合に前記通知操作が終了したと判断して、判断結果を前記動作補正部に動作指令部で出力するステップとを実行させ、
    前記補正動作情報取得部で前記補正動作情報を取得するステップでは、前記力検出部で検出された前記人の力とその検出時間とに応じて前記人が前記ロボットアームを操作したことを検出して、前記ロボットアームの前記動作を補正する際の前記ロボットアームが加える力に関する前記補正動作情報を前記補正動作情報取得部で取得するためのロボットアームの制御プログラム。
  5. ロボットアームの動作を制御する、ロボットアーム制御用集積電子回路であって、
    前記動作に対応する、前記ロボットアームが対象物に加える力の時系列の動作情報として記憶された動作情報データベースから前記動作情報を動作情報取得部で取得し、
    作業環境が変化することを人により前記ロボットアームへ通知する通知操作に応じて、前記ロボットアームが動作する際の前記ロボットアームの周辺の前記対象物の位置及び状態に関する情報と、前記人及び前記ロボットアームが周辺環境に対して直接作用することによる前記対象物の前記位置及び前記状態に関する情報である環境情報を環境情報取得部で取得し、
    前記通知操作及び前記環境情報取得部による前記環境情報を取得した後に前記人が前記ロボットアームを操作して、前記ロボットアームの前記動作を補正する際に、前記動作情報取得部で取得した前記動作情報に関連しかつ前記ロボットアームが加える力に関する補正動作情報を補正動作情報取得部で取得し
    記動作情報取得部で取得した前記動作情報に設定された力で前記対象物に対して前記ロボットアームが力制御を行なうよう前記ロボットアームを力制御モードで制御部で制御し、
    前記制御部により前記ロボットアームを前記力制御モードで制御している最中に前記補正動作情報取得部で取得したそれぞれの時間での前記補正動作情報に応じて前記動作情報を動作補正部で補正するとともに、前記通知操作の終了に基づき前記動作情報の補正を開始し、
    前記ロボットアームの前記人の前記通知操作に応じて、前記環境情報取得部で取得する前記環境情報を決定するとともに、前記動作補正部で補正された前記動作情報と前記環境情報取得部で取得した前記環境情報とを対応付けることにより、前記ロボットアームが自動で動作するための制御ルールを制御ルール生成部で生成し、
    前記環境情報取得部で取得した前記環境情報を参照しながら、前記制御ルール生成部により生成された前記制御ルールに基づいて、前記ロボットアームの前記動作を制御するとともに、
    前記環境情報取得部は力検出部と動作指令部とを備えており、前記ロボットアームに加えられた前記人の力を前記力検出部で検出するとともに、
    前記力検出部で検出された前記人の前記力が閾値以上であり、かつ、前記人の前記力の検出時間が一定時間以上続いた場合に前記通知操作が開始されたと判断し、前記力検出部で検出された前記人の前記力が前記閾値未満であるか、又は、前記人の前記力の検出時間が前記一定時間未満の場合に前記通知操作が終了したと判断して、判断結果を前記動作補正部に動作指令部で出力し、
    前記力検出部で検出された前記人の力とその検出時間とに応じて前記人が前記ロボットアームを操作したことを検出して、前記ロボットアームの前記動作を補正する際の前記ロボットアームが加える力に関する前記補正動作情報を前記補正動作情報取得部で取得する、
    ロボットアーム制御用集積電子回路。
JP2010288106A 2009-09-28 2010-12-24 ロボットアームの制御装置及び制御方法、ロボット、ロボットアームの制御プログラム、及び、ロボットアーム制御用集積電子回路 Active JP5740554B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2010288106A JP5740554B2 (ja) 2009-09-28 2010-12-24 ロボットアームの制御装置及び制御方法、ロボット、ロボットアームの制御プログラム、及び、ロボットアーム制御用集積電子回路

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2009222378 2009-09-28
JP2009222378 2009-09-28
JP2010288106A JP5740554B2 (ja) 2009-09-28 2010-12-24 ロボットアームの制御装置及び制御方法、ロボット、ロボットアームの制御プログラム、及び、ロボットアーム制御用集積電子回路

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2010547779A Division JP4699572B2 (ja) 2009-09-28 2010-09-21 ロボットアームの制御装置及び制御方法、ロボット、ロボットアームの制御プログラム、及び、ロボットアーム制御用集積電子回路

Publications (2)

Publication Number Publication Date
JP2011088273A JP2011088273A (ja) 2011-05-06
JP5740554B2 true JP5740554B2 (ja) 2015-06-24

Family

ID=43795633

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2010547779A Active JP4699572B2 (ja) 2009-09-28 2010-09-21 ロボットアームの制御装置及び制御方法、ロボット、ロボットアームの制御プログラム、及び、ロボットアーム制御用集積電子回路
JP2010288106A Active JP5740554B2 (ja) 2009-09-28 2010-12-24 ロボットアームの制御装置及び制御方法、ロボット、ロボットアームの制御プログラム、及び、ロボットアーム制御用集積電子回路

Family Applications Before (1)

Application Number Title Priority Date Filing Date
JP2010547779A Active JP4699572B2 (ja) 2009-09-28 2010-09-21 ロボットアームの制御装置及び制御方法、ロボット、ロボットアームの制御プログラム、及び、ロボットアーム制御用集積電子回路

Country Status (5)

Country Link
US (2) US8175750B2 (ja)
EP (1) EP2481531A2 (ja)
JP (2) JP4699572B2 (ja)
CN (1) CN102300679B (ja)
WO (1) WO2011036865A1 (ja)

Families Citing this family (115)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4962551B2 (ja) * 2009-10-20 2012-06-27 株式会社安川電機 ロボットシステムおよびロボットシステムの制御方法
DE102010010718A1 (de) * 2010-03-09 2011-09-15 Kuka Laboratories Gmbh Verfahren zur Montage von Bauteilen mittels eines Industrieroboters
US8896162B1 (en) * 2010-05-21 2014-11-25 Finley Lee Ledbetter Device for installing and/or removing components from electrical equipment
US9906838B2 (en) 2010-07-12 2018-02-27 Time Warner Cable Enterprises Llc Apparatus and methods for content delivery and message exchange across multiple content delivery networks
US8775341B1 (en) 2010-10-26 2014-07-08 Michael Lamport Commons Intelligent control with hierarchical stacked neural networks
US9015093B1 (en) 2010-10-26 2015-04-21 Michael Lamport Commons Intelligent control with hierarchical stacked neural networks
US9921712B2 (en) 2010-12-29 2018-03-20 Mako Surgical Corp. System and method for providing substantially stable control of a surgical tool
US9119655B2 (en) * 2012-08-03 2015-09-01 Stryker Corporation Surgical manipulator capable of controlling a surgical instrument in multiple modes
US9566710B2 (en) 2011-06-02 2017-02-14 Brain Corporation Apparatus and methods for operating robotic devices using selective state space training
US20130171304A1 (en) * 2011-07-14 2013-07-04 Robert E. Huntley System and method for culinary interaction
JP5583282B2 (ja) * 2011-08-24 2014-09-03 パナソニック株式会社 ロボットアームの制御装置及び制御方法、ロボット、ロボットアームの制御プログラム、並びに、集積電子回路
JP5966372B2 (ja) * 2012-01-17 2016-08-10 セイコーエプソン株式会社 ロボット制御装置、ロボットシステム、ロボット制御方法及びロボット
US9120220B2 (en) * 2012-02-29 2015-09-01 GM Global Technology Operations LLC Control of a glove-based grasp assist device
JP5977544B2 (ja) * 2012-03-09 2016-08-24 キヤノン株式会社 情報処理装置、情報処理方法
US8843236B2 (en) * 2012-03-15 2014-09-23 GM Global Technology Operations LLC Method and system for training a robot using human-assisted task demonstration
US9226796B2 (en) 2012-08-03 2016-01-05 Stryker Corporation Method for detecting a disturbance as an energy applicator of a surgical instrument traverses a cutting path
CN112932672A (zh) 2012-08-03 2021-06-11 史赛克公司 用于机器人外科手术的系统和方法
US9186793B1 (en) 2012-08-31 2015-11-17 Brain Corporation Apparatus and methods for controlling attention of a robot
EP2749974A2 (en) * 2012-12-28 2014-07-02 Kabushiki Kaisha Yaskawa Denki Robot teaching system, robot teaching assistant device, and robot teaching method
US9031691B2 (en) * 2013-03-04 2015-05-12 Disney Enterprises, Inc. Systemic derivation of simplified dynamics for humanoid robots
US9199376B2 (en) * 2013-03-14 2015-12-01 GM Global Technology Operations LLC Intuitive grasp control of a multi-axis robotic gripper
US9764468B2 (en) 2013-03-15 2017-09-19 Brain Corporation Adaptive predictor apparatus and methods
US8996177B2 (en) * 2013-03-15 2015-03-31 Brain Corporation Robotic training apparatus and methods
US9242372B2 (en) 2013-05-31 2016-01-26 Brain Corporation Adaptive robotic interface apparatus and methods
US9314924B1 (en) 2013-06-14 2016-04-19 Brain Corporation Predictive robotic controller apparatus and methods
US9792546B2 (en) 2013-06-14 2017-10-17 Brain Corporation Hierarchical robotic controller apparatus and methods
US9384443B2 (en) 2013-06-14 2016-07-05 Brain Corporation Robotic training apparatus and methods
US9436909B2 (en) 2013-06-19 2016-09-06 Brain Corporation Increased dynamic range artificial neuron network apparatus and methods
US9694495B1 (en) * 2013-06-24 2017-07-04 Redwood Robotics Inc. Virtual tools for programming a robot arm
JP5850003B2 (ja) * 2013-07-26 2016-02-03 株式会社安川電機 ロボットシステム、ロボットシステムのロボット管理コンピュータ及びロボットシステムの管理方法
JP6410023B2 (ja) * 2013-09-06 2018-10-24 パナソニックIpマネジメント株式会社 マスタスレーブロボットの制御装置及び制御方法、ロボット、マスタスレーブロボットの制御プログラム、並びに、マスタスレーブロボットの制御用集積電子回路
US9296101B2 (en) 2013-09-27 2016-03-29 Brain Corporation Robotic control arbitration apparatus and methods
US9579789B2 (en) 2013-09-27 2017-02-28 Brain Corporation Apparatus and methods for training of robotic control arbitration
US9463571B2 (en) 2013-11-01 2016-10-11 Brian Corporation Apparatus and methods for online training of robots
US9597797B2 (en) 2013-11-01 2017-03-21 Brain Corporation Apparatus and methods for haptic training of robots
US9248569B2 (en) 2013-11-22 2016-02-02 Brain Corporation Discrepancy detection apparatus and methods for machine learning
JP6486005B2 (ja) 2014-01-17 2019-03-20 蛇の目ミシン工業株式会社 ロボット、ロボットの制御方法、及びロボットの制御プログラム
US9358685B2 (en) 2014-02-03 2016-06-07 Brain Corporation Apparatus and methods for control of robot actions based on corrective user inputs
KR20160124770A (ko) * 2014-02-20 2016-10-28 엠비엘 리미티드 로봇식 요리용 키친에서의 음식 준비를 위한 방법 및 시스템
US9987743B2 (en) 2014-03-13 2018-06-05 Brain Corporation Trainable modular robotic apparatus and methods
US9364950B2 (en) 2014-03-13 2016-06-14 Brain Corporation Trainable modular robotic methods
US9533413B2 (en) 2014-03-13 2017-01-03 Brain Corporation Trainable modular robotic apparatus and methods
JP6364836B2 (ja) * 2014-03-14 2018-08-01 セイコーエプソン株式会社 ロボット、ロボットシステム、及び制御装置
JP6586079B2 (ja) * 2014-03-28 2019-10-02 ソニー株式会社 アーム装置、及びプログラム
JP6106122B2 (ja) * 2014-04-02 2017-03-29 ファナック株式会社 溶接検査ロボットシステム
US9613308B2 (en) * 2014-04-03 2017-04-04 Brain Corporation Spoofing remote control apparatus and methods
US9630317B2 (en) 2014-04-03 2017-04-25 Brain Corporation Learning apparatus and methods for control of robotic devices via spoofing
JP5893664B2 (ja) * 2014-04-14 2016-03-23 ファナック株式会社 作用された力に応じて移動されるロボットを制御するロボット制御装置
US9346167B2 (en) 2014-04-29 2016-05-24 Brain Corporation Trainable convolutional network apparatus and methods for operating a robotic vehicle
US9403273B2 (en) * 2014-05-23 2016-08-02 GM Global Technology Operations LLC Rapid robotic imitation learning of force-torque tasks
CN105313127A (zh) * 2014-06-02 2016-02-10 精工爱普生株式会社 机器人、机器人的控制方法以及机器人的控制装置
DE102015204641B4 (de) * 2014-06-03 2021-03-25 ArtiMinds Robotics GmbH Verfahren und System zur Programmierung eines Roboters
JP6660102B2 (ja) * 2014-08-27 2020-03-04 キヤノン株式会社 ロボット教示装置およびその制御方法、ロボットシステム、プログラム
US9821470B2 (en) 2014-09-17 2017-11-21 Brain Corporation Apparatus and methods for context determination using real time sensor data
US9579790B2 (en) 2014-09-17 2017-02-28 Brain Corporation Apparatus and methods for removal of learned behaviors in robots
US9860077B2 (en) 2014-09-17 2018-01-02 Brain Corporation Home animation apparatus and methods
US9849588B2 (en) 2014-09-17 2017-12-26 Brain Corporation Apparatus and methods for remotely controlling robotic devices
US9815206B2 (en) * 2014-09-25 2017-11-14 The Johns Hopkins University Surgical system user interface using cooperatively-controlled robot
US9630318B2 (en) 2014-10-02 2017-04-25 Brain Corporation Feature detection apparatus and methods for training of robotic navigation
US10499999B2 (en) 2014-10-09 2019-12-10 Auris Health, Inc. Systems and methods for aligning an elongate member with an access site
CN105700465A (zh) * 2014-11-26 2016-06-22 中国科学院沈阳自动化研究所 基于EtherCAT总线的机器人柔顺控制系统和方法
US9592603B2 (en) * 2014-12-01 2017-03-14 Spin Master Ltd. Reconfigurable robotic system
US9426946B2 (en) 2014-12-02 2016-08-30 Brain Corporation Computerized learning landscaping apparatus and methods
US9804593B1 (en) * 2014-12-12 2017-10-31 X Development Llc Methods and systems for teaching positions to components of devices
US9592608B1 (en) * 2014-12-15 2017-03-14 X Development Llc Methods and systems for providing feedback during teach mode
US9717387B1 (en) 2015-02-26 2017-08-01 Brain Corporation Apparatus and methods for programming and training of robotic household appliances
DE102015205176B3 (de) * 2015-03-23 2016-05-12 Kuka Roboter Gmbh Robustes intuitives Bedienverfahren durch Berührung eines Manipulators
CN107438502B (zh) * 2015-03-31 2019-05-31 Abb瑞士股份有限公司 通过触摸来控制工业机器人的方法
US9840003B2 (en) 2015-06-24 2017-12-12 Brain Corporation Apparatus and methods for safe navigation of robotic devices
US10959795B2 (en) 2015-08-25 2021-03-30 Kawasaki Jukogyo Kabushiki Kaisha Remote-control manipulator system and method of operating the same
US9418421B1 (en) * 2015-09-26 2016-08-16 Nastaran Neishaboori Automation of biopsy specimen handling
JP6489991B2 (ja) * 2015-10-02 2019-03-27 ファナック株式会社 ロボットを操作するハンドルを備えたロボット用操作装置
CN108025439B (zh) 2015-10-14 2021-04-27 川崎重工业株式会社 机器人示教方法及机器臂控制装置
JP6577326B2 (ja) * 2015-10-16 2019-09-18 ファナック株式会社 人と協働して物体を運搬するロボットを制御するロボット制御装置、ロボットシステム、およびその方法
CN108349091B (zh) * 2015-11-16 2021-03-26 川崎重工业株式会社 机器人系统及机器人系统的控制方法
US9919422B1 (en) 2016-01-06 2018-03-20 X Development Llc Methods and systems to provide mechanical feedback during movement of a robotic system
US20180345491A1 (en) * 2016-01-29 2018-12-06 Mitsubishi Electric Corporation Robot teaching device, and method for generating robot control program
CN105739497A (zh) * 2016-02-19 2016-07-06 上海钧工智能技术有限公司 一种智能机器人空气净化系统
GB2549072B (en) 2016-03-24 2020-07-29 Cmr Surgical Ltd Robot control
WO2017163251A2 (en) * 2016-03-24 2017-09-28 Polygon T.R Ltd. Systems and methods for human and robot collaboration
US10295972B2 (en) 2016-04-29 2019-05-21 Brain Corporation Systems and methods to operate controllable devices with gestures and/or noises
US11045955B2 (en) * 2016-05-26 2021-06-29 Mitsubishi Electric Corporation Robot control device
US10427305B2 (en) * 2016-07-21 2019-10-01 Autodesk, Inc. Robotic camera control via motion capture
GB2557179B (en) * 2016-11-29 2020-01-01 Rolls Royce Plc Methods, apparatus, computer programs and non-transitory computer readable storage mediums for controlling a hyper redundant manipulator
JP6469069B2 (ja) 2016-12-13 2019-02-13 ファナック株式会社 学習を容易化する機能を備えたロボット制御装置、及びロボット制御方法
US11202682B2 (en) 2016-12-16 2021-12-21 Mako Surgical Corp. Techniques for modifying tool operation in a surgical robotic system based on comparing actual and commanded states of the tool relative to a surgical site
CN106393145B (zh) * 2016-12-20 2018-10-02 自兴人工智能(深圳)有限公司 一种基于机械臂控制的虚拟现实体验方法及装置
KR102578978B1 (ko) 2017-06-28 2023-09-19 아우리스 헬스, 인코포레이티드 전자파 왜곡 검출
CN116725667A (zh) 2017-06-28 2023-09-12 奥瑞斯健康公司 提供定位信息的系统和在解剖结构内定位器械的方法
US10464209B2 (en) 2017-10-05 2019-11-05 Auris Health, Inc. Robotic system with indication of boundary for robotic arm
US10016900B1 (en) * 2017-10-10 2018-07-10 Auris Health, Inc. Surgical robotic arm admittance control
US20190201139A1 (en) * 2017-12-28 2019-07-04 Ethicon Llc Communication arrangements for robot-assisted surgical platforms
JP6965785B2 (ja) * 2018-02-15 2021-11-10 オムロン株式会社 制御システム、スレーブ装置制御部、制御方法およびプログラム
JP7135408B2 (ja) * 2018-04-26 2022-09-13 セイコーエプソン株式会社 ロボット制御装置およびロボットシステム
EP3788447B1 (en) * 2018-04-30 2023-10-04 Vanderbilt University A control method for a robotic system
EP3876860A1 (en) 2018-11-06 2021-09-15 Bono, Peter L. Robotic surgical system and method
JP7172485B2 (ja) * 2018-11-15 2022-11-16 株式会社Ihi ロボット制御装置
US11669067B2 (en) * 2018-12-14 2023-06-06 Fujikin Incorporated Work management apparatus, work management method, and work management system
CN109945411B (zh) * 2019-03-25 2020-05-26 珠海格力电器股份有限公司 一种控制器的控制方法、装置、存储介质及控制器
WO2021044297A1 (en) 2019-09-03 2021-03-11 Auris Health, Inc. Electromagnetic distortion detection and compensation
WO2021056591A1 (zh) * 2019-09-29 2021-04-01 西门子股份公司 用于控制多轴运动机器的方法、装置和存储介质
JP7362107B2 (ja) * 2019-09-30 2023-10-17 Johnan株式会社 制御装置、制御方法およびプログラム
JP7113200B2 (ja) * 2019-11-21 2022-08-05 パナソニックIpマネジメント株式会社 ロボット制御方法及びロボット制御装置
JP6981709B1 (ja) * 2020-02-17 2021-12-17 コネクテッドロボティクス株式会社 制御プログラム及び調理システム
JP6954683B2 (ja) * 2020-02-17 2021-10-27 コネクテッドロボティクス株式会社 食器洗浄システム、食器洗浄システム用制御装置及びプログラム
JP2022060712A (ja) * 2020-10-05 2022-04-15 キオクシア株式会社 半導体製造装置
WO2022074448A1 (en) * 2020-10-06 2022-04-14 Mark Oleynik Robotic kitchen hub systems and methods for minimanipulation library adjustments and calibrations of multi-functional robotic platforms for commercial and residential environments with artificial intelligence and machine learning
US20220134557A1 (en) * 2020-10-30 2022-05-05 Sintokogio, Ltd. Control device, robot control system, program, and control method
EP4008493A1 (en) * 2020-12-07 2022-06-08 Electrolux Appliances Aktiebolag Kitchen assistance robot, robotic system, robot-assisted kitchen environment and method for operating the kitchen assistance robot
US11945117B2 (en) 2021-03-10 2024-04-02 Samsung Electronics Co., Ltd. Anticipating user and object poses through task-based extrapolation for robot-human collision avoidance
US20220288777A1 (en) * 2021-03-10 2022-09-15 Samsung Electronics Company, Ltd. Parameterized Waypoint Generation on Dynamically Parented Non-Static Objects for Robotic Autonomous Tasks
US11833691B2 (en) 2021-03-30 2023-12-05 Samsung Electronics Co., Ltd. Hybrid robotic motion planning system using machine learning and parametric trajectories
DE112022001174T5 (de) * 2021-04-27 2024-01-18 Nvidia Corporation Strategieebenen für die maschinensteuerung
CN114170561B (zh) * 2022-02-14 2022-05-06 盈嘉互联(北京)科技有限公司 一种应用于智能建筑的机器视觉行为意图预测方法
WO2024062632A1 (ja) * 2022-09-22 2024-03-28 日本電気株式会社 制御装置、制約条件選択装置、データ生成装置、制御方法、制約条件選択方法、データ生成方法及び記憶媒体

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE3240251A1 (de) * 1982-10-30 1984-05-03 Deutsche Forschungs- und Versuchsanstalt für Luft- und Raumfahrt e.V., 5000 Köln Verfahren zum programmieren von bewegungen und erforderlichenfalls von bearbeitungskraeften bzw. -momenten eines roboters oder manipulators und einrichtung zu dessen durchfuehrung
JPS59157715A (ja) 1983-02-25 1984-09-07 Hitachi Ltd ロボツトの直接教示方法
JPH01146645A (ja) * 1987-12-03 1989-06-08 Fujitsu Ltd ならい制御方式
JPH02250782A (ja) 1989-03-20 1990-10-08 Fanuc Ltd 産業用ロボットの手動介入方式
JPH06190753A (ja) * 1992-12-25 1994-07-12 Fujitsu Ltd ロボット制御装置
US5495410A (en) * 1994-08-12 1996-02-27 Minnesota Mining And Manufacturing Company Lead-through robot programming system
JPH09325806A (ja) * 1996-06-06 1997-12-16 Nippon Telegr & Teleph Corp <Ntt> ロボット教示再生方法及び装置
JPH10254527A (ja) * 1997-03-10 1998-09-25 Kawasaki Heavy Ind Ltd ロボットの教示装置
JP3602687B2 (ja) 1997-05-09 2004-12-15 三菱電機株式会社 自動機の作業支援装置
JP3820422B2 (ja) 1998-12-08 2006-09-13 株式会社東芝 マニピュレータの教示・再生装置及びその教示・再生方法
US6285920B1 (en) * 2000-02-18 2001-09-04 Fanuc Robotics North America Method of robot teaching with motion constraints
JP4670136B2 (ja) * 2000-10-11 2011-04-13 ソニー株式会社 オーサリング・システム及びオーサリング方法、並びに記憶媒体
US6385508B1 (en) * 2000-10-31 2002-05-07 Fanuc Robotics North America, Inc. Lead-through teach handle assembly and method of teaching a robot assembly
JP2003305678A (ja) 2002-04-11 2003-10-28 Ricoh Co Ltd ロボット及びロボットの制御方法
JP2004049731A (ja) * 2002-07-23 2004-02-19 Yaskawa Electric Corp 肢体駆動装置の教示方法
JP2004148466A (ja) * 2002-10-31 2004-05-27 Yaskawa Electric Corp ロボット制御装置
JP2005148789A (ja) 2003-11-11 2005-06-09 Fanuc Ltd 音声入力によるロボット教示プログラム編集装置
JP2006082185A (ja) 2004-09-16 2006-03-30 Yaskawa Electric Corp ロボット誘導方法
JP4210270B2 (ja) * 2005-06-07 2009-01-14 ファナック株式会社 ロボット制御装置及びロボット制御方法
JP2006344136A (ja) * 2005-06-10 2006-12-21 Fanuc Ltd ロボット制御装置
JP2007190662A (ja) 2006-01-23 2007-08-02 Yaskawa Electric Corp 産業用ロボットおよびたわみ補正方法
JP2009181526A (ja) 2008-02-01 2009-08-13 Panasonic Corp ロボットシステム
US8175749B2 (en) 2008-02-28 2012-05-08 Panasonic Corporation Control apparatus and control method for robot arm, robot, control program for robot arm, and integrated electronic circuit for controlling robot arm

Also Published As

Publication number Publication date
US20120173021A1 (en) 2012-07-05
US8290621B2 (en) 2012-10-16
JP4699572B2 (ja) 2011-06-15
CN102300679B (zh) 2014-12-10
US20110208355A1 (en) 2011-08-25
US8175750B2 (en) 2012-05-08
EP2481531A2 (en) 2012-08-01
JP2011088273A (ja) 2011-05-06
CN102300679A (zh) 2011-12-28
JPWO2011036865A1 (ja) 2013-02-14
WO2011036865A1 (ja) 2011-03-31

Similar Documents

Publication Publication Date Title
JP5740554B2 (ja) ロボットアームの制御装置及び制御方法、ロボット、ロボットアームの制御プログラム、及び、ロボットアーム制御用集積電子回路
JP4531126B2 (ja) ロボットアームの制御装置及び制御方法、ロボット、ロボットアームの制御プログラム、及びロボットアーム制御用集積電子回路
JP4584354B2 (ja) ロボットアームの制御装置及び制御方法、ロボット、ロボットアームの制御プログラム、並びに、集積電子回路
JP4568795B2 (ja) ロボットアームの制御装置及び制御方法、ロボット、ロボットアームの制御プログラム、並びに、集積電子回路
JP4759660B2 (ja) ロボットアーム制御用の装置、方法、プログラム及び集積電子回路、並びに、組立ロボット
JP4512672B2 (ja) 掃除機の制御装置及び制御方法、掃除機、掃除機の制御プログラム、及び、集積電子回路
JP4361132B2 (ja) ロボットアームの制御装置及び制御方法、ロボット、及び制御プログラム
JP5165160B2 (ja) ロボットアームの制御装置及び制御方法、ロボット、ロボットアーム制御プログラム、並びに、集積電子回路
JPWO2013035244A1 (ja) ロボットアームの制御装置及び制御方法、ロボット、制御プログラム、並びに、集積電子回路
JP2018167334A (ja) 教示装置および教示方法
JP2016221653A (ja) ロボット制御装置およびロボットシステム
WO2011021376A1 (ja) ロボットアームの制御装置及び制御方法、家事ロボット、ロボットアームの制御プログラム、及び、ロボットアーム制御用集積電子回路
JP7185749B2 (ja) ロボットシステム及びロボットシステムの制御方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20130806

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20140304

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140603

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140801

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20141008

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20141014

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20150127

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20150205

R151 Written notification of patent or utility model registration

Ref document number: 5740554

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151