(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-03-13
(45)【発行日】2023-03-22
(54)【発明の名称】モータユニットおよびマルチモータシステム
(51)【国際特許分類】
H04L 61/5007 20220101AFI20230314BHJP
H04L 61/09 20220101ALI20230314BHJP
H04L 12/28 20060101ALI20230314BHJP
【FI】
H04L61/5007
H04L61/09
H04L12/28 100F
(21)【出願番号】P 2022066961
(22)【出願日】2022-04-14
(62)【分割の表示】P 2018558069の分割
【原出願日】2017-12-21
【審査請求日】2022-04-19
(31)【優先権主張番号】P 2016250021
(32)【優先日】2016-12-22
(33)【優先権主張国・地域又は機関】JP
(73)【特許権者】
【識別番号】000232302
【氏名又は名称】日本電産株式会社
(74)【代理人】
【識別番号】100101683
【氏名又は名称】奥田 誠司
(74)【代理人】
【識別番号】100155000
【氏名又は名称】喜多 修市
(74)【代理人】
【識別番号】100188813
【氏名又は名称】川喜田 徹
(74)【代理人】
【識別番号】100202197
【氏名又は名称】村瀬 成康
(72)【発明者】
【氏名】佐藤 元樹
(72)【発明者】
【氏名】田渕 哲哉
【審査官】宮島 郁美
(56)【参考文献】
【文献】特表2013-536090(JP,A)
【文献】米国特許出願公開第2013/0103196(US,A1)
【文献】中国特許出願公開第103079657(CN,A)
【文献】特開2001-310281(JP,A)
【文献】特開2002-247671(JP,A)
【文献】特開平11-282540(JP,A)
【文献】国際公開第2016/001211(WO,A1)
【文献】米国特許出願公開第2017/0153620(US,A1)
【文献】中国特許出願公開第106489262(CN,A)
【文献】特表2010-511964(JP,A)
【文献】米国特許出願公開第2008/0133687(US,A1)
【文献】中国特許出願公開第101542445(CN,A)
【文献】特表2011-507003(JP,A)
【文献】米国特許出願公開第2010/0252517(US,A1)
【文献】中国特許出願公開第101802893(CN,A)
【文献】欧州特許出願公開第01626532(EP,A2)
【文献】中国特許出願公開第103019156(CN,A)
(58)【調査した分野】(Int.Cl.,DB名)
H04L12/00-13/18,41/00-49/9057,61/00-65/80,69/00-69/40
(57)【特許請求の範囲】
【請求項1】
通信ネットワークを介して複数のモータユニットが相互に直接的に通信を行うマルチモータシステムで利用されるモータユニットであって、
モータと、
前記モータを回転させるための制御信号を生成する制御回路と、
前記制御信号に基づいて前記モータに電流を流すモータ駆動回路と、
前記通信ネットワーク内で、自身であるモータユニットを一意に識別する第1識別子、および、前記複数のモータユニットの各々を一意に識別する第2識別子を記憶した記憶装置と、
前記マルチモータシステムの他のモータユニットとの間でデータフレームの送信および受信を行う通信回路と
を備え、
前記通信回路は、
送信元である自身を示す前記第1識別子、送信先の前記他のモータユニットを一意に識別する前記第2識別子、および、前記他のモータユニットが行う動作に関する要求を前記データフレームに格納して、前記データフレームを前記他のモータユニットに直接送信し、
送信元である前記他のモータユニットの第2識別子、送信先である自身のモータユニットの前記第1識別子、および、自身が行うべき動作に関する要求を含む前記データフレームを前記他のモータユニットから直接受信し、かつ、前記他のモータユニットからの要求への応答として、送信先を示す前記第2識別子を付加し、かつ、送信元を示す前記第1識別子を付加したデータフレームを前記他のモータユニットに直接送信する、モータユニット。
【請求項2】
通信ネットワークを介して複数のモータユニットが相互に直接的に通信を行うマルチモータシステムで利用されるモータユニットであって、
モータと、
前記モータを回転させるための制御信号を生成する制御回路と、
前記制御信号に基づいて前記モータに電流を流すモータ駆動回路と、
前記通信ネットワーク内で自身であるモータユニットを一意に識別する第1識別子、および、前記複数のモータユニットの各々を一意に識別する第2識別子を記憶した記憶装置と、
前記マルチモータシステムの他のモータユニットにデータフレームを直接送信する通信回路であって、送信元である自身を示す前記第1識別子、送信先の前記他のモータユニットを一意に識別する前記第2識別子、および、前記他のモータユニットが行う動作に関する要求を前記データフレームに格納して、前記データフレームを前記他のモータユニットに直接送信する通信回路と
を備えたモータユニット。
【請求項3】
通信ネットワークを介して複数のモータユニットが相互に直接的に通信を行うマルチモータシステムで利用されるモータユニットであって、
モータと、
前記モータを回転させるための制御信号を生成する制御回路と、
前記制御信号に基づいて前記モータに電流を流すモータ駆動回路と、
前記通信ネットワーク内で自身であるモータユニットを一意に識別する第1識別子、および、前記複数のモータユニットの各々を一意に識別する第2識別子を記憶した記憶装置と、
通信回路と
を備え、
前記通信回路は、
前記マルチモータシステムの他のモータユニットからデータフレームを受信する通信回路であって、送信元である前記他のモータユニットの第2識別子、送信先である自身のモータユニットの前記第1識別子、および、自身が行うべき動作に関する要求を含む前記データフレームを前記他のモータユニットから直接受信し、かつ、
前記他のモータユニットからの前記要求への応答として、送信先を示す前記第2識別子、および、送信元を示す前記第1識別子を含むデータフレームを前記他のモータユニットに直接送信する、モータユニット。
【請求項4】
前記データフレームは、前記他のモータユニットに行わせる動作に関する要求である動作系コマンドを含む、請求項1または2に記載のモータユニット。
【請求項5】
前記データフレームは、前記他のモータユニットが有するモータに関する静的または動的な属性を示す属性系コマンドをさらに含む、請求項4に記載のモータユニット。
【請求項6】
前記動作系コマンドは、前記属性系コマンドによって指定された属性を読み出すまたは書き込む要求である、請求項5に記載のモータユニット。
【請求項7】
前記属性系コマンドは、前記他のモータユニットが有するモータに関する角度の属性を示す、請求項6に記載のモータユニット。
【請求項8】
前記角度はターゲット角度であり、
前記データフレームは、前記ターゲット角度に関する角度設定値をさらに含む、請求項7に記載のモータユニット。
【請求項9】
前記データフレームは、自身であるモータユニットが行う動作に関する要求である動作系コマンドを含む、請求項1または3に記載のモータユニット。
【請求項10】
前記データフレームは、前記モータに関する静的または動的な属性を示す属性系コマンドをさらに含む、請求項9に記載のモータユニット。
【請求項11】
前記動作系コマンドは、前記属性系コマンドによって指定された属性を読み出すまたは書き込む要求である、請求項10に記載のモータユニット。
【請求項12】
前記属性系コマンドは、前記モータに関する角度の属性を示す、請求項11に記載のモータユニット。
【請求項13】
前記角度はターゲット角度であり、
前記データフレームは、前記ターゲット角度に関する角度設定値をさらに含む、請求項12に記載のモータユニット。
【請求項14】
前記第1識別子および前記第2識別子は、前記複数のモータユニットである各機器のデバイス識別子である、請求項1から13のいずれかに記載のモータユニット。
【請求項15】
前記デバイス識別子はMACアドレスである、請求項14に記載のモータユニット。
【請求項16】
前記第1識別子および前記第2識別子は、前記複数のモータユニットである各機器のIPアドレスである、請求項1から13のいずれかに記載のモータユニット。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、モータユニットおよびマルチモータシステムに関する。
【背景技術】
【0002】
モータおよび通信回路を有する多数のモータユニットがネットワーク化された、マルチモータシステムが存在する。各モータユニットには、当該ネットワーク内で一意に各モータユニットを識別可能なID情報が予め付与されている。
【0003】
このようなマルチモータシステムにはホスト端末が存在し、ID情報を利用してホスト端末とモータユニットとの間で通信が行われる。ホスト端末からあるモータユニットにリクエストが送信される場合、ホスト端末は、リクエストに送信先のモータユニットを特定するID情報のみを付与して送信する。リクエストを受信したモータユニットは、リクエストに対する応答に、送信元を示す自身のID情報のみを付与してホスト端末に送信する。
【0004】
たとえばホスト端末が、モータユニットAの現在の回転速度を知りたい場合、ホスト端末はモータユニットAに、「送信先ID情報(モータユニットA)+現在の回転速度のリクエスト」を送信する。一方、モータユニットAはホスト端末に、「送信元ID情報(モータユニットA)+現在の回転速度の情報」を送信する。
【0005】
上述のマルチモータシステムでは、各モータユニットにとっては、リクエストの送信元、および、リクエストに対する応答の送信先は常にホスト端末である。よって、ホスト端末は送信元である自らのID情報をリクエストに付与する必要はないし、各モータユニットは送信先としてホスト端末のID情報を付与する必要はない。
【0006】
たとえば特開2014-11689号公報では、部品実装機に設けられた制御部がホスト端末として機能する。制御部は、複数の中継局を介して複数の個別機器の各々にコマンドを送信し、各個別機器から受信した通信データの個別フレームに書き込まれた情報の処理を行う。
【先行技術文献】
【特許文献】
【0007】
【発明の概要】
【発明が解決しようとする課題】
【0008】
ホスト端末を介さず、モータユニット間で通信を行うマルチモータシステムが考えられる。そのようなマルチモータシステムにおいてモータユニット間通信を行うためには、送信時に送信先ID情報だけをリクエストに付与するだけでは不十分である。応答を送信するモータユニットは、どのモータユニットに送信すればよいかが不明だからである。
【0009】
モータユニット間で通信を行うために好適なマルチモータシステムおよび当該マルチモータシステムで利用されるモータユニットが必要とされている。
【課題を解決するための手段】
【0010】
本開示による、あるモータユニットは、通信ネットワークを介して複数のモータユニットが通信を行うマルチモータシステムで利用されるモータユニットであって、モータと、前記モータを回転させるための制御信号を生成する制御回路と、前記制御信号に基づいて前記モータに電流を流すモータ駆動回路と、前記通信ネットワーク内で、自身であるモータユニットを一意に識別する第1識別子、および、前記複数のモータユニットの各々を一意に識別する第2識別子を記憶した記憶装置と、前記マルチモータシステムの他のモータユニットとの間でデータフレームの送信および受信を行う通信回路とを備え、前記通信回路は、送信元である自身を示す前記第1識別子、送信先の前記他のモータユニットを一意に識別する前記第2識別子、および、前記他のモータユニットが行う動作に関する要求を前記データフレームに格納して、前記データフレームを前記他のモータユニットに送信し、送信元である前記他のモータユニットの第2識別子、送信先である自身のモータユニットの前記第1識別子、および、自身が行うべき動作に関する要求を含む前記データフレームを前記他のモータユニットから受信し、かつ、前記他のモータユニットからの要求への応答として、送信先を示す前記第2識別子を付加し、かつ、送信元を示す前記第1識別子を付加したデータフレームを送信する。
【0011】
本開示による、あるモータユニットは、通信ネットワークを介して複数のモータユニットが通信を行うマルチモータシステムで利用されるモータユニットであって、モータと、前記モータを回転させるための制御信号を生成する制御回路と、前記制御信号に基づいて前記モータに電流を流すモータ駆動回路と、前記通信ネットワーク内で自身であるモータユニットを一意に識別する第1識別子、および、前記複数のモータユニットの各々を一意に識別する第2識別子を記憶した記憶装置と、前記マルチモータシステムの他のモータユニットにデータフレームを送信する通信回路であって、送信元である自身を示す前記第1識別子、送信先の前記他のモータユニットを一意に識別する前記第2識別子、および、前記他のモータユニットが行う動作に関する要求を前記データフレームに格納して、前記データフレームを前記他のモータユニットに送信する通信回路とを備えている。
【0012】
本開示による、あるモータユニットは、通信ネットワークを介して複数のモータユニットが通信を行うマルチモータシステムで利用されるモータユニットであって、モータと、前記モータを回転させるための制御信号を生成する制御回路と、前記制御信号に基づいて前記モータに電流を流すモータ駆動回路と、前記通信ネットワーク内で自身であるモータユニットを一意に識別する第1識別子、および、前記複数のモータユニットの各々を一意に識別する第2識別子を記憶した記憶装置と、通信回路とを備え、前記通信回路は、前記マルチモータシステムの他のモータユニットからデータフレームを受信する通信回路であって、送信元である前記他のモータユニットの第2識別子、送信先である自身のモータユニットの前記第1識別子、および、自身が行うべき動作に関する要求を含む前記データフレームを前記他のモータユニットから受信し、かつ、前記他のモータユニットからの前記要求への応答として、送信先を示す前記第2識別子、および、送信元を示す前記第1識別子を含むデータフレームを前記他のモータユニットに送信する。
【0013】
本開示による、あるマルチモータシステムは、第1、第2および第3モータユニットを含む複数のモータユニットと、前記複数のモータユニットを接続する通信ネットワークとを有するマルチモータシステムであって、前記複数のモータユニットの各々は、モータと、前記モータを回転させるための制御信号を生成する制御回路と、前記制御信号に基づいて前記モータに電流を流す駆動回路と、前記通信ネットワーク内で前記モータを一意に識別する識別子を記憶した記憶装置と、通信回路とを備え、前記第1モータユニットの制御回路は、受信したモータユニットの状態を示す状態情報を送信させる指示と、前記状態情報の送信先である第3モータユニットのモータを識別する識別子と、前記状態情報の送信タイミングと、を含む第1コマンドを生成し、前記第1コマンドを、前記通信回路を介して前記第2モータユニットに送信し、前記第1コマンドを受信した前記第2モータユニットの制御回路は、前記第1コマンドに基づいて、前記第2モータユニットの状態情報を含む第2コマンドを、前記送信タイミングで前記第3モータユニットに送信する。
【0014】
本開示による他のマルチモータシステムは、複数のモータユニットと、前記複数のモータユニットを接続する通信ネットワークとを有するマルチモータシステムであって、前記複数のモータユニットの各々は、モータと、前記モータを回転させるための制御信号を生成する制御回路と、前記制御信号に基づいて前記モータに電流を流すモータ駆動回路と、前記通信ネットワーク内で前記モータを一意に識別する識別子を記憶した記憶装置と、前記通信ネットワークを介して通信を行う通信回路とを備え、前記複数のモータユニットの各々の前記識別子は所定の順序に従って付与されており、前記所定の順序に応じて決定された1台の特定モータユニットが、前記通信ネットワーク内で行われる前記通信を調停する。
【発明の効果】
【0015】
本発明の例示的な実施形態にかかるモータユニットによれば、ホスト端末の有無にかかわらず、多対多の通信を行うことが可能になる。
【図面の簡単な説明】
【0016】
【
図1A】
図1Aは、有線のシリアル通信で利用されるデータフレーム1aの構造を示す図である。
【
図1B】
図1Bは、無線通信で利用されるデータフレーム1bの構造を示す図である。
【
図2】
図2は、共通データ構造12を示す図である。
【
図3A】
図3Aは、コミュニケーションロボット30の外観を示す図である。
【
図3B】
図3Bは、パワーアシストスーツ30bの外観を示す図である。
【
図3C】
図3Cは、業務用冷蔵ショーケース30cの外観を示す図である。
【
図4】
図4は、マルチモータシステム103の模式図である。
【
図5】
図5は、コミュニケーションロボット30(
図3A)の関節を回転させるモータユニットを含むマルチモータシステム103の構成例を示す図である。
【
図6】
図6は、RS-485規格の通信時のデータフレーム2aの例を示す図である。
【
図7】
図7は、アービトレータ決定前の識別子を含むデータフレームFの送信タイミングを示す図である。
【
図8】
図8は、モータユニット106Bがアービトレータであることを通知するデータフレーム3aの例を示す図である。
【
図9】
図9は、アービトレータ決定時のモータユニットの一連の処理の手順を示すフローチャートである。
【
図10】
図10は、2つの送信パターンの各々に基づく情報の送信が行われるマルチモータシステム103を示す図である。
【
図11】
図11は、第1コマンドである、「状態情報送信タイミング指定コマンド」(「Send Status Info Timing」コマンド)が記述されたデータフレーム4aの例を示す図である。
【
図12】
図12は、状態情報送信タイミング指定コマンドのデータフィールド12dの詳細を示す図である。
【
図13】
図13は、第2コマンドである、「状態情報送信コマンド」(「Send Status Information」コマンド)が記述されたデータフレーム5aの例を示す図である。
【
図14】
図14は、パワーアシストスーツ30bを装着した人物50と、グリーンハウス60とを示す図である。
【
図15A】
図15Aは、人物50が、グリーンハウス60の入口62付近で収穫作業を行っているときに回転速度を高める複数のファンモータユニット64を示す図である。
【
図15B】
図15Bは、人物50が移動することによって回転速度を高める、さらに他の複数のファンモータユニット66を示す図である。
【発明を実施するための形態】
【0017】
本開示によるマルチモータシステムは、通信機能を有する複数のモータユニットと、当該複数のモータユニットを相互に接続する通信ネットワークとを有している。マルチモータシステムでは、あるモータユニットが、コマンドを、他のモータユニットに送信する。当該マルチモータシステムでは、すべての通信に関与するホスト端末を設ける必要はない。
【0018】
以下では、添付の図面を参照しながら、まず、マルチモータシステムで送受信されるコマンドに関する通信プロトコルを説明する。その後、マルチモータシステムの構成および動作を説明する。
【0019】
1.マルチモータシステムで用いられる通信プロトコル
図1Aは、有線のシリアル通信で利用されるデータフレーム1aの構造を示している。シリアル通信の一例はRS-485規格の通信を想定している。RS-485規格はOSI参照モデルでいう物理層の電気的仕様を策定する。
【0020】
データフレーム1aは各種のデータを包含している。参考のため、
図1Aの最上段にはOSI参照モデルの層ごとの区分を示す。また
図1Aの最下段には、各データのデータサイズをバイト単位で表記している。
図1Aの最左欄は凡例である。後述する
図1Bおよび
図2でも同様である。
【0021】
データフレーム1aは、たとえば、送信先デバイスID10と、送信元デバイスID11と、共通データ構造12とを含む。送信先デバイスID10は、送信先のデバイスを識別する識別子である。送信元デバイスID11は、送信元のデバイスを識別する識別子である。送信元のデバイスは、通信機能を有するモータユニットであり得る。識別子は、たとえば製造時に重複することなく機器ごとに付与されたID(デバイス識別子またはデバイスID)、IPアドレスである。デバイスIDまたはIPアドレスは、通信ネットワーク内でモータユニットを一意に示す識別子である。共通データ構造12は、後述する1または2のコマンドを含むデータ構造である。
【0022】
これまで、モータを制御するためには、制御対象であるモータを識別する送信先のデバイスIDのみが存在していれば十分であった。送信先デバイスIDを指定してコマンドおよび制御データを送れば、当該モータが当該コマンドおよび制御データに従って動作していたからである。
【0023】
本発明者は、これまで考えられていなかった、複数台のモータが互いに通信し、全体として有機的に動作するマルチモータシステムの構築を検討した。そして、そのためには新たな通信プロトコルが必要であると考え、新たに、送信元デバイスID11、および、共通データ構造12を策定した。
【0024】
図1Bは、無線通信で利用されるデータフレーム1bの構造を示している。無線通信の一例はWi-Fi(登録商標。以下同じ)規格の通信を想定している。Wi-Fi規格はOSI参照モデルでいう物理層およびデータリンク層の仕様を策定する。
【0025】
データフレーム1bは、OSI参照モデルの各層のヘッダを複数含んでいる。もともと、IPヘッダには宛先IPアドレス20と送信元IPアドレス21とを格納することになっている。本発明者は、送信元IPアドレス21を、上述の送信元デバイスID11に相当する識別子として利用することができると考えた。そこで、Wi-Fi規格の共通データ構造12を利用して行われる通信プロトコルでは、当該送信元IPアドレス21を活用することとした。
【0026】
なお、上述した有線通信および無線通信は一例である。他の任意の通信プロトコルを利用することができる。たとえば送信元のデバイスとして送信元IPアドレスを利用する場合、IPアドレスはOSI参照モデルでいうネットワーク層に属するため、より下位層である物理層およびデータリンク層は任意である。
【0027】
本発明者は、通信ネットワーク内で送信元を一意に示す識別子を利用して、モータ間通信を実現するマルチモータシステムを構成した。ヘッダ等に送信元を一意に示す識別子が含まれていれば本開示は適用可能である。既存の通信プロトコルであっても、送信元を示す識別子が含まれていれば、送信元デバイスID11に相当する識別子としてモータ間通信に利用することができる。たとえばイーサネット(登録商標)規格の通信では、送信元のデバイスを表す識別子として、MAC(Media Access Control)アドレスを利用する。MACアドレスは、本開示にかかる送信元デバイスIDとして利用し得る。
【0028】
【0029】
共通データ構造12は、データ長フィールド12aと、動作系コマンドフィールド12bと、属性系コマンドフィールド12cと、データフィールド12dとを有する。
【0030】
データ長フィールド12aは、共通データ構造12の総バイト数を示す。
【0031】
動作系コマンドフィールド12bは、例えばモータを動作させるための動作系コマンドを示す。動作系コマンドは、当該動作系コマンドに対応する数値(2進数表記)で記述される。動作系コマンドの一例は、ライトデータ(Write Data)、リードデータ(Read Data)、実行(Execution)および接続(Connect)である。ライトデータ、リードデータ等は、モータの動作に関連してモータユニットが行う動作である。つまり、動作系コマンドは、モータユニットが行うべき動作を指定する、他のモータユニットからの要求または他のモータユニットへの要求であると言うことができる。
【0032】
属性系コマンドフィールド12cは、モータに関する属性を指定する属性系コマンドを示す。属性系コマンドもまた、当該コマンドに対応する数値(2進数表記)で記述される。属性系コマンドの一例は、現在の角度(Present Angle)、ターゲット角度(Target Angle)、角度制限(Angle Limit)およびシリアル番号(Serial Number)である。属性系コマンドは、動作系コマンドとともに指定される、モータに関する静的または動的な属性であると言うことができる。
【0033】
データフィールド12dは、属性系コマンドフィールド12cに対するデータが記述される。データの一例は、角度設定値、回転速度設定値、シリアル番号値である。
【0034】
上述した共通データ構造は、たとえば3バイトから13バイトまでの範囲内に収まる、比較的短いデータ長を有する。他の通信プロトコルであるEtherCATは32バイトの大きさであるため、通信時の混在解消および回線の占有を抑制できる。さらに、動作系コマンドと属性系コマンドとを分けて規定したため、利用者(プログラム者)にとって理解しやすい。
【0035】
なお、動作系コマンドフィールド12bおよび属性系コマンドフィールド12cにどのようなコマンドが格納されるかについては、後の実施形態とともに説明する。
【0036】
2.マルチモータシステムの構成
次に、マルチモータシステムおよび当該マルチモータシステムを構成するモータユニットの例示的な実施形態を説明する。
【0037】
1台の製品に、複数台のモータユニットが搭載される例が増えてきた。そのような製品では、あるモータユニットが他のモータユニットと通信する必要性が高まっている。
【0038】
たとえば
図3Aから
図3Cは、複数台のモータユニットを搭載する製品の例を示している。
【0039】
図3Aは、コミュニケーションロボット30aの外観を示している。コミュニケーションロボット30aの矢印で示す各位置にモータユニットが搭載されている。1台のコミュニケーションロボット30aには約20個またはそれ以上のモータユニットが装着され得る。これにより、ロボット30は複雑な動きを実現することが可能になる。
【0040】
図3Bはパワーアシストスーツ30bの外観を示している。パワーアシストスーツ30bは農作業、介護作業等に使用される。
図3Aの例と同様、複数の矢印で示す各位置にモータユニットが搭載されている。なお、矢印は主として右半身側のモータユニットのみを示しているが、右半身に対応する左半身の各位置にも同様にモータユニットが設けられている。たとえば、パワーアシストスーツ30bには腕力・脚力を支えるため20個以上のモータユニットが使用され得る。なお
図3Bには、参考のためパワーアシストスーツ30bを装着した人のシルエットが記載されている。
【0041】
図3Cは業務用冷蔵ショーケース30cの外観を示している。矢印で示す各位置にモータユニットが搭載されている。1台の業務用冷蔵ショーケース30cには10個以上のファンモータユニットが装着され得る。これにより、冷却効率を高めることができる。
【0042】
本実施形態では、上述した1台の機器に含まれる複数のモータユニットは相互に通信して、自律的かつ協調して動作する。
【0043】
たとえば、業務用冷蔵ショーケース30cに搭載された複数台のうちの1台のファンモータユニットが故障したとする。故障したファンモータユニットの回転が停止したにもかかわらず、他のファンモータユニットがこれまでと同様の回転状態を維持すると冷却効率が低下する。
【0044】
そこで、あるモータユニットが故障したことを、そのファンモータユニット(以下「故障ユニット」と略記する。)自身が他のファンモータユニットに通知し、または故障ユニットとの通信ができなくなったことを他のファンモータユニットが検出する。すると、複数台のファンモータユニットのうちの、故障ユニット近傍の2台のファンモータユニットが自身の動作を変化させる。具体的には、当該2台のファンモータユニットは、回転速度の増加および減少を交互に繰り返して故障したファンモータユニットに代わって動作する。これにより、冷却効率を維持し温度ムラの発生を抑止することができる。
【0045】
図4は、複数のモータユニット32a~32eが相互に通信する、本実施形態によるマルチモータシステム103の模式図である。後述のように、各モータユニットは、モータおよび種々の回路要素を含んでいる。各モータユニット32a~32eは、たとえば上位装置150からの指示に従って動作を開始する。
【0046】
たとえばモータユニット32aは、自身が故障したことを検出して他のモータユニット32bおよび32eに、故障したことを示す故障通知コマンドを送信する。故障通知コマンドを受信すると、モータユニット32bおよび/または32eは受信応答コマンドをモータユニット32aに送信するとともに、モータユニット32aを代替して動作する。「代替して動作する」の一例を説明する。モータユニット32a~32eがファンを回転させるモータである場合、モータユニット32bおよび/または32eは、これまでよりも回転速度を高くする。これにより、モータユニット32aが送出すべき風量を、モータユニット32bおよび/または32eが送出する風量によって補うことができる。つまりモータユニット32bおよび/または32eは、モータユニット32aを代替して動作することができる。
【0047】
なお、モータユニット32aが、上述したコミュニケーションロボット30の1つの関節機構を駆動させるための部品である場合には、他のモータユニットがいくら余分に動作したとしてもモータユニット32aの動作を完全には代替できない場合もあり得る。そのような場合には、モータユニット32bおよび/または32eは、予め定められた範囲内でモータユニット32aの機能を代替するよう動作すればよい。
【0048】
モータユニット32aの故障に関する情報は、モータユニット32bおよび32eをそれぞれ経由して、モータユニット32cおよび32dに伝達されてもよい。モータユニット32cおよび32dもまた、予め定められた範囲内でモータユニット32aの機能を代替するよう動作すればよい。または、モータユニット32cおよび32dは、補助を行えないことを示す通知コマンドをモータユニット32aまたは上位装置150に通知してもよい。
【0049】
なお、
図4のマルチモータシステム103では、通信可能なモータユニット同士が線で結ばれているが、記載された線および矢印は一例である。線で結ばれていないモータユニット同士も相互に通信を行うことができる。
【0050】
上述のようなモータユニット間通信を実現するためには、多くのモータユニットのどのモータユニットからコマンドを受信したのか、および、どのモータユニットにコマンドを送信すればよいのか、を各モータユニットが把握する必要がある。そこで、
図1Aに示す「送信元デバイスID11」または「送信元IPアドレス21」が、送信元を示すデータとして利用可能である。「送信元デバイスID11」または「送信元IPアドレス21」は、受信したコマンドに対する応答を送信する送信先としても利用され得る。
【0051】
以下、モータユニットの構成と、モータユニット間で行われる通信を説明する。
【0052】
図5は、本実施形態による、コミュニケーションロボット30a(
図3A)の関節を回転させるモータユニットを含むマルチモータシステム103の構成例を示している。
図5の例では記載の便宜上、2つのモータユニット106Aおよび106Bが示されているが、
図3A~
図3Cおよび
図4に示すように3以上であってもよい。
【0053】
マルチモータシステム103は、モータユニット106Aおよび106Bを有している。モータユニット106Aは、通信回路110Aと、プロセッサ112Aと、メモリ113Aと、モータ駆動回路114Aと、関節用モータ116Aと、関節機構104Aとを有する。モータユニット106Bは、通信回路110Bと、プロセッサ112Bと、メモリ113Bと、モータ駆動回路114Bと、関節用モータ116Bと関節機構104Bとを有する。モータユニット106Aおよび106Bは、インテリジェントモータ(登録商標)と呼ばれることがある。なお、上述の説明では、一例として関節機構104Aおよび104Bはそれぞれモータユニット106Aおよび106Bに含まれるとしたが、含まれなくてもよい。
【0054】
なお、本明細書ではモータユニット106Aおよび106Bは、
図5に示す上位装置150を介して通信を行ってもよいし、上位装置150を介することなく互いに直接データフレームを送受信する通信を行ってもよい。
【0055】
通信回路110Aおよび110Bはそれぞれバッファ111Aおよび111Bを有している。バッファ111Aおよび111Bには、予め、モータユニット106Aおよび106Bをそれぞれ識別するための識別子が格納されている。当該識別子は、通信可能な範囲の通信ネットワーク内で一意に識別可能な文字および/または数字であればよく、たとえばIPアドレス、または、上述した、デバイスごとに重複なく付与されたID(デバイスID)であり得る。
【0056】
データフレームを受信したとき、通信回路110Aおよび110Bは、それぞれ、物理層、データリンク層の処理を行い、データフレームの送信先デバイスID10(
図1A)がバッファ111Aおよび111Bに格納されている
自身の識別子と一致するか否かを判定する。一致する場合には、通信回路110Aおよび110Bは当該データフレームの処理を続行し、一致しない場合には当該データフレームを破棄する。
【0057】
Wi-Fi規格による無線通信が行われる場合には、上述の自身の識別子としてIPアドレスを採用し得る。通信回路110Aおよび110Bは、データフレームの宛先IPアドレス20(
図1B)が自
身のIPアドレスと一致するか否かを判定する。その後の処理は上述の処理と同じである。
【0058】
データフレームの処理を続行する場合には、通信回路110Aおよび110Bは、データフレームに、さらにOSI参照モデルにおけるIP層、トランスポート層等毎の処理を順次行い、共通データ構造12を抽出する。上述のように共通データ構造12には動作系コマンド12b等が含まれている。通信回路110Aおよび110Bは、それぞれ、コマンドを抽出し、プロセッサ112Aおよび112Bに送信する。
【0059】
プロセッサ112Aおよび112Bはいずれも、半導体が集積された信号処理プロセッサである。プロセッサは「信号処理回路」または「制御回路」とも呼ばれる。プロセッサ112Aおよび112Bは、それぞれ、指定された回転速度でモータ116Aおよび116Bを回転させるための信号を生成する。当該信号は、たとえばPWM信号である。またプロセッサ112Aおよび112Bは、他のモータユニットから送信されたデータフレームに含まれる共通データ構造12に含まれるコマンドおよびデータを解釈し、コマンドの内容に応じた処理を行う。
【0060】
メモリ113Aおよび113Bは、他のモータユニットと、当該モータユニットの識別子とを対応付けたテーブルを予め保持している。つまり、識別子は各モータユニットの通信回路に予め設定され、当該識別子が他のモータユニットのメモリに保持されている。プロセッサ112Aおよび112Bは、データフレームの送受信を行いたいモータユニットが決まれば、当該モータユニットの識別子を特定し、通信回路111Aおよび111Bに指示することができる。
【0061】
モータ駆動回路114Aおよび114Bはそれぞれ、PWM信号に応じた大きさおよび方向で電流をモータ116Aおよび116Bに流す。これにより、モータ116Aおよび116Bは時計回りまたは半時計回りに回転する。モータの回転に伴い、モータの回転軸に取り付けられた関節機構104Aおよび104Bも時計回りまたは半時計回りに回転する。その結果、モータの回転に応じた速度、角度および方向で関節機構が動作する。
【0062】
回転させる速度および時間等は、属性系コマンドフィールド12cおよびデータフィールド12d(
図2)を利用してコマンドの一部として指定され得る。プロセッサ112Aおよび112Bは、指定された回転速度および回転時間でモータ116Aおよび116Bが回転するよう、PWM信号を生成すればよい。
【0063】
3.送信先モータユニットおよび送信元モータユニットを示す識別子の例
例として、モータユニット106Aがモータユニット106Bの現在の回転速度を知りたい場合を考える。なお、本明細書および図面では、データ構造に記述される値を2進数または16進数によって表記する。これらは単に形式が相違するに過ぎず、図面の紙面等との関係で選択されるにすぎない。当業者であれば、これらの実体は同じであることが理解される。なお、16進数の数値には「0x」が付されている。
【0064】
モータユニット106Aはモータユニット106Bに、「モータユニット106Aの識別子+現在の回転速度のリクエスト」を送信する。モータユニット106Aの識別子は、モータユニット106Aを示す送信元デバイスID11(
図1A)、または、モータユニット106Aを示す送信元IPアドレス21(
図1B)に記述される。
【0065】
図6は、RS-485規格の通信時のデータフレーム2aの例を示している。データフレーム2aは
図1Aのデータフレーム1aに対応する。なお、
図1Bに示す、無線通信で利用されるデータフレーム1bに対応する例の説明は省略するが、当業者であれば、
図6の例に基づいて理解することができる。
【0066】
データフレーム2aには、送信先デバイスID10としてモータユニット106Bを示す1バイトの値"00000010"が記述され、送信元デバイスID11としてモータユニット106Aを示す1バイトの2進数値"00000001"が記述されている。
【0067】
また、共通データ構造12には、動作系コマンド12bとして、データの読み取りを示す「リードデータ(Read Data)コマンド」に対応する1バイト値"0x01"が記述されている。また、属性系コマンドフィールド12cには、現在の回転速度を示す"Present Speed"に対応する2バイト値"0x00,0x21"が記述されている。他のデータフィールドは本開示には特に関係しない。よって他のデータフィールドの説明は省略する。
【0068】
モータユニット106Bは自身宛てのコマンドを含むデータフレーム2aを受信する。モータユニット106Bのプロセッサ112Bは、送信元IDとして付加されている識別子に基づいてメモリ113Bに記憶されているテーブルを参照し、当該データフレームを送信したモータユニットが、モータユニット106Aであることを特定する。
【0069】
モータユニット106Bは、データフレーム2aの共通データ構造12に含まれる動作系コマンドおよび属性系コマンドを解釈して、モータ116Bの現在の回転速度を読み取る。その結果、モータユニット106Bはモータユニット106Aに、「送信元ID情報(モータユニット106B)+現在の回転速度の情報」を送信することができる。モータユニット106Bが送信するデータフレームの具体的な説明は省略する。なお、モータユニット106Bはコマンドを受信した直後に、コマンドを受信したことを示す受信応答コマンドをモータユニット106Aに送信してもよい。
【0070】
4.マルチモータシステム内の通信を調停するモータユニットの決定方法
背景技術欄で説明したように、各々が通信機能を具備した多数のモータユニットが通信ネットワークを構成している場合には、別途設けられたホスト端末と各モータユニットとが通信を行っていた。ホスト端末は通信開始の順序、および、タイミングを調整する調停を行っており、通信の衝突を回避していた。
【0071】
上述のとおり、本開示によるマルチモータシステム103(
図4)にはホスト端末を設ける必要はないため、通信を調停するホスト端末の存在を前提とすることができない。よって、新たに通信を調停するための仕組みが必要となる。
【0072】
マルチモータシステム103にはモータユニットのみが存在するため、通信を調停するモータユニットを如何に決定するかが問題となる。さらに、通信を調停するモータユニットが決定された後、新たなモータユニットが通信ネットワークに接続された際、通信を調停するモータユニットを如何にして知るかが問題となる。
【0073】
そこで本発明者は、以下のように通信を調停するモータユニットの決定方法、および、決定されたモータユニットの周知方法を策定した。
【0074】
以下の説明では、通信を調停する特定のモータユニットを「アービトレータ(arbitrator)」と呼ぶ。アービトレータは「特定モータユニット」とも呼ばれ得る。
【0075】
4.1.アービトレータの決定方法
まず、アービトレータの決定方法を説明する。以下の説明では、各モータユニットの動作を説明するが、各モータユニットの実際の動作はプロセッサ113A(
図5)等が行うことに留意されたい。
【0076】
図4に示すマルチモータシステム103が、1台の装置(たとえばコミュニケーションロボット30(
図3A))内に構築されているとする。当該装置に電源が投入されると、各モータユニットが一斉に起動し、通信可能な状態に移行する。この時点ではまだアービトレータは存在しない。ただし各モータユニットはバッファ111Aに、自身の識別子(デバイスIDまたはIPアドレス)を有している。
【0077】
各モータユニットは、バッファ111Aに格納された自らの識別子を通信ネットワーク全体に送信する。この方法としては、たとえばOSI参照モデルにおけるデータリンク層におけるブロードキャストを用いることができる。「ブロードキャスト」とは、同じデータリンク内の全宛先を指定し、1対不特定多数で行われるデータ通信をいう。これにより、各モータユニットは通信ネットワークに存在する全てのモータユニットの識別子を共有することができる。たとえばモータユニット106A(
図5)は、得られたすべてのモータユニットの識別子を、メモリ113Aに格納する。
【0078】
各モータユニットの識別子は所定の順序に従って付与されている。モータユニットの識別子がIPv4のIPアドレスである場合には、IPアドレスを構成するIPアドレスネットワーク部とIPホストアドレス部のうち、IPホストアドレス部の数値により、各モータユニットを順序付けることができる。また、モータユニットの識別子がデバイスIDである場合にも、デバイスIDをたとえば2進数によって表現することにより、各モータユニットを順序付けることができる。
【0079】
本実施形態では、所定の順序で付与された識別子に応じてアービトレータとして動作する。より具体的には、本実施形態では、識別子が最も小さいモータユニットがアービトレータとして動作する。上述したとおり、各モータユニットは、通信ネットワーク内のすべてのモータユニットの識別子を、メモリ113Aに格納している。よって、各モータユニットは、どの識別子が最も小さいかを判定することができる。最も小さい識別子を有するモータユニットが自身であると判定すると、当該モータユニットは、自身がアービトレータであることを、通信ネットワークの他のすべてのモータユニットに通知する。通知は、アービトレータを通知するコマンドおよび自身の識別子を含むデータフレームを、ブロードキャストすることによって実現され得る。本明細書では、アービトレータであることを示す識別子を、「プライマリID」と定義する。
【0080】
次に、モータユニットの識別子を共有する際の変形例を説明する。
【0081】
各モータユニットが他の全てのモータユニットの識別子を共有しようとする時点ではアービトレータが決定されていないため、各モータユニットが自らの識別子を一斉にブロードキャストする可能性がある。これでは通信の衝突が発生し、モータユニットの識別子を共有することができない、またはモータユニットの識別子を共有するまでに相当の時間を要する可能性がある。
【0082】
そこで各モータユニットは、自らの識別子を利用して識別子を送信する時刻を調整してもよい。上述のとおり、各モータユニットの識別子は所定の順序に従って付与されている。そのため、識別子を示す数値に、予め定められた時間(たとえば20ミリ秒)を乗じて得られた時間だけ識別子の送信を遅らせる。
【0083】
図7は、アービトレータ決定前の識別子を含むデータフレームFの送信タイミングを示している。
図7の例は、
図4に示すモータユニット(M/U)32a~32eの送信タイミングを示している。各モータユニットの識別子は、モータユニット32a~32eから1つずつ昇順で増加しているとする。各データフレームFには、モータユニット32a~32e各々の識別子が格納されている。これにより、通信ネットワーク上を流れるデータフレームの衝突を防止しながら、各モータユニットは通信ネットワーク上のすべてのモータユニットの識別子を共有することができる。
【0084】
4.2.アービトレータ決定時の周知方法
次に、通信を調停するモータユニットの周知方法を説明する。
【0085】
図8は、モータユニット106Bがアービトレータであることを通知するデータフレーム3aの例を示している。データフレーム3aは
図1Aのデータフレーム1aに対応する。なお、
図1Bに示す、無線通信で利用されるデータフレーム1bに対応する例の説明は省略するが、当業者であれば、
図8の例に基づいて理解することができる。
【0086】
データフレーム3aには、送信先デバイスID10としてブロードキャスト通信であることを示す1バイトの2進数値"11111111"が記述され、送信元デバイスID11としてモータユニット106Bを示す1バイトの2進数値"00000010"が記述される。
【0087】
また、共通データ構造12には、動作系コマンド12bとして、データの書き込みを示す「ライトデータ(Write Data)コマンド」に対応する1バイト値"0x02"が記述されている。また、属性系コマンドフィールド12cには、プライマリIDを示す2バイト値"0x00,0xC1"が記述されている。他のデータフィールドは本開示には特に関係しない。よって他のデータフィールドの説明は省略する。
【0088】
なお、識別子が最も小さいモータユニットがアービトレータとして動作する、というアービトレータ決定方法は一例である。識別子が最も大きいモータユニットがアービトレータとして動作してもよいし、識別子を用いた所定の演算によってアービトレータを決定してもよい。または、各モータユニットが有する識別子以外のパラメータを利用してアービトレータを決定してもよい。
【0089】
図9は、アービトレータ決定時の各モータユニットの一連の処理の手順を示すフローチャートである。ステップS1において、各モータユニットは、自身の識別子を格納したデータフレームFを通信ネットワークにブロードキャストする。
【0090】
ステップS2において、各モータユニットは、他のモータユニットがブロードキャストしたデータフレームを受信する。これにより、各モータユニットは通信ネットワーク上のすべてのモータユニットの識別子を共有することができる。
【0091】
ステップS3において、各モータユニットは、すべてのモータユニットの識別子のうち、自身の識別子が最も小さいか否かを判定する。自身の識別子が最も小さい場合には処理はステップS4に進み、そうでない場合には処理は終了する。
【0092】
ステップS4において、当該モータユニットは、自身の識別子をプライマリIDとして格納したデータフレーム3をブロードキャストする。これにより、通信ネットワーク上のすべてのモータユニットは、どのモータユニットがアービトレータであるかを識別することができる。
【0093】
上述の方法によって決定されたアービトレータは、以後通信ネットワーク内で行われる通信の順序、タイミング等の調停を行う。具体的には、各モータユニットからアービトレータ宛ての通信要求等のコマンドを受信すると、アービトレータは、送信を許可するモータユニットには通信許可応答を送信する。これにより、通信ネットワーク上の調停が実現される。なお、調停方法は周知の任意の技術を利用することが可能であるが、これ以上の具体的な説明は本開示の範囲外であるため省略する。
【0094】
アービトレータは周期的に
図8に示すデータフレーム3を通信ネットワークに送信する。これにより、他のモータユニットは、現在のアービトレータを知ることができる。また、事後的に電源が投入されたモータユニットもアービトレータが既に決定されていることを知ることができる。
【0095】
4.3.アービトレータの変更方法
いま、故障等によってアービトレータが周期的なデータフレーム3を送信できなくなった場合を考える。
【0096】
当該通信ネットワークに存在する他のすべてのモータユニットは、予め定められた時間、たとえば1秒、だけ待ち、依然としてデータフレーム3を受信できない場合には、新たなアービトレータを決定するため、
図9に示す処理を再度実行する。これまでアービトレータであったモータユニットは通信ができないため、次に小さい識別子を有するモータユニットがアービトレータになる。アービトレータになったモータユニットが、プライマリIDを通知するデータフレーム3をブロードキャストすることにより、他のすべてのモータユニットは、プライマリIDを、アービトレータとなったモータユニットの識別子に更新する。これにより、以後、各モータユニットは、新たなアービトレータ宛てに通信要求等のコマンドを送信して調停を求めることができる。
【0097】
なお、共有しているすべてのモータユニットの識別子の中から、次に識別子が小さいモータユニットが、自らがアービトレータであることを他のモータユニットに通知してもよい。当該方法によれば、
図9の処理を新たに実行するよりも迅速にアービトレータを決定することができる。
【0098】
上述のいずれかの処理によれば、アービトレータに故障が発生した場合でも速やかに次のアービトレータを決定することができる。
【0099】
アービトレータの変更は、故障時に限られない。たとえば以下のような状況が発生した場合には、アービトレータを変更してもよい。
【0100】
アービトレータの挙動に異状が発生したと判断される場合には、他のモータユニットにアービトレータの権限を委譲することができる。「異状」とは、たとえばアービトレータがデータフレーム3を送信しているにも関わらず、当該アービトレータが他のモータユニットからの通信要求を一定時間以上受け付けない、等の状況である。これはアービトレータとして動作するモータユニットを、悪意のある第三者が乗っ取った場合が想定される。アービトレータの権限を委譲することにより、アービトレータが乗っ取られたとしても当該マルチモータシステム103は制御を失わず、継続して動作することができる。
【0101】
アービトレータとして動作するモータユニットには、他のモータユニットよりも大きな処理負荷がかかる。そのため、任意のタイミング、または、予め定められたタイミングでアービトレータを変更することにより、特定の1台のモータユニットに処理負荷がかかりすぎないよう、処理負荷を他のモータユニットに適切に分散させることができる。これにより、特定の1台のモータユニットの製品寿命のみが縮むことを避けることができる。
【0102】
上述の処理によれば、マルチモータシステムにホスト端末が存在していなくても、ホスト装置に代わるアービトレータを通信ネットワーク上のモータユニットから選出することができる。これにより、ホスト装置が存在しないモータユニットの通信ネットワークにおいて、通信の衝突等を避けて通信を行うことができる。
【0103】
5.マルチモータシステムにおいて行われる、モータユニット間通信
以下、マルチモータシステム103において行われるモータユニット間通信の具体例を説明する。
【0104】
ロボットに代表されるように多くの電動製品には複数のモータユニットが搭載され、互いに連携を取りながらシステム全体の統合的な動作を実現している。これにはモータユニットの状態(STATUS)情報の通知が欠かせない。上述のように、制御用通信ネットワークは、単一のホスト装置が全モータユニットの状態情報を回収する中央管理型ネットワークであった。
【0105】
命令側と実行側の二体関係を前提とする通信プロトコルでは、要求された状態パラメータを命令者ただ1個体に通知させるだけでよく、送信先の指定に一つのアドレスしか指定できないようになっている。何らかの理由で命令者以外のモータユニットに情報の送信が必要になった場合には、命令者が介入(中継)せざるを得ない。
【0106】
中央管理型ネットワークの制御システムで採用される従来の通信プロトコルでは、複数のモータユニット間で状態情報を共有しようとすると、命令系統の切り替えや仲介デバイスを介した三体間通信を行わなければならず、通信上無駄が多い。センサーとして大量のデータをやり取りする必要のあるマルチモータシステムの通信ネットワークでは、状態情報を効率的に送信しネットワーク負荷を低減できるよう、改善が求められる。
【0107】
そこで本発明者は、モータユニット間通信を実現するために検討を重ね、新たな通信手順を策定した。具体的には、本発明者は、新たに2つのコマンド(状態情報送信コマンドおよび状態情報送信タイミング指定コマンド)を策定した。
【0108】
本実施形態では、2つのコマンドは組み合わせて用いられ、「送信する状態情報の種類」、「送信先(複数指定可能)」、「送信タイミング(周期)、送信開始終了時間」の設定情報を指定できる。
【0109】
当該2つのコマンドを用いることにより、あるモータユニットがもつ任意の状態情報を、ネットワーク内にある任意のモータユニットまたは他のデバイスに、任意のタイミングで送信させることができる。また、どの状態情報をどのモータユニット等に送信するかは、一度にまとめて指定できる。2つのコマンドを用いた動作の概要は以下のとおりである。
【0110】
まず、マルチモータシステムは、第1、第2および第3モータユニットを含む複数のモータユニットと、当該複数のモータユニットを接続する通信ネットワークとを有する。マルチモータシステムでは、通信ネットワークを介してコマンドの送受信による通信が行われる。
【0111】
第1モータユニットのプロセッサは、第1コマンドを生成して、通信回路を介して第2モータユニットに送信する。第1コマンドである「状態情報送信タイミング指定コマンド」(または「Send Status Info Timing」コマンド)は、第2モータユニットの状態を示す状態情報を送信させる指示、および、状態情報の送信先である第3モータユニットのモータを識別する識別子を含む。状態情報を送信させる指示は、送信すべき時刻、間隔等の送信タイミングの指示を含む。
【0112】
第1コマンドを受信した第2モータユニットのプロセッサは、第1コマンドに基づいて第2コマンドを生成し、第1コマンドによって指定された送信タイミングで第2コマンドを第3モータユニットに送信する。第2コマンドである「状態情報送信コマンド」(または「Send Status Information」コマンド)は、第2モータユニットの状態情報の値を含む。
【0113】
第1モータユニットが、第2モータユニットに第1コマンドを送信しておけば、以後、第1コマンドによって指定された送信タイミングで、第2モータユニットは第3モータユニットに第2コマンドを送信する。これにより、命令系統の切り替え、および仲介デバイスを介した三体間通信を行う必要がない。また、ネットワークに接続された複数のモータユニットは、通信量を抑えながら互いの運転状況を効率よく共有することができる。なお、必要があれば、ホスト端末を利用する従来の通信方法を採用することもできる。
【0114】
以下、
図10を参照しながら具体例を説明する。上述の、第2のモータユニットから第3のモータユニットにどのような情報を送信させるかを示す様式を、以下では「送信パターン」と呼ぶ。
【0115】
図10は、2つの送信パターンの各々に基づく情報の送信が行われるマルチモータシステム103を示している。モータユニット32fが当該2つの送信パターンを送信する例を説明する。以下の説明ではモータユニット32a~32fの通信には制限を特に設けないが、上述したアービトレータとして動作するモータユニットの調停処理によって通信が許可され、情報が送信されればよい。
【0116】
モータユニット32fは、それぞれ異なる送信パターンを記述した2つの第1コマンドを、モータユニット32cおよび32eに送信する。たとえばモータユニット32fは、モータユニット32cへ第1送信パターンを記述した第1コマンドを送信する。当該第1コマンドを受信したモータユニット32cは、第1送信パターンに従って、モータユニット32aに第2コマンドを送信する。またモータユニット32fは、モータユニット32eへ第2送信パターンを記述した第1コマンドを送信する。当該第1コマンドを受信したモータユニット32eは、第2送信パターンに従って、モータユニット32bに第2コマンドを送信する。
【0117】
たとえば第1送信パターンは、モータユニット32cに流れる電流に関する情報をモータユニット32aに10ミリ秒周期で送信させることを示す。一方、第2送信パターンは、モータユニット32cの温度に関する情報をモータユニット32bに10秒周期で送信させることを示す。
【0118】
送信すべき状態情報として、他に「電圧値の情報」を指定することもできる。状態情報の送信先を識別する識別子、送信すべき状態情報である「電流」、「電圧」、および「温度」、および送信周期である「10ミリ秒」、「1時間周期」および「10秒周期」は、第1コマンドに対応する「状態情報送信タイミング指定コマンド」によって指定される。
【0119】
一方、第1コマンドを受信したモータユニットは、送信すべき状態情報を、第2コマンドである「状態情報送信コマンド」に含め、当該第2コマンドを、第1コマンドで指定されたモータユニットに送信する。
【0120】
なお、送信パターンに記述される、あるモータユニットの状態情報の送信先として、複数のモータユニットを指定することが可能である。送信先のモータユニットに応じて、状態情報の具体的な内容を別個独立に指定してもよい。
【0121】
図11は、第1コマンドである、「状態情報送信タイミング指定コマンド」(「Send Status Info Timing」コマンド)が記述されたデータフレーム4aの例を示している。
図12は、状態情報送信タイミング指定コマンドのデータフィールド12dの詳細を示している。
【0122】
一方
図13は、第2コマンドである、「状態情報送信コマンド」(「Send Status Information」コマンド)が記述されたデータフレーム5aの例を示している。データフレーム4aおよび5aは
図1Aのデータフレーム1aに対応する。なお、
図1Bに示す、無線通信で利用されるデータフレーム1bに対応する例の説明は省略するが、当業者であれば、
図11および12の例に基づいて理解することができる。
【0123】
図11に示すデータフレーム4aには、送信先デバイスID10としてモータユニット32cを示す1バイトの値が記述され、送信元デバイスID11としてモータユニット32fを示す1バイトの値が記述される。
図11では各モータユニットを示す値の具体例は省略し、モータユニット32cおよび32fの参照符号のみを示している。
【0124】
また、共通データ構造12では、動作系コマンド12bとして、「ライトデータ(Write Data)コマンド」に対応する1バイト値"0x02"が記述されている。属性系コマンドフィールド12cには、状態情報の送信タイミングを指定する「状態情報送信タイミング指定(Send Status Info Timing)コマンド」に対応する2バイト値"0x00,0x74"が記述されている。さらにデータフィールド12dには
図12に示す情報が記述されている。
【0125】
図12の例では、データフィールド12dには、8つのサブフィールド12d-1~12d-8が存在する。括弧内の数値は、各サブフィールドのバイト数を表す。
【0126】
本実施形態では各フィールドは以下の内容を表している。サブフィールド12d-1は、送信すべき状態情報が「電流」であることを示す。サブフィールド12d-2は、開始時刻の単位が「ミリ秒」であることを示す。サブフィールド12d-3は、開始時刻が「即時」であることを示す。サブフィールド12d-4は、終了時刻の単位が「ミリ秒」であることを示す。サブフィールド12d-5は、終了時刻が「無制限」であることを示す。サブフィールド12d-6は、周期の単位が「ミリ秒」であることを示す。サブフィールド12d-7は、周期が「10ミリ秒」であることを示す。サブフィールド12d-8は、送信先が「モータユニット32a」であることを示す。
【0127】
図12に示すように、データフィールド12dには、どのモータユニットに、いつ、何を送信すべきかが指定されている。これにより、データフレーム4aを受信したモータユニットは、自身の状態情報を、指定されたモータユニットに、指定されたタイミングで送信することができる。状態情報の送信時には、
図13に示すデータフレーム5aが利用される。
【0128】
図13を参照しながらデータフレーム5aを説明する。
図10に示すモータユニット32cからモータユニット32aに状態情報が送信される例に沿って説明する。
【0129】
データフレーム5aには、送信先デバイスID10としてモータユニット32aを示す1バイトの値が記述され、送信元デバイスID11としてモータユニット32cを示す1バイトの値が記述される。
図13では各モータユニットを示す値の具体例は省略し、モータユニット32aおよび32cの参照符号のみを示している。
【0130】
また、共通データ構造12では、動作系コマンド12bとして、「状態情報送信(Send Status Information)コマンド」に対応する1バイト値"0x14"が記述されている。属性系コマンドフィールド12cには、「現在の電流」に対応する2バイト値"0x00,0x48"が記述されている。なお、データフィールド12dには、「現在の電流」を示す数値が記述される。
【0131】
第1送信パターンに基づいて、モータユニット32cは、モータユニット32cに流れる電流値の情報をモータユニット32aに10ミリ秒周期で送信する。
【0132】
図10に関連して説明した、モータユニット32fからモータユニット32eに送信される、第2送信パターンを含む第1コマンドの構成は、
図11および12に準ずる。また、当該第1コマンドに従ってモータユニット32eがモータユニット32nに送信する第2コマンドの構成もまた、
図13に準ずる。モータユニット32eは、第2送信パターンに基づいて、モータユニット32eの温度の情報をモータユニット32bに10秒周期で送信する。
【0133】
これにより、あるモータユニットが、他のモータユニットに一度送信パターンを送信するだけで、マルチモータシステム103内に存在する複数のモータユニットが、必要なタイミングで自発的に、送信命令の重複なく状態情報を他のモータユニットと直接共有することができる。本実施形態によれば、ホスト端末を介して通信する必要がないため、通信帯域等の資源の浪費および通信ネットワークの混雑を抑制できる。
【0134】
なお、状態情報の送信パターンは、セキュリティー等の制限要請がなければ、ネットワーク内にあるどのモータユニットからでも指示できる。自動送信モードにおける送信周期は、ミリ秒から秒、分、時、日、年にわたるワイドレンジで任意に設定することができる。送信される状態情報は、モータユニットの属性値として定められるすべてのパラメータを対象にできる。また、送信パターンは任意のタイミングで書き換え可能である。さらに、通知の送信を開始する時刻と終了する時刻を設定することもできる。
【0135】
上述の説明では、第1コマンドである、「状態情報送信タイミング指定コマンド」(「Send Status Info Timing」コマンド)の送信先は、特定の1つのモータユニットであった。また、第2コマンドである、「状態情報送信コマンド」(「Send Status Information」コマンド)の送信先も、特定の1つのモータユニットであった。しかしながら、これらは一例である。第1コマンドおよび第2コマンドの一方、または両方の送信先として、ブロードキャスト通信であることを示す1バイトの2進数値"11111111"が記述されてもよい。これにより、同じデータリンク内のすべてのモータユニットを送信先に設定することができる。
【0136】
また、第1コマンドおよび/または第2コマンドの送信先として、複数のモータユニットをまとめて指定することもできる。複数のモータユニットを1つのグループとし、各グループを一意に特定する識別子(グループID)を予め割り振っておく。各グループに属するモータユニットは、自身が属するグループIDがデータフレームに記述されているか否かを判定し、自身が属するグループIDが記述されている場合には、当該データフレームを取得する。このように、自身の識別子とは別に、グループの識別子を設けることにより、いわゆるマルチキャスト送信が実現される。
【0137】
上述した送信パターンを利用した状態情報の送信は、送信パターンを生成したモータユニットが意図した時刻に行われることを要する。そのため、送信周期、開始時刻、終了時刻等の基準となる時刻、たとえば現在時刻、はモータユニット間で同期している必要がある。
【0138】
通信ネットワークは伝送距離の長短およびトラフィックの多寡に応じて、伝送遅延の程度が異なるため、時刻を示す情報をモータユニット間で伝送すると、相互に同期しない可能性が生じる。
【0139】
そのため本実施形態では、モータユニットのプロセッサを動作させるオペレーティングシステム(OS)の時刻管理機能を利用する。OSは、たとえばネットワーク・タイム・プロトコル(Network Time Protocol;NTP)を利用して、予め設置されたNTPサーバにアクセスする。NTPサーバは、GPS、標準電波、原子時計等の正確な時刻源に直結されている。各モータユニットのOSは、NTPサーバから取得した時刻に基づいて各モータユニットが持つ時計(図示せず)を、正しい時刻(絶対時刻)へ同期させる。OSが所定の周期で、または、通信ネットワークの混雑が十分少ないタイミングで上述の同期処理を実行することにより、各モータユニットは絶対時刻を保持することができる。絶対時刻の取得処理は、通信開始に先立って行っておけばよい。
【0140】
送信パターンを生成するモータユニットは、当該絶対時刻に基づいて状態情報の送信周期、開始時刻、終了時刻等を指定する。これにより、絶対時刻を保持し、送信パターンを受信したモータユニットもまた、意図された通りのタイミングで状態情報を送信することができる。
【0141】
上述した動作は、たとえば「絶対時刻12時00分00秒に、所定の状態情報を、特定のモータユニットに送信する」という、各モータユニットへの動作予約であると言える。指定されたモータユニットは、絶対時刻が12時00分00秒に到達したときに動作する。これにより、モータユニット間の同期動作が実現される。当該方法によれば、通信で遅延が発生するような、長距離通信またはトラフィックが多い状態での通信であっても、同期動作が可能になる。
【0142】
送信パターンに基づく状態情報の共有は、たとえば挙動監視用途でも利用され得る。
【0143】
あるモータユニットは、送信パターンに基づいて動作する特定のモータユニットから状態情報を定期的に受信する。受信した状態情報のログ管理を行うことで、特定のモータユニットが不正な第三者に乗っ取られているか否かを監視することができる。ここでいう「ログ管理」とは、状態情報の送受信が定期的に行われているかどうかの確認のみならず、予定された内容の状態情報が受信されていることの確認も含み得る。
【0144】
以上、本開示の実施形態を説明した。上述の例は本開示によるモータユニットおよび複数のモータユニットで構築されたマルチモータシステムを制限するものではない。
【0145】
上述の例では、送信先デバイスID10または送信元デバイスID11として、モータユニットのIPアドレスまたはデバイスIDを利用した。しかしながら、モータユニットの主要な機能部品はモータであるため、当該識別子はモータの識別子と呼ぶこともできる。
【0146】
6.モータユニット間で通信を行うマルチモータシステムの変形例
図3Aの例では、コミュニケーションロボット30a内の複数のモータユニット同士が互いに通信する態様を説明した。また
図3Bおよび
図3Cの例では、それぞれパワーアシストスーツ30b内の複数のモータユニット同士、業務用冷蔵ショーケース30c内の複数のモータユニット同士が互いに通信する態様を説明した。いずれの例でも、1つの系(1つの製品)の中に含まれる複数台のモータユニット間の通信を想定していた。
【0147】
しかしながら、異なる系にそれぞれ含まれるモータユニット同士が互いに通信することも可能である。
【0148】
図14は、パワーアシストスーツ30bを装着した人物50と、グリーンハウス60とを示している。グリーンハウス60には、矢印で示す位置に、空調用ファンを回転させる複数のファンモータユニットが設けられている。
【0149】
いま、人物50が、グリーンハウス60内で野菜の収穫作業を行う例を考える。人物50は、パワーアシストスーツ30bを装着して、パワーアシストスーツ30bからのアシスト力を得て野菜を収穫し、野菜を収納した収穫かごを運搬する。
【0150】
本例では、パワーアシストスーツ30bの複数のモータユニットとグリーンハウス60の複数の空調用ファンとが相互に通信し、連携して動作する。
【0151】
たとえば、人物50がパワーアシストスーツ30bを利用して作業をしている位置周辺では、熱のこもり等による温度ムラが発生することが想定される。そこで、人が収穫かごを持って収穫作業をしているときは、パワーアシストスーツの1または複数のモータユニットが、グリーンハウス60の各ファンモータユニットに、現在動作中であることを示す通知を送信する。この通知により、グリーンハウス60の各ファンモータユニットは、人物50がパワーアシストスーツ30bを利用して作業中であることを知る。
【0152】
本実施形態では、グリーンハウス60の各ファンモータユニットは、パワーアシストスーツ30bの位置を示す情報を取得する。パワーアシストスーツ30bの位置は周知の方法で取得され得る。たとえばパワーアシストスーツ30bに無線タグが内蔵されており、無線タグから送信されるビーコン信号を、グリーンハウス60内の1または複数のアンテナ装置によって受信する。周知の到来方向推定アルゴリズム、たとえば最尤推定法、を利用することにより、ビーコン信号の到来方向を推定することができる。これにより、グリーンハウス60内の無線タグの位置、つまりパワーアシストスーツ30bの位置を推定することができる。
【0153】
パワーアシストスーツ30bの位置の情報を取得したグリーンハウス60の各ファンモータユニットは、自律的に自身のモータの回転を制御する。パワーアシストスーツ30bの位置から所定範囲内、たとえば15m以内、に存在するファンモータユニットは、回転速度を通常よりも高める。これにより、パワーアシストスーツ30bの温度ムラの発生を抑制することができる。
【0154】
図15Aは、人物50が、グリーンハウス60の入口62付近で収穫作業を行っているときに回転速度を高める複数のファンモータユニット64を示している。
【0155】
また、
図15Bは、人物50が移動することによって回転速度を高める、さらに他の複数のファンモータユニット66を示している。
【0156】
図15Aおよび
図15Bのいずれの例でも、ファンモータユニット64および66以外の他のファンモータユニットは通常の回転速度で回転している。
【0157】
なお、パワーアシストスーツ30bの総消費電力の大きさから、人物50の運動量の大きさを推定することができる。パワーアシストスーツ30bの各モータユニットがパケットに消費電力の大きさを示すデータを格納して送信することにより、グリーンハウス60の各ファンモータユニットは総消費電力の大きさを算出することができる。総消費電力の大きさに応じて、グリーンハウス60のファンモータユニットはモータの回転速度を増減させればよい。より具体的には、総消費電力の大きさに応じた複数の区分を設け、総消費電力が最も大きい区分に属する場合には、対象となるファンモータユニットは最も速くモータを回転させる。このとき、対象となるファンモータユニットを決定するための「所定範囲」を広げてもよい。一方、総消費電力が最も小さい区分に属する場合には、対象となるファンモータユニットは通常の回転速度よりも高速ではあるが、最速ではない回転速度でモータを回転させる。
【0158】
パワーアシストスーツ30bを、人物50の関節の動きを検出するセンサとして利用することもできる。たとえばグリーンハウス60内に入った人物50の具合が突然悪くなり、人物50が倒れたとする。早急な処置が好ましい上に、倒れたままの状態で長時間が経過すると、グリーンハウス60内の室温によっては人物50が熱中症になる危険性がある。
【0159】
そのような場合を想定して、パワーアシストスーツ30bは、人物50の動きを一定時間、たとえば15秒、検出できているか否かを監視している。相互に通信することにより、いずれのモータユニットも15秒以上モータを駆動させていないことが検出されたときは、各モータユニットは緊急信号に相当するパケットを送信する。当該パケットは、たとえば動作系コマンドとして、データの書き込みを示す「ライトデータ(Write Data)コマンド」に対応する1バイト値"0x02"を含み、さらに属性系コマンドとして、緊急事態であることを示す2バイト値"0x00"を含む。
【0160】
当該パケットを受信した各ファンモータユニットは、「パワーアシストスーツのモータが緊急信号を発信している」ことを示す通知を上位装置150に送信する。上位装置150は、通知の受信に応答して緊急事態が発生していることを管理者または家族に通報する。通報を受けた管理者または家族は、人物50の様子を確認しにグリーンハウス60に向かうことができる。
【0161】
なお、上述の実施形態は一例であって本開示によるマルチモータシステムを制限しない。
【産業上の利用可能性】
【0162】
本開示によるモータユニットは、通信ネットワークを有するマルチモータシステムに利用可能である。当該マルチモータシステムは、複数のモータの制御に広く用いられ得る。
【符号の説明】
【0163】
103 マルチモータシステム
104A 関節機構
106A モータユニット
110A 通信回路
111A バッファ
112A プロセッサ(制御回路)
113A メモリ
114A モータ駆動回路
116A 関節用モータ
104B 関節機構
106B モータユニット
110B 通信回路
111B バッファ
112B プロセッサ(制御回路)
113B メモリ
114B モータ駆動回路
116B 関節用モータ
150 上位装置