JP7858112B1 - ロボットコントローラ、ロボットの制御方法、制御プログラム、ロボットシステム - Google Patents

ロボットコントローラ、ロボットの制御方法、制御プログラム、ロボットシステム

Info

Publication number
JP7858112B1
JP7858112B1 JP2025067731A JP2025067731A JP7858112B1 JP 7858112 B1 JP7858112 B1 JP 7858112B1 JP 2025067731 A JP2025067731 A JP 2025067731A JP 2025067731 A JP2025067731 A JP 2025067731A JP 7858112 B1 JP7858112 B1 JP 7858112B1
Authority
JP
Japan
Prior art keywords
robot
arm
actuator
command
drive
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2025067731A
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.)
Kawasaki Motors Ltd
Original Assignee
Kawasaki Jukogyo KK
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 Kawasaki Jukogyo KK filed Critical Kawasaki Jukogyo KK
Priority to JP2025067731A priority Critical patent/JP7858112B1/ja
Application granted granted Critical
Publication of JP7858112B1 publication Critical patent/JP7858112B1/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Manipulator (AREA)

Abstract

【課題】ロボット制御の柔軟性、拡張性を高める。
【解決手段】ロボットコントローラ10において、メインモジュール30は、位置指令、速度指令、又は、トルク指令の少なくともいずれかを含む動作指令に基づいて、アクチュエータACを駆動するための電流指令を生成し、所定の通信プロトコルに対応する形式にして伝送路Txを介して駆動モジュール20に送信する。駆動モジュール20は、メインモジュール30から伝送路Txを介して電流指令を受信し、電流指令に基づいてアクチュエータACを駆動する。
【選択図】図5

Description

