Grow Radius for SineWave: By Name


ASTER::ACTION::MotionControl::Grow Radius for SineWave; ByName

コントローラに登録済みのモーショングループを対象に、Sinewave Motion の GrowRad パラメータを設定。

SineWave 動作には下記三つのオプション設定があります。

  1. スタートアップ角度

  2. スリープ動作

  3. 振幅の変更命令

Grow Radius for Sinewave は振幅の最大値から最小値への往復機能などを有効化するオプション設定です。

機能名称は “Grow Radius” ですが、SineWave の場合、厳密には Radius ( 半径 ) ではなく「振幅 ( Amplitude ) 」です。名称では Radius と Amplitude を区別せず、命令名は GrowRad で統一名称を使っています。


動作サンプル

最初に通常の SineWave 動作パラメータを入力します。

"+1.2,   80,   +2.2,    0,   0, false,  -40,  1000"

次に Sinewave 動作を拡張する GrowRad パラメータを送信。

"true,  150,  0,  -.5,  60,  -1"

Minion Minion


Parameter.1

モーショングループ名の指定

登録されているモーショングループが二つ以上ある場合、グループ名を指定すると該当グループにパラメータを設定できます。

Parameter Exsample Description
"ExMotion1" グループ名を指定したパラメータの設定
"" 空文字列を送信、登録されている全モーショングループが対象

グループ名を指定せず空文字を送信すると、現在登録されている全モーショングループが対象となります。


Parameter.2

GrowRad パラメータの送信

Grow Radius パラメータをシリアライズして送信します。

  • 構文チェックがあり、不正な構文は実行時エラーとなります。

  • 数値の型指定は厳密に行われます。

"true,  150,  0,  -.5,  60,  -1"
value Type Description
true boolean Grow Radius Flag; true or false
150 unsigned int Max Amplitude
0 int Minimum Amplitude
-.5 float Omega ( ω ); Increase or Decrease with value to the current Amplitude.
60 unsigned int Frame time interval; When arrive at the Max or Minumum Amplitude.
-1 int Repetition value; -1 iz the infinite loop.

以下に個別パラメータの詳細を記述。


Show Grow Radius Flag
Grow Radius Flag; Boolean

Grow Radius 機能を有効化するための真偽値。truefalse で記述。

  • true の場合、機能を有効化する。

  • false の場合、機能を停止する。

repetition 値を 0 にした場合、自動的に GrowRad flag が false と設定されます。


Show Max amplitude
Max Amplitude; unsigned int

振幅の最大値を設定。

  • 値は符号無し整数、符号を使った記述は全て構文エラーとします。マイナス値だけでなくプラス値にも符号は使えません。
status value
Error -100
Error +100
No error 100

マイナス値を受け付けないパラメータにマイナス符号の利用を禁止するため unsigned int を指定するケースは多いのですが、プラス符号の利用も併せて禁じている理由として、このパラメータは絶対値なので符号の記述は無意味であることを示しています。


Show Minimum amplitude
Minimum Amplitude; int

最小の振幅を符号付き整数で指定。最大値 ( Max Amplitude ) よりも小さい値が必要で、マイナス値を利用できます。


Show Omega
Omega; float

現在の振幅に対して加算減算する数値、符号付の浮動小数点数 ( float ) で値を記述。

振幅の初期設定値が時間経過と共に指定された最大振幅もしく最小振幅値と等しくなるまで加算減算されます。Omega の絶対値が大きくなるほど短時間で目標値に到達します。

値の書き方について

float は先頭のゼロを省略して小数点以下の数値を表現する暗黙の小数表現、.1 という書き方をサポートしています。

status value
No error +0.1
No error -.1

符号の利用について、プラス値は任意ですが、パラメータの可読性を高めるため符号の利用を推奨します。

Omega 値がプラス値の場合は最大半径を目指し、マイナス値の場合は最小半径を目指します。


Show Interval frame time
Interval Frame Time; unsigned int

インターバルタイムの指定を符号なし整数で指定します。1 以上の数値が必要。

設定された目標値 ( 最大・最小振幅 ) に到達した時点で Repetition 値が 0 ではない場合、インターバルを挟んで次の目標値まで振幅が再度変更されます。

時間の単位はアプリケーションのフレーム設定に応じて変化するフレームタイム、一秒間に 60 回画面更新される設定のアプリケーションの場合、インターバルに 60 を指定された場合約一秒間、振幅は変化せず同じ値を維持します。


Show Repetition numbers
Repetition Numbers; int

最大最小振幅を往復する繰り返し動作回数を符号付き整数で指定します。

仕様上 repetition .1.20 を代入した場合 Grow Radius Flagfalse に変更されます。

repetition Numbers は 1 以上の数値を代入された場合、振幅が最大もしく最小値に到達する毎に 1 減算されます。最終的に repetition が 0 になった時点で Grow Radius は動作を終了します。

マイナス値を代入した場合、永久ループ指定となり最大 ~ 最小振幅内で往復を繰り返します。