JP7242355B2 - 分散制御システムおよびそれを用いた作業機械 - Google Patents

分散制御システムおよびそれを用いた作業機械 Download PDF

Info

Publication number
JP7242355B2
JP7242355B2 JP2019045813A JP2019045813A JP7242355B2 JP 7242355 B2 JP7242355 B2 JP 7242355B2 JP 2019045813 A JP2019045813 A JP 2019045813A JP 2019045813 A JP2019045813 A JP 2019045813A JP 7242355 B2 JP7242355 B2 JP 7242355B2
Authority
JP
Japan
Prior art keywords
port
communication
data
control system
unit
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
JP2019045813A
Other languages
English (en)
Other versions
JP2020150393A (ja
Inventor
高志 三枝
和史 山科
輝宣 船津
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2019045813A priority Critical patent/JP7242355B2/ja
Publication of JP2020150393A publication Critical patent/JP2020150393A/ja
Application granted granted Critical
Publication of JP7242355B2 publication Critical patent/JP7242355B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)
  • Small-Scale Networks (AREA)

Description

本発明は、複数のユニットでシステム全体を制御する分散制御システムとそれを用いた作業機械に関する。
近年、作業機械の調整自動化や複雑作業の自動化などを目的に、深層学習の利用が検討されている。
深層学習では、あるタスクを実行した際の画像やセンサなどの入力データと、評価尺度を用いて事前に、このタスクを繰返し実行する中で評価が改善するように自身の演算モデル内のパラメータを更新する。以下、これを学習処理と呼ぶ。
また、実運用時には、タスクを実行した際の入力データを、学習済みの演算モデルとパラメータの組を用いて演算する。以下、これを推論処理と呼ぶ。
深層学習では、このような学習処理と推論処理の実行で、数理的な設計およびチューニングをすることなく処理結果の改善や、複雑なアルゴリズムの設計および実装を実現できる。
産業装置やロボットなどの作業機械の分野では、このような深層学習を応用することで、機体や動作環境などの個体差を吸収するためのチューニングにかかる工数の削減や、多くの物理変化量への考慮が必要となる複雑な作業動作のためのアルゴリズムの設計、実装の容易化が期待される。
ここで、作業機械では、その制御にミリ秒からマイクロ秒周期での高速な演算が求められる。
そのため、作業機械では、アームやエンドエフェクタなどの機能モジュールや、モータやセンサなどの制御デバイスごとに制御装置を分散搭載し、これらの制御装置をネットワークで接続する分散制御システムを備えることが一般的であり、作業機械の各モジュールに必要な制御演算を、分散並列に実行することで高速化する。
したがって、作業機械に深層学習を適用する際も同様に、演算処理を分散並列に実行することが必須となる。
しかしながら、深層学習では分散処理した数百~数千の各計算結果を、分散処理した制御装置全体で複数回共有する必要があり、この際に発生するネットワークの通信時間がボトルネックとなり、高速な演算処理を阻害する。
これを解決する手段として、ネットワークを介した通信処理時間を削減する技術が一般的に知られており、例えば、特許文献1などがある。特許文献1では、通信データの負荷分散をネットワークの通信を介して要求し、通信データの負荷分散の対象となる制御装置をネットワークの通信を介して指定することを特徴としている。
特開2012-175684号公報
しかしながら、特許文献1に記載の技術では、実際のデータ転送時にかかる、ルーティング制御の処理時間や伝送空き時間など、伝送以外の通信処理時間の削減について考慮がなされていない。
また、ネットワークの通信時間だけでなく、学習処理や推論処理などの演算時間を含めたシステム全体での処理時間の短縮について考慮がなされていない。
以上のことから本発明は「複数の通信ポートを具備する制御装置を複数備え、複数の制御装置の間に、通信ポート同士を接続する通信路を具備することで構成されるネットワークを備える分散制御システムであって、制御装置は、制御装置自身が備える通信ポートの1つ乃至複数が、通信路を介して転送されるデータを制御装置自身で処理するデータである入力データとして取込む通信ポートである受信ポートに選択され、制御装置自身が備える通信ポートの1つ乃至複数が、自身が発信するデータである出力データを通信路に転送する通信ポートである送信ポートに選択され、制御装置自身が備える通信ポートの複数が、通信路を介して転送される信号およびデータを受信する通信ポートと、受信した信号およびデータを通信路に転送する通信ポートの組である中継ポートに選択されていることを特徴とする分散制御システム。」としたものである。
また本発明は「複数の通信ポートを具備する制御装置を複数備え、複数の制御装置の間に、通信ポート同士を接続する通信路を具備することで構成されるネットワークを備える分散制御システムであって、制御装置は、制御装置自身に搭載される全ての通信ポートと接続され、通信路を介した通信を実行する通信制御部と、通信制御部からの受信データを用いて演算を行い、演算結果を送信データとして通信演算部に与える演算部を備え、通信制御部は、全ての通信ポートの受信側と接続され、任意の通信ポートを受信ポートとして選択する受信ポート選択部と、全ての通信ポートの送信側と接続され、任意の通信ポートを送信ポートとして選択する送信ポート選択部と、中継ポート選択部とを備え、通信制御部は、受信ポート選択部と接続され、受信ポートから伝送されるデータが格納される受信データ格納部と、送信ポート選択部と接続され、送信ポートに伝送するデータが格納される送信データ格納部と、受信データ格納部および送信データ格納部と接続され、演算部の演算結果のデータ、および、受信データ格納部に格納されたデータのうち、いずれかを選択し、送信データ格納部にデータを格納する送信データ選択部とを備え、受信ポート選択部は、中継ポート選択部と接続され、全ての通信ポートの接続線から伝送される信号を、中継ポート選択部に受け渡し、送信ポート選択部は、中継ポート選択部と接続され、中継ポート選択部からの接続を、通信ポートの接続と1対1に対応するように備え、中継ポート選択部から伝送される信号を、対応する通信ポートの接続線に受け渡し、中継ポート選択部は、受信ポート選択部からの接続線と、送信ポート選択部からの接続線の組を選択することで、中継ポートを決定し、中継ポートに決定された受信ポート選択部の接続線から伝送される信号を、同じ中継ポートに決定された送信ポート選択部の接続線に受け渡すことを特徴とする分散制御システム。」としたものである。
また本発明は「分散制御システムを用いて構成されたことを特徴とする作業機械。」としたものである。
本発明の1つの態様に依れば、データ転送時のルーティング制御の処理時間を短縮し、伝送空き時間を削減できるため、ネットワークを介したデータ共有を高速化できる。
また、本発明の他の態様に依れば、ネットワークを介した計算結果の共有と、学習処理や推論処理などの演算を並列(同時)かつ直列並行(パイプライン)に処理できるため、
システム全体での処理時間の短縮できる。
本発明の実施例に係る分散制御システム20を作業機械10に適用した際の構成例を示す図。 分散制御システム20における制御装置21の具体的な構成例を示す図。 図2の通信制御部201において、さらに各部信号を明記した図。 分散制御システム20の複数の制御装置201内の通信制御部201の設定手順を示すフローチャート。 分散制御システム20で実行される深層学習の演算モデル400の構成例を示す図。 演算部202の一例を示す図。 制御装置21の接続設定の例を示す図。 通信制御部201の設定の処理内容の例を示す図。 分散制御システム20の演算処理手順を示すフローチャート。 分散制御システム20の演算ステップS601の詳細を示すフローチャート。 分散制御システム20の処理の実行内容を示すタイミングチャート。 分散制御システム20の設定画面800の表示例を示す。 実施例2に係わる分散制御システム20の構成例を示す図。 実施例3に係わる分散制御システム20の構成例を示す図。
本発明を実施するための形態について、適宜図面を参照しながら詳細に説明する。
図1は、本発明の実施例に係る分散制御システム20を作業機械10に適用した際の構成例を示す図である。
作業機械10は、自身に具備されるアームやエンドエフェクタなどの機構を駆動させるための分散制御システム20を備える。
分散制御システム20は、メイン制御装置23と、表示入力装置24と、複数の制御装置21を通信路22で各々接続して構成されている。本実施例では、例えばメイン制御装置23において深層学習の学習処理を実施し、複数の制御装置21において深層学習の推論処理を分散実施させることにより、全体として有意の作業を行わしめる。
このうち制御装置21は、モータ、センサ、カメラなどの複数の制御デバイス(図示しない)と接続され、接続された制御デバイスの制御処理を実行する。
メイン制御装置23は、深層学習の学習処理を実行するとともに、通信路22により構成されたネットワークを介して制御装置21に対し、学習の結果得られた動作指令、動作応答、および、制御パラメータ、演算パラメータを転送することで全ての制御装置21を統括的に制御する。
表示入力装置24は、メイン制御装置23と接続され、分散制御システム20の利用者が全ての制御装置21を管理、設定するため画面表示と入力の機能を備える。
図2は、本実施例に係わる分散制御システム20における制御装置21の具体的な構成例を示す。
本実施例の分散制御システム20は、制御装置21を複数備えるが、図2の例では、制御装置21a~21fを備えるものとする。同一仕様により標準的に構成される制御装置21a~21fについて、図2の21aを代表例として、その具体的な構成について説明する。
制御装置21は、通信ポート200を複数備え、自身に備えられた通信ポート200と、他の制御装置21の通信ポート200間に通信路22が接続される。通信ポート200は、受信側と送信側を備えて双方向通信が可能に構成されている。なお図示の例では通信ポート200は標準的に3組備えた例を示しており、他の制御装置21に接続するときには、3組の通信ポート200の任意の1つ以上を適宜使用することができる。制御装置21aは2組使用例であり、制御装置21bは3組使用例である。また通信ポート200は全二重で構成されるのが好ましく、この場合に各通信ポートの送受信は同時に実行される。
また、制御装置21は、自身に搭載される全ての通信ポート200と接続され通信路22を介した通信を実行する通信制御部201と、通信制御部201と接続されモーション制御や深層学習などの演算処理を実行する演算部202と、通信制御部201および演算部202と接続され演算部202の処理結果を格納し、格納された処理結果を通信制御部201に転送する演算結果格納部203を備える。
制御装置201内の通信制御部201は、通信制御装置21に搭載される全ての通信ポート200の受信側と接続される受信ポート選択部210と、通信制御装置21に搭載される全ての通信ポート200の送信側と接続される送信ポート選択部211と、受信ポート選択部210及び送信ポート選択部211に接続される中継ポート選択部212と、受信ポート選択部210および演算部202と接続される受信データ格納部213と、送信ポート選択部211と接続される送信データ格納部214と、受信データ格納部210および演算結果格納部203および送信データ格納部214と接続される送信データ選択部215を備える。
図3は、図2の通信制御部201において、さらに各部信号を明記した図である。ここでは、3組の通信ポート200を200-1、200-2、200-3として、それぞれの受信信号をS1r、S2r、S3rと定義し、送信信号をS1s、S2s、S3sと定義する。また中継ポート選択部212で取り扱う受信信号をS1r’、S2r’、S3r’と定義し、中継ポート選択部212で取り扱う送信信号をS1s’、S2s’、S3s’と定義する。
通信制御部201の各部の動作について説明する。図3の構成において、受信ポート選択部210は、通信ポート200からの接続線を選択することでデータを受信する通信ポート200(以下、受信ポートと呼ぶ)を決定し、受信ポートから伝送されるデータを受信処理して、受信データ格納部213に格納する。また、受信ポート選択部210は、全ての通信ポート200の接続線から伝送される信号を、中継ポート選択部212に受け渡す。
より詳細に述べると、受信ポート選択部210における受信ポートの選択処理では、入力信号{S1r、S2r、S3r}から1つ選択して、選択した受信信号をSrとして受信データ格納部210に出力し、保管する。
送信ポート選択部211は、通信ポート200からの接続線を選択することでデータを送信する通信ポート200(以下、送信ポートと呼ぶ)を決定し、送信データ格納部214のデータを取得し、送信処理して、送信ポートに伝送する。また、送信ポート選択部211は、中継ポート選択部212からの接続を、通信ポート200の接続と1対1に対応するように備え、中継ポート選択部212から伝送される信号を、対応する通信ポート200の接続線に受け渡す。
より詳細に述べると、送信ポート選択部211における送信ポートの選択処理では、送信データ格納部214から入力される信号Ssの出力先を、出力信号{S1s、S2s、S3s}から1つ選択する。つまり、通信ポート200-1、200-2、200-3のいずれかのみに信号Ssを送信する。
中継ポート選択部212は、受信ポート選択部210からの接続線と、送信ポート選択部211からの接続線の組を選択することで、伝送信号を中継する通信ポート200(以下、中継ポート)を決定し、中継ポートに決定された受信ポート選択部210の接続線から伝送される信号を、同じ中継ポートに決定された送信ポート選択部211の接続線に受け渡す。
より詳細に述べると、中継ポート選択部212における中継ポートの選択では、以下のようにされる。中継ポートの選択においては、まずS1rからS1r’、S2rからS2r’、S3rからS3r’、にそれぞれスルーされる入力信号{S1r’、S2r’、S3r’}を1つ選択し、その出力先を出力信号{S1s’、S2s’、S3s’}から1つ選択する。
次に、上記選択された出力信号は、S1s’の場合S1sに、S2s’の場合S2sに、S3s’の場合はS3sにそのまま力される。ただし未選択の場合は、出力されない。
このときに、上記の設定を複数行ってもよい。ただし、この回数は最大で通信装置が具備するポート数分であり、上記の例では3回までとされる。
受信データ格納部213は、演算部202および送信データ選択部215の要求に応じて自身に格納されたデータSrを転送する。
送信データ格納部214は、送信ポート選択部201の要求に応じて自身に格納されたデータSsを転送する。
送信データ選択部215は、受信データ格納部213と、計算結果格納部203のいずれか1つからデータを取得し、取得したデータを送信データ格納部214に格納する。
図4は、本実施例に係る分散制御システム20の複数の制御装置21内の通信制御部201の設定手順を示すフローチャートである。
このフローでは、分散制御システム20として有意の動作を行わせるに必要な、個々の制御装置21の処理内容、複数の制御装置21間での接続および個々の制御装置21内の通信の設定、通信制御部の設定などの事前段階の設定を行っている。
図4のフローでは、最初に個々の制御装置21の処理内容を定めている。ここで処理内容を定めることは、例えばメイン制御装置23において深層学習の学習処理を実施し、この学習結果を反映して複数の制御装置21において深層学習の推論処理を分散実施させるための準備段階の処理を行うことを意味している。
具体的には、図4のフローにおける最初の処理ステップS300において、分散制御システム20の利用者は、事前に深層学習の学習処理を実施する。次に、処理ステップS301において分散制御システム20の利用者は、学習処理で得られた推論処理の演算内容を複数の制御装置21に分散搭載する際の分散方法を設定する。
ここで、処理ステップS301の具体例を図5(a)と図5(b)を用いて説明する。本実施例に係わる分散制御システム20で実行される深層学習の演算モデル400が図5(a)に、演算部202の一例が図5(b)に例示されている。
図5(a)に例示する演算モデル400は、入力層401と、出力層402と、ニューロン数n、層数mの中間層403を備え、各層間のニューロンを全結合するモデルである。この演算モデル400は、分散制御システム20の全体の動作や処理を表す全体モデルである。
本実施例では、演算モデル400を、上下に4分割(演算モデル400a~400dに対応)したものを分散して複数の制御装置21aに搭載する。例えば制御装置21aに演算モデル400aを搭載し、制御装置21bに演算モデル400bを搭載し、制御装置21cに演算モデル400cを搭載し、制御装置21dに演算モデル400dを搭載することで、全体として演算モデル400を構成する。これは、上半身の作業機械10の例でいえば、制御装置21aに右腕の機能を付与し、制御装置21bに右手の機能を付与し、制御装置21cに左腕の機能を付与し、、制御装置21dに左手の機能を付与したものということができる。
このとき、分割数は、演算モデル400のニューロン数n、層数mから決定される重み係数などの計算数や、データ量、あるいは、制御装置21に搭載される演算部202の演算方式で決めることが望ましい。
分割数の一例を説明するため、図5(b)に演算部202と演算結果格納部203の詳細構成を示す。
演算部202は、ニューロンの演算(重み係数乗算、バイアス加算、発火関数演算など)を実行する演算器410と、ニューロンの演算に用いる重み係数のパラメータを格納する重み係数格納部411と、をk個備える。
一方、演算結果格納部203は、演算部410の演算結果を格納するデータ格納部420を、k個備え、演算部410と1対1で対応するように接続する。
さらに演算結果格納部203は、k個搭載されるデータ格納部420と接続され、データ格納部420に格納されたデータを集約するデータ集約部421を備える。
演算部202は、さらに、自身への入力、および、データ集約部421からの入力のいずれのデータを演算部202が備える全ての演算器410の入力とするかを選択するデータ選択部412を備える。
制御装置21が、このような演算部202と、演算結果格納部203を備える場合、k個のニューロンの演算を並列処理できるため、演算モデル400a~400dの各ニューロン数は、k個以内に設定するとよい。こうすることで、計算効率がよく、演算モデル400全体の演算時間の短縮が期待できる。
ここで、図4に戻って説明を続ける。次に図4のフローでは、複数の制御装置21間での接続についての設定を行う。これは、処理ステップS301の後、処理ステップS302において、演算内容を実際に分散搭載する制御装置21を選択し、さらに処理ステップS303において、これらの制御装置21の通信制御部201の制御方法を設定する。
ここで、処理ステップS302、S303の具体例を図6、図7を用いて説明する。図6は、本実施例に係わる分散制御システム20の複数の制御装置21の接続の設定を示す図、並びに図7は通信制御部201の設定の処理内容の例を示す図である。
本実施例では、図6において前述の演算モデル400a~400dを、それぞれ制御装置21a~21dに分散搭載するように設定する。なお図6の分散制御システム20では、制御装置21e、21fも備えるが、以下の説明では同様の考え方により設定され、あるいは使用されないものとしている。
このとき複数の制御装置21間の接続の設定では、ネットワークを介して転送されるデータが制御装置21a~21dを一巡するように、即ち、制御装置21a~21dがそれぞれ転送c500~c503を実行できるように、各制御装置21a~21dの通信制御部201を設定する。
具体的には例えば図6において、制御装置21aは通信ポート200a-1、200a-2、200a-3、制御装置21bは通信ポート200b-1、200b-2、200b-3、制御装置21cは通信ポート200c-1、200c-2、200c-3、制御装置21dは通信ポート200d-1、200d-2、200d-3をそれぞれ備えているものとして以下の説明を行う。
そのうえで、制御装置21aの通信ポート200a-3を制御装置21bの通信ポート200b-1に接続し、制御装置21bの通信ポート200b-2を制御装置21dの通信ポート200d-1に接続し、制御装置21bの通信ポート200b-3を制御装置21cの通信ポート200c-1にそれぞれ通信路22を介して接続する。
この場合に、通信路22および通信ポート200では双方向通信が行われるので、この結果として、制御装置21a~21dを一巡する転送ルート(c500~c503)を形成することができる。
この転送ルートは、転送ルートC500(制御装置21aの通信ポート200a-3から制御装置21bの通信ポート200b-1に至る)、転送ルートC501(制御装置21bの通信ポート200b-3から制御装置21cの通信ポート200c-1に至る)、転送ルートC502(制御装置21cの通信ポート200c-1から制御装置21bの通信ポート200b-3、200b-2、制御装置21dの通信ポート200d-1に至る)、転送ルートC503、(制御装置21dの通信ポート200d-1から制御装置21bの通信ポート200b-2、制御装置21bの通信ポート200b-1、制御装置21aの通信ポート200a-3)により形成されている。
図7は、このように設定した時に各制御装置21a~21dにおける通信ポートが果たす役割(受信ポート、送信ポート、中継ポートの別)を縦方向に、また各ポートにおいて取り扱うことになる受信信号、送信信号が何であるかを横方向に記述して纏めたものである。図7に示すように、上記の一巡する転送ルートを形成するためには、各制御装置21の通信ポート200は、以下のように定義されている必要がある。
まず制御装置21aでは、通信ポート200a-3を、送信ポートおよび受信ポートに設定する。制御装置21bでは、通信ポート200b-1を受信ポート、通信ポート200b-3を送信ポートに設定する。さらに、制御装置21bでは、通信ポート200b-3の受信側と、通信ポート200b-2の送信側の組を中継ポートの1つとして設定し、制御装置21cでは、通信ポート200c-1を受信ポートおよび送信ポートに設定する。また制御装置21bでは、通信ポート200b-2の受信側と通信ポート200b-1の送信側の組をもう1つの中継ポートとして設定する。制御装置21dでは、通信ポート200d-1を送信ポートおよび受信ポートに設定する。この設定により、複数の制御装置21間での接続準備、および個々の制御装置21内の通信の設定が完了する。
なお図7の記述において、〇は左列の各ポートの役割に、上行の信号を割り付けたという意味で、その際の制御装置の物理的な通信ポートとの関連性をその横に番号として記載している。受信ポート/送信ポートは、受信信号/送信信号を各制御装置に1つ設定している。中継ポートは受信信号と、送信信号の組として設定している。受信信号→送信信号に伝送される。制御装置21a~21fに上記を初期設定(固定で設定)することで、同一制御装置で様々な通信に対応できる。
このように、制御装置21a~21dの各通信制御部201を設定し、かつ、各制御装置21a~21dは、データの受信を4回繰返すと同時に、初回のみ自身のデータを送信、以降3回は受信したデータを送信し、これらのデータ送受信を同時に実行することで、制御装置21a~21dの全てでデータを共有できる。
再度図4に戻って説明を続ける。処理ステップS303の後、分散制御システム20の利用者は、処理ステップS304において推論処理に用いる重み係数などのパラメータを制御装置21a~制御装置21dに展開し、演算を実行する。以上の処理手順で、推論処理を分散して実行できる。
図8は、本実施例に係わる分散制御システム20の演算処理手順を示すフローチャートである。
図8のフローにおいて、分散制御システム20は、演算を開始すると、まず処理ステップS600において、図5(a)の演算モデル400の入力層401の演算を実行する。処理ステップS600の入力層401の演算では、制御装置21a~21dに入力データを共有してから、各制御装置21a~21dで同時並行に演算を実行する。
次に、分散制御システム20は、処理ステップS601において演算モデル400の中間層403の演算を実行する。ここで、処理ステップS601の処理手順の詳細を図9(a)、図9(b)を用いて説明する。
図9(a)は、本実施例に関わる分散制御システム20の演算処理手順の詳細を示すフローチャートであり、図9(b)は、処理の実行内容を示すタイミングチャートである。この図に示す通り、制御装置21a~21dは本処理手順を同時並行に実行することで、中間層403の演算を分散して実行できる。
まず、図9(a)について説明する。なお、図8の処理ステップS601に相当する処理ステップS700は、演算モデル400の中間層403の一層分の演算に該当し、処理ステップS701~処理ステップS704のステップで実行されるものである。
さらに、処理ステップS700のうち、処理ステップS710~処理ステップS713は、受信ポート選択部210の処理手順を、処理ステップS720~処理ステップS723は、演算部202の処理手順を処理ステップS730~処理ステップS733は、送信データ選択部215、および、送信ポート選択部212の処理手順をそれぞれ示すものとする。
まず、受信ポート選択部210は、処理ステップS710において受信ポートを介して転送される計算結果を受信し、受信データ格納部213に格納する。
処理ステップS710と同時に、演算部202は、処理ステップS720において自身の前回の演算結果(入力層401の演算結果、あるいは、一層前の中間層403の演算結果)を用いて、演算を実行する。
さらに処理ステップS720と同時に、送信データ選択部214は、処理ステップS730において演算結果格納部203に格納される自身の前回の演算結果(入力層401の演算結果、あるいは、一層前の中間層403の演算結果)を選択し、送信データ格納部214に格納し、送信データ選択部211は、送信データ格納部214に格納されたデータを送信ポートに転送する。
次に、受信ポート選択部210は、処理ステップS711において受信ポートを介して転送される計算結果を受信し、受信データ格納部213に格納する。
処理ステップS711と同時に、演算部202は、処理ステップS721において受信データ格納部213に格納済みの受信データを用いて、演算を実行する。
さらに処理ステップS721と同時に、送信データ選択部214は処理ステップS731において、処理ステップS710で受信データ格納部213に格納済みの受信データを選択し、送信データ格納部214に格納し、送信データ選択部211は、送信データ格納部214に格納されたデータを送信ポートに転送する。
次に、受信ポート選択部210は、処理ステップS712において受信ポートを介して転送される計算結果を受信し、受信データ格納部213に格納する。
処理ステップS711と同時に、演算部202は処理ステップS722において、処理ステップS711で受信データ格納部213に格納済みの受信データを用いて、演算を実行する。
さらに処理ステップS722と同時に、送信データ選択部214は処理ステップS732において、処理ステップS711で受信データ格納部213に格納済みの受信データを選択し、送信データ格納部214に格納し、送信データ選択部211は、送信データ格納部214に格納されたデータを送信ポートに転送する。
次に、受信ポート選択部210は、処理ステップS713において受信ポートを介して転送される計算結果を受信し、受信データ格納部213に格納する。
処理ステップS713と同時に、演算部202は処理ステップS722において、処理ステップS712で受信データ格納部213に格納済みの受信データを用いて、演算を実行する。
さらに処理ステップS722と同時に、送信データ選択部214は処理ステップS733において、処理ステップS712で受信データ格納部213に格納済みの受信データを選択し、送信データ格納部214に格納し、送信データ選択部211は、送信データ格納部214に格納されたデータを送信ポートに転送する。
処理ステップS713、処理ステップS723、処理ステップS733が全て完了した後、演算部202は処理ステップS724の判断処理において、処理ステップS700の実行回数が演算モデル400の中間層403の層数分に達していない場合は処理ステップS724の判断をNoとして、処理ステップS700を繰り返し実行する。また処理ステップS700の実行回数が演算モデル400の中間層403の層数分に達している場合は処理ステップS724の判断をYesとして、処理を終了する。
なお、本実施例では、演算モデル400の分散数を4としたため、処理ステップS700を4ステップ(処理ステップS701~処理ステップS704)で実行したが、本実施例と異なる分散数の場合には、分散数をnとすると、処理ステップS700を処理ステップS701、処理ステップS702の繰返しでnステップ分実行すればよい。
次に図9(b)について説明する。このタイミングチャート730は、処理ステップS700を一回実行した際の各通信装置21a~21dに対する、演算と、転送c500~c503の実行状態について示した図である。
なお、タイミングチャート730の内部に記載されている記号21a~21dは、各通信装置21a~21dに対する、演算と、転送c500~c503で扱っているデータを転送開始した制御装置21a~21dに対応する。
これによれば、タイミングチャート730に示すとおり、推論処理などの演算を並列(同時)かつ直列並行(パイプライン)に処理できる。演算を行いながら、その時間帯で同時に転送が行われている。
ここで、図6に戻って説明を続ける。処理ステップS601の後、分散制御システム20は、処理ステップS602において演算モデル400の出力層402の演算を実行する。
処理ステップS602の出力層402の演算では、通信装置21a~21dの各自で保有する処理ステップS601の計算結果を1つの任意の制御装置21(例えば、制御装置21a)に集約しながら、制御装置21の演算部202で演算を実行する。
以上の処理手順で、通信と演算を並列処理しつつ、演算モデル400の推論処理を通信装置21a~21dに分散して実行できる。
図10は、本実施例に関わる分散制御システム20の設定画面800の表示例を示す図である。
設定画面800は、演算モデル分散方法表示設定部801と分散制御システム表示設定部802を備える。
演算モデル分散方法表示設定部801は、図4を用いて説明した演算モデル400を分散させるための一連の設定を画面上で実施するための表示機能、入力機能を備える。
分散制御システム表示設定部802は、図5を用いて説明した演算モデル400の演算内容を分散搭載するために必要な通信制御部201の設定を画面上で実施するための表示機能、入力機能を備える。
以上の構成を備える分散制御システム20の1つの効果として、データ転送時のルーティング制御の処理時間を短縮し、伝送空き時間を削減できるため、ネットワークを介した通信を高速化できる。
また、他の効果として、ネットワークを介した計算結果の共有と、学習処理や推論処理などの演算を並列(同時)かつ直列並行(パイプライン)に処理できるため、システム全体での処理時間の短縮ができる。
図11は、実施例2に係わる分散制御システム20の構成例を示す図である。
本実施例では、演算モデル400a~400dの演算内容を通信装置21a、21b、21c、21fに分散搭載する。
この場合も、実施例1と同様に、制御装置21a~21c、21fをネットワークを介して転送されるデータが一巡するように、即ち、制御装置21a~21c、21fがそれぞれ転送c900~c903を実行できるように、通信制御部201を設定することで、実施例1と同様の効果が得られる。
具体的には、制御装置21aでは、通信ポート200a-3を送信ポートに設定する。さらに、制御装置21aでは、通信ポート200a-3の受信側と、通信ポート200a-2の送信側の組を中継ポートとして設定する。
制御装置21bでは、通信ポート200b-1を受信ポート、通信ポート200b-3を送信ポートに設定する。
さらに、制御装置21bでは、通信ポート200b-3の受信側と、通信ポート200b-1の送信側の組を中継ポートとして設定する。
制御装置21cでは、通信ポート200c-1を受信ポート、および、送信ポートに設定する。
制御装置21fでは、通信ポート200f-1を受信ポート、および、送信ポートに設定する。
ここで、本実施例では、制御装置21aと制御装置21fの間に接続される制御装置21eの通信制御部201にも設定を行う。具体的には、通信ポート200e-1の受信側と、通信ポート200iの送信側の組を中継ポートの1つとして設定し、
通信ポート200e-3の受信側と、通信ポート200e-1の送信側の組を中継ポートとして設定する。
本実施例の分散制御システム20によって得られるその他の効果については、実施例1のものと同様であるため、その重複説明は省略する。
図12は、本実施例に関わる分散制御システム20の第3の実施例を示す図である。
本実施例では、作業機械10の3つ部位のそれぞれに、演算モデル400に相当する演算内容を制御装置21に分散搭載する。
このとき、1つの演算内容に対して処理を分散搭載した制御装置21の全ての集合を分散処理グループ1000とする。
本実施例の分散制御システム20、作業機械10の3つの部位のそれぞれに、分散処理グループ1000a~1000cを設定する。
このような作業機械10の動作では、これらの分散処理グループ1000a~1000cを連携して動作させる必要がある。
ここで、分散処理グループ1000a~1000cのそれぞれに、連携用の通信を実行するための制御装置21g~21iを設ける。
制御装置21g~21iは、他の実施例と同様に、分散処理をするとともに、各分散処理グループ1000a~1000cの外部に接続される通信路22を介して、
演算モデル400の全体に相当する演算結果を転送し、メイン処理装置23および制御装置21g~21iで情報を共有する。
このようにすることで、分散制御システム20は、部分的な分散処理のシステムを複数備えることができ、それを連携して動作できる。
本実施例の分散制御システム20によって得られるその他の効果については、実施例1のものと同様であるため、その重複説明は省略する。
10:作業機械
20:分散制御システム
21、21a~21i:制御装置
22:通信路
23:メイン処理装置
24:表示入力装置
200、200a~200j:通信ポート
201:通信制御部
202:演算部
203:演算結果格納部
210:受信ポート選択部
211:送信ポート選択部
212:中継ポート選択部
213:受信データ格納部
214:送信データ格納部
215:送信データ選択部
400、400a~400d:演算モデル
401:入力層
402:出力層
403:中間層
410:演算器
411:重み係数格納部
412:データ選択部
420:データ格納部
421:データ集約部
730:タイミングチャート
800:設定画面
801:演算モデル分散方法表示設定部
802:分散制御システム表示設定部
1000、1000a~1000c:分散処理グループ

