JP2016198855A - ロボット、制御装置、及び制御方法 - Google Patents

ロボット、制御装置、及び制御方法 Download PDF

Info

Publication number
JP2016198855A
JP2016198855A JP2015080904A JP2015080904A JP2016198855A JP 2016198855 A JP2016198855 A JP 2016198855A JP 2015080904 A JP2015080904 A JP 2015080904A JP 2015080904 A JP2015080904 A JP 2015080904A JP 2016198855 A JP2016198855 A JP 2016198855A
Authority
JP
Japan
Prior art keywords
operation target
potential
movable
robot
target
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.)
Granted
Application number
JP2015080904A
Other languages
English (en)
Other versions
JP2016198855A5 (ja
JP6651707B2 (ja
Inventor
高志 南本
Takashi Minamimoto
高志 南本
一弘 小菅
Kazuhiro Kosuge
一弘 小菅
アビラシャ サクセナ
Saksena Abhilasha
アビラシャ サクセナ
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.)
Tohoku University NUC
Seiko Epson Corp
Original Assignee
Tohoku University NUC
Seiko Epson Corp
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 Tohoku University NUC, Seiko Epson Corp filed Critical Tohoku University NUC
Priority to JP2015080904A priority Critical patent/JP6651707B2/ja
Priority to US15/092,749 priority patent/US9925668B2/en
Publication of JP2016198855A publication Critical patent/JP2016198855A/ja
Publication of JP2016198855A5 publication Critical patent/JP2016198855A5/ja
Application granted granted Critical
Publication of JP6651707B2 publication Critical patent/JP6651707B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1628Programme controls characterised by the control loop
    • B25J9/1651Programme controls characterised by the control loop acceleration, rate control
    • 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
    • B25J9/1666Avoiding collision or forbidden zones
    • 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/39Robotics, robotics to robotics hand
    • G05B2219/39082Collision, real time collision avoidance
    • 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/39Robotics, robotics to robotics hand
    • G05B2219/39084Parts handling, during assembly
    • 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/40583Detect relative position or orientation between gripper and currently handled object

Landscapes

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

Abstract

【課題】他の物体との干渉の抑制及び第1物体を移動させる時間の短縮を図ることができるロボットを提供すること。【解決手段】ロボットは、アームと、アームを動作させる制御部と、を含み、制御部は、アームとともに動く第1物体と第2物体との相対位置姿勢、及び第1物体の第1位置に基づいて経路を生成する。【選択図】図4

Description

この発明は、ロボット、制御装置、及び制御方法に関する。
ロボットに物体同士の組み付けを行わせる技術の研究や開発が行われている。
これに関し、部品把持手段を備える組立機構を用いて複数の部品を順次組みつけて所定の組立対象物を構成する自動組立システムが知られている(特許文献1参照)。
特開2006−350620号公報
しかしながら、この自動組立システムは、部品を移動させる速さを部品同士の相対的な位置及び姿勢に基づいて変更することができず、組み立て時間の短縮を図ることが困難であった。また、この結果により、部品同士を組み立てる動作を含む作業に要する時間が長くなってしまう場合があった。
上記課題の少なくとも一つを解決するために本発明の一態様は、アームと、前記アームを動作させる制御部と、を含み、前記制御部は、前記アームとともに動く第1物体と第2物体との相対位置姿勢、及び前記第1物体の第1位置に基づいて経路を生成する、ロボットである。
この構成により、ロボットは、アームとともに動く第1物体と第2物体との相対位置姿勢、及び第1物体の第1位置に基づいて経路を生成する。これにより、ロボットは、第1物体と第2物体との相対位置姿勢、及び第1物体の第1位置に基づく経路に沿って第1物体を移動させることができる。その結果、ロボットは、例えば、他の物体との干渉の抑制及び第1物体を移動させる時間の短縮を図ることができる。
また、本発明の他の態様は、ロボットにおいて、前記制御部は、前記相対位置姿勢に基づく前記第1物体の移動可能な範囲を用いて前記経路を生成する、構成が用いられてもよい。
この構成により、ロボットは、第1物体と第2物体との相対位置姿勢に基づく第1物体の移動可能な範囲を用いて経路を生成する。これにより、ロボットは、第1物体の移動可能な範囲を用いて生成した経路に沿って第1物体を移動させることができる。
また、本発明の他の態様は、ロボットにおいて、前記制御部は、前記移動可能な範囲に基づいて、前記相対位置姿勢に応じた前記第1物体の動かし難さ又は動かし易さの指標となる量を算出し、算出された前記指標となる量を用いて前記経路を生成する、構成が用いられてもよい。
この構成により、ロボットは、第1物体の移動可能な範囲に基づいて、第1物体と第2物体との相対位置姿勢に応じた第1物体の動かし難さ又は動かし易さの指標となる量を算出し、算出された指標となる量を用いて経路を生成する。これにより、ロボットは、第1物体の動かし難さ又は動かし易さの指標となる量を用いて生成した経路に沿って第1物体を移動させることができる。
また、本発明の他の態様は、ロボットにおいて、前記制御部は、前記第1位置と前記第1物体の第2位置とを用いて前記経路を生成する、構成が用いられてもよい。
この構成により、ロボットは、第1物体の第1位置と第1物体の第2位置とを用いて経路を生成する。これにより、ロボットは、第1物体の第1位置と第1物体の第2位置とを用いて生成した経路に沿って第1物体を移動させることができる。
また、本発明の他の態様は、ロボットにおいて、前記制御部は、更に前記第1位置に対応する第1姿勢と、前記第2位置に対応する第2姿勢とを用いて前記経路を生成する、構成が用いられてもよい。
この構成により、ロボットは、更に第1物体の第1位置に対応する第1姿勢と、第1物体の第2位置に対応する第2姿勢とを用いて経路を生成する。これにより、ロボットは、第1物体の第1位置に対応する第1姿勢と、第1物体の第2位置に対応する第2姿勢とを用いて生成した経路に沿って第1物体を移動させることができる。
また、本発明の他の態様は、ロボットにおいて、前記制御部は、前記相対位置姿勢と前記所定位置に基づいて前記アームを移動させる速さを決定する、構成が用いられてもよい。
この構成により、ロボットは、第1物体と第2物体との相対位置姿勢と第1物体の第1位置に基づいてアームを移動させる速さを決定する。これにより、ロボットは、第1物体と第2物体との相対位置姿勢と第1物体の第1位置に基づいて決定した速さによって第1物体を移動させることができる。
また、本発明の他の態様は、ロボットにおいて、前記制御部は、前記相対位置姿勢に基づく前記第1物体の移動可能な範囲を用いて前記速さを決定する、構成が用いられてもよい。
この構成により、ロボットは、第1物体と第2物体との相対位置姿勢に基づく第1物体の移動可能な範囲を用いてアームを移動させる速さを決定する。これにより、ロボットは、第1物体の移動可能な範囲を用いて決定した速さによって第1物体を移動させることができる。
また、本発明の他の態様は、ロボットにおいて、前記制御部は、前記相対位置姿勢に応じた前記第1物体の動かし難さ又は動かし易さの指標となる量を算出し、算出された前記指標となる量を用いて前記速さを決定する、構成が用いられてもよい。
この構成により、ロボットは、第1物体と第2物体との相対位置姿勢に応じた第1物体の動かし難さ又は動かし易さの指標となる量を算出し、算出された指標となる量を用いてアームを移動させる速さを決定する。これにより、ロボットは、第1物体の動かし難さ又は動かし易さの指標となる量を用いて決定した速さによって第1物体を移動させることができる。
また、本発明の他の態様は、ロボットにおいて、前記制御部は、前記第1物体の第3位置と前記第1物体の第4位置とを用いて前記速さを決定する、構成が用いられてもよい。
この構成により、ロボットは、第1物体の第3位置と第1物体の第4位置とを用いてアームを移動させる速さを決定する。これにより、ロボットは、第1物体の第3位置と第1物体の第4位置とを用いて決定した速さによって第1物体を移動させることができる。
また、本発明の他の態様は、ロボットにおいて、前記制御部は、更に前記第3位置に対応する第3姿勢と、前記第4位置に対応する第4姿勢とを用いて前記速さを決定する、構成が用いられてもよい。
この構成により、ロボットは、更に第1物体の第3位置に対応する第3姿勢と、第1物体の第4位置に対応する第4姿勢とを用いてアームを移動させる速さを決定する。これにより、ロボットは、第1物体の第3位置に対応する第3姿勢と、第1物体の第4位置に対応する第4姿勢とを用いて決定した速さによって第1物体を移動させることができる。
また、本発明の他の態様は、ロボットが備えるアームとともに動く第1物体と第2物体との相対位置姿勢、及び前記第1物体の第1位置に基づいて経路を生成する、制御装置である。
この構成により、制御装置は、ロボットが備えるアームとともに動く第1物体と第2物体との相対位置姿勢、及び第1物体の第1位置に基づいて経路を生成する。これにより、制御装置は、第1物体と第2物体との相対位置姿勢、及び第1物体の第1位置に基づく経路に沿って第1物体を移動させることができる。その結果、制御装置は、例えば、他の物体との干渉の抑制及び第1物体を移動させる時間の短縮を図ることができる。
また、本発明の他の態様は、ロボットが備えるアームとともに動く第1物体と第2物体との相対位置姿勢、及び前記第1物体の第1位置に基づいて経路を生成する、制御方法である。
この構成により、制御方法は、ロボットが備えるアームとともに動く第1物体と第2物体との相対位置姿勢、及び第1物体の第1位置に基づいて経路を生成する。これにより、制御方法は、第1物体と第2物体との相対位置姿勢、及び第1物体の第1位置に基づく経路に沿って第1物体を移動させることができる。その結果、制御方法は、例えば、他の物体との干渉の抑制及び第1物体を移動させる時間の短縮を図ることができる。
以上により、ロボット、制御装置、及び制御方法は、アームとともに動く第1物体と第2物体との相対位置姿勢、及び第1物体の第1位置に基づいて経路を生成する。これにより、ロボット、制御装置、及び制御方法は、第1物体と第2物体との相対位置姿勢、及び第1物体の第1位置に基づく経路に沿って第1物体を移動させることができる。その結果、ロボット、制御装置、及び制御方法は、例えば、他の物体との干渉の抑制及び第1物体を移動させる時間の短縮を図ることができる。
第1実施形態に係るロボットシステム1の一例を示す構成図である。 本実施形態における作業領域に沿ってロボット20が操作対象Nを組付対象Oに組み付ける様子の一例を示す図である。 制御装置30のハードウェア構成の一例を示す図である。 制御装置30の機能構成の一例を示す図である。 制御装置30が操作対象Nの経路ポテンシャルを算出し、所定の作業を行う処理の流れの一例を示すフローチャートである。 図5に示したステップS100の可動領域算出処理における並進可動領域算出処理の流れの一例を示すフローチャートである。 図5に示したステップS100の可動領域算出処理における回転可動領域算出処理の流れの一例を示すフローチャートである。 可動領域算出部37がステップS100において選択した座標が示す仮想空間の点に配置された操作対象Nの一例を示す図である。 図5に示したステップS110の可動ポテンシャル算出処理の流れの一例を示すフローチャートである。 可動ポテンシャル、並進可動ポテンシャル、及び回転可動ポテンシャルそれぞれの一例を表すグラフを示す図である。 図5に示したステップS120の距離ポテンシャル算出処理の流れの一例を示すフローチャートである。 操作対象Nの組付位置を示す点と、ポテンシャル算出部38がステップS510において選択した座標が示す仮想空間の点とにそれぞれ配置された操作対象Nの一例を示す図である。 このようにして算出された並進距離ポテンシャルの一例を表すグラフを示す図である。 ステップS130において可動ポテンシャルと並進距離ポテンシャルを合算することによりポテンシャル算出部38が算出した経路ポテンシャルの一例を表すグラフを示す図である。 平滑化処理部39が生成した滑らかな経路ポテンシャルの一例を表すグラフを示す図である。 可動領域算出部37aによる並進可動領域算出処理の流れの一例を示すフローチャートである。 可動領域算出部37aによる回転可動領域算出処理の流れの一例を示すフローチャートである。 ポテンシャル算出部38aによる距離ポテンシャル算出処理の流れの一例を示すフローチャートである。
<第1実施形態>
以下、本発明の第1実施形態について、図面を参照して説明する。図1は、第1実施形態に係るロボットシステム1の一例を示す構成図である。ロボットシステム1は、ロボット20と、制御装置30を備える。なお、ロボットシステム1は、ロボット20とは別体の撮像部を備える構成であってもよい。
まず、ロボット20及び制御装置30の構成について説明する。
ロボット20は、アームと、力センサー25と、制御装置30を備えた単腕ロボットである。
単腕ロボットは、この一例における1本のアーム(腕)を備えるロボットである。なお、ロボット20は、単腕ロボットに代えて、双腕ロボットであってもよい。双腕ロボットは、2本のアームを備えるロボットである。また、ロボット20は、撮像部を備える構成であってもよい。
アームは、物体を把持可能な爪部を備えるエンドエフェクターEと、マニピュレーターMと、図示しない複数のアクチュエーターによって構成される。アームは、7軸垂直多関節型のアームである。具体的には、アームは、支持台と、エンドエフェクターEと、マニピュレーターMとがアクチュエーターによる連携した動作によって7軸の自由度の動作を行う。
アームが7軸の自由度で動作する場合、アームは、6軸以下の自由度で動作する場合と比較して取り得る姿勢が増える。これによりアームは、例えば、動作が滑らかになり、更にアームの周辺に存在する物体との干渉を容易に回避することができるようになる。また、アームが7軸の自由度で動作する場合、アームの制御は、アームが8軸以上の自由度で動作する場合と比較して計算量が少なく容易である。このような理由から、アームは、7軸の自由度で動作することが望ましい。それ故、この一例では、アームが7軸の自由度で動作する場合について説明する。なお、アームは、6軸以下の自由度で動作する構成であってもよく、8軸以上の自由度で動作する構成であってもよい。
各アクチュエーターは、ケーブルによって制御装置30と通信可能に接続されている。これにより、アクチュエーターは、制御装置30から取得される制御信号に基づいて、エンドエフェクターEとマニピュレーターMを動作させることができる。なお、ケーブルを介した有線通信は、例えば、イーサネット(登録商標)やUSB(Universal Serial Bus)等の規格によって行われる。また、アクチュエーターのうちの一部又は全部は、Wi−Fi(登録商標)等の通信規格により行われる無線通信によって制御装置30と接続される構成であってもよい。
力センサー25は、エンドエフェクターEとマニピュレーターMの間に備えられている。力センサー25は、エンドエフェクターEに作用した力やモーメントの大きさを示す値を検出する。なお、力センサー25は、エンドエフェクターEに加わる力やモーメントの大きさを示す値を検出するトルクセンサー等の他のセンサーであってもよい。力センサー25は、通信により力センサー情報を制御装置30へ出力する。
力センサー情報は、力センサー25が検出した力やモーメントの大きさを示す値を、力センサー25の出力値として含む情報である。また、力センサー情報は、制御装置30によるロボット20の力センサー情報に基づく制御に用いられる。力センサー情報に基づく制御とは、例えば、インピーダンス制御等のコンプライアンス制御を示す。
力センサー25は、ケーブルによって制御装置30と通信可能に接続されている。ケーブルを介した有線通信は、例えば、イーサネット(登録商標)やUSB等の規格によって行われる。なお、力センサー25は、Wi−Fi(登録商標)等の通信規格により行われる無線通信によって制御装置30と接続されてもよい。
上記で説明したロボット20が備えるこれらの各機能部は、この一例において、ロボット20に内蔵された制御装置30から制御信号を取得する。そして、これらの各機能部は、取得した制御信号に基づいた動作を行う。なお、ロボット20は、外部に設置された制御装置30により制御される構成に代えて、制御装置30を内蔵する構成であってもよい。
制御装置30は、ロボット20が備える各機能部に制御信号を送信することにより、ロボット20を動作させる。また、制御装置30は、ロボット20に所定の作業を行わせる。この一例において、制御装置30は、所定の作業として、ロボット20を動作させることにより第1物体を他の第2物体に組み付ける作業を行う。
以下、第1物体及び第2物体と、ロボット20が行う所定の作業とについて説明する。
第1物体は、例えば、図1に示したようにロボット20がエンドエフェクターEにより把持している操作対象Nのことである。なお、第1物体は、操作対象Nに代えて、ロボット20のエンドエフェクターEの所定部位やマニピュレーターMの所定部位等であってもよい。操作対象Nは、この一例において、エンドエフェクターEの爪部により把持可能な程度の高さを有する六角柱形状の物体である。なお、操作対象Nは、これに代えて、他の形状や大きさであってもよい。
第2物体は、ロボット20により第1物体を組み付けられる物体のことである。なお、第2物体は、これに代えて、操作対象Nを移動させる際に障害となる物体や、何らかの治具、壁面、作業台等の位置及び姿勢がロボット20の座標原点の位置及び姿勢に対して変化しないように設置された物体であれば如何なる物体であってもよい。
第2物体は、例えば、図1に示した組付対象Oである。すなわち、組付対象Oは、ロボット20により操作対象Nが組み付けられる物体である。図1に示したように、この一例では、組付対象Oは、治具Fに支持されている。なお、組付対象Oは、これに代えて、テーブルや何らかの台等の他の場所に設置される構成であってもよい。その場合、組付対象Oの位置及び姿勢は、ロボット20の座標原点の位置及び姿勢に対して変化しないように設置される。ロボット20の座標原点の位置及び姿勢は、例えば、ロボット20の支持台の重心の位置及び姿勢である。なお、ロボット20の座標原点の位置及び姿勢は、これに代えて、ロボット20に対応付けられた他の位置及び姿勢であってもよい。
制御装置30は、操作対象Nと組付対象Oとの相対的な位置及び姿勢、及び操作対象Nの第1位置に基づいて、操作対象Nを組付対象Oに組み付けるまでに操作対象Nを作業領域内において移動させる経路を生成する。以下では、一例として操作対象Nの第1位置が、ロボット20が行う所定の作業において操作対象Nが組付対象Oに組み付けられた後の操作対象Nの位置である場合について説明する。なお、操作対象Nと組付対象Oとの相対的な位置及び姿勢は、第1物体と第2物体との相対位置姿勢の一例である。
また、制御装置30は、経路を生成する際、操作対象Nが組付対象Oや他の物体との干渉が起こる可能性が低い経路であり、且つ操作対象Nを速く移動させることが可能な経路を生成する。
これにより、制御装置30は、操作対象Nと組付対象Oとの相対的な位置及び姿勢、及び操作対象Nが組付対象Oに組み付けられた後の操作対象Nの位置に基づいて生成する経路に沿って操作対象Nを移動させることができる。その結果、制御装置30は、他の物体との干渉の抑制及び第1物体を移動させる時間の短縮を図ることができる。なお、操作対象Nの第1位置は、作業領域内における操作対象Nの他の位置であってもよい。また、以下では、説明の便宜上、ロボット20が行う所定の作業において操作対象Nが組付対象Oに組み付けられた後の操作対象Nの位置を組付位置と称して説明する。また、以下では、組付位置に対応する操作対象Nの姿勢を組付姿勢と称して説明する。
また、以下では、操作対象Nの位置及び姿勢が、操作対象Nの重心の位置及び姿勢である場合について説明する。なお、操作対象Nの位置及び姿勢は、これに代えて、操作対象Nとともに動く他の点の位置及び姿勢であってもよい。
また、以下では、組付対象Oの位置及び姿勢は、組付対象Oの重心の位置及び姿勢である場合について説明する。なお、組付対象Oの位置及び姿勢は、これに代えて、組付対象Oとともに固定される他の点の位置及び姿勢であってもよい。
また、この一例における作業領域は、ロボット20が操作対象Nを組付対象Oに組み付けるために操作対象Nの重心を移動させることが可能な経路を含む平面又は空間の一部又は全部の領域のことである。また、作業領域には、組付対象Oが含まれている。以下では、説明を簡略化するため、一例として作業領域が図2に示した二次元(xy)平面である場合について説明する。
図2は、本実施形態における作業領域に沿ってロボット20が操作対象Nを組付対象Oに組み付ける様子の一例を示す図である。図2に示したx軸及びy軸は、組付対象Oを含む二次元平面(すなわち、作業領域)上の座標軸である。ロボット20は、例えば、エンドエフェクターEにより把持した操作対象Nを、図2に示した矢印(前述の経路)に沿って組付対象Oに組み付ける。
本実施形態では、この組み付けの際、ロボット20は、図2に示した座標軸により示される二次元平面に沿ってのみ操作対象Nを移動する。なお、ロボット20は、二次元平面である作業領域に沿って操作対象Nを移動する構成に代えて、三次元(xyz)空間内に広がる経路に沿って操作対象Nを移動する構成であってもよい。
また、制御装置30は、操作対象Nと組付対象Oとの相対的な位置及び姿勢、及び操作対象Nの組付位置に基づいて、制御装置30が生成した経路上の各位置においてロボット20が操作対象Nを移動させる速さを決定する。
そして、制御装置30は、生成した経路と決定した速さとに基づいてロボット20を動作させることにより、操作対象Nを組付対象Oに組み付ける。このように操作対象Nを組付対象Oに組み付けることにより、ロボット20は、組付対象Oや他の物体との干渉の抑制及び操作対象Nを移動させる時間の短縮を図ることができる。なお、図1に示した点線VNは、組付対象Oに組み付けられた状態の操作対象Nの輪郭を示している。
なお、制御装置30は、コンプライアンス制御によってロボット20を動作させることにより、ロボット20に操作対象Nを組付対象Oに組み付けさせる。これにより、制御装置30は、操作対象Nと組付対象Oや他の物体との干渉が起きた場合であっても、例えば、操作対象Nや組付対象O、他の物体を変形させることなくロボット20に操作対象Nを組付対象Oに組み付けさせることができる。
次に、図3を参照し、制御装置30のハードウェア構成について説明する。図3は、制御装置30のハードウェア構成の一例を示す図である。制御装置30は、例えば、CPU(Central Processing Unit)31と、記憶部32と、入力受付部33と、通信部34と、表示部35を備える。また、制御装置30は、通信部34を介してロボット20と通信を行う。これらの構成要素は、バスBusを介して相互に通信可能に接続されている。
CPU31は、記憶部32に格納された各種プログラムを実行する。
記憶部32は、例えば、HDD(Hard Disk Drive)やSSD(Solid State Drive)、EEPROM(Electrically Erasable Programmable Read−Only Memory)、ROM(Read−Only Memory)、RAM(Random Access Memory)などを含む。記憶部32は、制御装置30が処理する各種情報や画像、プログラム、組付対象Oの位置及び姿勢を示す情報、所定の作業を行う際の作業領域を示す情報等を格納する。なお、記憶部32は、制御装置30に内蔵されるものに代えて、USB等のデジタル入出力ポート等によって接続された外付け型の記憶装置でもよい。
入力受付部33は、例えば、キーボードやマウス、タッチパッド等を備えたティーチングペンダントや、その他の入力装置である。なお、入力受付部33は、タッチパネルとして表示部35と一体に構成されてもよい。
通信部34は、例えば、USB等のデジタル入出力ポートやイーサネット(登録商標)ポート等を含んで構成される。
表示部35は、例えば、液晶ディスプレイパネル、あるいは、有機EL(ElectroLuminescence)ディスプレイパネルである。
次に、図4を参照し、制御装置30の機能構成について説明する。図4は、制御装置30の機能構成の一例を示す図である。制御装置30は、記憶部32と、制御部36を備える。
制御部36は、制御装置30の全体を制御する。制御部36は、可動領域算出部37と、ポテンシャル算出部38と、平滑化処理部39と、経路生成部40と、速さ決定部41と、力センサー取得部42と、ロボット制御部43を備える。制御部36が備えるこれらの機能部のうち一部又は全部は、例えば、CPU31が、記憶部32に記憶された各種プログラムを実行することで実現される。また、これらの機能部のうち一部または全部は、LSI(Large Scale Integration)やASIC(Application Specific Integrated Circuit)等のハードウェア機能部であってもよい。
可動領域算出部37は、可動領域を算出する。可動領域は、作業領域内の各点において定義される量である。また、可動領域は、作業領域内において操作対象Nが組付対象Oや他の物体と接触せずに動くことができる範囲を定量的に示す量である。
ポテンシャル算出部38は、可動領域算出部37が算出した可動領域に基づいて可動ポテンシャルを算出する。可動ポテンシャルは、作業領域内の各点において定義される量である。また、可動ポテンシャルは、作業領域内の各点における操作対象Nの動かし難さ(又は、動かし易さ)の指標となる量である。
可動ポテンシャルは、作業領域内の各点において算出されるため、作業領域内の各点を示す座標の関数として表される。なお、可動ポテンシャルは、ポテンシャルと称しているが、物理量ではない。可動ポテンシャルをポテンシャルと称する理由は、作業領域の各点における操作対象Nの剛性、すなわちエンドエフェクターEにより把持された操作対象Nの動かし難さ(もしくは、動かし易さ)の指標となる量を、空間の各点において物体に働く保存力に係るポテンシャルエネルギーになぞらえたためである。操作対象Nを動かし難い状態とは、この場合、操作対象Nを動かすことにより、操作対象Nと組付対象Oや他の物体とが干渉してしまう可能性が高い状態のことである。
ここで、作業領域内における操作対象Nの位置及び姿勢は、作業領域内において組付対象Oの位置及び姿勢が変化しないため、操作対象Nと組付対象Oとの相対的な位置及び姿勢を表す。すなわち、ポテンシャル算出部38は、操作対象Nと組付対象Oとの相対的な位置及び姿勢に基づいて操作対象Nの動かし難さの指標となる量を、作業領域内の各点における可動ポテンシャルとして算出する。
また、ポテンシャル算出部38は、作業領域内における操作対象Nの組付位置に基づいて距離ポテンシャルを算出する。距離ポテンシャルは、作業領域内の各点において定義される量である。また、距離ポテンシャルは、作業領域内の各点において、ロボット20が操作対象Nを移動させることが可能な速さの指標となる量のことである。例えば、距離ポテンシャルが低いところでは、当該速さを速くすることができ、距離ポテンシャルが高いところでは、当該速さを距離ポテンシャルが低いところに比べて遅くしなければならない。
距離ポテンシャルは、作業領域内の各点において算出されるため、作業領域内の各点を示す座標(すなわち、位置)の関数として表される。なお、距離ポテンシャルは、ポテンシャルと称しているが、物理量ではない。距離ポテンシャルをポテンシャルと称する理由は、作業領域の各点においてエンドエフェクターEにより操作対象Nを移動させることが可能な速さの指標となる量を、空間の各点において物体を加速させる保存力に係るポテンシャルエネルギーになぞらえたためである。
また、ポテンシャル算出部38は、算出した可動ポテンシャルと距離ポテンシャルを合算した経路ポテンシャルを算出する。経路ポテンシャルは、ロボット20が操作対象Nを組付対象Oに組み付ける際に、操作対象Nを動かし易く、そして速く移動させることができる位置の指標となる量である。経路ポテンシャルは、可動ポテンシャル及び距離ポテンシャルが作業領域内の各点を示す座標(位置)の関数であるため、作業領域内の各点を示す座標(位置)の関数として表される。
平滑化処理部39は、ポテンシャル算出部38によって算出された経路ポテンシャルを表す関数に対して、ローパスフィルターを適用する。これにより、平滑化処理部39は、経路ポテンシャルを表す関数を平滑化(すなわち、平均化)する。以下では、説明の便宜上、平滑化処理部39が経路ポテンシャルを表す関数をこのように変換することを、滑らかなポテンシャルを生成すると称して説明する。また、以下では、ローパスフィルターを適用する前の経路ポテンシャルを表す関数を、不連続に変化する経路ポテンシャルと称して説明する。不連続に変化する経路ポテンシャルに基づいてロボット20を制御しようとすると、例えば、アクチュエーター等に負担が掛かり、故障の原因となりかねない。そのため、平滑化処理部39は、算出された不連続に変化する経路ポテンシャルにローパスフィルターを適用することで、滑らかなポテンシャルを生成する。
経路生成部40は、平滑化処理部39が平滑化した経路ポテンシャルに基づいて、ロボット20が操作対象Nを組付対象Oに組み付けるまでに移動させる経路を生成する。経路生成部40が生成する当該経路は、操作対象Nが組付対象Oや他の物体との干渉が起こる可能性が低い経路であり、且つ操作対象Nを速く移動させることが可能な経路である。
速さ決定部41は、平滑化処理部39が平滑化した経路ポテンシャルに基づいて、経路生成部40が生成した経路上の各点において操作対象Nをロボット20が移動させる速さを決定する。
力センサー取得部42は、力センサー25により検出される力センサー情報を取得する。
ロボット制御部43は、経路生成部40が生成した経路と、速さ決定部41が決定した当該経路上の各点において操作対象Nをロボット20が移動させる速さとに基づいて、ロボット20を動作させ、操作対象Nを組付対象Oに組み付ける。この際、ロボット制御部43は、力センサー取得部42が取得した力センサー情報に基づいて、コンプライアンス制御によりロボット20を動作させる。
以下、図5を参照し、制御装置30が経路ポテンシャルを算出し、所定の作業を行う処理について説明する。図5は、制御装置30が操作対象Nの経路ポテンシャルを算出し、所定の作業を行う処理の流れの一例を示すフローチャートである。以下では、一例として、予めロボット20がエンドエフェクターEにより操作対象Nを把持している場合について説明する。従って、制御装置30は、ロボット20に操作対象Nを把持させてからロボット20に所定の作業を行わせる構成であってもよい。
まず、可動領域算出部37は、操作対象Nの可動領域を算出するための可動領域算出処理を行う(ステップS100)。この一例において、操作対象Nの可動領域は、作業領域を表す二次元平面上のある点から当該二次元平面内において組付対象Oと接触せずに操作対象Nがx方向及びy方向に移動可能な距離の総和(以下、並進可動領域と称する)と、当該点において組付対象Oと接触せずに正方向(例えば、反時計回り)及び負方向(例えば、時計回り)に回転可能な回転角の総和(以下、回転可動領域と称する)との2つの量によって定義される量であり、当該二次元平面上の各点において定義される量である。そのため、可動領域算出処理は、並進可動領域算出処理と回転可動領域算出処理の2つの処理によって構成される。
並進可動領域算出処理は、作業領域内の各点における操作対象Nの並進可動領域を算出する処理である。回転可動領域算出処理は、作業領域内の各点における操作対象Nの回転可動領域を算出する処理である。可動領域算出部37は、可動領域算出処理において並進可動領域算出処理と回転可動領域算出処理のいずれか一方を先に行ってもよく、両方を同時に行ってもよい。なお、可動領域算出部37は、可動領域算出処理において、並進可動領域算出処理と回転可動領域のうちいずれか一方のみを行う構成(すなわち、操作対象Nの可動領域は、並進可動領域と回転可動領域のうちいずれか一方によって定義される構成)であってもよい。
なお、操作対象Nの可動領域は、作業領域内の各点における操作対象Nに係る他の量によって定義されてもよい。また、操作対象Nの可動領域は、作業領域内の各点において定義される構成に代えて、例えば、作業領域を複数の領域に分割した場合のそれぞれの領域毎に定義される構成であってもよい。
次に、ポテンシャル算出部38は、ステップS100において可動領域算出部37が算出した操作対象Nの並進可動領域と回転可動領域のうちいずれか一方又は両方に基づいて、作業領域内の各点における可動ポテンシャルを算出するための可動ポテンシャル算出処理を行う(ステップS110)。本実施形態では、ポテンシャル算出部38は、可動ポテンシャル算出処理において、操作対象Nの並進可動領域と回転可動領域の両方に基づいて、作業領域内の各点における可動ポテンシャルを算出する場合について説明する。
次に、ポテンシャル算出部38は、作業領域内の各点における距離ポテンシャルを算出するための距離ポテンシャル算出処理を行う(ステップS120)。なお、ポテンシャル算出部38が行うステップS110の処理とステップS120の処理は、順序が逆に行われてもよく、並列に行われてもよい。
次に、ポテンシャル算出部38は、ステップS110において算出した可動ポテンシャルと、ステップS120において算出した距離ポテンシャルを合算した経路ポテンシャルを算出する(ステップS130)。
次に、平滑化処理部39は、ステップS130においてポテンシャル算出部38が算出した不連続に変化する経路ポテンシャルにローパスフィルターを適用することで、滑らかに変化する経路ポテンシャルを生成(平滑化)する(ステップS140)。
次に、経路生成部40は、ステップS140において平滑化処理部39が平滑化した経路ポテンシャルに基づいて、ロボット20が操作対象Nを組付対象Oに組み付けるまでに移動させる経路を生成する経路生成処理を行う(ステップS150)。
次に、速さ決定部41は、ステップS140において平滑化処理部39が平滑化した経路ポテンシャルに基づいて、ステップS150において経路生成部40が生成した経路上の各点において操作対象Nをロボット20が移動させる速さを決定する速さ決定処理を行う(ステップS160)。
次に、ロボット制御部43は、ステップS150において経路生成部40が生成した経路と、ステップS160において速さ決定部41が決定した速さであって、経路上の各点において操作対象Nをロボット20が移動させる速さとに基づいて、ロボット20に所定の作業を行わせる(ステップS170)。なお、ロボット制御部43は、ステップS170において、力センサー取得部42が取得した力センサー情報に基づいて、コンプライアンス制御によってロボット20を動作させる。
以下、図6及び図7を参照し、図5に示したステップS100の可動領域算出処理について説明する。図6は、図5に示したステップS100の可動領域算出処理における並進可動領域算出処理の流れの一例を示すフローチャートである。
まず、可動領域算出部37は、組付対象Oの大きさや形状を示す情報と、組付対象Oの位置及び姿勢を示す情報と、作業領域を示す情報を記憶部32から読み込み、読み込まれた組付対象Oの位置及び姿勢を示す情報と、作業領域を示す情報とに基づいて作業領域を表す仮想空間を生成する(ステップS190)。
なお、この一例において、組付対象Oの大きさや形状を示す情報と、組付対象Oの位置及び姿勢を示す情報と、作業領域を示す情報とは、予め記憶部32に記憶されている場合について説明する。なお、作業領域を示す情報は、これに代えて、ロボットシステム1が撮像部を備え、撮像部により撮像された撮像画像に基づいて検出される構成であってもよい。また、この一例において、作業領域を示す情報は、作業領域の形状が図2に示したように長方形状の平面であるため、当該長方形の各頂点を示す座標の組み合わせである。また、組付対象Oの位置及び姿勢を示す情報は、これに代えて、ロボットシステム1が撮像部を備え、撮像部により撮像された撮像画像に基づいて検出される構成であってもよい。
ステップS190において可動領域算出部37が生成した仮想空間内には、仮想的に組付対象Oが配置されている。仮想的に組付対象Oが配置されている仮想空間内での組付対象Oの位置及び姿勢は、現実の作業領域内の組付対象Oの位置及び姿勢に対応している。
次に、可動領域算出部37は、ステップS190において生成した仮想空間の各点を示す座標を1つずつ選択する。そして、可動領域算出部37は、選択した座標毎に、ステップS210からステップS270までの処理を繰り返し行う(ステップS200)。
ステップS200において仮想空間の座標を1つ選択した後、可動領域算出部37は、選択した座標が示す仮想空間の点に、仮想的に操作対象Nを配置する。この際、可動領域算出部37は、仮想空間の点に操作対象Nの重心が一致するように操作対象Nを配置する。また、可動領域算出部37は、仮想空間の点に配置した操作対象Nの姿勢を、所定の姿勢に初期化する(ステップS210)。なお、所定の姿勢とは、例えば、予め決められた操作対象Nの重心の位置を通る中心線と、x軸又はy軸との成す角度がゼロ度となるような姿勢であるが、これに限られず、他の姿勢であってもよい。
次に、可動領域算出部37は、数値を示す情報を格納可能な変数Dを生成し、変数Dの値をゼロに初期化する(ステップS220)。
次に、可動領域算出部37は、ステップS260における操作対象Nの回転に係る回転角の累積値が360°に達したか否かを判定する(ステップS230)。
操作対象Nの回転に係る回転角の累積値が360°に達していないと判定した場合(ステップS230−No)、可動領域算出部37は、ステップS200において選択した座標が示す仮想空間の点に配置された操作対象Nがx軸の正方向、x軸の負方向、y軸の正方向、y軸の負方向のそれぞれの方向(以下、4つの方向と称する)への移動可能な距離の和を算出する(ステップS240)。
なお、可動領域算出部37が算出するこれらの移動可能な距離の和は、4つ方向それぞれへの移動可能な距離の和に代えて、4つの方向のうちのいずれか1つへの移動距離であってもよく、4つの方向それぞれへの移動可能な距離の一部の組み合わせの和であってもよく、1以上の他の方向への移動可能な距離の和(他の方向が1つのみの場合、和ではなく、その方向への移動可能な距離)であってもよく、上記の4つの方向それぞれへの移動可能な距離と他の方向への移動可能な距離との和であってもよい。例えば、可動領域算出部37は、操作対象Nが移動可能な距離の和として、1以上の他の方向(例えば、x軸の延伸方向とy軸の延伸方向との間の方向(斜め方向)等)への移動可能な距離の和を算出する場合、それらの方向への距離を三平方の定理等、距離空間において距離を算出する方法によって算出する。
次に、可動領域算出部37は、ステップS240において算出した4つの方向への移動可能な距離の和を、ステップS220において生成した変数Dに格納されている値に加算する(ステップS250)。
次に、可動領域算出部37は、ステップS200において選択した座標が示す仮想空間の点に配置した操作対象Nの姿勢を、所定角度だけ回転させる(ステップS260)。なお、所定角度は、その倍数に360°を含む任意の角度であることが望ましく、この一例において、5°や10°等であるとするが、その倍数に360°を含まない他の角度であってもよい。
ステップS230からステップS260までの処理をまとめて換言すると、可動領域算出部37は、ステップS200において選択した座標が示す仮想空間の点に配置した操作対象Nの姿勢を所定角度ずつ変化させ、それぞれの姿勢毎に前述の4つの方向への移動可能な距離の和を算出し、算出された姿勢毎の4つの方向への移動可能な距離の和を変数Dに加算する。
ここで、図8を参照し、ステップS230からステップS260までの処理について説明する。図8は、可動領域算出部37がステップS100において選択した座標が示す仮想空間の点に配置された操作対象Nの一例を示す図である。図8において、座標(x,y)を、可動領域算出部37がステップS200において選択した座標であるとして説明する。点G(x,y)は、可動領域算出部37が座標(x,y)に配置した操作対象Nの重心の位置を示す。また、枠VSは、可動領域算出部37が生成した仮想空間であって作業領域を表す仮想空間を示す。以下では、この枠VSによって囲まれた範囲を仮想空間VSと称して説明する。なお、図8に示した座標軸は、この仮想空間VS上の位置及び姿勢を表す座標軸である。また、以下では、図8において示した操作対象Nの姿勢が、所定の姿勢である場合について説明する。
可動領域算出部37は、座標(x,y)に配置した操作対象Nを前述の4つの方向のそれぞれに移動させる。この時、可動領域算出部37は、操作対象Nの輪郭が、仮想空間VSの枠や組付対象Oの輪郭と干渉(すなわち、接触)するまで操作対象Nを移動させた時の移動距離を、4つの方向のそれぞれの方向に移動可能な距離として算出する。図8において、距離D+xは、x軸の正方向への移動可能な距離であり、距離D−xは、x軸の負方向への移動可能な距離である。また、図8において、距離D+yは、y軸の正方向への移動可能な距離であり、距離D−yは、y軸の負方向への移動可能な距離である。可動領域算出部37は、これらの距離D+x、距離D−x、距離D+y、距離D−yの和を変数Dに格納された値に加算する。
そして、可動領域算出部37は、操作対象Nの姿勢を所定角度ずつ360°まで変化させ、所定角度変化させる毎にその時の姿勢において、このような4つの方向への移動可能な距離の和を算出し、算出された4つの方向への移動可能な距離の和を変数Dに格納された値に加算していく。この4つの方向への移動可能な距離の和は、操作対象Nの位置及び姿勢に応じて異なる値を取る。従って、変数Dに加算されていく値は、操作対象Nの位置及び姿勢に応じた値となる。このようにして、可動領域算出部37は、ステップS230からステップS260までの処理を行う。
一方、ステップS230において操作対象Nの回転に係る回転角の累積値が360°に達していると判定した場合(ステップS230−Yes)、可動領域算出部37は、変数Dに格納されている値を、ステップS100で選択した座標における並進可動領域Fとし(ステップS270)、その後、ステップS200に戻って仮想空間の次の座標を選択する。以下では、仮想空間VS内での各点を示す座標を座標(x,y)とした場合、その座標における並進可動領域Fの値を並進可動領域F(x,y)と表す。なお、この一例では、仮想空間の各点を示す座標と、作業領域の各点を示す座標とは、キャリブレーション等によって予め対応付けられている場合について説明する。そのため、仮想空間VS内の各点は、作業領域内の各点を示す。
図7は、図5に示したステップS100の可動領域算出処理における回転可動領域算出処理の流れの一例を示すフローチャートである。なお、図7に示したフローチャートにおいて、ステップS190からステップS210までの処理は、図6に示したフローチャートにおけるステップS190からステップS210までの処理と同様の処理であるため、説明を省略する。
ただし、可動領域算出部37は、図7に示したステップS200において選択した座標毎に、図7に示したフローチャートのステップS210からステップS360までの処理を繰り返し行う。また、可動領域算出部37により回転可動領域算出処理が図6に示した並進可動領域算出処理の後に(又は並進可動領域算出処理と並列に)行われる場合、すでに仮想空間が生成されているため、図7に示したステップS190において新たに仮想空間を生成しなくてもよい。
図7に示したステップS210の処理を実行した後、可動領域算出部37は、数値を示す情報を格納可能な変数Hを生成し、変数Hの値をゼロに初期化する(ステップS320)。
次に、可動領域算出部37は、ステップS300において選択した座標が示す仮想空間の点に配置した操作対象Nが、図8に示した仮想空間VSの枠や組付対象Oの輪郭に現時点で干渉(すなわち、接触)しているか否かを判定する(ステップS330)。
操作対象Nが仮想空間VSの枠や組付対象Oの輪郭に接触していないと判定した場合(ステップS330−No)、可動領域算出部37は、ステップS200において選択した座標が示す仮想空間の点に配置した操作対象Nを、例えば、操作対象Nの重心を中心として正方向と負方向のそれぞれに、操作対象Nの輪郭が仮想空間VSの枠や組付対象Oの輪郭に接触するまで回転させる。ただし、操作対象Nの輪郭が仮想空間VSの枠や組付対象Oの輪郭に接触しない場合、正方向と負方向のそれぞれの回転角は、360°であるとする。可動領域算出部37は、正方向への回転角と、負方向への回転角との和を回転可能角度として算出し(ステップS340)、変数Hに格納されている値に加算する(ステップS350)。
一方、ステップS330において操作対象Nが仮想空間VSの枠や組付対象Oの輪郭に干渉(すなわち、接触)していると判定した場合(ステップS330−Yes)、可動領域算出部37は、変数Hに格納されている値を、回転可動領域Fとし(ステップS360)、その後、ステップS300に戻って次の仮想空間の座標を選択する。以下では、仮想空間VS内での各点を示す座標を座標(x,y)とした場合、その座標における回転可動領域Fの値を回転可動領域F(x,y)と表す。
以下、図9を参照し、図5に示したステップS110の可動ポテンシャル算出処理について説明する。図9は、図5に示したステップS110の可動ポテンシャル算出処理の流れの一例を示すフローチャートである。まず、ポテンシャル算出部38は、ステップS100で可動領域算出部37により算出された仮想空間VS内の各点(すなわち、作業領域内の各点)における可動領域、すなわち並進可動領域F(x,y)及び回転可動領域F(x,y)に基づいて、並進可動領域F(x,y)の全ての点の中での最大値FtMAXと、回転可動領域F(x,y)の全ての点の中での最大値FrMAXを検出する(ステップS400)。
次に、ポテンシャル算出部38は、ステップS400において検出した並進可動領域F(x,y)の最大値FtMAXと、回転可動領域F(x,y)の最大値FrMAXとに基づいて、作業領域内の各点におけるポテンシャルを算出する(ステップS410)。ここで、このポテンシャルを算出する処理について説明する。ポテンシャル算出部38は、以下に示す式(1)〜式(3)に基づいて作業領域内の各点における可動ポテンシャルを算出する。
(x,y)=FtMAX−F(x,y) ・・・(1)
(x,y)=FrMAX−F(x,y) ・・・(2)
t+r(x,y)=P(x,y)+P(x,y) ・・・(3)
ここで、P(x,y)は、作業領域内のある点を示す座標(x,y)における可動ポテンシャルであり、並進可動領域に基づいて算出される可動ポテンシャル(以下、並進可動ポテンシャルと称する)を表す。また、P(x,y)は、作業領域内のある点を示す座標(x,y)における可動ポテンシャルであり、回転可動領域に基づいて算出される可動ポテンシャル(以下、回転可動ポテンシャルと称する)を表す。また、Pt+r(x,y)は、作業領域内のある点を示す座標(x,y)における可動ポテンシャルであり、並進可動ポテンシャルと回転可動ポテンシャルを合算することにより算出される可動ポテンシャルである。以下の説明においては、単に可動ポテンシャルと称した場合、上記の式(3)によって算出されるPt+r(x,y)を示す。
上記の式(1)は、並進可動領域の最大値FtMAXから、作業領域内のある点を示す座標(x,y)における並進可動領域F(x,y)を減算した値を、座標(x,y)における並進可動ポテンシャルとして定義する式である。このように並進可動ポテンシャルを定義することで、作業領域内の点のうち並進可動ポテンシャルが大きな点では、エンドエフェクターEにより把持された操作対象Nの剛性が大きい、すなわち操作対象Nを動かし難い(並進させ難い)ことを表すことができる。このように操作対象Nを動かし難いということは、換言すると、操作対象Nを並進させることによって組付対象Oや他の物体と干渉しやすいことを示している。
また、上記の式(2)は、回転可動領域の最大値FrMAXから、作業領域内のある点を示す座標(x,y)における回転可動領域F(x,y)を減算した値を、座標(x,y)における回転可動ポテンシャルとして定義する式である。このように回転可動ポテンシャルを定義することで、作業領域内の点のうち回転可動ポテンシャルが大きな点では、エンドエフェクターEにより把持された操作対象Nの剛性が大きい、すなわち操作対象Nを動かし難い(回転させ難い)ことを表すことができる。このように操作対象Nを動かし難いということは、換言すると、操作対象Nを回転させることによって組付対象Oや他の物体と干渉しやすいことを示している。
すなわち、上記の式(3)により算出される可動ポテンシャルPt+r(x,y)が大きな点は、エンドエフェクターEにより把持された操作対象Nの剛性が大きい、すなわち操作対象Nを動かし難い(並進又は回転させ難い)ことを表す。このように操作対象Nを動かし難いということは、換言すると、操作対象Nを並進又は回転させることによって組付対象Oや他の物体と干渉しやすいことを示している。
図10(A)は、このようにして算出された可動ポテンシャルの一例を表すグラフを示す図である。このグラフから、ポテンシャル算出部38が算出した可動ポテンシャルは、その大きさが不連続に変化することが分かる。これは、可動ポテンシャルを算出するために用いる並進可動ポテンシャル及び回転可動ポテンシャルの大きさがそれぞれ不連続に変化するためである。
ここで、可動ポテンシャルに関連して、図10(A)の場合以外の例を示しておく。
図10(B)は並進可動ポテンシャルの一例を表すグラフを示す図であり、図10(C)は回転可動ポテンシャルの一例を表すグラフを示す図である。なお、図10(A)では並進可動ポテンシャルと回転可動ポテンシャルとが合成された結果である可動ポテンシャルの例を示したが、ここでは、他の例として、並進可動ポテンシャルと回転可動ポテンシャルとのそれぞれの例を別々に示してある。前記したように、この例は、図10(A)の場合とは異なる例であり、図10(B)及び図10(C)に示される並進可動ポテンシャル及び回転可動ポテンシャルが合成された結果は、図10(A)に示される可動ポテンシャルとは異なる可動ポテンシャルとなる。図10(B)及び図10(C)に示される例において、並進可動ポテンシャル及び回転可動ポテンシャルの大きさは不連続に変化している。
以下、図11を参照し、図5に示したステップS120の距離ポテンシャル算出処理について説明する。図11は、図5に示したステップS120の距離ポテンシャル算出処理の流れの一例を示すフローチャートである。なお、図11に示したフローチャートにおいて、ステップS190及びステップS200の処理は、図6に示したフローチャートにおけるステップS190及びステップS200の処理と同様の処理であるため、説明を省略する。
ただし、図11に示したステップS190及びステップS200の処理を行う機能部は、図6に示したステップS190及びステップS200の処理を行う可動領域算出部37ではなく、ポテンシャル算出部38である。また、ポテンシャル算出部38は、図11に示したステップS200において選択した座標毎に、図11に示したフローチャートのステップS510の処理を繰り返し行う。また、ポテンシャル算出部38は、図5に示したステップS100において既に仮想空間が生成済みであるため、ステップS190の処理を省略する構成であってもよい。
図11に示したステップS200において仮想空間の座標を選択した後、ポテンシャル算出部38は、操作対象Nの組付位置を示す情報を記憶部32から読み込む。なお、以下では、操作対象Nの組付位置を示す情報は、予め記憶部32に記憶されている場合について説明する。ポテンシャル算出部38は、読み込んだ操作対象Nの組付位置を示す情報と、ステップS200において選択した座標とに基づいて、当該組付位置から当該座標が示す位置までの間の距離を、並進距離として算出する(ステップS510)。
ここで、図12を参照し、ステップS510の処理について説明する。図12は、操作対象Nの組付位置を示す点と、ポテンシャル算出部38がステップS510において選択した座標が示す仮想空間の点とにそれぞれ配置された操作対象Nの一例を示す図である。図12において、点線NSは、組付位置を示す点G(x,y)に配置された操作対象Nの輪郭を表している。また、実線NCは、ポテンシャル算出部38がステップS510において選択した座標が示す仮想空間の点G(x,y)に配置された操作対象Nの輪郭を表している。
図12に示したように、ポテンシャル算出部38は点G(x,y)と点G(x,y)の間の距離Lを、前述の並進距離として算出する。なお、図12では、ステップS510の処理を説明するために仮想空間VS内に操作対象Nを配置した様子を例にとって説明したが、ポテンシャル算出部38は、仮想空間VS内に操作対象Nを配置せずに、操作対象Nの組付位置を示す点の仮想空間内における座標と、ポテンシャル算出部38がステップS510において選択した座標とに基づいて並進距離を算出する構成であってもよい。以下では、仮想空間VS内での各点を示す座標を座標(x,y)とした場合、その座標における並進距離Sの値を並進距離S(x,y)と表す。
このように、ポテンシャル算出部38は、図11に示したステップS200からステップS510までの処理を繰り返し行うことにより、操作対象Nの組付位置と、仮想空間内の全ての点それぞれとの間の距離を、並進距離S(x,y)として算出する。
次に、ポテンシャル算出部38は、ステップS510において算出した並進距離S(x,y)に基づいて、並進距離S(x,y)の全ての点の中での最大値StMAXを検出する(ステップS520)。
次に、ポテンシャル算出部38は、ステップS520において検出した並進距離S(x,y)の最大値StMAXに基づいて、作業領域内の各点における距離ポテンシャルを算出する(ステップS530)。ここで、この距離ポテンシャルを算出する処理について説明する。ポテンシャル算出部38は、以下に示す式(4)に基づいて作業領域内の各点における距離ポテンシャルを算出する。
PT(x,y)=StMAX−S(x,y) ・・・(4)
ここで、PT(x,y)は、作業領域内のある点を示す座標(x,y)における距離ポテンシャルであり、並進距離に基づいて算出される距離ポテンシャル(以下、並進距離ポテンシャルと称する)を表す。上記の式(4)は、並進距離の最大値StMAXから、作業領域内のある点を示す座標(x,y)における並進距離S(x,y)を減算した値を、座標(x,y)における並進距離ポテンシャルとして定義する式である。このように並進距離ポテンシャルを定義することで、作業領域内の点のうち並進距離ポテンシャルが大きな点は、操作対象Nが組付位置に近い、すなわち操作対象Nが組付対象Oに近いことを表すことができる。
ロボット20は、例えば、操作対象Nと組付対象Oの間の他の物体が無い場合、操作対象Nが組付対象Oから遠い位置では、操作対象Nが組付対象Oに接触しないために速く操作対象Nを移動させることができる。また、ロボット20は、操作対象Nが組付対象Oに近い位置では、操作対象Nが組付対象Oに接触してしまう可能性が高いために遅く操作対象Nを移動させた方が望ましい。このことから、座標(x,y)における並進距離ポテンシャルPT(x,y)の値は、座標(x,y)においてロボット20が操作対象Nを移動させることが可能な速さの指標とすることができる。
図13は、このようにして算出された並進距離ポテンシャルの一例を表すグラフを示す図である。図13には、並進距離ポテンシャルの一例を表すグラフを示す。図13に示したグラフから、ポテンシャル算出部38が算出した並進距離ポテンシャルは、上に凸の形状のグラフとなり、操作対象Nの組付位置から遠ざかるほどに値が小さくなることが分かる。なお、図13に示したグラフにおける最大値は、操作対象Nの組付位置における並進距離ポテンシャルの値である。
このように、ポテンシャル算出部38は、図11に示したステップS200からステップS530までの処理を実行することにより、並進距離ポテンシャルを算出することができる。
図14は、ステップS130において可動ポテンシャルと並進距離ポテンシャルを合算することによりポテンシャル算出部38が算出した経路ポテンシャルの一例を表すグラフを示す図である。図10に示したように可動ポテンシャルの大きさが不連続に変化しているため、図14に示したようにポテンシャル算出部38が算出した経路ポテンシャルは、その大きさが不連続に変化する。
ここで、制御装置30が備える制御部36の平滑化処理部39は、図5に示したステップS140でこの不連続に変化する経路ポテンシャルにローパスフィルターを適用することで、図15に示すような滑らかな経路ポテンシャルを生成する。図15は、平滑化処理部39が生成した滑らかな経路ポテンシャルの一例を表すグラフを示す図である。平滑化処理部39が図15に示すような滑らかな経路ポテンシャルを生成するため、ロボット制御部43は、滑らかな経路ポテンシャルに基づいて、ロボット20に所定の作業を行わせることができる。その結果、マニピュレーターMNPのアクチュエーターに掛かる負荷を抑制することができる。
ここで、図15に示した経路ポテンシャルを参照し、図5に示したステップS150の経路生成処理について詳しく説明する。図15に示した経路ポテンシャルの値が他の位置に比べて相対的に低い位置は、操作対象Nが組付対象Oや他の物体と干渉する可能性が低い位置であり、且つ組付対象Oから遠いために速く移動させることができる位置である。また、経路ポテンシャルの値が他の位置に比べて相対的に高い位置は、操作対象Nが組付対象Oや他の物体と干渉する可能性が高い位置であり、且つ組付対象Oに近いために遅く移動させなければならない位置である。
そのため、ロボット20が操作対象Nを組付対象Oに組み付けるために移動させる際、ロボット20は、経路ポテンシャルの値が低い位置を経由して移動させることによって、操作対象Nと他の物体との干渉の抑制及び操作対象Nを移動させる時間の短縮を図ることができる。
これを実現するための方法として、ステップS150における経路生成部40は、経路ポテンシャルの値を参照し、操作対象Nの組付位置に隣接する位置のうち、経路ポテンシャルの値が最も小さな位置を経由点として特定する。経由点は、ロボット20が操作対象Nを初期の位置から組付位置まで移動させる際に操作対象Nが経由する点のことである。以下では、説明の便宜上、操作対象Nの初期の位置を、初期位置と称して説明する。
ここで、ある位置Xに隣接する位置とは、作業領域内の位置を示す座標が隣接する位置のことである。この一例において、作業領域内の位置は、図2に示した座標軸によって表される二次元平面上の位置であり、当該座標軸の座標値によって示される。この座標値を変化させる場合、その変化量は、数学的には無限に小さな値にすることができる。しかし、実際の制御においては、当該変化量は、無限に小さな値にすることができず、ある有限の最小値にしなければならない。そのため、この一例における作業領域での位置は、図2に示した座標軸の座標値によって示される複数の格子点によって表される。すなわち、ある位置Xに隣接する位置とは、位置Xを表す格子点に隣接する他の格子点が表す位置のことである。以下では、説明の便宜上、ある位置Xに隣接する位置を、位置Xの隣接位置と称して説明する。
経路生成部40は、組付位置に隣接する経由点を特定した後、当該経由点に隣接する位置のうち、経路ポテンシャルの値が最も小さな座標を次の経由点として特定する。これを繰り返し行うことにより、経路生成部40は、組付位置から初期位置までの間を複数の経由点を介して繋ぐ。そして、経路生成部40は、組付位置と、初期位置と、これらの複数の経由点とのうち、隣接する位置同士を線によって結ぶことにより、操作対象Nを組付対象Oに組み付けるまでの経路を生成する。
なお、経路生成部40は、経由点を特定する際、経路ポテンシャルの値が同じ位置が2つ以上ある場合、例えば、2つ以上ある当該位置のうち、操作対象Nの初期位置との間の距離が最も近い位置を次の経由点として特定する。また、経路生成部40は、この一例において、一度経由した経由点を再び経由点として特定することを行わない場合について説明したが、これに代えて、一度経由した経由点を再び経由点として特定する構成であってもよい。この場合、経路生成部40は、例えば、前回に特定した経由点を次の経由点として選択しない等、ある2つの経由点の間で経由点の特定が繰り返し行われてしまうことを抑制する必要がある。
ここで、図5に示したステップS160の速さ決定処理について詳しく説明する。速さ決定部41は、ステップS150において経路生成部40が特定した経由点のそれぞれにおいてロボット20が操作対象Nを移動させる速さを決定する。この決定の際、速さ決定部41は、例えば、図15に示した経路ポテンシャルの値を参照し、複数の経由点のそれぞれにおける経路ポテンシャルの値の逆数に所定の速さを乗じた値を、複数の経由点のそれぞれにおいてロボット20が操作対象Nを移動させる速さとして算出する。
なお、速さ決定部41は、複数の経由点のそれぞれにおける経路ポテンシャルの値の逆数に所定の速さを加算した値を、複数の経由点のそれぞれにおいてロボット20が操作対象Nを移動させる速さとして算出する方法や、複数の経由点のそれぞれにおける経路ポテンシャルの値の逆数に所定の重みを乗じた値に所定の速さを乗じた値を、複数の経由点のそれぞれにおいてロボット20が操作対象Nを移動させる速さとして算出する方法等、経路ポテンシャルの値の逆数に基づく他の算出方法によって、複数の経由点のそれぞれにおいてロボット20が操作対象Nを移動させる速さを算出する構成であってもよい。また、速さ決定部41は、複数の経由点のそれぞれにおいてロボット20が操作対象Nを移動させる速さに上限を設けてもよい。例えば、速さ決定部41は、複数の経由点のそれぞれにおける経路ポテンシャルの値の逆数の値のうち、所定の上限値を超えている値を所定の上限値に変更することにより、複数の経由点のそれぞれにおいてロボット20が操作対象Nを移動させる速さに上限を設ける構成であってもよい。
ここで、速さ決定部41が決定した経路点毎の速さは、隣接する経路点同士の間で不連続に変化している。すなわち、速さ決定部41が決定した不連続に変化している速さに基づいてロボット20が操作対象Nを移動させた場合、ロボット20が備えるアクチュエーター等に余計な負荷が掛かってしまうことがある。これを抑制するため、速さ決定部41は、経路点毎に決定した速さが、隣接する経路点同士の間で連続的に(滑らかに)変化するように、経路点毎に決定した速さの変化を表す関数を、例えば、5次多項式を用いてフィッティングすることにより平滑化(平均化)する。なお、速さ決定部41は、5次多項式に代えて、他の多項式や特殊関数、三角関数等を用いてフィッティングする構成であってもよい。
以上説明したように、第1実施形態におけるロボットシステム1(あるいは、ロボット20)は、アームとともに動く操作対象Nと組付対象Oとの相対的な位置及び姿勢、及び操作対象Nの初期位置に基づいて経路を生成する。これにより、ロボットシステム1は、操作対象Nと組付対象Oとの相対的な位置及び姿勢、及び操作対象Nの組付位置に基づく経路に沿って操作対象Nを移動させることができる。その結果、ロボットシステム1は、例えば、他の物体との干渉の抑制及び操作対象Nを移動させる時間の短縮を図ることができる。
また、ロボットシステム1は、操作対象Nと組付対象Oとの相対的な位置及び姿勢に基づく操作対象Nの移動可能な範囲を用いて経路を生成する。これにより、ロボットシステム1は、操作対象Nの移動可能な範囲を用いて生成した経路に沿って操作対象Nを移動させることができる。
また、ロボットシステム1は、操作対象Nの移動可能な範囲に基づいて、操作対象Nと組付対象Oとの相対的な位置及び姿勢に応じた操作対象Nの動かし難さ又は動かし易さの指標となる量である可動ポテンシャルを算出し、算出された可動ポテンシャルを用いて経路を生成する。これにより、ロボットシステム1は、可動ポテンシャルを用いて生成した経路に沿って操作対象Nを移動させることができる。
また、ロボットシステム1は、操作対象Nの組付位置と操作対象Nの作業領域内における他の位置とを用いて経路を生成する。これにより、ロボットシステム1は、操作対象Nの組付位置と操作対象Nの作業領域内における他の位置とを用いて生成した経路に沿って操作対象Nを移動させることができる。
また、ロボットシステム1は、操作対象Nと組付対象Oとの相対的な位置及び姿勢と操作対象Nの組付位置に基づいてアームを移動させる速さを決定する。これにより、ロボットシステム1は、操作対象Nと組付対象Oとの相対位置姿勢と操作対象Nの組付位置に基づいて決定した速さによって操作対象Nを移動させることができる。
また、ロボットシステム1は、操作対象Nと組付対象Oとの相対的な位置及び姿勢に基づく操作対象Nの移動可能な範囲を用いてアームを移動させる速さを決定する。これにより、ロボットシステム1は、操作対象Nの移動可能な範囲を用いて決定した速さによって操作対象Nを移動させることができる。
また、ロボットシステム1は、操作対象Nと組付対象Oとの相対的な位置及び姿勢に応じた操作対象Nの動かし難さ又は動かし易さの指標となる量である可動ポテンシャルを算出し、算出された可動ポテンシャルを用いてアームを移動させる速さを決定する。これにより、ロボットシステム1は、可動ポテンシャルを用いて決定した速さによって操作対象Nを移動させることができる。
また、ロボットシステム1は、操作対象Nの組付位置と操作対象Nの作業領域内における他の位置とを用いてアームを移動させる速さを決定する。これにより、ロボットシステム1は、操作対象Nの組付位置と操作対象Nの作業領域内における他の位置とを用いて決定した速さによって操作対象Nを移動させることができる。
<第2実施形態>
以下、本発明の第2実施形態について、図面を参照して説明する。なお、第2実施形態では、第1実施形態と同様な構成部には、同じ符号を付してある。
第2実施形態では、制御部36は、可動領域算出部37とポテンシャル算出部38に代えて、可動領域算出部37aとポテンシャル算出部38aを備える。
可動領域算出部37aは、可動領域算出部37によるステップS100の可動領域算出処理に代えて、以下で説明する可動領域算出処理を行う。より具体的には、可動領域算出部37aは、ステップS100において、図16に示す並進可動領域算出処理と、図17に示す回転可動領域算出処理とを行う。
ポテンシャル算出部38aは、ポテンシャル算出部38によるステップS120の距離ポテンシャル算出処理に代えて、以下で説明する距離ポテンシャル算出処理を行う。より具体的には、ポテンシャル算出部38aは、ステップS120において、図18に示す距離ポテンシャル算出処理を行う。
以下、図16を参照して、可動領域算出部37aによる並進可動領域算出処理について説明する。図16は、可動領域算出部37aによる並進可動領域算出処理の流れの一例を示すフローチャートである。図16に示した並進可動領域算出処理は、図6に示した並進可動領域を位置の関数として算出する並進可動領域算出処理と異なり、並進可動領域を位置と姿勢の関数として算出する。
まず、可動領域算出部37aは、作業領域を示す情報を記憶部32から読み込み、読み込まれた作業領域を示す情報に基づいて作業領域を表す仮想空間を生成する。そして、可動領域算出部37aは、生成された仮想空間の各点を示す座標を1つずつ選択し、選択された座標毎に、ステップS610からステップS650までの処理を繰り返し行う(ステップS600)。
次に、可動領域算出部37aは、ステップS600で選択された座標が示す仮想空間の点に、仮想的に操作対象Nを配置する。この時、可動領域算出部37aは、仮想空間の点に操作対象Nの重心の位置が一致するように操作対象Nが配置する。また、可動領域算出部37aは、仮想空間の点に配置された操作対象Nの姿勢を、所定の初期姿勢となるまで操作対象Nを回転させる。そして、可動領域算出部37aは、操作対象Nの姿勢を所定角度ずつ変え、それぞれの姿勢毎にステップS620からステップS650までの処理を繰り返し行う(ステップS610)。
次に、可動領域算出部37aは、数値を示す情報を格納可能な変数Dを生成し、変数Dの値をゼロに初期化する(ステップS620)。次に、可動領域算出部37aは、ステップS600で選択された座標が示す仮想空間の点に、ステップS610で選択された姿勢で配置された操作対象Nが4つの方向(すなわち、x軸の正方向、x軸の負方向、y軸の正方向、y軸の負方向)のそれぞれへの移動可能な距離の和を算出する(ステップS630)。次に、可動領域算出部37aは、ステップS630で算出された4つの方向への移動可能な距離の和を、ステップS620で生成された変数Dに格納されている値に加算する(ステップS640)。
以下、図17を参照して、可動領域算出部37aによる回転可動領域算出処理について説明する。図17は、可動領域算出部37aによる回転可動領域算出処理の流れの一例を示すフローチャートである。図17に示した回転可動領域算出処理は、図7に示した回転可動領域を位置の関数として算出する回転可動領域算出処理と異なり、回転可動領域を位置と姿勢の関数として算出する。
まず、可動領域算出部37aは、作業領域を示す情報を記憶部32から読み込み、読み込まれた作業領域を示す情報に基づいて作業領域を表す仮想空間を生成する。そして、可動領域算出部37aは、生成された仮想空間の各点を示す座標を1つずつ選択し、選択された座標毎に、ステップS710からステップS850までの処理を繰り返し行う(ステップS700)。なお、可動領域算出部37aにより回転可動領域算出処理が図13に示した並進可動領域算出処理の後に(又は並列に)行われる場合、すでに仮想空間が生成されているため、ステップS700において新たに仮想空間を生成しなくてもよい。
次に、可動領域算出部37aは、ステップS700で選択された座標が示す仮想空間の点に、仮想的に操作対象Nを配置する。この時、可動領域算出部37aは、仮想空間の点に操作対象Nの重心の位置が一致するように操作対象Nが配置する。また、可動領域算出部37aは、仮想空間の点に配置された操作対象Nの姿勢を、所定の初期姿勢となるまで操作対象Nを回転させる。そして、可動領域算出部37aは、操作対象Nの姿勢を所定角度ずつ変え、それぞれの姿勢毎にステップS720からステップS850までの処理を繰り返し行う(ステップS710)。
次に、可動領域算出部37aは、数値を示す情報を格納可能な変数D+を生成し、変数D+の値をゼロに初期化する(ステップS720)。次に、可動領域算出部37aは、ステップS700で選択された座標が示す仮想空間の点に配置された操作対象Nであって、現在の姿勢の操作対象Nが、図8に示した仮想空間VSの枠や組付対象Oの輪郭に干渉(すなわち、接触)しているか否かを判定する(ステップS730)。
操作対象Nが仮想空間VSの枠や組付対象Oの輪郭に接触していないと判定した場合(ステップS730−No)、可動領域算出部37aは、ステップS750における操作対象Nの回転に係る回転角の累積値が360°に達したか否かを判定する(ステップS740)。操作対象Nの回転に係る回転角の累積値が360°に達していないと判定した場合(ステップS740−No)、可動領域算出部37aは、ステップS700で選択された座標が示す仮想空間の点に配置された操作対象Nであって、現在の姿勢の操作対象Nを、例えば、操作対象Nの重心を中心として正方向に所定角度だけ回転させ(ステップS750)、再びステップS730の判定を行う。ここで、所定角度は、その倍数に360°を含む任意の角度であることが望ましく、この一例において、5°や10°等であるとするが、その倍数に360°を含まない他の角度であってもよい。一方、操作対象Nの回転に係る回転角の累積値が360°に達していると判定した場合(ステップS740−Yes)、可動領域算出部37aは、ステップS750における操作対象Nの回転に係る回転角の累積値を変数D+に代入する(ステップS760)。
一方、ステップS730で操作対象Nが仮想空間VSの枠や組付対象Oの輪郭に干渉(すなわち、接触)していると判定した場合(ステップS730−Yes)、可動領域算出部37aは、ステップS760に遷移し、ステップS750における操作対象Nの回転に係る回転角の累積値を変数D+に代入する。次に、可動領域算出部37aは、ステップS700で選択された座標が示す仮想空間の点に配置された操作対象Nの姿勢を、ステップS710で選択された姿勢に戻す(ステップS770)。
次に、可動領域算出部37aは、数値を示す情報を格納可能な変数D−を生成し、変数D−の値をゼロに初期化する(ステップS780)。次に、可動領域算出部37aは、ステップS700で選択された座標が示す仮想空間の点に配置された操作対象Nであって、現在の姿勢の操作対象Nが、図8に示した仮想空間VSの枠や組付対象Oの輪郭に干渉(すなわち、接触)しているか否かを判定する(ステップS790)。
操作対象Nが仮想空間VSの枠や組付対象Oの輪郭に接触していないと判定した場合(ステップS790−No)、可動領域算出部37aは、ステップS810における操作対象Nの回転に係る回転角の絶対値の累積値が360°に達したか否かを判定する(ステップS800)。操作対象Nの回転に係る回転角の累積値が360°に達していないと判定した場合(ステップS800−No)、可動領域算出部37aは、ステップS700で選択された座標が示す仮想空間の点に配置された操作対象Nであって、現在の姿勢の操作対象Nを、例えば、操作対象Nの重心を中心として負方向に所定角度だけ回転させ(ステップS810)、再びステップS790の判定を行う。ここで、所定角度は、その倍数に360°を含む任意の角度であることが望ましく、この一例において、5°や10°等であるとするが、その倍数に360°を含まない他の角度であってもよい。一方、操作対象Nの回転に係る回転角の累積値が360°に達していると判定した場合(ステップS800−Yes)、可動領域算出部37aは、ステップS810における操作対象Nの回転に係る回転角の累積値を変数D−に代入する(ステップS820)。
一方、ステップS790で操作対象Nが仮想空間VSの枠や組付対象Oの輪郭に干渉(すなわち、接触)していると判定した場合(ステップS790−Yes)、可動領域算出部37aは、ステップS820に遷移し、ステップS810における操作対象Nの回転に係る回転角の累積値を変数D−に代入する。次に、可動領域算出部37aは、変数D+に代入されている値が変数D−に代入されている値未満であるか否かを判定する(ステップS830)。変数D+に代入されている値が変数D−に代入されている値未満であると判定した場合(ステップS830−Yes)、可動領域算出部37aは、変数D+の値を回転可動領域に代入する(ステップS840)。一方、変数D+に代入されている値が変数D−に代入されている値以上であると判定した場合(ステップS830−No)、可動領域算出部37aは、変数D−の値を回転可動領域に代入する(ステップS850)。
このように、可動領域算出部37aは、ステップS600からステップS650までの処理と、ステップS700からステップS850までの処理とをそれぞれ繰り返し行うことで、作業領域内の各点における操作対象Nの並進可動領域及び回転可動領域を、操作対象Nの姿勢毎に算出する。
なお、ステップS730において、可動領域算出部37aは、変数D−に代入されている値が変数D+に代入されている値未満であるか否かを判定する構成であってもよい。また、可動領域算出部37aは、ステップS730からステップS760までの処理と、ステップS780からステップS820までの処理とを逆の順で行う構成であってもよく、同時に行う構成であってもよい。
以下、図18を参照して、ポテンシャル算出部38aによる距離ポテンシャル算出処理について説明する。図18は、ポテンシャル算出部38aによる距離ポテンシャル算出処理の流れの一例を示すフローチャートである。図18に示した距離ポテンシャル算出処理は、図11に示した距離ポテンシャルを位置の関数(すなわち、並進距離ポテンシャル)として算出する距離ポテンシャル算出処理と異なり、距離ポテンシャルを位置と姿勢の関数として算出する。
まず、ポテンシャル算出部38aは、作業領域を示す情報を記憶部32から読み込み、読み込まれた作業領域を示す情報に基づいて作業領域を表す仮想空間を生成する。そして、ポテンシャル算出部38aは、生成された仮想空間の各点を示す座標を1つずつ選択し、選択された座標毎に、ステップS910からステップS930までの処理を繰り返し行う(ステップS900)。なお、可動領域算出部37aにより回転可動領域算出処理が図16に示した並進可動領域算出処理の後に(又は並列に)行われる場合、すでに仮想空間が生成されているため、ステップS900において新たに仮想空間を生成しなくてもよい。
次に、ポテンシャル算出部38aは、ステップS900で選択された座標が示す仮想空間の点に、仮想的に操作対象Nを配置する。この時、ポテンシャル算出部38aは、仮想空間の点に操作対象Nの重心の位置が一致するように操作対象Nが配置する。また、ポテンシャル算出部38aは、仮想空間の点に配置された操作対象Nの姿勢を、所定の初期姿勢となるまで操作対象Nを回転させる。そして、ポテンシャル算出部38aは、操作対象Nの姿勢を所定角度ずつ変え、それぞれの姿勢毎にステップS920からステップS930までの処理を繰り返し行う(ステップS910)。
ポテンシャル算出部38aは、作業領域内における操作対象Nの組付位置と、ステップS900において選択した座標(x,y)が示す位置との間の距離を並進距離S(x,y)として算出する(ステップS920)。次に、ポテンシャル算出部38aは、例えば、作業領域内における操作対象Nの組付位置に対応する操作対象Nの組付姿勢を表す角度ベクトル(姿勢ベクトル)θと、ステップS920において選択した操作対象Nの姿勢を表す角度ベクトルθとの間の距離を、回転距離S(θ)として以下の式を用いて算出する。
(θ)=√(θ−θ)
ステップS900からステップS930までの繰り返し処理により、ポテンシャル算出部38aは、仮想領域内のすべての位置及び姿勢毎に、並進距離S(x,y)と回転距離S(θ)を算出することができる。
次に、ポテンシャル算出部38aは、ステップS900からステップS930までの繰り返し処理により算出した並進距離S(x,y)及び回転距離S(θ)を合算した合計距離Stotal(x,y,θ)を算出する。そして、ポテンシャル算出部38aは、算出した合計距離Stotal(x,y,θ)の全ての点の中での最大値SMAXを検出する(ステップS940)。
次に、ポテンシャル算出部38aは、ステップS940において検出した合計距離Stotal(x,y,θ)の最大値SMAXに基づいて、作業領域内の各点における距離ポテンシャルを算出する(ステップS950)。より具体的には、ポテンシャル算出部38aは、以下に示す式(5)に基づいて作業領域内の各点における距離ポテンシャルを算出する。
PT(x,y,θ)=SMAX−Stotal(x,y,θ) ・・・(5)
ここで、PT(x,y,θ)は、作業領域内の位置及び姿勢(x,y,θ)における距離ポテンシャルであり、並進距離及び回転距離に基づいて算出される距離ポテンシャルを表す。上記の式(5)は、合計距離の最大値SMAXから、作業領域内の位置及び姿勢(x,y,θ)における合計距離Stotal(x,y,θ)を減算した値を、当該位置及び姿勢(x,y,θ)における距離ポテンシャルとして定義する式である。このように距離ポテンシャルを定義することで、作業領域内の点のうち距離ポテンシャルが大きな点は、操作対象Nが組付位置に近い、すなわち操作対象Nが組付対象Oに近いことを表すことができる。
以上説明したように、第2実施形態におけるロボットシステム1は、操作対象Nの組付位置と、当該組付位置に対応する操作対象Nの組付姿勢と、操作対象Nの作業領域内における他の位置及び姿勢とを用いて経路を生成する。これにより、ロボットシステム1は、操作対象Nの組付位置と、当該組付位置に対応する操作対象Nの組付姿勢と、操作対象Nの作業領域内における他の位置及び姿勢とを用いて生成した経路に沿って操作対象Nを移動させることができる。
また、ロボットシステム1は、操作対象Nの組付位置と、当該組付位置に対応する操作対象Nの組付姿勢と、操作対象Nの作業領域内における他の位置及び姿勢とを用いてアームを移動させる速さを決定する。これにより、ロボットは、操作対象Nの組付位置と、当該組付位置に対応する操作対象Nの組付姿勢と、操作対象Nの作業領域内における他の位置及び姿勢とを用いて決定した速さによって操作対象Nを移動させることができる。
なお、組付位置は、第1位置、及び第3位置それぞれの一例である。また、組付姿勢は、第1位置に対応する第1姿勢、及び第3位置に対応する第3姿勢それぞれの一例である。
以上、この発明の実施形態を、図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない限り、変更、置換、削除等されてもよい。
また、以上に説明した装置(例えば、ロボットシステム1の制御装置30)における任意の構成部の機能を実現するためのプログラムを、コンピューター読み取り可能な記録媒体に記録し、そのプログラムをコンピューターシステムに読み込ませて実行するようにしてもよい。なお、ここでいう「コンピューターシステム」とは、OS(Operating System)や周辺機器等のハードウェアを含むものとする。また、「コンピューター読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM(Read Only Memory)、CD(Compact Disk)−ROM等の可搬媒体、コンピューターシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピューター読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムが送信された場合のサーバーやクライアントとなるコンピューターシステム内部の揮発性メモリー(RAM:Random Access Memory)のように、一定時間プログラムを保持しているものも含むものとする。
また、上記のプログラムは、このプログラムを記憶装置等に格納したコンピューターシステムから、伝送媒体を介して、あるいは、伝送媒体中の伝送波により他のコンピューターシステムに伝送されてもよい。ここで、プログラムを伝送する「伝送媒体」は、インターネット等のネットワーク(通信網)や電話回線等の通信回線(通信線)のように情報を伝送する機能を有する媒体のことをいう。
また、上記のプログラムは、前述した機能の一部を実現するためのものであってもよい。さらに、上記のプログラムは、前述した機能をコンピューターシステムにすでに記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル(差分プログラム)であってもよい。
1 ロボットシステム、20 ロボット、30 制御装置、31 CPU、32 記憶部、33 入力受付部、34 通信部、35 表示部、36 制御部、37 可動領域算出部、38 ポテンシャル算出部、39 平滑化処理部、40 経路生成部、41 速さ決定部、42 力センサー取得部、43 ロボット制御部

Claims (12)

  1. アームと、
    前記アームを動作させる制御部と、を含み、
    前記制御部は、前記アームとともに動く第1物体と第2物体との相対位置姿勢、及び前記第1物体の第1位置に基づいて経路を生成する、
    ロボット。
  2. 前記制御部は、前記相対位置姿勢に基づく前記第1物体の移動可能な範囲を用いて前記経路を生成する、
    請求項1に記載のロボット。
  3. 前記制御部は、前記移動可能な範囲に基づいて、前記相対位置姿勢に応じた前記第1物体の動かし難さ又は動かし易さの指標となる量を算出し、算出された前記指標となる量を用いて前記経路を生成する、
    請求項2に記載のロボット。
  4. 前記制御部は、前記第1位置と前記第1物体の第2位置とを用いて前記経路を生成する、
    請求項1から3のうちいずれか一項に記載のロボット。
  5. 前記制御部は、更に前記第1位置に対応する第1姿勢と、前記第2位置に対応する第2姿勢とを用いて前記経路を生成する、
    請求項4に記載のロボット。
  6. 前記制御部は、前記相対位置姿勢と前記第1位置に基づいて前記アームを移動させる速さを決定する、
    請求項1から5のうちいずれか一項に記載のロボット。
  7. 前記制御部は、前記相対位置姿勢に基づく前記第1物体の移動可能な範囲を用いて前記速さを決定する、
    請求項6に記載のロボット。
  8. 前記制御部は、前記相対位置姿勢に応じた前記第1物体の動かし難さ又は動かし易さの指標となる量を算出し、算出された前記指標となる量を用いて前記速さを決定する、
    請求項7に記載のロボット。
  9. 前記制御部は、前記第1物体の第3位置と前記第1物体の第4位置とを用いて前記速さを決定する、
    請求項7又は8に記載のロボット。
  10. 前記制御部は、更に前記第3位置に対応する第3姿勢と、前記第4位置に対応する第4姿勢とを用いて前記速さを決定する、
    請求項9に記載のロボット。
  11. ロボットが備えるアームとともに動く第1物体と第2物体との相対位置姿勢、及び前記第1物体の第1位置に基づいて経路を生成する、
    制御装置。
  12. ロボットが備えるアームとともに動く第1物体と第2物体との相対位置姿勢、及び前記第1物体の第1位置に基づいて経路を生成する、
    制御方法。
JP2015080904A 2015-04-10 2015-04-10 ロボット、制御装置、及び制御方法 Active JP6651707B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2015080904A JP6651707B2 (ja) 2015-04-10 2015-04-10 ロボット、制御装置、及び制御方法
US15/092,749 US9925668B2 (en) 2015-04-10 2016-04-07 Robot, control unit, and control method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2015080904A JP6651707B2 (ja) 2015-04-10 2015-04-10 ロボット、制御装置、及び制御方法

Publications (3)

Publication Number Publication Date
JP2016198855A true JP2016198855A (ja) 2016-12-01
JP2016198855A5 JP2016198855A5 (ja) 2018-04-05
JP6651707B2 JP6651707B2 (ja) 2020-02-19

Family

ID=57111214

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015080904A Active JP6651707B2 (ja) 2015-04-10 2015-04-10 ロボット、制御装置、及び制御方法

Country Status (2)

Country Link
US (1) US9925668B2 (ja)
JP (1) JP6651707B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112757344B (zh) * 2021-01-20 2022-03-11 清华大学 基于力位状态映射模型的机器人过盈轴孔装配方法和装置

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000020117A (ja) * 1998-06-29 2000-01-21 Yaskawa Electric Corp ロボットの動作経路計画方法およびその装置
JP2000176868A (ja) * 1998-12-16 2000-06-27 Toyoda Mach Works Ltd ロボット制御装置
JP2003280710A (ja) * 2002-03-20 2003-10-02 Japan Atom Energy Res Inst ロボットハンドの作業軌道の生成と制御方法
JP2006350620A (ja) * 2005-06-15 2006-12-28 Fuji Electric Holdings Co Ltd 自動組立システムにおける組立機構の動作教示方法
JP2010188485A (ja) * 2009-02-19 2010-09-02 Fuji Electric Holdings Co Ltd 動作軌道生成装置、動作軌道生成方法、ロボット制御装置及びロボット制御方法
JP2011108129A (ja) * 2009-11-20 2011-06-02 Murata Machinery Ltd 自律移動体とその制御方法
JP2012011495A (ja) * 2010-06-30 2012-01-19 Yaskawa Electric Corp ロボットの角度データ変換方法及び装置
WO2012124342A1 (ja) * 2011-03-17 2012-09-20 パナソニック株式会社 ロボット、ロボットの制御装置、制御方法、及び制御プログラム
JP2013242777A (ja) * 2012-05-22 2013-12-05 Tokyo Univ Of Agriculture & Technology 植物栽培方法と植物栽培システム
JP2014115924A (ja) * 2012-12-12 2014-06-26 Toyota Central R&D Labs Inc 経路修正装置

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5343385A (en) * 1993-08-17 1994-08-30 International Business Machines Corporation Interference-free insertion of a solid body into a cavity
JP2002355724A (ja) 2001-05-31 2002-12-10 Ricoh Co Ltd 組立分解工程設計支援装置
JP4917252B2 (ja) * 2004-07-23 2012-04-18 ファナック株式会社 アーク溶接用装置
JP5121266B2 (ja) 2007-03-15 2013-01-16 心治 篠田 組立ライン編成システム
JP4351281B2 (ja) * 2007-12-13 2009-10-28 ファナック株式会社 5軸加工機を制御する数値制御装置
US8577499B2 (en) * 2008-11-19 2013-11-05 Abb Technology Ab Method and a device for optimizing a programmed movement path for an industrial robot
JP5071361B2 (ja) 2008-12-09 2012-11-14 株式会社安川電機 複腕ロボットの作業プログラム作成方法および複腕ロボット
JP5528095B2 (ja) * 2009-12-22 2014-06-25 キヤノン株式会社 ロボットシステム、その制御装置及び方法
US8392002B2 (en) * 2010-10-14 2013-03-05 Delta Tau Data Systems, Inc. Hybrid machine control incorporating fast-tool servos
JP5744587B2 (ja) * 2011-03-24 2015-07-08 キヤノン株式会社 ロボット制御装置、ロボット制御方法、プログラム及び記録媒体
US9014857B2 (en) * 2012-01-13 2015-04-21 Toyota Motor Engineering & Manufacturing North America, Inc. Methods and computer-program products for generating grasp patterns for use by a robot
JP6443837B2 (ja) * 2014-09-29 2018-12-26 セイコーエプソン株式会社 ロボット、ロボットシステム、制御装置、及び制御方法
DE102014119532B4 (de) * 2014-12-23 2016-11-03 Ferrobotics Compliant Robot Technology Gmbh Robotergestütztes Schleifverfahren und Vorrichtung zum robotergestützten Schleifen

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000020117A (ja) * 1998-06-29 2000-01-21 Yaskawa Electric Corp ロボットの動作経路計画方法およびその装置
JP2000176868A (ja) * 1998-12-16 2000-06-27 Toyoda Mach Works Ltd ロボット制御装置
JP2003280710A (ja) * 2002-03-20 2003-10-02 Japan Atom Energy Res Inst ロボットハンドの作業軌道の生成と制御方法
JP2006350620A (ja) * 2005-06-15 2006-12-28 Fuji Electric Holdings Co Ltd 自動組立システムにおける組立機構の動作教示方法
JP2010188485A (ja) * 2009-02-19 2010-09-02 Fuji Electric Holdings Co Ltd 動作軌道生成装置、動作軌道生成方法、ロボット制御装置及びロボット制御方法
JP2011108129A (ja) * 2009-11-20 2011-06-02 Murata Machinery Ltd 自律移動体とその制御方法
JP2012011495A (ja) * 2010-06-30 2012-01-19 Yaskawa Electric Corp ロボットの角度データ変換方法及び装置
WO2012124342A1 (ja) * 2011-03-17 2012-09-20 パナソニック株式会社 ロボット、ロボットの制御装置、制御方法、及び制御プログラム
JP2013242777A (ja) * 2012-05-22 2013-12-05 Tokyo Univ Of Agriculture & Technology 植物栽培方法と植物栽培システム
JP2014115924A (ja) * 2012-12-12 2014-06-26 Toyota Central R&D Labs Inc 経路修正装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
鈴木 崇文,他2名: ""自律全方位牽引式搬送ロボットの開発"", 日本ロボット学会誌, vol. 第27巻,第8号, JPN6019008983, 22 October 2009 (2009-10-22), JP, pages 118 - 125, ISSN: 0004090636 *

Also Published As

Publication number Publication date
US9925668B2 (en) 2018-03-27
US20160297071A1 (en) 2016-10-13
JP6651707B2 (ja) 2020-02-19

Similar Documents

Publication Publication Date Title
JP6443837B2 (ja) ロボット、ロボットシステム、制御装置、及び制御方法
US10589424B2 (en) Robot control device, robot, and robot system
JP6137155B2 (ja) 干渉回避方法、制御装置及びプログラム
JP6733239B2 (ja) 制御装置及びロボットシステム
JP6223640B2 (ja) キャリブレーション装置およびこれを用いたロボットシステム
JP6380828B2 (ja) ロボット、ロボットシステム、制御装置、及び制御方法
CN112318506B (zh) 机械臂自动标定方法、装置、设备、机械臂和介质
US20170277167A1 (en) Robot system, robot control device, and robot
JP2017071018A (ja) ロボットシステム、ロボット、及びロボット制御装置
WO2024037658A1 (zh) 机器人指向动作控制方法、装置、电子设备和存储介质
JP6651707B2 (ja) ロボット、制御装置、及び制御方法
JP2018017653A (ja) 三次元計測装置、ロボット、ロボット制御装置、及びロボットシステム
JP2017219365A (ja) 位置姿勢算出装置、ロボット制御装置、及びロボット
JP2017202549A (ja) ロボット制御装置、ロボット、及びロボットシステム
JP6897398B2 (ja) 三次元形状測定装置、ロボットシステム、及び三次元形状測定方法
JP2017131990A (ja) 干渉回避方法
JP2016120530A (ja) ロボット、及びロボット校正システム
WO2022141160A1 (zh) 并联平台的主从映射方法、机械臂系统和存储介质
JP2019111588A (ja) ロボットシステム、情報処理装置、及びプログラム
JP6079293B2 (ja) ロボット制御システム、ロボット、教示装置、プログラム及びロボット制御方法
JP2019042836A (ja) ロボット制御装置、ロボット、ロボットシステムおよびロボット制御方法
JP2019051578A (ja) ロボット、ロボットシステム、及びロボット制御装置
JP2016013610A (ja) ロボット、及び制御方法
JP2020203368A (ja) ロボットシステム
JP2017052073A (ja) ロボットシステム、ロボット、及びロボット制御装置

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150521

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180116

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20180116

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180219

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20190319

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190508

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20190806

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190919

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: 20191210

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20200106

R150 Certificate of patent or registration of utility model

Ref document number: 6651707

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250