ページへ戻る

− Links

 印刷 

MX Series Control table(2.0) :: Besttechnology

knowledge:MX Series Control table(2.0)

ページ内コンテンツ
    • 適用
    • アイテム一覧
      • 各アイテム詳細
        • Model Number/Model Information
        • Version of Firmware
        • ID
        • Baudrate
        • Return Delay Time
        • Drive Mode
        • Operating Mode
        • Secondary(Shadow) ID
        • Protocol Version
        • Homing Offset
        • Moving Threshold
        • Temperature Limit
        • Max/Min Voltage Limit
        • PWM Limit
        • Current Limit
        • Acceleration Limit
        • Velocity Limit
        • Max/Min Position Limit
        • Shutdown
        • Torque Enable
        • LED
        • Status Return Level
        • Registered Instruction
        • Hardware Error Status
        • Velocity I/P Gain
        • Position D/I/P Gain, Feedforward Acceleration/Velocity Gain
        • Bus Watchdog
        • Goal PWM
        • Goal Current
        • Goal Velocity
        • Profile Acceleration
        • Profile Velocity
        • Goal Position
        • Realtime Tick
        • Moving
        • Moving Status
        • Present PWM
        • Present Current
        • Present Velocity
        • Present Position
        • Velocity Trajectory
        • Position Trajectory
        • Present Input Voltage
        • Present Temperature
        • Indirect Address/Data

適用 anchor.png[1]

DynamixelプロトコルV2版ファームウェア Ver.40以降を搭載した以下のDynamixelに共通するコントロールテーブルです。

Page Top

アイテム一覧 anchor.png[5]