Claims (12)

  1. 複数の通信ポートを具備する制御装置を複数備え、複数の制御装置の間に、通信ポート同士を接続する通信路を具備することで構成されるネットワークを備える分散制御システムであって、
    前記制御装置は、制御装置自身が備える前記通信ポートの1つ乃至複数が、前記通信路を介して転送されるデータを制御装置自身で処理するデータである入力データとして取込む通信ポートである受信ポートに選択され、制御装置自身が備える通信ポートの1つ乃至複数が、自身が発信するデータである出力データを前記通信路に転送する通信ポートである送信ポートに選択され、制御装置自身が備える前記通信ポートの複数が、前記通信路を介して転送されるデータを受信する通信ポートと、受信したデータを通信路に転送する通信ポートの組である中継ポートに選択されていることを特徴とする分散制御システム。
  2. 請求項1に記載の分散制御システムであって、
    前記ネットワークを介したデータ転送を実行する前記制御装置を複数選択し、
    任意の前記制御装置の前記送信ポートから自身に格納された伝達情報を転送した後、選択された全ての前記制御装置が受信ポートを介して転送される入力データを取込み、取込まれた入力データを出力データとして前記送信ポートを介して転送を繰り返し実行した際に、伝達情報が選択された全ての前記制御装置を通過するように、各制御装置の前記受信ポートと、前記送信ポートと、前記中継ポートを選択することを特徴とする分散制御システム。
  3. 請求項2に記載の分散制御システムであって、
    選択された全ての前記制御装置に対し、少なくとも1つの前記受信ポートと、少なくとも1つの前記送信ポートと、を必ず選択し、さらに、選択された全ての前記制御装置のいくつかは、任意数の前記中継ポートを選択することを特徴とする分散制御システム。
  4. 請求項2に記載の分散制御システムであって、
    選択された全ての前記制御装置は、前記受信ポートを介して転送される入力データとして受信しながら、自身の演算結果あるいは入力データのいずれかを出力データとして前記送信ポートに転送する通信処理と、自身の演算結果あるいは入力データのいずれかを用いて計算を実行する演算処理と、を実行することを特徴とする分散制御システム。
  5. 請求項4に記載の分散制御システムであって、
    データ転送を実行する前記制御装置を、各制御装置で実行させる演算処理に対して、自身の処理能力を超えないように選択数を変更することを特徴とする分散制御システム。
  6. 請求項4に記載の分散制御システムであって、
    前記制御装置の演算処理の内容が深層学習の演算モデルの一部であることを特徴とする分散制御システム。
  7. 複数の通信ポートを具備する制御装置を複数備え、複数の制御装置の間に、通信ポート同士を接続する通信路を具備することで構成されるネットワークを備える分散制御システムであって、
    前記制御装置は、制御装置自身に搭載される全ての前記通信ポートと接続され、前記通信路を介した通信を実行する通信制御部と、前記通信制御部からの受信データを用いて演算を行い、演算結果を送信データとして前記通信演算部に与える演算部を備え、
    前記通信制御部は、全ての前記通信ポートの受信側と接続され、任意の前記通信ポートを受信ポートとして選択する受信ポート選択部と、全ての前記通信ポートの送信側と接続され、任意の通信ポートを送信ポートとして選択する送信ポート選択部と、中継ポート選択部とを備え、
    前記通信制御部は、前記受信ポート選択部と接続され、受信ポートから伝送されるデータが格納される受信データ格納部と、前記送信ポート選択部と接続され、送信ポートに伝送するデータが格納される送信データ格納部と、前記受信データ格納部および前記送信データ格納部と接続され、前記演算部の演算結果のデータ、および、前記受信データ格納部に格納されたデータのうち、いずれかを選択し、前記送信データ格納部にデータを格納する送信データ選択部とを備え、
    前記受信ポート選択部は、前記中継ポート選択部と接続され、全ての通信ポートの接続線から伝送される信号を、前記中継ポート選択部に受け渡し、
    前記送信ポート選択部は、前記中継ポート選択部と接続され、前記中継ポート選択部からの接続を、通信ポートの接続と1対1に対応するように備え、前記中継ポート選択部から伝送される信号を、対応する通信ポートの接続線に受け渡し、
    前記中継ポート選択部は、前記受信ポート選択部からの接続線と、前記送信ポート選択部からの接続線の組を選択することで、中継ポートを決定し、中継ポートに決定された受信ポート選択部の接続線から伝送される信号を、同じ中継ポートに決定された前記送信ポート選択部の接続線に受け渡すことを特徴とする分散制御システム。
  8. 請求項7に記載の分散制御システムであって、
    前記制御装置に対して、動作指令、動作応答、および、制御パラメータ、演算パラメータをネットワークを介して転送することで全ての制御装置を統括するメイン制御装置と、前記メイン制御装置と接続され、全ての通信装置を管理、設定するため画面表示と入力の機能を具備する表示入力装置とを備えることを特徴とする分散制御システム。
  9. 請求項7または請求項8に記載の分散制御システムであって、
    前記制御装置は、前記通信制御部の受信データ格納部と接続され、モーション制御や深層学習などの演算処理を実行する演算部と、前記演算部および演算制御部の送信データ選択部と接続され、前記演算部の処理結果を格納し、格納された処理結果を前記送信データ選択部に転送する演算結果格納部を備えることを特徴とする分散制御システム。
  10. 請求項1から請求項9のいずれか1項に記載の分散制御システムであって、
    複数の制御装置が通信路により接続されて、複数の制御装置の間で一巡する転送ルートが形成されるように、前記制御装置内の通信ポートは受信ポート、送信ポート、中継ポートに選択されていることを特徴とする分散制御システム。
  11. 請求項1から請求項10のいずれか1項に記載の分散制御システムを用いて構成されたことを特徴とする作業機械。
  12. 請求項11に記載の作業機械であって、
    作業機械を構成する分散制御システムは、深層学習の学習演算を実行する制御装置と深層学習の推論演算を実行する制御装置とを組としてネットワーク構成された制御装置群を複数組備え、制御装置群はメイン処理装置に接続されていることを特徴とする作業機械。
