5: 2010-06-16 (水) 16:16:37 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)>#f9679b00]]|R|-| +-DX-116 
-|1 (0x1)|[[Model Number(H)>#f9679b00]]|R|-| +-DX-117 
-|2 (0x2)|[[Version of Firmware>#c0b99f75]]|R|-+-RX-10 
-|3 (0x3)|[[ID>#afcb4273]]|R/W|1 (0x01)| +-[[RX-24F]] 
-|4 (0x4)|[[Baudrate>#a99cb9a8]]|R/W|34 (0x22)| +-[[RX-28>BTX031 Dynamixel RX-28]] 
-|5 (0x5)|[[Return Delay Time>#h9279b18]]|R/W|250 (0xFA)| +-[[RX-64>BTX029 Dynamixel RX-64]] 
-|6 (0x6)|[[CW Angle Limit (L)>#r26ada5a]]|R/W|0 (0x00)| +-AX-12 
-|7 (0x7)|[[CW Angle Limit (H)>#r26ada5a]]|R/W|0 (0x00)| +-[[AX-12+]] 
-|8 (0x8)|[[CCW Angle Limit (L)>#r26ada5a]]|R/W|255 (0xFF)| +-[[AX-12A]] 
-|9 (0x9)|[[CCW Angle Limit (H)>#r26ada5a]]|R/W|3 (0x03)| +-AX-18F 
-|10 (0xA)|(Reserved)|-|0 (0x00)| +-[[AX-18A]]
-|11 (0xB)|[[Highest Limit Temperature>#pf1cedb0]]|R/W|80 (0x50)| +
-|12 (0xC)|[[Lowest Limit Voltage>#p813d1f0]]|R/W|60 (0x3C)| +
-|13 (0xD)|[[Highest Limit Voltage>#p813d1f0]]|R/W|190 (0xBE)| +
-|14 (0xE)|[[Max Torque (L)>#sa69d1ab]]|R/W|255 (0xFF)| +
-|15 (0xF)|[[Max Torque (H)>#sa69d1ab]]|R/W|3 (0x03)| +
-|16 (0x10)|[[Status Return Level>#fc051727]]|R/W|2 (0x02)| +
-|17 (0x11)|[[Alarm LED>#m1f363e1]]|R/W|36 (0x24)| +
-|18 (0x12)|[[Alarm Shutdwon>#aa4c7882]]|R/W|36 (0x24)| +
-|19 (0x13)|(Reserved)|RW|0 (0x00)| +
-|20 (0x14)|[[Down Calibration (L)>#d4af5057]]|R|?| +
-|21 (0x15)|[[Down Calibration (H)>#d4af5057]]|R|?| +
-|22 (0x16)|[[Up Calibration (L)>#d4af5057]]|R|?| +
-|23 (0x17)|[[Up Calibration (H)>#d4af5057]]|R|?| +
-|24 (0x18)|[[Torque Enable>#m041ac16]]|R/W|0 (0x00)| +
-|25 (0x19)|[[LED>#k6f31590]]|R/W|0 (0x00)| +
-|26 (0x1A)|[[CW Compliance Margin>#ac00ee58]]|R/W|1 (0x00)| +
-|27 (0x1B)|[[CCW Compliance Margin>#ac00ee58]]|R/W|1 (0x00)| +
-|28 (0x1C)|[[CW Compliance Slope>#ac00ee58]]|R/W|32 (0x20)| +
-|29 (0x1D)|[[CCW Compliance Slope>#ac00ee58]]|R/W|32 (0x20)| +
-|30 (0x1E)|[[Goal Position (L)>#ee2d2463]]|R/W|[Addr36]value| +
-|31 (0x1F)|[[Goal Position (H)>#ee2d2463]]|R/W|[Addr37]value| +
-|32 (0x20)|[[Moving Speed (L)>#i69bf70b]]|R/W|0 (0x00)| +
-|33 (0x21)|[[Moving Speed (H)>#i69bf70b]]|R/W|0 (0x00)| +
-|34 (0x22)|[[Torque Limit (L)>#sa69d1ab]]|R/W|[Addr14]value| +
-|35 (0x23)|[[Torque Limit (H)>#sa69d1ab]]|R/W|[Addr15]value| +
-|36 (0x24)|[[Present Position (L)>#g40fd002]]|R|?| +
-|37 (0x25)|[[Present Position (H)>#g40fd002]]|R|?| +
-|38 (0x26)|[[Present Speed (L)>#ra254ee8]]|R|?| +
-|39 (0x27)|[[Present Speed (H)>#ra254ee8]]|R|?| +
-|40 (0x28)|[[Present Load (L)>#k921f4f9]]|R|?| +
-|41 (0x29)|[[Present Load (H)>#k921f4f9]]|R|?| +
-|42 (0x2A)|[[Present Voltage>#o9dde163]]|R|?| +
-|43 (0x2B)|[[Present Temperature>#yb6e508c]]|R|?| +
-|44 (0x2C)|[[Registered Instruction>#x5982be7]]|R/W|0 (0x00)| +
-|45 (0x2D)|(Reserved)|-|0 (0x00)| +
-|46 (0x2E)|[[Moving>#jf0f3fa1]]|R|0 (0x00)| +
-|47 (0x2F)|[[Lock>#bb3a2a7c]]|R/W|0 (0x00)| +
-|48 (0x30)|[[Punch (L)>#f79fd083]]|R/W|32 (0x20)| +
-|49 (0x31)|[[Punch (H)>#f79fd083]]|R/W|0 (0x00)|+
-**各アイテムの詳細 [#bb158fce+**アイテム一覧 [#m54c6bba
-***Model Number [#f9679b00] +Dynamixelの機能及び設定は次のメモリマップ上に1バイトないし2バイト(リトルエンディアン)のアイテムとして割り当てられ、インストラクションパケットを使用して操作します。~ 
-モデルナンバーです。+2バイトに渡るアイテムは1つのインストラクションパケットにおいて同時に書き込まれる必要があります。 
 +|=''Address''|=''Item''|=''Access''|=''D​efault Value''|=''Range''|h 
 +|CENTER:|LEFT:|CENTER:|CENTER:|CENTER:|c​ 
 +|0|BGCOLOR(beige):[[Model Number>#f9679b00]]|R|-|uint16| 
 +|1|~|~|~|~| 
 +|2|BGCOLOR(beige):[[Version of Firmware>#c0b99f75]]|R|?|uint8| 
 +|3|BGCOLOR(seashell):[[ID>#afcb4273]]|R/​W (NVM)|1|uint8&br;0~253| 
 +|4|BGCOLOR(seashell):[[Baudrate>#a99cb9a​8]]|R/W (NVM)|34&br;(AXシリーズは1)|uint8&br;0~254| 
 +|5|BGCOLOR(seashell):[[Return Delay Time>#h9279b18]]|R/W (NVM)|250|uint8&br;0~254| 
 +|6|BGCOLOR(seashell):[[CW Angle Limit>#r26ada5a]]|R/W (NVM)|0|uint16&br;0~1023| 
 +|7|~|~|~|~| 
 +|8|BGCOLOR(seashell):[[CCW Angle Limit>#r26ada5a]]|R/W (NVM)|1023|uint16&br;0~1023| 
 +|9|~|~|~|~| 
 +|10|BGCOLOR(silver):(Reserved)|-|-|uint8​| 
 +|11|BGCOLOR(seashell):[[Highest Limit Temperature>#pf1cedb0]]|R/W (NVM)|80|uint8&br;10~99| 
 +|12|BGCOLOR(seashell):[[Lowest Limit Voltage>#p813d1f0]]|R/W (NVM)|60|uint8&br;50~250| 
 +|13|BGCOLOR(seashell):[[Highest Limit Voltage>#p813d1f0]]|R/W (NVM)|190|uint8&br;50~250| 
 +|14|BGCOLOR(seashell):[[Max Torque>#sa69d1ab]]|R/W (NVM)|1023|uint16&br;0~1023| 
 +|15|~|~|~|~| 
 +|16|BGCOLOR(seashell):[[Status Return Level>#fc051727]]|R/W (NVM)|2|uint8&br;0~2| 
 +|17|BGCOLOR(seashell):[[Alarm LED>#m1f363e1]]|R/W (NVM)|0x24|uint8&br;0~127| 
 +|18|BGCOLOR(seashell):[[Alarm Shutdwon>#aa4c7882]]|R/W (NVM)|0x24|uint8&br;0~127| 
 +|19|BGCOLOR(silver):(reserved)|-|-|uint8​| 
 +|20|BGCOLOR(beige):[[Down Calibration>#d4af5057]]|R|?|uint16| 
 +|21|~|~|~|~| 
 +|22|BGCOLOR(beige):[[Up Calibration>#d4af5057]]|R|?|uint16| 
 +|23|~|~|~|~| 
 +|24|BGCOLOR(lightcyan):[[Torque Enable>#m041ac16]]|R/W|0|uint8&br;0~1| 
 +|25|BGCOLOR(lightcyan):[[LED>#k6f31590]]​|R/W|0|uint8&br;0~1| 
 +|26|BGCOLOR(lightcyan):[[CW Compliance Margin>#ac00ee58]]|R/W|1|uint8&br;0~254| 
 +|27|BGCOLOR(lightcyan):[[CCW Compliance Margin>#ac00ee58]]|R/W|1|uint8&br;0~254| 
 +|28|BGCOLOR(lightcyan):[[CW Compliance Slope>#ac00ee58]]|R/W|32|uint8&br;1~254| 
 +|29|BGCOLOR(lightcyan):[[CCW Compliance Slope>#ac00ee58]]|R/W|32|uint8&br;1~254| 
 +|30|BGCOLOR(lightcyan):[[Goal Position>#ee2d2463]]|R/W|[Addr36]value|u​int16&br;0~1023| 
 +|31|~|~|~|~| 
 +|32|BGCOLOR(lightcyan):[[Moving Speed>#i69bf70b]]|R/W|0|uint16&br;0~2047| 
 +|33|~|~|~|~| 
 +|34|BGCOLOR(lightcyan):[[Torque Limit>#sb02896b]]|R/W|[Addr14]value|uint​16&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は出荷時ないしファクトリーリセットを行った際の値。又、ファームウェアのバージョンによって値が変更される場合がある。
-***Version of Firmware [#c0b99f75] +***各アイテム詳細 [#bb158fce]
-ファームウェアのバージョンです。+
-***ID [#afcb4273+****0~1: Model Number [#f9679b00
-各Dynamixelを特定するための固有のIDナンバーです。同じネットワークの各Dynamixelに異なるIDが必要です。+モデル固有の値を保持します。異なる種類のDynamixelを混在して使用する際の個体識別などに使用できます。
-***Baudrate [#a99cb9a8+****2: Version of Firmware [#c0b99f75
-通信速度を決定します。以下の公式で計算します。~ +内蔵されるCPUに書き込まれたプログラムのバージョンです。ファームウェアの更新を行った際に合わせて自動的に変更されます。
-Baudrate[BPS]=2000000 / (value + 1)~ +
-+
-主なBaudrateのデータ値~ +
-|Set value(Dec.)|Set value(Hex.)|Baudrate[BPS]|Target Baudrate[BPS]|Error※[%]| +
-|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%以下の許容誤差が一般に通信可能な範囲です。+
-***Return Delay Time [#h9279b18+****3: ID [#afcb4273
-インストラクションパケットが送られた後、ステータスパケットが返ってくるまでの時間です。遅延時間は2uSec * Address5の値です。+各Dynamixelを特定するための固有の値で0~253の範囲の数値で設定します。同一ネットワーク内に存在するDynamixelには各々異なるIDが要求されます。
-***CW Angle Limit, CCW Angle Limit [#r26ada5a] +****4: Baudrate [#a99cb9a8] 
-Dynamixelの動作角を設定します。Goal Positionは以下の範囲にある必要があります。~+通信速度を決める分周値で、通信速度は次式で導かれます。~ 
 + 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~ 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モード>#j6a51fa3]]になります。+CW Angle Limit及びCCW Angle Limitを両方0に設定すると[[Endless Turn>#j6a51fa3]]モードになります。
-***Highest Limit Temperature [#pf1cedb0] +****11: Highest Limit Temperature [#pf1cedb0] 
-Dynamixelの動作温度の上限です。Dynamixelの内部温度がこの値より高くなるとOverheating Errorが起こります。値は℃です。+[[Present Temperature>#yb6e508c]]がこの値を超えるとOverheating Errorの該当ビットがONになります。
-***Lowest Limit Voltage, Highest Limit Voltage [#p813d1f0] + Temperature [degC] = Value * 1 [degC]
-Dynamixelの動作電圧の上限下限です。現在の電圧(Address42)が指定した範囲から出ると、Input Voltage Errorが起こります。値は実際の電圧の10倍です。例えばAddress12が80なら、電圧の下限は8Vに設定されます。+
-***Max Torque, Torque Limit [#sa69d1ab+****12: Lowest Limit Voltage [#zb0073ac
-Dynamixelの最大トルク出力です。この値が0に設定されるとDynamixelはトルクがかかっていないFree Runモードになります。EEPROM(Address14, 15)とRAM(Address34, 35)の2つに最大トルクが定義されます。電源を入れるとEEPROMの最大トルク値がRAMの最大トルク値にコピーされます。DynamixelのトルクはRAM(Address34, 35)の値によって制限されます。+****13: Highest Limit Voltage [#p813d1f0] 
 +[[Present Voltage>#o9dde163]]がこの値の範囲を超えるとInput Voltage Errorの該当ビットはONになります。 
 + Voltage [V] = Value * 0.1 [V]
-***Status Return Level [#fc051727+****14~15: Max Torque [#sa69d1ab
-インストラクションパケットを受けた後にDynamixelがステータスパケットを返すかどうかを決定します。 +最大出力トルクの初期値です。起動直後にこの値が[[Torque Limit>#sb02896b]]へコピーされ、以後使用されません。~ 
-|Adress16|ステータスパケット| +単位は最大出力に対する割合です。Max Torqueが512なら最大出力対比約50%、1023なら100%が出力の上限となります。
-|0|どんなインストラクションにも応答しない| +
-|1|READ_DATAだけに応答する| +
-|2|すべてのインストラクションに応答する| +
-Broadcast ID(0xFE)を使ったインストラクションの場合は、Address16の値に関わらずステータスパケットを返しません。+
-***Alarm LED [#m1f363e1+****16: Status Return Level [#fc051727
-対応するBitが1に設定されると、Errorが起こったときにステータスLEDが点滅します。 +ステータスパケットを返信するインストラクションパケットを選択します。 
-|Bit|Function+|CENTER:|LEFT:|c 
-|Bit7|0+|Value|CENTER:Instruction to respond|h 
-|Bit6|1に設定されていたら、Instruction Errorが起こるとLEDが点滅します+|0|Ping
-|Bit5|1に設定されていたら、Overload Errorが起こるとLEDが点滅します+|1|Ping, Read
-|Bit4|1に設定されていたら、Checksum Errorが起こるとLEDが点滅します| +|2|Ping, Read, Write, Reg Write, Reset |
-|Bit3|1に設定されていたら、Range Errorが起こるとLEDが点滅します| +
-|Bit2|1に設定されていたら、Overheating Errorが起こるとLEDが点滅します| +
-|Bit1|1に設定されていたら、Angle Errorが起こるとLEDが点滅します| +
-|Bit0|1に設定されていたら、Input Voltage Errorが起こるとLEDが点滅します| +
-すべてのビットのOR論理演算に従って動作します。例えば0x05が設定されていたら、Input Voltage ErrorかOverheating Errorが起こったときにLEDが点滅します。エラー状態から正常状態に戻るとLEDは2秒後に点滅を止めます。+
-***Alarm Shutdown [#aa4c7882+****17: Alarm LED [#m1f363e1
-対応するビットが1に設定されていて、エラーが発生するとDynamixelのトルクがオフになります。Alarm LEDとは異なり、Errorが発生した後、正常状態に戻ってもトルクオフの状態が維持されます。復帰するためにはTorque Enable(Address24)を1に再設定しなければなりません。 +対応するビットを1に設定すると、エラーが発生した時にステータスLEDが点滅します。~ 
-|Bit|Function+すべてのビットのOR論理演算に従って動作します。例えば0x05が設定されていたら、Input Voltage ErrorかOverheating Errorが起こったときにLEDが点滅します。 
-|Bit7|0+| Bit | Name | Description |h 
-|Bit6|1に設定されていたら、Instruction Errorが起こるとトルクをオフにします+|=7| - | -
-|Bit5|1に設定されていたら、Overload Errorが起こるとトルクをオフにします+|=6| Instruction Error |未定義のインストラクションが指定された、もしくはreg_writeなしでactionが指定された
-|Bit4|1に設定されていたら、Checksum Errorが起こるとトルクをオフにします+|=5| Overload Error |指定された最大トルクで現在の負荷を制御できない
-|Bit3|1に設定されていたら、Range Errorが起こるとトルクをオフにします+|=4| Checksum Error |インストラクションパケットのチェックサムが正しく無い
-|Bit2|1に設定されていたら、Overheating Errorが起こるとトルクをオフにします+|=3| Range Error |パラメータの設定範囲を超えた
-|Bit1|1に設定されていたら、Angle Errorが起こるとトルクをオフにします+|=2| Overheating Error |内部温度が設定温度を超えた
-|Bit0|1に設定されていたら、Input Voltage Errorが起こるとトルクをオフにします|+|=1| Angle Limit Error |Angle Limitの範囲外にGoal Positionが指定された
 +|=0| Input Voltage Error |電源電圧が指定動作電圧の範囲を超えた|
-***Down Calibration, Up Calibration [#d4af5057+****18: Alarm Shutdown [#aa4c7882
-Dynamixelで使用されるPotentiomerterの誤差を補うのに使用されるデータです。ユーザーはこのデータを変更できません。+対応するビットを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 |電源電圧が指定動作電圧の範囲を超えた|
-以下はRAMエリアです。~+****20~21: Down Calibration [#za300029] 
 +****22~23: Up Calibration [#d4af5057] 
 +ポテンショメータの誤差を補うのに使用されるデータです。ユーザは変更できません。
-***Torque Enable [#m041ac16] +****24: Torque Enable [#m041ac16] 
-最初に電源を入れるとDynamixelはTorque Free Run(ゼロトルク)になります。Address24に1を設定するとトルクが有効になります。+電源を入れた時、出力軸はフリーの状態です。Torque Enableを1に設定するとトルクが有効になります。 
 +[[Goal Position>#ee2d2463]]を指定した場合も1になります。
-***LED [#k6f31590] +****25: LED [#k6f31590] 
-1が設定されるとLEDが点灯し、0が設定されると消灯します。+本体に装備されたLEDを点灯ないし消灯します。 
 +|CENTER:|LEFT:|c 
 +|Value|CENTER:Description|h 
 +|0|消灯| 
 +|1|点灯|
-***CW Compliance Margin, CCW Compliance Margin, CW Compliance Slope, CCW Compliance Slope [#ac00ee58] +****26: CW Compliance Margin [#u3d18477] 
-Dynamixelのコンプライアンスは、コンプライアンスのMarginとSlopeを設定することで定義されます。この特徴は出力軸で衝撃を吸収するのに利用します。下のグラフはそれぞれのコンプライアンス値(A、B、C、Dの長さ)がポジションエラーと適用されたトルクによってどう定義されるかを示します。 +****27: CCW Compliance Margin [#y5859c4a] 
-#ref(DxCntTable1.png,90%) +****28: CW Compliance Slope [#ubd4963c] 
-A : CCW Compliance Slope(Address26)+****29: CCW Compliance Slope [#ac00ee58] 
-B : CCW Compliance Margin(Address27)+Dynamixelはコンプライアンスを設定することで出力軸に柔軟性を持たせます。グラフはポジションと出力の相関を表し、A~Dは各コンプライアンス値です。 
-C : CW Compliance Margin(Address28)+#ref(DxCntTable1.png,100%) 
-D : CW Compliance Slope(Address 29)+A : CCW Compliance Slope~ 
-E : Punch(Address48, 49)~+B : CCW Compliance Margin~ 
 +C : CW Compliance Margin~ 
 +D : CW Compliance Slope~ 
 +E : Punch~
-***Goal Position [#ee2d2463] +****30~31: Goal Position [#ee2d2463] 
-Dynamixelの出力角の位置を要求します。0x3ffを設定すると出力軸が300°の位置まで動きます。 +出力軸の位置を設定します。出力軸0~300°に対し、0~1023の値を与えます。 
-#ref(DxCntTable2.png,80%)+[[Endless Turn>#j6a51fa3]]モードでは使用しません。 
 +#ref(DxCntTable2.png)
-***Moving Speed [#i69bf70b] +****32~33: Moving Speed [#i69bf70b] 
-出力軸がGoal Positionへ動く時の角速度です。0に設定すると速度調節が適用されない供給電圧で可能な最大の速度になります。+出力軸が動く際の回転数を指定します。 
 + Velocity [rpm] = Value * 0.111 [rpm] 
 +但し該当モデルの最大回転数以上では動作しません。0に設定すると供給電圧で可能な最大速度になります。
-***Present Position [#g40fd002] +Endless Turnモードで使用する場合は[[Endless Turn>#j6a51fa3]]参照。
-出力軸の現在の角度です。+
-***Present Speed [#ra254ee8+****34~35: Torque Limit [#sb02896b
-出力軸の現在の角速度です。+最大出力の上限値です。 
 +単位は最大出力に対する割合です。Max Torqueが512なら最大出力対比約50%、1023なら100%が出力の上限となります。~ 
 +電源を入れると[[Max Torque>#sa69d1ab]]の値を初期値として使用します。
-***Present Load [#k921f4f9+****36~37: Present Position [#g40fd002
-操作するDynamixelの負荷の大きさです。ビット10は負荷の向きです。 +出力軸の現在位置です。出力軸0~300°に対し、0~1023の値をとります。
-| Bit | Bit15~11 | Bit10 | Bit9 Bit8 Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0 | +
-| Value | 0 | Load Direction | Load Value | +
-Load Direction = 0 : CCW Load, Load Direction = 1 : CW Load+
-***Present Voltage [#o9dde163] +[[Endless Turn>#j6a51fa3]]モードでは300~360°の間は不定値となります。
-現在のDynamixelに供給されている電圧です。値は実際の電圧の10倍です。例えば、10Vは100(0x64)と表します。+
-***Present Temperature [#yb6e508c+****38~39: Present Speed [#ra254ee8
-Dynamixelの内部温度(℃)です。+出力軸の現在の角速度です。10番目のビットは回転方向を表します。~ 
 + Present Speed [rpm] = Value * 0.111 [rpm]
-***Registered Instruction [#x5982be7] +Endless Turnモードの場合は[[Endless Turn>#j6a51fa3]]参照。
-REG_WRITEコマンドでインストラクションが格納されたとき1が設定され、ACTIONコマンドによって格納されたインストラクションが完了したら0が設定されます。+
-***Moving [#jf0f3fa1] +|BGCOLOR(#d0d8e0): Bit | 15~11 | 10 | 9~0 | 
-Dynamixelが供給された電力で動いているときに1が設定されます。+|BGCOLOR(#d0d8e0): Value | 0 | Direction | Speed | 
 +Direction = 0 : CCW, Direction = 1 : CW
-***Lock [#bb3a2a7c+****40~41: Present Load [#k921f4f9
-1が設定されるとAddress24からAddress35以外のエリアが書き換え不能となります。ロックを解除する方法は、電源を切る以外にありません。+出力に基づいて算出された負荷の大きさです。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
-***Punch [#f79fd083+****42: Present Voltage [#o9dde163
-操作時にモータに供給される最小の電流です。初期値は0x20に設定されていて、最大値は0x3ffです。+現在供給されている電圧です。値は電圧(V)の10倍値です。例えば10Vは100となります。
-***Endless Turn [#j6a51fa3+****43: Present Temperature [#yb6e508c
-Address 6(0x06)~9(0x09)のCW Angle Limit、CWW Angle Limitを0に設定し、Address 0x20,0x21に以下の通りMoving Speedを設定するとEndless Turnモードになります。車輪のような役割で使用する際にこのモードに設定します。~ +内部温度()です。例えば30℃は30です。
-+
-Moving Speedの設定 +
-| BIT | Bit15~11 | Bit10 | Bit9,Bit8,Bit7,Bit6,Bit5,Bit4,Bit3,Bit2,​Bit1,Bit0 | +
-| Value | 0 | Turn Direction | Speed Value |+
-Trun Direction = 0 : CCW, Trun Direction = 1 : CW+****44: Registered Instruction [#x5982be7] 
 +REG_WRITEコマンドでインストラクションが格納されたとき1になり、ACTIONコマンドでインストラクションが完了したら0になります。
-**Range [#p2cb2df8+****46: Moving [#jf0f3fa1
-各データには有効な最小値、最大値があります。この有効値外に書き込まれたインストラクションはエラーを返します。下表に各レジスタのデータ範囲と長さをまとめています。16ビットデータレジスタは(L)と(H)の2バイトで表されます。両方のバイトが1つのインストラクションパケットで同時に書き込まれる必要があります。 +供給された電力で出力軸が回転しているときに1、それ以外は0が設定されます。外力によって出力軸が動いても1にはなりません。
-|Write Address|Writing Item|Length(bytes)|Min|Max| +
-|3(0x03)|ID|1|0|253(0xFD)| +
-|4(0x04)|Baudrate|1|0|254(0xFE)| +
-|5(0x05)|Return Delay Time|1|0|254(0xFE)| +
-|6(0x06)|CW Angle Limit|2|0|1023(0x3FF)| +
-|8(0x08)|CCW Angle Limit|2|0|1023(0x3FF)| +
-|11(0x0B)|Highest Limit Temperature|1|10(0x10)|99(0x63)| +
-|12(0x0C)|Lowest Limit Voltage|1|50(0x32)|250(0xFA)| +
-|13(0x0D)|Highest Limit Voltage|1|50(0x32)|250(0xFA)| +
-|14(0x0E)|Max Torque|2|0|1023(0x3FF)| +
-|16(0x10)|Status Return Level|1|0|2| +
-|17(0x11)|Alarm LED|1|0|127(0x7F)| +
-|18(0x12)|Alarm Shutdown|1|0|127(0x7F)| +
-|19(0x13)|(Reserved)|1|0|1| +
-|24(0x18)|Torque Enable|1|0|1| +
-|25(0x19)|LED|1|0|1| +
-|26(0x1A)|CW Compliance Margin|1|0|254(0xFE)| +
-|27(0x1B)|CCW Compliance Margin|1|0|254(0xFE)| +
-|28(0x1C)|CW Compliance Slope|1|1|254(0xFE)| +
-|29(0x1D)|CCW Compliance Slope|1|1|254(0xFE)| +
-|30(0x1E)|Goal Position|2|0|1023(0x3FF)| +
-|32(0x20)|Moving Speed|2|0|1023(0x3FF)| +
-|34(0x22)|Torque Limit|2|0|1023(0x3FF)| +
-|44(0x2C)|Registered Instruction|1|0|1| +
-|47(0x2F)|Lock|1|1|1| +
-|48(0X30)|Punch|2|0|1023(0x3FF)|+
-**RAM EEPROM [#ub0b5828+****47: Lock [#bb3a2a7c
-Address0から23はEEPROMエリア、Address24から49まではRAMエリアです。RAMエリアのデータは電源を入れたときに常に初期値に設定されます。EEPROMのデータは電源を切ってもその時の値が残ります。~ +1を設定するとコントロールテーブルの不揮発エリア(アドレス0~23)が書き換え不能になります。ロックの解除するには電源を入れ直す必要があります。 
-コントロールテーブルの右側のInitial ValueはEEPROMエリアデータの製造時の初期値と、RAMエリアデータの電源を入れた時の初期値です。+ 
-EEPROMエリアデータの書き換え回数には制限があります。必要な時のみ書き換えられるような運用を行って下さい。~+****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


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