二足歩行ロボットコミュニティサイト

【サイトの使い方】  【サイトマップ】  【お問い合わせ】 
ロボット動画  |   ロボット写真  |   BBS  |   ダウンロード  |   イベント予定  |   スタッフ日記  |   リンク  |  
ログイン パスワード    新規登録   パスワード紛失  

 

第21回 CPUボードの詳細設定について

前回まで拡張ボードの使用方法について説明してきましたが、拡張ボードに多様な設定があるのと同様、CPUボードにも様々な設定項目が存 在します。
今回はCPUボードの内部に存在する様々な設定について説明します。

CPUボード内部の設定は、ほぼ全ての項目がCPUボードのROMに記録されており、RobovieMakerはCPUボードとの通信を開始すると現在のCPUボ ードの内部設定を読み込んでPC側に自動的に反映します。
このときロボットプロジェクト名とロボットの名前が異なると、その旨の警告を出すようになっています。

なお、今回の内容を見てCPUボードの設定を変更する前に、必ず現在のロボットプロジェクトをバックアップしてください。
今回説明する内容はCPUボードの根幹に相当するため、CPUボードが故障するほどではありませんが、設定の変更によって特定のサーボモー タの動きが意図しない状態になったりする場合があります。
その場合は当然設定を元に戻せば問題ありませんが、変更箇所と変更前の状態をしっかり把握しておかないと元に戻せなくなります。
ロボットプロジェクトからCPUボードの内容を復旧する方法は、連載第14回で説明していますね

基本設定について

CPUボードの内部設定の変更は、RobovieMakerの「CPUの設定」ダイアログで行ないます。
まずRobovieMakerからCPUボードと通信を開始し、メニューの「プロジェクトの設定」→「CPUの設定」をクリックしてください。
クリックして表示されるダイアログより、以下の画面でCPUボードの内部設定を行ないます。

CPUボードの設定ダイアログ

こちらのダイアログの内容を変更して「適用」をクリックすればCPUボードの内部設定が変更されますが、一部の設定は変更後の設定をCPU ボードのROMに書き込みCPUボードを再起動させてからでないと反映されないので注意してください。

それでは、まず「基本設定」の項目について説明します。

CPUボードの設定ダイアログ

「基本設定」

「CPU基本制御周期」は、CPUボードのプログラムがサーボモータや拡張機器などを制御する周期です。
モーション中の遷移時間の周期は一つがこの時間に相当します。
デフォルトの値は「16667マイクロ秒(usec)」≒60Hzで駆動しています。ということは、遷移時間が60のポーズは約1秒かけてポーズが補間 されるということですね。
この数値を小さくすればそれだけモーションの動作などが速くなりますが、動作が速くなればそれだけロボットの動きが不安定になります 。
そのため、あえて設定を変更する必要のない項目です。

「起動タイマ」は、CPUボードの電源がONになったときの行動を選択する待ち時間を表します。
CPUボードは、電源がONになった時に、一定時間以内にPCと接続されない場合オートデモや操作マップなどが起動します。「起動タイマ」は このときの待ち時間を表します。
起動タイマの単位は前述の「CPU基本制御周期」で、デフォルトの設定の「60」の場合、CPUボードは電源が入ってから約1秒PCとの接続の有 無の判断を待ちます。
なお、起動タイマが0の場合は、PCと接続していない状態でCPUボードを起動しても、オートデモや操作マップが起動しません。
また、起動タイマが-1の場合は、PCから接続してCPUボードを起動しても必ずオートデモや操作マップが立ち上がります。
もし、「ロボットがオートデモ/操作マップを起動しなくなった」「PCからロボットを操作しようとしても反応がない/オートデモが再生さ れる」という場合は、一度こちらの設定を確認してみてください。

「バッテリアラーム電圧」は、ロボットの電源電圧が低くなった時にユーザに警告を出す機能に関する設定です。
ゲームパッドをご利用の方は経験があるかと思いますが、ロボットをゲームパッドで操縦している時に、バッテリ残量が少なくなるとゲー ムパッドが振動してそのことをユーザに知らせます。
このときの、ゲームパッドが振動を開始する基準電圧を「バッテリアラーム電圧」で設定します。
デフォルトの設定はロボットにより異なりますが、ロボットが想定の運動性能を保てなくなった時点の電圧を設定すると良いです。
また、パッドの振動が鬱陶しい場合は0Vに設定すればアラームが発生しなくなります。

「バッテリシャットダウン電圧」は、ロボットの電源電圧が低くなった時にCPUボードが再起動する機能に関する設定です。
デフォルトの設定はロボットにより異なりますが、特に理由の無い限り0Vに設定しておくのが無難です。