ここに開示する技術は、ロボットの制御に係るロボットコントローラ、ロボットの制御方法、制御プログラムに関する。
特許文献1には、ロボットを制御するロボット制御装置と、ロボットを動作させる動作指令値を生成する制御用CPUとを備えるロボット制御システムが開示されている。ロボット制御装置は、ロボットを制御するサーボ制御部を有する。サーボ制御部は、ロボットの各軸を駆動するサーボモータの位置情報をセンサから取得し、前述の動作指令値とセンサからのフィードバックデータに基づいて、サーボアンプを介して各サーボモータの動作を制御する。
特許文献2には、主制御装置と従制御装置によってサーボモータで動作するマニピュレータを制御するロボット制御装置が開示されている。主制御装置の主制御回路は、運転管理部と統括制御部を備える。運転管理部は、従制御装置の状態を監視する状態監視部からの信号に基づいて処理判断を行う。統括制御部は、運転管理部からの信号に基づく制御を決定して制御信号を出力する。例えば、運転管理部の処理判断として、従制御装置の状態情報が非常停止または一時停止を要求される場合に該当する従制御装置に接続されたロボットを直ちに停止、または、減速後に停止させる。
以上のように、従来のロボットでは、主制御装置と従制御装置があった場合に、主制御装置から従制御装置には、位置指令を送信する。従制御装置では、主制御装置から受信した位置指令と、センサからのフィードバックに基づいてモータの制御をしている。
特許第6423816号公報 特開2001-100805号公報
前記従来のロボット制御装置又はシステムは、一台のロボットの制御から、複数台のロボットの制御へ拡張できる。しかし、前記従来のロボット制御装置又はシステムは、ロースペックなロボット制御からハイスペックなロボット制御への拡張が難しい。例えば特定の機能のみを有する産業用ロボットの制御は、ロースペックなロボット制御の一例である。また、多関節ロボットからなる産業用ロボットの制御も、相対的にロースペックなロボット制御として例示できる。一方、複数の産業用ロボットを含むロボットシステム、又は、一若しくは複数の産業用ロボットとロボットの周辺機器とを含むロボットシステムの制御は、ハイスペックな制御に相当する。また、産業用ロボットに比べて複雑な構造を有するソーシャルロボットの制御も、ハイスペックな制御の一例である。
制御対象のロボット又はロボットシステムのスペックに応じた専用のロボットコントローラを、それぞれ用意することは不経済である。ロボットの活用範囲が広がっていることから、ロースペックなロボット制御からハイスペックなロボット制御への拡張が容易なシステムが求められている。ロボットコントローラには、拡張が容易になる制御アーキテクチャが求められる。
ここに開示する技術は、ロボットコントローラに係る。
ロボットコントローラは、
ロボットのアクチュエータの駆動を制御する駆動モジュールと、
所定の通信プロトコルに準拠した伝送路を介して前記駆動モジュールに接続されるメインモジュールとを備え、
前記メインモジュールが、
前記アクチュエータの位置を指示する位置指令、前記アクチュエータの動作速度を指示する速度指令、又は、前記アクチュエータのトルクを指示するトルク指令の少なくともいずれかを含む動作指令に基づいて、前記アクチュエータを駆動するための電流指令を生成し、
生成した前記電流指令を前記所定の通信プロトコルに対応する形式にして前記伝送路を介して前記駆動モジュールに送信し、
前記駆動モジュールが、
前記メインモジュールから前記伝送路を介して前記電流指令を受信し、
前記電流指令に基づいて前記アクチュエータを駆動する。
上記のロボットコントローラは、アクチュエータを駆動するための電流指令までをメインモジュールで生成し、伝送路を介して駆動モジュールに送信する。この制御アーキテクチャは、従前から知られているアーキテクチャと異なるので、制御アーキテクチャの選択肢が広がり、ロボット制御の柔軟性、拡張性を高めることができる。
図1は、本開示の技術のコンセプトを説明するための図である。 図2は、第1実施形態に係るロボットコントローラの概略構成を示す。 図3は、第1実施形態に係るロボットコントローラのブロック図を示す。 図4は、第1実施形態に係るロボットコントローラの機能ブロック図である。 図5は、図4のロボットコントローラの制御ループを説明するための図である。 図6は、図4のロボットの制御方法を示すフローチャートである。 図7は、第1実施形態に係るロボットコントローラの機能ブロック図の他の例を示す。 図8は、図7のロボットコントローラの制御ループを説明するための図である。 図9は、図4のロボットの制御方法を示すフローチャートである。 図10は、適用例に係るロボットシステムを斜め上側から見た斜視図である。 図11は、第2実施形態に係るロボットコントローラの概略構成を示す。 図12は、第2実施形態に係るロボットコントローラのブロック図を示す。 図13は、第2実施形態に係るロボットコントローラの機能ブロック図である。 図14は、図13のロボットコントローラの制御ループを説明するための図である。 図15は、第2実施形態に係るロボットコントローラの機能ブロック図の他の例を示す。 図16は、図15のロボットコントローラの制御ループを説明するための図である。 図17は、適用例に係るロボットシステムを斜め上側から見た斜視図である。 図18は、図17のロボットシステムの構成を示すブロック図である。 図19は、図17のロボットシステムの走行機構の平面図である。
以下、制御方法を実行するロボットシステムの実施形態について、図面を参照しながら説明する。ここで説明するロボットシステムは例示である。
<コンセプト>
本開示の技術のコンセプトを説明する。図1には、ロボット8の種別に応じたコントローラ10及びロボット8を含む全体アーキテクチャを例示している。ロボットコントローラAは、例えば、介護、医療、清掃、警備、案内、救助、調理、商品提供、物流等の様々なサービス業で使用される。図1では、4つのロボットコントローラ101、102、103、104を例示している。
ロボットコントローラ101は、ミニマム構成のロボットコントローラである。ロボットコントローラ101は、駆動モジュール201を有する。ロボットコントローラ101は、産業用ロボット81の制御が可能である。産業用ロボット81は、特定の機能に限定されたロボットである。駆動モジュール201は、サーボCPUを備える。サーボCPUは、あらかじめ設定されたプログラムに基づいて、産業用ロボット81のアクチュエータを駆動する。アクチュエータは、例えば、電気モータである。サーボCPUについては、後述する。
ロボットコントローラ102は、産業用ロボット82の制御が可能なロボットコントローラである。産業用ロボット82は、産業用ロボット81のように機能が限定されていない。産業用ロボット82は、汎用の産業用ロボットである。産業用ロボット82は、例えば多関節ロボットであってもよい。ロボットコントローラ102は、駆動モジュール202と、メインモジュール301とを備える。ロボットコントローラ102では、駆動モジュール202が、メインモジュール301からの制御を受けて、産業用ロボット82のアクチュエータの駆動を制御する。具体的に、例えば、駆動モジュール202のサーボCPUが、メインモジュール301のメインCPUからの制御を受けて、産業用ロボット82のアクチュエータを駆動する。メインモジュール301のメインCPUの処理能力は、サーボCPUの処理能力よりも高いものの、相対的に低い。なお、プロセッサの処理能力が高いとは、プロセッサのクロック周波数が相対的に高い、又は、プロセッサのコア数が相対的に多い、又は、プロセッサのスレッド数が相対的に多い、と言い換えてもよい。ロボットコントローラ102は、産業用ロボット82の他に、機能が制限された産業用ロボット81の制御を行うことができる。しかし、ロボットコントローラ102は、後述するロボットシステム83又はソーシャルロボット84の制御を行うことは難しい。
ロボットコントローラ103、104は、ロボットシステム83又はソーシャルロボット84等のアクチュエータの駆動を制御する。ロボットシステム83は、例えば複数の産業用ロボットと、ロボットの周辺機器とを含むシステムである。周辺機器は、ロボットと協働して作業を遂行するデバイスである。具体的に、周辺機器には、ロボットを移動させる移動デバイス、ロボットを旋回させるターンテーブル、ロボットへワークを搬送するコンベア、又は、ロボットが搬送するワークに対する処理を実行するデバイス、例えばワークとしての基板のアライメントを行うアライナが挙げられる。なお、周辺機器には、ロボットが含まれる。周辺機器としてのロボットは、例えばロボットへ、ワークを搬送するロボットである。ソーシャルロボット84は、産業用ロボット82と比較して、アクチュエータの数が多い、又は、ロボットの動作用アクチュエータ以外の、デバイスを含む、といった相違点を有する。アクチュエータ以外のデバイスには、例えば周囲環境を撮影するカメラ、又は、ロボット移動用の移動装置が含まれる。
ロボットコントローラ103は、駆動モジュール202と、メインモジュール302とを備える。ロボットコントローラ104は、駆動モジュール203と、メインモジュール303とを備える。例えば、駆動モジュール202は、多軸一体制御であり、駆動モジュール203は、各軸制御である。なお、制御形態の異なる駆動モジュール202、203が、共通のメインモジュール302の制御を受けで動作してもよい。本開示の技術の主題と異なるため、多軸一体制御と各軸制御との違いについての説明は省略する。メインモジュール302、303は、メインCPUを備える。メインモジュール302、303のメインCPUの処理能力は、メインモジュール301のメインCPUの処理能力よりも高い、としてもよい。メインCPUの処理能力が高い方が、ロボットシステム83又はソーシャルロボット84の制御に有利である。ロボットコントローラ103、104は、ロボットシステム83又はソーシャルロボット84の他に、産業用ロボット81、82の制御を行うことができる。
以下の説明では、ロボットコントローラ102、103、104を区別せずに説明する場合に、ロボットコントローラ10と呼ぶ。駆動モジュール201、202、203を区別せずに説明する場合に、駆動モジュール20と呼ぶ。メインモジュール301、302、303を区別せずに説明する場合に、メインモジュール30と呼ぶ。
本開示の技術は、ロボット制御に必要なプロセッサの処理能力に応じて、すなわち、図1に示すように制御対象となるロボットやロボットシステムの構成の違いに応じて、ロボット制御ソフトウェアのアーキテクチャをフレキシブルに組み替えることができるという特徴がある。この点について、図5、図8を参照しつつ説明する。図5、図8では、対応する構成に共通の符号を付している。
ロボットコントローラ10は、メインモジュール30と、駆動モジュール20とを備える。メインモジュール30と、駆動モジュール20とは、所定の通信プロトコルに準拠した伝送路を介して接続されている。
ロボットコントローラ10は、機能モジュールとして、指令値生成部41と、動作制御部42と、電流制御部43とを有する。指令値生成部41は、後述するTP制御部40で取得された入力データに基づいて、アクチュエータACの動作指令を生成する。動作指令は、アクチュエータACの位置を指示する位置指令、アクチュエータACの動作速度を指示する速度指令、又は、アクチュエータACのトルクを指示するトルク指令の少なくともいずれかを含む。動作制御部42は、指令値生成部41で生成された動作指令に基づいて、ロボット8のアクチュエータACを駆動するための電流指令を生成する。本開示の技術では、指令値生成部41と、動作制御部42と、電流制御部43とを、メインモジュール30又は駆動モジュール20にフレキシブルに配置できるという特徴がある。
詳細は後述するが、図5の例では、指令値生成部41及び動作制御部42は、メインモジュール30に位置する。電流制御部43は、駆動モジュール20に位置する。そして、動作制御部42と電流制御部43との間が、所定の通信プロトコルに準拠した伝送路Txで接続される。図5の構成の場合、伝送路Txでは、動作制御部42から電流制御部43に、アクチュエータACを駆動するための電流指令が送信される。
図8の例では、指令値生成部41は、メインモジュール30に位置する。動作制御部42及び電流制御部43は、駆動モジュール20に位置する。そして、指令値生成部41と動作制御部42との間が、所定の通信プロトコルに準拠した伝送路Txで接続される。図8の場合、伝送路Txでは、指令値生成部41から動作制御部42に、アクチュエータACの動作指令が送信される。
本開示では、指令値生成部41と、動作制御部42と、電流制御部43とをモジュール化している。それぞれのモジュール間は、所定の通信プロトコルでの接続が可能に構成することができる。これにより、メインモジュール30と、駆動モジュール20との制御のアーキテクチャの組み換えが容易になる。すなわち、従来技術と比較して、ロボット制御の柔軟性や拡張性が高いという効果が得られる。
<第1実施形態>
〔ロボットコントローラの構成〕
図2は、ロボットコントローラ10の概略構造を示す。ロボットコントローラ10は、ロボット8を制御する。ロボット8は、複数のアクチュエータACを備える。以下の説明では、説明の便宜上、複数のアクチュエータACをまとめて、単にアクチュエータACと呼ぶ場合がある。ロボットコントローラ10は、エンクロージャ19を備える。エンクロージャ19は、駆動モジュール20及びメインモジュール30を収容する。エンクロージャ19は、箱状であってもよいし、箱状以外の構造であってもよい。駆動モジュール20は、1又は複数の基板に搭載された回路で構成される。メインモジュール30は、1又は複数の基板に搭載された回路で構成される。駆動モジュール20、乃至、メインモジュール30は、着脱及び交換が可能に構成されていてもよい。図2の例では、エンクロージャ19は、スロット18を有する。メインモジュール30は、スロット18への着脱が可能に構成されてもよい。
図3及び図4は、ロボットコントローラ10の構成を例示するブロック図である。図3は、ロボットコントローラ10のハードウェアの構成例を示し、図4は、ロボットコントローラ10の機能ブロックの構成例を示す。図5は、図4のロボットシステムに係る制御ループを説明するための図である。各図面では、本開示の内容と関連性の高い構成を中心に図示している。なお、ロボットコントローラ10のハードウェアの構成は図3に限定されない。ロボットコントローラ10の機能ブロック構成は、図4に限定されない。例えば、図4において、機能ブロック同士を結合してもよいし、図4よりも細分化してもよい。
図3に示すように、ロボットコントローラ10は、メインモジュール30を備える。メインモジュール30は、メインCPU33を有する。メインCPU33は、例えば、後述する入力装置80から受信される指令、情報、データ等の入力データにしたがって、ロボット8の種々の構成要素の動作を制御する。メインCPU33は、例えば、メイン回路34に含まれる。例えば、メイン回路34は、基板に実装される。メインCPU33の機能は、例えば、メモリに記憶されたプログラムをメインCPU33に搭載されたプロセッサが実行することにより実現される。メインCPU33は、メインプロセッサの一例である。
なお、メインCPU33は、CPU(中央演算処理装置)に加えて又は代えて、MPU(Micro Processing Unit)、GPU(Graphics Processing Unit)、マイクロプロセッサ(microprocessor)、プロセッサコア(processor core)、マルチプロセッサ(multiprocessor)、ASIC(Application-Specific Integrated Circuit)、FPGA(Field Programmable Gate Array)、及びリコンフィギュラブルプロセッサの群から選択される1又は複数を用いてもよい。プロセッサが、1つ又は複数の、チップ化された集積回路で構成されてもよい。メモリは、例えば、RAM(Random Access Memory)等の揮発性メモリ、ROM(Read Only Memory)及びフラッシュメモリ等の不揮発性メモリ、ハードディスクドライブ(HDD)、並びに、SSD(Solid State Drive)の群から選択される1又は複数を含んでもよい。
図4に示すように、メインCPU33は、指令値生成部41を含む。メインCPU33は、入力データを処理するTP制御部40を含んでもよい。入力データは、例えば、後述する入力装置80から入力される。指令値生成部41は、TP制御部40で取得された入力データで示されるロボット8の動作を実現するための、アクチュエータACの位置指令を生成する。具体的に、TP(ティーチペンダント)は、ロボットを手動操作させるための操作コントローラである。TP制御部40は、TPの動作を制御する。TPは、ロボット8の各アクチュエータを指定速度で、正回転または逆回転させるボタンを備える。TPのボタンに受け付けられた操作は、TP制御部40を介して指令値生成部41に伝達される。指令値生成部41は、TPに受け付けられた操作に対応する位置指令を生成する。
指令値生成部41は、位置指令に基づいて、アクチュエータACの動作速度を指示する速度指令を生成してもよい。速度指令は、例えば、アクチュエータAC1の速度を直接的に示してもよいし、間接的に示してもよい。指令値生成部41は、位置指令に基づいて、アクチュエータACのトルクを指示するトルク指令を生成してもよい。指令値生成部41は、例えば、アクチュエータACの位置指令と、後述するエンコーダDa1で検出された回転角とに基づいてトルク指令値を生成する。トルク指令値は、例えば、アクチュエータACのトルクを直接的に示してもよいし、間接的に示してもよい。指令値生成部41は、動作制御部42に動作指令を出力する。動作指令は、それぞれのアクチュエータACの制御に係る、位置指令、速度指令、又は、トルク指令の少なくともいずれかを含む。なお、メインモジュール30において、エンコーダDa1の測定データは、図4に示すように、サーボCPU23の通信部28及び伝送路Txを介して受信してもよい。また、メインモジュール30にエンコーダDa1を接続してもよい。メインモジュール30は、駆動モジュール20を介さずに、エンコーダDa1から出力された測定データを直接受信してもよい。
なお、TPが、トリガスイッチや非常停止ボタンなどを有していてもよい。トリガスイッチは、ロボット8を動作させる場合に、モータを通電状態にするための操作スイッチである。非常停止ボタンは、ロボット8を緊急停止させるための操作ボタンである。また、TPが、表示画面と各種操作キーを有してもよい。TPが、ソフト設定をセーブロードする機能などを有してもよい。TP及びTP制御部40は、ロボットコントローラ10の必須の構成ではない。例えば、指令値生成部41が、ロボットコントローラ10の外部から受けた信号に基づいて、位置指令を生成してもよい。
メインCPU33は、動作制御部42を含む。動作制御部42は、指令値生成部41で生成された動作指令を取得する。動作制御部42は、指令値生成部41で生成された動作指令に基づいて、アクチュエータACを駆動するための電流指令を生成する。ここで、駆動対象のロボット8は、例えば、図10に例示するような、多関節ロボットを含む産業用ロボット82である。具体的な構成は後述するが、産業用ロボット82は、ジョイント部Jに位置する複数のアクチュエータACを含む。ジョイント部Jは、例えば、リンクL間を接続する。動作制御部42は、複数のアクチュエータACのそれぞれを駆動するための電流指令を生成する。
メインCPU33は、通信部38を含んでもよい。通信部38は、伝送路Txを介して、後述する駆動モジュール20の通信部28と通信する機能を有する。具体的に、通信部38は、所定の通信プロトコルに準拠したインターフェース回路を含む。通信部38は、動作制御部42で生成された電流指令を、所定の通信プロトコルに対応する信号形式に変換する。説明の便宜上、形式変換後の信号について「電流指令信号」と称する。所定の通信プロトコルは、例えば、EtherCATである。通信部38は、伝送路Txを介して、電流指令信号を駆動モジュール20に送信する。すなわち、通信部38は、電流指令を所定の通信プロトコルに対応する形式の電流指令信号にし、伝送路Txを介して駆動モジュールに送信する。電流指令信号は、複数のアクチュエータACのそれぞれを駆動するための電流指令を含む。通信部38と後述する通信部28とは、マスターースレーブの関係にあり、通信部38がマスターノードであり、通信部28がスレーブノードである。通信部38は、マスター機能を有するマスターインターフェース回路を含む。なお、通信部38としての機能の一部または全部が、メインCPU33と異なる回路で実現されてもよい。所定の通信プロトコルとして、EtherCAT以外の高速インターフェースプロトコルに準拠してもよい。高速インターフェースとして、例えば、通信速度として100Mbps以上が好ましい。高速インターフェースは、例えば、1Gbps以上である。高速インターフェースは、例えば、10Gbps以上である。インターフェースの通信速度は、より速い方が好ましく、通信速度の向上により、ロボット制御のリアルタイム性の向上に寄与する。
伝送路Txの形態は、特に限定されない。伝送路Txは、例えば、所定の通信プロトコルに準拠したコネクタ21、31を含んでもよい。例えば、コネクタ21は、駆動モジュール20に位置する。例えば、コネクタ31は、メインモジュール30に位置する。そして、コネクタ21とコネクタ31とが接続される。図2では、コネクタ21、31同士が直接接続されている例を示している。伝送路Txは、例えば、所定の通信プロトコルに準拠したケーブルを含んでもよい。伝送路Txは、例えば、基板に搭載された、サーボ回路22やメイン回路34のプリント配線を含んでもよく、メインCPU33やサーボCPU23の内部ノードを含んでもよい。コネクタ21、31の具体的構造は特に限定されない。コネクタ21、31として、例えば、基板に配置された、プラグ、ソケット、ヘッダ、レセプタクル、ピンコンタクトなどが例示される。コネクタ21とコネクタ31とが、オスコネクタとメスコネクタとの関係にあってダイレクトに接続できる構造でもよい。なお、コネクタ21、31は、必須の構成ではない。例えば、コネクタに代えて、半田等を用いて接続してもよい。
メインCPU33は、防振制御部46を有してもよい。開示する技術の主題とは異なるため詳細な説明は省略するが、防振制御部46は、例えば、ロボットアーム先端の振動を抑えるため、伝達機構に発生するねじれ量をオブザーバを用いて推定し、発生したねじれ量を考慮して振動を抑える機能を有する。
メインCPU33において、上記の通信部28及び電流制御部43の機能を実現する制御プログラムを備えてもよい。制御プログラムは、駆動モジュール20に、受信処理と、駆動処理とを実行させる。受信処理は、伝送路Txを介してメインモジュール30から受信した所定の通信プロトコルに準拠する受信信号から、サーボモータMaを駆動するための電流指令を取り出す処理である。駆動処理は、受信処理で取り出した電流指令に基づいて、サーボモータMaを駆動する処理である。例えば、サーボモータMaの駆動は、サーボモータMaに出力する出力電流の制御により実現されてもよい。サーボモータMaの駆動が、サーボモータMaに駆動信号を送信する形で実現されてもよい。
ロボットコントローラ10は、駆動モジュール20を備える。駆動モジュール20は、ロボット8のアクチュエータACを駆動するモジュールである。アクチュエータACは、例えば、電気モータを含む。電気モータは、サーボモータMaを含む。駆動モジュール20は、サーボCPU23を含む。サーボCPU23は、例えば、サーボ回路22に含まれる。駆動モジュール20は、1又は複数の基板を有する。例えば、図3に示す駆動モジュール20の各回路が、1又は複数の基板に搭載される。サーボCPU23の数は、1又は複数である。サーボCPU23の数は、サーボモータMaと同数であってもよいし、サーボモータMaよりも少なくてもよい。サーボCPU23の機能は、例えば、メモリに記憶されたプログラムをサーボCPU23に搭載されたプロセッサが実行することにより実現される。
なお、サーボCPU23として、CPU(中央演算処理装置)に加えて又は代えて、MPU(Micro Processing Unit)、GPU(Graphics Processing Unit)、マイクロプロセッサ(microprocessor)、プロセッサコア(processor core)、マルチプロセッサ(multiprocessor)、ASIC(Application-Specific Integrated Circuit)、FPGA(Field Programmable Gate Array)、及びリコンフィギュラブルプロセッサの群から選択される1又は複数を用いてもよい。プロセッサが、1つ又は複数の、チップ化された集積回路で構成されてもよい。メモリは、例えば、RAM(Random Access Memory)等の揮発性メモリ、ROM(Read Only Memory)及びフラッシュメモリ等の不揮発性メモリ、ハードディスクドライブ(HDD)、並びに、SSD(Solid State Drive)の群から選択される1又は複数を含んでもよい。
例えば、サーボCPU23は、メインCPU33から伝送路Txを介して電流指令を受信し、電流指令に基づいてアクチュエータACを駆動する。例えば、アクチュエータACは、複数である。駆動モジュール20に含まれるサーボCPU23の数は、1又は複数である。サーボCPU23の数は、サーボモータMaと同数であってもよいし、サーボモータMaよりも少なくてもよい。図3では、サーボ回路22に1つのサーボCPU23が含まれる例を示す。例えば、サーボ回路22ごとに基板が用意される。図3の例では、サーボCPU23に、アンプ回路24を介して6つのサーボモータMaが接続されている。1つの駆動モジュール20が駆動対象とするサーボモータMaの数は、特に限定されず、6つより少なくてもよいし、多くてもよい。例えば、サーボ回路22あたりでの駆動対象のアクチュエータ数は、6つ以上である。例えば、1つのサーボ回路22で、6軸以上のロボットアームが駆動できる。言い換えると、1つの基板あたりで、6軸以上のロボットアームが駆動できる。例えば、サーボ回路22あたりで、9軸のロボットアームが駆動できる。言い換えると、1つの基板あたりで、9軸のロボットアームが駆動できる。
駆動モジュール20は、電源回路25を有する。駆動モジュール20は、アンプ回路24を有する。図5に示すように、電源回路25は、コンバータ26を含む。コンバータ26は、電源電力を入力として受け、電力変換して出力する。アンプ回路24は、インバータ27を含む。インバータ27は、コンバータ26の出力を受けて、サーボ回路22からの信号に基づく電流をアクチュエータACに供給する。
図4に示すように、サーボCPU23は、通信部28を有する。通信部28は、メインCPU33の通信部38と通信する機能を有する。具体的に、通信部28は、所定の通信プロトコルに準拠したインターフェース回路を有し、メインCPU33の通信部38との間で所定の通信プロトコルに準拠した通信を行う。通信部28は、伝送路Txを介して通信部38から出力された電流指令信号を受信する。前述のとおり、通信部38と後述する通信部28とは、マスターースレーブの関係にあり、通信部28は、スレーブ機能を有するスレーブインターフェース回路を含む。通信部28は、伝送路Txから受信した電流指令信号から電流指令を取り出し、電流制御部43に出力する。電流指令信号から電流指令を取り出す機能は、電流制御部43で実現されてもよい。
通信部28は、サーボモータMaの状態を測定するセンサDaの検出信号を受信する機能を有してもよい。センサDaは、エンコーダDa1を含んでもよい。エンコーダDa1は、サーボモータMaのモータ軸の回転角、回転速度等を検出し、電気信号に変換して出力する。エンコーダDa1の測定データは、サーボCPU23に送信される。エンコーダDa1の測定データが、通信部28及び伝送路Txを介してメインCPU33に送信されてもよい。センサDaは、トルクセンサDa2を含んでもよい。トルクセンサDa2は、サーボモータMaにかかるトルクを検出し、電気信号に変換して出力する。トルクセンサDa2の測定データは、サーボCPU23に送信される。トルクセンサDa2の測定データが、通信部28及び伝送路Txを介してメインCPU33に送信されてもよい。センサDaは、エンコーダDa1又はトルクセンサDa2以外のセンサを含んでもよい。
サーボCPU23は、電流制御部43を有する。図5に示すように、電流制御部43は、メインCPU33から受信した電流指令に基づいて、サーボモータMaの回転を制御する。例えば、電流制御部43は、サーボモータMaの回転制御として、インバータ27を制御することで、サーボモータMaに供給される電流を制御する。電流制御部43は、インバータ27の出力電流に応じた電流フィードバック信号を受けて、クローズドループ制御を実行してもよい。具体的に、電流制御部43は、メインCPU33から受信した電流指令と、電流フィードバック信号との誤差を演算し、両者間の誤差を減らすようにフィードバック制御をしてもよい。インバータ27の出力電流は、例えば、電流センサ29で測定される。
サーボCPU23において、上記の通信部28及び電流制御部43の機能を実現する制御プログラムを備えてもよい。制御プログラムは、駆動モジュール20に、受信処理と、駆動処理とを実行させる。受信処理は、伝送路Txを介してメインモジュール30から受信した所定の通信プロトコルに準拠する受信信号から、サーボモータMaを駆動するための電流指令を取り出す処理である。駆動処理は、受信処理で取り出した電流指令に基づいて、サーボモータMaを駆動する処理である。例えば、サーボモータMaの駆動は、サーボモータMaに出力する出力電流の制御により実現されてもよい。サーボモータMaの駆動が、サーボモータMaに駆動信号を送信する形で実現されてもよい。
なお、図5に示すように、動作制御部42は、位置フィードバック制御を行うようにしてもよい。例えば、エンコーダDa1で検出されたサーボモータMaの位置を第1フィードバック信号として、メインモジュール30の動作制御部42にフィードバックしてもよい。例えば、動作制御部42は、エンコーダDa1で検出されたサーボモータMaの位置に基づいて、電流指令を調節してもよい。例えば、動作制御部42は、指令値生成部41から受けた位置指令と、第1フィードバック信号との誤差を演算し、両者間の誤差を減らすように電流指令を調節するフィードバック制御を実行してもよい。なお、第1フィードバック信号は、例えば、エンコーダDa1の検出信号に基づく速度フィードバック信号を含んでもよい。第1フィードバック信号は、例えば、トルクセンサDa2の検出信号に基づくトルクフィードバック信号を含んでもよい。さらに、動作制御部42は、速度フィードバック信号乃至トルクフィードバック信号を用いて、電流指令を調節するフィードバック制御を実行してもよい。図5の例では、後述する電流フィードバック制御は、駆動モジュール20で制御ループが閉じている。一方で、位置フィードバック制御は、駆動モジュール20及びメインモジュール30を跨いだ制御ループとなっている特徴がある。
上記の説明では、駆動モジュール20とメインモジュール30の構成及び動作についてそれぞれ個別に説明した。以下では、図6のフローチャートを参照しつつ、図4及び図5に例示したロボットコントローラ10によるロボットの制御方法についてロボットコントローラ10全体を通して概要を説明する。
S11において、指令値生成部41は、動作指令を生成する。S12において、動作制御部42は、動作指令に基づいて、電流指令を生成する。S13において、メインモジュール30では、生成された電流指令を所定の通信プロトコルに対応する形式に変換し、伝送路Txを介して、駆動モジュール20に送信する。所定の通信プロトコルへの変換は、動作制御部42で行われてもよいし、通信部38で行われてもよい。S14において、駆動モジュール20では、伝送路Txを介して、所定の通信プロトコルに対応する形式の電流指令を受信する。駆動モジュール20では、伝送路Txを介して受信した受信信号から電流指令が読み出される。電流指令の読み出しは、通信部28で行われてもよいし、電流制御部43で行われてもよい。S15において、電流制御部43は、読み出された電流指令に基づいてアクチュエータACを駆動する。例えば、電流制御部43は、アクチュエータACに出力する出力電流の制御により、アクチュエータACを駆動する。
前述のとおり、本開示では、ロボットコントローラ10の制御のアーキテクチャの組み換えが容易という特徴がある。図7、図8では、図4、図5の構成から、ロボットコントローラ10の制御のアーキテクチャを組み換えた例を示している。図7は、図4に対応する機能ブロック図である。図8は、図5に対応する制御ループを示す。図9は、図7のロボットシステムに係るロボット制御の一例を示すフローチャートである。図9は、図6に対応するフローチャートである。それぞれの対応図において、対応する構成には、共通の符号を付している。以下では、制御のアーキテクチャが組み換えられた部分を中心に説明する。
図7において、指令値生成部41は、メインモジュール30に位置する。動作制御部42及び電流制御部43は、駆動モジュール20に位置する。そして、前述のとおり、指令値生成部41と動作制御部42との間が、所定の通信プロトコルに準拠した伝送路Txで接続される。図7の例では、通信部38は、指令値生成部41で生成された動作指令を、所定の通信プロトコルに対応する信号形式に変換する。説明の便宜上、形式変換後の信号について「動作指令信号」と称する。図8に示すように、通信部38は、伝送路Txを介して、動作指令信号を駆動モジュール20に送信する。すなわち、通信部38は、動作指令を所定の通信プロトコルに対応する形式の動作指令信号にし、伝送路Txを介して駆動モジュールに送信する。電流指令信号は、複数のアクチュエータACのそれぞれを駆動するための動作指令を含む。
駆動モジュール20において、サーボCPU23は、後述するメインCPU33から伝送路Txを介して動作指令を受信し、動作指令に基づいてアクチュエータACを駆動する。具体的に、通信部28は、伝送路Txを介して通信部38から出力された動作指令信号を受信する。通信部28は、伝送路Txから受信した動作指令信号から動作指令を取り出し、動作制御部42に出力する。動作制御部42は、通信部28で取得された動作指令に基づいて、アクチュエータACを駆動するための電流指令を生成する。電流制御部43は、動作制御部42で生成された電流指令に基づいて、サーボモータMaの回転を制御する。例えば、電流制御部43は、サーボモータMaの回転制御として、インバータ27を制御することで、サーボモータMaに供給される電流を制御する。なお、電流制御部43は、メインCPU33から受信した電流指令と、電流フィードバック信号との誤差を演算し、両者間の誤差を減らすように電流フィードバック制御を実行してもよい。また、動作制御部42は、エンコーダDa1で検出されたサーボモータMaの位置に基づいて、位置フィードバック制御を実行してもよい。例えば、動作制御部42は、エンコーダDa1で検出されたサーボモータMaの位置に基づいて、電流指令を調節するフィードバック制御を実行してもよい。図8の例では、電流フィードバック制御及び位置フィードバック制御の制御ループがともに駆動モジュール20で閉じている点が図5の例と異なる。
次に、図9を参照しつつ、図7及び図8に例示したロボットコントローラ10によるロボットの制御方法についてロボットコントローラ10全体を通して概要を説明する。
S21において、指令値生成部41は、アクチュエータACの動作指令を生成する。S22において、メインモジュール30では、生成された動作指令を所定の通信プロトコルに対応する形式に変換し、伝送路Txを介して、駆動モジュール20に送信する。所定の通信プロトコルへの変換は、指令値生成部41で行われてもよいし、通信部38で行われてもよい。S23において、駆動モジュール20では、伝送路Txを介して、所定の通信プロトコルに対応する形式の動作指令を受信する。駆動モジュール20において、受信信号から動作指令が読み出される。S24において、動作制御部42は、動作指令に基づいて、電流指令を生成する。S25において、電流制御部43は、読み出された電流指令に基づいてアクチュエータACを駆動する。例えば、電流制御部43は、アクチュエータACに出力する出力電流の制御により、アクチュエータACを駆動する。
以上のように、本実施形態では、機能モジュールを、指令値生成部41と、動作制御部42と、電流制御部43という切り分けとし、それぞれの機能モジュール間を、伝送路Txを介したインターフェースに対応可能にしている。これにより、ロボットコントロールシステムの全体として見た場合に、制御アーキテクチャの選択肢が広がり、ロボット制御の柔軟性、拡張性を高めることができる。
〔適用例〕
図10は、第1実施形態の技術を適用したロボット8を斜め上側から見た斜視図である。図10では、第1実施形態に係るロボットコントローラ10を、産業用ロボット82に適用した例を示している。図例の産業用ロボット82は多関節ロボットである。具体的に図10のロボット82は、6軸の垂直多関節ロボットである。産業用ロボット82は、例えばワークの搬送作業を行う。なお、第1実施形態の技術が適用可能なロボット8は、多関節ロボットに限定されない。第1実施形態の技術は、様々な構造のロボット8に適用可能である。また、ロボット8が実行する作業は、搬送作業に限定されない。ロボット8は、様々な作業を実行する。また、ロボット8は、産業用ロボットに限らない。
産業用ロボット82は、アーム821を有する。アーム821は、互いに連結された複数のリンクLを含む。アーム821は、エンドエフェクタ822を支持する。リンクL間は、ジョイント部Jで接続されている。ロボット82は、アーム821及びエンドエフェクタ822を動かすための、複数のアクチュエータACを有する。アクチュエータACは、例えば、前述のサーボモータMaを含む。アクチュエータACは、例えば、ジョイント部Jに位置する。
ロボットコントローラ10は、例えば、ロボット82を制御する、又は、ロボット82とロボット82の周辺機器を含むロボットシステム820を制御する。ロボットコントローラ10は、ロボットシステム820に対し、ハーネス89を介して電気的に接続される。 ロボットコントローラ1によって制御される周辺機器として、例えばロボット8を移動させる走行軸825が例示できる。また、ワークのポジショナ826又はロケータも、周辺機器の一例である。なお、周辺機器は、これら走行軸825、ポジショナ826、又はロケータに限定されない。例えばロボット8を旋回させるターンテーブル、ロボット8へワークを搬送するコンベア、又は、ロボット8が搬送するワークに対する処理を実行するデバイス、また、ワークとしての基板のアライメントを行うアライナが、周辺機器の例として挙げられる。
<第2実施形態>
以下において、第2実施形態に係るロボットコントローラ10について、説明する。以下の説明において、第1実施形態と対応する構成には、共通の符号を付している。以下の説明では、第1実施形態との相違点を中心に説明する。
〔ロボットコントローラの構成〕
図11は、ロボットコントローラ10の概略構造を示す。ロボットコントローラ10は、エンクロージャ19を備える。エンクロージャ19は、駆動モジュール20及びメインモジュール30を収容する。図11の例では、駆動モジュール20が複数となっている点が第1実施形態と異なる。
図12は、ロボットコントローラ10の構成を例示するブロック図である。ロボットコントローラ10は、メインモジュール30を備える。メインモジュール30は、メインCPU33を有する。メインモジュール30には、駆動モジュール20の数に応じたコネクタ31が位置する。それぞれのサーボCPU23は、コネクタ21及びコネクタ31を介して、メインCPU33と通信ができるようになっている。コネクタ21、31の具体的構造は特に限定されない。
メインCPU33は、例えば、後述する入力装置80から受信される指令、情報、データ等の入力データにしたがって、ロボット8の種々の構成要素の動作を制御する。メインCPU33の構成、及び、動作は、第1実施形態と共通している。
図13に示すように、メインCPU33は、指令値生成部41を含む。メインCPU33は、入力データを処理するTP制御部40を含んでもよい。指令値生成部41は、TP制御部40で取得された入力データで示されるロボット8の動作を実現するための、アクチュエータACの位置指令を生成する。このとき、それぞれの駆動モジュール20,20のアクチュエータに対応する位置指令を生成する。指令値生成部41は、位置指令に基づいて、アクチュエータACの動作速度を指示する速度指令を生成してもよい。指令値生成部41は、位置指令に基づいて、アクチュエータACのトルクを指示するトルク指令を生成してもよい。
ロボットコントローラ10は、駆動モジュール20,20を備える。それぞれの駆動モジュール20の構成及び動作は、第1実施形態と共通している。駆動モジュール20は、それぞれ、ロボット8のアクチュエータACを駆動するモジュールである。アクチュエータACは、例えば、電気モータを含む。電気モータは、サーボモータMaを含む。複数の駆動モジュール20で、駆動対象のアクチュエータ数が異なっていてもよい。本実施形態では、サーボ回路22に2つのサーボCPU23が実装されている例を示す。図12において、1つのサーボCPU23には、アンプ回路24を介して4つのサーボモータMaが接続されている。もう1つのサーボCPU23には、アンプ回路24を介して3つのサーボモータMaが接続されている。
本実施形態においても、第1実施形態と同様に、指令値生成部41と、動作制御部42と、電流制御部43とを、メインモジュール30又は駆動モジュール20にフレキシブルに配置できるという特徴がある。
図13の例では、指令値生成部41及び動作制御部42は、メインモジュール30に位置する。電流制御部43は、それぞれの駆動モジュール20に位置する。そして、動作制御部42と、それぞれの駆動モジュール20の電流制御部43との間が、所定の通信プロトコルに準拠した伝送路Txで接続される。図14に示すように、伝送路Txでは、動作制御部42から電流制御部43に、アクチュエータACを駆動するための電流指令が送信される。電流制御部43は、メインCPU33から受信した電流指令に基づいて、サーボモータMaの回転を制御する。例えば、電流制御部43は、サーボモータMaの回転制御として、インバータ27を制御することで、サーボモータMaに供給される電流を制御する。電流制御部43は、インバータ27の出力電流に応じた電流フィードバック信号を受けて、クローズドループ制御を実行してもよい。図14の例では、電流フィードバック制御は、駆動モジュール20で制御ループが閉じている。一方で、位置フィードバック制御は、駆動モジュール20及びメインモジュール30を跨いだ制御ループとなっている特徴がある。例えば、図14の第1フィードバックは、センサDaで測定されたアクチュエータACの位置であり、位置フィードバックの一例である。例えば、図14の第2フィードバックは、センサDaで測定されたアクチュエータACの位置であり、位置フィードバックの一例である。図13及び図14に例示したロボットコントローラ10によるロボットの制御方法については、図6のフローチャートを用いて説明することができ、第1実施形態と同様に動作し、第1実施形態と同様の効果が得られる。
図15の例では、指令値生成部41は、メインモジュール30に位置する。動作制御部42及び電流制御部43は、駆動モジュール20に位置する。そして、指令値生成部41と動作制御部42との間が、所定の通信プロトコルに準拠した伝送路Txで接続される。図15の場合、伝送路Txでは、指令値生成部41から動作制御部42に、アクチュエータACの動作指令が送信される。例えば、駆動モジュール20が複数の場合、それぞれに、互いに異なる動作指令が送信される。図16に示すように、動作制御部42は、通信部28で取得された動作指令に基づいて、アクチュエータACを駆動するための電流指令を生成する。電流制御部43は、動作制御部42で生成された電流指令に基づいて、サーボモータMaの回転を制御する。例えば、電流制御部43は、サーボモータMaの回転制御として、インバータ27を制御することで、サーボモータMaに供給される電流を制御する。電流制御部43は、インバータ27の出力電流に応じた電流フィードバック信号を受けて、クローズドループ制御を実行してもよい。図16の例では、電流フィードバック制御及び位置フィードバック制御の制御ループがともに駆動モジュール20で閉じている点が図14の例と異なる。図15及び図16に例示したロボットコントローラ10によるロボットの制御方法については、図9のフローチャートを用いて説明することができ、第1実施形態と同様に動作し、第1実施形態と同様の効果が得られる。
〔適用例〕
図17は、本開示の技術を適用したロボットシステムAを斜め上側から見た斜視図である。図18は、図17のロボットコントローラ10の構成を示すブロック図である。なお、ロボットコントローラ10における、前Fr、後Rr、右Rt、左Lt、上Up、及び、下Lwを、ロボット8を基準にして、以下のように定義する。前Frは、ロボット8の前進方向に対応し、後Rrは、ロボット8の後退方向に対応する。ロボット8の前進方向に対して、右Rt及び左Ltを定義する。左右方向は、前後方向に対して水平に直交する方向である。上Up及び下Lwは、ロボット8の上及び下に対応する。上下方向は、前後方向に対して垂直に直交する方向である。なお、説明の理解を容易にするために、便宜上、前述の「ロボットコントローラの構成」と共通の構成について、同一の符号を用いて説明する場合がある。共通の構成の説明では、前述の「ロボットコントローラの構成」との相違点を中心に説明する。なお、本適用例の説明において、前述の「ロボットコントローラの構成」と共通の符号を付している構成について、同一構造であることを限定する意図はない。
ここで、産業用ロボットアームの制御の場合、1本のアームのみ(例えば、6軸)を制御対象とする。それに対して、例えば、図17に示すソーシャルロボットの例では、左右のアームが協調して、ものをつかむなどの動作を行う。そうすると、動作対象のアームだけでなく、相手側のアームの情報も必要となる。すなわち、左右アームの動作を計画する必要がある。また、例えば、対象物を持ちながら走行する場合には、アームの状態を考慮しながら後述する走行機構70の動かし方(例えば、動作方向や加減速)を考える必要がある。
ロボットシステムAは、ロボット8を備える。ロボット8は、ソーシャルロボットの一例である。ロボット8は、ロボット本体50を備える。ロボット本体50は、ロボット8の電力源として機能する電池モジュール57を備える。ロボット本体50は、電源回路52を備える。電源回路52は、メインCPU33の指令等に従って、電池モジュール57への電力の需給を制御する。電源回路52は、商用電源等の外部電源から電力の供給を受け付け、電池モジュール57に蓄電する。電源回路52は、電池モジュール57に蓄電された電力をロボット8の構成要素に供給する。前述の電源回路25に供給される電源電力は、例えば、電源回路52から供給される。
ロボット本体50は、撮像装置54を備えてもよい。撮像装置54は、ロボット8に複数配置されていてもよい。撮像装置54は、ロボット8の周囲の様々な情報を検出可能に構成されていてもよい。撮像装置54は、撮像した画像のデータをメインCPU33に出力する。例えば、メインCPU33は、撮像装置54で取得された画像データを制御に使用してもよい。メインCPU33の具体的な構成例、動作例について、後ほど説明する。ロボット本体50は、提示装置56を備えてもよい。提示装置56は、ロボット8の周囲のユーザに情報を提示する。提示装置56は、ロボット本体50に取り付けられたディスプレイ56aを含んでもよい。撮像装置54及び提示装置56は、ロボット8の必須の構成要素ではない。
ロボット本体50は、後述する入力装置80と通信可能にするインターフェース回路53を備えてもよい。インターフェース回路53は、入力装置80のインターフェース回路88と通信する。インターフェース回路53は、使用される通信方式に適合する構成を有する。
ロボット8は、1又は複数のアーム60を備える。ここでは、ロボット8は、アーム60として、第1アーム60Aと、第2アーム60Bとを有する例を示す。第1アーム60Aは、ロボット本体50の左側の部分に支持される。第2アーム60Bは、ロボット本体50の右側の部分に支持される。第1アーム60Aは、前述のアクチュエータACの一例である。第2アーム60Bは、前述のアクチュエータACの一例である。
第1アーム60Aは、垂直多関節式のアームである。ここでは、第1アーム60Aが、第1乃至第6リンクLA1-LA6と、第1乃至第7関節JA1-JA7と、を有する7軸のアームの例を示す。第1アーム60Aは、第1エンドエフェクタ58aを有する。第1乃至第6リンクLA1-LA6は、リンクLの一例である。第1乃至第7関節JA1-JA7は、ジョイント部Jの一例である。
第2アーム60Bは、垂直多関節式のアームである。ここでは、第2アーム60Bが、第1乃至第6リンクLB1-LB6と、第1乃至第7関節JB1-JB7と、を有する7軸のアームの例を示す。第2アーム60Bは、第2エンドエフェクタ58bを有する。第1乃至第6リンクLB1-LB6は、リンクLの一例である。第1乃至第7関節JB1-JB7は、ジョイント部Jの一例である。
第1リンクLA1は、第1関節JA1を介してロボット本体50の上部に接続されている。第1関節JA1の回転軸は、上下方向に延びる。第1リンクLA1は、第1関節JA1の回転軸と直交する方向に延びる。第1リンクLA1は、第1関節JA1により、ロボット本体50に対して水平面内で回転可能である。第1関節JA1には、第1関節JA1を回転駆動するサーボモータMaが配置される。
第2リンクLA2は、第2関節JA2を介して第1リンクLA1に接続されている。第2リンクLA2は、第1リンクLA1の第1関節JA1とは反対側の端部に接続されている。第2関節JA2の回転軸は、第1関節JA1の回転軸と直交する方向に延びる。第2リンクLA2は、第2関節JA2の回転軸と直交する方向に延びる。第2関節JA2には、第2関節JA2を回転駆動するサーボモータMaが配置される。
第3リンクLA3は、第3関節JA3を介して第2リンクLA2に接続されている。第3リンクLA3は、第2リンクLA2の、第2関節JA2とは反対側の端部に接続されている。第3関節JA3の回転軸は、第2関節JA2の回転軸と直交する方向に延びる。第3リンクLA3は、第3関節JA3の回転軸と平行な方向に延びる。第3関節JA3には、第3関節JA3を回転駆動するサーボモータMaが配置される。
第4リンクLA4は、第4関節JA4を介して第3リンクLA3に接続されている。第4リンクLA4は、第3リンクLA3の、第3関節JA3とは反対側の端部に接続されている。第4関節JA4の回転軸は、第3関節JA3の回転軸と直交する方向に延びる。第4リンクLA4は、第4関節JA4の回転軸と直交する方向に延びる。第4関節JA4には、第4関節JA4を回転駆動するサーボモータMaが配置される。
第5リンクLA5は、第5関節JA5を介して第4リンクLA4に接続されている。第5リンクLA5は、第4リンクLA4の、第4関節JA4とは反対側の端部に接続されている。第5関節JA5の回転軸は、第4関節JA4の回転軸と直交する方向に延びる。第5リンクLA5は、第5関節JA5の回転軸と平行な方向に延びる。第5関節JA5には、第5関節JA5を回転駆動するサーボモータMaが配置される。
第6リンクLA6は、第6関節JA6を介して第5リンクLA5に接続されている。第6リンクLA6は、第5リンクLA5の、第5関節JA5とは反対側の端部に接続されている。第6関節JA6の回転軸は、第5関節JA5の回転軸と直交する方向に延びる。第6リンクLA6は、第6関節JA6の回転軸と直交する方向に延びる。第6関節JA6には、第6関節JA6を回転駆動するサーボモータMaが配置される。
第1エンドエフェクタ58aは、第7関節JA7を介して第6リンクLA6に接続されている。第1エンドエフェクタ58aは、第6リンクLA6の、第6関節JA6とは反対側の端部に接続されている。第1エンドエフェクタ58aは、第6リンクLA6に着脱可能に接続されている。第7関節JA7の回転軸は、第6関節JA6の回転軸と直交する方向に延びる。第7関節JA7には、第7関節JA7を回転駆動するサーボモータMaが配置される。
第1アーム60Aは、第1乃至第7関節JA1-JA7を駆動する第1乃至第7関節駆動装置GA1-GA7を含む。第1乃至第7関節駆動装置GA1-GA7は、電力を動力源とし、電動アクチュエータとしてサーボモータMaを有する。電動アクチュエータは、アクチュエータACの一例である。
第1アーム60Aは、サーボCPU23Aを含む。サーボCPU23Aは、例えば、サーボ回路22Aに含まれる。サーボ回路22Aは、第1アーム60Aに収容されていてもよいし、ロボット本体50の第1アーム60A以外の位置に収容されていてもよい。サーボCPU23Aは、メインCPU33から第1動作指令値を受けて第1乃至第7関節駆動装置GA1-GA7のサーボモータMaを駆動する。第1乃至第7関節駆動装置GA1-GA7のサーボCPU23Aは、それぞれ、サーボモータMaの状態を測定するセンサDaの検出信号を受信する機能を有する。センサDaは、エンコーダDa1を含んでもよい。センサDaは、トルクセンサDa2を含んでもよい。サーボCPU23Aは、メインCPU33と通信する機能を有する通信部28Aを含む。サーボCPU23A、通信部28Aは、それぞれ、前述の「ロボットコントローラの構成」に記載のサーボCPU23、通信部28に相当する。サーボCPU23A、通信部28A、サーボモータMa及びセンサDaの構成及び機能は、前述の「ロボットコントローラの構成」に記載の構成及び機能を含んでいてもよい。
第2アーム60Bの構成は、第1アーム60Aと同じであるため、詳細な説明を省略する。第2アーム60Bは、第1アーム60Aとは左右対称に配置されている。第2アーム60Bは、第1乃至第7関節JB1-JB7を駆動する第1乃至第7関節駆動装置GB1-GB7を含む。第1乃至第7関節駆動装置GB1-GB7は、電力を動力源とし、電動アクチュエータとしてサーボモータMaを有する。電動アクチュエータは、前述のアクチュエータACの一例である。
第2アーム60Bは、サーボCPU23Bを含む。サーボCPU23Bは、例えば、サーボ回路22Bに含まれる。サーボ回路22Bは、第2アーム60Bに収容されていてもよいし、ロボット本体50の第2アーム60B以外の位置に収容されていてもよい。サーボCPU23Bは、メインCPU33から第2動作指令値を受けて第1乃至第7関節駆動装置GB1-GB7のサーボモータMaを駆動する。第1乃至第7関節駆動装置GB1-GB7のサーボCPU23Bは、それぞれ、サーボモータMaの状態を測定するセンサDaの検出信号を受信する機能を有する。センサDaは、エンコーダDa1を含んでもよい。センサDaは、トルクセンサDa2を含んでもよい。サーボCPU23Bは、メインCPU33と通信する機能を有する通信部28Bを含む。サーボCPU23B、通信部28Bは、それぞれ、前述の「ロボットコントローラの構成」に記載のサーボCPU23、通信部28に相当する。サーボCPU23B、通信部28B、サーボモータMa及びセンサDaは、前述の「ロボットコントローラの構成」に記載の構成及び機能を含んでいてもよい。
第1エンドエフェクタ58a及び第2エンドエフェクタ58bは、ロボット8が扱う対象物に作用する構成を有する。例えば、第1エンドエフェクタ58a及び第2エンドエフェクタ58bが、いずれもハンドであってもよい。第1エンドエフェクタ58a及び第2エンドエフェクタ58bが、先端に設けられたリンク機構により、対象物を挟んで把持することができるように構成されていてもよい。第2エンドエフェクタ58bは、第1エンドエフェクタ58aとは異なる作用を対象物に加える構成であってもよい。
第1アーム60A及び第2アーム60Bについて説明したが、第1アーム60A及び第2アーム60Bは、垂直多関節式のアームでなくてもよい。例えば、第1アーム60A及び第2アーム60Bは、水平多関節型、他のタイプの垂直多関節型、極座標型、円筒座標型、直角座標型、又はその他の型式のアームであってもよい。アーム60の数量は、2つ以上であればよく、3つ以上であってもよい。アーム60の関節の数量は、3つ以上であればよい。
走行機構70は、ロボット本体50の下端に固定されている。図19に示すように、走行機構70は、本体部71と、駆動輪72と、移動駆動装置74とを備える。走行機構70は、補助輪73を含んでいてもよい。なお、走行機構70の構成は、前記の構成に限定されず、走行機構70を様々な方向に移動できればよい。例えば、走行機構70は、車輪を用いずに、クローラ等の他の走行手段を用いて移動してもよい。
駆動輪72は、第1駆動輪72aと、第2駆動輪72bとを含んでもよい。第1駆動輪72a及び第2駆動輪72bは、回転軸が左右方向で同軸になるように、左右方向に並んでかつ左右方向に互いに離間して配置される。第1駆動輪72a及び第2駆動輪72bの回転軸の向きは、本体部71に対して固定されている。走行機構70は、4つの補助輪73を含んでもよい。4つの補助輪73のうち2つは本体部71の前側部分に位置し、残りの2つは本体部71の後側部分に位置する。補助輪73は、前側及び後側のそれぞれにおいて、互いに左右方向に離間して位置する。補助輪73は、それぞれの回転軸の向きが固定されていてもよく、自在キャスタのように、それぞれの回転軸の向きを変えることができてもよい。第1駆動輪72a、第2駆動輪72b、及び4つの補助輪73は、本体部71に回転自在に取り付けられる。第1駆動輪72a、第2駆動輪72b及び補助輪73は、ロボット8が配置される支持面に接触し、本体部71及びロボット8を下方から支持する。支持面は、地面、建物の床面、台の座面などを含む。
移動駆動装置74は、第1移動駆動装置74a及び第2移動駆動装置74bを含んでもよい。第1移動駆動装置74a及び第2移動駆動装置74bは、本体部71に配置される。第1移動駆動装置74aは、第1駆動輪72aを回転駆動する。第2移動駆動装置74bは、第2駆動輪72bを回転駆動する。例えば、第1移動駆動装置74aは、電力を動力源とし、電動アクチュエータとしてサーボモータMc1を含む。例えば、第2移動駆動装置74bは、電力を動力源とし、電動アクチュエータとしてサーボモータMc2を含む。第1移動駆動装置74a乃至第2移動駆動装置74bの電動アクチュエータは、アクチュエータACの一例である。なお、以下の説明において、サーボモータMc1,Mc2を総称し、サーボモータMcと呼ぶ。言い換えると、移動駆動装置74は、サーボモータMcを含む。第1移動駆動装置74a及び第2移動駆動装置74bは、第1駆動輪72a及び第2駆動輪72bの回転方向及び回転速度を制御することで、走行機構70を前進、後進、及び旋回をさせることができる。
走行機構70の本体部71に、センサ75が位置していてもよい。センサ75は、本体部71の前側部分に1つ配置されてもよい。センサ75は、本体部71の後側部分に2つ配置されてもよい。センサ75は、ロボット8の周囲の情報を検出する。センサ75は、ロボット8の周囲を走査し、走査結果をメインCPU33に出力する。前側のセンサ75は、前側へ向けて配置されている。後側のセンサ75は、後側へ向けて配置されている。センサ75は、走行機構70から前側、後側、右側、及び左側にわたるような水平方向の範囲を走査してもよい。センサ75は、支持面及びその近傍を含むような鉛直方向の範囲を走査してもよい。センサ75は、走査範囲内の支持面及び物体等の対象物と、当該対象物までの距離とを検出可能であってもよい。メインCPU33は、各センサ75の検出結果を、ロボット8の位置、ロボット8の前側の支持面の状態、支持面上の物体の位置等を検出するために、点群処理を行ってもよい。センサ75は、ロボット8の必須の構成要素ではない。前側のセンサ75は、3次元ライダ(LiDAR)であってもよい。後側の2つのセンサ75は2次元ライダであってもよい。センサ75は、光波、レーザ、磁気、電波、電磁波、超音波又はこれらの2つ以上の組み合わせ等を用いて検出を行ってもよい。センサ75は、光電センサ、レーザセンサ、電波式センサ、電磁波式センサ、超音波センサ、又はこれらの2つ以上の組み合わせ等を含んでもよい。
メインCPU33は、ロボット8の全体を制御する。ロボット8の制御は、例えば、ロボット8が双腕である第1アーム60A及び第2アーム60Bを有するソーシャルロボットの場合に、
・第1アーム60A及び第2アーム60Bを使った物の搬送制御
・第1アーム60A及び第2アーム60Bでもの物をつかんだままの走行制御
・重量物を把持したとき、転倒防止のために片側アームを伸ばしてバランスをとる制御
・第1アーム60A、第2アーム60B、走行機構70の全体で振動を抑える制御
・第1アーム60Aの動作範囲内の対象物を取りに行き、第2アーム60Bに渡して、第2アーム60Bの動作範囲内に置く制御
という制御態様を含む。例えば、振動を抑える制御は、アーム60を高速で動作させた場合に、ロボット本体50が地面に固定されていないため振動しやすいことから必要な制御となる。
図18に示すように、メインCPU33は、プロセッサ37と、メモリ39とを有する。メインCPU33は、プロセッサ37がメモリ39に記録されたプログラムに従って動作することにより、ロボット8の構成要素の動作を制御する。言い換えると、メインCPU33の複数の機能の少なくとも一部の機能は、プロセッサ37及びメモリ39の協働により実現されてもよい。プロセッサ37と、メモリ39とは、コンピュータシステムを構成する。例えば、コンピュータシステムは、プロセッサ37がRAMをワークエリアとして用いてROMに記録されたプログラムを実行することによって、メインCPU33としての機能を実現してもよい。なお、メインCPU33は、インターフェース回路53を介して、入力装置80と通信可能に接続されていてもよい。プロセッサ37は、入力装置80から受信する指令等に従って、ロボット8の構成要素の動作を制御してもよい。
メインCPU33の制御対象の構成要素は、例えば、電源回路52、インターフェース回路53、撮像装置54、センサ75、ディスプレイ56a、第1アーム60Aの第1乃至第7関節駆動装置GA1-GA7、第2アーム60Bの第1乃至第7関節駆動装置GB1-GB7、第1エンドエフェクタ58a、第2エンドエフェクタ58b、第1移動駆動装置74a及び第2移動駆動装置74bの群から選択される1又は複数である。すなわち、メインCPU33は、これらの全てを制御対象とせず、一部のみを制御対象としてもよい。また、メインCPU33は、上記に例示した制御対象以外の要素を制御対象としてもよい。
メインCPU33は、通信部38を含んでもよい。通信部38は、例えば、サーボCPU23Aの通信部28Aとの間で所定の通信プロトコルに準拠した通信を行う。通信部38は、例えば、サーボCPU23Bの通信部28Bとの間で所定の通信プロトコルに準拠した通信を行う。
メインCPU33は、指令値生成部41を含んでもよい。指令値生成部41は、入力装置80から受信する指令等に基づいて位置指令を生成する。指令値生成部41は、位置指令に基づいて動作指令を生成する機能を有する。動作指令は、アクチュエータの動作速度を指示する速度指令を含む。動作指令値は、アクチュエータのトルクを指示するトルク指令を含む。
例えば、指令値生成部41は、生成された第1アーム60Aの位置指令に基づいて、第1アーム60Aに対する第1動作指令を演算する。指令値生成部41は、例えば、第1乃至第7関節駆動装置GA1-GA7のそれぞれについての第1動作指令を演算する。動作制御部42は、指令値生成部41で生成された第2アーム60Bの位置指令に基づいて、第2アーム60Aに対する第2動作指令値を演算する。指令値生成部41は、例えば、第1乃至第7関節駆動装置GB1-GB7のそれぞれについての第2動作指令を演算する。指令値生成部41は、生成された走行機構70の位置指令に基づいて、移動駆動装置74に対する動作指令を演算する。例えば、指令値生成部41は、第1移動駆動装置74a乃至第2移動駆動装置74bのそれぞれについての動作指令を演算する。
一態様では、メインCPU33は、動作制御部42を含む。動作制御部42は、指令値生成部41で生成された第1動作指令を取得する。動作制御部42は、指令値生成部41で生成された第1動作指令に基づいて、アクチュエータACを駆動するための電流指令を生成する。電流指令は、伝送路Txを介して、それぞれ、対応する第1乃至第7関節駆動装置GA1-GA7に送信される。そして、第1乃至第7関節駆動装置GA1-GA7に位置する電流制御部43が、サーボモータMaを制御する。動作制御部42は、指令値生成部41で生成された第2動作指令を取得する。動作制御部42は、指令値生成部41で生成された第2動作指令に基づいて、アクチュエータACを駆動するための電流指令を生成する。電流指令は、伝送路Txを介して、それぞれ、対応する第1乃至第7関節駆動装置GB1-GB7に送信される。そして、第1乃至第7関節駆動装置GB1-GB7に位置する電流制御部43が、サーボモータMaを制御する。動作制御部42は、生成された走行機構70の動作指令に基づいて、移動駆動装置74に対する電流指令を演算する。演算された電流指令は、それぞれ、対応する第1移動駆動装置74a乃至第2移動駆動装置74bに送信される。そして、第1移動駆動装置74a乃至第2移動駆動装置74bに位置する電流制御部43が、サーボモータMcを制御する。
他の一態様では、動作制御部42は、それぞれの第1乃至第7関節駆動装置GA1-GA7に位置する。指令値生成部41で演算された第1動作指令は、伝送路Txを介して、それぞれ、対応する第1乃至第7関節駆動装置GA1-GA7に送信される。そして、第1乃至第7関節駆動装置GA1-GA7に位置する動作制御部42が電流指令を生成し、電流制御部43がサーボモータMaを制御する。動作制御部42は、それぞれの第1乃至第7関節駆動装置GB1-GB7に位置する。指令値生成部41で演算された第2動作指令は、伝送路Txを介して、それぞれ、対応する第1乃至第7関節駆動装置GB1-GB7に送信される。そして、第1乃至第7関節駆動装置GB1-GB7に位置する動作制御部42が電流指令を生成し、電流制御部43がサーボモータMaを制御する。動作制御部42は、第1移動駆動装置74a、第2移動駆動装置74bにそれぞれ位置する。指令値生成部41で演算された動作指令は、伝送路Txを介して、第1移動駆動装置74a、第2移動駆動装置74bにそれぞれ送信される。そして、第1移動駆動装置74a、第2移動駆動装置74bに位置する動作制御部42が電流指令を生成し、電流制御部43がサーボモータMcを制御する。
第1乃至第7関節駆動装置GA1-GA7は、駆動モジュール20の一例である。第1乃至第7関節駆動装置GB1-GB7は、駆動モジュール20の一例である。第1移動駆動装置74a乃至第2移動駆動装置74bは、駆動モジュール20の一例である。第1動作指令は、サーボモータMaの速度を指示する速度指令を含んでもよいし、サーボモータMaのトルクを指示するトルク指令を含んでもよい。第2動作指令は、サーボモータMaの速度を指示する速度指令を含んでもよいし、サーボモータMaのトルクを指示するトルク指令を含んでもよい。動作指令は、サーボモータMcの速度を指示する速度指令値を含んでもよい。
動作制御部42は、協調制御を実行するように構成されていてもよい。例えば、第1アーム60Aの第1動作指令に応じて、第2アーム60Bが協調して動作するように第2動作指令を調節するようにしてもよい。逆に、第2アーム60Bの第2動作指令に応じて、第1アーム60Aが協調して動作するように第1動作指令を調節していもよい。第1アーム60Aの動作と、第2アーム60Bの動作とを総合的に判断して、第1動作指令及び第2動作指令を演算してもよい。さらに、走行機構70の制御を考慮するようにしてもよい。例えば、駆動輪72の動かす方向乃至速度に応じて、第1アーム60Aへの第1動作指令乃至第2アーム60Bへの第2動作指令を演算したり、単体での演算結果に対して補正を加えたりしてもよい。
動作制御部42は、ロボット8の振動を考慮した協調制御を行ってもよい。例えば、メインCPU33は、第1動作指令による第1アーム60Aの動作に起因する第2アーム60Bの振動量を推定し、第2アーム60Bの振動を抑制するように第2動作指令を調節してもよい。例えば、メインCPU33は、第2動作指令による第2アーム60Bの動作に起因する第1アーム60Aの振動量を推定し、第1アーム60Aの振動を抑制するように第1動作指令を調節してもよい。第1アーム60Aの動作と、第2アーム60Bの動作とを総合的に判断して、第1アーム60A乃至第2アーム60Bの振動が小さくなるように、第1動作指令及び第2動作指令を調節してもよい。走行機構70の制御を考慮するようにしてもよい。例えば、駆動輪72の動かす方向乃至速度に応じて、第1アーム60Aの振動乃至第2アーム60Bの振動が小さくなるように、第1動作指令乃至第2動作指令を演算したり、個々のアームについての演算結果に対して補正を加えたりしてもよい。そして、第1動作指令乃至第2動作指令の演算結果に応じて、電流指令が調節される。
メインCPU33は、手動運転での動作、自動運転での動作、又は、手動運転と自動運転の組み合わせ動作のいずれかを、ロボット8の構成要素に実行させてもよい。手動運転では、メインCPU33は、入力装置80に入力される操作内容に逐次従って、ロボット8の構成要素に動作させるように制御をしてもよい。メインCPU33は、手動運転プログラムに従って制御を行ってもよい。自動運転では、メインCPU33は、入力装置80に入力される指令に対応する一連のタスクをロボット8の構成要素に自動で、つまり自律的に動作させるように制御してもよい。メインCPU33は、当該タスクに対応する自動運転プログラムに従って制御を行ってもよい。手動運転と自動運転の組み合わせ動作では、メインCPU33は、入力装置80から受け取る操作内容及び指令に応じて、操作内容に逐次従った動作と、一連のタスクを自動で実行する動作とを適宜、ロボット8の構成要素に実行させるように制御してもよい。メインCPU33は、自動運転プログラム及び手動運転プログラムを組み合わせた運転プログラムに従って制御を行ってもよく、自動運転プログラム及び手動運転プログラムに順次従って制御を行ってもよい。
メインCPU33は、構成要素に供給する電力を制御するとき、電源回路52に電流の指令値等を含む制御信号を出力する。電源回路52は、制御信号に基づき電池モジュール57の放電を制御する。電池モジュール57から制御信号に基づいた電力が供給される。
メインCPU33の機能の一部又は全部は、単一のコンピュータによる集中制御により処理を実行してもよく、複数のコンピュータの協働による分散制御により処理を実行してもよい。
入力装置80は、ロボット8から離れて位置する。入力装置80は、ユーザによる指令、情報、及びデータ等の入力を受け付ける。入力装置80は、受け付けた指令、情報、およびデータ等をロボット8に送信する。入力装置80は、ロボット8から送信された指令、情報、及びデータ等を受信する。入力装置80を使用するユーザは、ロボットコントローラAの管理者、ロボット8の操作者、ロボットコントローラAによるサービスの提供者、又はロボットコントローラAによるサービスの享受者のいずれであってもよい。
図6に示すように、入力装置80は、プロセッサ及びメモリを有する処理回路81と、インターフェース回路88と、を含む。処理回路81は、ユーザ及びロボット8からの入力に基づいて、ロボット8を操作するための指令、情報、およびデータ等を生成する。インターフェース回路88は、ロボット8と通信する。インターフェース回路88とロボット8との通信は特に限定されない。通信は、無線通信、有線通信、又は無線通信及び有線通信の組み合わせであってもよい。無線通信は、直接的であっても、間接的であってもよい。間接的な無線通信では、インターフェース回路88は、通信ネットワークに接続されて、通信ネットワークを介してロボット8と通信してもよい。
入力装置80は、パーソナルコンピュータなどのコンピュータ、スマートフォン及びタブレットなどの携帯端末、ゲーム端末、ロボットの既知の操作装置、その他の操作装置、その他の端末装置、これらを利用する装置、並びに、これらを改良した装置等を含んでもよい。入力装置80は、ロボット8を操作するための専用装置であってもよい。入力装置80は、一般市場において入手可能な汎用的な装置に、専用のソフトウエアをインストールすることで、入力装置80の機能を実現するような装置であってもよい。
入力装置80の複数の機能の少なくとも一部の機能は、プロセッサ及びメモリの協働により実現されてもよい。入力装置80は、プロセッサがメモリに記録されたプログラムを実行することによって、前記機能を実現してもよい。
本明細書で開示する要素の機能は、開示された機能を実行するよう構成又はプログラムされた汎用プロセッサ、専用プロセッサ、集積回路、ASIC、従来の回路、及び/又は、それらの組み合わせ、を含む回路又は処理回路を使用して実行できる。プロセッサは、トランジスタやその他の回路を含むため、処理回路又は回路と見なされる。本開示において、回路、ユニット、又は手段は、列挙された機能を実行するハードウエアであるか、又は、列挙された機能を実行するようにプログラムされたハードウエアである。ハードウエアは、本明細書に開示されているハードウエアであってもよいし、あるいは、列挙された機能を実行するようにプログラム又は構成されているその他の既知のハードウエアであってもよい。ハードウエアが回路の一種と考えられるプロセッサである場合、回路、手段、又はユニットはハードウエアとソフトウエアの組み合わせであり、ソフトウエアはハードウエア及び/又はプロセッサの構成に使用される。
〔態様〕
前記の実施形態は、以下の態様の具体例である。
(態様1)
本開示の第1態様では、
ロボット(8)のアクチュエータ(AC)の駆動を制御する駆動モジュール(20)と、
所定の通信プロトコルに準拠した伝送路(Tx)を介して前記駆動モジュール(20)に接続されるメインモジュール(30)とを備え、
前記メインモジュール(30)は、
前記アクチュエータ(AC)の位置を指示する位置指令、前記アクチュエータ(AC)の動作速度を指示する速度指令、又は、前記アクチュエータ(AC)のトルクを指示するトルク指令の少なくともいずれかを含む動作指令に基づいて、前記アクチュエータ(AC)を駆動するための電流指令を生成し、
生成した前記電流指令を前記所定の通信プロトコルに対応する形式にして前記伝送路(Tx)を介して前記駆動モジュール(20)に送信し、
前記駆動モジュール(20)は、
前記メインモジュール(30)から前記伝送路(Tx)を介して前記電流指令を受信し、
前記電流指令に基づいて前記アクチュエータ(AC)を駆動する、ロボットコントローラ(10)。
第1態様において、ロボットコントローラ(10)は、メインモジュール(30)と、駆動モジュール(20)とを備える。メインモジュール(30)と、駆動モジュール(20)とは、所定の通信プロトコルに準拠した伝送路(Tx)を介して接続されている。これにより、メインモジュール(30)と、駆動モジュール(20)を含めた形での制御ループを構成することができる。例えば、特許文献1に示されるような従来技術では、本開示の駆動モジュール(20)に相当するサーボ制御部が、制御用CPUから受信した動作指令と、センサからのフィードバックデータに基づいて、各サーボモータの制御を実行している。言い換えると、制御ループが、サーボ制御部で閉じられた構成となっている。前述のとおり、近年では、駆動対象のアクチュエータであったり、それぞれのアクチュエータの軸の数が増加する傾向がある。従来の制御ループの構成では、例えば、ソーシャルロボットの双腕制御をする場合のように協調制御が求められる場面で十分に対応できない場合がある。本開示の技術の場合、メインモジュールで動作指令に基づいた電流指令まで生成し、所定の通信プロトコルを用いた通信を介して駆動モジュールに電流指令を伝達するようにしている。これにより、例えば、メインモジュール側に、センサDaからの測定データを与えて、センサDaで測定されたデータを用いて、協調制御であったり、フィードバック制御を行うことができる。また、本開示の制御アーキテクチャは、従前から知られているアーキテクチャと異なるので、ロボットコントロールシステム全体として見た場合の制御アーキテクチャの選択肢が広がり、ロボット制御の柔軟性、拡張性を高めることができる。
(態様2)
前記メインモジュール(30)は、
入力データを処理するTP制御部(40)と、
前記TP制御部(40)で取得された入力データに基づいて、前記動作指令を生成する指令値生成部(41)と、
前記指令値生成部(41)で生成された前記動作指令に基づいて、前記電流指令を生成する動作制御部(42)とを備える、
態様1に記載のロボットコントローラ(10)。
第2態様では、メインモジュール(30)の構成について、具体的に特定している。メインモジュール(30)に、TP制御部(40)があることで、TPを用いたロボット制御が可能になる。また、メインモジュール(30)には、電流指令を生成する動作制御部(42)が位置し、動作制御部(42)で生成された電流指令を、伝送路(Tx)を介して駆動モジュール(20)に送信することができる。
(態様3)
前記アクチュエータ(AC)の位置を検出するための位置センサ(Da1)をさらに備え、
前記位置センサ(Da1)で検出されたアクチュエータ(AC)の位置を前記メインモジュール(30)にフィードバックし、
前記メインモジュール(30)は、前記アクチュエータ(AC)の位置に基づいて前記電流指令を調節するフィードバック制御を実行する、
態様1又は態様2に記載のロボットコントローラ(10)。
本態様によると、位置センサ(Da1)で検出されたアクチュエータ(AC)の位置をメインモジュール(30)にフィードバックして電流指令を調節するフィードバック制御を実行する。すなわち、位置フィードバック制御は、駆動モジュール(20)及びメインモジュール(30)を跨いだ制御ループとなっている。これにより、例えば、従来技術のように各アクチュエータの動作指令値を駆動モジュールで生成する構成と比較して、ロボット(8)の全体動作に基づいた電流指令を生成することができる。すなわち、ロボット(8)の全体動作を考慮したロボット制御が実現できる。今後は、第2実施形態で例示したソーシャルロボットのように、複数腕かつ多軸の制御をするロボットが増えていくことが想定される。従来ように個々のサーボCPUで各軸を制御する方式では、複数腕かつ多軸を協調させた制御をする場合の情報が不足し、十分な協調制御ができないという問題がある。本開示では、アクチュエータ(AC)の位置をメインモジュール30にフィードバックして、フィードバック制御を実行するので、複数のアーム間の動作であったり、複数のロボット(8)間の動作であったり、ロボット(8)とロボット(8)の周辺機器との間の動作であったり、を意識した協調制御が実現できる。
(態様4)
前記駆動モジュール(20)は、
前記アクチュエータ(AC)に駆動電流を出力するインバータ(27)と、
前記電流指令に基づいて前記インバータ(27)を制御する電流制御部(43)と、
前記駆動電流を検出する電流センサ(29)とを備え、
前記電流制御部(43)は、
前記電流センサ(29)で検出された電流に基づいて、前記インバータ(27)の出力電流を前記電流指令に基づく目標電流に近づけるフィードバック制御を実行する、
態様1乃至態様3のいずれか1つに記載のロボットコントローラ(10)。
(態様5)
前記駆動モジュール(20)は、
前記アクチュエータ(AC)に駆動電流を出力するインバータ(27)と、
前記電流指令に基づいて前記インバータを制御する電流制御部(43)とを備える、
態様1乃至態様3のいずれか1つに記載のロボットコントローラ(10)。
第4態様及び第5態様では、駆動モジュール(20)の構成について、具体的に特定している。さらに、第4態様によると、電流センサ(29)で検出された電流に基づいてインバータ(27)の出力電流を制御するフィードバック制御を実行するので、電流指令に基づく目標電流に対する誤差を小さくできる。これにより、ロボット制御の精度が高まる。
(態様6)
前記アクチュエータ(AC)は、複数であり、
前記メインモジュール(30)は、
複数の前記アクチュエータ(AC)を駆動するための電流指令を生成して、前記伝送路(Tx)を介して前記駆動モジュール(20)に送信し、
前記駆動モジュール(20)は、前記メインモジュール(30)から受信した前記電流指令に基づいて複数の前記アクチュエータ(AC)を駆動する、
態様1乃至態様5のいずれか1つに記載のロボットコントローラ(10)。
(態様7)
前記駆動モジュール(20)は、複数であり、
それぞれの前記駆動モジュール(20)に複数のアクチュエータ(AC)が接続されており、
前記メインモジュール(30)が、
前記動作指令に基づいて、前記複数のアクチュエータ(AC)を駆動するための電流指令を生成し、
生成した前記電流指令を、前記伝送路(Tx)を介して前記電流指令に対応する前記アクチュエータ(AC)が接続された前記駆動モジュール(20)に送信し、
それぞれの前記駆動モジュール(20)は、
前記メインモジュール(30)から前記伝送路(Tx)を介して前記電流指令を受信し、
前記電流指令に基づいて前記アクチュエータ(AC)を駆動する、
態様1乃至態様6のいずれか1つに記載のロボットコントローラ(10)。
態様6又は態様7により、従来のように各アクチュエータの動作指令値を駆動モジュールで生成する構成と比較して、ロボット全体の動作に基づいた動作指令値を生成することができる。特に、今後は、図5に例示したソーシャルロボットのように、複数腕かつ多軸の制御をするロボットが増えていくことが想定される。従来ように個々のサーボCPUで各軸を制御する方式では、複数腕かつ多軸を協調させた制御をする場合の情報が不足し、十分な協調制御ができないという問題がある。本開示では、メインモジュールが、複数のアクチュエータ、又は、複数の駆動モジュールの電流指令を生成するので、複数のアクチュエータ(AC)の動作であったり、複数の駆動モジュール(20)による駆動制御の内容を加味した協調制御を行うことができる。
(態様8)
前記アクチュエータ(AC)は、前記ロボット(8)のジョイント部(J)に位置する、
態様7に記載のロボットコントローラ(10)。
(態様9)
前記ロボット(8)は、垂直多関節式のロボットアーム(60A,60B)を有し、
前記ロボットアーム(60A,60B)は、複数のリンク(LA1-LA6、LB1-LB6)を有し、それぞれの前記リンク(LA1-LA6、LB1-LB6)間が前記ジョイント部(JA2-JA6、JB2-JB6)で接続されている、
態様8に記載のロボットコントローラ(10)。
態様8又は態様9では、ロボット(8)におけるアクチュエータ(AC)の配置について、具体的に特定している。具体的に、アクチュエータ(AC)は、ロボット(8)のジョイント部(J、JB2-JB6)に位置する。これにより、ロボット(8)の様々な動作についての対応が可能になる。
(態様10)
前記アクチュエータ(AC)は、サーボモータ(Ma)であり、
前記位置センサ(Da1)は、前記サーボモータ(Ma)の回転方向及び回転角を測定するエンコーダ(Da1)であり、
前記アクチュエータ(AC)の位置は、前記エンコーダ(Da1)の測定値を基に算出される、
態様1乃至態様9のいずれか1つに記載のロボットコントローラ(10)。
(態様11)
前記所定の通信プロトコルは、100Mbps以上の通信速度を有する、
態様1乃至態様10のいずれか1つに記載のロボットコントローラ(10)。
インターフェースの通信速度は、より速い方が好ましく、通信速度の向上により、ロボット制御のリアルタイム性の向上に寄与する。
(態様12)
前記メインモジュール(30)は、前記所定の通信プロトコルに準拠したマスターインターフェース回路を有し、
前記駆動モジュール(20)は、前記伝送路(Tx)を介して前記マスターインターフェース回路と接続されるスレーブインターフェース回路を有する、
態様1乃至態様11のいずれか1つに記載のロボットコントローラ(10)。
態様12では、インターフェース回路の具体的な構成について特定している。マスター-スレーブ方式の通信形態を用いることで、制御における主従関係を明確にすることができる。
(態様13)
前記ロボットは、前記ロボットアームとして、第1アーム(60A)及び第2アーム(60B)を備えるソーシャルロボットであり、
前記アクチュエータ(AC)は、
前記第1アーム(60A)を構成するリンク(LA1-LA6)とリンク(LA1-LA6)とを接続するジョイント部(JA2-JA6)に配置された複数の第1モータ(Ma)と、
前記第2アーム(60B)を構成するリンク(LB1-LB6)とリンク(LB1-LB6)とを接続するジョイント部に配置された複数の第2モータ(Ma)を含む、
態様9に記載のロボットコントローラ(10)。
(態様14)
前記メインモジュールは、
前記第1アームへの前記電流指令に応じて、前記第2アームが協調して動作するように前記第2アームの前記電流指令を生成する、
態様13に記載のロボットコントローラ(10)。
態様13又は態様14では、ソーシャルロボットにおけるアクチュエータ(AC)の配置について、具体的に特定している。具体的に、アクチュエータ(AC)は、ロボット(8)のジョイント部(J、JB2-JB6)に位置する。これにより、ロボット(8)の様々な動作についての対応が可能になる。また、第1モータ(Ma)の動作指令と、第2モータ(Ma)の動作指令とをメインモジュール30で生成するので、第1アーム(60A)と第2アーム(60B)の動作を加味した協調制御を行うことができる。
(態様15)
前記メインモジュールは、
前記第1アーム(60A)への前記電流指令よる前記第1アーム(60A)の動作に起因する前記第2アーム(60B)の振動量を推定し、前記第2アーム(60B)の振動を抑制するように前記第2アーム(60B)の前記電流指令を調節する、
態様13に記載のロボットコントローラ(10)。
ソーシャルロボットの第1アーム(60A)乃至第2アーム(60B)の振動を考慮した協調動作ができる。例えば、ソーシャルロボットの双腕としての第1アーム(60A)および第2アーム(60B)を用いて物品等の対象物を把持させたり、特定の動作や作業をさせたりする場合に、相互のアーム(60A,60B)の位置の変化、移動速度、トルク等に起因する振動を考慮した制御ができる。
(態様16)
前記ロボット(8)は、床面を走行するための走行機構(70)とを備え、
前記アクチュエータ(AC)は、前記走行機構(70)を駆動する1又は複数の第3モータ(Mc)を含む、
態様1乃至態様9のいずれか1つに記載のロボットコントローラ(10)。
(態様17)
前記メインモジュールは、
前記走行機構による走行動作による前記ロボットアームの振動量を推定し、前記ロボットアームの振動を抑制するように前記電流指令を調節する、
態様16に記載のロボットコントローラ(10)。
ソーシャルロボットの走行機構(70)による走行に起因する第1アーム(60A)乃至第2アーム(60B)の動作を考慮した協調動作ができる。これにより、ロボット8の走行動作乃至旋回動作等の走行機構の動きに、第1アーム(60A)乃至第2アーム(60B)の動作を協調させる制御ができる。
(態様18)
前記駆動モジュールは、前記アクチュエータに出力する出力電流の制御により、前記アクチュエータを駆動する、
態様1乃至態様17のいずれか1つに記載のロボットコントローラ(10)。
(態様19)
本開示の第19態様では、アクチュエータ(AC)を有するロボット(8)の制御方法に関する。ロボット(8)の制御方法であって、
前記アクチュエータ(AC)の位置を指示する位置指令を取得し、前記アクチュエータ(AC)の動作速度を指示する速度指令、又は、前記アクチュエータのトルクを指示するトルク指令を生成する第1生成ステップと、
前記位置指令、前記速度指令、又は、前記トルク指令の少なくともいずれかを含む動作指令に基づいて、前記アクチュエータ(AC)を駆動するための電流指令を生成し、前記電流指令を出力する第2生成ステップと、
前記電流指令を受信し、前記電流指令に基づいて、前記アクチュエータ(AC)を駆動する駆動ステップと、
前記電流指令について、所定の通信プロトコルに準拠した信号形式に変換し、前記所定の通信プロトコルに準拠した伝送路(Tx)を介して通信する通信ステップとを含む、
ロボットの制御方法。
(態様20)
本開示の第20態様は、ロボット(8)のアクチュエータ(AC)の駆動を制御する駆動モジュール(20)に、所定の通信プロトコルに準拠した伝送路(Tx)を介して接続されるメインモジュール(30)の制御プログラムに関する。前記制御プログラムは、
前記メインモジュール(30)に、
前記アクチュエータ(AC)の位置を指示する位置指令、前記アクチュエータ(AC)の動作速度を指示する速度指令、又は、前記アクチュエータ(AC)のトルクを指示するトルク指令の少なくともいずれかを含む動作指令に基づいて、前記アクチュエータ(AC)を駆動するための電流指令を生成する生成処理と、
前記生成処理で生成された前記電流指令を前記所定の通信プロトコルに対応する形式にし、前記伝送路を介して前記駆動モジュールに送信する送信処理とを実行させる、
制御プログラム。
(態様21)
本開示の第21態様は、メインモジュール(30)の制御を受けて、ロボット(8)のアクチュエータ(AC)の駆動を制御する駆動モジュール(20)の制御プログラムに関する。 前記メインモジュール(30)と、前記駆動モジュール(20)との間は、所定の通信プロトコルに準拠した伝送路(Tx)を介して接続されており、
前記制御プログラムは、
前記駆動モジュール(20)に、
前記伝送路(Tx)を介して前記メインモジュール(30)から受信した前記所定の通信プロトコルに準拠する受信信号から、前記アクチュエータ(AC)を駆動するための電流指令を取り出す受信処理と、
前記受信処理で取り出した電流指令に基づいて、前記アクチュエータ(AC)を駆動する駆動処理とを実行させる、
制御プログラム。
(態様22)
本開示の第22態様では、
ロボット(1)の第1アクチュエータ(AC1)に接続される第1駆動モジュール(20A)であって、第1動作指令値を受けて前記第1アクチュエータ(AC1)を駆動する第1プロセッサ(13A)を含む第1駆動モジュール(20A)と、
前記ロボット(1)の第2アクチュエータ(AC2)に接続される第2駆動モジュール(20B)であって、第2動作指令値を受けて前記第2アクチュエータ(AC2)を駆動する第2プロセッサ(13B)を含む第2駆動モジュール(20B)と、
前記第1駆動モジュール(20A)及び前記第2駆動モジュール(20B)に対しネットワーク接続により接続されるメインモジュール(30)であって、前記第1動作指令値及び前記第2動作指令値を生成して出力するメインプロセッサ(33)を含むメインモジュール(30)とを備える、ロボットコントローラ(10)。
本開示では、第1アクチュエータ(AC1)を駆動する第1動作指令値と、第2アクチュエータ(AC2)を駆動する第2動作指令値とを、上位のメインプロセッサ(33)から出力する構成としている。従来のように各アクチュエータの動作指令値を駆動モジュールで生成する構成と比較して、ロボット全体の動作に基づいた動作指令値を生成することができる。特に、今後は、図5に例示したソーシャルロボットのように、複数腕かつ多軸の制御をするロボットが増えていくことが想定される。従来ように個々のサーボCPUで各軸を制御する方式では、複数腕かつ多軸を協調させた制御をする場合の情報が不足し、十分な協調制御ができないという問題がある。本開示では、第1動作指令値及び前記第2動作指令値をメインプロセッサで生成するので、第1アクチュエータ及び第2アクチュエータの動作を加味した協調制御を行うことができる。
(態様23)
前記第1動作指令値、乃至、前記第2動作指令値は、トルク指令値である、
態様22に記載のロボットコントローラ(10)。
メインモジュール(30)は、第1アクチュエータ(AC1)を駆動するトルク指令値を生成して第1駆動モジュール(20A)に出力する。第1駆動モジュール(20A)では、メインモジュール(30)から受信したトルク指令値に基づいて第1アクチュエータAC1を駆動すればよい。同様に、メインモジュール(30)は、第2アクチュエータ(AC2)を駆動するトルク指令値を生成して第2駆動モジュール(20B)に出力する。第2駆動モジュール(20B)では、メインモジュール(30)から受信したトルク指令値に基づいて第2アクチュエータAC2を駆動すればよい。駆動モジュールでの処理を簡素化できる。直接指定するトルク指令値でアクチュエータの出力トルクを制御することで、位置や速度の制限によらず所望のトルクを高速に出力できる。例えば、ロボット(1)にエンドエフェクタ(58a、58b)としてハンドをつけ、ハンドが物を一定のトルクでつかむことを想定する場合であったり、ロボットが先端に付けたワークを研磨する目的で、対象に押し付ける場合などに有効な方法となる。
(態様24)
前記第1動作指令値、乃至、前記第2動作指令値は、速度指令値である、
態様22又は態様23に記載のロボットコントローラ(10)。
メインモジュール(30)は、第1アクチュエータ(AC1)を駆動する速度指令値を生成して第1駆動モジュール(20A)に出力する。第1駆動モジュール(20A)では、メインモジュール(30)から受信した速度指令値に基づいて第1アクチュエータAC1を駆動すればよい。同様に、メインモジュール(30)は、第2アクチュエータ(AC2)を駆動する速度指令値を生成して第2駆動モジュール(20B)に出力する。第2駆動モジュール(20B)では、メインモジュール(30)から受信した速度指令値に基づいて第2アクチュエータAC2を駆動すればよい。駆動モジュール側での処理を簡素化できる。直接指定する速度指令値でアクチュエータの出力速度を制御することで、位置の制限なく、所望速度で出力でき、例えば、高速に出力できる。例えば、無限回転させたい回転軸(タイヤの制御)や、ワイヤを回転軸で送給する装置などに有効な方法となる。
(態様25)
前記第1駆動モジュール(20A)は、前記第1アクチュエータ(AC1)に配置された第1センサ(Da)に接続され、
前記第2駆動モジュール(20B)は、前記第2アクチュエータ(AC2)に配置された第2センサ(Db)に接続され、
前記メインモジュール(30)は、前記第1駆動モジュール(20A)から前記第1センサ(Da)で取得された第1測定データを受信し、前記第2駆動モジュール(20B)から前記第2センサ(Db)で取得された第2測定データを受信し、前記第1測定データ及び前記第2測定データに基づいて、前記第1動作指令値及び前記第2動作指令値を演算する、態様22乃至態様24のいずれか1つに記載のロボットコントローラ(10)。
従来は駆動モジュールで閉じていた制御ループを、メインモジュール(30)を含めた制御ループとして拡張することができる。言い換えると、ロボットコントローラ(10)の制御対象となるロボット(8)のスケーラビリティを高めることができる。
(態様26)
前記ロボット(1)は、第1アーム(60A)及び第2アーム(60B)を備えるソーシャルロボットであり、
前記第1アクチュエータ(AC1)は、前記第1アーム(60A)を構成するリンク(LA1-LA6)とリンク(LA1-LA6)とを接続するジョイント部(JA2-JA6)に配置された複数の第1モータ(Ma)を含み、
前記第2アクチュエータ(AC2)は、前記第2アーム(60B)を構成するリンク(LB1-LB6)とリンクとを接続するジョイント部(JB2-JB6)に配置された複数の第2モータ(Mb)を含む、態様22乃至態様25のいずれか1つに記載のロボットコントローラ(10)。
ソーシャルロボットの第1アーム(60A)と第2アーム(60B)との協調動作ができる。例えば、ソーシャルロボットの双腕としての第1アーム(60A)および第2アーム(60B)を用いて物品等の対象物を把持させたり、特定の動作や作業をさせたりする場合に、相互のアーム(60A,60B)の動きを考慮した制御ができる。
(態様27)
前記メインプロセッサ(33)は、前記第1アーム(60A)とへの前記第1動作指令値に応じて、前記第2アームが協調して動作するように前記第2動作指令値を演算する、態様22乃至態様6のいずれか1つに記載のロボットコントローラ(10)。
態様27では、態様5から本開示の技術的特徴をより具体的に特定している。態様5と同様に、ソーシャルロボットの第1アーム(60A)と第2アーム(60B)との協調動作ができる。例えば、ソーシャルロボットの双腕としての第1アーム(60A)および第2アーム(60B)を用いて物品等の対象物を把持させたり、特定の動作や作業をさせたりする場合に、相互のアーム(60A,60B)の動きを考慮した協調制御ができる。
(態様28)
前記メインプロセッサ(33)は、前記第1動作指令値よる前記第1アーム(60A)の動作に起因する前記第2アーム(60B)の振動量を推定し、前記第2アーム(60B)の振動を抑制するように前記第2動作指令値を調節する、態様22乃至態様27のいずれか1つに記載のロボットコントローラ(10)。
ソーシャルロボットの第1アーム(60A)乃至第2アーム(60B)の振動を考慮した協調動作ができる。例えば、ソーシャルロボットの双腕としての第1アーム(60A)および第2アーム(60B)を用いて物品等の対象物を把持させたり、特定の動作や作業をさせたりする場合に、相互のアーム(60A,60B)の位置の変化、移動速度、トルク等に起因する振動を考慮した制御ができる。
(態様29)
前記ロボット(8)は、アーム(60A乃至60B)と、床面を走行するための走行機構(70)とを備えるソーシャルロボットであり、
前記第1アクチュエータ(AC1)は、前記アーム(60A乃至60B)を構成するリンク(LA1-LA6,LB1-LB6)とリンク(LA1-LA6,LB1-LB6)とを接続するジョイント部(JA2-JA6,JB2-JB6)に配置された複数のモータ(Ma,Mb)を含み、
前記第2アクチュエータ(AC2)は、前記走行機構(70)を駆動する複数のモータ(Mc)を含む、態様22乃至態様27のいずれか1つに記載のロボットコントローラ(10)。
ソーシャルロボットの走行機構(70)による走行に起因する第1アーム(60A)乃至第2アーム(60B)の動作を考慮した協調動作ができる。これにより、ロボット(8)の走行動作乃至旋回動作等の走行機構の動きに、第1アーム(60A)乃至第2アーム(60B)の動作を協調させる制御ができる。
(態様30)
前記メインプロセッサは、前記走行機構による走行動作による前記アームの振動量を推定し、前記振動用を抑制するように前記第1動作指令値乃至前記第2動作指令値を調節する、態様29に記載のロボットコントローラ(10)。
ソーシャルロボットの走行動作に起因する第1アーム(60A)乃至第2アーム(60B)の振動を考慮した協調動作ができる。例えば、ソーシャルロボットの走行動作、旋回動作等の走行機構の動きに起因する第1アーム(60A)乃至第2アーム(60B)の振動を考慮した制御ができる。
(態様31)
本開示の第31態様では、アクチュエータ(AC)を有するロボット(8)の制御方法に関し、
前記アクチュエータ(AC)の位置を指示する位置指令を取得し、前記アクチュエータ(AC)の動作速度を指示する速度指令、又は、前記アクチュエータ(AC)のトルクを指示するトルク指令を生成する第1生成ステップと、
前記位置指令、前記速度指令、又は、前記トルク指令の少なくともいずれかを含む動作指令を第1信号として出力する出力ステップと、
前記第1信号を受信し、前記動作指令に基づいて、前記アクチュエータ(AC)を駆動するための電流指令を生成し、前記電流指令を第2信号として出力する第2生成ステップと、
前記第2信号を受信し、前記電流指令に基づいて、前記アクチュエータ(AC)を駆動する駆動ステップと、
前記出力ステップで出力され前記第2生成ステップで受信される前記第1信号、又は、前記第2生成ステップで出力され前記駆動ステップで受信される前記第2信号について、所定の通信プロトコルに準拠した信号形式に変換し、前記所定の通信プロトコルに準拠した伝送路(Tx)を介して通信する通信ステップとを含む、
ロボットの制御方法。
8 ロボット
10 ロボットコントローラ
13A サーボCPU(第1プロセッサ)
13B サーボCPU(第2プロセッサ)
20 駆動モジュール
27 インバータ
29 電流センサ
30 メインモジュール
33 メインCPU(メインプロセッサ)
40 TP制御部
41 指令値生成部
42 動作制御部
43 電流制御部
60A 第1アーム(ロボットアーム)
60B 第2アーム(ロボットアーム)
70 走行機構
AC アクチュエータ
Da センサ
Da1 エンコーダ(位置センサ)
J ジョイント部
JA2 第2関節(ジョイント部)
JA3 第3関節(ジョイント部)
JA4 第4関節(ジョイント部)
JA5 第5関節(ジョイント部)
JA6 第6関節(ジョイント部)
JB2 第2関節(ジョイント部)
JB3 第3関節(ジョイント部)
JB4 第4関節(ジョイント部)
JB5 第5関節(ジョイント部)
JB6 第6関節(ジョイント部)
L リンク
LA1 第1リンク(リンク)
LA2 第2リンク(リンク)
LA3 第3リンク(リンク)
LA4 第4リンク(リンク)
LA5 第5リンク(リンク)
LA6 第6リンク(リンク)
LB1 第1リンク(リンク)
LB2 第2リンク(リンク)
LB3 第3リンク(リンク)
LB4 第4リンク(リンク)
LB5 第5リンク(リンク)
LB6 第6リンク(リンク)
Ma サーボモータ(第1モータ、第2モータ)
Mc サーボモータ(第3モータ)
Tx 伝送路

