next up previous
Next: この文書について... Up: 4 AIBOを動かすには Previous: 4.5 ダブルバッファ

4.6 サーボPIDゲインの入れ方

AIBOの首や脚の関節を動かすモータは,自動制御機能を持つサーボモータです .サーボには,自動制御のためのPID(比例,積分,微分)ゲインを動かす前 に指定しておく必要がある.AIBOでは,ゲインは各関節に6つずつあり, PGAIN,IGAIN,DGAIN,PSHIFT,ISHIFT,DSHIFTからなる.それぞれのゲ インの標準値が提供されるので,プログラマはゲインを調整する必要なく,標 準値を与えておくだけである. ゲインを指定するには,OPEN-R APIを使う.

OStatus OPENR::EnableJointGain(OPrimitiveID* 
                                 primitiveID)
関節のゲインを有効にする.有効状態のときに次のSetJointGain()を実行する と,サーボにPIDゲインが設定される.

OStatus OPENR::SetJointGain(OPrimitiveID* primitiveID
 word pg, word ig, word dg, word ps, word is, word ds)

[wordの定義]
typedef unsigned short word;
6つの値を指定してゲインを設定する. AIBOの起動時に,急激な動作をしないように,次の手順でサーボPIDゲインを 設定する必要がある.
1.
モータ電源をオンにする.
2.
関節の角度の現在値を読み取る.
3.
読み取った現在値をそのまま指示値として送る.
4.
サーボゲインをセットする.
2.の段階では,OPEN-R APIのGetJointValue()を使う.

OStatus OPENR::GetJointValue(OPrimitiveID primitiveID, 
        OJointValue* value)
関節角度の現在値を引数valueに返す.

generated through LaTeX2HTML. M.Inaba 平成18年5月6日