「基本設定」の下には、ポーズスライダの遷移の方法を設定する「補間設定」があります。

CPUボードの設定ダイアログ

「補間設定」

補間設定では、0〜63の64個のポーズスライダについて、ポーズ間の数値補間の方法を設定する項目です。
連載第15回でも簡単に触れましたが、 CPUボードの0〜63までの変数はポーズスライダの値に相当します。これらの変数は、モーション再生などの際にポーズを与えられると、指 定の遷移時間をかけて前のポーズの数値から変化します。
この変化方法は実はポーズスライダごとに異なり、例えば0〜29のサーボモータのポーズスライダは、滑らかにポーズが変形するように少し ずつ数値が変化していきます。
また、30の音声のポーズスライダは、サーボモータの様に段階的に数値が変化すると余計な音まで再生するため、ポーズを指定されるとま ずいきなりそのポーズの値に数値が変化し、あとは指定の遷移時間だけ待つ、という動作になります。
このような数値の変化方法の種類を決めるのが補間設定です。

補間設定を行なう場合は、「ポーズスライダの番号」で変更するポーズスライダを選択し、「補間タイプ」で実際の補間方法を選択します 。
「補間タイプ」は、「0:補間しない」「1:三次曲線補間」「2:直線補間」「3:遷移前同期切替」「4:遷移後同期切り替え」の五種類から選 択できます。それぞれのタイプについて、数字の変化をグラフに表して説明します。

「0:補間しない」

「0:補間しない」の場合、ポーズを指定してもポーズスライダの値が0からまったく変化しなくなります。
変数表で役割の特に与えられていない番号のポーズスライダは、全て補間設定が「0:補間しない」になっています。
もし新しくポーズスライダを使用する場合に、ポーズエリアで値を設定しても実際の数値に変化が現れない場合は、補間タイプが「0:補間 しない」になっていないか確認してください。

「1:三次曲線補間」 「2:直線補間」

「1:三次曲線補間」「2:直線補間」は、前のポーズから次のポーズまでの値が徐々に変化していく補間方法です。
通常は、サーボモータやジャイロセンサのゲインなどのポーズスライダに設定します。
三次曲線補間は、いわゆるスプラインカーブと呼ばれるもので、三次方程式をグラフに描いたような曲線で変化します。
三次方程式は高校数学で出てくると思います。習った方には、山が二つできる曲線グラフに見覚えがあるかと思います。
それに対して直線補間は、前のポーズと次のポーズの間を直線で結んでいます。
三次曲線補間は直線補間に比べて動作が滑らか・やわらかくなります。

「3:遷移前同期切替」 「4:遷移後同期切替」

「3:遷移前同期切替」「4:遷移後同期切替」は、徐々に数値が変化することなく、ある時点で一気に目標の数値に変化する補間方法です。
両者の違いは、「先に数値が変化して遷移時間経過を待つ」と「遷移時間経過を待ってから数値が変化する」の点です。
通常は音声やLED拡張ボードのSELパラメータ、デジタル出力など、目標の数値以外を通過してはいけないものに対して設定します。

「音声出力設定」は、CPUボードの音声出力機能に関する設定を行ないます。

「音声出力設定」

「音声を出力する」は、CPUボードから音声を出力するか否かを設定します。このチェックを外すと、CPUボードから音声が出力されなくな ります。
「内蔵アンプを使う」は、CPUボードの内蔵アンプを介して音声を出力するか否かを設定します。
このチェックを外すと、CPUボードのスピーカ端子から音声が出力されなくなり、代わりにIXBUS拡張ポートの音声出力端子からアンプ介在 前の音声信号が出力されるようになります。
IXBUS拡張ポートの音声出力ピンはCN7-2(A-out, 1.75Vp-p)です。
ちなみに、IXBUS拡張ポートには+5V(CN7-8)、+3.3V(CN7-9)の電源出力も備わっています。
(外部アンプの作成/配線は各自の責任で注意して行なってください)

IXBUSポート中の音声出力

の端子

「音声出力変数」は、音声の番号を設定する変数の番号を指定します。デフォルトでは30番のポーズスライダに設定されています。
「内蔵アンプゲイン」は、内蔵アンプのゲインを設定します。ゲインを設定すると音量が変わります。ゲインは0〜3から選択し、数値が大 きいほど音量が大きくなります。

サーボモータの出力設定について

CPUボードの設定ダイアログには、「サーボモータ出力」のタブがあります。
こちらは連載第18回でも簡単に説明し ましたが、サーボモータへ出力される値は、参照する変数など設定変更が可能です。

