ROBOTIS e-Manual v1.14.00
[MX-64T] [MX-64R]
※ コントロールテーブルのコンプライアンス設定部分がPID設定に取り替えられました。使用時にご注意ください。
※ Control tableのPID順序が0x1Eバージョン以降からDIPに変更されました。使用時にご参照ください。
※ MX-64T(TTL)とMX-64R(RS485)は通信方式のみ違って 性能と機能は同じです。
位置センサ : Contactless absolute encoder (12BIT,360度)
通信速度 : 8000 bps ~ 4.5 Mbps
制御アルゴリズム : PID CONTROL
最小制御角:0.088°
§ 関節モード(0°〜360°)
§ 車輪モード(無限回転)
ギア比:200:1
6.0N.m (at 12V, 4.1A)
7.3N.m (at 14.8V, 5.2A)
63rpm (at 12V)
78rpm (at 14.8V)
MX-64R (RS485 Asynchronous Serial Communication (8bit,1stop, No Parity))
MX-64R (RS485 Multi Drop Bus)
![]() |
電源供給時の注意項目! -安定的な電源供給のためにロボティズ制御器、またSMPS2Dyanamixelを通じて電源供給することをおすすめします。 -電源が入ってない状態でダイナミクセルと電源を連結、スウィーツでON/OFFしてください。 |
Control Tableはダイナミクセルの内部に存在する値で、ダイナミクセルの現在の状態と駆動に関するDataで構成されています。
ユーザーは、Instruction Packetを通じてControl Tableのデータを変更することにより、ダイナミクセルを制御することができます。
EEPROM and RAM
RAM Areaのデータは、電源が印加されるごとに再度初期値に設定されます。しかし、EEPROM Area データ場合、値を設定すると電源がOffになってもその値が保存されます。
Address
Addressは、データの位置です。ダイナミクセルにデータの書き込みや読み取りをするためには、PacketにそのデータがあるAddressを指定しなければなりません。
アクセス
ダイナミクセルデータには、読み取り専用(R)と読み書きが可能なもの(RW)の2つがあります。読み取り専用(R)は、主にセンシング用に使用されるデータであり、
読み書きが可能なもの(RW)は、駆動のためのデータです。
初期値
Control Tableの右に表示される初期値は、EEPROM領域のデータの場合、工場出荷値であり、RAM Areaデータの場合は、電源が印加された時の初期値です。
上位バイト/下位バイト
ControlTableには、名称は同じでありますが、(L)と(H)が後ろについてAddressが区分されているものがあります。これは、16bitが必要なデータを8bitずつ
各Address(low、High)に分けて表現したものです。この2つのAddressは、1つのInstruction Packetに同時にwriteされなければなりません。
Area |
アドレス(16進数) |
名称 |
意味 |
アクセス |
初期値(16進数) |
E E P R O M |
0 (0X00) |
モデル番号の下位バイト |
R |
54 (0X36) |
|
1 (0X01) |
モデル番号の上位バイトr |
R |
1 (0X01) |
||
2 (0X02) |
ファームウェアバージョンの情報 |
R |
- |
||
3 (0X03) |
ダイナミクセルのID |
RW |
1 (0X01) |
||
4 (0X04) |
ダイナミックセルの通信速度 |
RW |
34 (0X22) |
||
5 (0X05) |
応答遅延時間 |
RW |
250 (0XFA) |
||
6 (0X06) |
時計回りの限界角値の下位バイト |
RW |
0 (0X00) |
||
7 (0X07) |
時計回りの限界角度値の上位バイト |
RW |
0 (0X00) |
||
8 (0X08) |
反時計回りの限界角度値の下位バイト |
RW |
255 (0XFF) |
||
9 (0X09) |
反時計回りの限界角度値の上位バイト |
RW |
15 (0X0F) |
||
11 (0X0B) |
内部限界温度 |
RW |
80 (0X50) |
||
12 (0X0C) |
最低限界値電圧 |
RW |
60 (0X3C) |
||
13 (0X0D) |
最高限界値電圧 |
RW |
160 (0XA0) |
||
14 (0X0E) |
トルク限界値の下位バイト |
RW |
255 (0XFF) |
||
15 (0X0F) |
トルク限界値の上位バイト |
RW |
3 (0X03) |
||
16 (0X10) |
応答レベル |
RW |
2 (0X02) |
||
17 (0X11) |
アラーム用LEDの機能 |
RW |
36 (0X24) |
||
18 (0X12) |
アラーム用シャットダウン(Shut down)機能 |
RW |
36 (0X24) |
||
19 (0X14) |
Multi Turn Offset(L) |
マルチターンオフセットの下位バイト |
RW |
0 (0X00) |
|
20 (0X15) |
Multi Turn Offset(H) |
マルチターンオフセットの上位バイト |
RW |
0 (0X00) |
|
21 (0X16) |
Resolution Divider |
レゾリューションディバイダー |
RW |
1 (0X01) |
|
R A M |
24 (0X18) |
トルクのOn / Off |
RW |
0 (0X00) |
|
25 (0X19) |
LED On/Off |
RW |
0 (0X00) |
||
26 (0X1A) |
Derivative Gain |
RW |
0 (0X00) |
||
27 (0X1B) |
Integral Gain |
RW |
0 (0X00) |
||
28 (0X1C) |
Proportional Gain |
RW |
32 (0X20) |
||
30 (0X1E) |
目標位置値の下位バイト |
RW |
- |
||
31 (0X1F) |
目標位置値の上位バイト |
RW |
- |
||
32 (0X20) |
目標速度値の下位バイト |
RW |
- |
||
33 (0X21) |
目標速度値の上位バイト |
RW |
- |
||
34 (0X22) |
トルク限界値の下位バイト |
RW |
ADD14 |
||
35 (0X23) |
トルク限界値の上位バイト |
RW |
ADD15 |
||
36 (0X24) |
現在位置値の下位バイト |
R |
- |
||
37 (0X25) |
現在位置値の上位バイト |
R |
- |
||
38 (0X26) |
現在速度値の下位バイト |
R |
- |
||
39 (0X27) |
現在速度値の上位バイト |
R |
- |
||
40 (0X28) |
現在荷重値の下位バイト |
R |
- |
||
41 (0X29) |
現在荷重値の上位バイト |
R |
- |
||
42 (0X2A) |
現在の電圧 |
R |
- |
||
43 (0X2B) |
現在の温度 |
R |
- |
||
44 (0X2C) |
Instructionの登録状況 |
R |
0 (0X00) |
||
46 (0X2E) |
移動の有無 |
R |
0 (0X00) |
||
47 (0X2F) |
EEPROMのロック |
RW |
0 (0X00) |
||
48 (0X30) |
Punch値の下位バイト |
RW |
0 (0X00) |
||
49 (0X31) |
Punch値の上位バイト |
RW |
0 (0X00) |
||
68 (0X44) |
モータが消費している電流量の下位バイト |
R |
- |
||
69 (0X45) |
モータが消費している電流量の上位バイト |
R |
- |
||
70 (0X46) |
トルク制御モード |
RW |
0 (0X00) |
||
71 (0X47) |
目標トルク値の下位バイト |
RW |
0 (0X00) |
||
72 (0X48) |
目標トルク値の上位バイト |
RW |
0 (0X00) |
||
73 (0X49) |
目標加速度値 |
RW |
0 (0X00) |
ダイナミクセルのモデル番号です。
ダイナミクセルファームウェアのバージョンです。
ダイナミクセルを識別するための固有の番号です。
0〜253(0xFD)まで使用可能で、254(0xFE)はブロードキャスト(Broadcast)のIDとして特別に使用されます。
Instruction packetを送信するとき、ブロードキャストのIDを使用すると、すべてのダイナミクセルに命令を下すことができます。
接続されたダイナミクセルのIDが重複しないように注意してください。 |
コントローラと通信するための通信速度です。
0〜254(0xFE)まで使用可能です。
Valueの値が0〜249の場合:
Baudrate(BPS) = 2000000 / (Data + 1)
Value |
設定 BPS |
目標 BPS |
誤差 |
1 |
1000000.0 |
1000000.0 |
0.000 % |
3 |
500000.0 |
500000.0 |
0.000 % |
4 |
400000.0 |
400000.0 |
0.000 % |
7 |
250000.0 |
250000.0 |
0.000 % |
9 |
200000.0 |
200000.0 |
0.000 % |
16 |
117647.1 |
115200.0 |
-2.124 % |
34 |
57142.9 |
57600.0 |
0.794 % |
103 |
19230.8 |
19200.0 |
-0.160 % |
207 |
9615.4 |
9600.0 |
-0.160 % |
Valueの値が250以上の場合:
Value |
設定 BPS |
目標 BPS |
誤差 |
250 |
2250000.0 |
2250000.0 |
0.000 % |
251 |
2500000.0 |
2500000.0 |
0.000 % |
252 |
3000000.0 |
3000000.0 |
0.000 % |
参考:UARTはBaudrate誤差が3%以内であると、通信に支障がありません。 |
コントローラからInstruction Packetを受信した後、Status Packetを返還するまでの時間です。
0〜254(0xFE)まで使用可能であり、単位は2usecです。
例えば、値が10の場合、20 usecだけ時間が経過した後にStatus Packetを応答します。
動作が許可される角度を設定することができます。
値の範囲と単位は、Goal Position(Address 30、31)と同じです。
CWとCCWの値によって、次の2つの動作モードを設定することができます。
動作方式 |
CW / CCW |
車輪モード |
両方とも0の値 |
関節モード |
両方とも0以外の値 |
マルチターンモード |
両方とも4095の値 |
車輪モードは、モータが無限回転をするため、車輪型駆動ロボットに使用できます。
関節モードは、特定の角度での制御が可能であり、多関節ロボットに使用できます。
マルチターンモードは関節モードのように特定角度で制御が可能で -28671 まで制御できます。
零点位置調節ができます。この値は Present position(36) に加わります。
Present position = 実際位置 + Multi Turn offset になります。
初期値は0で、値の範囲は -24576 ~ 24576 です。
モーターの実際位置が 2048 である時に Multi Turn offset = 1024 を適用するとモーターは回転しないですが present position の値は 3072 になります。
参考:マルチターンモード(multi turn mode)のみ、この値が適用され、以外のモードではこの値は無視されます。 |
モーターのレゾリューションを変更することが出来ます。
初期値は1で 1~4 まで使用できます。
モーターのレゾリューションを下げて CW、CCW 方向に回転数を増やすことが出来ます。
各方向に最大28回まで回転できます。
Present position = 実際位置 / Resolution Divider
例え、実際位置の値が 2048 の時、Resolution Divider の値が 2 だったら 2048 / 2 = 1024. すなわち Present position の値は 1024 になります。
このように Resolution Divider の値を 2 に変更すると、モーターの一回りのレゾリューションは 2048 になります。
Multi Turn offset と Resolution Divider を共に使用する場合、Present Position は下のように計算出来ます。
Present position = (実際位置 / Resolution Divider) + Multi Turn offset
モーターの実際位置が 2048 である時に Multi Turn offset = 1024、Resolution Divider = 4 を適用するとモーターは回転しないですが Present position の値は 1535 になります。
参考:マルチターンモード(multi turn mode)のみ、この値が適用され、以外のモードではこの値は無視されます。 |
動作温度の上限値です。
使用範囲は10〜99(0x10〜0x63)であり、単位は摂氏温度です。
例えば、値が80であると、80℃です。
内部の温度がこの値を超える場合は、Status PacketのERRORのOver Heating Error Bit(Bit2)が「1」に設定されて返還され、Alram LED / Shutdownのフラグ(flag)のうち、過熱(Overheating)が設定されていると、機能が発揮されます。
注意:温度の上限デフォルト値よりも高く設定しないでください。 温度アラームのシャットダウンが発生した場合、20分以上休憩して、ダイナミクセルの温度を十分に下げた後、使用してください。温度が高い状態での使用時に製品が破損する恐れがあります。 |
The Lowest (Highest) Limit Voltage
電圧動作範囲の上限と下限値です。
上限と下限はそれぞれ50〜250(0x32〜0x96)まで使用可能であり、単位は0.1Vです。
例えば、値が80であると、8Vです。
現在の電圧の値がこの範囲を超える場合、Status PacketのERRORのVoltage Range Error Bit(Bit0)が「1」に設定されて返還され、Alarm LED/Shutdown
のフラグ(flag)のうち、入力電圧エラー(Input Volatage Error)が設定されていると、機能が発揮されます。
モータの最大出力の制限値です。
0〜1023(0x3FF)まで使用可能であり、単位は、約0.1%です。
例えば、値が512であると、約50%であり、最大出力対比50%だけを使用するという意味です。
電源が入るとTorque Limit(Address 34、35)は、この値を初期値として使用します。
状態パケット(Status Packet)の変換方式を決定します。
値 |
動作方式 |
0 |
すべての命令に対して変換しない(ただし、PING命令は除く) |
1 |
READ命令に対してのみ変換する。 |
2 |
すべての命令に対して変換する。 |
参考:命令パケット(Instruction packet)のIDがブロードキャストIDの場合は、この値に関係なく状態パケット(Status Packet)が変換されません。 |
ダイナミクセルは、動作中に発生する危険な状況を感知して、自らを保護することができます。
設定することができる危険な状況は、以下の表のとおりです。
Bit |
名称 |
内容 |
Bit 7 |
0 |
- |
Bit 6 |
Instruction Error | 定義されてないInstructionが送信された場合、またはreg_write命令なしでAction命令が渡された場合 |
Bit 5 |
Overload Error | モータの最大出力で制御することができない荷重が継続的に適用される場合 |
Bit 4 |
CheckSum Error | 送信されたInstruction PacketのCheckSumが合わない場合 |
Bit 3 |
Range Error | 該当Addressの値の範囲外の値をInstruction Packetに送信する場合 |
Bit 2 |
OverHeating Error | 内部の温度が設定されて動作温度範囲を超えている場合 |
Bit 1 |
Angle Limit Error | 適用したGoal Positionが設定したCW / CCW Angle Limitit範囲を超えている場合 |
Bit 0 |
Input Voltage Error | 印加された電圧が設定された動作電圧範囲を超えている場合 |
各Bitの機能は、「OR」の論理が適用されるので、重複設定が可能です。つまり、0X05(2進数:00000101)に設定されている場合、Input Voltage ErrorとOverheating Errorの発生、両方をすべて感知することができます。
危険な状況が発生すると、Alarm LEDの場合はLEDを点滅させ、Alarm Shutdownの場合はTorque Limit(Address 34、35)の値を0にすることでモータ出力が0%になるようにします。
値 |
意味 |
0 |
モータの電源を遮断してTorqueが発生しないようにします。 |
1 |
モータに電源を印加してTorqueを発生させます。 |
値 |
Meaning |
0 |
LEDをOFFにします。 |
1 |
LEDをONにします。 |
MXシリーズは、代表的なコントローラの方法としてPID Controllerを使用しています。
P GainはPropotional Gainの値です。
I Gainは、Integral Gainの値です。
D Gainは、Derivative Gainの値です。
値の範囲は0〜254です。
※ PIDとコンプライアンススロープの関係
Pゲインが小さいほどすきまが大きくなって、目標位置の近くで出力が弱くなります。 つまり、margineとslopeを合わせる概念だと考えます 確かに以前のコンプライアンス概念とマッチングされません。動作の差があっても当然な事です。 ※ PIDに関する説明 一般的なPIDに関する簡略な説明は下のサイトを参照するようにします。 http://en.wikipedia.org/wiki/PID_controller PID制御論は単純にモーター制御に限ることではなく、すべての制御に適用できる一般的な理論です。 |
移動させようとする所の位置値です。
0~4095 (0xFFF)まで使用可能であり、単位は0.088度です。
CW/CCW Angle Limitから外れた値を使用すると、状態パケット(Status Packet)のうち、ERRORのAngle Limit Error Bit(Bit1)が'1'に設定され変換されます。また、Alarm LED/Shutdownのフラグ(flag)のうち、Angle LimitErrorが設定されていたら機能が発揮されます。
マルチターンモードの時に値の範囲は -28672 ~ 28672 増えることになり、0 から CW、CCW 各方向に 7 回ずつ回転できます。もしかしてResolution Dividerと共に使用すると回転数をもっと増やすことが出来ます。
関節モード,
マルチターンモード
ゴールポジションに移動する速度です。
0~1023(0x3FF)まで使用、単位は約0.114rmpです。
0に設定すると速度制御をしなくモーターの最大rpmを使用します。
1023の場合、約117.07rmpに成ります。
例え、300に設定された場合は約に設定された場合は約34.33rpmです。
設定されると、電源を切ってから入れ直して0に変えることができます。
車輪モード
目標方向へ移動する速度です。
0~2047(0x7FF)まで使用、単位は0.114rpmです。
0~1023範囲の値を使用するとCCW方向へ回転、0に設定すると止まります。
1024~2047範囲の値を使用するとCW方向へ回転、1024に設定すると止まります。
参考:関節モードの時に、該当モデルの最大のrpmを確認してください。最大rpm以上を設定してもモータは、それ以上の力を出すことはできません。 |
モータの最大出力の制限値です。
0〜1023(0x3FF)まで使用可能であり、単位は、約0.1%です。
例えば、値が512であると、約50%であり、最大出力対比50%のみを使用するという意味です。
電源が入ると、Max Torque(Address 14、15)の値を初期値として使用します。
参考:AlarmShutdownの機能が発揮されると、この値が0になってモータの力がなくなります。この場合、この値を0以外の値に変更すると、再びモータの出力が発揮されて使用することができます。 |
ダイナミクセルの現在位置値です。
値の範囲は0~4095(0xFFF)であり、単位は0.088度です。
マルチターンモードの時に値の範囲は -28672 ~ 28672 で、単位はResolution Divider 値によって(0.088 * Resolution Divider) になります。
参考:マルチターンモード(Multi turn mode)の時に実際位置と Present Position の関係は Resolution Divider と Multi Turn Offset の値によって変わります。詳しい内容は e-manul の |
現在の移動速度です。
この値は0〜2047(0X7FF)まで使用されます。
0〜1023の範囲の値の場合、CCW方向に回転するという意味です。
1024〜2047の範囲の値であると、CW方向に回転するという意味です。
つまり、10番目のbitが方向を制御するdirection bitになり、0と1024は同じです。
単位は約0.114rpmです。
例えば、300に設定した場合、CCW方向に約34.33rpmで移動中という意味です。
現在適用される荷重を意味します。
この値の範囲は1〜2047であり、単位は、約0.1%です。
0〜1023の範囲の値は、CCW方向に荷重が作用するという意味です。
1024〜2047の範囲の値は、CW方向に荷重が作用するという意味です。
つまり、10番目のbitが方向を制御するdirection bitになり、1024は0と同じです。
例えば、値が512であると、CCW方向に最大出力対比約50%で荷重が感知されることを意味します。
参考:現在の荷重は、Torqueセンサなどを利用した値ではなく、内部の出力値に基づいて類推したものです。 これをもって重量やトルクを測定する目的で使用することができません。また、該当関節のどの方向にどのくらいの力が作用するかを感知する程度でのみ使用しなければなりません。 |
現在提供されている電圧です。
この値の単位は0.1Vです。例えば、値が100であると、10Vです。
内部の温度です。
この値の単位は摂氏温度です。例えば、値が85の場合、現在の内部温度は85℃です。
値 |
意味 |
0 |
REG_WRITEに伝達された命令がありません。 |
1 |
REG_WRITEに伝達された命令があります。 |
参考:ACTION命令を遂行すると、この値が0に変わります。 |
値 |
意味 |
0 |
Goal position命令遂行を完了しました。 |
1 |
Goal position命令を遂行中です。 |
値 |
意味 |
0 |
EEPROMの領域を修正することができます。 |
1 |
EEPROMの領域を修正することができません。 |
注意:Lockが1に設定されると、電源を切ってから入れ直して0に変えることができます。 |
駆動時にモーターに与える最小電流量です。
初期値は0x20で最高0x3ffまで設定できます。
電流消費がない場合の値は2048(0x800)です。
もし、電流が陽の方向へ流れると、2048(0x800)より大きい値が出ます。
もし、電流が陰の方向へ流れると、2048(0x800)より小さい値が出ます。
電流値を計算する方法は次に成ります。
I = (4.5mA) * (CURRENT – 2048) (単位 A)
例え、68番目の値が2148なら陽の方向へ450mAが流れている意味です。
値 |
意味 |
0 |
トルクモードをOFFします。関節モードまた車輪モードが実行されます。 |
1 |
トルクモードをONします。位置制御及び速度制御は出来なくてトルクだけ制御できます。 |
Torque Control Mode Enableが1になるとダイナミクセルは次のように行動します。
1. ダイナミクセルは位置及び速度制御をしません。
2. ダイナミクセルはGoal Torqueに書いてあるトルクで制御します。
3. Goal position及びGoal speedに値を書いても反応しません。
4. 位置及び速度制御が出来ないので車輪モードのように行動します。
目指すトルク値です。
0 ~ 2047 (0x7FF) まで使用されて単位は 4.5mA です。
(トルクと電流値は正比例します。)
0~1023 範囲の値を使用するとCCW方向にトルクが加わって0に設定すると止めます。
1024 ~2047 範囲の値を使用するとCW方向にトルクが加わって1024に設定すると止めます。
つまり、10番目のbitが方向を制御するdirection bitに成ります。
Goal TorqueはTorque Limit(34,35)より大きくなれません。
目標加速度値です。
0 ~ 254 (0XFE)まで使用され、単位は約8.583 Degree / sec^2 です。
0に設定すると加速度制御をしなくモーターの最大化速度で動くと言う意味です。
目標速度が0の場合も加速度制御をしなくモーターの最大加速度で動きます。
254を設定する場合、2180 Degree / sec^2 に成ります。
例え、ダイナミクセルの速度が現在0で、GOAL ACCELERATIONが10の場合、
1秒後のダイナミクセルの速度は14.3 RPMに成ります。
MX - 64のオプションのフレームは、次のような種類があります。
MX - 64のHornは、以下のような種類があります。
参考:RX-64用ホーンと多少の違いがあります。混用できないのでご注意ください。 |
以下は、オプションフレームとホーンを用いた結合構造の例です。
MX-シリーズのギアの交替