(57)【要約】  モータ駆動システム（１０３）は複数のモータユニット（１０６Ａ）および（１０６Ｂ）を有する。複数のモータユニットの各々は、外部から送信された、モータ駆動システム全体で実現すべき動作を行わせる統一動作コマンドに応じて動作する。モータユニット（１０６Ａ）は、統一動作コマンドを受信する通信回路（１１０Ａ）と、モータ（１１６Ａ）と、統一動作コマンドとモータの回転方向とを対応付けたデータを記憶する記憶装置（１１３Ａ）と、データを参照して、統一動作コマンドに対応付けられた回転方向でモータを回転させるための制御信号を生成する制御回路（１１２Ａ）と、制御信号に基づいてモータに電流を流す駆動回路（１１４Ａ）とを備えている。
2018117220.tif 000002
【特許請求の範囲】
【請求項１】
複数のモータユニットを有するモータ駆動システムであって、
前記複数のモータユニットの各々は、外部から送信された、前記モータ駆動システム全体で実現すべき動作を行わせる統一動作コマンドに応じて動作し、
前記複数のモータユニットの各々は、
前記統一動作コマンドを受信する通信回路と、
モータと、
前記統一動作コマンドと前記モータの回転方向とを対応付けたデータを記憶する記憶装置と、
前記データを参照して、前記統一動作コマンドに対応付けられた回転方向で前記モータを回転させるための制御信号を生成する制御回路と、
前記制御信号に基づいて前記モータに電流を流す駆動回路と
を備えた、モータ駆動システム。
【請求項２】
前記複数のモータユニットは、第１モータユニットおよび第２モータユニットを含み、
前記統一動作コマンドは、前記第１モータユニットのモータを第１方向に回転させ、かつ、前記第２ユニットのモータを、前記第１方向とは反対の第２方向に回転させることによって、前記モータ駆動システム全体で実現すべき動作を示しており、
前記第１モータユニットの記憶装置は、前記回転方向として前記第１方向を示すデータを記憶し、
前記第２モータユニットの記憶装置は、前記回転方向として前記第２方向を示すデータを記憶する、請求項１に記載のモータ駆動システム。
【請求項３】
前記統一動作コマンドは、前記モータ駆動システムが搭載された移動体の前進、後退、右旋回または左旋回の動作を行わせるための１つの指令である、請求項１または２に記載のモータ駆動システム。
【請求項４】
前記統一動作コマンドは、前記モータ駆動システムが搭載されたロボットのアームを所定の位置に移動させるための１つの指令である、請求項１または２に記載のモータ駆動システム。
【請求項５】
前記コマンドは、前記ロボットのアームを上または下に移動させ、または、左または右に移動させるための１つの指令である、請求項４に記載のモータ駆動システム。
【請求項６】
モータ駆動システムにおいて用いられるモータユニットであって、
外部から、前記モータ駆動システム全体で実現すべき動作を行わせる統一動作コマンドを受信する通信回路と、
モータと、
前記統一動作コマンドと前記モータの回転方向とを対応付けたデータを記憶する記憶装置と、
前記データを参照して、前記統一動作コマンドに対応付けられた回転方向で前記モータを回転させるための制御信号を生成する制御回路と、
前記制御信号に基づいて前記モータに電流を流す駆動回路と
を備えた、モータユニット。
【請求項７】
前記通信回路は、自身を宛先として指定したデータフレームであって、前記統一動作コマンドを含むデータフレームを受信する、請求項６に記載のモータユニット。
【請求項８】
前記記憶装置は、前記制御回路に設けられたレジスタである、請求項６または７に記載のモータユニット。
【請求項９】
前記制御回路は前記制御信号としてＰＷＭ信号を生成する、請求項６から８のいずれかに記載のモータユニット。
【請求項１０】
前記駆動回路は前記ＰＷＭ信号に基づく電流を前記モータに流すインバータ回路である、請求項９に記載のモータユニット。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、モータ駆動システムに関する。
【背景技術】
【０００２】
モータは様々な分野で利用されている。近年は、１台の機器に複数台のモータが搭載されることが珍しくない。そのような機器では、複数台のモータが協働して、機器全体で１つの動作を実現することがある。たとえば、複数の車輪の各々にモータが設けられた無人搬送車（「自走ロボット」または「ＡＧＶ」（Automatic (Automated) Guided Vehicle）とも呼ばれる。）は、当該複数の車輪に設けられたモータが同じ回転方向に、同じ速度で回転することにより、真っすぐに前進または後退する。回転方向および／または回転速度が異なると、ＡＧＶは右方向または左方向に旋回する。【０００３】
複数のモータの配置は種々考えられる。たとえば、上述の自走ロボットの２つの後輪には、２つの同一のモータが、それぞれの回転軸を車体外側に向けて配置され得る。他の例として、産業用ロボットの関節には２つの同一のモータが、それぞれの回転軸が対向するよう配置される。対向する２本の回転軸には１本のアームが設けられ、２つのモータによって上下に駆動される。これにより、関節の出力を向上させることができる。【０００４】
上述のような、回転軸が互いに逆の方向を向いている状態で複数のモータを設置した場合には、機器全体を一方向に動作させるには、二つのモータが互いに逆方向に回転するよう制御する必要がある。たとえば上述の自走ロボットを前進させたい場合には、左輪のモータには左回転（たとえば反時計回り（ＣＣＷ）回転）させ、右輪のモータには右回転（たとえば時計回り（ＣＷ）回転）させる必要がある。そのためには、一方のモータの制御の向きを他方に対して反転させる必要がある。【０００５】
従来は、ホストデバイスから一方のモータを制御するために、複数のスイッチング素子または歯車を設けてモータの回転方向（制御方向）を反転させる、または電流の向きを回路上で反転させることによって対応していた。【０００６】
なお、特開２０１４−０２７７２６号公報は、複数のパワー回路を設け、モータに接続されるパワー回路を走行モードに応じて切り替えることにより、走行モードを選択することでモータを制御することを可能にしている。ただし当該特許文献では、車両を前進または後退させるための走行モードは共通であるため、依然として、車両を前進させるか後退させるかに応じてモータの制御の方向を反転させる、または電流の向きを回路上で反転させる必要がある。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２０１４−０２７７２６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
ホストデバイスからのモータを制御するときのモータの制御方向を反転させ、または電流の向きを反転させるためには、開発者が全てのモータの配置を熟知していることを要する。また、機器全体の挙動を指示する際、左右のモータを制御するためには指示信号の内容を変える必要がある。しかしながら、ソフトウェアの観点でモータをＣＷ／ＣＣＷのどちらの向きに回転させると自走ロボットが前進するのかが直感的に分かりにくい。【０００９】
同様に、モータの設置方向を後から変えた場合、ソフトウェア側のコード変更も必要となる。この場合、電流の向きが反転するので左右輪に接続するモータ制御の回路を共通に出来ない場合がある。【００１０】
ソフトウェア開発時の直感的なわかりにくさ、および、独立した回路を設ける必要性により、開発および製造コストが増加し得る。【００１１】
本開示の限定的ではない例示的なある実施形態は、直感的に理解しやすい方法による制御を実現するためのモータ駆動システムを提供する。
【課題を解決するための手段】
【００１２】
本開示のモータ駆動システムは、例示的な実施形態において、複数のモータユニットを有しており、前記複数のモータユニットの各々は、外部から送信された、前記モータ駆動システム全体で実現すべき動作を行わせる統一動作コマンドに応じて動作し、前記複数のモータユニットの各々は、前記統一動作コマンドを受信する通信回路と、モータと、前記統一動作コマンドと前記モータの回転方向とを対応付けたデータを記憶する記憶装置と、前記データを参照して、前記統一動作コマンドに対応付けられた回転方向で前記モータを回転させるための制御信号を生成する制御回路と、前記制御信号に基づいて前記モータに電流を流す駆動回路とを備えている。【００１３】
本開示のモータユニットは、例示的な実施形態において、モータ駆動システムにおいて用いられるモータユニットであって、外部から、前記モータ駆動システム全体で実現すべき動作を行わせる統一動作コマンドを受信する通信回路と、モータと、前記統一動作コマンドと前記モータの回転方向とを対応付けたデータを記憶する記憶装置と、前記データを参照して、前記統一動作コマンドに対応付けられた回転方向で前記モータを回転させるための制御信号を生成する制御回路と、前記制御信号に基づいて前記モータに電流を流す駆動回路とを備えている。
【発明の効果】
【００１４】
本発明の例示的な実施形態によれば、モータ駆動システム内の複数のモータユニットの各々は統一動作コマンドに応じて動作する。各モータユニットは、統一動作コマンドとモータの回転方向とを対応付けたデータを記憶装置に記憶している。開発者はモータの設置方向を意識することなく、アプリケーションからモータへの指示を直感的に記述できる。各モータへ別個の指示を生成する必要がないため、モータの動作を簡便に制御することが可能になる。
【図面の簡単な説明】
【００１５】
【図１Ａ】図１Ａは、有線のシリアル通信で利用されるデータフレーム１ａの構造を示す図である。
【図１Ｂ】図１Ｂは、無線通信で利用されるデータフレーム１ｂの構造を示す図である。
【図２】図２は、共通データ構造１２を示す図である。
【図３Ａ】図３Ａは、例示的な実施形態にかかるモータ駆動システムの処理の概要を説明する図である。
【図３Ｂ】図３Ｂは、例示的な実施形態にかかるモータ駆動システムの処理の概要を説明する図である。
【図４】図４は、自走ロボット１００の外観を示す図である。
【図５】図５は、自走ロボット１００の、特にモータ駆動システム１０３のハードウェア構造を示す図である。
【図６】図６は、モータユニット１０６Ａおよび１０６Ｂにおいてそれぞれ行われる処理の手順を示すフローチャートである。
【図７】図７は、溶接ロボット２００の構成を示す図である。
【図８】図８は、第３関節駆動システム２１０Ｃの具体的な構造を示す図である。
【発明を実施するための形態】
【００１６】
本開示によるモータ駆動システムは、上位装置、他のモータ駆動システム、同じ機器内の他のモータ駆動システムまたはモータユニット等の外部から送信されたコマンドを受信して動作する。
【００１７】
以下では、添付の図面を参照しながら、まず、外部の機器とモータ駆動システムとの間で送受信される際の通信プロトコルを説明する。その後、モータ駆動システムの構成および動作を説明する。
【００１８】
図１Ａは、有線のシリアル通信で利用されるデータフレーム１ａの構造を示す。シリアル通信の一例はＲＳ−４８５規格の通信を想定している。ＲＳ−４８５規格はＯＳＩ参照モデルでいう物理層の電気的仕様を策定する。
【００１９】
データフレーム１ａは各種のデータを包含している。参考のため、図１Ａの最上段にはＯＳＩ参照モデルの層ごとの区分を示す。また図１Ａの最下段には、各データのデータサイズをバイト単位で表記している。図１Ａの最左欄は凡例である。後述する図１Ｂおよび図２でも同様である。
【００２０】
データフレーム１ａは、たとえば、送信先デバイスＩＤ１０と、送信元デバイスＩＤ１１と、共通データ構造１２とを含む。送信先デバイスＩＤ１０は、送信先のデバイスを識別する識別子である。送信元デバイスＩＤ１１は、送信元のデバイスを識別する識別子である。送信元のデバイスは、上位装置以外にも、他のモータ駆動システムであり得る。識別子は、たとえば製造時に重複することなく機器ごとに付与されたＩＤ（デバイス識別子またはデバイスＩＤ）、ＩＰアドレスである。デバイスＩＤまたはＩＰアドレスは、通信ネットワーク内でモータユニットを一意に示す識別子である。共通データ構造１２は、後述する１または２のコマンドを含むデータ構造である。
【００２１】
これまで、モータを制御するためには、制御対象であるモータを識別する送信先のデバイスＩＤのみが存在していれば十分であった。その理由は、ホストデバイスにあたる、コマンドを送信する装置と、スレーブにあたる、コマンドを受信する装置とが一意に決まっていたからである。なお、モータユニットが複数存在するシステムでは、ホストデバイスに相当する装置は複数存在し、または異なる装置に切り替わるため、コマンドを送信する装置が一意に決まらないことがある。
【００２２】
本発明者は、これまで考えられていなかった、複数台のモータが互いに通信し、全体として協働的に動作するモータ駆動システムの構築を検討した。そして、そのためには新たな通信プロトコルが必要であると考え、新たに、送信元デバイスＩＤ１１、および、共通データ構造１２を策定した。
【００２３】
図１Ｂは、無線通信で利用されるデータフレーム１ｂの構造を示す。無線通信の一例はＷｉ−Ｆｉ（登録商標。以下同じ）規格の通信を想定している。Ｗｉ−Ｆｉ規格はＯＳＩ参照モデルでいう物理層およびデータリンク層の仕様を策定する。
【００２４】
データフレーム１ｂは、ＯＳＩ参照モデルの各層のヘッダを複数含んでいる。もともと、ＩＰヘッダには宛先ＩＰアドレス２０と送信元ＩＰアドレス２１とを格納することになっている。本発明者は、送信元ＩＰアドレス２１を、上述の送信元デバイスＩＤ１１に相当する識別子として利用することができると考えた。そこで、Ｗｉ−Ｆｉ規格の共通データ構造１２を利用して行われる通信プロトコルでは、当該送信元ＩＰアドレス２１を活用することとした。
【００２５】
なお、上述した有線通信および無線通信は一例である。他の任意の通信プロトコルを利用することができる。本発明者は、モータ制御のためにモータ間通信を行う通信システムにおいて、送信元を一意に示す識別子を利用することとした。そのため、モータ間通信を行う通信システムにおいて、ヘッダ等に送信元を一意に示す識別子が含まれていれば本開示は適用可能である。すなわち、既存の通信プロトコルであっても、送信元を示す識別子が含まれていれば、送信元デバイスＩＤ１１に相当する識別子としてモータ間通信に利用することができる。
【００２６】
図２は、共通データ構造１２を示す。
【００２７】
共通データ構造１２は、データ長フィールド１２ａと、動作系コマンドフィールド１２ｂと、属性系コマンドフィールド１２ｃと、データフィールド１２ｄとを有する。
【００２８】
データ長フィールド１２ａは、共通データ構造１２の総バイト数を示す。
【００２９】
動作系コマンドフィールド１２ｂは、例えばモータを動作させるための動作系コマンドを示す。動作系コマンドは、当該動作系コマンドに対応する数値（２進数表記）で記述される。動作系コマンドの一例は、ライトデータ（Write Data）、リードデータ（Read Data）、実行（Execution）、および接続（Connect）である。ライトデータ、リードデータ等は、モータの動作に関連してモータユニットが行う動作である。つまり、動作系コマンドは、モータユニットが行うべき動作を指定する、他のモータユニットからの要求または他のモータユニットへの要求であると言うことができる。
【００３０】
属性系コマンドフィールド１２ｃは、モータに関する属性を指定する属性系コマンドを示す。属性系コマンドもまた、当該コマンド対応する数値（２進数表記）で記述される。属性系コマンドの一例は、現在の角度（Present Angle）、ターゲット角度（Target Angle）、角度制限（Angle Limit）およびシリアル番号（Serial Number）である。属性系コマンドは、動作系コマンドとともに指定される、モータに関する静的または動的な属性であると言うことができる。
【００３１】
データフィールド１２ｄは、属性系コマンドフィールド１２ｃに対するデータが記述される。データの一例は、角度設定値、回転速度設定値、シリアル番号値である。
【００３２】
上述した共通データ構造は、たとえば３バイトから１３バイトまでの範囲内に収まる、比較的短いデータ長を有する。他の通信プロトコルであるＥｔｈｅｒＣＡＴは３２バイトの大きさであるため、通信時の混在解消および回線の占有を抑制できる。さらに、動作系コマンドと属性系コマンドとを分けて規定したため、利用者（プログラム者）にとって理解しやすい。
【００３３】
なお、動作系コマンドフィールド１２ｂおよび属性系コマンドフィールド１２ｃにどのようなコマンドが格納されるかについては、後の実施形態とともに説明する。
【００３４】
次に、モータ駆動システムの例示的な実施形態を説明する。
【００３５】
図３Ａおよび図３Ｂは、本実施形態にかかるモータ駆動システムの処理の概要を説明する図である。
【００３６】
モータ駆動システム全体で実現すべき動作、換言すれば、複数台のモータが協働して、機器全体で統一された１つの動作を実現する例として、自走ロボットが前進する例を説明する。当該動作を実現するために、モータ駆動システムには１つの内容を示す「コマンド」が送信される。当該コマンドを、本明細書では「統一動作コマンド」と呼ぶことがある。
【００３７】
背景技術の説明において、自走ロボットを前進させたい場合には、左側のモータには左回転（たとえばＣＣＷ回転）させ、右側のモータには右回転（たとえばＣＷ回転）させる必要がある、と説明した。本明細書では、回転方向は負荷側からモータを見たときの回転方向を言うとする。モータを制御するとき、ホストデバイスは、一方のモータの制御を他方のモータの制御に対して反転させ、または電流の向きを反転させる必要がある。
【００３８】
本実施形態では、制御方向の反転や電流方向を対向させることなく直感的に一意の方向にモータの制御を行えるようにすることで、動作指示する側の処理を簡便にする。
【００３９】
例えば、図３Ａのような、モータ回転軸が外向きに設けられたモータ駆動システムを考える。「自走ロボットを前進させる」ためには、左側モータにＣＣＷの回転、右側モータにＣＷの回転を要求する。
【００４０】
本実施形態によれば、アプリケーションからの指示は１つのコマンドで完了させることができる。具体的には、アプリケーションから各モータに「Direction Settingコマンド」を送信すればよい。
【００４１】
当該コマンドを受信すると、右側モータおよび左側モータは、それぞれ１つのコマンドを異なる回転指示として解釈する。すなわち、「Direction Settingコマンド」を、右側モータはＣＷ回転のコマンドとして解釈し、左側モータはＣＣＷ回転のコマンドとして解釈する。
【００４２】
そのために下記表１に示す規則を、右側モータおよび左側モータにそれぞれ設定しておく。
【００４３】
【表１】
2018117220.tif 000003
【００４４】
これにより、左側および右側の各モータに対して当該コマンドを指示すれば、自走ロボットを前進させることが出来る。アプリケーション作成者はシステム全体が実現したい運動方向（符号）だけ思い浮かべ、モータへの指示には同じ符号で当該コマンドを指定すればよく、指示信号の内容を変えてコマンドを発行するようプログラミングする必要はなくなり、直感的な開発が可能である。
【００４５】
他の例として、図３Ｂのような、モータ回転軸が内向きに設けられたモータ駆動システムを考える。モータ駆動システムの構成を図３Ｂのように変更した場合には、表２に示す規則を、右側モータおよび左側モータにそれぞれ設定しておけばよい。
【００４６】
【表２】
2018117220.tif 000004
【００４７】
すると、同じ「Direction Settingコマンド」を受信した場合でも、左側モータおよび右側モータはそれぞれ図３Ａの例とは異なる動作を行う。なお、右側モータおよび左側モータが、１つのコマンドを異なる回転指示として解釈することについては、図３Ａの例と同じである。
【００４８】
あるコマンドを受信したときの動作を各モータに設定しておくことにより、統一動作コマンドを指示するだけで、複数のモータの各々を異なる方向に回転させ、または停止させることができる。前進以外にも、たとえば後退、左旋回、右旋回等の動作を行わせることができる。後退であれば、表１または表２に示す規則の右側モータおよび左側モータの設定を逆にすればよい。また、左旋回であれば、図３Ａのモータ駆動システムでは、表３に示す規則を、右側モータおよび左側モータにそれぞれ設定しておけばよい。
【００４９】
【表３】
2018117220.tif 000005
【００５０】
回転方向の指定は、ＣＷまたはＣＣＷに限られない。本明細書では、「Direction Settingコマンド」に対応付けられた回転方向が「０」の場合、つまり回転しない場合も指定することができる。回転しない場合の指定方法については後述する。表４は、左旋回の例として、左側モータの回転が「０」の例を示している。
【００５１】
【表４】
2018117220.tif 000006
【００５２】
以下、上述の動作を実現するための構成を詳細に説明する。
【００５３】
図４は、自走ロボット１００の外観を示す。自走ロボット１００は、図４の矢印で示す方向を前進方向として走行する。
【００５４】
自走ロボット１００は、搬送テーブル１０１と、システムコントローラ１０２と、モータ駆動システム１０３と、左輪１０４Ａおよび右輪１０４Ｂとを有する。搬送テーブル１０１は運搬物を載置するテーブルである。システムコントローラ１０２は、自走ロボット１００の全体を制御する信号処理プロセッサ（ＣＰＵ）である。システムコントローラ１０２は、たとえば電源投入時の自走ロボット１００の初期化処理を行う。
【００５５】
モータ駆動システム１０３は、左輪１０４Ａおよび右輪１０４Ｂをそれぞれ駆動する２つのモータユニットを含む。本実施形態では、モータ駆動システム１０３の各モータユニットは、独立して上位装置１５０からのコマンドを受信する通信回路（後述）を備えている。ただし、本実施形態では少なくとも１つの通信回路が存在していればよい。通信回路は、上位装置１５０からのコマンドを各モータユニットに分配することができればよい。
【００５６】
図５は、自走ロボット１００の、特にモータ駆動システム１０３のハードウェア構造を示す。参考のため、自走ロボット１００を構成しない上位装置１５０を破線で示す。
【００５７】
モータ駆動システム１０３は、左輪モータユニット１０６Ａおよび右輪モータユニット１０６Ｂを有している。左輪モータユニット１０６Ａは、通信回路１１０Ａと、プロセッサ１１２Ａと、モータ駆動回路１１４Ａと、モータ１１６Ａとを有する。右輪モータユニット１０６Ｂは、通信回路１１０Ｂと、プロセッサ１１２Ｂと、モータ駆動回路１１４Ｂと、モータ１１６Ｂとを有する。図５に示す構成は、図３Ａの構成に対応していることが理解される。以下では、左輪モータユニット１０６Ａおよび右輪モータユニット１０６Ｂをまとめて、「モータユニット１０６Ａおよび１０６Ｂ」と記述することがある。モータユニット１０６Ａおよび１０６Ｂは、インテリジェントモータ（登録商標）と呼ばれることがある。
【００５８】
通信回路１１０Ａおよび１１０Ｂはそれぞれバッファ１１１Ａおよび１１１Ｂを有している。バッファ１１１Ａおよび１１１Ｂには、予め、モータユニット１０６Ａおよび１０６Ｂをそれぞれ識別するための識別子が格納されている。当該識別子は、通信可能な範囲の通信ネットワーク内で一意に識別可能な文字および／または数字であればよく、たとえばＩＰアドレス、デバイスごとに重複なく付与されたＩＤ（デバイスＩＤ）であり得る。
【００５９】
データフレームを受信したとき、通信回路１１０Ａおよび１１０Ｂは、それぞれ、物理層、データリンク層の処理を行い、データフレームの送信先デバイスＩＤ１０（図１Ａ）がバッファ１１１Ａおよび１１１Ｂに格納されている識別子と自身の識別子と一致するか否かを判定する。一致する場合には、通信回路１１０Ａおよび１１０Ｂは当該データフレームの処理を続行し、一致しない場合には当該データフレームを破棄する。
【００６０】
Ｗｉ−Ｆｉ規格による無線通信が行われる場合には、上述の自身の識別子としてＩＰアドレスを採用し得る。通信回路１１０Ａおよび１１０Ｂは、データフレームの宛先ＩＰアドレス２０（図１Ｂ）が自信のＩＰアドレスと一致するか否かを判定する。その後の処理は上述の処理と同じである。
【００６１】
データフレームの処理を続行する場合には、通信回路１１０Ａおよび１１０Ｂは、データフレームに、さらにＯＳＩ参照モデルにおけるＩＰ層、トランスポート層等毎の処理を順次行い、共通データ構造１２を抽出する。上述のように共通データ構造１２には動作系コマンド１２ｂ等が含まれている。通信回路１１０Ａおよび１１０Ｂは、それぞれ、コマンドを抽出し、プロセッサ１１２Ａおよび１１２Ｂに送信する。
【００６２】
プロセッサ１１２Ａおよび１１２Ｂはいずれも、半導体が集積された信号処理プロセッサである。プロセッサは「信号処理回路」または「制御回路」とも呼ばれる。プロセッサ１１２Ａおよび１１２Ｂは、それぞれ、演算処理に利用するデータを記憶するレジスタ１１３Ａおよび１１３Ｂを有している。
【００６３】
本実施形態では、レジスタ１１３Ａおよび１１３Ｂには、それぞれ表１に示す規則が保持されている。具体的には、レジスタ１１３Ａには、「Direction Settingコマンド」に対応するデータである「ＣＣＷ」が書き込まれている。同様に、レジスタ１１３Ｂには、「Direction Settingコマンド」に対応するデータを保持するデータである「ＣＷ」が書き込まれている。なお、「ＣＷ」および「ＣＣＷ」は理解の便宜のための表現形式である。これらは、それぞれ、たとえば「０」および「１」であってもよいし、他の値であってもよい。
【００６４】
以下では、「Direction Settingコマンド」に対応するデータを、「回転方向設定データ」と記述する。上位装置１５０から「Direction Settingコマンド」を受け取り、モータユニット１０６Ａおよび１０６Ｂが動作するためには、予め回転方向設定データがレジスタ１１３Ａおよび１１３Ｂに記憶されていることを要する。回転方向設定データを書き込むための処理は後述する。
【００６５】
プロセッサ１１２Ａおよび１１２Ｂは、それぞれ、「Direction Settingコマンド」対応するデータをレジスタ１１３Ａおよび１１３Ｂから読み出し、指定された回転方向でモータ１１６Ａおよび１１６Ｂを回転させるための信号を生成する。当該信号は、たとえばＰＷＭ（Pulse Width Modulation）信号である。
【００６６】
モータ駆動回路１１４Ａおよび１１４Ｂは、たとえばインバータ回路であり、それぞれ、ＰＷＭ信号に応じた大きさおよび方向で電流をモータ１１６Ａおよび１１６Ｂに流す。これにより、モータ１１６Ａは反時計周りに回転し、モータ１１６Ｂは時計回りに回転する。
【００６７】
なお、コマンドには、モータ１１６Ａおよび１１６Ｂを回転させる速度および時間等が、属性系コマンド１２ｃおよびデータ１２ｄ（図２）を利用して指定され得る。この時、回転速度を０とすれば、モータ１１６Ａおよび１１６Ｂが回転しない場合を指定することもできる。表４に記載のように、回転方向を０とすることにより、モータ１１６Ａおよび１１６Ｂが回転しないことを指定することもできる。プロセッサ１１２Ａおよび１１２Ｂは、指定された回転速度および回転時間でモータ１１６Ａおよび１１６Ｂが回転するよう、ＰＷＭ信号を生成すればよい。
【００６８】
図６は、モータユニット１０６Ａおよび１０６Ｂにおいてそれぞれ行われる処理の手順を示すフローチャートである。例としてモータユニット１０６Ａの処理を説明する。
【００６９】
ステップＳ１において、通信回路１１０Ａは、送信先デバイスＩＤ１０または宛先ＩＰアドレス２０を参照して、自身宛てのデータフレームを受信する。
【００７０】
ステップＳ２において、プロセッサ１１２Ａは、レジスタ１１３Ａを参照して、回転方向設定データを読み出す。
【００７１】
ステップＳ３において、プロセッサ１１２Ａは、回転方向設定データによって指定される回転方向でモータを回転させるためのＰＷＭ信号を生成する。
【００７２】
ステップＳ４において、プロセッサ１１２Ａは、ＰＷＭ信号をモータ駆動回路１１４Ａに送信してモータ１１６Ａを回転させる。
【００７３】
モータユニット１０６Ｂについても同様の処理が行われる。ただし、モータユニット１０６Ｂの場合には、ステップＳ２において参照される回転方向設定データが、モータユニット１０６Ａに保持されている回転方向設定データの値と異なっている。その結果、生成されるＰＷＭ信号も相違することになり、モータ１１６Ｂはモータ１１６Ａとは逆方向に回転する。統一動作コマンドとして１つの同じコマンドを受信した場合、モータユニット１０６Ａとモータユニット１０６Ｂとでは、モータ１１６Ａおよび１１６Ｂはそれぞれ逆方向に回転する動作が実現される。
【００７４】
上述の説明では、バッファ１１１Ａおよび１１１Ｂ、および、レジスタ１１３Ａおよび１１３Ｂを例示したが、これらは記憶装置の一例である。ＲＡＭ（Random Access Memory）、ＲＯＭ（Read-only Memory）、ＥＥＰＲＯＭ（Electrically Erasable Programmable Read-Only Memory）等の他の記憶装置を用いてもよい。
【００７５】
なお、上位装置１５０は、送信先アドレスまたは宛先ＩＰアドレスだけをモータユニットごとに変更したデータフレームを複数個送信すればよい。または、たとえばＩＰマルチキャストを利用する場合には、送信先アドレスとしてマルチキャストグループを示すＩＰアドレスを指定して、データフレームを１回だけ送信してもよい。各モータユニットは予め自らが属するマルチキャストグループのＩＰアドレスを通信回路のバッファに保持しておけば、上述した処理と同じ処理により、自身宛てのデータフレームか否かを判定することができる。後者の例によれば、上位装置１５０はデータフレームを１回送信すればよいため、上位装置１５０の負荷を低減できるだけでなく、通信回線上を流れるデータ量を抑制することができる。
【００７６】
次に、回転方向設定データを書き込む処理を説明する。
【００７７】
上位装置１５０は、モータ１１６Ａおよび１１６Ｂを動作させる前の所定のタイミングで、回転方向設定データを書き込ませるためのデータフレームを、左輪モータユニット１０６Ａおよび右輪モータユニット１０６Ｂに送信する。所定のタイミングとは、たとえば自走ロボット１００が起動し、上位装置１５０と左輪モータユニット１０６Ａおよび右輪モータユニット１０６Ｂとの間で、それぞれ通信が確立されたタイミングである。
【００７８】
回転方向設定データを書き込ませるためのデータフレームの送信先デバイスＩＤ１０または宛先ＩＰアドレスには、書き込み対象となるモータユニットを識別する識別子として、当該モータユニットのデバイスＩＤまたはＩＰアドレスが指定される。
【００７９】
共通データ構造１２の動作系コマンド１２ｂには、書き込みであることを示すライトデータ（Write Data）が指定される。属性系コマンドフィールド１２ｃには、統一動作コマンドであることを示す、"Direction Setting"が指定される。さらにデータフィールド１２ｄには、回転方向として「ＣＷ」または「ＣＣＷ」が指定される。図５の例では、データフィールド１２ｄには、左輪モータユニット１０６Ａについては「ＣＣＷ」が指定され、右輪モータユニット１０６Ｂについては「ＣＷ」が指定される。
【００８０】
以上のようにして生成されたデータフレームを受け取ると、プロセッサ１１２Ａおよび１１２Ｂは、それぞれ、レジスタ１１３Ａおよびレジスタ１１３Ｂに、回転方向設定データを別個に書き込むことができる。これにより、以後、上位装置１０５から統一動作コマンドを受け取ると、異なる回転方向でモータ１１６Ａおよび１１６Ｂを回転させることが可能になる。
【００８１】
上述の例では、送信先デバイスＩＤ１０または宛先ＩＰアドレス２０は、モータユニット１０６Ａおよび１０６Ｂの識別子であると説明した。しかしながら、モータユニット１０６Ａおよび１０６Ｂの主要な機能部品はモータ１１６Ａおよび１１６Ｂであるため、当該識別子はモータの識別子と呼ぶこともできる。
【００８２】
次に、統一動作コマンドによって異なる回転方向で動作する他の例を説明する。
【００８３】
図７は、溶接ロボット２００の構成を示す。溶接ロボット２００は、システムコントローラ１０２と、第１関節駆動システム２１０Ａと、第２関節駆動システム２１０Ｂと、第３関節駆動システム２１０Ｃと、溶接トーチ２３０とを備えている。隣接する２つの関節駆動システム同士はアームによって接続されている。なお、アーム２１９の端部に設けられた第３関節駆動システム２１０Ｃはアーム２２０をモータの回転軸を中心に回転させることにより、アーム２２０を上下させてアーム２２０先端に設けられた溶接トーチ２３０の位置を調整する。なおモータの回転軸をどのように配置するかによって、アーム２２０を上下から左右に変更することもできる。
【００８４】
溶接ロボット２００は、モータによって回転可能な複数の関節を有しており、各関節の動きは第１〜第３関節駆動システム２１０Ａ〜２１０Ｃによって別個独立に制御される。
【００８５】
第１〜第３関節駆動システム２１０Ａ〜２１０Ｃの各々は、システムコントローラ１０２から送信される駆動信号、および／または、上位装置１０５から個々の各関節駆動システムに送信されたデータフレームを利用して動作する。ここでは、後者の例のうち、特に第３関節駆動システム２１０Ｃに関して説明する。
【００８６】
図８は、第３関節駆動システム２１０Ｃの具体的な構造を示す。図５に示す構成と実質的に同じ構成には同じ参照符号を付している。
【００８７】
第３関節駆動システム２１０Ｃの構成は、モータ１１６Ａの回転軸とモータ１１６Ｂの回転軸とが対向していること、つまりアーム２２０側に向いていること、を除いては、図５に示す構成と同じである。図８に示す構成は、図３Ｂの構成に対応していることが理解される。
【００８８】
したがってこれ以上の詳細な説明は省略する。なお、図７においても、システムコントローラ１０２、第１関節駆動システム２１０Ａ、第２関節駆動システム２１０Ｂおよび第３関節駆動システム２１０Ｃの各々を、モータ駆動システムと呼ぶことができる。
【００８９】
上述のいずれの例も、２台のモータが、回転軸が概ね一致するよう、対で配置されていた。その他の例を列挙すると、調理用攪拌機、船体スクリュー、掃除用ロボットの集塵ブラシ、野菜収穫用のピックアップアーム、ベルトコンベア、マッサージ機、ユーフォ―キャッチャーが挙げられる。これらにも同様に本開示のモータ駆動システムを採用することができる。
【００９０】
一方、回転軸は一致しないが、一つの統一動作を誘起するために互いに逆回転するモータ群が用いられる場合がある。たとえば、２枚の扉またはカーテンが対称的に移動して開閉する、自動ドアまたはカーテンの自動開閉機構である。このような場合でも、各モータは同時に反対方向に回転する。よって、本開示によるモータ駆動システムを導入することが可能である。
【００９１】
なお、考え得る「統一動作」の例は、前進／後退、上昇／下降、左折／右折、左旋回／右旋回、開／閉である。
【００９２】
なお、上述の例は本開示によるモータ駆動システムを制限するものではない。
【産業上の利用可能性】
【００９３】
本開示によるモータ駆動システムは、複数のモータユニットを有するモータ駆動システムにおける各モータの制御に広く用いられ得る。
【符号の説明】
【００９４】
１００  自走ロボット
１０３  モータ駆動システム
１０４Ａ  左輪
１０６Ａ  左輪モータユニット
１１０Ａ  通信回路
１１１Ａ  バッファ
１１２Ａ  プロセッサ（制御回路）
１１３Ａ  レジスタ
１１４Ａ  モータ駆動回路
１１６Ａ  モータ
１０４Ｂ  右輪
１０６Ｂ  右輪モータユニット
１１０Ｂ  通信回路
１１１Ｂ  バッファ
１１２Ｂ  プロセッサ（制御回路）
１１３Ｂ  レジスタ
１１４Ｂ  モータ駆動回路
１１６Ｂ  モータ
１５０  上位装置
【図１Ａ】
2018117220.tif 000007
【図１Ｂ】
2018117220.tif 000008
【図２】
2018117220.tif 000009
【図３Ａ】
2018117220.tif 000010
【図３Ｂ】
2018117220.tif 000011
【図４】
2018117220.tif 000012
【図５】
2018117220.tif 000013
【図６】
2018117220.tif 000014
【図７】
2018117220.tif 000015
【図８】
2018117220.tif 000016
【国際調査報告】
2018117220.tif 000017
2018117220.tif 000018
2018117220.tif 000019
2018117220.tif 000020