「サーボモータ出力」

ちなみに、ダイアログ左下の「サーボモータON/OFF」ボタンをクリックすると、サーボモータのON/OFFを切り替えられます。
サーボモータの出力設定を変更する際に活用してください。

サーボモータ出力の設定を行なう場合は、まずダイアログ上部の「サーボモータ選択」から設定を変更するサーボモータを選択します。
「基本設定」では、サーボモータの名前と「電源投入タイマ」の二つの設定を行ないます。
「電源投入タイマ」は、CPUボードがサーボモータをONにした時に、各サーボモータがONになるまでの待ち時間の設定です。
サーボモータがONになる瞬間、サーボモータが大きく動くなどいくらかの電力を消費する場合があります。
この電力は一つのサーボモータでは微量ですが、同時にいくつものサーボモータがONになるとその負担が倍増され、一瞬でバッテリシャッ トダウン電圧に達してサーボモータをONにできなくなります。
そこで、「電源投入タイマ」の設定を個々のサーボモータでずらして、CPUボードに大きな負担がかからないようにします。
他にも、サーボモータをONにした瞬間にモータロックが発生するのを防ぐため、手先やつま先など末端の関節から順番にONになるように設 定すると良いです。
なお、電源投入タイマの時間単位は前述の「起動タイマ」と同じく「CPU基本制御周期」です。
また、電源投入タイマに0を設定すると、そのサーボモータはONになりません。
特定のサーボモータがONにならない場合は、「電源投入タイマ」が0になっていないか確認してください。

「出力値設定」は、サーボモータへ出力される変数の計算について設定します。

「出力値設定」

この項目については連載第18回である程度説明しているので、補足事項のみ記述します。
v0〜v2は0〜255の範囲で設定します。また、係数値kは-32768〜32767の範囲で設定します。
出力値範囲制限は、最後に求まったxの値に対してかけられる制限です。
この設定は-32768〜32767の範囲で設定します。

「出力PWM設定」は、各サーボモータへ実際に出力するPWM信号に関する設定です。

「出力PWM設定」

PWMについては連載第17回で説明しまし たが、ここで「サーボモータもPWMで動いている」とあるように、サーボモータはPWMの信号の幅で出力軸の角度が決まります。
PWMの信号周期の幅は前述の「CPU基本制御周期」と同じですが、「出力PWM設定」では、PWMの信号の幅について設定します。
これはグラフで説明したほうがわかりやすいです。以下の図をご覧ください。

PWM出力のグラフ化

これは何かというと、「出力値設定」の計算式で求まったxを「出力PWM設定」の設定式に当てはめ、xが-32768〜+32768の時に実際にサーボ モータにどの程度の時間幅のPWM信号が送信されるかをグラフに表したものです。
上図は、前述のダイアログの設定値(base=22500、k=15000)を、「出力PWM設定」の計算式に当てはめています。
グラフの横軸は「出力値設定」の計算式で求まるxの値、縦軸は「出力PWM設定」の設定式で求まるPWM信号幅です。
グラフでは、xが0の場合、最小(-32768)の場合、最大(+32767)の場合の三つの点での実数値を記入しています。
また、PWMの信号幅が1/15Hz単位ですが、内容を理解しやすいように表示した実数値をミリ秒単位に直したものを下に掲載しています
ミリ秒に変換された数値から考えると、現在のCPUボードの設定では、サーボモータに送信されるPWMの信号幅(パルス)は0.5〜2.5msecの 範囲のものが送られることになります。

サーボモータには、機種ごとに対応しているPWM信号の範囲があります。
出力PWM設定が現在使用しているサーボモータの対応範囲に比べてせまずぎる場合はサーボモータが少ししか回りませんし、逆に広すぎる場 合はサーボモータが大きく回りすぎたり対応していない値になるなどの不都合が生じます。
そこで、ここでサーボモータの対応PWMに応じた設定を行なう必要があります。
基本的に信号の対応範囲を広げる場合はkの値を大きくしてグラフの傾斜を緩くし、逆に対応範囲を狭める場合はkの値を少なくしてグラフ の傾斜をきつくします。
baseはグラフの対応幅を変えずに信号の上限/下限をオフセットします。
これは、xが0の場合にサーボモータが丁度中心(原点)に合うように調整する為の設定です。
ということは、baseはサーボモータの位置補正の値を表すわけですね。

次回予告

次回は新しく関節を追加する場合について説明します。


前のページ
第20回 デジタル入出力拡張基板を使う
コンテンツのトップ 次のページ
第22回 新しく関節を追加する


検索
Loading
メインメニュー