AddressItemAccessDefault ValueType/Range
0Model NumberR-uint16
1
2Model InformationR0uint32
3
4
5
6Version of FirmwareR?uint8
7IDR/W (NVM)1uint8
0~252
8BaudrateR/W (NVM)1uint8
0~7
9Return Delay TimeR/W (NVM)250uint8
0~254
10Drive ModeR/W (NVM)0uint8
0~255
11Operating ModeR/W (NVM)3uint8
0~16
12Secondary(Shadow) IDR/W (NVM)255uint8
0~255
13Protocol VersionR/W (NVM)2uint8
1~2
14
~
19
(reserve)R-uint8
20Homing OffsetR/W (NVM)0int32
-1044479~1044479
21
22
23
24Moving ThresholdR/W (NVM)10uint32
0~1023
25
26
27
28
~
30
(reserve)R-uint8
31Temperature LimitR/W (NVM)80uint8
0~100
32Max Voltage LimitR/W (NVM)160uint16
95~160
33
34Min Voltage LimitR/W (NVM)95uint16
95~160
35
36PWM LimitR/W (NVM)885uint16
0~885
37
38Current LimitR/W (NVM)1194:MX-64
2047:MX-106
uint16
0~1193:MX-64
0~2047:MX-106
39
40Acceleration LimitR/W (NVM)32767uint32
0~32767
41
42
43
44Velocity LimitR/W (NVM)380:MX-28
435:MX-64
360:MX-106
uint32
0~1023
45
46
47
48Max Position LimitR/W (NVM)4095uint32
0~4095
49
50
51
52Min Position LimitR/W (NVM)0uint32
0~4095
53
54
55
56
~
62
(reserve)R-uint8
63ShutdownR/W (NVM)52(0x34)uint8
0~63
64Torque EnableR/W0uint8
0~1
65LEDR/W0uint8
0~1
68Status Return LevelR/W2uint8
0~2
69Registered InstructionR0uint8
70Hardware Error StatusR0uint8
76Velocity I GainR/W1920uint16
0~32767
77
78Velocity P GainR/W100uint16
0~32767
79
80Position D GainR/W0uint16
0~32767
81
82Position I GainR/W0uint16
0~32767
82
84Position P GainR/W850uint16
0~32767
85
88Feedforward Acceleration GainR/W0uint16
0~32767
89
90Feedforward Velocity GainR/W0uint16
0~32767
91
98Bus WatchdogR/W0int8
-1~127
100Goal PWMR/W-int16
-PWM Limit~PWM Limit
101
102Goal CurrentR/W-int16
-Current Limit~Current Limit
103
104Goal VelocityR/W-int32
-Velocity Limit~Velocity Limit
105
106
107
108Profile AccelerationR/W0uint32
0~Acceleration Limit
109
110
111
112Profile VelocityR/W0uint32
0~Velocity Limit
113
114
115
116Goal PositionR/W-int32
Min Position Limit~Max Position Limit
-1048575~1048575
117
118
119
120Realtime TickR-uint16
121
122MovingR0uint8
123Moving StatusR0uint8
124Present PWMR-int16
125
126Present CurrentR-int16
127
128Present VelocityR-int32
129
130
131
132Present PositionR-int32
133
134
135
136Velocity TrajectoryR-
137
138
139
140Position TrajectoryR-
141
142
143
144Present Input VoltageR-uint16
145
146Present TemperatureR-uint8
147
~
167
(reserve)R-uint8
168Indirect Address 1R/W224uint16
64~661
169
170Indirect Address 2225
171
172,173
~
218,219
Indirect Address 3
~
Indirect Address 26
226
~
249
220Indirect Address 27250
221
222Indirect Address 28251
223
224Indirect Data 1R/W0uint8
225Indirect Data 2
226Indirect Data 3
227
~
248
Indirect Data 4
~
Indirect Data 25
249Indirect Data 26
250Indirect Data 27
251Indirect Data 28
252
~
577
(reserve)R-uint8
578Indirect Address 29R/W634uint16
64~661
579
580Indirect Address 30635
581
582,583
~
628,629
Indirect Address 31
~
Indirect Address 54
636
~
659
630Indirect Address 55660
631
632Indirect Address 56661
633
634Indirect Data 29R/W0uint8
635Indirect Data 30
636
~
659
Indirect Data 31
~
Indirect Data 54
660Indirect Data 55
661Indirect Data 56
  • データ幅が16bitないし32bitのアイテムはリトルエンディアン(データの下位バイトから順に格納)。
  • Accessに(NVM)とあるアイテムは不揮発メモリとなっており、電源を切っても値が保持される。また頻繁な書き換えは想定されていないため、書き換えは必要最低限にとどめること。
  • Accessに(NVM)とあるアイテムとIndirect Addressを変更する場合は、Torque Enalbeが0でなくてはならない。
  • (reserve)はシステムで予約され、読み出した値に有効性はない。また、書き込みを行ってはならない。
  • Default Valueは出荷時ないしファクトリーリセットを行った際の値。又、ファームウェアのバージョンによって値が変更される場合がある。
Page Top

各アイテム詳細 anchor.png[6]

Page Top
Model Number/Model Information anchor.png[7]

本品固有の値を保持します。異なる種類のDynamixelを混在して使用する際の個体識別などに使用できます。

Model NameValue
MX-2830(0x1E)
MX-64311(0x137)
MX-106321(0x141)
Page Top
Version of Firmware anchor.png[8]

内蔵されるCPUに書き込まれたプログラムのバージョンです。ファームウェアの更新を行った際に合わせて自動的に変更されます。

Page Top
ID anchor.png[9]

各Dynamixelを特定するための固有の値で0~252の範囲の数値で設定します。同一ネットワーク内に存在するDynamixelには各々異なるIDが要求されます。

Page Top
Baudrate anchor.png[10]

通信する際のボーレートです。ホストDynamixelのボーレートは一致させなくてはなりません。

ValueBaudrate [bps]
09600
157600
2115200
31000000
42000000
53000000
64000000
74500000

Page Top
Return Delay Time anchor.png[11]

インストラクションパケットが送られた後、ステータスパケットを返すまでの待ち時間を設定します。
ホストにおいて半二重のバス制御のタイミングに合わせて調整しますが、弊社が提供するUSBシリアルI/Fを使用する限りでは0を設定しても問題ありません。

