Page Top

コントロールテーブル anchor.png

Dynamixelの機能及び設定は次のメモリマップ上に1バイトないし2バイト(リトルエンディアン)のアイテムとして割り当てられ、インストラクションパケットを使用して操作します。 2バイトに渡るアイテムは1つのインストラクションパケットにおいて同時に書き込まれる必要があります。

Control Table
AddressItemAccessInitial ValueRange
0 (0x0)Model NumberR-
1 (0x1)
2 (0x2)Version of FirmwareR-
3 (0x3)IDR/W1 (0x01)0~253
4 (0x4)BaudrateR/W34 (0x22)0~254
5 (0x5)Return Delay TimeR/W250 (0xFA)0~254
6 (0x6)CW Angle LimitR/W0 (0x00)0~4095
7 (0x7)
8 (0x8)CCW Angle LimitR/W255 (0xFF)0~4095
9 (0x9)
10 (0xA)Drive ModeR/W0 (0x00)0~3
11 (0xB)Highest Limit TemperatureR/W80 (0x50)10~99
12 (0xC)Lowest Limit VoltageR/W60 (0x3C)50~250
13 (0xD)Highest Limit VoltageR/W190 (0xBE)50~250
14 (0xE)Max TorqueR/W255 (0xFF)0~1023
15 (0xF)
16 (0x10)Status Return LevelR/W2 (0x02)0~2
17 (0x11)Alarm LEDR/W36 (0x24)0~127
18 (0x12)Alarm ShutdwonR/W36 (0x24)0~127
19 (0x13)(Reserved)RW0 (0x00)
20 (0x14)Down CalibrationR?
21 (0x15)
22 (0x16)Up CalibrationR?
23 (0x17)
24 (0x18)Torque EnableR/W0 (0x00)0~1
25 (0x19)LEDR/W0 (0x00)0~1
26 (0x1A)CW Compliance MarginR/W1 (0x01)0~254
27 (0x1B)CCW Compliance MarginR/W1 (0x01)0~254
28 (0x1C)CW Compliance SlopeR/W32 (0x20)1~254
29 (0x1D)CCW Compliance SlopeR/W32 (0x20)1~254
30 (0x1E)Goal PositionR/W[Addr36]value0~4095
31 (0x1F)
32 (0x20)Moving SpeedR/W0 (0x00)0~1023*1
33 (0x21)
34 (0x22)Torque LimitR/W[Addr14]value0~1023
35 (0x23)
36 (0x24)Present PositionR?
37 (0x25)
38 (0x26)Present SpeedR?
39 (0x27)
40 (0x28)Present LoadR?
41 (0x29)
42 (0x2A)Present VoltageR?
43 (0x2B)Present TemperatureR?
44 (0x2C)Registered InstructionR/W0 (0x00)0~1
45 (0x2D)(Reserved)-0 (0x00)
46 (0x2E)MovingR0 (0x00)
47 (0x2F)LockR/W0 (0x00)0~1
48 (0x30)PunchR/W32 (0x20)0~1023
49 (0x31)
56 (0x38)Sensed CurrentR?
57 (0x39)
Page Top

各アイテムの詳細 anchor.png

Page Top

0~1:Model Number anchor.png

モデルナンバーです。

Page Top

2:Version of Firmware anchor.png

ファームウェアのバージョンです。

Page Top

3: ID anchor.png

各Dynamixelを特定するための固有のIDナンバーです。同じネットワークの各Dynamixelに異なるIDが必要です。

0~253まで設定可能で、254はBroadcast IDと呼ばれ全てのDynamixelへパケットを送信する際に使用します。

Page Top

4:Baudrate anchor.png

通信速度を決定します。以下の公式で計算します。
Baudrate[BPS]=2000000 / (value + 1)

主なBaudrateのデータ値

Set value(Dec.)Set value(Hex.)Baudrate[BPS]Target Baudrate[BPS]Error※[%]
10X011000000.010000000.000
30X03500000.05000000.000
40X04400000.04000000.000
70X07250000.02500000.000
90X09200000.02000000.000
160X10117647.1115200-2.124
340X2257142.9576000.794
1030X6719230.819200-0.160
2070XCF9615.49600-0.160

注意: ±3%以下の許容誤差が一般に通信可能な範囲です。

Page Top

5:Return Delay Time anchor.png

インストラクションパケットが送られた後、ステータスパケットが返ってくるまでの時間です。遅延時間は2uSec * Address5の値です。

Page Top

6~7:CW Angle Limit anchor.png

Page Top

8~9:CCW Angle Limit anchor.png

Dynamixelの動作角を設定します。Goal Positionは以下の範囲にある必要があります。
CW Angle Limit <= Goal Position <= CCW Angle Limit
Goal Positionが動作角のリミットを越えると、Angle Limit Errorが起こります。

CW Angle Limit及びCCW Angle Limitを両方0に設定するとEndless Turnモードになります。

Page Top

10:Drive Mode anchor.png

デュアルモードにおけるマスタ/スレーブ、及び回転方向を設定します。