JP2019045813A 2019-03-13 2019-03-13 分散制御システムおよびそれを用いた作業機械 Active JP7242355B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2019045813A JP7242355B2 (ja) 2019-03-13 2019-03-13 分散制御システムおよびそれを用いた作業機械

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2019045813A JP7242355B2 (ja) 2019-03-13 2019-03-13 分散制御システムおよびそれを用いた作業機械

Publications (2)

Publication Number Publication Date
JP2020150393A JP2020150393A (ja) 2020-09-17
JP7242355B2 true JP7242355B2 (ja) 2023-03-20

Family

ID=72430915

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019045813A Active JP7242355B2 (ja) 2019-03-13 2019-03-13 分散制御システムおよびそれを用いた作業機械

Country Status (1)

Country Link
JP (1) JP7242355B2 (ja)

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001100805A (ja) 1999-09-27 2001-04-13 Matsushita Electric Ind Co Ltd ロボット制御装置
US20060244724A1 (en) 2005-04-28 2006-11-02 International Business Machines Corporation Apparatus and method for automatically switching resources between multiple workstations
JP2009164703A (ja) 2007-12-28 2009-07-23 Nippon Telegraph & Telephone West Corp 通信装置、中央サーバ装置、中継装置、情報通信システム、および情報通信方法
WO2016166881A1 (ja) 2015-04-17 2016-10-20 Cocoro Sb株式会社 処理システム及びプログラム
JP2017034590A (ja) 2015-08-05 2017-02-09 株式会社デンソー 通信ネットワーク及び中継装置
JP2017120996A (ja) 2015-12-28 2017-07-06 ファナック株式会社 複数の製造装置を含む製造データ処理システム
JP2018022939A (ja) 2016-08-01 2018-02-08 株式会社日立ハイテクノロジーズ 分散制御装置及び分散制御システム

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001100805A (ja) 1999-09-27 2001-04-13 Matsushita Electric Ind Co Ltd ロボット制御装置
US20060244724A1 (en) 2005-04-28 2006-11-02 International Business Machines Corporation Apparatus and method for automatically switching resources between multiple workstations
JP2009164703A (ja) 2007-12-28 2009-07-23 Nippon Telegraph & Telephone West Corp 通信装置、中央サーバ装置、中継装置、情報通信システム、および情報通信方法
WO2016166881A1 (ja) 2015-04-17 2016-10-20 Cocoro Sb株式会社 処理システム及びプログラム
JP2017034590A (ja) 2015-08-05 2017-02-09 株式会社デンソー 通信ネットワーク及び中継装置
JP2017120996A (ja) 2015-12-28 2017-07-06 ファナック株式会社 複数の製造装置を含む製造データ処理システム
JP2018022939A (ja) 2016-08-01 2018-02-08 株式会社日立ハイテクノロジーズ 分散制御装置及び分散制御システム