Claims (20)

  1. ロボットのアクチュエータの駆動を制御する複数の駆動モジュールと、
    所定の通信プロトコルに準拠した伝送路を介して前記駆動モジュールに接続されるメインモジュールとを備え、
    前記ロボットは、垂直多関節式のロボットアームとして、第1アーム及び第2アームを備えるソーシャルロボットであり、
    前記ロボットアームは、複数のリンクを有し、それぞれの前記リンク間がジョイント部で接続され、
    それぞれの前記駆動モジュールに複数の前記アクチュエータが接続されており、
    前記アクチュエータは、
    前記第1アームを構成するリンクとリンクとを接続するジョイント部に配置された複数の第1モータと、
    前記第2アームを構成するリンクとリンクとを接続するジョイント部に配置された複数の第2モータとを含み、
    前記メインモジュールが、
    前記アクチュエータの位置を指示する位置指令、前記アクチュエータの動作速度を指示する速度指令、又は、前記アクチュエータのトルクを指示するトルク指令の少なくともいずれかを含む動作指令に基づいて、前記アクチュエータを駆動するための電流指令を生成し、
    生成した前記電流指令を前記所定の通信プロトコルに対応する形式にして前記伝送路を介して前記電流指令に対応する前記アクチュエータが接続された前記駆動モジュールに送信し、
    それぞれの前記駆動モジュールが、
    前記メインモジュールから前記伝送路を介して前記電流指令を受信し、
    前記電流指令に基づいて前記アクチュエータを駆動するように構成され、
    前記メインモジュールは、
    前記第1アームへの前記電流指令よる前記第1アームの動作に起因する前記第2アームの振動量を推定し、前記第2アームの振動を抑制するように前記第2アームの前記電流指令を調節する、
    ロボットコントローラ。
  2. ロボットのアクチュエータの駆動を制御する複数の駆動モジュールと、
    所定の通信プロトコルに準拠した伝送路を介して前記駆動モジュールに接続されるメインモジュールとを備え、
    前記ロボットは、垂直多関節式のロボットアームとして、第1アーム及び第2アームを備えるソーシャルロボットであり、かつ、床面を走行するための走行機構を備えており、
    前記ロボットアームは、複数のリンクを有し、それぞれの前記リンク間がジョイント部で接続され、
    それぞれの前記駆動モジュールに複数の前記アクチュエータが接続されており、
    前記アクチュエータは、
    前記第1アームを構成するリンクとリンクとを接続するジョイント部に配置された複数の第1モータと、
    前記第2アームを構成するリンクとリンクとを接続するジョイント部に配置された複数の第2モータと、
    前記走行機構を駆動する1又は複数の第3モータとを含み、
    前記メインモジュールが、
    前記アクチュエータの位置を指示する位置指令、前記アクチュエータの動作速度を指示する速度指令、又は、前記アクチュエータのトルクを指示するトルク指令の少なくともいずれかを含む動作指令に基づいて、前記アクチュエータを駆動するための電流指令を生成し、
    生成した前記電流指令を前記所定の通信プロトコルに対応する形式にして前記伝送路を介して前記電流指令に対応する前記アクチュエータが接続された前記駆動モジュールに送信し、
    それぞれの前記駆動モジュールが、
    前記メインモジュールから前記伝送路を介して前記電流指令を受信し、
    前記電流指令に基づいて前記アクチュエータを駆動するように構成され、
    前記メインモジュールは、
    前記走行機構による走行動作による前記ロボットアームの振動量を推定し、前記ロボットアームの振動を抑制するように前記電流指令を調節する、
    ロボットコントローラ。
  3. 請求項1又は2に記載のロボットコントローラにおいて、
    前記メインモジュールは、
    入力データを処理するTP制御部と、
    前記TP制御部で取得された入力データに基づいて、前記動作指令を生成する指令値生成部と、
    前記指令値生成部で生成された前記動作指令に基づいて、前記電流指令を生成する動作制御部とを備える、
    ロボットコントローラ。
  4. 請求項1又は2に記載のロボットコントローラにおいて、
    前記アクチュエータの位置を検出するための位置センサをさらに備え、
    前記位置センサで検出されたアクチュエータの位置を前記メインモジュールにフィードバックし、
    前記メインモジュールは、前記アクチュエータの位置に基づいて前記電流指令を調節するフィードバック制御を実行する、
    ロボットコントローラ。
  5. 請求項1又は2に記載のロボットコントローラにおいて、
    前記駆動モジュールは、
    前記アクチュエータに駆動電流を出力するインバータと、
    前記電流指令に基づいて前記インバータを制御する電流制御部とを備える、
    ロボットコントローラ。
  6. 請求項5に記載のロボットコントローラにおいて、
    前記駆動モジュールは、
    前記駆動電流を検出する電流センサを備え、
    前記電流制御部は、
    前記電流センサで検出された電流に基づいて、前記インバータの出力電流を前記電流指令に基づく目標電流に近づけるフィードバック制御を実行する、
    ロボットコントローラ。
  7. 請求項1又は2に記載のロボットコントローラにおいて、
    前記メインモジュールは、
    複数の前記アクチュエータを駆動するための電流指令を生成して、前記伝送路を介して前記駆動モジュールに送信し、
    前記駆動モジュールは、前記メインモジュールから受信した前記電流指令に基づいて複数の前記アクチュエータを駆動する、
    ロボットコントローラ。
  8. 請求項4に記載のロボットコントローラにおいて、
    前記アクチュエータは、サーボモータであり、
    前記位置センサは、前記サーボモータの回転方向及び回転角を測定するエンコーダであり、
    前記アクチュエータの位置は、前記エンコーダの測定値を基に算出される、
    ロボットコントローラ。
  9. 請求項1又は2に記載のロボットコントローラにおいて、
    前記所定の通信プロトコルは、100Mbps以上の通信速度を有する、
    ロボットコントローラ。
  10. 請求項1又は2に記載のロボットコントローラにおいて、
    前記メインモジュールは、前記所定の通信プロトコルに準拠したマスターインターフェース回路を有し、
    前記駆動モジュールは、前記伝送路を介して前記マスターインターフェース回路と接続されるスレーブインターフェース回路を有する、
    ロボットコントローラ。
  11. 請求項1に記載のロボットコントローラにおいて、
    前記メインモジュールは、
    前記第1アームへの前記電流指令に応じて、前記第2アームが協調して動作するように前記第2アームの前記電流指令を生成する、
    ロボットコントローラ。
  12. 請求項11に記載のロボットコントローラにおいて、
    前記ロボットは、床面を走行するための走行機構を備え、
    前記アクチュエータは、前記走行機構を駆動する1又は複数の第3モータを含む、
    ロボットコントローラ。
  13. 請求項2に記載のロボットコントローラにおいて、
    前記メインモジュールは、
    前記第1アームへの前記電流指令に応じて、前記第2アームが協調して動作するように前記第2アームの前記電流指令を生成する、
    ロボットコントローラ。
  14. 請求項1又は2のいずれかに記載のロボットコントローラにおいて、
    前記駆動モジュールは、前記アクチュエータに出力する出力電流の制御により、前記アクチュエータを駆動する、
    ロボットコントローラ。
  15. メインモジュールと、前記メインモジュールに所定の通信プロトコルに準拠した伝送路を介して接続されかつロボットのアクチュエータの駆動を制御する複数の駆動モジュールとによって実行される前記ロボットの制御方法であって、
    前記ロボットは、垂直多関節式のロボットアームとして、第1アーム及び第2アームを備えるソーシャルロボットであり、
    前記ロボットアームは、複数のリンクを有し、それぞれの前記リンク間がジョイント部で接続され、
    それぞれの前記駆動モジュールに、複数の前記アクチュエータが接続されており、
    前記アクチュエータは、
    前記第1アームを構成するリンクとリンクとを接続するジョイント部に配置された複数の第1モータと、
    前記第2アームを構成するリンクとリンクとを接続するジョイント部に配置された複数の第2モータとを含み、
    前記ロボットの制御方法は、
    前記メインモジュールが、前記アクチュエータの位置を指示する位置指令を取得し、前記アクチュエータの動作速度を指示する速度指令、又は、前記アクチュエータのトルクを指示するトルク指令を生成する第1生成ステップと、
    前記メインモジュールが、前記位置指令、前記速度指令、又は、前記トルク指令の少なくともいずれかを含む動作指令に基づいて、前記アクチュエータを駆動するための電流指令を生成する第2生成ステップと、
    前記メインモジュールが、前記第2生成ステップで生成した前記電流指令を所定の通信プロトコルに準拠した信号形式に変換し、前記所定の通信プロトコルに準拠した伝送路を介して前記電流指令に対応する前記アクチュエータが接続された前記駆動モジュールに送信する通信ステップと、
    それぞれの前記駆動モジュールが、前記伝送路を介して前記電流指令を受信し、前記電流指令に基づいて、前記アクチュエータを駆動する駆動ステップと、を含み、
    前記メインモジュールは、前記第2生成ステップにおいて、前記電流指令に基づく前記第1アームの動作に起因する前記第2アームの振動量を推定し、前記第2アームの振動を抑制するように前記電流指令を調節する、
    ロボットの制御方法。
  16. メインモジュールと、前記メインモジュールに所定の通信プロトコルに準拠した伝送路を介して接続されかつロボットのアクチュエータの駆動を制御する複数の駆動モジュールとによって実行される前記ロボットの制御方法であって、
    前記ロボットは、垂直多関節式のロボットアームとして、第1アーム及び第2アームを備えるソーシャルロボットであり、かつ、床面を走行するための走行機構を備えており、
    前記ロボットアームは、複数のリンクを有し、それぞれの前記リンク間がジョイント部で接続され、
    前記アクチュエータの駆動を制御する複数の駆動モジュールのそれぞれに、複数の前記アクチュエータが接続されており、
    前記アクチュエータは、
    前記第1アームを構成するリンクとリンクとを接続するジョイント部に配置された複数の第1モータと、
    前記第2アームを構成するリンクとリンクとを接続するジョイント部に配置された複数の第2モータと、
    前記走行機構を駆動する1又は複数の第3モータとを含み、
    前記ロボットの制御方法は、
    前記メインモジュールが、前記アクチュエータの位置を指示する位置指令を取得し、前記アクチュエータの動作速度を指示する速度指令、又は、前記アクチュエータのトルクを指示するトルク指令を生成する第1生成ステップと、
    前記メインモジュールが、前記位置指令、前記速度指令、又は、前記トルク指令の少なくともいずれかを含む動作指令に基づいて、前記アクチュエータを駆動するための電流指令を生成する第2生成ステップと、
    前記メインモジュールが、前記第2生成ステップで生成した前記電流指令を所定の通信プロトコルに準拠した信号形式に変換し、前記所定の通信プロトコルに準拠した伝送路を介して前記電流指令に対応する前記アクチュエータが接続された前記駆動モジュールに送信する通信ステップと、
    それぞれの前記駆動モジュールが、前記伝送路を介して前記電流指令を受信し、前記電流指令に基づいて、前記アクチュエータを駆動する駆動ステップと、を含み、
    前記メインモジュールは、前記第2生成ステップにおいて、前記走行機構による走行動作による前記ロボットアームの振動量を推定し、前記ロボットアームの振動を抑制するように前記電流指令を調節する、
    ロボットの制御方法。
  17. ロボットのアクチュエータの駆動を制御する複数の駆動モジュールに、所定の通信プロトコルに準拠した伝送路を介して接続されるメインモジュールの制御プログラムであって、
    前記ロボットは、垂直多関節式のロボットアームとして、第1アーム及び第2アームを備えるソーシャルロボットであり、
    前記ロボットアームは、複数のリンクを有し、それぞれの前記リンク間がジョイント部で接続され、
    それぞれの前記駆動モジュールに複数の前記アクチュエータが接続されており、
    前記アクチュエータは、
    前記第1アームを構成するリンクとリンクとを接続するジョイント部に配置された複数の第1モータと、
    前記第2アームを構成するリンクとリンクとを接続するジョイント部に配置された複数の第2モータを含み、
    それぞれの前記駆動モジュールが、前記伝送路を介して電流指令を受信し、前記電流指令に基づいて、前記アクチュエータを駆動するように構成されており、
    前記制御プログラムは、前記メインモジュールに、
    前記アクチュエータの位置を指示する位置指令、前記アクチュエータの動作速度を指示する速度指令、又は、前記アクチュエータのトルクを指示するトルク指令の少なくともいずれかを含む動作指令に基づいて、前記アクチュエータを駆動するための前記電流指令を生成する生成処理と、
    前記生成処理で生成された前記電流指令を前記所定の通信プロトコルに対応する形式にし、前記伝送路を介して前記電流指令に対応する前記アクチュエータが接続された前記駆動モジュールに送信する送信処理とを実行させ、
    前記生成処理において、前記第1アームへの前記電流指令よる前記第1アームの動作に起因する前記第2アームの振動量を推定し、前記第2アームの振動を抑制するように前記第2アームの前記電流指令を調節する処理を実行させる、
    制御プログラム。
  18. ロボットのアクチュエータの駆動を制御する複数の駆動モジュールに、所定の通信プロトコルに準拠した伝送路を介して接続されるメインモジュールの制御プログラムであって、
    前記ロボットは、垂直多関節式のロボットアームとして、第1アーム及び第2アームを備えるソーシャルロボットであり、かつ、床面を走行するための走行機構を備えており、
    前記ロボットアームは、複数のリンクを有し、それぞれの前記リンク間がジョイント部で接続され、
    それぞれの前記駆動モジュールに、複数の前記アクチュエータが接続されており、
    前記アクチュエータは、
    前記第1アームを構成するリンクとリンクとを接続するジョイント部に配置された複数の第1モータと、
    前記第2アームを構成するリンクとリンクとを接続するジョイント部に配置された複数の第2モータと、
    前記走行機構を駆動する1又は複数の第3モータとを含み、
    それぞれの前記駆動モジュールが、前記伝送路を介して電流指令を受信し、前記電流指令に基づいて、前記アクチュエータを駆動するように構成されており、
    前記制御プログラムは、前記メインモジュールに、
    前記アクチュエータの位置を指示する位置指令、前記アクチュエータの動作速度を指示する速度指令、又は、前記アクチュエータのトルクを指示するトルク指令の少なくともいずれかを含む動作指令に基づいて、前記アクチュエータを駆動するための前記電流指令を生成する生成処理と、
    前記生成処理で生成された前記電流指令を前記所定の通信プロトコルに対応する形式にし、前記伝送路を介して前記電流指令に対応する前記アクチュエータが接続された前記駆動モジュールに送信する送信処理とを実行させ、
    前記生成処理において、前記走行機構による走行動作による前記ロボットアームの振動量を推定し、前記ロボットアームの振動を抑制するように前記電流指令を調節する処理を実行させる、
    制御プログラム。
  19. 垂直多関節式のロボットアームとして、第1アーム及び第2アームを備えるソーシャルロボットと、
    ロボットのアクチュエータの駆動を制御する複数の駆動モジュールと、所定の通信プロトコルに準拠した伝送路を介して前記駆動モジュールに接続されるメインモジュールとを有する、ロボットコントローラとを備え、
    前記ロボットアームは、複数のリンクを有し、それぞれの前記リンク間がジョイント部で接続され、
    それぞれの前記駆動モジュールに複数の前記アクチュエータが接続されており、
    前記アクチュエータは、
    前記第1アームを構成するリンクとリンクとを接続するジョイント部に配置された複数の第1モータと、
    前記第2アームを構成するリンクとリンクとを接続するジョイント部に配置された複数の第2モータとを含み、
    前記メインモジュールが、
    前記アクチュエータの位置を指示する位置指令、前記アクチュエータの動作速度を指示する速度指令、又は、前記アクチュエータのトルクを指示するトルク指令の少なくともいずれかを含む動作指令に基づいて、前記アクチュエータを駆動するための電流指令を生成し、
    生成した前記電流指令を前記所定の通信プロトコルに対応する形式にして前記伝送路を介して前記電流指令に対応する前記アクチュエータが接続された前記駆動モジュールに送信し、
    それぞれの前記駆動モジュールが、
    前記メインモジュールから前記伝送路を介して前記電流指令を受信し、
    前記電流指令に基づいて前記アクチュエータを駆動するように構成され、
    前記メインモジュールは、
    前記第1アームへの前記電流指令よる前記第1アームの動作に起因する前記第2アームの振動量を推定し、前記第2アームの振動を抑制するように前記第2アームの前記電流指令を調節する、
    ロボットシステム。
  20. 垂直多関節式のロボットアームとして、第1アーム及び第2アームを備え、かつ、床面を走行するための走行機構を備えているソーシャルロボットと、
    ロボットのアクチュエータの駆動を制御する複数の駆動モジュールと、所定の通信プロトコルに準拠した伝送路を介して前記駆動モジュールに接続されるメインモジュールとを有する、ロボットコントローラとを備え、
    前記ロボットアームは、複数のリンクを有し、それぞれの前記リンク間がジョイント部で接続され、
    それぞれの前記駆動モジュールに複数の前記アクチュエータが接続されており、
    前記アクチュエータは、
    前記第1アームを構成するリンクとリンクとを接続するジョイント部に配置された複数の第1モータと、
    前記第2アームを構成するリンクとリンクとを接続するジョイント部に配置された複数の第2モータと、
    前記走行機構を駆動する1又は複数の第3モータとを含み、
    前記メインモジュールが、
    前記アクチュエータの位置を指示する位置指令、前記アクチュエータの動作速度を指示する速度指令、又は、前記アクチュエータのトルクを指示するトルク指令の少なくともいずれかを含む動作指令に基づいて、前記アクチュエータを駆動するための電流指令を生成し、
    生成した前記電流指令を前記所定の通信プロトコルに対応する形式にして前記伝送路を介して前記電流指令に対応する前記アクチュエータが接続された前記駆動モジュールに送信し、
    それぞれの前記駆動モジュールが、
    前記メインモジュールから前記伝送路を介して前記電流指令を受信し、
    前記電流指令に基づいて前記アクチュエータを駆動するように構成され、
    前記メインモジュールは、
    前記走行機構による走行動作による前記ロボットアームの振動量を推定し、前記ロボットアームの振動を抑制するように前記電流指令を調節する、
    ロボットシステム。
