JPWO2018012110A1 - 処理装置、システム、および制御方法 - Google Patents

処理装置、システム、および制御方法 Download PDF

Info

Publication number
JPWO2018012110A1
JPWO2018012110A1 JP2018527417A JP2018527417A JPWO2018012110A1 JP WO2018012110 A1 JPWO2018012110 A1 JP WO2018012110A1 JP 2018527417 A JP2018527417 A JP 2018527417A JP 2018527417 A JP2018527417 A JP 2018527417A JP WO2018012110 A1 JPWO2018012110 A1 JP WO2018012110A1
Authority
JP
Japan
Prior art keywords
robot
force
operating body
processing unit
joint
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.)
Pending
Application number
JP2018527417A
Other languages
English (en)
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.)
Sony Corp
Original Assignee
Sony 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 Sony Corp filed Critical Sony Corp
Publication of JPWO2018012110A1 publication Critical patent/JPWO2018012110A1/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J3/00Manipulators of master-slave type, i.e. both controlling unit and controlled unit perform corresponding spatial movements
    • B25J3/04Manipulators of master-slave type, i.e. both controlling unit and controlled unit perform corresponding spatial movements involving servo mechanisms
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J13/00Controls for manipulators
    • B25J13/006Controls for manipulators by means of a wireless system for controlling one or several manipulators
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J13/00Controls for manipulators
    • B25J13/02Hand grip control means
    • B25J13/025Hand grip control means comprising haptic means
    • 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
    • B25J13/085Force or torque sensors
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J3/00Manipulators of master-slave type, i.e. both controlling unit and controlled unit perform corresponding spatial movements
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J5/00Manipulators mounted on wheels or on carriages
    • B25J5/007Manipulators mounted on wheels or on carriages mounted on wheels
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1602Programme controls characterised by the control system, structure, architecture
    • B25J9/161Hardware, e.g. neural networks, fuzzy logic, interfaces, processor
    • 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/1633Programme controls characterised by the control loop compliant, force, torque control, e.g. combined with position 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/1679Programme controls characterised by the tasks executed
    • B25J9/1689Teleoperation