Delay Time [us] = Value * 2
Page Top
Drive Mode anchor.png[12]

ホーンの回転方向やデュアルモードにおけるマスター/スレーブを設定します。
リバースモードはPosition, Velocity, PWMの各指令によるホーンの回転方向が変化します。
デュアルモードは2台のDynamixelを同期させて使用する際に一方をマスター、もう一方をスレーブに設定します。※MX-106のみ装備

BitNameDescription
7常時0
6常時0
5常時0
4常時0
3常時0
2常時0
1デュアルモード0:マスター
1:スレーブ
※MX-106のみ
0リバースモード0:通常 (CCW方向を+、CW方向を-)
1:反転 (CCW方向を-、CW方向を+)

デュアルモードを使用する際は、マスターとスレーブに設定されたDynamixelのDual Joint Connector同士をデュアルジョイントケーブルで接続します。スレーブに設定されたDynamixelはDual Joint Connectorから入力される信号でのみ動作し、ケーブルの配線方法によりスレーブの回転方向を決定します。

Dual Mode
NormalReverse
dual_joint_nomal.png
dual_joint_reverse.png
Page Top
Operating Mode anchor.png[13]

動作モードを選択します。Valueに記載が無い値は予約済みのため、指定してはなりません。^ なお、MX-28は電流センサを備えていないため、設定可能なモードが限られます。

ValueModeDescription
0Current Control Mode電流制御。位置及び速度制御は行わない。
MX-28は指定不可
1Velocity Control Mode速度制御。位置及びトルク制御は行わない。
3Position Control Mode位置制御。GoalPositionは0~360°の1回転分の制御範囲に制限。
4Extended Position Control Mode拡張位置制御。GoalPositionの範囲が拡大され、最大±256回転まで対応。
5Current-Base Position Control Mode電流制限付き位置制御。GoalPositionの範囲が拡大され、最大±256回転まで対応。
MX-28は指定不可
16PWM Control ModePWMのデューティー比を制御。

Page Top
Secondary(Shadow) ID anchor.png[14]

DynamixelのSecondary IDを設定します。Secondary IDは、IDと同様に各Dynamixelを識別するために用いられます。なお、Secondary IDに253以上の値が設定されている場合、Secondary IDは機能しません。

Page Top
Protocol Version anchor.png[15]

Dynamixelプロトコルのバージョンを選択します。他のシリーズのDynamixelと混在させて使用する際はそのプロトコルのバージョンに合わせますが、異なるプロトコルを混在させて使用する事はできません。

ValueProtocol VersionDescription
11.0AX, DX, RX, MX, EXシリーズと互換
22.0X, PROシリーズと互換

Page Top
Homing Offset anchor.png[16]

この値が真の現在位置に加算されPresent Positionに反映されます。オフセット位置をホスト側では無くDynamixel側に持たせる際に使用します。

Position [deg] = Value * 360 [degC] / 4096
Page Top
Moving Threshold anchor.png[17]

Present Velocityの絶対値とこの値を比較した結果がMovingに示されます。

Velocity [rpm] = Value * 0.229 [rpm]
Page Top
Temperature Limit anchor.png[18]

Present Temperatureがこの値を超えるとHardware Error Statusの該当ビットがONになり、Shutdownで指定された動作に遷移します。

Temperature [degC] = Value * 1 [degC]
Page Top
Max/Min Voltage Limit anchor.png[19]

Present Input Voltageがこの値の範囲を超えるとHardware Error Statusの該当ビットはONになり、Shutdownで指定された動作に遷移します。

Voltage [V] = Value * 0.1 [V]
Page Top
PWM Limit anchor.png[20]

Goal PWMの絶対値はこの値以下に制限されます。

Duty [%] = Value * 100 [%] / 855
Page Top
Current Limit anchor.png[21]

Goal Currentの絶対値はこの値以下に制限されます。
MX-28ではreserveとなります。

Current [mA] = Value * 2.69 [mA]
Page Top
Acceleration Limit anchor.png[22]

