ページへ戻る

− Links

 印刷 

Dynamixelコントロールテーブル(DX,RX,AXシリーズ用) のバックアップソース(No.16) :: Besttechnology

knowledge:Dynamixelコントロールテーブル(DX,RX,AXシリーズ用) のバックアップソース(No.16)

« Prev[4]  Next »[5]
TITLE:Dynamixelコントロールテーブル
**適用 [#u16883a0]
以下のDynamixelに共通のコントロールテーブルです。ここに記載されないDynamixelのコントロールテーブルとは異なります。
-DX-113
-DX-116
-DX-117
-RX-10
-RX-24F
-RX-28
-RX-64
-AX-12
-AX-12+
-AX-12A
-AX-18F
-AX-18A

**コントロールテーブル [#m54c6bba]
Dynamixelの機能及び設定は次のメモリマップ上に1バイトないし2バイト(リトルエンディアン)のアイテムとして割り当てられ、インストラクションパケットを使用して操作します。~
2バイトに渡るアイテムは1つのインストラクションパケットにおいて同時に書き込まれる必要があります。
|=~Control Table|||||h
|=''Address''|=''Item''|=''Access''|=''Initial Value''|=''Range''|
|CENTER:|LEFT:|CENTER:|CENTER:|CENTER:|c
|0 (0x0)|BGCOLOR(silver):[[Model Number>#f9679b00]]|R|-| |
|1 (0x1)|~|~|~|~|
|2 (0x2)|BGCOLOR(silver):[[Version of Firmware>#c0b99f75]]|R|-| |
|3 (0x3)|BGCOLOR(lightgrey):[[ID>#afcb4273]]|R/W|1|0~253|
|4 (0x4)|BGCOLOR(lightgrey):[[Baudrate>#a99cb9a8]]|R/W|34|0~254|
|5 (0x5)|BGCOLOR(lightgrey):[[Return Delay Time>#h9279b18]]|R/W|250|0~254|
|6 (0x6)|BGCOLOR(lightgrey):[[CW Angle Limit>#r26ada5a]]|R/W|0|0~1023|
|7 (0x7)|~|~|~|~|
|8 (0x8)|BGCOLOR(lightgrey):[[CCW Angle Limit>#r26ada5a]]|R/W|1023|0~1023|
|9 (0x9)|~|~|~|~|
|10 (0xA)|(Reserved)|-|-| |
|11 (0xB)|BGCOLOR(lightgrey):[[Highest Limit Temperature>#pf1cedb0]]|R/W|80|10~99|
|12 (0xC)|BGCOLOR(lightgrey):[[Lowest Limit Voltage>#p813d1f0]]|R/W|60|50~250|
|13 (0xD)|BGCOLOR(lightgrey):[[Highest Limit Voltage>#p813d1f0]]|R/W|190|50~250|
|14 (0xE)|BGCOLOR(lightgrey):[[Max Torque>#sa69d1ab]]|R/W|1023|0~1023|
|15 (0xF)|~|~|~|~|
|16 (0x10)|BGCOLOR(lightgrey):[[Status Return Level>#fc051727]]|R/W|2|0~2|
|17 (0x11)|BGCOLOR(lightgrey):[[Alarm LED>#m1f363e1]]|R/W|0x24|0~127|
|18 (0x12)|BGCOLOR(lightgrey):[[Alarm Shutdwon>#aa4c7882]]|R/W|0x24|0~127|
|19 (0x13)|(Reserved)|-|-| |
|20 (0x14)|BGCOLOR(silver):[[Down Calibration>#d4af5057]]|R|?| |
|21 (0x15)|~|~|~|~|
|22 (0x16)|BGCOLOR(silver):[[Up Calibration>#d4af5057]]|R|?| |
|23 (0x17)|~|~|~|~|
|24 (0x18)|BGCOLOR(lightcyan):[[Torque Enable>#m041ac16]]|R/W|0|0~1|
|25 (0x19)|BGCOLOR(lightcyan):[[LED>#k6f31590]]|R/W|0|0~1|
|26 (0x1A)|BGCOLOR(lightcyan):[[CW Compliance Margin>#ac00ee58]]|R/W|1|0~254|
|27 (0x1B)|BGCOLOR(lightcyan):[[CCW Compliance Margin>#ac00ee58]]|R/W|1|0~254|
|28 (0x1C)|BGCOLOR(lightcyan):[[CW Compliance Slope>#ac00ee58]]|R/W|32|1~254|
|29 (0x1D)|BGCOLOR(lightcyan):[[CCW Compliance Slope>#ac00ee58]]|R/W|32|1~254|
|30 (0x1E)|BGCOLOR(lightcyan):[[Goal Position>#ee2d2463]]|R/W|[Addr36]value|0~1023|
|31 (0x1F)|~|~|~|~|
|32 (0x20)|BGCOLOR(lightcyan):[[Moving Speed>#i69bf70b]]|R/W|0|0~1023|
|33 (0x21)|~|~|~|~|
|34 (0x22)|BGCOLOR(lightcyan):[[Torque Limit>#sb02896b]]|R/W|[Addr14]value|0~1023|
|35 (0x23)|~|~|~|~|
|36 (0x24)|[[Present Position>#g40fd002]]|R|?| |
|37 (0x25)|~|~|~|~|
|38 (0x26)|[[Present Speed>#ra254ee8]]|R|?| |
|39 (0x27)|~|~|~|~|
|40 (0x28)|[[Present Load>#k921f4f9]]|R|?| |
|41 (0x29)|~|~|~|~|
|42 (0x2A)|[[Present Voltage>#o9dde163]]|R|?| |
|43 (0x2B)|[[Present Temperature>#yb6e508c]]|R|?| |
|44 (0x2C)|BGCOLOR(lightcyan):[[Registered Instruction>#x5982be7]]|R/W|0|0~1|
|45 (0x2D)|(Reserved)|-|-| |
|46 (0x2E)|[[Moving>#jf0f3fa1]]|R|0| |
|47 (0x2F)|BGCOLOR(lightcyan):[[Lock>#bb3a2a7c]]|R/W|0|1~1|
|48 (0x30)|BGCOLOR(lightcyan):[[Punch>#f79fd083]]|R/W|32|0~1023|
|49 (0x31)|~|~|~|~|

**各アイテムの詳細 [#bb158fce]
***0~1: Model Number [#f9679b00]
モデルナンバーです。

***2: Version of Firmware [#c0b99f75]
ファームウェアのバージョンです。

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

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

***4: Baudrate [#a99cb9a8]
以下の式で計算される通信速度です。~
Baudrate[bps]=2000000 / (Value + 1)~

参考値
| Value |<| Baudrate [bps] |<| Error※ [%] |
| (Dec) | (Hex) | (Real) | (Target) |~|
| 1| 0x01 | 1000000.0| (1000000)| 0.000|
| 3| 0x03 | 500000.0| (500000)| 0.000|
| 4| 0x04 | 400000.0| (400000)| 0.000|
| 7| 0x07 | 250000.0| (250000)| 0.000|
| 9| 0x09 | 200000.0| (200000)| 0.000|
| 16| 0x10 | 117647.1| (115200)| -2.124|
| 34| 0x22 | 57142.9| (57600)| 0.794|
| 103| 0x67 | 19230.8| (19200)| -0.160|
| 207| 0xCF | 9615.4| (9600)| -0.160|
注意: ±3%以下の許容誤差が一般に通信可能な範囲です。

***5: Return Delay Time [#h9279b18]
インストラクションパケットを受信後、ステータスパケットを返信するまでの時間で、2u[sec]×Return Delay Timeで計算されます。

***6~7: CW Angle Limit [#r2daa6da]
***8~9: CCW Angle Limit [#r26ada5a]
動作角の範囲です。[[Goal Position>#ee2d2463]]は以下の範囲に設定する必要があります。~
CW Angle Limit <= Goal Position <= CCW Angle Limit~
Goal Positionが動作角のリミットを越えると、Angle Limit Errorが起こります。

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

***11: Highest Limit Temperature [#pf1cedb0]
動作温度の上限です。内部温度がこの値より高くなるとOverheating Errorが起こります。単位は℃です。

故障の原因となりますので80より高く設定しないでください。

***12: Lowest Limit Voltage [#zb0073ac]
***13: Highest Limit Voltage [#p813d1f0]
動作電圧の上限下限です。[[Present Voltage>#o9dde163]]がこの範囲から外れると、Input Voltage Errorが起こります。~
値は電圧値の10倍です。例えばLowest Limit Voltageを80に設定すると電圧の下限は8Vとなります。

***14~15: Max Torque [#sa69d1ab]
最大出力トルクの初期値です。起動直後にこの値が[[Torque Limit>#sb02896b]]へコピーされ、以後使用されません。~
単位は最大出力に対する割合です。Max Torqueが512なら最大出力対比約50%、1023なら100%が出力の上限となります。

***16: Status Return Level [#fc051727]
Dynamixelがインストラクションパケットを受けた後、ステータスパケットを返すか否かを決定します。
|=''Value''|=''Function''|
|=0|PING以外のインストラクションには応答しない|
|=1|READ_DATAだけに応答する|
|=2|すべてのインストラクションに応答する|
Broadcast ID(254)を使ったインストラクションの場合は、Status Return Levelに関わらずステータスパケットを返しません。

***17: Alarm LED [#m1f363e1]
対応するビットを1に設定すると、エラーが発生した時にステータスLEDが点滅します。~
すべてのビットのOR論理演算に従って動作します。例えば0x05が設定されていたら、Input Voltage ErrorかOverheating Errorが起こったときにLEDが点滅します。
|=''Bit''|=''Function''|=''内容''|
|=7| - | - |
|=6| Instruction Error |未定義のインストラクションが指定された、もしくはreg_writeなしでactionが指定された|
|=5| Overload Error |指定された最大トルクで現在の負荷を制御できない|
|=4| Checksum Error |インストラクションパケットのチェックサムが正しく無い|
|=3| Range Error |パラメータの設定範囲を超えた|
|=2| Overheating Error |内部温度が設定温度を超えた|
|=1| Angle Limit Error |Angle Limitの範囲外にGoal Positionが指定された|
|=0| Input Voltage Error |電源電圧が指定動作電圧の範囲を超えた|

***18: Alarm Shutdown [#aa4c7882]
対応するビットを1に設定すると、エラーが発生した時にTorque Limitを0に設定し、モータの出力を遮断します。~
エラーが発生した後、正常状態に戻ってもTorque Limitは0が維持されますので、[[Torque Limit>#m041ac16]]に値を再設定する必要があります。
|=''Bit''|=''Function''|=''内容''|
|=7| - | - |
|=6| Instruction Error |未定義のインストラクションが指定された、もしくはreg_writeなしでactionが指定された|
|=5| Overload Error |指定された最大トルクで現在の負荷を制御できない|
|=4| Checksum Error |インストラクションパケットのチェックサムが正しく無い|
|=3| Range Error |パラメータの設定範囲を超えた|
|=2| Overheating Error |内部温度が設定温度を超えた|
|=1| Angle Limit Error |Angle Limitの範囲外にGoal Positionが指定された|
|=0| Input Voltage Error |電源電圧が指定動作電圧の範囲を超えた|

***20~21: Down Calibration [#za300029]
***22~23: Up Calibration [#d4af5057]
ポテンショメータの誤差を補うのに使用されるデータです。ユーザは変更できません。

***24: Torque Enable [#m041ac16]
電源を入れた時、出力軸はフリーの状態です。Torque Enableを1に設定するとトルクが有効になります。
[[Goal Position>#ee2d2463]]を指定した場合も1になります。

***25: LED [#k6f31590]
1を設定するとLEDが点灯し、0を設定すると消灯します。

***26: CW Compliance Margin [#u3d18477]
***27: CCW Compliance Margin [#y5859c4a]
***28: CW Compliance Slope [#ubd4963c]
***29: CCW Compliance Slope [#ac00ee58]
Dynamixelはコンプライアンスを設定することで出力軸に柔軟性を持たせます。グラフはポジションと出力の相関を表し、A~Dは各コンプライアンス値です。
#ref(DxCntTable1.png,100%)
A : CCW Compliance Slope~
B : CCW Compliance Margin~
C : CW Compliance Margin~
D : CW Compliance Slope~
E : Punch~

***30~31: Goal Position [#ee2d2463]
出力軸の位置を設定します。出力軸0~300°に対し、0~1023の値を与えます。
[[Endless Turn>#j6a51fa3]]モードでは使用しません。
#ref(DxCntTable2.png)

***32~33: Moving Speed [#i69bf70b]
出力軸が[[Goal Position>#ee2d2463]]へ動く時の角速度です。単位は約0.111rpmです。
但し該当モデルの最大回転数以上では動作しません。
0に設定すると供給電圧で可能な最大速度になります。

Endless Turnモードで使用する場合は[[Endless Turn>#j6a51fa3]]参照。

***34~35: Torque Limit [#sb02896b]
最大出力の上限値です。
単位は最大出力に対する割合です。Max Torqueが512なら最大出力対比約50%、1023なら100%が出力の上限となります。~
電源を入れると[[Max Torque>#sa69d1ab]]の値を初期値として使用します。

***36~37: Present Position [#g40fd002]
出力軸の現在位置です。出力軸0~300°に対し、0~1023の値をとります。

[[Endless Turn>#j6a51fa3]]モードでは300~360°の間は不定値となります。

***38~39: Present Speed [#ra254ee8]
出力軸の現在の角速度です。10番目のビットは回転方向を表します。~
単位は約0.111rpmです。

Endless Turnモードの場合は[[Endless Turn>#j6a51fa3]]参照。

| Bit | 15~11 | 10 | 9~0 |
| Value | 0 | Direction | Value |
Direction = 0 : CCW, Direction = 1 : CW

***40~41: Present Load [#k921f4f9]
出力に基づいて算出された負荷の大きさです。10番目のビットは負荷の方向です。~
単位は最大出力に対する割合です。512ならCCW方向に最大出力対比約50%、1023なら100%の負荷となります。
| Bit | 15~11 | 10 | 9~0 |
| Value | 0 | Direction | Value |
Direction = 0 : CCW, Direction = 1 : CW

***42: Present Voltage [#o9dde163]
現在供給されている電圧です。値は電圧(V)の10倍値です。例えば10Vは100となります。

***43: Present Temperature [#yb6e508c]
内部温度(℃)です。例えば30℃は30です。

***44: Registered Instruction [#x5982be7]
REG_WRITEコマンドでインストラクションが格納されたとき1になり、ACTIONコマンドでインストラクションが完了したら0になります。

***46: Moving [#jf0f3fa1]
供給された電力で出力軸が回転しているときに1、それ以外は0が設定されます。外力によって出力軸が動いても1にはなりません。

***47: Lock [#bb3a2a7c]
1を設定するとコントロールテーブルの不揮発エリア(アドレス0~23)が書き換え不能になります。ロックの解除するには電源を入れ直す必要があります。

***48~49: Punch [#f79fd083]
''現バージョンのファームウェアでは使用していません。''

操作時にモータに供給される最小の電流です。

**Endless Turn [#j6a51fa3]
[[CW Angle Limit>#r2daa6da]]と[[CWW Angle Limit>#r26ada5a]]を0に設定することで、車輪のような役割として使用できるEndless Turnモードになります。[[Moving Speed>#i69bf70b]]で回転速度を指定します。

Endless TurnモードでのMoving Speed及び[[Present Speed>#ra254ee8]]は、最大出力に対する出力の割合です。512ならCCW方向に最大出力対比約50%、1023なら100%の出力で制御します。負荷の大きさによって回転速度は変わります。

Moving Speedの設定
| BIT | 15~11 | 10 | 9~0 |
| Value | 0 | Turn Direction | Speed Value |
Trun Direction = 0 : CCW, Trun Direction = 1 : CW

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

« Prev[4]  Next »[5]