Bit名称内容
Bit7~2--
Bit1デュアルモード0:マスタ、1:スレーブ
Bit0リバースモード0:ノーマル、1:リバース
Page Top
デュアルモード anchor.png

スレーブに設定されたDynamixelは、マスタに設定されたDynamixelとデュアルモード用ケーブルで接続すると、マスタに設定されたDynamixelと同期したポジションに自動的に動作します。 1つの関節に対し、2つのDynamixelを使用して、トルクアップを図る場合などに使用します。

デュアルモード用ケーブルの接続の仕方により、スレーブのDynamixelの回転方向が変わります。 黒い線を並列に接続した場合は順方向に、クロスして接続した場合は逆方向に回転します。

dual.png
Page Top
リバースモード anchor.png

リバースモードをオンにすると、図のようにポジションが左右対称になります。デュアルモードでスレーブに設定されている場合は無効です。

左右対称の機構などに対し、片方をリバースすることで回転方向を統一できます。

reverse.png
Page Top

11:Highest Limit Temperature anchor.png

Dynamixelの動作温度の上限です。Dynamixelの内部温度がこの値より高くなるとOverheating Errorが起こります。値は℃です。

Page Top

12:Lowest Limit Voltage anchor.png

Page Top

13:Highest Limit Voltage anchor.png

Dynamixelの動作電圧の上限と下限です。現在の電圧(Address42)が指定した範囲から出ると、Input Voltage Errorが起こります。値は実際の電圧の10倍です。例えばAddress12が80なら、電圧の下限は8Vに設定されます。

Page Top

14~15:Max Torque anchor.png

Dynamixelの最大トルク出力です。この値が0に設定されるとDynamixelはトルクがかかっていないFree Runモードになります。EEPROM(Address14, 15)とRAM(Address34, 35)の2つに最大トルクが定義されます。電源を入れるとEEPROMの最大トルク値がRAMの最大トルク値にコピーされます。DynamixelのトルクはRAM(Address34, 35)の値によって制限されます。

Page Top

16:Status Return Level anchor.png

インストラクションパケットを受けた後にDynamixelがステータスパケットを返すかどうかを決定します。

Adress16ステータスパケット
0PING以外のインストラクションには応答しない
1READ_DATAだけに応答する
2すべてのインストラクションに応答する

Broadcast ID(0xFE)を使ったインストラクションの場合は、Address16の値に関わらずステータスパケットを返しません。

Page Top

17:Alarm LED anchor.png

対応するBitが1に設定されると、Errorが起こったときにステータスLEDが点滅します。

BitFunction
Bit70
Bit61に設定されていたら、Instruction Errorが起こるとLEDが点滅します
Bit51に設定されていたら、Overload Errorが起こるとLEDが点滅します
Bit41に設定されていたら、Checksum Errorが起こるとLEDが点滅します
Bit31に設定されていたら、Range Errorが起こるとLEDが点滅します
Bit21に設定されていたら、Overheating Errorが起こるとLEDが点滅します
Bit11に設定されていたら、Angle Errorが起こるとLEDが点滅します
Bit01に設定されていたら、Input Voltage Errorが起こるとLEDが点滅します

すべてのビットのOR論理演算に従って動作します。例えば0x05が設定されていたら、Input Voltage ErrorかOverheating Errorが起こったときにLEDが点滅します。エラー状態から正常状態に戻るとLEDは2秒後に点滅を止めます。

Page Top

18:Alarm Shutdown anchor.png

対応するビットが1に設定されていて、エラーが発生するとDynamixelのトルクがオフになります。Alarm LEDとは異なり、Errorが発生した後、正常状態に戻ってもトルクオフの状態が維持されます。復帰するためにはTorque Enable(Address24)を1に再設定しなければなりません。

BitFunction
Bit70
Bit61に設定されていたら、Instruction Errorが起こるとトルクをオフにします
Bit51に設定されていたら、Overload Errorが起こるとトルクをオフにします
Bit41に設定されていたら、Checksum Errorが起こるとトルクをオフにします
Bit31に設定されていたら、Range Errorが起こるとトルクをオフにします
Bit21に設定されていたら、Overheating Errorが起こるとトルクをオフにします
Bit11に設定されていたら、Angle Errorが起こるとトルクをオフにします
Bit01に設定されていたら、Input Voltage Errorが起こるとトルクをオフにします
Page Top

20~21:Down Calibration anchor.png

Page Top

22~23:Up Calibration anchor.png

Dynamixelで使用されるPotentiomerterの誤差を補うのに使用されるデータです。ユーザーはこのデータを変更できません。

Page Top

24:Torque Enable anchor.png

最初に電源を入れるとDynamixelはTorque Free Run(ゼロトルク)になります。Address24に1を設定するかゴールポジションが設定されるとトルクが有効になります。

Page Top

25:LED anchor.png

1が設定されるとLEDが点灯し、0が設定されると消灯します。

Page Top

26:CW Compliance Margin anchor.png

Page Top

27:CCW Compliance Margin anchor.png

Page Top

28:CW Compliance Slope anchor.png

Page Top

29:CCW Compliance Slope anchor.png

