(57)【要約】【課題】ＩＤ設定用ハードウエアを追加することなく、各デバイスにＩＤを設定することができるデバイスＩＤ設定装置を提供すること。【解決手段】デバイスＩＤ設定装置は、可動部に設けられたデバイスの動作時のトルク値を取得する取得部と、取得した前記トルク値に基づいて、前記デバイスにデバイスＩＤを設定する設定部と、を備える。【選択図】  図３
2019111582.tif 000002
【特許請求の範囲】
【請求項１】
可動部に設けられたデバイスの動作時のトルク値を取得する取得部と、
取得した前記トルク値に基づいて、前記デバイスにデバイスＩＤを設定する設定部と、
を備えるデバイスＩＤ設定装置。
【請求項２】
前記デバイスを動作させる動作部をさらに備え、
前記デバイスは、前記可動部のうち２つ以上の要素が接続する接続部に配置され、
前記取得部は、前記動作部により動作させられた前記デバイスの動作時のトルク値を取得し、
前記設定部は、取得した前記トルク値に基づいて前記接続部を特定し、特定した前記接続部に基づいて、前記デバイスにデバイスＩＤを設定する請求項１に記載のデバイスＩＤ設定装置。
【請求項３】
前記動作部は、前記デバイスを時計回りまたは反時計回りに動作させ、
前記設定部は、前記デバイスの時計回りの動作時のトルク値または反時計回りの動作時のトルク値に基づいて、前記接続部を特定し、特定した前記接続部に基づいて、前記デバイスにデバイスＩＤを設定する請求項２に記載のデバイスＩＤ設定装置。
【請求項４】
複数のトルク値と、
当該複数のトルク値に一対一で対応付けられた前記接続部及びデバイスＩＤと、
を含むテーブルをさらに備える請求項２または３に記載のデバイスＩＤ設定装置。
【請求項５】
前記トルク値は、前記デバイスの初期動作時のトルク値である請求項１〜４のいずれか１項に記載のデバイスＩＤ設定装置。
【請求項６】
前記可動部は複数あり、当該複数の可動部には、それぞれデバイスが設けられており、
前記設定部は、前記複数のデバイスに異なるデバイスＩＤを設定する請求項１〜５のいずれか１項に記載のデバイスＩＤ設定装置。
【請求項７】
前記複数の可動部にそれぞれ設けられたデバイスには、同一の初期デバイスＩＤが設定されており、
前記設定部は、前記初期デバイスＩＤを書き換えて前記複数のデバイスに異なるデバイスＩＤを設定する請求項６に記載のデバイスＩＤ設定装置。
【請求項８】
前記デバイスは、モータモジュールである請求項１〜７のいずれか１項に記載のデバイスＩＤ設定装置。
【請求項９】
前記要素はロボットの構成要素であり、前記接続部は前記ロボットの関節である請求項２〜４のいずれか１項に記載のデバイスＩＤ設定装置。
【請求項１０】
前記デバイスＩＤ設定装置は前記ロボットの内部に設けられている請求項９に記載のデバイスＩＤ設定装置。
【請求項１１】
前記取得部は、前記デバイスが設定した仮デバイスＩＤを、前記トルク値と共に取得し、
前記設定部は、前記仮デバイスＩＤに代えて、前記トルク値に基づいて前記デバイスに前記デバイスＩＤを設定する請求項１〜１０のいずれか１項に記載のデバイスＩＤ設定装置。
【請求項１２】
前記可動部は複数あり、当該複数の可動部には、それぞれデバイスが設けられており、
前記デバイスＩＤ設定装置は、前記複数のデバイスにそれぞれ仮ＩＤを設定させる仮ＩＤ設定部をさらに備え、
前記仮ＩＤ設定部は、前記複数のデバイスのそれぞれに異なる仮ＩＤが設定されるまで、前記複数のデバイスに前記仮ＩＤを設定させ続ける請求項１〜１１のいずれか１項に記載のデバイスＩＤ設定装置。
【請求項１３】
請求項１〜１２のいずれか１項に記載のデバイスＩＤ設定装置と、
当該デバイスＩＤ設定装置によりデバイスＩＤが設定されるデバイスと、
からなるシステム。
【請求項１４】
可動部に設けられたデバイスの動作時のトルク値を取得する取得ステップと、
取得した前記トルク値に基づいて、前記デバイスにデバイスＩＤを設定する設定ステップと、を有するデバイスＩＤ設定方法。
【請求項１５】
前記デバイスは、前記可動部のうち２つ以上の要素が接続する接続部に配置されており、
前記デバイスＩＤ設定方法は、前記接続部で前記デバイスを動作させるステップをさらに有し、
前記設定ステップは、取得した前記トルク値に基づいて前記接続部を特定し、特定した前記接続部に基づいて、前記デバイスにデバイスＩＤを設定する請求項１４に記載のデバイスＩＤ設定方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、モータモジュール等のデバイスにＩＤ（識別情報、識別番号）を設定する装置及び方法に関する。
【背景技術】
【０００２】
ロボットなどの可動装置は、複数のモータモジュールを有している場合が多い。ロボットの場合、ロボットの複数の関節等に、それぞれモータモジュールが設けられる。各モータモジュールを個別に制御するために、各モータモジュールには個別のデバイスＩＤが設定される。デバイスＩＤは、例えば、各モータモジュールに指示（制御信号）を送信する場合の通信用アドレスとなる。従って、ロボットに使用されるモータモジュールには、ロボットの部位の目的に合ったデバイスＩＤ（識別情報、識別番号）を付与する必要がある。
デバイスにＩＤを設定する場合、１つのマスタ装置（以上、単に「マスタ」と称する）から複数のスレーブ装置（以下、単に「スレーブ」と称する）にＩＤを設定することがある。このような場合のデバイスＩＤ設定技術の一例が、特許文献１に開示されている。特許文献１では、各スレーブにＩＤ設定用信号線を取り付け、ＩＤ設定用信号線には、各スレーブに応じた分圧抵抗が設けられている。そして、当該分圧抵抗により付与される分圧電圧に応じたＩＤが各スレーブに設定されるようになっている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００５−２２９５６１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
特許文献１の技術では、各スレーブにＩＤ設定用信号線を取り付ける必要がある。つまり、特許文献１の技術では、各スレーブにＩＤを設定するために、ＩＤ設定用ハードウエアを追加する必要がある。よって、最終製品にＩＤ設定専用の部品や配線が必要となる。
本発明は、上記した課題を解決するものであり、その目的は、ＩＤ設定用ハードウエアを追加することなく、各デバイスにＩＤを設定することができるデバイスＩＤ設定装置を提供することである。
【課題を解決するための手段】
【０００５】
本発明の１つの態様によるデバイスＩＤ設定装置は、可動部に設けられたデバイスの動作時のトルク値を取得する取得部と、取得した前記トルク値に基づいて、前記デバイスにデバイスＩＤを設定する設定部と、を備える。
【発明の効果】
【０００６】
本発明によれば、デバイスの動作トルク値に基づいて、デバイスＩＤを設定する。よって、ハードウエアを追加することなく、デバイスＩＤを設定することができる。
【図面の簡単な説明】
【０００７】
【図１】実施形態１に係るモータモジュールを備えるロボットを示す図。
【図２】実施形態１のモータモジュールの概略図。
【図３】実施形態１のデバイスＩＤ設定フロー図。
【図４】トルク値とデバイスＩＤの関係を示す図。
【図５】システムモジュールとモータモジュールの間の通信に用いられる信号の概要を示す図。
【発明を実施するための形態】
【０００８】
以下、添付図面を参照して、本発明を実施するための実施形態を詳細に説明する。以下に説明する実施形態は、本発明の実現手段としての一例であり、本発明が適用される装置やシステムの構成や各種条件によって適宜修正または変更されるべきものであり、本発明は以下の実施形態に限定されない。
【０００９】
実施形態１
図１（ａ）は実施形態１に係るロボット１０の正面図である。本実施形態では、ロボット１０の下肢に設けられた６つのモータモジュール（図２（ａ）の符号６０）にＩＤを設定する場合を説明する。モータモジュールはデバイスの一種であるので、モータモジュールに設定されるＩＤは、以下の説明においてデバイスＩＤと称する場合もある。
【００１０】
（ロボットの構成）
図１（ａ）に示すように、ロボット１０は、頭部１２、胴部１４、左上腕１６、左前腕１８、左手２０、右上腕２２、右前腕２４、右手２６、鼠径部２８、左大腿３０、左下腿３２、左足３４、右大腿３６、右下腿３８及び右足４０を有している。また、ロボット１０は、上記した各部の間に可動部を有している。具体的には、例えば、ロボット１０の下肢においては、鼠径部２８と右大腿３６の間に第１可動部４２を有し、鼠径部２８と左大腿３０の間に第２可動部４４を有し、右大腿３６と右下腿３８の間に第３可動部４６を有し、左大腿３０と左下腿３２の間に第４可動部４８を有し、右下腿３８と右足４０の間に第５可動部５０を有し、左下腿３２と左足３４の間に第６可動部５２を有している。第１可動部４２は右腰、第２可動部４４は左腰、第３可動部４６は右膝、第４可動部４８は左膝、第５可動部５０は右足首、第６可動部５２は左足首と称することもできる。本実施形態では、第１可動部４２〜第６可動部５２に、それぞれ、１つのモータモジュール６０が設けられているとする。第１可動部４２〜第６可動部５２に設けられる６つのモータモジュール６０は同一の構成を有するとする。なお、ロボット１０の上肢の可動部にもモータモジュールが設けられているが、以下の記載では、ロボット１０の上肢の可動部に設けられたモータモジュールにＩＤを設定する場合の説明は省略する。
【００１１】
ロボット１０の胴部１４には、システムモジュール５４が設けられている。システムモジュール５４は、ロボット１０の全体の動作を制御する。また、システムモジュール５４は、第１可動部４２〜第６可動部５２に設けられた６つのモータモジュールにデバイスＩＤを設定する。システムモジュール５４はマスタと称することができ、６つのモータモジュールはスレーブと称することができる。システムモジュール５４と６つのモータモジュールは有線または無線で通信可能に接続されている。デバイスＩＤは、システムモジュール５４が６つのモータモジュールを制御する際の、各モータモジュールの通信アドレスの役割を果たす。
本実施形態において、各可動部は、２つの要素が接続する接続部（関節）である。例えば、第２可動部４４は、鼠径部２８と左大腿３０の接続部（関節）である。当該接続部に設けられたモータモジュールが回転駆動される（具体的には、モータモジュール内のモータが回転する）と、ロボット１０が動く。モータモジュールが回転駆動されると、ロボット１０は、例えば、図１（ｂ）に示すような姿勢を取ることができる。
【００１２】
（モータモジュールの構成）
図２（ａ）はモータモジュール６０の外観斜視図であり、図２（ｂ）はモータモジュール６０のブロック図である。図２（ａ）に示すように、モータモジュール６０は、本体６１と出力軸６２を有する。モータモジュール６０は、サーボモータモジュールである。
上記したように、本実施形態では６つのモータモジュールが同一の構成を有している。
また、６つのモータモジュールには、モータモジュールの製造当初、同一のデバイスＩＤ（初期デバイスＩＤ）が付与されているとする。そして、システムモジュール５４によるデバイスＩＤ設定が行われる前にあっては、同一のデバイスＩＤが付与されている６つのモータモジュールがロボット１０に組み込まれているとする。
図２（ｂ）に示すように、モータモジュール６０は、モータ制御ＭＣＵ（Ｍｉｃｒｏ  Ｃｏｎｔｒｏｌ  Ｕｎｉｔ）６５、モータ６６、ギヤ６７及びセンサ６８を備える。本明細書において、モータモジュール６０が回転駆動するというのは、モータ６６が回転することを意味する。
【００１３】
モータ制御ＭＣＵ６５は、センサ６８からの検知信号に基づいてモータ６６を回転させる。また、モータ制御ＭＣＵ６５は、システムモジュール５４からの指示に応じて、仮ＩＤを自ら決める。本実施形態において、仮ＩＤは２桁の数字であるとする。モータ制御ＭＣＵ６５は、仮ＩＤ生成のための乱数発生機能を有している。また、モータ制御ＭＣＵ６５は、システムモジュール５４との通信を行うための通信機能も有している。
ギヤ６７は、モータ６６の回転出力を受け取り、モータ制御ＭＣＵ６５の制御の下で、モータ６６の出力トルクや回転速度を変える。
センサ６８は、例えば、モータ６６の温度、電流及び軸位置（出力軸６２の角度位置）を検知する。センサ６８は、図２（ｂ）において１つのブロックで描かれているが、温度センサ、電流センタ及び軸位置センサに分かれていてもよい。モータ制御ＭＣＵ６５は、例えば、センサ６８が検知した電流と軸位置に基づいて、モータのトルク（負荷）を算出（推定）することができる。
【００１４】
（デバイスＩＤの設定）
次に、図３を参照して、６つのモータモジュール６０にデバイスＩＤを設定するフローを説明する。以下の説明において、第１可動部４２に設けられたモータモジュール６０は、第１モータモジュール６０ａと称し、第２可動部４４に設けられたモータモジュール６０は、第２モータモジュール６０ｂと称し、第３可動部４６に設けられたモータモジュール６０は、第３モータモジュール６０ｃと称し、第４可動部４８に設けられたモータモジュール６０は、第４モータモジュール６０ｄと称し、第５可動部５０に設けられたモータモジュール６０は、第５モータモジュール６０ｅと称し、第６可動部５２に設けられたモータモジュール６０は、第６モータモジュール６０ｆと称する。
第１モータモジュール６０ａ〜第６モータモジュール６０ｆの製造時において、第１モータモジュール６０ａ〜第６モータモジュール６０ｆには、同一のデバイスＩＤが設定されている。そして、同一のデバイスＩＤが設定されている第１モータモジュール６０ａ〜第６モータモジュール６０ｆが、ロボット１０に組み込まれているとする。図３のフローはこの状態においてスタートする。
【００１５】
まず、Ｓ１０において、システムモジュール（マスタ）５４が第１モータモジュール６０ａ〜第６モータモジュール６０ｆに、ブロードキャスト通信で、「仮ＩＤを決めて返送せよ」という指示と、「少し動きトルク値を返送せよ」という指示を送る。システムモジュール５４からの指示に応じて各モータモジュールが回転駆動するので、システムモジュール５４はモータモジュール６０を動作させる動作機能を有すると言える。また、システムモジュール５４からの指示に基づいて各モータモジュールが仮ＩＤを設定するので、システムモジュール５４は仮ＩＤを設定させる仮ＩＤ設定機能を備えると言える。
【００１６】
Ｓ１１において、システムモジュール５４からの指示を受けた第１モータモジュール６０ａは、疑似乱数で、第１モータモジュール６０ａの仮ＩＤを決める。
また、Ｓ１２において、第１モータモジュール６０ａは、システムモジュール５４からの指示に応じて、少しモータ６６を回転させ、その時のトルク値を算出（測定）する。
そして、Ｓ１３において、第１モータモジュール６０ａは、仮ＩＤと測定したトルク値をシステムモジュール５４に送信する。この送信により、システムモジュール５４は、第１モータモジュール６０ａの仮ＩＤと動作時のトルク値を取得する。Ｓ１３の「Ｓｏｕｒｃｅ＝仮ＩＤ」は、信号の発信元を示す情報として、第１モータモジュール６０ａの仮ＩＤを使用していることを示している。Ｓ１３の「Ｄｅｓｔｉｎａｔｉｏｎ＝Ｍａｓｔｅｒ」は、Ｓ１３の信号送信における送信先がシステムモジュール５４であることを示している。
【００１７】
Ｓ１４において、システムモジュール５４からの指示を受けた第２モータモジュール６０ｂは、疑似乱数で、第２モータモジュール６０ｂの仮ＩＤを決める。
また、Ｓ１５において、第２モータモジュール６０ｂは、システムモジュール５４からの指示に応じて、少しモータ６６を回転させ、その時のトルク値を測定する。
そして、Ｓ１６において、第２モータモジュール６０ｂは、仮ＩＤと測定したトルク値をシステムモジュール５４に送信する。この送信により、システムモジュール５４は、第２モータモジュール６０ｂの仮ＩＤと動作時のトルク値を取得する。
同様に、第３モータモジュール６０ｃ〜第６モータモジュール６０ｆは、疑似乱数で、それぞれ、仮ＩＤを決める。また、第３モータモジュール６０ｃ〜第６モータモジュール６０ｆは、少しモータ６６を回転させ、その時のトルク値を測定する。そして、第３モータモジュール６０ｃ〜第６モータモジュール６０ｆは、ぞれぞれ、仮ＩＤと測定したトルク値をシステムモジュール５４に送信する。この送信により、システムモジュール５４は、第３モータモジュール６０ｃ〜第６モータモジュール６０ｆの仮ＩＤと動作時のトルク値を取得する。
【００１８】
Ｓ１７において、システムモジュール５４は、第１モータモジュール６０ａ〜第６モータモジュール６０ｆから受信した６つの仮ＩＤが全て異なっているかを判定する。同じ仮ＩＤがあった場合、システムモジュール５４は、全ての仮ＩＤが異なるようになるまで、「仮ＩＤを決めて返送せよ」という指示を第１モータモジュール６０ａ〜第６モータモジュール６０ｆに送信する。６つの仮ＩＤが全て異なるＩＤになったならば、Ｓ１８に進む。
Ｓ１８において、システムモジュール５４は、各モータモジュールについて、受信したトルク値に基づいて、トルク−デバイスＩＤ表（図４）を用いて、本ＩＤを特定（決定）する。
【００１９】
図４は、本実施形態で使用するトルク−デバイスＩＤ表７０を示している。トルク−デバイスＩＤ表７０は、測定したトルク値と、デバイスＩＤと、デバイス（モータモジュール）設置位置との関係を示す表である。測定したトルク値は、システムモジュール５４からの「少し動きトルク値を返送せよ」という指示に基づいた値であるので、モータ６６の動き出しのトルク値である。このトルク値は、表７０では「初期トルク値」と記載されている。表７０のトルク値の単位はＮｍである。なお、以下の記載において、トルク値を説明する際に単位（Ｎｍ）は省略する。例えば、トルク値「３」は３Ｎｍを意味する。
【００２０】
ロボット１０を動かす場合、モータモジュールの設置位置により、必要なトルク値が異なる。よって、トクル値が分かれば、ロボット１０のどの部位（どの可動部）に設置されたモータモジュールのトルク値であるかが分かる。本実施形態では、予め、右腰に設置されるモータモジュールにはデバイスＩＤ「１」が設定され、左腰に設置されるモータモジュールにはデバイスＩＤ「２」が設定され、右膝に設置されるモータモジュールにはデバイスＩＤ「３」が設定され、左膝に設置されるモータモジュールにはデバイスＩＤ「４」が設定され、右足首に設置されるモータモジュールにはデバイスＩＤ「５」が設定され、左足首に設置されるモータモジュールにはデバイスＩＤ「６」が設定されることが決められているとする。
トルク−デバイスＩＤ表７０は、ロボット１０を製造する際に、予め用意し、システムモジュール５４に記憶させておく。
【００２１】
本実施形態では、システムモジュール５４がＳ１０で「時計回りに少し回転した際のトルク値と、反時計回りに少し回転した際のトルク値を返送せよ」という指示を出すとする。この場合、システムモジュール５４が、時計回りに回転した際のトルク値として「３」を受信し、反時計回りに回転した際のトルク値として「１」を受信したならば、当該トルク値は右膝に設けられたモータモジュール６０ｃから受信したものであることが分かる。よって、システムモジュール５４は、当該モータモジュール６０ｃに、本ＩＤとして「３」を設定すべきであることを特定（決定）する。
システムモジュール５４が、時計回りに回転した際のトルク値として「４」を受信し、反時計回りに回転した際のトルク値として「１」を受信したならば、当該トルク値は右足首に設けられたモータモジュール６０ｅから受信したものであることが分かる。よって、システムモジュール５４は、当該モータモジュール６０ｅに、本ＩＤとして「５」を設定すべきであることを特定する。
【００２２】
トルク−デバイスＩＤ表７０において、例えば、時計回りの初期トルク値が右膝は「３〜４」と記載され、右足首は「４〜５」と記載されている。これは、時計回りに回転した際のトルク値は、右足首の方が右膝より大きい値となることを示している。例えば、時計回りに回転した際の右膝のトルク値が「３」であれば、右足首のトルク値は「３」より大きな値（例えば「４」）になり、時計回りに回転した際の右膝のトルク値が「４」であれば、右足首のトルク値は「４」より大きな値（例えば「５」）になる。
【００２３】
また、時計回りの初期トルク値については、右腰は「０．２〜０．６」と記載され、左腰は「０．１〜０．５」と記載されている。これは、時計回りに回転した際のトルク値は、右腰の方が左腰より大きい値となることを示している。例えば、時計回りに回転した際の右腰のトルク値が「０．２」であれば、左腰のトルク値は「０．２」より小さい値（例えば「０．１」）になり、時計回りに回転した際の右腰のトルク値が「０．３」であれば、左腰のトルク値は「０．３」より小さい値（例えば「０．２」）になる。
このように、本実施形態では、受信したトルク値に基づいて、トルク−デバイスＩＤ表７０を用いて、当該モータモジュールの設置位置（どの可動部に設けられたか）を特定し、その後、当該可動部の位置に基づいて、設定すべきデバイスＩＤを決定することができる。
【００２４】
Ｓ１８において、システムモジュール５４が、各モータモジュールの本ＩＤを特定したならば、Ｓ１９に進む。
Ｓ１９において、システムモジュール５４は、第１モータモジュール６０ａに「本ＩＤをデバイスＩＤとして設定せよ」という指示を送る。本実施形態のロボット１０では、６つのモータモジュール６０ａ〜６０ｆにデバイスＩＤ「１」〜「６」を設定することが求められている（予め決められている）。Ｓ１９以前の状態では、６つのモータモジュール６０ａ〜６０ｆには６つの異なる仮ＩＤが設定されているが、ロボット１０を適切に制御するためには、仮ＩＤに代えて本ＩＤを各モータモジュールに設定する必要がある。仮ＩＤは乱数で決められた値なので、どのような値が各モータモジュールに設定されているか不明である。システムモジュール５４は、右腰に設けられた第１モータモジュール６０ａにはデバイスＩＤ「１」が設定され、左腰に設けられた第２モータモジュール６０ｂにはデバイスＩＤ「２」が設定され、右膝に設けられた第３モータモジュール６０ｃにはデバイスＩＤ「３」が設定され、左膝に設けられた第４モータモジュール６０ｄにはデバイスＩＤ「４」が設定され、右足首に設けられた第５モータモジュール６０ｅにはデバイスＩＤ「５」が設定され、左足首に設けられた第６モータモジュール６０ｆにはデバイスＩＤ「６」が設定されることを前提として構成されている。
【００２５】
Ｓ１９でシステムモジュール５４が第１モータモジュール６０ａに指示を送る際、システムモジュール５４は、例えば、図５に示すような通信プロトコルを使用する。通信プロトコルについては、後述する。
Ｓ２０において、第１モータモジュール６０ａは、システムモジュール５４から指定された本ＩＤを、第１モータモジュール６０ａのデバイスＩＤとして設定する。
Ｓ２１において、システムモジュール５４は、第２モータモジュール６０ｂに「本ＩＤをデバイスＩＤとして設定せよ」という指示を送る。
Ｓ２２において、第２モータモジュール６０ｂは、システムモジュール５４から指定された本ＩＤを、第２モータモジュール６０ｂのデバイスＩＤとして設定する。
同様に、システムモジュール５４は、第３モータモジュール６０ｃ〜第６モータモジュール６０ｆに「本ＩＤをデバイスＩＤとして設定せよ」という指示を送る。そして、第３モータモジュール６０ｃ〜第６モータモジュール６０ｆは、システムモジュール５４から指定された本ＩＤを、第３モータモジュール６０ｃ〜第６モータモジュール６０ｆのデバイスＩＤとして設定する。
【００２６】
図５は、システムモジュール５４と各モータモジュールとの間の通信に用いられる通信パケット（プロトコル）を示している。
Ｈｅａｄｅｒは、通信パケットの始まりを示す定形の情報である。
ＤｅｖｉｃｅＩＤは、システムモジュール５４が各モータモジュールに送るデバイスＩＤである。ＤｅｖｉｃｅＩＤは、デバイスＩＤの通信先を特定する情報（Ｄｅｓｔｉｎａｔｉｏｎ）と、デバイスＩＤの発信元を特定する情報（Ｓｏｕｒｃｅ）を含む。全デバイスをＤｅｓｔｉｎａｔｉｏｎとして指定することも可能である。
Ｌｅｎｇｔｈは、通信で有効なバイト長さである。
【００２７】
ＣｏｍｍｏｎＤａｔａＳｔｒｕｃｔｕｒｅ（共通データ構造）は、目的のデバイスに指示する情報であり、ＯｐｅｒａｔｉｏｎとＡｔｔｉｒｂｕｔｅを含む。Ｏｐｅｒａｔｉｏｎは、目的のデバイスへの動作系コマンドであり、例えば、ブロードキャスト、ライト、リード、ストップ、リセット、イニシャライズ等の操作情報である。Ａｔｔｒｉｂｕｔｅは、目的のデバイスへの属性系コマンドであり、例えば、時計回りに３０度回転せよ、反時計回りに３０度回転せよ等の情報である。
Ｃｈｅｃｋｓｕｍは、通信したデータが正常か否かを確認するために使用する情報である。
図５の通信パケットは、システムモジュール５４が各モータモジュール６０へ指示を送る場合に用いられるパケットである。なお、図５の通信パケットは、各モータモジュール６０がシステムモジュール５４へ信号を送る際に用いられてもよい。
【００２８】
（実施形態１の効果）
本実施形態によれば、システムモジュール５４は、各モータモジュール６０から取得したトルク値に基づいて、各モータモジュール６０にデバイスＩＤを設定している。つまり、本実施形態によれば、デバイスの動作トルク値に基づいて、デバイスＩＤを設定することができる。よって、モータモジュール６０にデバイスＩＤ設定用信号線などのハードウエアを追加することなく、モータモジュール６０にデバイスＩＤを設定することができる。本実施形態では、既存のロボットに設けるシステムモジュール５４のソフトウエアを変更するだけで、複数のモータモジュール６０に異なるデバイスＩＤを設定することができる。
【００２９】
ロボット１０は複数のモータモジュール６０を備え、各モータモジュール６０が個別に持つデバイスＩＤは、各モータモジュール６０とシステムモジュール５４とが通信する際のアドレスとなる。よって、当該アドレスを使用することにより、各モータモジュール６０とシステムモジュール５４は、適切な通信を行うことができる。
【００３０】
従来は、ロボットにモータモジュールを組み込む前に、モータモジュールに個別のデバイスＩＤを付与（設定）して、当該デバイスＩＤに従った目的の部位に各モータモジュールを組み込むという手法も採用されていた。このような手法では、例えば、６つのデバイスＩＤを設定する場合には、モータモジュールをロボットに組み込む前に、６つの異なるモータモジュールを管理する必要があった。本実施形態によれば、複数のモータモジュールをロボットに組み込む際には、複数のモータモジュールには同一のデバイスＩＤが設定されている。よって、最終的に６つのモータモジュールに６つの異なるデバイスＩＤを設定する場合でも、モータモジュールをロボットに組み込む前にあっては、６つの異なるモータモジュールを管理するという必要はなくなる。本実施形態によれば、複数のモータモジュール６０をロボット１０に組み込んだ後に、自動でデバイスＩＤを設定することができる。本実施形態では、ロボット１０に複数の同じモータモジュール６０を組み込んだ後に、異なるデバイスＩＤをモータモジュール６０に設定する。よって、ロボット１０を組み立てるときには、どのモータモジュールをどの部位に設けるかについて、管理する必要がなくなる。
ロボット１０を組み立てた直後の状態では、６つのモータモジュールに重複したデバイスＩＤが設定されている。本実施形態によれば、重複したデバイスＩＤ（初期デバイスＩＤ）を、ロボット１０の組み立て後に、重複しないデバイスＩＤに書き換えることができる。
【００３１】
（変形例）
上記した本実施形態では６つのモータモジュールが同一の構成を有するとしたが、全てのモータモジュールが同じ構成を有さなくてもよい。例えば、第５可動部５０と第６可動部５２に設けられるモータモジュール６０ｅと６０ｆには大きな負荷が作用すると考えられるので、第５可動部５０と第６可動部５２に設けられるモータモジュール６０ｅと６０ｆは、他の可動部に設けられるモータモジュールより大きな負荷に耐えられる構造のものを採用してもよい。
【００３２】
図３のフローでは、Ｓ１０においてシステムモジュール５４が第１モータモジュール６０ａ〜第６モータモジュール６０ｆに、「仮ＩＤを決めて返送せよ」という指示と、「少し動きトルク値を返送せよ」という指示を送った。本実施形態は、このようなフローに限定されない。例えば、Ｓ１０において、システムモジュール５４は第１モータモジュール６０ａ〜第６モータモジュール６０ｆに、「仮ＩＤを決めて返送せよ」という指示のみを送ってもよい。この場合、システムモジュール５４は、Ｓ１７の後に、「少し動きトルク値を返送せよ」という指示を第１モータモジュール６０ａ〜第６モータモジュール６０ｆに送る。
【００３３】
上記した実施形態では、センサ６８は、検知した電流と軸位置に基づいて、モータのトルク（負荷）を算出するとしたが、トルク値を計測するトルクセンサを設けてもよい。
上記した実施形態では、システムモジュール５４は、ロボット１０の胴部１４の中に設けられるとしたが、システムモジュール５４の設置位置は胴部１４の中に限定されない。例えば、ロボット１０の外部に設置してもよい。
上記した実施形態では、デバイスＩＤは「１」〜「６」であったが、本発明のデバイスＩＤは「１」〜「６」以外の識別番号あるいは識別情報であってもよい。
トルク−デバイスＩＤ表７０は図４に示したものに限定されない。本実施形態で使用するトルク−デバイスＩＤ表は、複数のトルク値と、当該複数のトルク値に対応付けられた接続部及びデバイスＩＤとを含むものであればよい。
【００３４】
上記した実施形態では、本発明を複数のモータデバイスを備えるロボットに適用したが、本発明の適用はこれに限定されない。本発明は１つまたは複数のモータ等のデバイスに識別情報や識別番号を付与する場合に適用することができる。例えば、本発明は、モータを備える制御装置やシステムに適用することができる。
【符号の説明】
【００３５】
１０…ロボット、４２…第１可動部、４４…第２可動部、４６…第３可動部、４８…第４可動部、５０…第５可動部、５２…第６可動部、５４…システムモジュール、６０…モータモジュール
【図１】
2019111582.tif 000003
【図２】
2019111582.tif 000004
【図３】
2019111582.tif 000005
【図４】
2019111582.tif 000006
【図５】
2019111582.tif 000007
【国際調査報告】
2019111582.tif 000008
2019111582.tif 000009