Profile Accelerationはこの値以下に制限されます。

Acceleration [rpm²] = Value * 214.577 [rpm²]
Page Top
Velocity Limit anchor.png[23]

Goal Velocityの絶対値とProfile Velocityはこの値以下に制限されます。

Velocity [rpm] = Value * 0.229 [rpm]
Page Top
Max/Min Position Limit anchor.png[24]

Operating ModeにPosition Control Modeが設定されている時にGoal Positionはこの値の範囲内に制限されます。

Position [deg] = Value * 360 [deg] / 4096
Page Top
Shutdown anchor.png[25]

この設定とHardware Error Statusの論理積が0以外になると、Torque Enableは0になりモータの出力が遮断されシャットダウン状態に遷移します。以後通常のインストラクションパケットにてTorque Enableを1にする事ができません。

BitName
7常時0
6常時0
5Overload Error
4Electrical Shock Error
3Motor Encoder Error
2Overheating Error
1常時0
0Input Voltage Error

なお、シャットダウン状態から復帰するには発生している障害を排除した後、電源の再投入か、REBOOTインストラクションパケットを受信しなくてはなりません。

Page Top
Torque Enable anchor.png[26]

出力軸をフリーにするか、設定されたOperating Modeに従った制御を開始します。

ValueDescription
0出力軸フリー、制御停止、ロックされたアイテムを解除
1Operating Modeに従った制御開始、NVM及びIndirect Address領域のアイテムロック

Page Top
LED anchor.png[27]

本体に装備されたLEDを点灯ないし消灯します。

ValueDescription
0消灯
1点灯

Page Top
Status Return Level anchor.png[28]

ステータスパケットを返信するインストラクションパケットを選択します。

ValueInstruction to respond
0Ping
1Ping, Read
2Ping, Read, Write, Reg Write, Factory Reset, Reboot, Sync Read, Bulk Read

Page Top
Registered Instruction anchor.png[29]

Reg Writeインストラクションパケットを受信すると1、その後Actionインストラクションパケットを受信すると0になります。

Page Top
Hardware Error Status anchor.png[30]

様々なフィードバックと内部の制御状態を比較した結果を示します。さらに、この値とShutdownの論理積の結果により動作を継続するか否かを決定します。

BitNameDescription
7-常時0
6-常時0
5Overload Error最大出力で制御できない負荷が継続的に発生した
4Electrical Shock Error電気的に回路が衝撃を受けたり入力電力が不足してモータが正常動作しない
3Motor Encoder Errorエンコーダが正常動作しない
2Overheating ErrorPresent TemperatureがTemperature Limitを超えた
1-常時0
0Input Voltage ErrorPresent VoltageがMax​/Min Voltage Limitの範囲を超えた

Page Top
Velocity I/P Gain anchor.png[31]

速度制御演算における各種制御ゲインを指定します。
Operating ModeにVelocity Control Modeが設定されている時に有効です。
なお、制御ブロック中の各ゲインは、次の算式で示す減じられた値が用いられます。

KvI = (Velocity I Gain) / 65536
KvP = (Velocity P Gain) / 128
Page Top
Position D/I/P Gain, Feedforward Acceleration/Velocity Gain anchor.png[33]

位置制御演算における各種制御ゲインを指定します。
Operating ModeにPosition Control Mode・Extended Position Control Mode・Current-Base Position Control Modeが設定されている時に有効な値です。
なお、制御ブロック中の各ゲインは、次の算式で示す減じられた値が用いられます。

KpD = (Position I Gain) / 16
KpI = (Position I Gain) / 65536
KpP = (Position P Gain) / 128
Page Top
Bus Watchdog anchor.png[36]

無通信状態を監視する時間を指定します。
Bus Watchdogが1以上でかつTorque Enableが1である場合、ホストコントローラとDynamixel間の通信間隔を監視します。その間隔が指定時間よりも大きい場合にDynamixelは停止し、Bus Watchdogは-1に変更されます。Bus Watchdog Error状態になると、Goal PWM・Goal Current・Goal Velocity・Goal Positionの各アイテムは読み取り専用に変更されます。Bus Wathdogの値を0に変更すると、Bus Watchdog Errorは解除されます。