Landscapes

  • Engineering & Computer Science (AREA)
  • Robotics (AREA)
  • Mechanical Engineering (AREA)
  • Human Computer Interaction (AREA)
  • Automation & Control Theory (AREA)
  • Artificial Intelligence (AREA)
  • Physics & Mathematics (AREA)
  • Evolutionary Computation (AREA)
  • Fuzzy Systems (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Manipulator (AREA)

Abstract

受動関節に接続されるリンクに設けられる操作体を含むロボットにおける、操作者が操作体を保持している保持力を推定することが可能な、新規かつ改良された処理装置、システム、および制御方法を提案する。受動関節に接続されるリンクに設けられる操作体と、操作体に印加される力を検出する力センサとを含む第1のロボット(200)に対応する、力センサ部分を仮想的な関節とみなすモデルに基づいて、操作者が操作体を保持している保持力を推定する処理部(102)を備える、処理装置が、提供される。

Description

本開示は、処理装置、システム、および制御方法に関する。
ロボットが備える力センサの値を補正する技術が開発されている。ロボットが備える力センサの値を補正する技術としては、例えば下記の特許文献1に記載の技術が挙げられる。
特開2008−142810号公報
ロボットが含む関節は、例えば、モータやアクチュエータなどにより駆動する関節(以下、「能動関節」と示す。)と、モータなどにより駆動しない関節(以下、「受動関節」と示す。)とに分類される。
受動関節に接続されるリンクに、操作者が操作を行うことが可能な操作体が設けられているロボットを想定すると、操作者によって当該操作体に印加される力には、例えば、操作者が操作体を操作しようとする力(以下、「操作力」と示す。)に加えて、操作者が操作体を保持しようとする力(以下、「保持力」と示す。)が含まれうる。上記のような操作体に印加される力は、例えば、ロボットに設けられている力センサによって、検出される。
ここで、例えば特許文献1に記載の技術では、ロボットの逆動力学演算から求まる重力項と動力学項(例えば、慣性力、コリオリ力など)が、力センサの値の補正に用いられる。よって、例えば特許文献1に記載の技術が用いられる場合には、ロボットの先端に取り付けられた作業ツールと、当該作業ツールにより作業が行われる対象物(特許文献1に記載のワーク)との間に作用する力に作用する正味の力を、求めることができる可能性がある。
しかしながら、逆動力学演算から求まる項は、ロボットの動力学に起因する要因を示すものであるので、例えば特許文献1に記載の技術のように、単に逆動力学演算から求まる項(逆動力学演算の結果)を利用したとしても、上記のような操作者が操作体を保持している保持力を、推定することはできない。
本開示では、受動関節に接続されるリンクに設けられる操作体を含むロボットにおける、操作者が操作体を保持している保持力を推定することが可能な、新規かつ改良された処理装置、システム、および制御方法を提案する。
本開示によれば、受動関節に接続されるリンクに設けられる操作体と、上記操作体に印加される力を検出する力センサとを含む第1のロボットに対応する、上記力センサ部分を仮想的な関節とみなすモデルに基づいて、操作者が上記操作体を保持している保持力を推定する処理部を備える、処理装置が、提供される。
また、本開示によれば、受動関節に接続されるリンクに設けられる操作体と、上記操作体に印加される力を検出する力センサとを含む第1のロボットと、力センサを含み、上記第1のロボットの動きに基づき動く第2のロボットと、上記第1のロボットの動きを制御する処理装置と、を有し、上記処理装置は、処理部を備え、上記処理部は、上記第1のロボットに対応する上記力センサ部分を仮想的な関節とみなすモデルに基づいて、操作者が上記操作体を保持している保持力を推定し、上記第1のロボットが含む上記力センサの検出結果と、推定された上記保持力とに基づいて、上記操作体に対する上記操作者の操作力を推定し、推定された上記操作力に基づいて上記第1のロボットの動きを制御する、システムが、提供される。
また、本開示によれば、受動関節に接続されるリンクに設けられる操作体と、上記操作体に印加される力を検出する力センサとを含むロボットに対応する、上記力センサ部分を仮想的な関節とみなすモデルに基づいて、操作者が上記操作体を保持している保持力を推定するステップと、上記ロボットが含む上記力センサの検出結果と、推定された上記保持力とに基づいて、上記操作体に対する上記操作者の操作力を推定するステップと、推定された上記操作力に基づいて上記ロボットの動きを制御するステップと、を有する、処理装置により実行される制御方法が、提供される。
本開示によれば、受動関節に接続されるリンクに設けられる操作体を含むロボットにおける、操作者が操作体を保持している保持力を推定することが、できる。
なお、上記の効果は必ずしも限定的なものではなく、上記の効果とともに、または上記の効果に代えて、本明細書に示されたいずれかの効果、または本明細書から把握されうる他の効果が奏されてもよい。
第1の実施形態に係るシステムの構成の一例を示す説明図である。 本実施形態に係るロボット(第1のロボット)の一例を示す説明図である。 第1の実施形態に係る処理装置のハードウェア構成の一例を示す説明図である。 ロボットの動きを制御するための処理部の構成の一例を説明するための説明図である。 第1の実施形態に係る処理装置が備える処理部の構成の一例を説明するための説明図である。 本実施形態に係る制御方法に係る処理の一例を示す流れ図である。 第2の実施形態に係るシステムの構成の一例を示す説明図である。 本実施形態に係るロボット(第2のロボット)の一例を示す説明図である。 第2の実施形態に係る処理装置におけるバイラテラル制御方法の概要を示す説明図である。 第2の実施形態に係る処理装置が備える処理部の構成の一例を説明するための説明図である。
以下に添付図面を参照しながら、本開示の好適な実施の形態について詳細に説明する。なお、本明細書及び図面において、実質的に同一の機能構成を有する構成要素については、同一の符号を付することにより重複説明を省略する。
また、以下では、下記に示す順序で説明を行う。
1.第1の実施形態に係るシステム
2.第2の実施形態に係るシステム
3.本実施形態に係るプログラム
(第1の実施形態に係るシステム)
図1は、第1の実施形態に係るシステム1000の構成の一例を示す説明図である。
システム1000は、例えば、処理装置100と、ロボット200とを有する。処理装置100とロボット200とは、例えば、任意の通信方式有線通信、または、任意の通信方式の無線通信によって、通信を行う。また、システム1000は、処理装置100とロボット200とが直接的に通信を行う構成であってもよいし、処理装置100とロボット200とが、ネットワーク(または他の装置)を介して通信を行う構成であってもよい。
[1]ロボット200(第1のロボット)
ロボット200は、例えば、受動関節を含む1または2以上の関節と、関節に接続されるリンクとを有するロボット(受動関節を含むリンク機構を有するロボット)である。ロボット200は、例えば、受動関節に接続されるリンクに設けられる操作体と、操作体に印加される力を検出する力センサとを含む。ここで、本実施形態に係る力センサとしては、例えば、“歪ゲージを用いる方式などの任意の方式の力覚センサ”や、“圧電素子やマイクロホンなどで振動を検出することにより触覚を得る方式などの任意の方式の触覚センサ”などの、操作体に印加される力を検出することが可能な任意のセンサが、挙げられる。ロボット200は、バッテリなどの内部電源(図示せず)から供給される電力、または、ロボット200の外部電源から供給される電力によって、駆動する。
また、ロボット200は、例えば、関節の動きを検出するための動きセンサを、関節それぞれに対応する位置に備える。上記動きセンサとしては、例えばエンコーダなどが挙げられる。
さらに、ロボット200が能動関節を有する場合、ロボット200は、例えば、能動関節を駆動させるための駆動機構を、関節それぞれに対応する位置に備える。上記駆動機構としては、例えば、モータとドライバとが挙げられる。
図2は、本実施形態に係るロボット200(第1のロボット)の一例を示す説明図である。図2は、並進3軸がモータによって駆動する能動関節(図2に示すA)で実現され、姿勢3軸が受動関節(図2に示すB)で実現されるロボットの一例を示している。
図2に示すロボット200では、受動関節に接続されるリンクに、操作体(図2に示すC)が設けられる。また、図2に示すロボット200では、操作体に印加される力を検出する力センサ(図2に示すD)が、操作体の根本部分に設けられる。
ここで、図2では、ロボット200に設けられる操作体が、スタイラス型の操作デバイスである例を示しているが、本実施形態に係る操作体は、図2に示す例に限られない。本実施形態に係る操作体としては、例えば、グローブ型の操作デバイスなどの、任意の形状の操作デバイスが挙げられる。また、本実施形態に係る操作体は、ハプティックデバイスに適用することが可能な、任意の操作デバイスであってもよい。また、ロボット200は、操作体を交換することが可能な構造を有していてもよい。
以下では、ロボット200が、図2に示す構成のロボットである場合を例に挙げる。なお、本実施形態に係る第1のロボットの構成が、図2に示す例に限られないことは、言うまでもない。
再度図1を参照して、ロボット200の構成の一例を説明する。ロボット200は、例えば、センサ部202と、駆動部204とを有する。
センサ部202は、例えば、ロボット200が有する関節の動きと、操作体に印加される力とをそれぞれ検出する。
センサ部202は、エンコーダなどの動きセンサによって、関節の動きを検出する。動きセンサは、例えば、動きを検出する対象の関節ごとに、関節の動きを検出することが可能な位置(関節に対応する位置)に設けられる。
また、センサ部202は、力センサによって、操作体に印加される力を検出する。力センサは、操作体の根本部分などの、操作体に印加される力を検出することが可能な位置に設けられる。
駆動部204は、能動関節を駆動させる。駆動部204は、能動関節を動かすモータと当該モータを動かすドライバとによって、能動関節を駆動させる。モータとドライバとは、例えば、能動関節ごとに、能動関節を動かすことが可能な位置に設けられる。また、ドライバは、複数の関節で共有されていてもよい。
駆動部204は、例えば、処理装置100などの外部装置から送信される制御信号に基づいて、能動関節を駆動させる。処理装置100が上記制御信号を送信する場合、処理装置100は、ロボット200の動きを制御する制御装置として機能する。以下では、処理装置100が、ロボット200の動きを制御する制御装置として機能する場合を主に例に挙げる。
[2]処理装置100
処理装置100は、例えば処理部102を備える。
また、処理装置100は、例えば、制御部(図示せず)や、ROM(Read Only Memory。図示せず)、RAM(Random Access Memory。図示せず)、記憶部(図示せず)、通信部(図示せず)、ユーザが操作可能な操作部(図示せず)、様々な画面を表示画面に表示する表示部(図示せず)などを備えていてもよい。処理装置100は、例えば、データの伝送路としてのバスにより上記各構成要素間を接続する。処理装置100は、バッテリなどの内部電源(図示せず)から供給される電力、または、処理装置100の外部電源から供給される電力によって、駆動する。
制御部(図示せず)は、MPU(Micro Processing Unit)などの演算回路で構成される、1または2以上のプロセッサや、各種処理回路などで構成され、処理装置100全体を制御する。また、制御部(図示せず)は、処理装置100において、例えば、処理部102の役目を果たしてもよい。
なお、処理部102は、処理部102における処理を実現可能な専用の(または汎用の)回路(例えば、制御部(図示せず)とは別体のプロセッサなど)で構成されていてもよい。
ROM(図示せず)は、制御部(図示せず)が使用するプログラムや演算パラメータなどの制御用データを記憶する。RAM(図示せず)は、制御部(図示せず)により実行されるプログラムなどを一時的に記憶する。
記憶部(図示せず)は、処理装置100が備える記憶手段であり、例えば、ロボット200(第1のロボット)に対応するモデル情報(後述する)などの、処理部102における処理に係るデータや、各種アプリケーションなど様々なデータを記憶する。
ここで、記憶部(図示せず)としては、例えば、ハードディスク(Hard Disk)などの磁気記録媒体や、フラッシュメモリ(flash memory)などの不揮発性メモリ(nonvolatile memory)などが挙げられる。また、記憶部(図示せず)は、処理装置100から着脱可能であってもよい。
通信部(図示せず)としては、例えば後述する通信インタフェースが挙げられる。また、操作部(図示せず)としては、例えば後述する操作入力デバイスが挙げられる。また、表示部(図示せず)としては、後述する表示デバイスが挙げられる。
[処理装置100のハードウェア構成例]
図3は、第1の実施形態に係る処理装置100のハードウェア構成の一例を示す説明図である。処理装置100は、例えば、MPU150と、ROM152と、RAM154と、記録媒体156と、入出力インタフェース158と、操作入力デバイス160と、表示デバイス162と、通信インタフェース164とを備える。また、処理装置100は、例えば、データの伝送路としてのバス166で各構成要素間を接続する。また、処理装置100は、例えば、処理装置100が備えているバッテリなどの内部電源から供給される電力、または、接続されている外部電源から供給される電力などによって、駆動する。
MPU150は、例えば、MPUなどの演算回路で構成される、1または2以上のプロセッサや、各種処理回路などで構成され、処理装置100全体を制御する制御部(図示せず)として機能する。また、MPU150は、処理装置100において、例えば処理部102の役目を果たす。なお、上述したように、処理部102は、処理部102の処理を実現可能な専用の(または汎用の)回路(例えば、MPU150とは別体のプロセッサなど)で構成されていてもよい。
ROM152は、MPU150が使用するプログラムや演算パラメータなどの制御用データなどを記憶する。RAM154は、例えば、MPU150により実行されるプログラムなどを一時的に記憶する。
記録媒体156は、記憶部(図示せず)として機能し、例えば、ロボット200(第1のロボット)に対応するモデル情報(後述する)などの、処理部102における処理に係るデータや、各種アプリケーションなど様々なデータを記憶する。ここで、記録媒体156としては、例えば、ハードディスクなどの磁気記録媒体や、フラッシュメモリなどの不揮発性メモリが挙げられる。また、記録媒体156は、処理装置100から着脱可能であってもよい。
入出力インタフェース158は、例えば、操作入力デバイス160や、表示デバイス162を接続する。操作入力デバイス160は、操作部(図示せず)として機能し、また、表示デバイス162は、表示部(図示せず)として機能する。ここで、入出力インタフェース158としては、例えば、USB(Universal Serial Bus)端子や、DVI(Digital Visual Interface)端子、HDMI(High-Definition Multimedia Interface)(登録商標)端子、各種処理回路などが挙げられる。
また、操作入力デバイス160は、例えば、処理装置100上に備えられ、処理装置100の内部で入出力インタフェース158と接続される。操作入力デバイス160としては、例えば、ボタンや、方向キー、ジョグダイヤルなどの回転型セレクタ、あるいは、これらの組み合わせなどが挙げられる。
また、表示デバイス162は、例えば、処理装置100上に備えられ、処理装置100の内部で入出力インタフェース158と接続される。表示デバイス162としては、例えば、液晶ディスプレイ(Liquid Crystal Display)や有機ELディスプレイ(Organic
Electro-Luminescence Display。または、OLEDディスプレイ(Organic Light Emitting Diode Display)ともよばれる。)などが挙げられる。
なお、入出力インタフェース158が、処理装置100の外部の操作入力デバイス(例えば、キーボードやマウスなど)や外部の表示デバイスなどの、外部デバイスと接続することも可能であることは、言うまでもない。また、表示デバイス162は、例えばタッチパネルなど、表示とユーザ操作とが可能なデバイスであってもよい。
通信インタフェース164は、処理装置100が備える通信手段であり、通信部(図示せず)として機能する。通信インタフェース164は、例えば、ネットワークを介して(あるいは、直接的に)、ロボット200などの外部装置などと、無線または有線で通信を行う。ここで、通信インタフェース164としては、例えば、通信アンテナおよびRF(Radio Frequency)回路(無線通信)や、IEEE802.15.1ポートおよび送受信回路(無線通信)、IEEE802.11ポートおよび送受信回路(無線通信)、あるいはLAN(Local Area Network)端子および送受信回路(有線通信)などが挙げられる。
処理装置100は、例えば図3に示す構成を有する。なお、第1の実施形態に係る処理装置100のハードウェア構成は、図3に示す構成に限られない。
例えば、処理装置100は、接続されている外部の通信デバイスを介して外部装置などと通信を行う場合、または、スタンドアロンで処理を行う場合(例えば、図1に示すロボット200と処理装置100とが、同一の装置である場合など)には、通信インタフェース164を備えていなくてもよい。また、通信インタフェース164は、複数の通信方式によって、1または2以上の外部装置などと通信を行うことが可能な構成であってもよい。
また、処理装置100は、例えば、記録媒体156、操作入力デバイス160、および表示デバイス162のうちの、1または2以上を備えない構成をとることが可能である。
また、処理装置100は、例えば、後述する処理装置100の適用例に応じた構成をとることが可能である。
また、例えば、図3に示す構成(または変形例に係る構成)の一部または全部は、1、または2以上のIC(Integrated Circuit)で実現されてもよい。
再度図1を参照して、処理装置100の構成の一例について説明する。処理部102は、ロボット200(第1のロボット。以下、同様とする。)において、操作者が操作体を保持している保持力を推定する。
処理部102は、ロボット200に対応する、力センサ部分を仮想的な関節とみなすモデルに基づいて、操作者が操作体を保持している保持力を推定する。処理部102は、例えば記憶部(図示せず)などの記録媒体に記憶されている、ロボット200に対応するモデル情報を読み出すことによって、ロボット200に対応する、力センサ部分を仮想的な関節とみなすモデルを特定する。
記憶部(図示せず)などの記録媒体では、例えば、ロボットを示す識別情報(例えばID)とモデル情報とが、テーブル(またはデータベース)などにより対応付けられて記憶される。処理部102は、上記テーブルなどを参照することによって、ロボット200から取得される識別情報と一致する識別情報に対応付けられているモデル情報を特定し、特定されたモデル情報を、記憶部(図示せず)などの記録媒体から読み出す。なお、ロボット200に対応する、力センサ部分を仮想的な関節とみなすモデルを特定する方法が、上記に示す例に限られないことは、言うまでもない。
処理部102における保持力の推定に係る処理の一例については、後述する。
また、処理部102は、推定された保持力に基づいて、ロボット200の動きを制御することも可能である。
処理部102は、ロボット200が含む力センサの検出結果と、推定された保持力とに基づいて、操作体に対する操作者の操作力を推定する。処理部102は、ロボット200が含む力センサの検出結果に基づく操作体に印加される力から、推定された保持力を減算することによって、操作力を推定する。上記力センサの検出結果に基づく操作体に印加される力は、力センサの検出結果が示す値そのものであってもよいし、力センサの検出結果が示す値が補正された値であってもよい。
処理部102における操作力の推定に係る処理の一例については、後述する。
さらに、処理部102は、推定された操作力に基づいてロボット200の動きを制御してもよい。
処理部102は、例えば、“ロボット200が有する能動関節を駆動させるモータを動作させる命令を含む制御信号を、ロボット200に対して送信する処理”を行うことによって、ロボット200の動きを制御する。上記制御信号は、処理装置100が備える通信部(図示せず)、または処理装置100に接続されている外部の通信デバイスを介して、ロボット200に送信される。
以下、処理部102が、ロボット200の動きを制御する場合を例に挙げて、処理部102の構成の一例、および処理部102における処理の一例を説明する。
[2−1]ロボット200の動きを制御するための構成の一例
処理部102の構成の一例を説明する前に、ロボット200の動きを制御するための構成の一例を説明する。図4は、ロボット200の動きを制御するための処理部10の構成の一例を説明するための説明図である。
図4に示す“Fhuman”は、操作者により操作体に印加される力を示している。また、図4に示す“FOperation”は、操作力を示しており、図4に示す“Fsu pport”は、保持力を示している。図4に示すように、操作者により操作体に印加される力には、操作力と保持力とが含まれる。
処理部10は、例えば、逆動力学演算器12と、加算器14と、変換器16と、制御器18とを有する。
逆動力学演算器12は、ロボット200から取得される動きセンサの検出結果(図4に示す“(θ,θ’,θ’’)”)に対して、逆動力学演算を行う。ここで、図4に示す“(θ,θ’,θ’’)”は、(関節の角度,関節の角速度,関節の角加速度)を示している。
加算器14は、ロボット200から取得される力センサの検出結果が示す値(図4に示す“F”)から、逆動力学演算器12における逆動力学演算の結果が示す値を減算する。加算器14の演算結果(図4に示す“F^(ハット)human”)は、ロボット200が含む力センサの検出結果が示す値が補正された値であり、力センサの検出結果に基づく操作体に印加される力の一例に該当する。
変換器16は、加算器14の演算結果を、操作空間位置目標値(図4に示す“Xref”)に変換する。変換器16は、例えば、“入力値を操作空間位置目標値に変換することが可能な、任意のアルゴリズムの演算を行うこと”や、“入力値と操作空間位置目標値とが対応付けられているテーブル(またはデータベース)を参照すること”など、入力値を操作空間位置目標値に変換することが可能な任意の方法によって、加算器14の演算結果を操作空間位置目標値に変換する。
制御器18は、変換器16から伝達される操作空間位置目標値と、ロボット200から取得される操作空間位置を示すデータ(図4に示す“X”)とに基づいて、関節空間トルク指令値(図4に示す“Tref”。ロボット200が有する能動関節を駆動させるモータを動作させる命令の一例)を含む制御信号を、ロボット200に対して送信する。制御器18は、例えば、ロボット200の操作空間位置を操作空間位置目標値に近づけることが可能な、任意のアルゴリズムの演算を行うことにより、関節空間トルク指令値を算出する。
ロボット200は、処理部10の制御器18により送信された制御信号に基づき能動関節を動かすことによって、動く。
例えば図4に示す構成を有する処理部10において処理が行われることによって、ロボット200の動力学による影響を補償した上で、ロボット200の動きを制御することができる。
ここで、図4に示すように、操作者により操作体に印加される力には、操作力と保持力とが含まれる。しかしながら、図4に示す処理部10における処理では、操作者がロボット200の操作体を保持している保持力が考慮されていない。そのため、図4に示す処理部10が用いられる場合には、純粋な操作力だけを考慮した、ロボット200の動きの制御(ロボット200の力制御)を行うことができない。
[2−2]処理部102の構成の一例
そこで、処理部102は、保持力を推定し、推定された保持力を補償した上でロボット200の動きを制御する。処理部102が、保持力を推定し、推定された保持力を補償することによって、処理装置100は、純粋な操作力に基づきロボット200の動きを制御することができる。
図5は、第1の実施形態に係る処理装置100が備える処理部102の構成の一例を説明するための説明図である。
図5に示す“Fhuman”は、操作者により操作体に印加される力を示している。また、図5に示す“FOperation”は、操作力を示しており、図5に示す“Fsu pport”は、保持力を示している。図5に示すように、操作者により操作体に印加される力には、操作力と保持力とが含まれる。
処理部102は、例えば、逆動力学演算器110と、加算器112と、保持力推定器114と、加算器116と、変換器118と、制御器120とを有する。
[2−2−1]逆動力学演算器110
逆動力学演算器110は、ロボット200から取得される動きセンサの検出結果(図5に示す“(θ,θ’,θ’’)”)に対して、逆動力学演算を行う。ここで、図5に示す“(θ,θ’,θ’’)”は、(関節の角度,関節の角速度,関節の角加速度)を示している。
ロボット200のようなロボットの動力学は、一般的に下記の数式1により表される。
Figure 2018012110
ここで、上記数式1の左辺は、ロボットにおける各関節のトルク値を示している。また、上記数式1の右辺の第一項、第二項、および第三項は、慣性力項、コリオリ力項、および重力項をそれぞれ示している。
逆動力学演算器110は、ロボット200に対応するモデル情報が示す、力センサ部分を仮想的な関節とみなすモデルに基づいて、ロボット200の制御周期ごとに、逆動力学演算を行う。逆動力学演算器110は、逆動力学演算を行うことによって、モデル情報が示すモデルにおける仮想的な関節における仮想関節力を算出する。
ここで、本実施形態に係る仮想関節力とは、例えば、実際は動かない仮想的な関節において位置および姿勢を維持するために要する仮想的な力、すなわち、仮想的な関節を保持するために要する仮想的な力である。仮想関節力は、例えば、仮想的な関節のトルク値で表される。
逆動力学演算器110は、例えば、本願出願人が出願した特開2007−108955号明細書で開示している手法を用いて逆動力学演算を行うことによって、仮想的な関節のトルク値(仮想関節力)を算出する。なお、本実施形態に係る仮想的な関節のトルク値の算出方法は、上記に示す方法に限られない。逆動力学演算器110は、モデル情報が示すモデルにおける仮想的な関節におけるトルク値を算出することが可能な、任意のアルゴリズムの演算を行ってもよい。
仮想的な関節のトルク値(仮想関節力)は、例えば下記の数式2で表される。
Figure 2018012110
ここで、上記数式2の左辺は、仮想的な関節のトルク値(仮想的な関節を保持するために要する仮想的な力)を示している。また、上記数式2の右辺の第一項は、“ロボット200において操作者が操作体を保持する位置から仮想的な関節までの距離”を示している。また、上記数式2の右辺の第二項は、“保持力”を示している。上記数式2に示すように、仮想的な関節のトルク値は、“ロボット200において操作者が操作体を保持する位置から仮想的な関節までの距離”と“保持力”とを乗算して得られるトルク値と、力学的に一致する。
[2−2−2]加算器112
加算器112は、ロボット200から取得される力センサの検出結果が示す値(図5に示す“F”)から、逆動力学演算器110における逆動力学演算の結果が示す値(仮想的な関節のトルク値)を減算する。
加算器112における演算によって、力センサの検出結果が示す値から、ロボット200のダイナミクスに起因する力が取り除かれる。つまり、加算器112の演算結果(図5に示す“F^(ハット)human”)は、ロボット200が含む力センサの検出結果が示す値が補正された値であり、力センサの検出結果に基づく操作体に印加される力の一例に該当する。
[2−2−4]保持力推定器114
保持力推定器114は、逆動力学演算器110における逆動力学演算の結果が示す値(仮想的な関節のトルク値)に基づいて、操作者がロボット200が含む操作体を保持している保持力を推定する。
上記数式2に示すように、仮想的な関節のトルク値は、“ロボット200において操作者が操作体を保持する位置から仮想的な関節までの距離”と“保持力”とから求められる。また、仮想的な関節のトルク値は、逆動力学演算器110により求められている。よって、“ロボット200において操作者が操作体を保持する位置から仮想的な関節までの距離”が決まれば、上記数式2より“保持力”を推定することが可能である。
ここで、“ロボット200において操作者が操作体を保持する位置から仮想的な関節までの距離”は、例えば、ロボット200に対応するモデル情報に含まれる。また、“ロボット200において操作者が操作体を保持する位置から仮想的な関節までの距離”は、モデル情報とは別のデータとして、記憶部(図示せず)などの記録媒体に記憶されていてもよい。“ロボット200において操作者が操作体を保持する位置から仮想的な関節までの距離”としては、例えば、“ロボット200が含む操作体における設定された基準位置と、ロボット200において力センサが設けられる位置との距離”が挙げられる。
保持力推定器114は、例えば、ロボット200に対応するモデル情報(または、上記モデル情報とは別のデータ)を参照することによって、“ロボット200において操作者が操作体を保持する位置から仮想的な関節までの距離”を特定する。そして、保持力推定器114は、逆動力学演算器110から伝達される仮想的な関節のトルク値と、特定された“ロボット200において操作者が操作体を保持する位置から仮想的な関節までの距離”とに基づいて、上記数式2より“保持力”を推定する。
[2−2−4]加算器116
加算器116は、加算器112の演算結果(図5に示す“F^(ハット)human”)から、保持力推定器114の演算結果(図5に示す“F^(ハット)support”)を減算する。つまり、加算器116の演算結果(図5に示す“F^(ハット)Oper ation”)は、“力センサの検出結果に基づく操作体に印加される力から推定された保持力が減算された値”を示す。
よって、加算器116の演算結果は、推定された保持力が補償された、純粋な操作力の推定結果を示すこととなる。
[2−2−5]変換器118
変換器118は、加算器116の演算結果を、操作空間位置目標値(図5に示す“X ef”)に変換する。変換器118は、例えば、“入力値を操作空間位置目標値に変換することが可能な、任意のアルゴリズムの演算を行うこと”や、“入力値と操作空間位置目標値とが対応付けられているテーブル(またはデータベース)を参照すること”など、入力値を操作空間位置目標値に変換することが可能な任意の方法によって、加算器116の演算結果を操作空間位置目標値に変換する。
[2−2−6]制御器120
制御器120は、変換器118から伝達される操作空間位置目標値と、ロボット200から取得される操作空間位置を示すデータ(図5に示す“X”)とに基づいて、関節空間トルク指令値(図5に示す“Tref”。ロボット200が有する能動関節を駆動させるモータを動作させる命令の一例)を含む制御信号を、ロボット200に対して送信する。制御器120は、例えば、ロボット200の操作空間位置を操作空間位置目標値に近づけることが可能な、任意のアルゴリズムの演算を行うことにより、関節空間トルク指令値を算出する。
ロボット200は、処理部102の制御器120により送信された制御信号に基づき能動関節を動かすことによって、動く。
処理部102は、例えば図5に示す構成を有する。
ここで、処理部102は、例えば逆動力学演算器110と保持力推定器114とを有することによって、ロボット200(第1のロボット)に対応する、力センサ部分を仮想的な関節とみなすモデルに基づいて、操作者がロボット200の操作体を保持している保持力を推定する。
よって、図5に示す処理部102を備える処理装置100は、ロボット200のような、受動関節に接続されるリンクに設けられる操作体を含むロボットにおける、操作者が操作体を保持している保持力を推定することができる。
また、処理部102は、さらに、加算器116を有することによって、推定された保持力を補償する。
よって、図5に示す処理部102を備える処理装置100は、推定された保持力を補償して、純粋な操作力を推定することができる。
また、処理部102は、さらに、変換器118と制御器120とを有することによって、推定された操作力に基づいて、ロボット200の動きを制御する。
よって、図5に示す処理部102を備える処理装置100は、ロボット200の動力学による影響、および推定された保持力を補償した上で、ロボット200の動きを制御することができる。
なお、第1の実施形態に係る処理部102の構成は、図5に示す構成に限られない。
例えば、処理部102は、図5に示す加算器112、加算器116、変換器118、および制御器120を有さない構成であってもよい。図5に示す加算器112、加算器116、変換器118、および制御器120を有さない構成であっても、処理部102は、ロボット200(受動関節に接続されるリンクに設けられる操作体を含むロボットの一例)において、操作者が操作体を保持している保持力を推定することができる。
また、処理部102は、例えば、図5に示す変換器118、および制御器120を有さない構成であってもよい。図5に示す変換器118、および制御器120を有さない構成であっても、処理部102は、推定された保持力を補償して、純粋な操作力を推定することができる。
なお、処理部102が、上記図5に示す加算器112、加算器116、変換器118、および制御器120を有さない構成、または、上記図5に示す変換器118、および制御器120を有さない構成をとる場合、ロボット200の動きは、処理装置100と外部装置とが連携して処理を行うことによって制御されてもよい。
また、図5に示す構成は、処理部102における処理を便宜上切り分けたものである。よって、処理部102の構成は、図5に示す構成(上記変形例に係る構成も含む。)に限られず、図5に示す構成要素のうちの一部または全部の構成要素における処理が、共通のハードウェアで行われてもよい。
[3]本実施形態に係る制御方法に係る処理
次に、本実施形態に係る制御方法に係る処理の一例を説明する。以下では、ロボット200(受動関節に接続されるリンクに設けられる操作体と、操作体に印加される力を検出する力センサとを含むロボットの一例)を制御するための制御方法に係る処理を、処理装置100が行う場合を例に挙げる。
上述したように、処理装置100は、ロボット200に対応する、力センサ部分を仮想的な関節とみなすモデルに基づいて、操作者が操作体を保持している保持力を推定する。例えば図5に示す処理部102を備える処理装置100において、保持力を推定する処理は、逆動力学演算器110と保持力推定器114とにおいて行われる。
また、処理装置100は、ロボット200が含む力センサの検出結果と、推定された保持力とに基づいて、操作体に対する操作者の操作力を推定する。例えば図5に示す処理部102を備える処理装置100において、操作力を推定する処理は、加算器116において行われる。
そして、処理装置100は、推定された操作力に基づいてロボット200の動きを制御する。例えば図5に示す処理部102を備える処理装置100において、ロボット200の動きを制御する処理は、変換器118と制御器120とにおいて行われる。
処理装置100は、例えば上記にように、保持力を推定する処理、操作力を推定する処理、およびロボット200の動きを制御する処理を行うことによって、ロボット200の動きを制御する。
図6は、本実施形態に係る制御方法に係る処理の一例を示す流れ図であり、図5に示す処理部102を備える処理装置100における、ロボット200の動きを制御する処理の一例を示している。処理装置100において図6に示す処理は、例えば、処理部102において、ロボット200の制御周期ごとに行われる。
処理装置100は、ロボット200が含む力センサの値とエンコーダの値とを読み取る(S100)。力センサの値とエンコーダの値とは、ロボット200が主体的に処理装置100に対して送信したものであってもよいし、処理装置100が主体的にロボット200に送信させたものであってもよい。
処理装置100は、エンコーダの値から、ロボット200の各関節における位置(関節の角度)、速度(関節の角速度)、加速度(関節の角加速度)をそれぞれ算出する(S102)。
処理装置100は、ステップS102において算出された位置(関節の角度)、速度(関節の角速度)、加速度(関節の角加速度)を、ロボット200に対応するモデルに設定する(S104)。処理装置100は、例えば、記憶部(図示せず)などの記録媒体に記憶されているロボット200に対応するモデル情報を参照することによって、ロボット200に対応するモデルを特定する。
処理装置100は、逆動力学演算を行い、ロボット200に対応するモデルにおける仮想的な関節における仮想関節力を算出する(S106)。
処理装置100は、例えば、ロボット200に対応する操作体に関する情報を利用して、逆動力学演算を行う。操作体に関する情報としては、例えば、操作体の質量、操作体のイナーシャ(回転系慣性モーメント)、および操作体の重心のうちの1または2以上を示すデータなど、操作体に係る物理データが、挙げられる。操作体に関する情報は、例えば記憶部(図示せず)などの記録媒体に記憶される。
より具体的には、処理装置100は、例えば、本願出願人が出願した特開2007−108955号明細書で開示している手法を用いて逆動力学演算を行う。
例えば上記のように、ロボット200が含む操作体に関する情報を利用して逆動力学演算を行うことによって、ロボット200が含む操作体の形状と構造との一方または双方が変更されたとしても、処理装置100は、操作者が操作体を保持している保持力を推定することができる。また、処理装置100がロボット200が含む操作体に関する情報を利用して逆動力学演算を行う場合、システム1000が有するロボット200(第1のロボット)を、操作体を交換することが可能な構造とすることが可能である。
処理装置100は、力センサの値から、ロボット200のダイナミクスに起因する力を取り除き、操作者によって印加される力のみを算出する(S108)。
処理装置100は、“ステップS106における逆動力学演算により得られたロボット200のダイナミクスに起因する力”と、“ロボット200が含む操作体における設定された基準位置と、ロボット200において力センサが設けられる位置との距離”(操作者が操作体を保持する位置から仮想的な関節までの距離の一例)とに基づいて、操作者が操作体を保持している保持力を算出する(S110)。
処理装置100は、ステップS108において算出された、操作者によって印加される力から、ステップS110において算出された保持力を取り除き、純粋な操作力のみを算出する(S112)。
処理装置100は、ステップS112において算出された操作力に基づいて、ロボット200の動きを制御するための制御演算を行う(S114)。ステップS114における制御演算としては、例えば、ロボット200の操作空間位置を操作空間位置目標値に近づけるような関節空間トルク指令値を求めることが可能な、任意のアルゴリズムの演算が挙げられる。
処理装置100は、ステップS114における制御演算により得られた関節空間トルク指令値を含む制御信号を、ロボット200のモータを駆動させるためのドライバに出力する(S116)。
処理装置100は、本実施形態に係る制御方法に係る処理として、例えば図6に示す処理を行う。なお、本実施形態に係る制御方法に係る処理の例が、図6に示す例に限られないことは、言うまでもない。
[4]システム1000が奏する効果、およびシステム1000の変形例
第1の実施形態に係るシステム1000は、上述した機能、構成を有するロボット200(第1のロボット)と、上述した機能、構成を有する処理装置100とを有する。
システム1000では、処理装置100を有することによって、例えば下記の効果が奏される。なお、システム1000において奏される効果が、下記に示す例に限られないことは、言うまでもない。
・ロボット200のような、受動関節に接続されるリンクに設けられる操作体を含むロボットにおける、操作者が操作体を保持している保持力を推定することができる。保持力の推定は、力センサ部分を仮想的な関節とみなすモデルに基づいて行われるので、操作者の操作によりロボット200が含む操作体の姿勢が変化しても、操作者が操作体を保持している保持力の推定が可能である。
・推定された保持力を補償して、ロボット200が含む操作体に対する純粋な操作力を推定することができる。
・ロボット200の動力学による影響、および推定された保持力を補償した上で、ロボット200の動きを制御することができるので、ロボット200が含む操作体に対する操作者の操作力を考慮した制御が可能となる。
なお、第1の実施形態に係るシステムの構成は、図1に示す例に限られない。
例えば、図1に示す処理装置100とロボット200とは、同一の装置であってもよい。処理装置100とロボット200とが同一の装置である場合としては、受動関節に接続されるリンクに設けられる操作体を含むロボットが、処理装置100が有する機能、構成を備える例が、挙げられる。
[5]第1の実施形態に係るシステムの適用例
以上、第1の実施形態に係るシステムの構成要素として、処理装置を挙げて説明したが、本実施形態は、かかる形態に限られない。本実施形態は、例えば、PC(Personal Computer)やサーバなどのコンピュータや、スマートフォンなどの通信装置、タブレット型の装置、ゲーム機など、様々な機器に適用することができる。また、本実施形態は、例えば、上記のような機器に組み込むことが可能なICに適用することもできる。さらに、上述したように、本実施形態は、受動関節に接続されるリンクに設けられる操作体を含むロボットに適用することも可能である。
また、上記では、第1の実施形態に係るシステムの構成要素として、受動関節に接続されるリンクに設けられる操作体を含むロボットを挙げて説明したが、本実施形態に係るロボットは、かかる形態に限られない。本実施形態は、例えば、姿勢3軸が受動関節になっているタイプのハプティックデバイスなどの受動関節を含むハプティックデバイスなど、受動関節を含み操作者による操作が可能な、任意のデバイスに適用することができる。
(第2の実施形態に係るシステム)
なお、本実施形態に係るシステムは、上述した第1の実施形態に係るシステムに限られない。図7は、第2の実施形態に係るシステム2000の構成の一例を示す説明図である。
システム2000は、例えば、処理装置300と、ロボット200(第1のロボット)と、ロボット400(第2のロボット)とを有する。処理装置300およびロボット200と、処理装置300およびロボット400とは、例えば、任意の通信方式有線通信、または、任意の通信方式の無線通信によって、通信を行う。システム2000は、処理装置300とロボット200とが直接的に通信を行う構成であってもよいし、処理装置300とロボット200とが、ネットワーク(または他の装置)を介して通信を行う構成であってもよい。また、システム2000は、処理装置300とロボット400とが直接的に通信を行う構成であってもよいし、処理装置300とロボット400とが、ネットワーク(または他の装置)を介して通信を行う構成であってもよい。
[I]ロボット200(第1のロボット)
ロボット200は、システム2000が有する第1のロボットである。ロボット200は、第1の実施形態に係るロボット200と同様の機能、構成を有する。
[II]ロボット400(第2のロボット)
ロボット400は、システム2000が有する第2のロボットである。ロボット400は、力センサを含み、ロボット200(第1のロボット)の動きに基づき動く。ロボット400は、バッテリなどの内部電源(図示せず)から供給される電力、または、ロボット400の外部電源から供給される電力によって、駆動する。
つまり、システム2000は、バイラテラルシステムであり、システム2000においてロボット200は、マスタ(Master)側のデバイスに該当し、システム2000においてロボット400は、スレーブ(Slave)側のデバイスに該当する。
ロボット400は、例えば、ロボット200の動きに対応して動くための、1または2以上の能動関節と、能動関節に接続されるリンクとを有するロボット(能動関節を含むリンク機構を有するロボット)である。ロボット400は、例えば、能動関節の動きを検出するための動きセンサを、能動関節それぞれに対応する位置に備える。上記動きセンサとしては、例えばエンコーダなどが挙げられる。
また、ロボット400は、例えば、能動関節を駆動させるための駆動機構を、能動関節それぞれに対応する位置に備える。上記駆動機構としては、例えば、モータとドライバとが挙げられる。
図8は、本実施形態に係るロボット400(第2のロボット)の一例を示す説明図である。
図8に示すロボット400では、アームの先端部分(図8に示すA)に、各種センサ(例えば、原点センサや、Limitセンサ、エンコーダ、マイクロホン、加速度センサなど)が設けられる。また、図8に示すロボット400では、力センサ(図8に示すB)が、アームの先端部分に設けられる。
以下では、ロボット400が、図8に示す構成のロボットである場合を、例に挙げる。なお、本実施形態に係る第2のロボットの構成が、図8に示す例に限られないことは、言うまでもない。
再度図7を参照して、ロボット400の構成の一例を説明する。ロボット400は、例えば、センサ部402と、駆動部404とを有する。
センサ部402は、例えば、ロボット400が有する関節の動きを検出する。
センサ部402は、エンコーダなどの動きセンサによって、関節の動きを検出する。動きセンサは、例えば、動きを検出する対象の関節ごとに、関節の動きを検出することが可能な位置(関節に対応する位置)に設けられる。
駆動部404は、能動関節を駆動させる。駆動部404は、能動関節を動かすモータと当該モータを動かすドライバとによって、能動関節を駆動させる。モータとドライバとは、例えば、能動関節ごとに、能動関節を動かすことが可能な位置に設けられる。また、ドライバは、複数の関節で共有されていてもよい。
駆動部404は、例えば、処理装置300などの外部装置から送信される制御信号に基づいて、能動関節を駆動させる。処理装置300が上記制御信号を送信する場合、処理装置300は、ロボット400の動きを制御する制御装置として機能する。以下では、処理装置300が、ロボット400の動きを制御する制御装置として機能する場合を例に挙げる。
[III]処理装置300
処理装置300は、例えば処理部302を備える。
また、処理装置300は、例えば、制御部(図示せず)や、ROM(図示せず)、RAM(図示せず)、記憶部(図示せず)、通信部(図示せず)、ユーザが操作可能な操作部(図示せず)、様々な画面を表示画面に表示する表示部(図示せず)などを備えていてもよい。処理装置300は、例えば、データの伝送路としてのバスにより上記各構成要素間を接続する。処理装置300は、バッテリなどの内部電源(図示せず)から供給される電力、または、処理装置300の外部電源から供給される電力によって、駆動する。
制御部(図示せず)は、MPUなどの演算回路で構成される、1または2以上のプロセッサや、各種処理回路などで構成され、処理装置300全体を制御する。また、制御部(図示せず)は、処理装置300において、例えば、処理部302の役目を果たしてもよい。
なお、処理部302は、処理部302における処理を実現可能な専用の(または汎用の)回路(例えば、制御部(図示せず)とは別体のプロセッサなど)で構成されていてもよい。
ROM(図示せず)は、制御部(図示せず)が使用するプログラムや演算パラメータなどの制御用データを記憶する。RAM(図示せず)は、制御部(図示せず)により実行されるプログラムなどを一時的に記憶する。
記憶部(図示せず)は、処理装置300が備える記憶手段であり、例えば、ロボット200(第1のロボット)に対応するモデル情報(後述する)などの、処理部302における処理に係るデータや、各種アプリケーションなど様々なデータを記憶する。
ここで、記憶部(図示せず)としては、例えば、ハードディスクなどの磁気記録媒体や、フラッシュメモリなどの不揮発性メモリなどが挙げられる。また、記憶部(図示せず)は、処理装置300から着脱可能であってもよい。
通信部(図示せず)としては、例えば上述した通信インタフェース164が挙げられる。また、操作部(図示せず)としては、例えば上述した操作入力デバイス160が挙げられる。また、表示部(図示せず)としては、上述した表示デバイス162が挙げられる。
[処理装置300のハードウェア構成例]
処理装置300は、例えば図3に示す第1の実施形態に係る処理装置100と同様の構成(変形例に係る構成も含む)をとることが可能である。
再度図7を参照して、処理装置300の構成の一例について説明する。処理部302は、第1の実施形態に係る処理装置100が備える処理部102と基本的に同様の機能を有する。
また、処理部302は、ロボット200の動きの制御に加えて、さらに、バイラテラルシステムであるシステム2000を構成するロボット400の動きを制御する。
図9は、第2の実施形態に係るシステム2000におけるバイラテラル制御方法の概要を示す説明図である。
図9に示すように、システム2000では、マスタ側のデバイスであるロボット200が含む力センサの検出結果と、スレーブ側のデバイスであるロボット400が含む力センサの検出結果とを利用した、力帰還型の制御が、処理装置300により行われる。なお、システム2000におけるバイラテラル制御方法が、図9に示す例に限られないことは、言うまでもない。
以下、システム2000において、図9に示すような力帰還型のバイラテラル制御方法が用いられる場合を例に挙げて、ロボット200(マスタ側のデバイス)の動きの制御に係る処理部302の構成の一例を、説明する。
上述したように、ロボット400は、バイラテラルシステムにおけるスレーブ側のデバイスであり、処理部302は、ロボット200(マスタ側のデバイス)の動きに対応して動くように、ロボット400の動きを制御する。処理部302は、例えば、ロボット200の動きに対応して、ロボット400が有する能動関節を駆動させるモータを動作させる命令を含む制御信号を、ロボット400に対して送信することによって、ロボット400の動きを制御する。以下では、ロボット400(スレーブ側のデバイス)の動きの制御に係る処理部302の構成について、説明を省略するが、処理部302では、ロボット400の動きの制御に係る処理は、例えば、後述する処理部302を構成する制御器120において行われてもよいし、ロボット400の動きを制御するための制御器(制御器120とは別体の制御器)において行われてもよい。
図10は、第2の実施形態に係る処理装置300が備える処理部302の構成の一例を説明するための説明図である。
図10に示す“Fhuman”は、図5と同様に、操作者により操作体に印加される力を示している。また、図10に示す“FOperation”は、図5と同様に、操作力を示しており、図10に示す“Fsupport”は、図5と同様に、保持力を示している。図10に示すように、操作者により操作体に印加される力には、操作力と保持力とが含まれる。
また、図10では、ロボット200から取得される力センサの検出結果が示す値を“F ”と示し、ロボット400から取得される力センサの検出結果が示す値を“F”と示している。
処理部302は、例えば、逆動力学演算器110と、加算器112と、保持力推定器114と、加算器116と、加算器310と、変換器118と、制御器120とを有する。
[III−1]逆動力学演算器110、加算器112、保持力推定器114、および加算器116
図10に示す第2の実施形態に係る逆動力学演算器110、加算器112、保持力推定器114、および加算器116それぞれの構成、機能は、図5を参照して示した第1の実施形態に係る逆動力学演算器110、加算器112、保持力推定器114、および加算器116と同様である。よって、図10に示す第2の実施形態に係る逆動力学演算器110、加算器112、保持力推定器114、および加算器116については、説明を省略する。
[III−2]加算器310
加算器310は、加算器116の演算結果(図10に示す“F^(ハット)Operation”)から、ロボット400から取得される力センサの検出結果が示す値(図10に示す“F”)を減算する。
加算器310における処理によって、図9に示すような“ロボット200(マスタ側のデバイス)が含む力センサの検出結果と、ロボット400(スレーブ側のデバイス)が含む力センサの検出結果とを利用した、力帰還型の制御”が、実現される。
[III−3]変換器118、および制御器120
図10に示す第2の実施形態に係る変換器118、および制御器120それぞれの構成、機能は、図5を参照して示した第1の実施形態に係る変換器118、および制御器120と同様である。
第2の実施形態に係る変換器118は、加算器310の演算結果を、操作空間位置目標値(図10に示す“Xref”)に変換する。そして、第2の実施形態に係る制御器120は、変換器118から伝達される操作空間位置目標値と、ロボット200から取得される操作空間位置を示すデータ(図10に示す“X”)とに基づいて、関節空間トルク指令値(図10に示す“Tref”。ロボット200が有する能動関節を駆動させるモータを動作させる命令の一例)を含む制御信号を、ロボット200に対して送信する。
ロボット200は、処理部302の制御器120により送信された制御信号に基づき能動関節を動かすことによって、動く。
処理部302は、例えば図10に示す構成を有する。
ここで、加算器310では、加算器116の演算結果からロボット400から取得される力センサの検出結果が示す値が減算されている。また、第2の実施形態に係る変換器118は、加算器310の演算結果を、操作空間位置目標値に変換し、第2の実施形態に係る制御器120は、変換器118から伝達される操作空間位置目標値に基づいて、制御信号をロボット200に対して送信している。
よって、処理部302は、ロボット400(第2のロボット)から取得される、ロボット400が含む力センサの検出結果に基づいて、ロボット200(第1のロボット)の動きを制御することができる。
また、処理部302は、第1の実施形態に係る処理装置100が備える処理部102と基本的に同様の機能を有する。したがって、処理部302を備える処理装置300は、第1の実施形態に係る処理装置100と同様の効果を奏する。
なお、第2の実施形態に係る処理部302の構成は、図10に示す構成に限られない。
例えば、処理部302は、第1の実施形態に係る処理部と同様に、図10に示す加算器112、加算器116、加算器310、変換器118、および制御器120を有さない構成であってもよい。図10に示す加算器112、加算器116、加算器310、変換器118、および制御器120を有さない構成であっても、処理部302は、ロボット200(受動関節に接続されるリンクに設けられる操作体を含むロボットの一例)において、操作者が操作体を保持している保持力を推定することができる。
また、処理部302は、例えば、第1の実施形態に係る処理部と同様に、図10に示す変換器118、および制御器120を有さない構成であってもよい。図10に示す変換器118、および制御器120を有さない構成であっても、処理部302は、推定された保持力を補償して、純粋な操作力を推定することができる。
なお、処理部302が、上記図10に示す加算器112、加算器116、加算器310、変換器118、および制御器120を有さない構成、または、上記図10に示す変換器118、および制御器120を有さない構成をとる場合、ロボット200の動きは、処理装置300と外部装置とが連携して処理を行うことによって制御されてもよい。
また、図10に示す構成は、処理部302における処理を便宜上切り分けたものである。よって、処理部302の構成は、図10に示す構成(上記変形例に係る構成も含む。)に限られず、図10に示す構成要素のうちの一部または全部の構成要素における処理が、共通のハードウェアで行われてもよい。
[IV]システム2000が奏する効果、およびシステム2000の変形例
第2の実施形態に係るシステム2000は、上述した機能、構成を有するロボット200(第1のロボット)と、上述した機能、構成を有するロボット400(第2のロボット)と、上述した機能、構成を有する処理装置300とを有する。
上述したように、システム2000が有する処理装置300は、第1の実施形態に係る処理装置100と基本的に同様の機能を有する。よって、システム2000では、処理装置300を有することによって、第1の実施形態に係るシステム1000と同様の効果が奏される。
また、システム2000が有する処理装置300は、スレーブ側のデバイスであるロボット400から取得される、ロボット400が含む力センサの検出結果に基づいて、マスタ側のデバイスであるロボット200の動きを制御する。よって、システム2000により、図9に示すような“ロボット200(マスタ側のデバイス)が含む力センサの検出結果と、ロボット400(スレーブ側のデバイス)が含む力センサの検出結果とを利用した力帰還型の制御”が可能な、バイラテラルシステムが、実現される。
なお、第2の実施形態に係るシステムの構成は、図7に示す例に限られない。
例えば、図7に示す処理装置300とロボット200とは、同一の装置であってもよい。処理装置300とロボット200とが同一の装置である場合としては、受動関節に接続されるリンクに設けられる操作体を含むロボットが、処理装置300が有する機能、構成を備える例が、挙げられる。
[V]第2の実施形態に係るシステムの適用例
以上、第2の実施形態に係るシステムの構成要素として、処理装置を挙げて説明したが、本実施形態は、かかる形態に限られない。本実施形態は、例えば、PCやサーバなどのコンピュータや、スマートフォンなどの通信装置、タブレット型の装置、ゲーム機など、様々な機器に適用することができる。また、本実施形態は、例えば、上記のような機器に組み込むことが可能なICに適用することもできる。さらに、上述したように、本実施形態は、受動関節に接続されるリンクに設けられる操作体を含むロボットに適用することも可能である。
また、上記では、第2の実施形態に係るシステムの構成要素として、受動関節に接続されるリンクに設けられる操作体を含む第1のロボットを挙げて説明したが、本実施形態に係る第1のロボットは、かかる形態に限られない。本実施形態は、例えば、姿勢3軸が受動関節になっているタイプのハプティックデバイスなどの受動関節を含むハプティックデバイスなど、受動関節を含み操作者による操作が可能な、任意のデバイスに適用することができる。
また、上記では、第2の実施形態に係るシステムの構成要素として、力センサを含み、第1のロボットの動きに基づき動く第2のロボットを挙げて説明したが、本実施形態に係る第2のロボットは、かかる形態に限られない。本実施形態は、例えば、バイラテラルシステムにおいてスレーブとして機能することが可能な、任意のデバイスに適用することができる。
(本実施形態に係るプログラム)
コンピュータを、本実施形態に係る処理装置として機能させるためのプログラム(例えば、“第1の実施形態に係る処理部102(変形例に係る構成も含む。)が有する機能”、または、“第2の実施形態に係る処理部302(変形例に係る構成も含む。)が有する機能”を、実現させるためのプログラム)が、コンピュータにおいてプロセッサなどにより実行されることによって、受動関節に接続されるリンクに設けられる操作体を含むロボットにおける、操作者が操作体を保持している保持力を推定することが、できる。
また、コンピュータを、本実施形態に係る処理装置として機能させるためのプログラムが、コンピュータにおいてプロセッサなどにより実行されることによって、例えば、上述した第1の実施形態に係る処理装置(変形例に係る構成も含む)、または、第2の実施形態に係る処理装置(変形例に係る構成も含む)において奏される効果を、奏することができる。
以上、添付図面を参照しながら本開示の好適な実施形態について詳細に説明したが、本開示の技術的範囲はかかる例に限定されない。本開示の技術分野における通常の知識を有する者であれば、請求の範囲に記載された技術的思想の範疇内において、各種の変更例または修正例に想到し得ることは明らかであり、これらについても、当然に本開示の技術的範囲に属するものと了解される。
例えば、上記では、コンピュータを、本実施形態に係る処理装置として機能させるためのプログラム(コンピュータプログラム)が提供されることを示したが、本実施形態は、さらに、上記プログラムを記憶させた記録媒体も併せて提供することができる。
上述した構成は、本実施形態の一例を示すものであり、当然に、本開示の技術的範囲に属するものである。
また、本明細書に記載された効果は、あくまで説明的または例示的なものであって限定的ではない。つまり、本開示に係る技術は、上記の効果とともに、または上記の効果に代えて、本明細書の記載から当業者には明らかな他の効果を奏しうる。
なお、以下のような構成も本開示の技術的範囲に属する。
(1)
受動関節に接続されるリンクに設けられる操作体と、前記操作体に印加される力を検出する力センサとを含む第1のロボットに対応する、前記力センサ部分を仮想的な関節とみなすモデルに基づいて、操作者が前記操作体を保持している保持力を推定する処理部を備える、処理装置。
(2)
前記処理部は、前記モデルに基づき算出される前記仮想的な関節を保持するために要する仮想的な力と、前記操作者が前記操作体を保持する位置から前記仮想的な関節までの距離とに基づいて、前記保持力を推定する、(1)に記載の処理装置。
(3)
前記処理部は、前記第1のロボットが含む前記力センサの検出結果と、推定された前記保持力とに基づいて、前記操作体に対する前記操作者の操作力を推定する、(1)、または(2)に記載の処理装置。
(4)
前記処理部は、前記第1のロボットが含む前記力センサの検出結果に基づく前記操作体に印加される力から、推定された前記保持力を減算することによって、前記操作力を推定する、(3)に記載の処理装置。
(5)
前記処理部は、推定された前記操作力に基づいて前記第1のロボットの動きを制御する、(3)、または(4)に記載の処理装置。
(6)
前記処理部は、さらに、力センサを含み、前記第1のロボットの動きに基づき動く第2のロボットから取得される、前記第2のロボットが含む前記力センサの検出結果に基づいて、前記第1のロボットの動きを制御する、(5)に記載の処理装置。
(7)
受動関節に接続されるリンクに設けられる操作体と、前記操作体に印加される力を検出する力センサとを含む第1のロボットと、
力センサを含み、前記第1のロボットの動きに基づき動く第2のロボットと、
前記第1のロボットの動きを制御する処理装置と、
を有し、
前記処理装置は、処理部を備え、
前記処理部は、
前記第1のロボットに対応する前記力センサ部分を仮想的な関節とみなすモデルに基づいて、操作者が前記操作体を保持している保持力を推定し、
前記第1のロボットが含む前記力センサの検出結果と、推定された前記保持力とに基づいて、前記操作体に対する前記操作者の操作力を推定し、
推定された前記操作力に基づいて前記第1のロボットの動きを制御する、システム。
(8)
受動関節に接続されるリンクに設けられる操作体と、前記操作体に印加される力を検出する力センサとを含むロボットに対応する、前記力センサ部分を仮想的な関節とみなすモデルに基づいて、操作者が前記操作体を保持している保持力を推定するステップと、
前記ロボットが含む前記力センサの検出結果と、推定された前記保持力とに基づいて、前記操作体に対する前記操作者の操作力を推定するステップと、
推定された前記操作力に基づいて前記ロボットの動きを制御するステップと、
を有する、処理装置により実行される制御方法。
10、102、302 処理部
12、110 逆動力学演算器
14,112、116、310 加算器
16、118 変換器
18、120 制御器
100、300 処理装置
114 保持力推定器
200、400 ロボット
202、402 センサ部
204、404 駆動部
1000、2000 システム

Claims (8)

  1. 受動関節に接続されるリンクに設けられる操作体と、前記操作体に印加される力を検出する力センサとを含む第1のロボットに対応する、前記力センサ部分を仮想的な関節とみなすモデルに基づいて、操作者が前記操作体を保持している保持力を推定する処理部を備える、処理装置。
  2. 前記処理部は、前記モデルに基づき算出される前記仮想的な関節を保持するために要する仮想的な力と、前記操作者が前記操作体を保持する位置から前記仮想的な関節までの距離とに基づいて、前記保持力を推定する、請求項1に記載の処理装置。
  3. 前記処理部は、前記第1のロボットが含む前記力センサの検出結果と、推定された前記保持力とに基づいて、前記操作体に対する前記操作者の操作力を推定する、請求項1に記載の処理装置。
  4. 前記処理部は、前記第1のロボットが含む前記力センサの検出結果に基づく前記操作体に印加される力から、推定された前記保持力を減算することによって、前記操作力を推定する、請求項3に記載の処理装置。
  5. 前記処理部は、推定された前記操作力に基づいて前記第1のロボットの動きを制御する、請求項3に記載の処理装置。
  6. 前記処理部は、さらに、力センサを含み、前記第1のロボットの動きに基づき動く第2のロボットから取得される、前記第2のロボットが含む前記力センサの検出結果に基づいて、前記第1のロボットの動きを制御する、請求項5に記載の処理装置。
  7. 受動関節に接続されるリンクに設けられる操作体と、前記操作体に印加される力を検出する力センサとを含む第1のロボットと、
    力センサを含み、前記第1のロボットの動きに基づき動く第2のロボットと、
    前記第1のロボットの動きを制御する処理装置と、
    を有し、
    前記処理装置は、処理部を備え、
    前記処理部は、
    前記第1のロボットに対応する前記力センサ部分を仮想的な関節とみなすモデルに基づいて、操作者が前記操作体を保持している保持力を推定し、
    前記第1のロボットが含む前記力センサの検出結果と、推定された前記保持力とに基づいて、前記操作体に対する前記操作者の操作力を推定し、
    推定された前記操作力に基づいて前記第1のロボットの動きを制御する、システム。
  8. 受動関節に接続されるリンクに設けられる操作体と、前記操作体に印加される力を検出する力センサとを含むロボットに対応する、前記力センサ部分を仮想的な関節とみなすモデルに基づいて、操作者が前記操作体を保持している保持力を推定するステップと、
    前記ロボットが含む前記力センサの検出結果と、推定された前記保持力とに基づいて、前記操作体に対する前記操作者の操作力を推定するステップと、
    推定された前記操作力に基づいて前記ロボットの動きを制御するステップと、
    を有する、処理装置により実行される制御方法。
JP2018527417A 2016-07-11 2017-05-22 処理装置、システム、および制御方法 Pending JPWO2018012110A1 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2016136551 2016-07-11
JP2016136551 2016-07-11
PCT/JP2017/018955 WO2018012110A1 (ja) 2016-07-11 2017-05-22 処理装置、システム、および制御方法

Publications (1)

Publication Number Publication Date
JPWO2018012110A1 true JPWO2018012110A1 (ja) 2019-04-25

Family

ID=60952491

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018527417A Pending JPWO2018012110A1 (ja) 2016-07-11 2017-05-22 処理装置、システム、および制御方法

Country Status (3)

Country Link
US (1) US11110612B2 (ja)
JP (1) JPWO2018012110A1 (ja)
WO (1) WO2018012110A1 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3747604B1 (en) * 2019-06-07 2022-01-26 Robert Bosch GmbH Robot device controller, robot device arrangement and method for controlling a robot device
CN114585483A (zh) * 2019-10-22 2022-06-03 优傲机器人公司 安全激活机器人臂的自由驱动模式
JP2023055151A (ja) * 2021-10-05 2023-04-17 川崎重工業株式会社 制御装置、ロボットシステム、ロボット制御方法及びロボット制御プログラム

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5497061A (en) * 1993-03-31 1996-03-05 Hitachi, Ltd. Method of controlling robot's compliance
JP4267027B2 (ja) 2006-12-07 2009-05-27 ファナック株式会社 ロボット制御装置
JP5452813B2 (ja) * 2008-05-28 2014-03-26 国立大学法人東京工業大学 力覚提示機能を有する操縦システム
JP5637883B2 (ja) * 2011-02-01 2014-12-10 ファナック株式会社 力センサの出力に基づいてロボットのダイレクトティーチをおこなうロボット教示装置
JP5695223B2 (ja) * 2012-05-23 2015-04-01 パナソニックIpマネジメント株式会社 ロボット、ロボットの制御装置、制御方法、及び制御プログラム
JP5942311B2 (ja) * 2013-02-25 2016-06-29 パナソニックIpマネジメント株式会社 ロボット、ロボットの制御装置及び制御方法、並びに、ロボット用制御プログラム
KR20150017129A (ko) * 2013-08-06 2015-02-16 삼성전자주식회사 수술 로봇 시스템 및 그 제어 방법
KR102306959B1 (ko) * 2013-09-04 2021-10-01 삼성전자주식회사 수술 로봇 및 수술 로봇 제어 방법
JP5893666B2 (ja) 2014-04-14 2016-03-23 ファナック株式会社 力に応じて動かすロボットのロボット制御装置およびロボットシステム
DE102015000919A1 (de) * 2015-01-26 2016-07-28 Kuka Roboter Gmbh Robotergestütztes Trainingssystem
DE102015008144B4 (de) * 2015-06-24 2024-01-18 Kuka Roboter Gmbh Umschalten einer Steuerung eines Roboters in einen Handführ-Betriebsmodus
JP6886976B2 (ja) * 2015-12-10 2021-06-16 コヴィディエン リミテッド パートナーシップ 独立ロール、ピッチ、及びヨースケーリングを備えたロボット外科用システム
US10562191B2 (en) * 2015-12-29 2020-02-18 Robomotive Laboratories LLC Method of controlling devices with sensation of applied force
US10568703B2 (en) * 2016-09-21 2020-02-25 Verb Surgical Inc. User arm support for use in a robotic surgical system
US10016900B1 (en) * 2017-10-10 2018-07-10 Auris Health, Inc. Surgical robotic arm admittance control

Also Published As

Publication number Publication date
US20190143530A1 (en) 2019-05-16
US11110612B2 (en) 2021-09-07
WO2018012110A1 (ja) 2018-01-18

Similar Documents

Publication Publication Date Title
US11220002B2 (en) Robot simulation device
JP6678832B2 (ja) 遠隔制御マニピュレータシステムおよび制御装置
US8648797B2 (en) Information input/output device, information input/output method and computer program
JP6410022B2 (ja) マスタスレーブロボットの制御装置及び制御方法、ロボット、マスタスレーブロボットの制御プログラム、並びに、マスタスレーブロボットの制御用集積電子回路
US8350806B2 (en) Force/tactile display, method for controlling force/tactile display, and computer program
JP4759660B2 (ja) ロボットアーム制御用の装置、方法、プログラム及び集積電子回路、並びに、組立ロボット
Tsunashima et al. Spatiotemporal coupler: Storage and reproduction of human finger motions
JP6445092B2 (ja) ロボットの教示のための情報を表示するロボットシステム
JP5904635B2 (ja) 制御装置、制御方法及びロボット装置
US20170336776A1 (en) Robot motion program generating method and robot motion program generating apparatus
JPWO2017064851A1 (ja) ロボット教示方法及びロボットアーム制御装置
WO2012099686A2 (en) Telematic interface with directional translation
JP2021000678A (ja) 制御システムおよび制御方法
CN108656112A (zh) 一种面向直接示教的机械臂零力控制实验***
KR102312368B1 (ko) 여자유도 로봇 제어 시스템, 방법, 및 상기 방법을 실행시키기 위한 컴퓨터 판독 가능한 프로그램을 기록한 기록 매체
JPWO2018012110A1 (ja) 処理装置、システム、および制御方法
JP6863927B2 (ja) ロボットのシミュレーション装置
JP2015089584A (ja) ロボットの制御方法及びロボットシステム
JP6773084B2 (ja) 動作教示装置、ロボットシステム及び動作教示方法
Cui et al. An optimization approach to teleoperation of the thumb of a humanoid robot hand: Kinematic mapping and calibration
JP3742879B2 (ja) ロボットアーム・ハンド操作制御方法、ロボットアーム・ハンド操作制御システム
TW201805127A (zh) 機械手臂之控制裝置及其教導系統與方法
JPH01209505A (ja) 遠隔操作ロボットの教示装置
JP2015148994A (ja) 動力学計算方法及びプログラム、並びに記録媒体
JP4743699B2 (ja) 位置制御装置、位置制御方法及び位置制御プログラム

Legal Events

Date Code Title Description
RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20190208

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20190214

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20190515

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20190522