JP2025067731A 2025-04-16 2025-04-16 ロボットコントローラ、ロボットの制御方法、制御プログラム、ロボットシステム Active JP7858112B1 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2025067731A JP7858112B1 (ja) 2025-04-16 2025-04-16 ロボットコントローラ、ロボットの制御方法、制御プログラム、ロボットシステム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2025067731A JP7858112B1 (ja) 2025-04-16 2025-04-16 ロボットコントローラ、ロボットの制御方法、制御プログラム、ロボットシステム

Publications (1)

Publication Number Publication Date
JP7858112B1 true JP7858112B1 (ja) 2026-05-13

Family

ID=99760198

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2025067731A Active JP7858112B1 (ja) 2025-04-16 2025-04-16 ロボットコントローラ、ロボットの制御方法、制御プログラム、ロボットシステム

Country Status (1)

Country Link
JP (1) JP7858112B1 (ja)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010240882A (ja) * 2009-04-01 2010-10-28 Toyo Mach & Metal Co Ltd 射出成形機
JP2016531669A (ja) * 2013-08-09 2016-10-13 インテュイティブ サージカル オペレーションズ, インコーポレイテッド 複数の遠位に収容されるモータを制御する遠隔電流コントローラを備える医療ロボットシステム
WO2024212359A1 (zh) * 2023-06-12 2024-10-17 之江实验室 一种用于人形机器人的电气控制系统、方法及装置
JP2024170973A (ja) * 2023-05-29 2024-12-11 パナソニックホールディングス株式会社 ロボットハンド
JP2024171841A (ja) * 2023-05-30 2024-12-12 川崎重工業株式会社 ロボット

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010240882A (ja) * 2009-04-01 2010-10-28 Toyo Mach & Metal Co Ltd 射出成形機
JP2016531669A (ja) * 2013-08-09 2016-10-13 インテュイティブ サージカル オペレーションズ, インコーポレイテッド 複数の遠位に収容されるモータを制御する遠隔電流コントローラを備える医療ロボットシステム
JP2024170973A (ja) * 2023-05-29 2024-12-11 パナソニックホールディングス株式会社 ロボットハンド
JP2024171841A (ja) * 2023-05-30 2024-12-12 川崎重工業株式会社 ロボット
WO2024212359A1 (zh) * 2023-06-12 2024-10-17 之江实验室 一种用于人形机器人的电气控制系统、方法及装置

