(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B1)
(11)【特許番号】
(24)【登録日】2023-12-07
(45)【発行日】2023-12-15
(54)【発明の名称】ロボット制御装置、ロボット制御方法、およびプログラム
(51)【国際特許分類】
B25J 9/16 20060101AFI20231208BHJP
【FI】
B25J9/16
(21)【出願番号】P 2023085428
(22)【出願日】2023-05-24
【審査請求日】2023-05-24
【早期審査対象出願】
(73)【特許権者】
【識別番号】314012076
【氏名又は名称】パナソニックIPマネジメント株式会社
(74)【代理人】
【識別番号】110002000
【氏名又は名称】弁理士法人栄光事務所
(72)【発明者】
【氏名】薮田 拓磨
(72)【発明者】
【氏名】桑田 純哉
(72)【発明者】
【氏名】海老名 明弘
(72)【発明者】
【氏名】西尾 宣紀
(72)【発明者】
【氏名】横田 栞
(72)【発明者】
【氏名】亀村 雄太
【審査官】國武 史帆
(56)【参考文献】
【文献】特開2019-057262(JP,A)
【文献】特開平02-303779(JP,A)
【文献】特開平07-205071(JP,A)
【文献】特開平03-131484(JP,A)
【文献】特開平09-311708(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
B25J 1/00 - 21/02
G05B 19/18 - 19/46
(57)【特許請求の範囲】
【請求項1】
ロボット装置による操作対象の第1の座標系における位置情報、
前記ロボット装置を構成する部位の設定情報、および、前記
部位の名称情報を受け付ける入力部と、
前記ロボット装置を構成する部位の名称情報に対応付けて前記部位のパラメータおよび座標変換フレームを記憶しているデータベースから、前記入力部にて受け付けた前記名称情報に対応した前記部位のパラメータ
および
座標変換フレームを取得する取得部と、
前記取得部が取得した座標変換フレームから、前記第1の座標系および前記部位に対応する第2の座標系との間の差分値である補正値を特定し、前記入力部にて受け付けた前記部位の設定情報、前記取得部にて取得した前記部位のパラメータ、および、特定した前記補正値に基づいて、前記第1の座標系における位置情報から前記第2の座標系における位置情報に変換するための変換テーブルを生成する生成部と、
前記生成部が生成した前記変換テーブルを用いて、前記第1の座標系における位置情報を前記第2の座標系に変換した位置情報に変換し、当該変換した
前記第2の座標系における位置情報を用いて、前記ロボット装置を構成する部位に対する制御命令を生成する制御部と、
を有するロボット制御装置。
【請求項2】
前記ロボット装置は、ロボットアームと、前記ロボットアームの先端部に設けられるエンドエフェクタを含んで構成され、
前記第1の座標系は、前記ロボット装置が設置されるシステムのシステム座標系であり、
前記第2の座標系は、前記ロボットアームの基準座標系、前記ロボットアームの先端部の先端座標系、前記エンドエフェクタの基準座標系、前記エンドエフェクタの任意の操作位置を原点とした目標座標系のいずれかである、
請求項1に記載のロボット制御装置。
【請求項3】
前記エンドエフェクタは、ロボットハンドまたはカメラである、請求項2に記載のロボット制御装置。
【請求項4】
前記データベースは、前記ロボット制御装置と通信可能に構成された外部装置に設けられ、
前記取得部は、前記入力部に
て前記部位の設定情報および前記部位の名称情報を受け付けた際に、前記部位のパラメータ、および
前記座標変換フレームを前記データベースから取得
する、
請求項1に記載のロボット制御装置。
【請求項5】
前記データベースにて、前記ロボット装置を構成する部位のパラメータとして当該部位に対応する第2の座標系における姿勢情報
が、
当該部位の名称情報
に対応付けられる、請求項1に記載のロボット制御装置。
【請求項6】
前記データベースには、前記ロボット装置を構成する部位に対して、
当該部位の姿勢情報と
当該部位の名称情報の複数の対が
記憶される、請求項5に記載のロボット制御装置。
【請求項7】
ロボット装置による操作対象の第1の座標系における位置情報、
前記ロボット装置を構成する部位の設定情報、および、前記
部位の名称情報を受け付け、
前記ロボット装置を構成する部位の名称情報に対応付けて前記部位のパラメータおよび座標変換フレームを記憶しているデータベースから、受け付けた前記名称情報に対応した前記部位のパラメータ
および
座標変換フレームを取得し、
取得した前記座標変換フレームから、前記第1の座標系および前記部位に対応する第2の座標系との間の差分値である補正値を特定し、受け付けた前記部位の設定情報、取得した前記部位のパラメータ、および、特定した前記補正値に基づいて、前記第1の座標系における位置情報から前記第2の座標系における位置情報に変換するための変換テーブルを生成し、
生成した前記変換テーブルを用いて、前記第1の座標系における位置情報を前記第2の座標系に変換した位置情報に変換し、当該変換した
前記第2の座標系における位置情報を用いて、前記ロボット装置を構成する部位に対する制御命令を生成する、
ロボット制御方法。
【請求項8】
コンピュータに、
ロボット装置による操作対象の第1の座標系における位置情報、
前記ロボット装置を構成する部位の設定情報、および、前記
部位の名称情報を受け付け、
前記ロボット装置を構成する部位の名称情報に対応付けて前記部位のパラメータおよび座標変換フレームを記憶しているデータベースから、受け付けた前記名称情報に対応した前記部位のパラメータ
および
座標変換フレームを取得し、
取得した前記座標変換フレームから、前記第1の座標系および前記部位に対応する第2の座標系との間の差分値である補正値を特定し、受け付けた前記部位の設定情報、取得した前記部位のパラメータ、および、特定した前記補正値に基づいて、前記第1の座標系における位置情報から前記第2の座標系における位置情報に変換するための変換テーブルを生成し、
生成した前記変換テーブルを用いて、前記第1の座標系における位置情報を前記第2の座標系に変換した位置情報に変換し、当該変換した
前記第2の座標系における位置情報を用いて、前記ロボット装置を構成する部位に対する制御命令を生成する、
ロボット制御方法を実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、ロボット制御装置、ロボット制御方法、およびプログラムに関する。
【背景技術】
【0002】
従来、ロボット等の装置を用いて荷物の運搬など、人に代わって様々な動作を行わせるシステムが普及している。このようなシステムにおいて、ロボットの動作に係るパラメータを、ロボットの構成などを考慮してユーザが設定して用いることが行われている。例えば、特許文献1では、ロボット装置の制御に係るデータについて、制御量と座標変換のデータの書き換えや選択を容易にするための構成が開示されている。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
本開示は、上述した従来の事情を鑑みて案出され、ロボット制御に係るパラメータ設定を容易にし、従来よりもロボット装置を含むシステムの利便性を向上させることを目的とする。
【課題を解決するための手段】
【0005】
本開示は、ロボット装置による操作対象の第1の座標系における位置情報、および、前記ロボット装置を構成する部位の動作設定の入力を受け付ける入力部と、前記動作設定に基づいて、前記ロボット装置を構成する部位のパラメータ、および前記ロボット装置を構成する部位に対応した第2の座標系と前記第1の座標系との間の座標変換のための補正値を取得する取得部と、前記補正値、前記パラメータ、および前記動作設定に基づいて、前記第1の座標系における位置情報から前記第2の座標系における位置情報に変換するための変換テーブルを生成する生成部と、前記変換テーブルを用いて、前記第1の座標系における位置情報を前記第2の座標系に変換した位置情報に変換し、当該変換した位置情報を用いて、前記ロボット装置を構成する部位に対する制御命令を生成する制御部と、を有するロボット制御装置を提供する。
【0006】
また、本開示は、ロボット装置による操作対象の第1の座標系における位置情報、および、前記ロボット装置を構成する部位の動作設定の入力を受け付け、前記動作設定に基づいて、前記ロボット装置を構成する部位のパラメータ、および前記ロボット装置を構成する部位に対応した第2の座標系と前記第1の座標系との間の座標変換のための補正値を取得し、前記補正値、前記パラメータ、および前記動作設定に基づいて、前記第1の座標系における位置情報から前記第2の座標系における位置情報に変換するための変換テーブルを生成し、前記変換テーブルを用いて、前記第1の座標系における位置情報を前記第2の座標系に変換した位置情報に変換し、当該変換した位置情報を用いて、前記ロボット装置を構成する部位に対する制御命令を生成する、ロボット制御方法を提供する。
【0007】
また、本開示は、コンピュータに、ロボット装置による操作対象の第1の座標系における位置情報、および、前記ロボット装置を構成する部位の動作設定の入力を受け付け、前記動作設定に基づいて、前記ロボット装置を構成する部位のパラメータ、および前記ロボット装置を構成する部位に対応した第2の座標系と前記第1の座標系との間の座標変換のための補正値を取得し、前記補正値、前記パラメータ、および前記動作設定に基づいて、前記第1の座標系における位置情報から前記第2の座標系における位置情報に変換するための変換テーブルを生成し、前記変換テーブルを用いて、前記第1の座標系における位置情報を前記第2の座標系に変換した位置情報に変換し、当該変換した位置情報を用いて、前記ロボット装置を構成する部位に対する制御命令を生成する、ロボット制御方法を実行させるためのプログラムを提供する。
【0008】
なお、以上の構成要素の任意の組み合わせ、本開示の表現を方法、装置、システム、記憶媒体、コンピュータプログラムなどの間で変換したものもまた、本開示の態様として有効である。
【発明の効果】
【0009】
本開示によれば、従来よりもロボット制御に係るパラメータ設定を容易にし、従来よりもロボット装置を含むシステムの利便性を向上させることが可能となる。
【図面の簡単な説明】
【0010】
【
図1】ロボットのパラメータ設定における座標変換を説明するための概略図
【
図2】本発明の一実施の形態に係るシステム構成の例を示すブロック図
【
図3】本発明の一実施の形態に係るシステムの動作に係るシーケンス図
【
図4】本発明の一実施の形態に係る制御システムの処理のフローチャート
【
図5】本発明の一実施の形態に係る設定画面の構成例を示す概略図
【
図6】本発明の一実施の形態に係る設定画面の構成例を示す概略図
【
図7】本発明の一実施の形態に係る設定画面の構成例を示す概略図
【
図8】本発明の一実施の形態に係る設定画面の構成例を示す概略図
【
図9】本発明の一実施の形態に係る設定画面の構成例を示す概略図
【発明を実施するための形態】
【0011】
(本開示に至る経緯)
従来、人に代わり、ロボットを用いて様々な動作を行わせるシステムが普及している。ロボットの制御に関し、ロボットの移動位置やロボットにて作業を行わせる対象の位置情報などを、ユーザが予め設定することが行われている。1つのロボットではその構成や、ロボットの先端位置に設けられた機能部(以下、エンドエフェクタとも称する)などに応じて、様々な可動範囲や動作を提供することができる。更には、1つの対象に対して、複数台のロボットが連携して作業を行う場合もある。このようなシステムにおいて、ロボットの構成や数に応じて、複数の座標系が規定され、それらの座標系間の値を変換しながら用いられている。ユーザは、ロボットの制御のためのパラメータを、各座標系の関係を考慮に入れながら設定する必要があり、設定に関する高い知識や習熟が求められていた。例えば、特許文献1では、ユーザによる設定に際し、各座標系の関係を考慮した操作性については十分に検討されていない。
【0012】
以下、添付図面を適宜参照しながら、本開示に係るロボット制御方法、ロボット制御装置、およびプログラムを具体的に開示した実施の形態を詳細に説明する。但し、必要以上に詳細な説明は省略する場合がある。例えば、既によく知られた事項の詳細説明、あるいは、実質的に同一の構成に対する重複説明を省略する場合がある。これは、以下の説明が不必要に冗長になることを避け、当業者の理解を容易にするためである。なお、添付図面および以下の説明は、当業者が本開示を十分に理解するために提供されるものであって、これらにより特許請求の範囲に記載の主題を限定することは意図されない。
【0013】
<実施の形態1>
[座標変換の例]
図1は、従来の構成と本発明の一実施の形態に係る座標変換を説明するための概略図である。ここでは、1つのロボット装置において、ロボットアームの先端部にエンドエフェクタの一例としてのロボットハンドが設けられている例を示す。
図1(a)は従来の座標変換の例を示し、
図1(b)は本発明の一実施の形態に係る座標変換の例を示す。
【0014】
ロボット装置1は、ロボットアーム2と、ロボットハンド3を含んで構成される。ロボットアーム2は、例えば、6軸にて構成される。ロボットハンド3は、対象を把持可能に構成され、本実施の形態では、2指を備える例を示す。なお、ロボットハンド3の構成は特に限定するものではなく、指の数が3以上であってもよいし、指が関節を備えた構成であってもよい。また、ロボットアーム2の先端部に備えられるエンドエフェクタは、ロボットハンドに限定するものではなく、棒状の部位であってもよいし、カメラなど他の機能を有するものであってもよい。また、ロボット装置1による操作対象として、対象物4を例に挙げて説明する。
【0015】
図1に示すロボット装置1の例では、各構成要素に対応して、4つの座標系C1、C2、C3、C4が規定されるものとする。座標系C1は、ロボットアーム2の基準位置における座標系であり、「アーム基準座標系」とも称する。座標系C2は、ロボットアーム2の先端位置における座標系であり、「アーム先端座標系」とも称する。座標系C3は、ロボットハンド3の基準位置における座標系であり、「ハンド基準座標系」とも称する。座標系C4は、ロボットハンド3の目標位置(例えば、操作を行う位置)における座標系であり、「ハンド目標座標系」とも称する。ここでの座標系はx軸、y軸、z軸の3軸から構成される3次元座標系とし、各座標系のパラメータは互いに変換可能であるとする。
【0016】
また、
図1では、示していないが、複数台のロボット装置が用いられる際に、それらが設置される空間全体に対して設定される座標系C0も規定される。座標系C0は、「システム座標系」とも称する。なお、上記の座標系の設定は一例であり、ロボット装置の構成や、配置などに応じて、更に多くの座標系が規定されてよい。また、一部の座標系が一致していてもよい。
【0017】
図1(a)に示す従来構成において、例えば、ロボット装置1による操作対象としての対象物4の位置座標をパラメータTarget_poseにて示したとする。パラメータTarget_poseには、各軸の座標およびロール(roll)、ピッチ(pitch)、ヨー(yaw)の値が規定されてよい。ここでは一例として、パラメータTarget_poseは、システム座標系におけるパラメータとして説明する。
【0018】
従来の手法において、システム座標系のパラメータTarget_poseに対応して、ロボット装置1の各部位の制御パラメータを設定する場合、各座標系の原点位置を特定した上で、パラメータTarget_poseを、座標系C4→C3→C2→C1の順に座標変換を行う必要がある。したがって、パラメータTarget_poseを、座標系C1の制御パラメータとするには、座標変換T1、T2、T3、T4に示すように、計4回の座標変換が必要となる。言い換えると、ユーザは、各座標系の関係などを考慮して、それぞれの座標系に対応して変換させた制御パラメータを設定する必要がある。このとき、ロボットアームの構成やエンドエフェクタの取り付け方などによって、座標系の規定や関係性が異なるため、変換行列の適用の順番などが変化する。その結果、ロボット装置のパラメータ設定には、ロボットの構成やパラメータ設定の一定程度の知識や習熟度合いが要求される。
【0019】
これに対し、
図1(b)に示す本発明の一実施の形態では、例えば、ユーザからシステム座標系におけるパラメータTarget_poseが指定された際に、システム側で、所望の座標変換を行うことで、従来のような座標系間の関係をユーザが考慮して設定を行う手間を省くように構成する。例えば、システム座標系のパラメータTarget_poseを、座標系C1の値となるように、システム側で1回の座標変換T1を行う。つまり、ユーザは、ロボット装置1の構成を考慮することなく操作対象の位置情報を設定し、ユーザ主体の座標変換を不要とする構成を実現する。
【0020】
[装置構成]
図2は、本発明の実施の形態1に係るシステム構成の例を示す概略図である。本実施の形態に係るシステムは、ロボット制御装置100、ロボット装置200、210、およびデータベース装置300を含んで構成される。
【0021】
ロボット制御装置100は、外部装置であるデータベース装置300と連携し、ロボット装置200、210の動作を制御する。ロボット制御装置100は、例えば、Personal Computer(以下、PC)、もしくは専用装置などで構成されてよい。ロボット制御装置100は、処理部101、記憶部102、外部IF(Interface)103、操作部104、表示部105、および通信部106を含んで構成される。ロボット制御装置100が備える各部位は、不図示の内部バスを介して互いに通信可能に構成されてよい。
【0022】
処理部101は、記憶部102に格納された各種プログラムやデータを読み出して実行することにより、後述する各種機能を実行する。処理部101は、例えば、Central Processing Unit(以下、CPU)、Micro Processing Unit(以下、MPU)、Digital Signal Processor(以下、DSP)、Graphical Processing Unit(以下、GPU)、あるいはField Programmable Gate Array(以下、FPGA)などを用いて構成されてよい。
【0023】
記憶部102は、各種データを記憶、保持するための記憶領域であり、例えば、不揮発性の記憶領域であるRead Only Memory(以下、ROM)やHard Disk Drive(以下、HDD)、揮発性の記憶領域であるRandom Access Memory(以下、RAM)などから構成されてよい。
【0024】
外部IF103は、ロボット装置200、210と接続され、各種データの送受信が可能なように構成されるインタフェースである。外部IF103による接続は、有線/無線は問わず、任意の通信規格が用いられてよい。操作部104は、マウスやキーボードなどから構成され、ユーザによる指示やデータの入力を受け付ける際に用いられる。表示部105は、各種データや処理結果などを表示する。
【0025】
通信部106は、有線/無線などのネットワーク400を介して外部装置との通信を行い、各種データや信号の送受信を行う。通信部106による通信方式は、特に限定するものではなく、複数の通信方式に対応していてよい。例えば、Wide Area Network(以下、WAN)、Local Area Network(以下、LAN)、電力線通信、近距離無線通信(例えば、Bluetooth(登録商標)やWi-Fi(登録商標))などが用いられてよい。本実施の形態では、少なくともネットワーク400を介して、データベース装置300に接続される。
【0026】
ロボット装置200、210は、対象に対して任意の操作を行わせることが可能なシステムであり、例えば、
図1に示したような構成を有する。ロボット装置200は、ロボットアーム201、および、エンドエフェクタの一例であるロボットハンド202を含んで構成される。同様に、ロボット装置210は、ロボットアーム211、および、エンドエフェクタの一例であるロボットハンド212を含んで構成される。本実施の形態では、2つのロボット装置200、210を示すが、更に多くのロボット装置が設けられてよい。また、本例では、ロボット装置200とロボット装置210は同じ構成であるものとして説明するが、別個の機能を有していてもよい。例えば、後述する設定画面にて設定が可能なカメラやタッチセンシング動作が可能な検出器などが、エンドエフェクタとして用いられてもよい。更には、1つのロボットアームの先端に、2つ以上のエンドエフェクタが設けられてもよい。また、本実施の形態では、複数のロボット装置を1つのロボット制御装置100にて制御する例を示すが、1つのロボット装置を1つのロボット制御装置にて制御するような構成であってもよい。
【0027】
データベース装置300は、ロボット装置の制御に係る各種データを保持し、管理している。本実施の形態では、データベース装置300は、ロボット装置200、210それぞれの構成等に基づくデータを管理し、ロボット制御装置100からの要求に応じて提供する。データベース装置300は、クラウド上のサーバ装置として構成されてよい。
【0028】
ネットワーク400は、例えば、インターネットなどから構成され、ロボット制御装置100とデータベース装置300との間のデータの送受信の経路となる。なお、ロボット制御装置100と、各ロボット装置との間の接続は、ネットワーク400を介して行われてもよい。
【0029】
[処理シーケンス]
図3は、本実施の形態に係るシステムの各装置間の処理シーケンスを示す図である。ここでは、制御可能な複数のロボット装置のうち、ロボット装置200を例に挙げて説明する。
【0030】
ロボット制御装置100は、操作部104を介してユーザからシステム起動の指示を受け付ける(ステップS301)。本指示は、処理部101にて生成された画面を介して受け付けてよい。
【0031】
ロボット制御装置100は、ロボット装置200から接続状況に関する情報を取得する(ステップS302)。ここで取得される情報は、接続されているロボット装置200の構成や機能に関する情報を含んでよい。ロボット装置200は、ロボット制御装置100からの要求に応じて各種情報を送信してもよいし、ロボット装置200側からロボット制御装置100を監視し、所定のタイミングで各種情報を送信してもよい。
【0032】
ロボット制御装置100は、接続されているロボット装置200の情報に基づいて、ロボット情報に対する設定画面を、表示部105に表示させる(ステップS303)。ここで表示される設定画面は、例えば、
図5~
図9を用いて説明する各種設定画面に遷移するためのトップ画面(不図示)であってよい。
【0033】
ロボット制御装置100は、操作部104を介して設定開始の指示を受け付ける(ステップS304)。
【0034】
ロボット制御装置100は、ステップS304にて受け付けた指示に起因して、ステップS302にて受信したロボット装置の情報に基づいてデータベース装置300に対し、設定可能なデバイスのリストを要求する(ステップS305)。
【0035】
データベース装置300は、ロボット制御装置100からの要求に応じて、設定可能なデバイスのリストを、ロボット制御装置100に提供する(ステップS306)。リストには、例えば、接続されているロボット装置を構成する部位のうち、設定可能な部位、その設定項目、予め規定されたパラメータセット(固定値/可変値含む)などの情報が含まれてよい。
【0036】
ロボット制御装置100は、ステップS306にて取得したリストに基づいて、設定画面を構成し、表示部105に表示させる(ステップS307)。
【0037】
ロボット制御装置100は、ステップS307にて表示された設定画面に対し、操作部104を介してロボット装置200の各部位に関する設定を受け付ける(ステップS308)。ここでの設定は、例えば、
図7~
図9に示すように、設定画面に設けられた「設定」のボタンが選択され、更に、所望の部位がリストから選択されることで行われる。設定の例については、設定画面と併せて後述する。
【0038】
ロボット制御装置100は、操作部104を介して、動作作成開始の指示を受け付ける(ステップS309)。動作作成開始の指示は、例えば、
図5や
図6に示すように、設定画面に設けられた「動作作成」のボタンが選択されることで行われる。
【0039】
ロボット制御装置100は、ステップS309にて受け付けた動作作成開始の指示に基づいて設定画面を構成し、表示部105に表示させる(ステップS310)。設定画面の具体例については、
図5、
図6を用いて後述する。
【0040】
ロボット制御装置100は、操作部104を介して、ロボット名称やロボットの動作などの各種設定の入力を受け付ける(ステップS311)。設定の具体例については、設定画面と併せて後述する。
【0041】
ロボット制御装置100は、操作部104を介して、入力された設定に基づくロボット装置の動作開始の指示を受け付ける(ステップS312)。ここでの動作開始の指示は、例えば、
図5に示すように、設定画面に設けられた「実行」ボタンが選択されることで行われる。
【0042】
ロボット制御装置100は、ステップS312にて受け付けた動作開始の指示に基づいて、設定画面を構成し、表示部105に表示させる(ステップS313)。ここでの表示画面としては、動作実行中である旨の画面(不図示)であってよい。
【0043】
ロボット制御装置100は、入力された設定に基づいて、データベース装置300に対して、座標変換フレームおよびロボットパラメータの呼び出しを行う。座標変換フレームは、ロボット装置の構成に対応して規定される座標系の定義や座標系間の関係を示すデータである。より具体的には、座標変換フレームの情報は、上述したような様々な座標系の名称を示し、座標変換フレームを特定することで、得られる座標値がどの座標系における値であるかを特定することができる。ロボットパラメータは、ロボット装置を構成する各部位の寸法(サイズ)や可動範囲、制約などを示す情報である。座標変換フレームおよびロボットパラメータの具体例については、
図5~
図9を用いて後述する。
【0044】
データベース装置300は、ロボット制御装置100からの要求に応じて、座標変換フレームおよびロボットパラメータを、ロボット制御装置100に提供する(ステップS315)。
【0045】
ロボット制御装置100は、ステップS315とステップS311にて取得した各種データを用いてロボット装置200に対する命令を生成する。更に、ロボット制御装置100は、生成した命令をロボット装置200に送信することで動作実行の命令を行う(ステップS316)。
【0046】
ロボット装置200は、ロボット制御装置100からの命令に従って、動作を実行する。その後、ロボット装置200は、動作が完了した後、その旨をロボット制御装置100へ通知する(ステップS317)。
【0047】
ロボット制御装置100は、ロボット装置200からの通知に基づいて画面を構成し、ロボット装置200における動作が完了したことを表示する(ステップS318)。ここでの表示画面としては、動作の結果(正常終了、異常終了、中断などを含む)を示す画面(不図示)であってよい。
【0048】
なお、
図3に示したシーケンスの一部の処理が別のタイミングにて実行されてもよいし、一部の処理が並び替えられてもよい。例えば、ステップS314およびステップS315の処理の一部は、ステップS305およびステップS306と一体として実行されてもよい。
【0049】
[処理フロー]
図4は、本実施の形態に係るロボット制御装置100による処理のフローチャートであり、
図3に示すシーケンスの一部に対応する。本処理フローは、例えば、ロボット制御装置100の処理部101が、記憶部102に格納された各種プログラムやデータを読み出して実行されることで実現されてよい。ここでは、説明を簡単にするため、処理主体をロボット制御装置100としてまとめて記載する。なお、本処理フローが開示される際には、
図3のステップS306までの処理が完了し、各ロボット装置に対する設定が可能な状態になり、また、ロボット装置も動作可能な状態になっているものとする。
【0050】
ロボット制御装置100は、ロボット装置に対する設定画面を表示する(ステップS401)。ここでの設定画面は、例えば、
図5~
図9の設定画面に遷移可能な画面であってよい。
【0051】
ロボット制御装置100は、ステップS401にて表示した設定画面を介して、ロボット装置に係る制御パラメータの設定を受け付ける(ステップS402)。ここでの設定には、例えば、システム座標系における操作対象の位置情報(具体的には、上述したTarget_poseのパラメータ)やその他の制御パラメータが含まれる。設定項目や設定値の具体例については、
図5~
図9を用いて後述する。更に、ロボット制御装置100は、動作開始の指示を受け付けることで、制御パラメータの設定が完了した旨の指示とする。
【0052】
ロボット制御装置100は、動作開始の指示を受け付けたことに応じて、ステップS402にて受け付けた設定に対応するロボット装置に対応する座標変換フレームおよびロボットパラメータの呼び出しを、データベース装置300に対して行う(ステップS403)。そして、ロボット制御装置100は、呼び出しに対応して、データベース装置300から各種情報を取得する。
【0053】
ロボット制御装置100は、ステップS402にて入力された情報と、ステップS403にて取得した情報に基づいて、各座標系の値を変換するための変換テーブルを生成する(ステップS404)。変換テーブルは、予め規定された座標変換フレームに対して、ロボットパラメータおよび設定情報を適用することで生成され、ロボット装置の各部位に対して規定されている座標系間のパラメータ変換の際に用いられる。座標変換フレームは、例えば、ロボット装置の複数の構成要素それぞれにて規定される座標系と、システム座標系の関係性、例えば、原点位置の相対距離や座標軸の向きなどに基づいて、これらの座標系間の変換テーブルを生成するように構成されてよい。変換前の座標系Aに対応する座標変換フレームAと、変換後の座標系Bに対応する座標変換フレームBを例に挙げる。座標変換フレームAと、座標変換フレームBを取得することにより、座標変換フレームAにおける座標変換フレームBの原点の位置を特定することができる。そして、この特定された原点を用いて補正値、すなわち、座標系間の差分値が算出され、変換テーブルの自動生成の際に用いられる。補正値には、x軸、y軸、z軸それぞれにおける原点間の差分および各軸回りの回転角の差分が含まれてよい。ロボット装置の構成に応じて、複数の変換テーブルが生成されてよい。例えば、システム座標系とアーム基準座標系の間の変換テーブル、システム座標系とハンド基準座標系の間の変換テーブルが生成されてよい。
【0054】
なお、変換テーブルの構成は、設定情報や指定されたロボット装置の構成や状態などに応じて、変動し得る。そのため、本実施の形態では、変換テーブルをロボット制御装置100にて予め保持する構成ではなく、設定情報が入力された後に、これに対応して、適宜生成する構成とする。このような構成により、設定の組み合わせに応じて様々なバリエーションが想定される変換テーブルを、予め保持しておく必要が無くなり、記憶領域のひっ迫等を抑制することが可能である。なお、ロボット装置の一連の動作や、直前の動作などによっては、変換テーブルの構成が変化しない場合がある。そのような場合には、一時的に変換テーブルを保持しておき、変換テーブルの生成処理に代えて、保持している変換テーブルを流用できるような構成としてもよい。
【0055】
ロボット制御装置100は、ステップS404にて生成した変換テーブルと、ステップS402にて受け付けた設定とに基づいて、ロボット装置に対する制御命令を生成する(ステップS405)。
【0056】
ロボット制御装置100は、ステップS405にて生成した制御命令を、動作させるロボット装置に送信し、当該制御命令に基づく動作を実行させる(ステップS406)。そして、本処理フローを終了する。
【0057】
[設定画面例]
本実施の形態に係るロボット装置の動作に係る設定画面の構成例について説明する。以下に示す各設定画面は、ロボット制御装置100の表示部105にて、ユーザが操作可能な状態にて表示される。以下の画面の例では、複数のロボット装置が利用可能に設けられている場合を想定している。また、
図2に示すように、ロボット装置が少なくともロボットアームと、エンドエフェクタの一例としてロボットハンドを備えている例を示す。
【0058】
図5および
図6は、各ロボット装置の動作のフローチャート、およびフローチャートに含まれるロボット装置の部位それぞれの動作に対する設定画面を示す。これらの図は、例えば、
図3に示した処理シーケンスのステップS309の工程にて利用される。
図7~
図9は、ロボット装置の部位それぞれの構成等に関する個別の設定画面を示す。これらの図は、例えば、
図3に示した処理シーケンスのステップS308の工程にて利用される。
【0059】
図5は、ロボット装置に対する一連の動作を設定するための設定画面500の構成例であり、ここでは、ロボットアームに対して設定を行う際の例を示している。領域510において、動作作成のためのボタン511が選択された状態である。ロボット装置は、ロボットアームやロボットハンドなどを動作させることで、1つまたは複数の動作を行うことが可能である。設定画面500では、このような1つまたは複数の動作を含んで構成されるワークフローを設定できる。領域510は、ワークフローを定義するための動作のリストが選択可能に示されている。本実施の形態において、ロボットアームの動作を示す「Move Arm」、ロボットハンドの動作を示す「Move Hand」、検出器の動作を示す「Detect sth」、条件判定を示す「Branch」、ループの開始・終了を示す「Loop Start」、「Loop End」が選択可能である。なお、ここで示される項目は一例であり、ロボット装置の構成に応じて変更されてよい。
【0060】
領域520は、現時点で設定されているワークフローを示す。本例では、「Move Arm」→「Move Hand」→「条件判定(Success?)」→「Move Arm」→「Move Hand」の順に動作を実行するワークフローが定義されている。また、本例においては、動作工程521が選択されており、これは、ロボットアームの動作を設定する状態を示している。なお、条件判定としての「Success?」はこれまでの動作が成功したか否かを判定し、成功した場合には、以降の動作が実行される。
【0061】
ロボットアームの動作工程521が設定対象として指定されていることに応じて、領域530には、ロボットアームに対する設定項目が表示されている。設定項目531は、動作を実施するロボットアームを指定する。設定項目532は、動作を実施するロボットアームの名称を指定する。設定項目533は、操作対象である対象物の情報、すなわち、上述したTarget_pose(各軸の座標値、およびロール(roll)、ピッチ(pitch)、ヨー(yaw)の値)が設定される。設定項目534は、ロボットアームの移動速度を設定する。設定項目535は、ロボットアームの移動に係る加速度を設定する。設定項目536は、ロボットアームの先端部に設けられた部位(ここでは、ロボットハンド)の構成を設定する。
図5に示す例の場合、ロボットハンドを一意に示す名称「hand1」と、そのロボットハンドに対応する座標系を一意に示す「hand_tcp」が指定されている。「hand_tcp」は、具体的には、
図1に示すハンド目標座標系の原点位置、すなわち、ロボットハンドの操作位置として移動させたい目標位置に対応する。なお、各設定項目の値は、他の設定項目や既に登録されたデータに基づいて、一意に特定されて表示されてもよい。また、各設定項目は一例であり、ロボット装置の構成に応じて、一部の設定項目が省略されてもよいし、他の設定項目が追加されてもよい。
【0062】
図6は、ロボット装置に対する一連の動作を設定するための設定画面600の構成例であり、ここでは、ロボットハンドに対して設定を行う際の例を示している。設定画面600において、領域610と領域620は、
図5に示した領域510と領域520と同様である。領域610において、動作作成のためのボタン611が選択された状態である。本例においては、設定済みのワークフローのうち、動作工程621が選択されており、これは、ロボットハンドの動作を設定する状態を示している。
【0063】
ロボットハンドの動作工程621が設定対象として指定されていることに応じて、領域630には、ロボットハンドに対する設定項目が表示されている。設定項目631は、動作を実施するロボットハンドを指定する。設定項目632は、動作を実施するロボットハンドの名称を指定する。設定項目633は、ロボットハンドが備える指の移動量を指定する。例えば、
図1に示すようなロボットハンドの場合、指間の距離が指定されてもよい。設定項目634は、ロボットハンドの手首の回転角を指定する。設定項目635は、ロボットハンドによる把持の力を設定する。なお、各設定項目の値は、他の設定項目や既に登録されたデータに基づいて、一意に特定されて表示されてもよい。また、各設定項目は一例であり、ロボット装置の構成に応じて、一部の設定項目が省略されてもよいし、他の設定項目が追加されてもよい。
【0064】
図7は、ロボット装置が備えるロボットアームのリストを示し、例えば、このリストに含まれるロボットアームを、例えば、
図5に示す設定画面500にて選択可能となる。
【0065】
領域710において、リスト設定のためのボタン711が選択された状態である。また、領域710には、ロボット装置が有する各部位の設定を行うために、各リストが示されている。本例では、ロボットアームを設定するための「Arm List」、ロボットハンドを設定するための「Hand List」、検出器を設定するための「Detect Tech List」、および、カメラを設定するための「Camera List」が選択可能である。ここでは、ボタン712が選択された状態である。なお、ここで示される項目は一例であり、ロボット装置の構成に応じて変更されてよい。
【0066】
領域720において、すでに登録されたロボットアームの設定が示されている。領域730において、設定可能なロボットアームのリストが示されている。本例では、設定可能なロボットアームとして「RobotA」、「RobotB1」、「RobotB2」の選択項目731~733が領域730に示されている。更に、領域720には、既に登録されたロボットアームの設定として、設定721~723が示されている。
【0067】
例えば、ロボットアームに対する設定721の設定パラメータとして、以下が含まれている。
設定対象アーム:RobotA
名称:arm1
姿勢:(0,0,0,0,0,0)
ポート:1-10:1.0
【0068】
設定対象アームは、設定対象のロボットアームを示す。名称は、ロボットアームに任意に設定された名称を示す。姿勢は、ロボットアームの基準となる姿勢を示す。ポートは、ロボットアームが接続されたポート(インタフェース)の情報を示す。他の設定も同様の項目の設定パラメータを含む。
【0069】
図8は、ロボット装置が備えるロボットハンドのリストを示し、例えば、このリストに含まれるロボットハンドを、例えば、
図6に示す設定画面600にて選択可能となる。領域810の構成は、
図7の設定画面700の領域710と同様である。領域810において、リスト設定のためのボタン811が選択された状態である。更に、ロボットハンドのリストを設定するためのボタン812が選択された状態である。
【0070】
領域820において、すでに登録されたロボットハンドの設定が示されている。領域830において、設定可能なロボットハンドのリストが示されている。本例では、設定可能なロボットハンドとして「RobotHandA」、「RobotHandB」、「RobotHandC」の選択項目831~833が領域830に示されている。更に、領域820には、既に登録されたロボットハンドの設定として、設定821~823が示されている。
【0071】
例えば、ロボットハンドに対する設定821の設定パラメータとして、以下が含まれている。
設定対象ハンド:RobotHandA
名称:hand1
姿勢:(0,0,0,0,0,0)
設置先アーム:arm1/tool_link
【0072】
設定対象ハンドは、設定対象のロボットハンドを示す。名称は、ロボットハンドに任意に設定された名称情報を示す。姿勢は、ロボットハンドの基準となる姿勢、すなわち、ロボットアームに対して設置されている姿勢を示す。設置先アームは、ロボットハンドが設置されたロボットアームの情報を示す。具体的には、設置先のアームを一意に示す「arm1」と、そのロボットアームの座標系を一意に示す「tool_link」が示されている。「tool_link」は、具体的には、
図1に示すアーム先端座標系の原点位置、すなわち、ロボットハンドが設置されるハンド基準座標系の原点位置を特定するための位置情報となる。他の設定も同様の設定パラメータを含む。
【0073】
図9は、ロボット装置が備えるカメラ(不図示)のリストを示す。領域910の構成は、
図7の設定画面700の領域710と同様である。領域910において、リスト設定のためのボタン911が選択された状態である。更に、カメラのリストを設定するためのボタン912が選択された状態である。
【0074】
領域920において、すでに登録されたカメラの設定が示されている。領域930において、設定可能なカメラのリストが示されている。本例では、設定可能なカメラとして「cameraA」、「cameraB」の選択項目931~932が領域930に示されている。更に、領域920には、既に登録されたカメラの設定として、設定921~923が示されている。
【0075】
例えば、カメラに対する設定921の設定パラメータとして、以下が含まれている。
設定対象カメラ:cameraA
名称:camera1
姿勢:(0,0,0.05,0,0,0)
設置先アーム:armA/tool_link
【0076】
設定対象カメラは、設定対象のカメラを示す。名称は、カメラに任意に設定された名称情報を示す。姿勢は、カメラの基準となる姿勢、すなわち、ロボットアームに対して設置されている姿勢を示す。設置先アームは、カメラが設置されたロボットアームの情報を示す。具体的には、設置先のアームを一意に示す「armA」と、そのロボットアームの座標系を一意に示す「tool_link」が示されている。「tool_link」は、具体的には、
図1に示すアーム先端座標系に対応する。他の設定も同様の設定パラメータを含む。
【0077】
例えば、ユーザは、ロボット装置の動作設定を行う際に、操作対象のシステム座標系における位置情報(具体的には、Target_pose)を指定すればよく、
図1に示すようなロボット装置の構成に対応した各座標系の制御パラメータを指定する必要は無くなる。そのため、システム構成に応じて、ユーザ側で個別に座標変換を行った上で、パラメータ設定や動作プログラムの作成を行う必要が無くなる。
【0078】
以上、本実施の形態により、ロボット制御装置(例えば、100)は、ロボット装置(例えば、200)による操作対象の第1の座標系(例えば、システム座標系)における位置情報(例えば、Target_pose)、および、ロボット装置を構成する部位(例えば、201、202)の動作設定(例えば、531~536、631~635)の入力を受け付ける入力部(例えば、500、600、101、104、105)と、動作設定に基づいて、ロボット装置を構成する部位のパラメータ(例えば、ロボットパラメータ)、およびロボット装置を構成する部位に対応した第2の座標系(例えば、アーム基準座標系)と第1の座標系との間の座標変換のための補正値(例えば、座標変換フレームに基づく座標系間の差分)を取得する取得部(例えば、101、106)と、補正値、パラメータ、および動作設定に基づいて、第1の座標系における位置情報から第2の座標系における位置情報に変換するための変換テーブル(例えば、変換テーブル)を生成する生成部(例えば、101)と、変換テーブルを用いて、第1の座標系における位置情報を第2の座標系に変換した位置情報に変換し、当該変換した位置情報を用いて、ロボット装置を構成する部位に対する制御命令を生成する制御部(例えば、101)と、を有する。
【0079】
これにより、従来よりもロボット制御に係るパラメータ設定を容易にし、従来よりもロボット装置を含むシステムの利便性を向上させることが可能となる。特に、ユーザが、ロボット装置の構成を考慮して、構成要素ごとの座標変換を行ってパラメータ設定を行う必要が無くなり、設定の負担を軽減することが可能となる。
【0080】
また、ロボット装置は、ロボットアーム(例えば、201)と、ロボットアームの先端部に設けられるエンドエフェクタ(例えば、202)を含んで構成され、第1の座標系は、ロボット装置が設置されるシステムのシステム座標系であり、第2の座標系は、ロボットアームの基準座標系、ロボットアームの先端部の先端座標系、エンドエフェクタの基準座標系、エンドエフェクタの任意の操作位置を原点とした目標座標系のいずれかである。また、エンドエフェクタは、ロボットハンドまたはカメラである。
【0081】
これにより、ロボット装置の構成に応じた座標系に対して、システム座標系の座標情報をシステム側で変換することが可能となる。
【0082】
また、取得部は、入力部による入力ごとに、ロボット装置を構成する部位のパラメータ、および複数の座標系の情報を外部装置(例えば、データベース装置)から取得し、生成部は、外部装置から取得したロボット装置を構成する部位のパラメータ、および複数の座標系の情報から特定される座標系間の補正値を用いて、変換テーブルを生成する。
【0083】
これにより、動作設定に応じて様々な組み合わせが想定し得る変換テーブルを保持する必要がなくなり、ロボット制御装置の記憶領域のひっ迫を抑制することが可能となる。また、その時点における動作設定およびロボット装置の組み合わせに対応した変換テーブルを適切に生成して利用することが可能となる。
【0084】
また、ロボット装置を構成する部位は、当該部位に対応する第2の座標系における姿勢情報と、名称情報が対応付けて設定され、入力部は、名称情報が指定されることにより、当該名称情報に対応する部位の動作設定を受け付ける。また、1つの部位に対して、姿勢情報と名称情報の複数の対が設定可能である。
【0085】
これにより、ユーザが所望の名称情報と姿勢情報を設定でき、ロボット装置に対する動作設定の際に、名称情報を指定するのみで簡易にパラメータ設定を行うことが可能となる。また、同じロボット装置の部位に対しても、様々な姿勢情報を設定でき、動作設定の際の利便性を向上させることが可能となる。
【0086】
<その他の実施形態>
また、上述した1つ以上の実施の形態の機能を実現するためのプログラムおよびアプリケーションを、ネットワークまたは記憶媒体などを用いてシステムまたは装置に供給し、そのシステムまたは装置のコンピュータにおける1つ以上のプロセッサがプログラムを読出し実行する処理でも実現可能である。
【0087】
また、1つ以上の機能を実現する回路(例えば、Application Specific Integrated Circuit(以下、ASIC)、またはField Programmable Gate Array(以下、FPGA))によって実現してもよい。
【0088】
以上、図面を参照しながら各種の実施形態について説明したが、本開示は係る例に限定されないことは言うまでもない。当業者であれば、特許請求の範囲に記載された範疇内において、各種の変更例、修正例、置換例、付加例、削除例、均等例に相当し得ることは明らかであり、それらについても当然に本開示の技術的範囲に属するものと了解される。また、発明の趣旨を逸脱しない範囲において、上述した各種の実施形態における各構成要素を任意に組み合わせてもよい。
【産業上の利用可能性】
【0089】
本開示は、ロボットアームを含んで構成されるロボット装置を制御するためのロボット制御装置、ロボット制御方法、およびプログラムとして有用である。
【符号の説明】
【0090】
100…ロボット制御装置
101…処理部
102…記憶部
103…外部IF
104…操作部
105…表示部
106…通信部
200、210…ロボット装置
201、211…ロボットアーム
202、212…ロボットハンド
300…データベース装置
400…ネットワーク
【要約】
【課題】ロボット制御に係るパラメータ設定を容易にし、従来よりもロボット装置を含むシステムの利便性を向上させる。
【解決手段】ロボット制御装置は、ロボット装置による操作対象の第1の座標系における位置情報、および、ロボット装置を構成する部位の動作設定の入力を受け付け、動作設定に基づいて、ロボット装置を構成する部位のパラメータ、およびロボット装置を構成する部位に対応した第2の座標系と第1の座標系との間の座標変換のための補正値を取得し、補正値、パラメータ、および動作設定に基づいて、第1の座標系における位置情報から第2の座標系における位置情報に変換するための変換テーブルを生成し、変換テーブルを用いて、第1の座標系における位置情報を第2の座標系に変換した位置情報に変換し、当該変換した位置情報を用いて、ロボット装置を構成する部位に対する制御命令を生成する。
【選択図】
図1