Dynamixelのコンプライアンスは、コンプライアンスのMarginとSlopeを設定することで定義されます。この特徴は出力軸で衝撃を吸収するのに利用します。下のグラフはそれぞれのコンプライアンス値(A、B、C、Dの長さ)がポジションエラーと適用されたトルクによってどう定義されるかを示します。

The page was not found.(Dynamixelコントロールテーブル)

A : CCW Compliance Slope(Address26)
B : CCW Compliance Margin(Address27)
C : CW Compliance Margin(Address28)
D : CW Compliance Slope(Address 29)
E : Punch(Address48, 49)

Page Top

30~31:Goal Position anchor.png

Dynamixelの出力角の位置を要求します。0(0x000)~4095(0xfff)の設定値に対し、出力軸は0°~250.92°まで動作します。

goalpos.png
Page Top

32~33:Moving Speed anchor.png

出力軸がGoal Positionへ動く時の角速度です。0に設定すると速度調節が適用されない供給電圧で可能な最大の速度になります。

Endless Turnモードでは回転速度になります。詳しくはEndless Turnを参照。

Page Top

34~35:Torque Limit anchor.png

最大出力の上限値です。単位は最大出力に対する割合です。Max Torqueが512なら最大出力対比約50%、1023なら100%が出力の上限となります。 電源を入れるとMax Torqueの値を初期値として使用します。

Page Top

36~37:Present Position anchor.png

出力軸の現在の角度です。Goal Positionと同様0(0x000)~4095(0xfff)の値に対し、0°~250.92°を表します。

Endless Turnモードでは総回転角度を表します。詳しくはEndless Turnを参照。

Page Top

38~39:Present Speed anchor.png

出力軸の現在の角速度です。 ビット10は回転方向を表します。

BITBit15~11Bit10Bit9~0
Value0Turn DirectionSpeed Value

Trun Direction = 0 : CCW, Trun Direction = 1 : CW

Page Top

40~41:Present Load anchor.png

操作するDynamixelの負荷の大きさです。ビット10は負荷の向きを表します。

BitBit15~11Bit10Bit9 Bit8 Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0
Value0Load DirectionLoad Value

Load Direction = 0 : CCW Load, Load Direction = 1 : CW Load

Page Top

42:Present Voltage anchor.png

現在のDynamixelに供給されている電圧です。値は実際の電圧の10倍です。例えば、10Vは100(0x64)と表します。

Page Top

43:Present Temperature anchor.png

Dynamixelの内部温度(℃)です。

Page Top

44:Registered Instruction anchor.png

REG_WRITEコマンドでインストラクションが格納されたとき1が設定され、ACTIONコマンドによって格納されたインストラクションが完了したら0が設定されます。

Page Top

46:Moving anchor.png

Dynamixelが供給された電力で動いているときに1が設定されます。

Page Top

47:Lock anchor.png

1が設定されるとAddress24からAddress35以外のエリアが書き換え不能となります。ロックを解除する方法は、電源を切る以外にありません。

Page Top

48~49:Punch anchor.png

操作時にモータに供給される最小の電流です。初期値は0x20に設定されていて、最大値は0x3ffです。

Page Top

56~57:Sensed Current anchor.png

現在の電流値です。 単位は10mAです。

値が512より大きい場合はCW方向に、512より小さい場合はCCW方向にモータが回転していることを意味し、値と512の差が電流値となります。

例えば値が612なら、回転方向はCWで、612 - 512 = 100 -> 100 × 10mA = 1000mAとなります。値が312なら、回転方向はCCWで、512 - 312 = 200 -> 200 × 10mA = 2000mAとなります。

Page Top

Endless Turn anchor.png

Address 6(0x06)~9(0x09)のCW Angle Limit、CCW Angle Limitを0に設定し、Address 32(0x20),33(0x21)に以下の通りMoving Speedを設定するとEndless Turnモードになります。車輪のような役割で使用する際にこのモードに設定します。

Moving Speedの設定

BITBit15~11Bit10Bit9~0
Value0Turn DirectionSpeed Value

Trun Direction = 0 : CCW, Trun Direction = 1 : CW

Present Positionは車輪の総回転角度を表します。 値はCCW方向に回転すると減少、CW方向に回転すると増加し、積算されます。値が0を下回ると65535になり、65535を超えると0になります。

Page Top

不揮発エリアとRAMエリア anchor.png

Address0から23は不揮発エリア、Address24以降はRAMエリアです。RAMエリアのデータは電源を入れたときに常に初期値に設定されます。不揮発エリアのデータは電源を切っても値が保持されます。
不揮発エリアのデータ書き換え回数には数万回という制限があります。必要な時だけ書き換を行うような運用を行ってください。


*1 Moving SpeedはEndless Turnモードの場合のRange:0~2047となる

Front page   Diff ReloadPrint View   Page list Search Recent changes   RSS of recent changes (RSS 1.0) RSS of recent changes (RSS 2.0) RSS of recent changes (RSS Atom)
Last-modified: 2013-04-05 (Fri) 17:37:47 (JST) (3422d)