Similar Documents

Publication Publication Date Title
EP3238881B1 (en) Self-traveling articulated robot
EP3342541B1 (en) Remote control robot system
US9252584B2 (en) Apparatus and method for providing tethered electrical power to autonomous mobile robots
US7765031B2 (en) Robot and multi-robot interference avoidance method
JP2018015853A (ja) ロボット、及びロボットシステム
JP2019093481A (ja) ロボットシステム及びロボットシステムの制御方法
EP3822045B1 (en) Manipulator control device, manipulator control method, and manipulator control program
US12005571B2 (en) Robotic apparatus for operating on fixed frames
JP2020146812A (ja) コネクタを含むワークを把持する作業ツールおよび作業ツールを備えるロボット装置
KR20240164785A (ko) 확장 현실을 사용한 로봇 조작을 위한 시스템들 및 방법들
CN106940561A (zh) 一种集装箱装卸用移动机器人控制系统及方法
CN118614803A (zh) 多功能模块化家用清洁机器人及其控制方法
JP2020142362A (ja) ロボット装置、ロボット装置の制御方法、ロボット装置を用いた物品の製造方法、通信装置、通信方法、制御プログラム及び記録媒体
EP4491344A1 (en) Robot system, and cart
JP2023131062A (ja) ロボットの制御方法及びロボット
JP2020138294A (ja) ロボットシステム
US20230038804A1 (en) Master-slave system and controlling method
TW202440287A (zh) 具有關節彎折或可變長度上臂之機器人
JPH02284884A (ja) 複腕作業機システム
EP4491343A1 (en) Control method for robot and robot
KR20230110608A (ko) 다관절 작동 키네마틱
US20240100691A1 (en) Self-propelled Device
CN120962602A (zh) 机器人
EP3797932B1 (en) Mobile robot
CN102809929A (zh) 降低待机功耗型移动机器人装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20251110

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20251110

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20260127

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20260330

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20260427

R150 Certificate of patent or registration of utility model

Ref document number: 7858112

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150