ValueDescription
0Bus Watchdog無効, Bus Watchdog Error状態を解除
1~127Bus Watchdog有効 (Value * 20[ms])
-1Bus Watchdog Error状態
Page Top
Goal PWM anchor.png[37]

PWMのデューティー比を指定します。
Operating ModeにPWM Modeが設定されている事はもとより、全てのModeにおける制御演算結果はPWMのデューティ比として算出されるため、必ず制御の最終段においてこの値以下にデューティー比が制限されモータへ印加されます。

Duty [%] = Value * 100 [%] / 855
Page Top
Goal Current anchor.png[38]

電流制御の目標値を指定します。
Operating ModeにCurrent Control ModeもしくはCurrent-Base Position Control Modeが設定されている時に有効な値で、Current-Base Position Control Mode時はPosition D​/I​/P Gain, Feedforward 2nd​/1st Gainに示すブロック図に従って制御されます。

Current [mA] = Value * 2.69 [mA]
Page Top
Goal Velocity anchor.png[39]

速度制御の目標値を指定します。
Operating ModeにVelocity Control Modeが設定されている時に有効な値で、Velocity I​/P Gaiに示すブロック図に従って制御されます。

Velocity [rpm] = Value * 0.229
Page Top
Profile Acceleration anchor.png[40]

Profileの加速度を指定します。
Operating ModeがCurrent Control Modeである時を除くModeに有効です。

Acceleration [rpm²] = Value * 214.577 [rpm²]

詳細はProfile Velocityを参照ください。

Page Top
Profile Velocity anchor.png[41]

Profileの最大速度を指定します。
Operating ModeがCurrent Control ModeないしVelocity Control Modeである時を除くModeに有効です。なお、Velocity Control Mode時はGoal Velocityが最大速度として採用されます。

Velocity [rpm] = Value * 0.229 [rpm]

加速度・最大速度・目標位置の値によって最終的に4種類の軌跡が得られます。位置制御時における設定値による位置と速度のProfileを以下に示します。

ProfileCondition, Waveform
ステップVelocity = 0, Acceleration = don't care
Profile_Step.png
矩形Velocity ≠ 0, Acceleration = 0
Profile_Rectangle.png
三角Velocity ≠ 0, Acceleration ≠ 0
Profile_Triangle.png
台形Velocity ≠ 0, Acceleration ≠ 0
Profile_Trapezoidal.png

適当な加速度と最大速度を設定した上で目標位置を指令する事で、急峻な加速度を伴う位置決め制御による機械的なショックを軽減できます。また、目標位置への到達時間が決まっている場合は、時間から加速度と最大速度を求めて設定する事で対応できます。
なお、上記波形のt1及びt2は、概ね以下の数式で求められます。

t1 [ms] = 64 * (Profile Velocity) / (Profile Acceleration)
もしくは
t1 [ms] = 64 * (Goal Velocity) / (Profile Acceleration)

t2 [ms] = 64 * Δ(Present Position) / (Profile Velocity)

また、これらの他に急峻な加速度変化を抑える制御を行っているため、最終的な目標到達時間はt3よりも長くなる場合があります。

Page Top
Goal Position anchor.png[42]

位置制御の目標値を指定します。
Operating ModeにPosition Control Mode・Extended Position Control Mode・Current-Base Position Control Modeが設定されている時に有効で、各Mode毎に指摘できる数値範囲が異なります。

Operating ModeValue RangeMax Turnover Number
3Min Position Limit~Max Position Limit1
4-1048575~+1048575-256~+256
5

DX_PosDir.png
Position [deg] = Value * 360 / 4096
Page Top
Realtime Tick anchor.png[43]

15ビットのフリーランカウンタで、1ms周期毎にインクリメントされます。

Page Top
Moving anchor.png[44]

Present Velocityの絶対値とMoving Thresholdの比較結果を示します。

