1: 2009-07-02 (木) 12:26:34 sho | 現: 2017-09-07 (木) 00:58:18 takaboo | ||
---|---|---|---|
Line 1: | Line 1: | ||
- | **メモリマップ [#m54c6bba] | + | TITLE:Dynamixel Control Table |
- | Dynamixelの内部機能及び設定は次に示すメモリマップとして提供され、インストラクションパケットを使用して操作されます。Dynamixelはコントロールテーブルに値を書くことで操作され、状態はコントロールテーブルから値を読むことで確認します。~ | + | **適用 [#u16883a0] |
- | 16ビットデータレジスタは(L)と(H)の2バイトで表されます。両方のバイトが1つのインストラクションパケットにおいて同時に書き込まれる必要があります。 | + | 以下のDynamixelに共通のコントロールテーブルです。 |
- | |Address|Item|Access Initial Value| | + | -DX-113 |
- | |0 (0x0)|Model Number(L)|R|28 (0x1C)| | + | -DX-116 |
- | |1 (0x1)|Model Number(H)|R|0 (0x00)| | + | -DX-117 |
- | |2 (0x2)|Version of Firmware|R|?| | + | -RX-10 |
- | |3 (0x3)|ID|R/W|1 (0x01)| | + | -[[RX-24F]] |
- | |4 (0x4)|Baudrate|R/W|34 (0x22)| | + | -[[RX-28>BTX031 Dynamixel RX-28]] |
- | |5 (0x5)|Return Delay Time|R/W|250 (0xFA)| | + | -[[RX-64>BTX029 Dynamixel RX-64]] |
- | |6 (0x6)|CW Angle Limit (L)|R/W|0 (0x00)| | + | -AX-12 |
- | |7 (0x7)|CW Angle Limit (H)|R/W|0 (0x00)| | + | -[[AX-12+]] |
- | |8 (0x8)|CCW Angle Limit (L)|R/W|255 (0xFF)| | + | -[[AX-12A]] |
- | |9 (0x9)|CCW Angle Limit (H)|R/W|3 (0x03)| | + | -AX-18F |
- | |10 (0xA)|(Reserved)|-|0 (0x00)| | + | -[[AX-18A]] |
- | |11 (0xB)|Highest Limit Temperature|R/W|80 (0x50)| | + | |
- | |12 (0xC)|Lowest Limit Voltage|R/W|60 (0x3C)| | + | **アイテム一覧 [#m54c6bba] |
- | |13 (0xD)|Highest Limit Voltage|R/W|190 (0xBE)| | + | Dynamixelの機能及び設定は次のメモリマップ上に1バイトないし2バイト(リトルエンディアン)のアイテムとして割り当てられ、インストラクションパケットを使用して操作します。~ |
- | |14 (0xE)|Max Torque (L)|R/W|255 (0xFF)| | + | 2バイトに渡るアイテムは1つのインストラクションパケットにおいて同時に書き込まれる必要があります。 |
- | |15 (0xF)|Max Torque (H)|R/W|3 (0x03)| | + | |=''Address''|=''Item''|=''Access''|=''Default Value''|=''Range''|h |
- | |16 (0x10)|Status Return Level|R/W|2 (0x02)| | + | |CENTER:|LEFT:|CENTER:|CENTER:|CENTER:|c |
- | |17 (0x11)|Alarm LED|R/W|36 (0x24)| | + | |0|BGCOLOR(beige):[[Model Number>#f9679b00]]|R|-|uint16| |
- | |18 (0x12)|Alarm Shutdwon|R/W|36 (0x24)| | + | |1|~|~|~|~| |
- | |19 (0x13)|(Reserved)|RW|0 (0x00)| | + | |2|BGCOLOR(beige):[[Version of Firmware>#c0b99f75]]|R|?|uint8| |
- | |20 (0x14)|Down Calibration (L)|R|?| | + | |3|BGCOLOR(seashell):[[ID>#afcb4273]]|R/W (NVM)|1|uint8&br;0~253| |
- | |21 (0x15)|Down Calibration (H)|R|?| | + | |4|BGCOLOR(seashell):[[Baudrate>#a99cb9a8]]|R/W (NVM)|34&br;(AXシリーズは1)|uint8&br;0~254| |
- | |22 (0x16)|Up Calibration (L)|R|?| | + | |5|BGCOLOR(seashell):[[Return Delay Time>#h9279b18]]|R/W (NVM)|250|uint8&br;0~254| |
- | |23 (0x17)|Up Calibration (H)|R|?| | + | |6|BGCOLOR(seashell):[[CW Angle Limit>#r26ada5a]]|R/W (NVM)|0|uint16&br;0~1023| |
- | |24 (0x18)|Torque Enable|R/W|0 (0x00)| | + | |7|~|~|~|~| |
- | |25 (0x19)|LED R/W|0 (0x00)| | + | |8|BGCOLOR(seashell):[[CCW Angle Limit>#r26ada5a]]|R/W (NVM)|1023|uint16&br;0~1023| |
- | |26 (0x1A)|CW Compliance Margin|R/W|1 (0x00)| | + | |9|~|~|~|~| |
- | |27 (0x1B)|CCW Compliance Margin|R/W|1 (0x00)| | + | |10|BGCOLOR(silver):(Reserved)|-|-|uint8| |
- | |28 (0x1C)|CW Compliance Slope|R/W|32 (0x20)| | + | |11|BGCOLOR(seashell):[[Highest Limit Temperature>#pf1cedb0]]|R/W (NVM)|80|uint8&br;10~99| |
- | |29 (0x1D)|CCW Compliance Slope|R/W|32 (0x20)| | + | |12|BGCOLOR(seashell):[[Lowest Limit Voltage>#p813d1f0]]|R/W (NVM)|60|uint8&br;50~250| |
- | |30 (0x1E)|Goal Position (L)|R/W|[Addr36]value| | + | |13|BGCOLOR(seashell):[[Highest Limit Voltage>#p813d1f0]]|R/W (NVM)|190|uint8&br;50~250| |
- | |31 (0x1F)|Goal Position (H)|R/W|[Addr37]value| | + | |14|BGCOLOR(seashell):[[Max Torque>#sa69d1ab]]|R/W (NVM)|1023|uint16&br;0~1023| |
- | |32 (0x20)|Moving Speed (L)|R/W|0 (0x00)| | + | |15|~|~|~|~| |
- | |33 (0x21)|Moving Speed (H)|R/W|0 (0x00)| | + | |16|BGCOLOR(seashell):[[Status Return Level>#fc051727]]|R/W (NVM)|2|uint8&br;0~2| |
- | |34 (0x22)|Torque Limit (L)|R/W|[Addr14]value| | + | |17|BGCOLOR(seashell):[[Alarm LED>#m1f363e1]]|R/W (NVM)|0x24|uint8&br;0~127| |
- | |35 (0x23)|Torque Limit (H)|R/W|[Addr15]value| | + | |18|BGCOLOR(seashell):[[Alarm Shutdwon>#aa4c7882]]|R/W (NVM)|0x24|uint8&br;0~127| |
- | |36 (0x24)|Present Position (L)|R|?| | + | |19|BGCOLOR(silver):(reserved)|-|-|uint8| |
- | |37 (0x25)|Present Position (H)|R|?| | + | |20|BGCOLOR(beige):[[Down Calibration>#d4af5057]]|R|?|uint16| |
- | |38 (0x26)|Present Speed (L)|R|?| | + | |21|~|~|~|~| |
- | |39 (0x27)|Present Speed (H)|R|?| | + | |22|BGCOLOR(beige):[[Up Calibration>#d4af5057]]|R|?|uint16| |
- | |40 (0x28)|Present Load (L)|R|?| | + | |23|~|~|~|~| |
- | |41 (0x29)|Present Load (H)|R|?| | + | |24|BGCOLOR(lightcyan):[[Torque Enable>#m041ac16]]|R/W|0|uint8&br;0~1| |
- | |42 (0x2A)|Present Voltage|R|?| | + | |25|BGCOLOR(lightcyan):[[LED>#k6f31590]]|R/W|0|uint8&br;0~1| |
- | |43 (0x2B)|Present Temperature|R|?| | + | |26|BGCOLOR(lightcyan):[[CW Compliance Margin>#ac00ee58]]|R/W|1|uint8&br;0~254| |
- | |44 (0x2C)|Registered Instruction|R/W|0 (0x00)| | + | |27|BGCOLOR(lightcyan):[[CCW Compliance Margin>#ac00ee58]]|R/W|1|uint8&br;0~254| |
- | |45 (0x2D)|(Reserved)|-|0 (0x00)| | + | |28|BGCOLOR(lightcyan):[[CW Compliance Slope>#ac00ee58]]|R/W|32|uint8&br;1~254| |
- | |46 (0x2E)|Moving|R|0 (0x00)| | + | |29|BGCOLOR(lightcyan):[[CCW Compliance Slope>#ac00ee58]]|R/W|32|uint8&br;1~254| |
- | |47 (0x2F)|Lock|R/W|0 (0x00)| | + | |30|BGCOLOR(lightcyan):[[Goal Position>#ee2d2463]]|R/W|[Addr36]value|uint16&br;0~1023| |
- | |48 (0x30)|Punch (L)|R/W|32 (0x20)| | + | |31|~|~|~|~| |
- | |49 (0x31)|Punch (H)|R/W|0 (0x00)| | + | |32|BGCOLOR(lightcyan):[[Moving Speed>#i69bf70b]]|R/W|0|uint16&br;0~2047| |
+ | |33|~|~|~|~| | ||
+ | |34|BGCOLOR(lightcyan):[[Torque Limit>#sb02896b]]|R/W|[Addr14]value|uint16&br;0~1023| | ||
+ | |35|~|~|~|~| | ||
+ | |36|BGCOLOR(beige):[[Present Position>#g40fd002]]|R|-|uint16| | ||
+ | |37|~|~|~|~| | ||
+ | |38|BGCOLOR(beige):[[Present Speed>#ra254ee8]]|R|-|uint16| | ||
+ | |39|~|~|~|~| | ||
+ | |40|BGCOLOR(beige):[[Present Load>#k921f4f9]]|R|-|uint16| | ||
+ | |41|~|~|~|~| | ||
+ | |42|BGCOLOR(beige):[[Present Voltage>#o9dde163]]|R|-|uint8| | ||
+ | |43|BGCOLOR(beige):[[Present Temperature>#yb6e508c]]|R|-|uint8| | ||
+ | |44|BGCOLOR(beige):[[Registered Instruction>#x5982be7]]|R|0|uint8&br;0~1| | ||
+ | |45|BGCOLOR(silver):(reserved)|-|-|uint8| | ||
+ | |46|BGCOLOR(beige):[[Moving>#jf0f3fa1]]|R|0|uint8| | ||
+ | |47|BGCOLOR(lightcyan):[[Lock>#bb3a2a7c]]|R/W|0|uint8&br;0~1| | ||
+ | |48|BGCOLOR(lightcyan):[[Punch>#f79fd083]]|R/W|32|uint16&br;0~1023| | ||
+ | |49|~|~|~|~| | ||
+ | -データ幅が16bitのアイテムはリトルエンディアン(データの下位バイトから順に格納)。 | ||
+ | -Accessに(NVM)とあるアイテムは不揮発メモリとなっており、電源を切っても値が保持される。また頻繁な書き換えは想定されていないため、書き換えは必要最低限にとどめること。 | ||
+ | -Accessに(NVM)とあるアイテムとIndirect Addressを変更する場合は、Torque Enalbeが0でなくてはならない。 | ||
+ | -(reserve)はシステムで予約され、読み出した値に有効性はない。また、書き込みを行ってはならない。 | ||
+ | -Default Valueは出荷時ないしファクトリーリセットを行った際の値。又、ファームウェアのバージョンによって値が変更される場合がある。 | ||
+ | |||
+ | ***各アイテム詳細 [#bb158fce] | ||
+ | |||
+ | ****0~1: Model Number [#f9679b00] | ||
+ | モデル固有の値を保持します。異なる種類のDynamixelを混在して使用する際の個体識別などに使用できます。 | ||
+ | |||
+ | ****2: Version of Firmware [#c0b99f75] | ||
+ | 内蔵されるCPUに書き込まれたプログラムのバージョンです。ファームウェアの更新を行った際に合わせて自動的に変更されます。 | ||
+ | |||
+ | ****3: ID [#afcb4273] | ||
+ | 各Dynamixelを特定するための固有の値で0~253の範囲の数値で設定します。同一ネットワーク内に存在するDynamixelには各々異なるIDが要求されます。 | ||
+ | |||
+ | ****4: Baudrate [#a99cb9a8] | ||
+ | 通信速度を決める分周値で、通信速度は次式で導かれます。~ | ||
+ | Baudrate[bps] = 2000000[bps] / (Value + 1) | ||
+ | |||
+ | 主なBaudrate~ | ||
+ | | Value | Actual Baudrate[bps] | Specified Baudrate[bps] | Error[%] |h | ||
+ | | 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%以下が要求されます。 | ||
+ | |||
+ | ****5: Return Delay Time [#h9279b18] | ||
+ | インストラクションパケットが送られた後、ステータスパケットを返すまでの待ち時間を設定します。~ | ||
+ | ホストにおいて半二重のバス制御のタイミングに合わせて調整しますが、[[DXHUB]]を使用する限りでは0を設定しても問題ありません。 | ||
+ | Delay Time [us] = Value * 2 [us] | ||
+ | |||
+ | ****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] | ||
+ | [[Present Temperature>#yb6e508c]]がこの値を超えるとOverheating Errorの該当ビットがONになります。 | ||
+ | |||
+ | Temperature [degC] = Value * 1 [degC] | ||
+ | |||
+ | ****12: Lowest Limit Voltage [#zb0073ac] | ||
+ | ****13: Highest Limit Voltage [#p813d1f0] | ||
+ | [[Present Voltage>#o9dde163]]がこの値の範囲を超えるとInput Voltage Errorの該当ビットはONになります。 | ||
+ | Voltage [V] = Value * 0.1 [V] | ||
+ | |||
+ | ****14~15: Max Torque [#sa69d1ab] | ||
+ | 最大出力トルクの初期値です。起動直後にこの値が[[Torque Limit>#sb02896b]]へコピーされ、以後使用されません。~ | ||
+ | 単位は最大出力に対する割合です。Max Torqueが512なら最大出力対比約50%、1023なら100%が出力の上限となります。 | ||
+ | |||
+ | ****16: Status Return Level [#fc051727] | ||
+ | ステータスパケットを返信するインストラクションパケットを選択します。 | ||
+ | |CENTER:|LEFT:|c | ||
+ | |Value|CENTER:Instruction to respond|h | ||
+ | |0|Ping| | ||
+ | |1|Ping, Read| | ||
+ | |2|Ping, Read, Write, Reg Write, Reset | | ||
+ | |||
+ | ****17: Alarm LED [#m1f363e1] | ||
+ | 対応するビットを1に設定すると、エラーが発生した時にステータスLEDが点滅します。~ | ||
+ | すべてのビットのOR論理演算に従って動作します。例えば0x05が設定されていたら、Input Voltage ErrorかOverheating Errorが起こったときにLEDが点滅します。 | ||
+ | | Bit | Name | Description |h | ||
+ | |=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 | Name | Description |h | ||
+ | |=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] | ||
+ | 本体に装備されたLEDを点灯ないし消灯します。 | ||
+ | |CENTER:|LEFT:|c | ||
+ | |Value|CENTER:Description|h | ||
+ | |0|消灯| | ||
+ | |1|点灯| | ||
+ | |||
+ | ****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] | ||
+ | 出力軸が動く際の回転数を指定します。 | ||
+ | Velocity [rpm] = Value * 0.111 [rpm] | ||
+ | 但し該当モデルの最大回転数以上では動作しません。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番目のビットは回転方向を表します。~ | ||
+ | Present Speed [rpm] = Value * 0.111 [rpm] | ||
+ | |||
+ | Endless Turnモードの場合は[[Endless Turn>#j6a51fa3]]参照。 | ||
+ | |||
+ | |BGCOLOR(#d0d8e0): Bit | 15~11 | 10 | 9~0 | | ||
+ | |BGCOLOR(#d0d8e0): Value | 0 | Direction | Speed | | ||
+ | Direction = 0 : CCW, Direction = 1 : CW | ||
+ | |||
+ | ****40~41: Present Load [#k921f4f9] | ||
+ | 出力に基づいて算出された負荷の大きさです。10番目のビットは負荷の方向です。~ | ||
+ | 単位は最大出力に対する割合です。512ならCCW方向に最大出力対比約50%、1023なら100%の負荷となります。 | ||
+ | |BGCOLOR(#d0d8e0): Bit | 15~11 | 10 | 9~0 | | ||
+ | |BGCOLOR(#d0d8e0): Value | 0 | Direction | Load | | ||
+ | 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の設定 | ||
+ | |BGCOLOR(#d0d8e0): Bit | 15~11 | 10 | 9~0 | | ||
+ | |BGCOLOR(#d0d8e0): Value | 0 | Turn Direction | Speed | | ||
+ | Trun Direction = 0 : CCW, Trun Direction = 1 : CW |