Also Published As

Publication number Publication date
JP2020150393A (ja) 2020-09-17

Similar Documents

Publication Publication Date Title
TWI803663B (zh) 一種運算裝置和運算方法
JP6576255B2 (ja) ロボット軌道生成方法、ロボット軌道生成装置、および製造方法
JP5684911B2 (ja) クラウドロボットシステムおよびその実現方法
EP0298396B1 (en) Function-distributed control apparatus
US20100274385A1 (en) Control system for controlling an industrial robot
CN111427838B (zh) 基于zynq动态更新卷积神经网络的分类***及方法
JP2019193975A (ja) ロボット軌道生成方法、ロボット軌道生成装置、および製造方法
JP7242355B2 (ja) 分散制御システムおよびそれを用いた作業機械
CN111767995B (zh) 运算方法、装置及相关产品
JP6138375B2 (ja) コントローラ
JP2014211767A (ja) 情報処理システム、制御装置及び情報処理システムの制御方法
KR102290531B1 (ko) 재조직 가능한 뉴럴 네트워크 컴퓨팅 장치
JPH02226304A (ja) コントローラの群制御システム
US11886934B2 (en) Control of data transfer between processing nodes
US20220082392A1 (en) Information processing apparatus, information processing method, computer program, and travel management system
CN111052683B (zh) 网络***
KR101334356B1 (ko) 로봇 제어 장치
Liu et al. A framework for industrial robot training in cloud manufacturing with deep reinforcement learning
CN109214507B (zh) 计算装置及方法
WO2022219735A1 (ja) ロボットコントロール装置
Lu Design of PLC intelligent control system based on improved genetic ant colony algorithm
KR20200142200A (ko) 신경망 연산 효율 증대를 위한 신경망 가속기 및 그의 동작 방법
JP7357767B2 (ja) 複数のプロセッサを有するコンピュータにおける通信
KR101024549B1 (ko) 로봇 제어기의 조인트 맵핑 시스템
JP2982469B2 (ja) Faコントローラと制御対象とのデータ交換機構

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20211126

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20220826

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20220906

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20221019

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20230308

R150 Certificate of patent or registration of utility model

Ref document number: 7242355

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150