6 📐 キャリブレーション
"A miss is as good as a mile." 🎯
Bittleが正常に動作するためには、キャリブレーションが不可欠です。
これまでのセクションでは、Bittleのボディパーツの準備をしましたが、サーボにネジ止めを行っていませんでした。これは、ボディパーツをサーボに正しい角度で取り付けるためのキャリブレーションが必要だからです。
サーボを取り付ける前にキャリブレーションを行わないと、ありとあらゆる方向に回転したり、スタックして動かなくなったり、サーボやボディにダメージを与えるなど、ロボットの手脚が正常に動作しなくなる可能性があります。
キャリブレーションは以下のステップで行われます。
定数を基板に書き込む
回路の電源を入れ、サーボを自由に回転させて、角度をゼロの状態にする/キャリブレーションを行う
サーボにボディパーツを取り付ける
ボディパーツの配置を微調整し、キャリブレーションの結果を基板に保存する
必ずバッテリーの電源を入れてからご使用ください。
The logic behind calibration can be found on the OpenCat forum. The principles are the same for Nybble and Bittle.
キャリブレーションの原理はOpenCatのフォーラムに書いてあります。ここではNybbleを例に説明していますが、原理はNybble、Bittle共一緒です。
6.1 NyBoardに定数を入力する
6.1.1. NyBoardに保存する3つの定数について:
ジョイントマッピングや回転方向、センサーピンといった組み立てに関する定数の大部分はOpenCat.hに保存されています。
MPU6050のオフセットやジョイント補正などのパラメーターはリアルタイムで基盤のEEPROMに保存されています。
姿勢、歩き方などのスキル関係のデータはInstinctBittle.hに保存されています。オリジナルのスキルを追加することも可能です。
6.1.2. WriteInstinct.inoをアップロードして実行する
WriteInstinct.inoの主な役割は定数を基盤またはI2C EEPROMに記録し、キャリブレーションデータを保存することです。WriteInstinct.inoは後でメインスケッチのOpenCat.inoに上書きされます。
OpenCatフォルダ内にあるOpenCat.inoとWriteInstinctフォルダ内のWriteInstinct.inoを開いてください。使用するボードがArduino UNOであることと適切なUSBポートが選択されていることを確認してください。OpenCat.hの”#define NyBoard_V*_*”における*の部分に対応するNyBoardのバージョンを入力してください。バージョンはボードのNyBoard上のロゴの横に記載されています。
シリアルモニタを開き、"No line ending"と"115200 baud"となっていることを確認してください。
NyBoard上のダイアルスイッチがPiではなく、Arduinoになっていることを確認してください。
WriteInstinc.inoをAruduino IDE上でマイコンボードに書き込み(アップロード)後、シリアルモニタを開いてください。開くと以下のような文言が出てきます。
Reset all joint calibration? (Y/n)
初めてPetoi Bittleで遊ぶ方は”Y”と入力してください。
Do you need to update Instincts? (Y/n)
”Y”と入力してください。
Calibrate MPU? (Y/n)
”Y”と入力してください。
プログラムが停止した場合はシリアルモニタを閉じ、NyBoard上のリセットボタンを押して再度試してください。
6.1.3. OpenCat.inoをアップロードする。
上記動作を終了後、OpenCat.inoをアップロードしてください。
6.2 キャリブレーション
6.2.1 リモートコントローラーでキャリブレーションを行う場合
バッテリーとサーボが正しく接続されていることを確認してください。
サーボのギア部分には何も接続しない状態にしてください。
6.2.2頭と足のキャリブレーション
リモコン上の"EQ"ボタンを押してください。
モーターが動いたのを確認後、作成した腕部分の黄色いサイドを肩のサーボに接続してください。体に対して垂直になるように装着してください。
装着中にサーボを回転させないように注意してください。
前腕部分も同様に先に装着した腕に対して垂直になるように接続してください。
同封されているL字のチューナーを用いて適切に接続できているか確認してください。
次に、ヘッドサーボの出力軸をネックのサーボアームに差し込みます。頭はなるべくまっすぐ前を向くように接続してください。
6.2.3 テストと検証
Bittleの体を空中に浮かせます。 IR remote controllerの 「1」ボタンを押して、Bittleに数回の "ストレッチ "をさせ、手足の動きに問題がないかを確認します。 直感的に動いているようであれば、平らな床の上に置いてください。 IR remote controllerのアクションボタンを何度か押して、Bittleを動かし、動きに違和感がないかを確認します。 その後、「EQ」ボタンを押すとキャリブレーションモードに戻ります。 上肢と下肢が直角になっているか、下肢が地面と平行になっているかを観察します。 足と頭の位置が合っていれば、マイナスネジを使って手足と頭をサーボに固定します。 そうでない場合は、手足を外して何度かキャリブレーションを繰り返します。 どうしてもうまくいかない場合は、6.3のより正確なキャリブレーションを行う必要があります。
6.3 より正確なキャリブレーションを行う
6.3.1 初期位置と座標について
初期位置はサーボ可動域の中央の場所として定義されています。
キャリブレーションモードに入るとすべてのサーボが初期位置に戻ります。脚部に関しては反時計回りの方向が正の向きとなります。
ペトイビトルで使用してるサーボには25個の歯があるので、1つの歯はおよそ14.4度となります。つまり、正確に90度にはなりません。
6.3.2 Understand the serial outputs via software-based calibration
Arduino IDEを用いたキャリブレーションはWriteInstinct.inoまたはOpenCat.inoのファイルで実行可能ですが、WriteInstinct.inoのファイルで実行することを推奨しています。
WriteInstinct.inoまたはOpenCat.inoのファイルをアップロードしてください。そしてシリアルモニターを開き"c"を入力してください。
入力後サーボが初期位置まで戻ります。サーボが初期位置に戻ると本体からビープ音が鳴り、以下のような表が表示されます。
1列目はジョイントインデックス、2列目はキャリブレーションのオフセットを表しています。
6.3.3 Arduino IDEを用いたキャリブレーション
NyBoardにおけるキャリブレーションのフォーマットは"cIndex Offset"です。また、それぞれの部位に対応するインデックスは以下の図の通りです。
例
"c8 6"と入力した場合8と割り振られたサーボが6度反時計回りに回転します。
オフセットの値が9以上になる場合はサーボを回転させないように一回取り外してください。そして、体に対して垂直になるように接続しなおして下さい。これによりオフセットの値がちいさくなります。
6.3.4 L字型接続チューナー
キャリブレーションが正確に行われたか確認するために付属の接続チューナーを下図のようにあわせてください。
キャリブレーション終了後、"s"と入力して保存します。保存しないで終了した場合、キャリブレーションのオフセットは適応されないので注意してください。
6.3.5 テストと検証
After calibration, type ‘d’ or ‘kbalance’ to validate the calibration. It will result in Bittle symmetrically moving its limbs between rest and stand state.
Please refer to the previous testing & validation section for the process.
You may need to do a few rounds of calibrations to achieve optimal states.
キャリブレーション後、「d」または「kbalance」と入力してキャリブレーションを検証します。これによりBittleは静止状態と起立状態の間で左右対称に手脚を動かすことになります。
このプロセスについては、前のテストと検証のセクションを参照してください。
最適な状態にするためには、何度かキャリブレーションを繰り返す必要があるかもしれません。
6.3.6 重心
Try to understand how Bittle keeps balance even during walking. If you are adding new components to Bittle, try your best to distribute its weight symmetrically about the spine. You may also need to slide the battery holder back and forth to find the best spot for balancing. Because the battery is heavier in the front, you can also insert it in a reversed direction to shift the center of mass more towards the back.
Bittleが歩行中どのようにバランスを保っているかを理解してください。新しい部品を追加する場合は、背骨を中心に重さが対称になるように工夫してください。また、電池ホルダーを前後にスライドさせて、バランスをとるのに最適な場所を探す必要があるかもしれません。電池は前の方が重いので、逆に差し込んで重心を後ろに移動させることもできます。
You may need to recalibrate if there's a change to the center of mass.
重心に変化があった場合は、もう一度キャリブレーションが必要になります。
6.4 仕上げ
6.4.1 頭部
To lock in the head, use an M2x4 flat head screw to lock the servo shaft and the servo arm from the bottom side of the chassis.
頭部を固定するには、M2x4の平頭ネジを使って、サーボ軸とサーボアームをシャシーの下側から固定します。
6.4.2 手脚
キャリブレーションが終了したらサーボの回転部分をネジで固定してください。
6.4.3 ワイヤーシールド
ワイヤーシールドを装着する際は向きがあるので注意してください。挿入した際に脚部と平行になるのが正しい向きです。
下の図は間違った装着例です。
6.4.4 ボディーカバーと尻尾
The 6-pin female socket is used for connecting the programmer and communication dongles. Carefully bend it forward in a smooth arc if you are not going to attach a Raspberry Pi.
6ピンの雌ソケットは、プログラマーや通信ドングルの接続に使用します。Raspberry Piを取り付けない場合は、慎重に滑らかな弧を描くように前に曲げてください。
Last updated