2: 2012-09-27 (木) 16:45:54 takaboo ソース 現: 2017-08-18 (金) 12:27:51 takaboo ソース
Line 1: Line 1:
 +TITLE:MX Series Control table
**適用 [#q973e381] **適用 [#q973e381]
-以下のDynamixelに共通のコントロールテーブルです。ここに記載されないDynamixelのコントロールテーブルとは異なります。 +DynamixelプロトコルV1版ファームウェア Ver.36以降を搭載した以下のDynamixelに共通するコントロールテーブルです。 
--MX-28R/MX-28T +-MX-12W 
--MX-64R/MX-64T +-[[MX-28R/MX-28T/MX-28AR/MX-28AT>MX-28]] 
--MX-106/MX-106T+-[[MX-64R/MX-64T/MX-64AR/MX-64AT>MX-64]] 
 +-[[MX-106R/MX-106T>MX-106]]
-**コントロールテーブル [#x4eb66a5] +**アイテム一覧 [#x4eb66a5] 
-Dynamixelの機能及び設定は次のメモリマップ上に1バイトないし2バイト(リトルエンディアン)のアイテムとして割り当てられ、インストラクションパケットを使用して操作します。 +|=''Address''|=''Item''|=''Access''|=''Reset Value''|=''Range''|h
-2バイトに渡るアイテムは1つのインストラクションパケットにおいて同時に書き込まれる必要があります。 +
-|=~Control Table|||||h +
-|=''Address''|=''Item''|=''Access''|=''Initial Value''|=''Range''|+
|CENTER:|LEFT:|CENTER:|CENTER:|CENTER:|c​ |CENTER:|LEFT:|CENTER:|CENTER:|CENTER:|c​
-|0 (0x0)|[[Model Number>#ta493b6c]]|R|-| | +|0|BGCOLOR(beige):[[Model Number>#ta493b6c]]|R|-|uint16
-|1 (0x1)|~|~|~|~| +|1|~|~|~|~| 
-|2 (0x2)|[[Version of Firmware>#x2b21b74]]|R|-| | +|2|BGCOLOR(beige):[[Version of Firmware>#x2b21b74]]|R|-|uint8
-|3 (0x3)|[[ID>#n563922f]]|R/W|1 (0x01)|0~253| +|3|BGCOLOR(seashell):[[ID>#afcb4273]]|R/W (NVM)|1|uint8&br;0~253| 
-|4 (0x4)|[[Baudrate>#r27c0a5d]]|R/W|34 (0x22)|0~254| +|4|BGCOLOR(seashell):[[Baudrate>#r27c0a5d]]|R/W (NVM)|34&br;(MX-12Wのみ1)|uint8&br;0~254| 
-|5 (0x5)|[[Return Delay Time>#z6a035d0]]|R/W|250 (0xFA)|0~254| +|5|BGCOLOR(seashell):[[Return Delay Time>#z6a035d0]]|R/W (NVM)|250|uint8&br;0~254| 
-|6 (0x6)|[[CW Angle Limit>#h4561931]]|R/W|0 (0x00)|0~4095| +|6|BGCOLOR(seashell):[[CW Angle Limit>#h4561931]]|R/W (NVM)|0|uint16&br;0~4095| 
-|7 (0x7)|~|~|~|~| +|7|~|~|~|~| 
-|8 (0x8)|[[CCW Angle Limit>#u752e406]]|R/W|4095 (0xFFF)|0~4095| +|8|BGCOLOR(seashell):[[CCW Angle Limit>#u752e406]]|R/W (NVM)|4095|uint16&br;0~4095| 
-|9 (0x9)|~|~|~|~| +|9|~|~|~|~| 
-|10 (0xA)|[[Drive Mode>#rd7fa695]]|R/W|0 (0x00)|0~3| +|10|BGCOLOR(seashell):[[Drive Mode>#rd7fa695]]|R/W (NVM)|0|uint8&br;0~3| 
-|11 (0xB)|[[Highest Limit Temperature>#eae67652]]|R/W|80 (0x50)|10~99| +|11|BGCOLOR(seashell):[[Highest Limit Temperature>#eae67652]]|R/W (NVM)|80|uint8&br;10~99| 
-|12 (0xC)|[[Lowest Limit Voltage>#l2901ded]]|R/W|60 (0x3C)|50~250| +|12|BGCOLOR(seashell):[[Lowest Limit Voltage>#l2901ded]]|R/W (NVM)|60|uint8&br;50~250| 
-|13 (0xD)|[[Highest Limit Voltage>#sf36842f]]|R/W|160 (0xA0)|50~250| +|13|BGCOLOR(seashell):[[Highest Limit Voltage>#sf36842f]]|R/W (NVM)|160|uint8&br;50~250| 
-|14 (0xE)|[[Max Torque>#m8848974]]|R/W|1023 (0x3FF)|0~1023| +|14|BGCOLOR(seashell):[[Max Torque>#m8848974]]|R/W (NVM)|1023|uint16&br;0~1023| 
-|15 (0xF)|~|~|~|~| +|15|~|~|~|~| 
-|16 (0x10)|[[Status Return Level>#mc2f793d]]|R/W|2 (0x02)|0~2| +|16|BGCOLOR(seashell):[[Status Return Level>#mc2f793d]]|R/W (NVM)|2|uint8&br;0~2| 
-|17 (0x11)|[[Alarm LED>#q8d97e3d]]|R/W|36 (0x24)|0~127| +|17|BGCOLOR(seashell):[[Alarm LED>#q8d97e3d]]|R/W (NVM)|36|uint8&br;0~127| 
-|18 (0x12)|[[Alarm Shutdwon>#y219e63a]]|R/W|36 (0x24)|0~127| +|18|BGCOLOR(seashell):[[Alarm Shutdwon>#y219e63a]]|R/W (NVM)|36|uint8&br;0~127| 
-|19 (0x13)|(Reserved)|RW|0 (0x00)| | +|19|BGCOLOR(silver):(reserve)|R|-|uint8
-|20 (0x14)|[[Down Calibration>#f95fb07c]]|R|?| | +|20|BGCOLOR(seashell):[[Multi Turn Offset>#f95fb07c]]|R|0|int16&br;-24576~24576
-|21 (0x15)|~|~|~|~| +|21|~|~|~|~| 
-|22 (0x16)|[[Up Calibration>#hceb4e38]]|R|?| | +|22|BGCOLOR(seashell):[[Resolution Divider>#hceb4e38]]|R|1|uint8&br;1~4
-|23 (0x17)|~|~|~|~+|23|BGCOLOR(silver):(reserve)|R|-|uint8
-|24 (0x18)|[[Torque Enable>#ae42664f]]|R/W|0 (0x00)|0~1| +|24|BGCOLOR(lightcyan):[[Torque Enable>#ae42664f]]|R/W (NVM)|0|uint8&br;0~1| 
-|25 (0x19)|[[LED>#j0f1ab3d]]|R/W|0 (0x00)|0~1| +|25|BGCOLOR(lightcyan):[[LED>#j0f1ab3d]]|R/W (NVM)|0|uint8&br;0~1| 
-|26 (0x1A)|[[D Gain>#z76ef779]]|R/W|0 (0x00)|0~254| +|26|BGCOLOR(lightcyan):[[D Gain>#z76ef779]]|R/W|0&br;(MX-12Wのみ8)|uint8&br;0~254| 
-|27 (0x1B)|[[I Gain>#n47ffacd]]|R/W|0 (0x00)|0~254| +|27|BGCOLOR(lightcyan):[[I Gain>#n47ffacd]]|R/W|0|uint8&br;0~254| 
-|28 (0x1C)|[[P Gain>#l6ed04c6]]|R/W|32 (0x20)|1~254| +|28|BGCOLOR(lightcyan):[[P Gain>#l6ed04c6]]|R/W|32&br;(MX-12Wのみ8)|uint8&br;1~254| 
-|29 (0x1D)|(Reserved)|RW|0 (0x00)| | +|29|BGCOLOR(silver):(reserve)|R|-|uint8
-|30 (0x1E)|[[Goal Position>#i10660fa]]|R/W|[Addr36]value|0​~4095| +|30|BGCOLOR(lightcyan):[[Goal Position>#i10660fa]]|R/W|[Addr36]value|uint16/int16&br;0~4095/-28672~28672
-|31 (0x1F)|~|~|~|~| +|31|~|~|~|~| 
-|32 (0x20)|[[Moving Speed>#s3139326]]|R/W|0 (0x00)|0~1023((Moving SpeedはEndless Turnモードの場合のRange:0~2047となる))+|32|BGCOLOR(lightcyan):[[Moving Speed>#s3139326]]|R/W|0|uint16&br;-1023~1023| 
-|33 (0x21)|~|~|~|~| +|33|~|~|~|~| 
-|34 (0x22)|[[Torque Limit>#l9afa11c]]|R/W|[Addr14]value|0~10​23| +|34|BGCOLOR(lightcyan):[[Torque Limit>#l9afa11c]]|R/W|[Addr14]value|uint16&br;0~1023| 
-|35 (0x23)|~|~|~|~| +|35|~|~|~|~| 
-|36 (0x24)|[[Present Position>#v2f847df]]|R|?| | +|36|BGCOLOR(beige):[[Present Position>#v2f847df]]|R|?|uint16&br;
-|37 (0x25)|~|~|~|~| +|37|~|~|~|~| 
-|38 (0x26)|[[Present Speed>#qeda324a]]|R|?| | +|38|BGCOLOR(beige):[[Present Speed>#qeda324a]]|R|?|uint16&br;
-|39 (0x27)|~|~|~|~| +|39|~|~|~|~| 
-|40 (0x28)|[[Present Load>#j002f18d]]|R|?| | +|40|BGCOLOR(beige):[[Present Load>#j002f18d]]|R|?|uint16&br;
-|41 (0x29)|~|~|~|~| +|41|~|~|~|~| 
-|42 (0x2A)|[[Present Voltage>#r74e7fb8]]|R|?| | +|42|BGCOLOR(beige):[[Present Voltage>#r74e7fb8]]|R|?|uint8&br;
-|43 (0x2B)|[[Present Temperature>#i9d8fe30]]|R|?| | +|43|BGCOLOR(beige):[[Present Temperature>#i9d8fe30]]|R|?|uint8&br;
-|44 (0x2C)|[[Registered Instruction>#oc452a69]]|R/W|0 (0x00)|0~1| +|44|BGCOLOR(beige):[[Registered Instruction>#oc452a69]]|R/W|0|uint8&br;0~1| 
-|45 (0x2D)|(Reserved)|-|0 (0x00)| +|45|BGCOLOR(silver):(reserve)|R|-|uint8
-|46 (0x2E)|[[Moving>#vc953eee]]|R|0 (0x00)| | +|46|BGCOLOR(beige):[[Moving>#vc953eee]]|R|0|uint8&br;
-|47 (0x2F)|[[Lock>#ib2c369f]]|R/W|0 (0x00)|0~1| +|47|BGCOLOR(lightcyan):[[Lock>#ib2c369f]]|R/W|0|uint8&br;0~1| 
-|48 (0x30)|[[Punch>#edd9e980]]|R/W|32 (0x20)|0~1023| +|48|BGCOLOR(lightcyan):[[Punch>#edd9e980]]|R/W|32|uint16&br;0~1023| 
-|49 (0x31)|~|~|~|~| +|49|~|~|~|~| 
-|56 (0x38)|[[Sensed Current>#vfbc0b35]]|R|?| | +|50&br;~&br;67|BGCOLOR(silver):(reserve)|R|-|uint8| 
-|57 (0x39)|~|~|~|~| +|68|BGCOLOR(lightcyan):[[Current>#vfbc0b35]]|R|?|uint16&br;0~4095
-|70 (0x46)|[[Torque Control Mode Enable>]]|R/W|0 (0x00)| | +|69|~|~|~|~| 
-|71 (0x47)|[[Goal Torque>]]|R/W|0 (0x0000)| | +|70|BGCOLOR(lightcyan):[[Torque Control Mode Enable>#v4678328]]|R/W|0|uint8&br;0~1
-|72 (0x48)|~|~|~|~|+|71|BGCOLOR(lightcyan):[[Goal Torque>#b7f047a6]]|R/W|0|uint16&br;0~2047
 +|72|~|~|~|~| 
 +|73|BGCOLOR(lightcyan):[[Goal Acceleration>#z3b818ed]]|R/W|0|uint8&br;0~2​54| 
 +-データ幅が16bitないし32bitのアイテムはリトルエンディアン(データの下位バイトから順に格納)。 
 +-Accessに(NVM)とあるアイテムは不揮発メモリとなっており、電源を切っても値が保持される。また頻繁な書き換えは想定されていないため、書き換えは必要最低限にとどめること。 
 +-Accessに(NVM)とあるアイテムとIndirect Addressを変更する場合は、Torque Enalbeが0でなくてはならない。 
 +-(reserve)はシステムで予約され、読み出した値に有効性はない。また、書き込みを行ってはならない。 
 +-Default Valueは出荷時ないしファクトリーリセットを行った際の値。又、ファームウェアのバージョンによって値が変更される場合がある。
**各アイテムの詳細 [#hd8e7c4e] **各アイテムの詳細 [#hd8e7c4e]
***0~1:Model Number [#ta493b6c] ***0~1:Model Number [#ta493b6c]
-モデルナンバーです。+モデルナンバーです。各モデルには以下の固有値が割り当てられます。 
 +| Model Name | Value |h 
 +| MX-12W | 0x0168 | 
 +| MX-28 | 0x001D | 
 +| MX-64 | 0x0136 | 
 +| MX-106 | 0x0140 |
***2:Version of Firmware [#x2b21b74] ***2:Version of Firmware [#x2b21b74]
Line 75: Line 86:
***3: ID [#afcb4273] ***3: ID [#afcb4273]
-各Dynamixelを特定するための固有のIDナンバーです。同じネットワークの各Dynamixelに異なるIDが必要です。+各Dynamixelを特定するための固有の値で0~253の範囲で設定します。同一ネットワーク中のDynamixelには各々異なるIDが要求されます。
-0~253まで設定可能で、254はBroadcast IDと呼ばれ全てのDynamixelへパケットを送信する際に使用します。+254はBroadcast IDとし、全てのDynamixelへパケットを送信する際に使用します。
***4:Baudrate [#r27c0a5d] ***4:Baudrate [#r27c0a5d]
-通信速度を決定します。以下の公式で計算します。+通信速度を決める分周値で、通信速度は次式で導かれます。
-Baudrate[BPS]=2000000 / (value + 1)~ +Baudrate[bps]=2000000 / (value + 1)~ 
-~ + 
-主なBaudrateのデータ値+主なBaudrate
-|Set value(Dec.)|Set value(Hex.)|Baudrate[BPS]|Target Baudrate[BPS]|Error※[%]| +| value | Actual Baudrate[bps] | Specified Baudrate[bps] | Error[%] |h 
-|1|0X01|1000000.0|1000000|0.000| +| 1| 1000000.0| 1000000| 0.000| 
-|3|0X03|500000.0|500000|0.000| +| 3| 500000.0| 500000| 0.000| 
-|4|0X04|400000.0|400000|0.000| +| 4| 400000.0| 400000| 0.000| 
-|7|0X07|250000.0|250000|0.000| +| 7| 250000.0| 250000| 0.000| 
-|9|0X09|200000.0|200000|0.000| +| 9| 200000.0| 200000| 0.000| 
-|16|0X10|117647.1|115200|-2.124| +| 16| 117647.1| 115200| -2.124| 
-|34|0X22|57142.9|57600|0.794| +| 34| 57142.9| 57600| 0.794| 
-|103|0X67|19230.8|19200|-0.160| +| 103| 19230.8| 19200| -0.160| 
-|207|0XCF|9615.4|9600|-0.160| +| 207| 9615.4| 9600| -0.160| 
-注意: ±3%以下の許容誤差が一般に通信可能な範囲です。+※ホストとのボーレートの誤差は±2%以下が要求されます。 
 + 
 +なお、MXシリーズのみ以下の値の時にイリガルなボーレートが割り当てられていますので注意が必要です。 
 +| value | Baudrate[BPS] |h 
 +| 250 | 2250000.0| 
 +| 251 | 2500000.0| 
 +| 252 | 3000000.0| 
 +| 253 | 3500000.0※| 
 +| 254 | 4000000.0※| 
 +※MX-64,MX-106のみ
***5:Return Delay Time [#z6a035d0] ***5:Return Delay Time [#z6a035d0]
-インストラクションパケットが送られた後、ステータスパケットが返ってくるまでの時間です。遅延時間は2uSec * Address5の値です。+インストラクションパケットが送られた後、ステータスパケットを返すまでの待ち時間を設定します。~ 
 +単位は2[usec]です。
***6~7:CW Angle Limit [#h4561931] ***6~7:CW Angle Limit [#h4561931]
***8~9:CCW Angle Limit [#u752e406] ***8~9:CCW Angle Limit [#u752e406]
-Dynamixelの動作角を設定します。Goal Positionは以下の範囲にある必要があります。~+Jointモード時のDynamixelの動作角度範囲を設定します。Goal Positionは以下の範囲にある必要があります。~
CW Angle Limit <= Goal Position <= CCW Angle Limit~ CW Angle Limit <= Goal Position <= CCW Angle Limit~
Goal Positionが動作角のリミットを越えると、Angle Limit Errorが起こります。 Goal Positionが動作角のリミットを越えると、Angle Limit Errorが起こります。
-CW Angle Limit及びCCW Angle Limitを両方0に設定すると[[Endless Turnモード>#m81274a2]]になります。+なお、設定値に応じてDynamixelの動作モードが変わります。 
 +-CW Angle Limit < CCW Angle Limit時~ 
 +Jointモードとなり、出荷時の位置決め制御となります。 
 +-CW Angle Limit = CCW Angle Limit = 0~ 
 +[[Wheelモード>#m81274a2]]になります。 
 +-CW Angle Limit = CCW Angle Limit = 4095~ 
 +[[Multi Turnモード>#m8457ffc]]になります。
***10:Drive Mode [#rd7fa695] ***10:Drive Mode [#rd7fa695]
 +※MX-106のみ~
デュアルモードにおけるマスタ/スレーブ、及び回転方向を設定します。 デュアルモードにおけるマスタ/スレーブ、及び回転方向を設定します。
-|Bit|名称|内容+| Bit | 機能 | 設定 |h 
-|Bit7~2| - | - | +| 7~2 | - | - | 
-|Bit1| デュアルモード | 0:マスタ、1:スレーブ | +| 1 |マスター/スレーブ選択 | 0:マスタ, 1:スレーブ | 
-|Bit0| リバースモード | 0:ノーマル、1:リバース |+| 0 |回転方向選 | 0:順方向, 1:逆方向 |
-****デュアルモード [#x1127b7a] +****マスター/スレーブ選択ビット [#x1127b7a] 
-スレーブに設定されたDynamixelは、マスタに設定されたDynamixelとデュアルモード用ケーブルで接続すると、マスタに設定されたDynamixelと同期したポジションに自動的に動作します。 +スレーブに設定されたDynamixelは、マスターに設定されたDynamixelと同期化用ケーブルで接続すると、マスタに設定されたDynamixelと同期したポジションに自動的に動作します。 
-1つの関節に対し、2つのDynamixelを使用して、トルクアップを図る場合などに使用します。+1つの関節に対し2つのDynamixelを使用する事で、トルクアップが期待できます。
-デュアルモード用ケーブルの接続の仕方により、スレーブのDynamixelの回転方向が変わります。 +同期化ケーブルの接続によりスレーブの回転方向が変わり、黒い線を並列に接続した場合は順方向に、クロスして接続した場合は逆方向に回転します。
-黒い線を並列に接続した場合は順方向に、クロスして接続した場合は逆方向に回転します。+
-#ref("DualMode.png");+#ref("dual.png");
-****リバースモード [#n0bc4bd0] +****回転方向選 [#n0bc4bd0] 
-リバースモードをオンにすると、図のようにポジションが左右対称になります。デュアルモードでスレーブに設定されている場合は無効です。 +0の場合は0~360°の範囲を4095~0のGoal Position、1の場合は0~360°の範囲を0~4095 のGoal Positionで位置決め制御を行います。
- +
-左右対称の機構などに対し、片方をリバースすることで回転方向を統一できます。 +
- +
-#ref("ReverseMode.png");+
***11:Highest Limit Temperature [#eae67652] ***11:Highest Limit Temperature [#eae67652]
Line 142: Line 165:
***16:Status Return Level [#mc2f793d] ***16:Status Return Level [#mc2f793d]
-インストラクションパケットを受けた後にDynamixelがステータスパケットを返すかどうかを決定します。 +Dynamixelが返すステータスパケットの措置を設定します。 
-|Adress16|ステータスパケット+| Value | 処理
-|0|PING以外のインストラクションには応答しない+| 0 |PINGインストラクションパケットのみに応答
-|1|READ_DATAだけに応答する+| 1 |PING及びREAD_DATAインストラクションパケットのみに応答する
-|2|すべてのインストラクションに応答する| +| 2 |全てのインストラクションパケットに応答する|
-Broadcast ID(0xFE)を使ったインストラクションの場合は、Address16の値に関わらずステータスパケットを返しません。+
***17:Alarm LED [#q8d97e3d] ***17:Alarm LED [#q8d97e3d]
-対応するBitが1に設定されると、Errorが起こったときにステータスLEDが点滅します。 +対応するBitが1に設定されると、その要因発生時にステータスLEDが点滅します。要因が解消するとLEDは2秒後に消灯します。 
-|Bit|Function+| Bit | 要因 |h 
-|Bit7|0+| 7 |-
-|Bit6|1に設定されていたら、Instruction Errorが起こるとLEDが点滅します+| 6 |Instruction Error
-|Bit5|1に設定されていたら、Overload Errorが起こるとLEDが点滅します+| 5 |Overload Error
-|Bit4|1に設定されていたら、Checksum Errorが起こるとLEDが点滅します+| 4 |Checksum Error
-|Bit3|1に設定されていたら、Range Errorが起こるとLEDが点滅します+| 3 |Range Error
-|Bit2|1に設定されていたら、Overheating Errorが起こるとLEDが点滅します+| 2 |Overheating Error
-|Bit1|1に設定されていたら、Angle Errorが起こるとLEDが点滅します+| 1 |Angle Error
-|Bit0|1に設定されていたら、Input Voltage Errorが起こるとLEDが点滅します| +| 0 |Input Voltage Error|
-すべてのビットのOR論理演算に従って動作します。例えば0x05が設定されていたら、Input Voltage ErrorかOverheating Errorが起こったときにLEDが点滅します。エラー状態から正常状態に戻るとLEDは2秒後に点滅を止めます。+
***18:Alarm Shutdown [#y219e63a] ***18:Alarm Shutdown [#y219e63a]
-対応するビットが1に設定されていて、エラーが発生するとDynamixelのトルクがオフになります。Alarm LEDとは異なり、Errorが発生した後、正常状態に戻ってもトルクオフの状態が維持されます。復帰するためにはTorque Enable(Address24)を1に再設定しなければなりません。 +対応するBitが1に設定されると、その要因発生時にDynamixelのTorque Limit(Address34~35)を0にします。復帰する際はTorque Limit(Address34~35)を再設定する必要があります。 
-|Bit|Function+| Bit | 要因 |h 
-|Bit7|0+| 7 |-
-|Bit6|1に設定されていたら、Instruction Errorが起こるとトルクをオフにします+| 6 |Instruction Error
-|Bit5|1に設定されていたら、Overload Errorが起こるとトルクをオフにします+| 5 |Overload Error
-|Bit4|1に設定されていたら、Checksum Errorが起こるとトルクをオフにします+| 4 |Checksum Error
-|Bit3|1に設定されていたら、Range Errorが起こるとトルクをオフにします+| 3 |Range Error
-|Bit2|1に設定されていたら、Overheating Errorが起こるとトルクをオフにします+| 2 |Overheating Error
-|Bit1|1に設定されていたら、Angle Errorが起こるとトルクをオフにします+| 1 |Angle Error
-|Bit0|1に設定されていたら、Input Voltage Errorが起こるとトルクをオフにします|+| 0 |Input Voltage Error|
-***20~21:Down Calibration [#f95fb07c] +***20~21:Multi Turn Offset [#f95fb07c] 
-***22~23:Up Calibration [#hceb4e38] +[[Multi Turnモード>#m8457ffc]]時のオフセット位置を調整します。~ 
-Dynamixelで使用されるPotentiomerterの誤差を補うのに使用されるデータです。ユーザーはこのデータを変更できません。+この値が真の位置フィードバックに加算され、[[Present Position>#v2f847df]]に現れます。 
 + 
 +***22:Resolution divider [#hceb4e38] 
 +位置の分解能を設定します。~ 
 +真の位置フィードバック値を本値で乗じた値が[[Present Position>#v2f847df]]に現れます。
***24:Torque Enable [#ae42664f] ***24:Torque Enable [#ae42664f]
Line 184: Line 209:
1が設定されるとLEDが点灯し、0が設定されると消灯します。 1が設定されるとLEDが点灯し、0が設定されると消灯します。
-***26:CW Compliance Margin [#z76ef779] +***26:D Gain [#z76ef779] 
-***27:CCW Compliance Margin [#n47ffacd] + 
-***28:CW Compliance Slope [#l6ed04c6] +***27:I Gain [#n47ffacd] 
-***29:CCW Compliance Slope [#re44c84d] + 
-Dynamixelのコンプライアンスは、コンプライアンスのMarginとSlopeを設定することで定義されます。この特徴は出力軸で衝撃を吸収するのに利用します。下のグラフはそれぞれのコンプライアンス値(A、B、C、Dの長さ)がポジションエラーと適用されたトルクによってどう定義されるかを示します。 +***28:P Gain [#l6ed04c6] 
-#ref(Dynamixelコントロールテーブル/DxCntTable1.png) + 
-A : CCW Compliance Slope(Address26)~ +MXシリーズはPID制御を行います。P Gainは比例、I Gainは積分、D Gainは微分ゲインで、いずれも値の範囲は0〜254です。 
-B : CCW Compliance Margin(Address27)~ +#ref(pidcontrol_.png,70%
-C : CW Compliance Margin(Address28)~ +Kp=(P Gain)/8
-D : CW Compliance Slope(Address 29)~ +Ki=(I Gain)*1000/2048
-E : Punch(Address48, 49)~+Kd=(D Gain)*4/1000~
***30~31:Goal Position [#i10660fa] ***30~31:Goal Position [#i10660fa]
-Dynamixelの出力角の位置を要求します。0(0x000)~4095(0xfff)の設定値に対し、出力軸は0°~250.92°まで動作します。+Dynamixelの出力角の位置を設定します。0(0x000)~4095(0xfff)の設定値に対し、出力軸は0°~360°の範囲で動作します。
#ref(DxCntTable2.png) #ref(DxCntTable2.png)
 +
 +[[Multi Turnモード>#m8457ffc]]時はそのモードに従います。
***32~33:Moving Speed [#s3139326] ***32~33:Moving Speed [#s3139326]
-出力軸がGoal Positionへ動く時の角速度です。0に設定すると速度調節が適用されない供給電圧で可能な最大の速度になります。+出力軸がGoal Positionへ動く時の速度で、単位は約0.114rpmです。~ 
 +0に設定すると速度制御を無視し、モータの最大速度で運転します。~ 
 +1023に設定すると約117.07rpmで運転します。~ 
 + 
 +[[Wheelモード>#m8457ffc]]時は10bit目が回転方向を意味します。
-Endless Turnモードでは回転速度になります。詳しくは[[Endless Turn>#m81274a2]]を参照。+| Bit15~11 | Bit10 | Bit9~0 |h 
 +| 0 | Turn Direction | Speed | 
 +Sing = 0 : CCW, 1 : CW
***34~35:Torque Limit [#l9afa11c] ***34~35:Torque Limit [#l9afa11c]
Line 211: Line 244:
***36~37:Present Position [#v2f847df] ***36~37:Present Position [#v2f847df]
-出力軸の現在の角度です。Goal Positionと同様0(0x000)~4095(0xfff)の値に対し、0°~250.92°を表します。+出力軸の現在の角度です。Goal Positionと同様0(0x000)~4095(0xfff)の値に対し、0°~360°を表します。
-Endless Turnモードでは総回転角度を表します。詳しくは[[Endless Turn>#m81274a2]]を参照。+[[Wheelモード>#m8457ffc]]では総回転角度を表します。
***38~39:Present Speed [#qeda324a] ***38~39:Present Speed [#qeda324a]
Line 219: Line 252:
ビット10は回転方向を表します。 ビット10は回転方向を表します。
-| BIT | Bit15~11 | Bit10 | Bit9~0 | +| Bit15~11 | Bit10 | Bit9~0 |h 
-| Value | 0 | Turn Direction | Speed Value |+| 0 | Turn Direction | Speed |
Trun Direction = 0 : CCW, Trun Direction = 1 : CW Trun Direction = 0 : CCW, Trun Direction = 1 : CW
***40~41:Present Load [#j002f18d] ***40~41:Present Load [#j002f18d]
-操作するDynamixelの負荷の大きさです。ビット10は負荷の向きを表します。 +操作するDynamixelの負荷の大きさです。10bit目が負荷の向きを表します。 
-| Bit | Bit15~11 | Bit10 | Bit9 Bit8 Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0 +| Bit15~11 | Bit10 | Bit9~0 |h 
-| Value | 0 | Load Direction | Load Value |+| 0 | Load Direction | Load |
Load Direction = 0 : CCW Load, Load Direction = 1 : CW Load Load Direction = 0 : CCW Load, Load Direction = 1 : CW Load
Line 239: Line 272:
***46:Moving [#vc953eee] ***46:Moving [#vc953eee]
-Dynamixelが供給された電力で動いているときに1が設定されます。+Goal Positionが更新され、Dynamixelが目標位置へ移動している間に1となります。
***47:Lock [#ib2c369f] ***47:Lock [#ib2c369f]
Line 247: Line 280:
操作時にモータに供給される最小の電流です。初期値は0x20に設定されていて、最大値は0x3ffです。 操作時にモータに供給される最小の電流です。初期値は0x20に設定されていて、最大値は0x3ffです。
-***56~57:Sensed Current [#vfbc0b35]+***68~69:Current [#vfbc0b35]
現在の電流値です。 現在の電流値です。
-単位は10mAです。+単位は4.5mAです。
-値が512より大きい場合はCW方向に、512より小さい場合はCCW方向にモータが回転していることを意味し、値と512の差が電流値となります。+値が2048より大きい場合は+方向に、2048より小さい場合は-方向に電流が流れている事を意味します。 
 +#ref("mx_current.png");
-例えば値が612なら、回転方向はCWで、612 - 512 = 100 -> 100 × 10mA = 1000mAとなります。値が312なら、回転方向はCCWで、512 - 312 = 200 -> 200 × 10mA = 2000mAとなります。+***70:Torque Control Mode Enable [#v4678328] 
 +※MX-64及びMX-106のみ~ 
 +0が設定されるとトルク制御モードが停止し位置決め制御ないしエンドレスターンが使用できます。~ 
 +1が設定されるとトルク制御モードが開始され、位置決め制御ないしエンドレスターンが使用できなくなります。~ 
 +トルク制御モードは位置及び速度制御を行わずにGoal Torqueで指示された値でのみ運転します。
-**Endless Turn [#m81274a2] +***71~72:Goal Torque [#b7f047a6] 
-Address 6(0x06)~9(0x09)のCW Angle Limit、CCW Angle Limitを0に設定し、Address 32(0x20),33(0x21)に以下の通りMoving Speedを設定するとEndless Turnモードになります。車輪のような役割で使用する際にこのモードに設定します。~+※MX-64及びMX-106のみ~ 
 +トルク制御モード時のトルクを指定します。単位は4.5mAです。~ 
 +0~1023の範囲でCCW方向、1024~2047の範囲でCW方向にトルクを指示します。なお、Torque Limit以上の値は出力されません。 
 + 
 +***73:Goal Acceleration [#z3b818ed] 
 +目標加速度で、単位は 8.583 deg/sec^2 です。Goal Positionが更新された際のメカニカルなショックを抑止する場合に設定します。~ 
 +0に設定すると加速度制御を行いません。また、加速度制御を行う場合は、Goal Speedを0以外の値に設定する必要があります。 
 + 
 +**Wheelモード [#m81274a2] 
 +Address 6(0x06)~9(0x09)のCW Angle LimitとCCW Angle Limitを0に設定するとWheelモードになります。車輪として使用する際にこのモードに設定します。~
~ ~
Moving Speedの設定 Moving Speedの設定
-| BIT | Bit15~11 | Bit10 | Bit9~0 | +| Bit15~11 | Bit10 | Bit9~0 |h 
-| Value | 0 | Turn Direction | Speed Value |+| 0 | Turn Direction | Speed Value |
Trun Direction = 0 : CCW, Trun Direction = 1 : CW Trun Direction = 0 : CCW, Trun Direction = 1 : CW
Line 266: Line 313:
値はCCW方向に回転すると減少、CW方向に回転すると増加し、積算されます。値が0を下回ると65535になり、65535を超えると0になります。 値はCCW方向に回転すると減少、CW方向に回転すると増加し、積算されます。値が0を下回ると65535になり、65535を超えると0になります。
-**不揮発エリアとRAMエリア [#ub0b5828+**Multi Turnモード [#m8457ffc
-Address0から23は不揮発エリア、Address24から49まではRAMエリアです。RAMエリアのデータは電源を入れたときに常に初期値に設定されます。不揮発エリアのデータは電源を切っても値が保持されます。+Address 6(0x06)~9(0x09)のCW Angle LimitとCCW Angle Limitを4095に設定するとMulti Turnモードになります。通常の位置決め制御時の範囲である-180°~180°を超えて、-2520°~2520°の位置決め制御を行う際にこのモードに設定します。
-不揮発エリアのデータ書き換え回数には数万回という制限があります。必要な時だけ書き換を行うような運用を行ってください。~+ 
 +Goal Positionの設定 
 +| Bit15~0 |h 
 +| Gola Position -28672~28672 (符号付16bit整数) |


トップ   差分 リロード印刷に適した表示   全ページ一覧 単語検索 最新ページの一覧   最新ページのRSS 1.0 最新ページのRSS 2.0 最新ページのRSS Atom