12: 2010-11-29 (月) 19:51:57 sho | 13: 2010-12-01 (水) 16:15:54 sho | ||
---|---|---|---|
Line 76: | Line 76: | ||
各Dynamixelを特定するための固有のIDナンバーです。同じネットワークの各Dynamixelに異なるIDが必要です。 | 各Dynamixelを特定するための固有のIDナンバーです。同じネットワークの各Dynamixelに異なるIDが必要です。 | ||
- | 0~253まで設定可能。254はブロードキャストIDで全てのDynamixelへパケットを送信する際に使用します。 | + | 0~253まで設定可能で、254はブロードキャストIDと呼ばれ全てのDynamixelへパケットを送信する際に使用します。 |
***4: Baudrate [#a99cb9a8] | ***4: Baudrate [#a99cb9a8] | ||
- | 通信速度を決定します。以下の公式で計算します。~ | + | 以下の式で計算される通信速度です。~ |
Baudrate[bps]=2000000 / (Value + 1)~ | Baudrate[bps]=2000000 / (Value + 1)~ | ||
Line 97: | Line 97: | ||
***5: Return Delay Time [#h9279b18] | ***5: Return Delay Time [#h9279b18] | ||
- | インストラクションパケットを受信した後、ステータスパケットを返信するまでの時間です。遅延時間は 2u[sec] * Address5 の値です。 | + | インストラクションパケットを受信後、ステータスパケットを返信するまでの時間です。遅延時間は2u[sec] * Return Delay Timeで計算されます。 |
***6~7: CW Angle Limit [#r2daa6da] | ***6~7: CW Angle Limit [#r2daa6da] | ||
***8~9: CCW Angle Limit [#r26ada5a] | ***8~9: CCW Angle Limit [#r26ada5a] | ||
- | Dynamixelの動作角を設定します。Goal Positionは以下の範囲にある必要があります。~ | + | 動作角の範囲です。[[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が起こります。 | ||
Line 108: | Line 108: | ||
***11: Highest Limit Temperature [#pf1cedb0] | ***11: Highest Limit Temperature [#pf1cedb0] | ||
- | Dynamixelの動作温度の上限です。Dynamixelの内部温度がこの値より高くなるとOverheating Errorが起こります。単位は℃です。 | + | 動作温度の上限です。内部温度がこの値より高くなるとOverheating Errorが起こります。単位は℃です。 |
- | 80より高く設定しないでください。故障の原因となります。 | + | 故障の原因となりますので80より高く設定しないでください。 |
***12: Lowest Limit Voltage [#zb0073ac] | ***12: Lowest Limit Voltage [#zb0073ac] | ||
***13: Highest Limit Voltage [#p813d1f0] | ***13: Highest Limit Voltage [#p813d1f0] | ||
- | Dynamixelの動作電圧の上限下限です。現在の電圧(Address42)が指定した範囲から出ると、Input Voltage Errorが起こります。値は実際の電圧の10倍です。例えばAddress12が80なら、電圧の下限は8Vに設定されます。 | + | 動作電圧の上限下限です。[[Present Voltage>#o9dde163]]が指定した範囲から外れると、Input Voltage Errorが起こります。~ |
+ | 値は電圧値の10倍です。例えばLowest Limit Voltageを80に設定すると電圧の下限は8Vとなります。 | ||
***14~15: Max Torque [#sa69d1ab] | ***14~15: Max Torque [#sa69d1ab] | ||
- | Dynamixelの最大トルク出力のデフォルト値です。Dynamixelの起動直後にこの値がTorque Limitへコピーされ、以後は使用されません。 | + | 最大出力トルクの初期値です。起動直後にこの値が[[Torque Limit>#sb02896b]]へコピーされ、以後は使用されません。~ |
+ | 単位は最大出力に対する割合です。Max Torqueが512なら最大出力対比約50%、1023なら100%が出力の上限となります。 | ||
***16: Status Return Level [#fc051727] | ***16: Status Return Level [#fc051727] | ||
- | インストラクションパケットを受けた後にDynamixelがステータスパケットを返すかどうかを決定します。 | + | インストラクションパケットを受けた後にDynamixelがステータスパケットを返すか否かを決定します。 |
|=''Value''|=''Function''| | |=''Value''|=''Function''| | ||
|=0|PING以外のインストラクションには応答しない| | |=0|PING以外のインストラクションには応答しない| | ||
|=1|READ_DATAだけに応答する| | |=1|READ_DATAだけに応答する| | ||
|=2|すべてのインストラクションに応答する| | |=2|すべてのインストラクションに応答する| | ||
- | Broadcast ID(0xFE)を使ったインストラクションの場合は、Valueの値に関わらずステータスパケットを返しません。 | + | Broadcast ID(0xFE)を使ったインストラクションの場合は、Status Return Levelに関わらずステータスパケットを返しません。 |
- | + | ||
- | 0に設定すると、 | + | |
***17: Alarm LED [#m1f363e1] | ***17: Alarm LED [#m1f363e1] | ||
- | 対応するBitが1に設定されると、Errorが起こったときにステータスLEDが点滅します。~ | + | 対応するビットを1に設定すると、エラーが起こったときにステータスLEDが点滅します。~ |
- | すべてのビットのOR論理演算に従って動作します。例えば0x05が設定されていたら、Input Voltage ErrorかOverheating Errorが起こったときにLEDが点滅します。エラー状態から正常状態に戻るとLEDは2秒後に点滅を止めます。 | + | すべてのビットのOR論理演算に従って動作します。例えば0x05が設定されていたら、Input Voltage ErrorかOverheating Errorが起こったときにLEDが点滅します。 |
- | |=''Bit''|=''Function''| | + | |=''Bit''|=''Function''|=''内容''| |
- | |=7|-| | + | |=7| - | - | |
- | |=6|Instruction Error| | + | |=6| Instruction Error |未定義のインストラクションが指定された、もしくはreg_writeなしでactionが指定された| |
- | |=5|Overload Error| | + | |=5| Overload Error |指定された最大トルクで現在の負荷を制御できない| |
- | |=4|Checksum Error| | + | |=4| Checksum Error |インストラクションパケットのチェックサムが正しく無い| |
- | |=3|Range Error| | + | |=3| Range Error |パラメータの設定範囲を超えた| |
- | |=2|Overheating Error| | + | |=2| Overheating Error |内部温度が設定温度を超えた| |
- | |=1|Angle Error| | + | |=1| Angle Limit Error |Angle Limitの範囲外にGoal Positionが指定された| |
- | |=0|Input Voltage Error| | + | |=0| Input Voltage Error |電源電圧が指定動作電圧の範囲を超えた| |
***18: Alarm Shutdown [#aa4c7882] | ***18: Alarm Shutdown [#aa4c7882] | ||
- | 対応するビットが1に設定されていて、エラーが発生するとDynamixelのトルクがオフになります。~ | + | 対応するビットを1に設定すると、エラーが発生した際にTorque Limitを0に設定し、モータの出力を遮断します。~ |
- | Alarm LEDとは異なり、Errorが発生した後、正常状態に戻ってもトルクオフの状態が維持されます。復帰するためにはTorque Enable(Address24)を1に再設定しなければなりません。 | + | エラーが発生した後、正常状態に戻ってもTorque Limitは0が維持されます。[[Torque Limit>#m041ac16]]に値を設定することで復帰します。 |
- | |=''Bit''|=''Function''| | + | |=''Bit''|=''Function''|=''内容''| |
- | |=7|-| | + | |=7| - | - | |
- | |=6|Instruction Error| | + | |=6| Instruction Error |未定義のインストラクションが指定された、もしくはreg_writeなしでactionが指定された| |
- | |=5|Overload Error| | + | |=5| Overload Error |指定された最大トルクで現在の負荷を制御できない| |
- | |=4|Checksum Error| | + | |=4| Checksum Error |インストラクションパケットのチェックサムが正しく無い| |
- | |=3|Range Error| | + | |=3| Range Error |パラメータの設定範囲を超えた| |
- | |=2|Overheating Error| | + | |=2| Overheating Error |内部温度が設定温度を超えた| |
- | |=1|Angle Error| | + | |=1| Angle Limit Error |Angle Limitの範囲外にGoal Positionが指定された| |
- | |=0|Input Voltage Error| | + | |=0| Input Voltage Error |電源電圧が指定動作電圧の範囲を超えた| |
***20~21: Down Calibration [#za300029] | ***20~21: Down Calibration [#za300029] | ||
***22~23: Up Calibration [#d4af5057] | ***22~23: Up Calibration [#d4af5057] | ||
- | Dynamixelで使用されるPotentiomerterの誤差を補うのに使用されるデータです。ユーザーはこのデータを変更できません。 | + | ポテンショメータの誤差を補うのに使用されるデータです。ユーザは変更できません。 |
***24: Torque Enable [#m041ac16] | ***24: Torque Enable [#m041ac16] | ||
- | 最初に電源を入れるとDynamixelはTorque Free Run(ゼロトルク)になります。Address24に1を設定するとトルクが有効になります。 | + | 電源を入れた時、出力軸はフリーの状態です。Torque Enableを1に設定するとトルクが有効になります。 |
+ | [[Goal Position>#ee2d2463]]を指定した場合も1になります。 | ||
***25: LED [#k6f31590] | ***25: LED [#k6f31590] | ||
- | 1が設定されるとLEDが点灯し、0が設定されると消灯します。 | + | 1を設定するとLEDが点灯し、0を設定すると消灯します。 |
***26: CW Compliance Margin [#u3d18477] | ***26: CW Compliance Margin [#u3d18477] | ||
Line 169: | Line 170: | ||
***28: CW Compliance Slope [#ubd4963c] | ***28: CW Compliance Slope [#ubd4963c] | ||
***29: CCW Compliance Slope [#ac00ee58] | ***29: CCW Compliance Slope [#ac00ee58] | ||
- | Dynamixelのコンプライアンスは、コンプライアンスのMarginとSlopeを設定することで定義されます。この特徴は出力軸で衝撃を吸収するのに利用します。下のグラフはそれぞれのコンプライアンス値(A、B、C、Dの長さ)がポジションエラーと適用されたトルクによってどう定義されるかを示します。 | + | Dynamixelはコンプライアンスを設定することで出力軸に柔軟性を持たせます。グラフはポジションと出力の相関を表し、A~Dは各コンプライアンス値です。 |
#ref(DxCntTable1.png,100%) | #ref(DxCntTable1.png,100%) | ||
- | A : CCW Compliance Slope(Address29)~ | + | A : CCW Compliance Slope~ |
- | B : CCW Compliance Margin(Address27)~ | + | B : CCW Compliance Margin~ |
- | C : CW Compliance Margin(Address26)~ | + | C : CW Compliance Margin~ |
- | D : CW Compliance Slope(Address 28)~ | + | D : CW Compliance Slope~ |
- | E : Punch(Address48, 49)~ | + | E : Punch~ |
***30~31: Goal Position [#ee2d2463] | ***30~31: Goal Position [#ee2d2463] | ||
- | Dynamixelの出力角の位置を要求します。0x3ffを設定すると出力軸が300°の位置まで動きます。 | + | 出力軸の位置を設定します。出力軸0~300°に対し、0~1023の値を与えます。 |
+ | [[Endless Turn>#j6a51fa3]]モードでは使用しません。 | ||
#ref(DxCntTable2.png) | #ref(DxCntTable2.png) | ||
***32~33: Moving Speed [#i69bf70b] | ***32~33: Moving Speed [#i69bf70b] | ||
- | 出力軸がGoal Positionへ動く時の角速度です。0に設定すると速度調節が適用されない供給電圧で可能な最大の速度になります。 | + | 出力軸がGoal Positionへ動く時の角速度です。単位は約0.111rpmです。 |
+ | 但し該当モデルの最大回転数以上にはなりません。 | ||
+ | 0に設定すると供給電圧で可能な最大速度になります。 | ||
+ | |||
+ | Endless Turnモードで使用する場合は[[Endless Turn>#j6a51fa3]]参照。 | ||
***34~35: Torque Limit [#sb02896b] | ***34~35: Torque Limit [#sb02896b] | ||
- | Dynamixelの最大トルク出力のデフォルト値です。この値が0に設定されるとDynamixelはトルクがかかっていないFree Runモードになります。 | + | 最大出力の上限値です。 |
+ | 単位は最大出力に対する割合です。Max Torqueが512なら最大出力対比約50%、1023なら100%が出力の上限となります。~ | ||
+ | 電源を入れると[[Max Torque>#sa69d1ab]]の値を初期値として使用します。 | ||
***36~37: Present Position [#g40fd002] | ***36~37: Present Position [#g40fd002] | ||
- | 出力軸の現在の角度です。 | + | 出力軸の現在位置です。出力軸0~300°に対し、0~1023の値をとります。 |
+ | |||
+ | [[Endless Turn>#j6a51fa3]]モードでは300~360°の間は不定値となります。 | ||
***38~39: Present Speed [#ra254ee8] | ***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] | ***40~41: Present Load [#k921f4f9] | ||
- | 操作するDynamixelの負荷の大きさです。ビット10は負荷の向きです。 | + | 出力値に基づいて算出された負荷の大きさです。10番目のビットは負荷の方向です。~ |
+ | 単位は最大出力に対する割合です。512ならCCW方向に最大出力対比約50%、1023なら100%の負荷となります。 | ||
| Bit | 15~11 | 10 | 9~0 | | | Bit | 15~11 | 10 | 9~0 | | ||
- | | Value | 0 | Load Direction | Load Value | | + | | Value | 0 | Direction | Value | |
- | Load Direction = 0 : CCW Load, Load Direction = 1 : CW Load | + | Direction = 0 : CCW, Direction = 1 : CW |
***42: Present Voltage [#o9dde163] | ***42: Present Voltage [#o9dde163] | ||
- | 現在のDynamixelに供給されている電圧です。値は実際の電圧の10倍です。例えば、10Vは100(0x64)と表します。 | + | 現在供給されている電圧です。値は電圧(V)の10倍値です。例えば10Vは100となります。 |
***43: Present Temperature [#yb6e508c] | ***43: Present Temperature [#yb6e508c] | ||
- | Dynamixelの内部温度(℃)です。 | + | 内部温度(℃)です。例えば30℃は30です。 |
***44: Registered Instruction [#x5982be7] | ***44: Registered Instruction [#x5982be7] | ||
- | REG_WRITEコマンドでインストラクションが格納されたとき1が設定され、ACTIONコマンドによって格納されたインストラクションが完了したら0が設定されます。 | + | REG_WRITEコマンドでインストラクションが格納されたとき1になり、ACTIONコマンドでインストラクションが完了したら0になります。 |
***46: Moving [#jf0f3fa1] | ***46: Moving [#jf0f3fa1] | ||
- | Dynamixelが供給された電力で動いているときに1が設定されます。 | + | 供給された電力で出力軸が回転しているときに1が設定されます。外力によって出力軸が動いても1にはなりません。 |
***47: Lock [#bb3a2a7c] | ***47: Lock [#bb3a2a7c] | ||
- | 1が設定されるとAddress24からAddress35以外のエリアが書き換え不能となります。ロックを解除する方法は、電源を切る以外にありません。 | + | 1を設定するとコントロールテーブルの不揮発エリア(アドレス0~23)が書き換え不能になります。ロックの解除するには電源を入れ直す必要があります。 |
***49~50: Punch [#f79fd083] | ***49~50: Punch [#f79fd083] | ||
- | 操作時にモータに供給される最小の電流です。初期値は0x20に設定されていて、最大値は0x3ffです。 | + | ''現バージョンのファームウェアでは使用していません。'' |
+ | |||
+ | 操作時にモータに供給される最小の電流です。 | ||
**Endless Turn [#j6a51fa3] | **Endless Turn [#j6a51fa3] | ||
- | Address 6(0x06)~9(0x09)のCW Angle Limit、CWW Angle Limitを0に設定し、Address 0x20,0x21に以下の通りMoving Speedを設定するとEndless Turnモードになります。車輪のような役割で使用する際にこのモードに設定します。~ | + | [[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の設定 | Moving Speedの設定 | ||
| BIT | 15~11 | 10 | 9~0 | | | BIT | 15~11 | 10 | 9~0 | | ||
| Value | 0 | Turn Direction | Speed Value | | | Value | 0 | Turn Direction | Speed Value | | ||
- | |||
Trun Direction = 0 : CCW, Trun Direction = 1 : CW | Trun Direction = 0 : CCW, Trun Direction = 1 : CW | ||
- | **RAM及びEEPROM [#ub0b5828] | + | **不揮発エリアとRAMエリア [#ub0b5828] |
- | Address0から23はEEPROMエリア、Address24から49まではRAMエリアです。RAMエリアのデータは電源を入れたときに常に初期値に設定されます。EEPROMのデータは電源を切ってもその時の値が残ります。~ | + | Address0から23は不揮発エリア、Address24から49まではRAMエリアです。RAMエリアのデータは電源を入れたときに常に初期値に設定されます。不揮発エリアのデータは電源を切っても値が保持されます。~ |
- | コントロールテーブルの右側のInitial ValueはEEPROMエリアデータの製造時の初期値と、RAMエリアデータの電源を入れた時の初期値です。~ | + | 不揮発エリアのデータ書き換え回数には数万回という制限があります。必要な時だけ書き換を行うような運用を行ってください。~ |
- | EEPROMエリアデータの書き換え回数には制限があります。必要な時のみ書き換えられるような運用を行って下さい。~ | + |