ValueDescription
0Moving Threshold ≥ |Present Velocity|
1Moving Threshold < |Present Velocity|
もしくはProfileが進行中

Page Top
Moving Status anchor.png[45]

動作中の状況を示します。

BitNameDescription
7-常時0
6-常時0
5Profile Type11:台形速度Profile
10:三角速度Profile
01:矩形速度Profile
00:Step速度Profile 
4
3Following Error位置制御時、位置がProfileに非追従 
2-常時0
1Profile OngoingGoal Positionに基づくProfile進行中
0In-Position位置制御時、目標位置到達

Page Top
Present PWM anchor.png[46]

制御中のPWM出力値です。

Duty [%] = Value * 100 [%] / 855
Page Top
Present Current anchor.png[47]

現在モータへ流れている電流です。

Current [mA] = Value * 2.69 [mA]
Page Top
Present Velocity anchor.png[48]

現在の出力軸の回転数です。

Velocity [rpm] = Value * 0.229 [rpm]
Page Top
Present Position anchor.png[49]

真の位置からHoming Offsetを除した出力軸の位置です。
Torque Enableが0の状態ではレンジフローするまで回転に応じた増減をしますが、Torque Enableを1にした瞬間にOperating Modeに依存した値でクリップされます。

Position [deg] = Value * 360 [deg] / 4096
Page Top
Velocity Trajectory anchor.png[50]

Profileによって生成された目標速度を逐次示します。
Operating ModeにVelocity Control Mode・Position Control Mode・Extended Position Control Mode・Current-Base Position Control Modeが設定されている時に有効です。

Page Top
Position Trajectory anchor.png[51]

Profileによって生成された目標位置を逐次示します。
Operating ModeにPosition Control Mode・Extended Position Control Mode・Current-Base Position Control Modeが設定されている時に有効です。

Page Top
Present Input Voltage anchor.png[52]

現在の印加電圧です。

Voltage [V] = Value * 0.1 [V]
Page Top
Present Temperature anchor.png[53]

現在の内部温度です。

Temperature [degC] = Value * 1
Page Top
Indirect Address/Data anchor.png[54]

コントロールテーブル上のアドレスを再構成します。
Indirect Address N(N=1~56)とIndirect Data N(N=1~56)は対になっており、Indirect Address Nに任意のコントロールテーブル上のアドレスXを設定すると、その後Indirect Data Nへアクセスする事はIndirect Address Nに設定されたアドレスXへ間接的にアクセスする事になります。

具体的な例として、ホストから頻繁にアクセスしたいアイテムが複数あり、それらが離れたアドレスに配置されていた場合を考えます。通常はそれらアイテム全てをまたぐアドレス範囲のデータをまとめてアクセスするか、個々のアイテムに個別にアクセスするとった手段を執ります。これには本来無用なデータやアクセス回数が強いられるため、通信のトラフィックが上がる要因になるのと、ホスト側のプログラムの負担になります。
ホストから書き込み対象としてPosition P Gain・Goal Velocity・Goal Position、読み出し対象としてPresent Position・Present Temperatureがあった場合、これらをIndirect Data領域に再配置するには以下の手順を踏みます。

  1. Position P Gainのアドレス84~85をIndirect Address 1~2に書き込み
  2. Goal Velocityのアドレス104~107をIndirect Address 3~6に書き込み
  3. Goal Positionのアドレス116~119をIndirect Address 7~10に書き込み
  4. Present Positionのアドレス132~135をIndirect Address 11~14に書き込み
  5. Present Temperatureのアドレス146~147をIndirect Address 15~16に書き込み

以後Indirect Data 1からの連続した224番地にアクセスする事は、再配置したアイテムへ個々に間接的にアクセスした事になります。

DX_Indirect.png

なお、Indirect Addressがデフォルト値のままであれば、Indirect Data領域はユーザ任意のRAM領域として扱うことができます。


Last-modified: 2017-08-18 (金) 12:48:23 (JST) (2445d) by takaboo