DynamixelプロトコルV1版ファームウェア Ver.36以降を搭載した以下のDynamixelに共通するコントロールテーブルです。
Address | Item | Access | Reset Value | Range |
0 | Model Number | R | - | uint16 |
1 | ||||
2 | Version of Firmware | R | - | uint8 |
3 | ID | R/W (NVM) | 1 | uint8 0~253 |
4 | Baudrate | R/W (NVM) | 34 (MX-12Wのみ1) | uint8 0~254 |
5 | Return Delay Time | R/W (NVM) | 250 | uint8 0~254 |
6 | CW Angle Limit | R/W (NVM) | 0 | uint16 0~4095 |
7 | ||||
8 | CCW Angle Limit | R/W (NVM) | 4095 | uint16 0~4095 |
9 | ||||
10 | Drive Mode | R/W (NVM) | 0 | uint8 0~3 |
11 | Highest Limit Temperature | R/W (NVM) | 80 | uint8 10~99 |
12 | Lowest Limit Voltage | R/W (NVM) | 60 | uint8 50~250 |
13 | Highest Limit Voltage | R/W (NVM) | 160 | uint8 50~250 |
14 | Max Torque | R/W (NVM) | 1023 | uint16 0~1023 |
15 | ||||
16 | Status Return Level | R/W (NVM) | 2 | uint8 0~2 |
17 | Alarm LED | R/W (NVM) | 36 | uint8 0~127 |
18 | Alarm Shutdwon | R/W (NVM) | 36 | uint8 0~127 |
19 | (reserve) | R | - | uint8 |
20 | Multi Turn Offset | R | 0 | int16 -24576~24576 |
21 | ||||
22 | Resolution Divider | R | 1 | uint8 1~4 |
23 | (reserve) | R | - | uint8 |
24 | Torque Enable | R/W (NVM) | 0 | uint8 0~1 |
25 | LED | R/W (NVM) | 0 | uint8 0~1 |
26 | D Gain | R/W | 0 (MX-12Wのみ8) | uint8 0~254 |
27 | I Gain | R/W | 0 | uint8 0~254 |
28 | P Gain | R/W | 32 (MX-12Wのみ8) | uint8 1~254 |
29 | (reserve) | R | - | uint8 |
30 | Goal Position | R/W | [Addr36]value | uint16/int16 0~4095/-28672~28672 |
31 | ||||
32 | Moving Speed | R/W | 0 | uint16 -1023~1023 |
33 | ||||
34 | Torque Limit | R/W | [Addr14]value | uint16 0~1023 |
35 | ||||
36 | Present Position | R | ? | uint16 |
37 | ||||
38 | Present Speed | R | ? | uint16 |
39 | ||||
40 | Present Load | R | ? | uint16 |
41 | ||||
42 | Present Voltage | R | ? | uint8 |
43 | Present Temperature | R | ? | uint8 |
44 | Registered Instruction | R/W | 0 | uint8 0~1 |
45 | (reserve) | R | - | uint8 |
46 | Moving | R | 0 | uint8 |
47 | Lock | R/W | 0 | uint8 0~1 |
48 | Punch | R/W | 32 | uint16 0~1023 |
49 | ||||
50 ~ 67 | (reserve) | R | - | uint8 |
68 | Current | R | ? | uint16 0~4095 |
69 | ||||
70 | Torque Control Mode Enable | R/W | 0 | uint8 0~1 |
71 | Goal Torque | R/W | 0 | uint16 0~2047 |
72 | ||||
73 | Goal Acceleration | R/W | 0 | uint8 0~254 |
モデルナンバーです。各モデルには以下の固有値が割り当てられます。
Model Name | Value |
MX-12W | 0x0168 |
MX-28 | 0x001D |
MX-64 | 0x0136 |
MX-106 | 0x0140 |
ファームウェアのバージョンです。
各Dynamixelを特定するための固有の値で0~253の範囲で設定します。同一ネットワーク中のDynamixelには各々異なるIDが要求されます。
254はBroadcast IDとし、全てのDynamixelへパケットを送信する際に使用します。
通信速度を決める分周値で、通信速度は次式で導かれます。
Baudrate[bps]=2000000 / (value + 1)
主なBaudrate
value | Actual Baudrate[bps] | Specified Baudrate[bps] | Error[%] |
1 | 1000000.0 | 1000000 | 0.000 |
3 | 500000.0 | 500000 | 0.000 |
4 | 400000.0 | 400000 | 0.000 |
7 | 250000.0 | 250000 | 0.000 |
9 | 200000.0 | 200000 | 0.000 |
16 | 117647.1 | 115200 | -2.124 |
34 | 57142.9 | 57600 | 0.794 |
103 | 19230.8 | 19200 | -0.160 |
207 | 9615.4 | 9600 | -0.160 |
※ホストとのボーレートの誤差は±2%以下が要求されます。
なお、MXシリーズのみ以下の値の時にイリガルなボーレートが割り当てられていますので注意が必要です。
value | Baudrate[BPS] |
250 | 2250000.0 |
251 | 2500000.0 |
252 | 3000000.0 |
253 | 3500000.0※ |
254 | 4000000.0※ |
※MX-64,MX-106のみ
インストラクションパケットが送られた後、ステータスパケットを返すまでの待ち時間を設定します。
単位は2[usec]です。
Jointモード時のDynamixelの動作角度範囲を設定します。Goal Positionは以下の範囲にある必要があります。
CW Angle Limit <= Goal Position <= CCW Angle Limit
Goal Positionが動作角のリミットを越えると、Angle Limit Errorが起こります。
なお、設定値に応じてDynamixelの動作モードが変わります。
※MX-106のみ
デュアルモードにおけるマスタ/スレーブ、及び回転方向を設定します。
Bit | 機能 | 設定 |
7~2 | - | - |
1 | マスター/スレーブ選択 | 0:マスタ, 1:スレーブ |
0 | 回転方向選 | 0:順方向, 1:逆方向 |
スレーブに設定されたDynamixelは、マスターに設定されたDynamixelと同期化用ケーブルで接続すると、マスタに設定されたDynamixelと同期したポジションに自動的に動作します。 1つの関節に対し2つのDynamixelを使用する事で、トルクアップが期待できます。
同期化ケーブルの接続によりスレーブの回転方向が変わり、黒い線を並列に接続した場合は順方向に、クロスして接続した場合は逆方向に回転します。
0の場合は0~360°の範囲を4095~0のGoal Position、1の場合は0~360°の範囲を0~4095 のGoal Positionで位置決め制御を行います。
Dynamixelの動作温度の上限です。Dynamixelの内部温度がこの値より高くなるとOverheating Errorが起こります。値は℃です。
Dynamixelの動作電圧の上限と下限です。現在の電圧(Address42)が指定した範囲から出ると、Input Voltage Errorが起こります。値は実際の電圧の10倍です。例えばAddress12が80なら、電圧の下限は8Vに設定されます。
Dynamixelの最大トルク出力です。この値が0に設定されるとDynamixelはトルクがかかっていないFree Runモードになります。EEPROM(Address14, 15)とRAM(Address34, 35)の2つに最大トルクが定義されます。電源を入れるとEEPROMの最大トルク値がRAMの最大トルク値にコピーされます。DynamixelのトルクはRAM(Address34, 35)の値によって制限されます。
Dynamixelが返すステータスパケットの措置を設定します。
Value | 処理 |
0 | PINGインストラクションパケットのみに応答 |
1 | PING及びREAD_DATAインストラクションパケットのみに応答する |
2 | 全てのインストラクションパケットに応答する |
対応するBitが1に設定されると、その要因発生時にステータスLEDが点滅します。要因が解消するとLEDは2秒後に消灯します。
Bit | 要因 |
7 | - |
6 | Instruction Error |
5 | Overload Error |
4 | Checksum Error |
3 | Range Error |
2 | Overheating Error |
1 | Angle Error |
0 | Input Voltage Error |
対応するBitが1に設定されると、その要因発生時にDynamixelのTorque Limit(Address34~35)を0にします。復帰する際はTorque Limit(Address34~35)を再設定する必要があります。
Bit | 要因 |
7 | - |
6 | Instruction Error |
5 | Overload Error |
4 | Checksum Error |
3 | Range Error |
2 | Overheating Error |
1 | Angle Error |
0 | Input Voltage Error |
Multi Turnモード時のオフセット位置を調整します。
この値が真の位置フィードバックに加算され、Present Positionに現れます。
位置の分解能を設定します。
真の位置フィードバック値を本値で乗じた値がPresent Positionに現れます。
最初に電源を入れるとDynamixelはTorque Free Run(ゼロトルク)になります。Address24に1を設定するかゴールポジションが設定されるとトルクが有効になります。
1が設定されるとLEDが点灯し、0が設定されると消灯します。
MXシリーズはPID制御を行います。P Gainは比例、I Gainは積分、D Gainは微分ゲインで、いずれも値の範囲は0〜254です。
Kp=(P Gain)/8
Ki=(I Gain)*1000/2048
Kd=(D Gain)*4/1000
Dynamixelの出力角の位置を設定します。0(0x000)~4095(0xfff)の設定値に対し、出力軸は0°~360°の範囲で動作します。
Multi Turnモード時はそのモードに従います。
出力軸がGoal Positionへ動く時の速度で、単位は約0.114rpmです。
0に設定すると速度制御を無視し、モータの最大速度で運転します。
1023に設定すると約117.07rpmで運転します。
Wheelモード時は10bit目が回転方向を意味します。
Bit15~11 | Bit10 | Bit9~0 |
0 | Turn Direction | Speed |
Sing = 0 : CCW, 1 : CW
最大出力の上限値です。単位は最大出力に対する割合です。Max Torqueが512なら最大出力対比約50%、1023なら100%が出力の上限となります。 電源を入れるとMax Torqueの値を初期値として使用します。
出力軸の現在の角度です。Goal Positionと同様0(0x000)~4095(0xfff)の値に対し、0°~360°を表します。
Wheelモードでは総回転角度を表します。
出力軸の現在の角速度です。 ビット10は回転方向を表します。
Bit15~11 | Bit10 | Bit9~0 |
0 | Turn Direction | Speed |
Trun Direction = 0 : CCW, Trun Direction = 1 : CW
操作するDynamixelの負荷の大きさです。10bit目が負荷の向きを表します。
Bit15~11 | Bit10 | Bit9~0 |
0 | Load Direction | Load |
Load Direction = 0 : CCW Load, Load Direction = 1 : CW Load
現在のDynamixelに供給されている電圧です。値は実際の電圧の10倍です。例えば、10Vは100(0x64)と表します。
Dynamixelの内部温度(℃)です。
REG_WRITEコマンドでインストラクションが格納されたとき1が設定され、ACTIONコマンドによって格納されたインストラクションが完了したら0が設定されます。
Goal Positionが更新され、Dynamixelが目標位置へ移動している間に1となります。
1が設定されるとAddress24からAddress35以外のエリアが書き換え不能となります。ロックを解除する方法は、電源を切る以外にありません。
操作時にモータに供給される最小の電流です。初期値は0x20に設定されていて、最大値は0x3ffです。
※MX-64及びMX-106のみ
0が設定されるとトルク制御モードが停止し位置決め制御ないしエンドレスターンが使用できます。
1が設定されるとトルク制御モードが開始され、位置決め制御ないしエンドレスターンが使用できなくなります。
トルク制御モードは位置及び速度制御を行わずにGoal Torqueで指示された値でのみ運転します。
※MX-64及びMX-106のみ
トルク制御モード時のトルクを指定します。単位は4.5mAです。
0~1023の範囲でCCW方向、1024~2047の範囲でCW方向にトルクを指示します。なお、Torque Limit以上の値は出力されません。
目標加速度で、単位は 8.583 deg/sec^2 です。Goal Positionが更新された際のメカニカルなショックを抑止する場合に設定します。
0に設定すると加速度制御を行いません。また、加速度制御を行う場合は、Goal Speedを0以外の値に設定する必要があります。
Address 6(0x06)~9(0x09)のCW Angle LimitとCCW Angle Limitを0に設定するとWheelモードになります。車輪として使用する際にこのモードに設定します。
Moving Speedの設定
Bit15~11 | Bit10 | Bit9~0 |
0 | Turn Direction | Speed Value |
Trun Direction = 0 : CCW, Trun Direction = 1 : CW
Present Positionは車輪の総回転角度を表します。 値はCCW方向に回転すると減少、CW方向に回転すると増加し、積算されます。値が0を下回ると65535になり、65535を超えると0になります。
Address 6(0x06)~9(0x09)のCW Angle LimitとCCW Angle Limitを4095に設定するとMulti Turnモードになります。通常の位置決め制御時の範囲である-180°~180°を超えて、-2520°~2520°の位置決め制御を行う際にこのモードに設定します。
Goal Positionの設定
Bit15~0 |
Gola Position -28672~28672 (符号付16bit整数) |
(This host) = http://www.besttechnology.co.jp