iAG取扱説明書

このドキュメントはiAG 0.9.1の説明書です。
更新日2012/7/14
Copyright 2009-2012 Y.Swetake (swetake.com)
All Rights Reserved.

目次

 概要
 動作環境
 セットアップ
 クイックスタート
 画面説明
  メイン画面
    画像エリア
    カメラエリア
    較正エリア
    ガイドエリア
    グラフエリア
    ステータスバー
  設定画面-画像タブ
  設定画面-ガイドタブ
  設定画面-制御タブ
  設定画面-較正タブ
  設定画面-もろもろタブ
  設定画面-露出タブ
  設定画面-入出力タブ
 リモートライブビュー用合焦支援機能
 テスト撮影例
 著作権
 (参考)開発経緯

概要

このプログラムは天体写真撮影用のオートガイドを行うためのものです。
USBカメラ等のキャプチャデバイスで捉えたガイド星を一定の位置に保つよう赤道儀を制御します。
このプログラムの主な特徴は以下の通りです。
・キャリブレーション機能
 USBカメラの取り付け角度の補正、補正速度および方向の検出、DECズレ方向の検出、シンチレーションに応じた
 不感領域設定等が可能であり、簡単に高精度なガイドを実現できることを期待しています。
・調整可能な画像計算方法
 輝度重心の計算アルゴリズムや、コンポジット数の調整が可能であり、シーンに応じた調整が可能なことを期待しています。
・log4netベースのログ出力機能
 Apache Projectのlog4netベースのログ出力機能を備えています。この機能によりガイドの動作実績をファイルに出力
 することができ、また後日その動作実績データを確認することができます。
・主光学系カメラの露出機能の統合
 主光学系のカメラの露出制御を目的とした制御機能を備えています。
 これにより、各ショットごとに画像位置を少しずつずらし、主光学系のカメラの常時輝点や常時暗点の影響を
 コンポジットにより低減するようなことも可能です。
・プラグイン設計
 赤道儀制御部分、露出制御部分および画面のグラフ部分等はプラグイン設計になっています。
 プラグインを選択することにより制御デバイスやグラフを選択することができます。

このプログラムは作者の機材(古い赤道儀(EM-10)+f=500mmの主光学系+APS-Cデジカメ+f=420mmサブスコープ接続のUSBカメラ)を
基準に作られております。これより長い焦点距離の光学系や最新の赤道儀で良い結果が出るかはわかりません。
このような機材は他のオートガイダーの方が良い結果が得られるかもしれません。

 

動作環境

プログラム動作に必要なもの
・WindowsOS (動作確認済みOSはWindowsXP Pro SP3)
 その他Windows Vista(x86),Windows 7 (x64)でも動作報告あり。
 但し64bitOS上ではWOW64経由の32bitアプリケーションとして動作します。
・.net framework 2.0(以上)ランタイム
・キャプチャデバイス
 例:DirectX対応キャプチャデバイス(USBカメラ等)
・プラグインに応じた赤道儀制御機器(例:USB-IOを用いたリレーボックス、ASCOM準拠の制御機器)
 (参考)リレーボックスの回路図の例は右の通り。(
回路図例)

・プラグインに応じた露出制御機器(例:USB-IOを用いたリレーボックス、シリアルポートのRTS線で制御する機器等)

 露出制御機能の確認はCanon EOS KISS X2で行っています。
 EOS D系でも動作実績があります。

 動作実績のある赤道儀は以下の通りです。
 ・タカハシ:EM-10 (USB-IOプラグイン:コントローラに配線直付改造)
 ・ケンコー:SKyExplorerII (USB-IOプラグイン:オートガイド端子に接続。ASCOMプラグイン。)
 ・Vixen:スーパーポラリス+DD2(改)+LX200互換リレーボックス(ASCOMプラグイン+SS2K Driver)

 動作実績のあるキャプチャデバイスは以下の通りです。
 ・セレストロンNexImage
 ・Logicool QCAM E3500 , QCAM S7500
 ・Princeton PCA-DAV2 + WATEC WAT-120N+
 ・MEADE DSI Pro/Pro II (beta版扱い) (別途プラグインが必要です)
 ・Starlight Xpress lodestar (beta版扱い) (別途プラグインが必要です)

 PCの必要HWスペック
 ・作者のPentiumIII 1GHz+WinXP のノートPCで5fps程度の制御ならば、それなりに動作しています。
  一つの目安にしてください。

セットアップ

 1.iAG_X_X_X.zipを解凍してください。
 2.フォルダの中にあるsetup.exeを実行してください。
 3.インストーラーが起動しますので、そのまま確認事項にそって進めてください。
 4.デスクトップとスタートメニューにショートカットが作成されます。
 5.iAGを起動し、開始メニューが表示されるまで待ちます。


 6.言語選択メニューがありますので、必要に応じて言語を変更します。(インストール直後やバージョンアップ直後は英語になっています。)
 7.プラグインの有効化(PluginEnabler)のボタンを押し、設定画面を表示します。


 8.必要なDLLを有効化するようチェックを入れます。このとき不要なDLLは無効にしておくことが推奨されます。
 9.開始メニューに戻り終了(Terminate)ボタンで一旦iAGを終了します。
 10.iAGを再度起動し、開始メニューのドロップダウンリストで使用するプラグインを選択します。

 もし必要なプラグインがインストールされていない場合は、  [スタート]-[すべてのプラグラム]-[iAG]-[PluginInstaller]でPluginInstallerを起動し、
 必要なプラグインを追加することもできます。
iAG Plugin Manager
[Add]ボタンをクリックし、圧縮されたプラグインファイル名(XXXXX.zip)を選択します。

 #互換性のないプラグインはアイコン部分に赤のバツ印が表示されます。
  このままでも問題はありませんが、このバージョンのiAGではこのプラグインは利用できません。
 #iAG本体をバージョンアップする時も同様にsetup.exeを実行してください。
  可能な限り以前のバージョンの設定を引き継ごうとしますが、
  バージョンアップ後は設定内容を確認してください。
 #アンインストールはコントロールパネルの「アプリケーションの追加と削除」
  から実施してください。
  ただし後から追加したPluginはPluginInstallerから削除する必要があります。

クイックスタート

うまくいけば以下の手順で利用できることを期待しています。(DirectShow経由USBカメラ使用時)

 0.USBカメラ等必要な結線をしてからプログラムを起動します。
   USBカメラは水平方向が赤経方向になるように取り付けてください。
   回転角度のキャリブレーションを行いますので、取り付け方向はそれほど
   神経質にならなくてもよいです。
 1.iAGを起動し、開始画面で使用するキャプチャデバイス(USBカメラ等)と
   利用するプラグインを選択します。必要に応じてプラグインの設定を行います。
 2.カメラの設定画面で出力サイズを640x480、フレームレートを適当な値にしてokを押します。
 3.主光学系の構図を決めた後、「カメラ動作開始」ボタンを押しカメラ画像を有効にして、
   ガイド星を画面中心に導入します。この際必要に応じ「カメラ設定」でUSBカメラの
   シャッター速度や明るさ調整を行います。
   ガイド星が見えにくい時はカメラエリアにある画像モードを「自動明暗比」にすると見やすくなります。
 4.「カメラ設定」や「輝度カット下限閾値」バーでノイズ等のランダムな輝点が発生しない
   よう画像を調整します。
 5.「設定」ボタンを押し「1フレームあたりの周期」を調整し、USBカメラの露出
   時間と同じ値か少し大き目の値にします。
   初期値は250(msec)x4(frame)で1秒ごとに補正をかける設定となっていますので、。
   カメラの露出が1/5sec(5fps相当)で、それほどシビアな精度が要求されないなら、
   初期値のままでもOKです。
 6.星像付近をクリックして、「ガイドを開始しますか」-[いいえ]。「較正を開始しますか」
   -[はい]を選択してキャリブレーションを開始します。
 7.キャリブレーションが終了します。キャリブレーション終了時は、開始時と位置がずれていますので、
   必要ならば位置を手動で戻します。(ターゲットマーカーの位置が初期クリック位置になります)
 8.星像付近をクリックして、「ガイドを開始しますか」-[はい]
   でガイドを開始します。

 うまく行かない場合は少々調整が必要です。
(参考)Tips

画面説明

開始画面


iAGを起動するとキャプチャデバイス(USBカメラ)等の各種プラグイン選択画面が表示されます。
使用するカメラと利用するプラグインを選択してOKボタンを押します。
必要に応じて「設定」ボタンをクリックしてプラグインの設定を行います。
各プラグインは起動後も変更できます。
言語エリアのドロップダウンリストで言語を変更できます。現在サポートしている言語は英語と日本語です。
言語の変更を有効にするためにはiAGを一旦終了する必要があります。

次にDirectShow系のキャプチャデバイスを選択した場合は、解像度とフレームレートの設定を行います。


キャプチャデバイス(USBカメラ)のプロパティ画面が表示されます。(画面はカメラの種類によって異なります。)
iAGは解像度640x480をベースに設計されています。よって、キャプチャデバイス(USBカメラ)の出力サイズは
640x480に設定することが推奨されます。ただし、他の解像度を設定しても動作は可能です。
フレームレートは必要最低限の値を設定します。
それほどシビアな条件を要求しなければ、5fps程度でも問題ないと考えられます。
このあたりはお使いの光学系やPCの能力に依存します。

iAGはDirectShow経由のキャプチャデバイスからの画像を非同期で処理しています。そのため厳密な設定を行うときは
後述の「1フレームあたりの周期」を考慮した値を設定することが推奨されます。

メイン画面


メイン画面 + Time-Gap+ScatterGraph

画像エリア

 USBカメラ等のキャプチャデバイスからの画像を表示します。
 iAGではRGBのうち原則Gのチャネルのみを処理して制御を行います。

 「待機」状態の時、画面をクリックすると、カメラの動作を開始するか、合焦支援機能を
 開始するかの確認ダイアログが出ます。
 「準備完了」状態の時、画面をクリックすると、その位置でガイドを開始するか、
 キャリブレーションを開始するか、ダークフレームの取得を行うかの確認ダイアログが出ます。
 ダイアログを省略したい場合は、CTRLキーを押しながらクリックすると
 キャリブレーション、SHIFTキーを押しながらクリックするとガイドを開始します。
 ガイドを開始すると、クリックした位置の周辺の輝度重心を計算し、その重心を
 ガイド基準点とします。

カメラエリア



 USBカメラは起動時に選択します。カメラを変更したいときやフレームレートを変更したい
ときはiAGを再起動します。
[画像モードドロップダウンリスト]
通常, カラーマップ, 生画像 の3種類が選択できます。
この選択は、「準備完了」時および「合焦支援」時に有効です。

[通常]:加算処理等加工後の画像を表示します。
[自動明暗比]:自動明暗比処理を行った画像を表示します。
[色分布]:輝度に応じた16段階のカラーマッピング表示を行います。
    輝度は明るい順に赤,橙,黄,黄緑,緑,青,藍,紫,黒となります。
    重心計算方法が「輝度線形重みづけモード」の時、輝度を飽和させない
    方が情報の欠落が生じなくなり計算精度が良くなることを期待しています。
    その時の調整用のモードです。
    特に明るめの星でガイドするときに効果を発揮することを期待しています。
    なお効果のほどは今のところよくわかりません。
    「準備完了」時のみ有効となり、その他の時は「通常」時と同じになります。
[色分布+自動明暗比]:自動明暗比処理をした画像を色分布表示します。
[生画像]:カメラからの画像をそのまま表示します。
    キャプチャデバイスの種類によっては何も写らないこともあります。
[カメラ設定ボタン]
キャプチャデバイス(USBカメラ)の設定画面を開きます。
[輝度カット下限閾値]
指定した値以下の輝度をもつpixelを重心計算等から除外します。
ガイド時やキャリブレーション時は指定したサイズの範囲のみが適用されます。
この範囲は円の直径と同じ大きさの正方形になります。大きさは後述の「ガイド領域サイズ」で変更できます。
[ダークフレーム減算チェックボックス]
ダークフレーム減算を適用する時にチェックします。
iAG起動時はこのチェックボックスは無効になっています。準備完了状態で画面をクリックすると
いくつかの確認ダイアログの後、ダークフレーム取得確認がありますので、ここで取得を行うと
ダークフレームが取り込まれチェックボックスが有効になります。ダークフレーム減算を行うときは
この状態でチェックを入れてください。
取得されるダークフレームは「画像合成フレーム数」分の平均画像となります。
ダークフレーム減算を行うときは、個々のフレームから、このダークフレームを減算します。
[カメラ動作開始ボタン]
画像エリアにキャプチャデバイスからの画像を表示します。

Calibrationエリア



[カメラ回転角度]
キャリブレーションによって得られたガイド対象の座標系の回転角を表示します。
画面の右方向を正の方向とし、右回りを正の方向の回転としています。
[リセットボタン]
キャリブレーション情報をリセットします。
[補正率]
可変時間ガイド時の補正率が表示されます。
[赤経+,赤経-,赤緯+,赤緯-]
キャリブレーションによって得られた各方向の移動速度を表示します。
設定により無効化されているときは、反転文字になります。
[反転チェックボックス]
赤経・赤緯とも制御方向を反転します。
キャリブレーションを実施すれば自動的に決定されます。

ガイドエリア



[停止ボタン]
ガイドを停止します。
[赤経差異]
ターゲット座標とガイド星の赤経方向のズレ量を表示します。
[赤緯差異]
ターゲット座標とガイド星の赤緯方向のズレ量を表示します。
[周期]
補正処理1周期にかかる時間情報を表示します。
1画像当たりの処理時間×画像合成フレーム数(コンポジット枚数)の形で表示されます。
DirectShowプラグイン等の非同期型キャプチャデバイスプラグインを使用する場合、 1画像当たりの処理時間がカメラの露出時間より少ないと過剰補正の原因となると考えられますので、 後述の「1フレームあたりの周期」でこの値を調整します。

同期型キャプチャデバイスプラグインを使用する場合は、個々のプラグインでの露出時間設定が支配的になります。

画像合成フレーム数が1より大きい場合は、ガイド時・キャリブレーション時は加算平均画像を、準備完了状態の時は移動平均画像をそれぞれ表示します。
[露出ボタン]
設定画面で設定した露出設定に基づき、主光学系カメラの露出を開始します。
露出動作中はボタンが赤くなります。ボタンが赤い時にクリックすると、露出を中断します。
利用可能な露出制御機器が接続されていない時はクリックできません。
[不感領域サイズ]
ガイド目標座標に対して補正を行わない幅が表示されます。
詳細は設定画面の説明を参照ください。
キャリブレーションで自動的に決定することもできます。
[モード]
ガイドモードを選択します。
  固定時間:固定時間補正量モード:ズレを検出した際に一定時間の補正信号を送ります。
  可変時間:可変時間補正量モード:ズレを検出した際にキャリブレーションで得られた速度をもとに補正量を算定し補正信号を送ります。

グラフエリア



 このエリアにはグラフが表示されます。
 表示されるグラフはプラグインで選択されたものになります。
 プラグインには時間-ズレグラフや、ズレ散布図等があります。(個別に追加する必要があります。)
 パフォーマンスを優先するときはDummyを選択します。(静的な画像が表示されます。)
 上記の例では、赤プロットは観測値、黄プロットは処理フィルターを通した観測値、青プロットは補正時間を指しています。
 プラグインの種類によっては配色を変更することも可能なものもあります。

ステータスウインドウ

現在のステータスを表示します。
ステータスは、待機,準備完了,Calibrating(較正中),ガイド中等があります。
較正時は残り時間が表示されます。但しリトライや拡張較正終了時バックラッシュの補正時間は
含まれませんのであくまで目安の値とお考えください。

[操作ボタン]
手動操作用のWindowを表示します。キャリブレーション時やガイド時もユーザーによる
割り込み操作が可能となりますので使用の際はご注意ください。
赤道儀制御プラグインの種類にってはサポートされない場合があります。


各方向ボタン:各方向に移動します。
Mボタン:ログに印をつけます。(それ以外は何もしません)

[IN][OUT]ボタン:各方向へフォーカサーを駆動します。
トラックバー:移動速度を変更します。
[RESET/REFRESH]:相対位置型フォーカサーの場合、現在位置を0にセットします。 絶対位置型の場合は、現在位置をフォーカサーより取得します。

[設定ボタン]
設定画面を開きます。

ステータバー

Windowの最下部のステータスバーには以下のものが表示されます。

[キャプチャデバイスの名称]
このプログラムで使用するUSBカメラ等のキャプチャデバイスの名称が表示されます。

[赤道儀制御プラグインの名称]
現在選択されている赤道儀制御プラグインの名称が表示されます。

[露出情報]
主光学系カメラの露出制御の情報が表示されます。表示される情報は
・現在のショットの経過時間/現在のショットの露出予定時間
・現在の枚数/全部の枚数
・予定終了時刻
です。
なお予定終了時刻は大まかな計算によって得られた値のため、数秒〜十数秒の誤差が生じる場合があります。
パフォーマンスを優先したい場合は、設定により表示を消すこともできます。

[現在時刻]
現在の日付と時刻を表示します。(秒単位)
パフォーマンスを優先したい場合は、設定により表示を消すこともできます。

処理概要

下図は画像合成フレーム数が4の時の処理概要です。



設定画面-画像タブ


画像エリア

[画像合成フレーム数]
ノイズ低減やシンチレーション低減のための画像合成フレーム数(1,2,4,8のいずれか)を指定します。
ガイド時およびキャリブレーション時は当該フレーム数の加算平均画像を画像合成フレーム数の周期で、
準備完了状態のときは単純移動平均画像を1フレーム周期で表示します。
ガイド時、加算平均対象となる個々の画像は水色で表示され、加算平均した結果の画像は白色で表示されます。
[1フレームあたりの周期]
DirectShowプラグイン等非同期型キャプチャデバイスプラグインでの 1フレームあたりの処理の実行周期(ミリ秒)を設定します。
メイン画面のmsecで表示されている時間に相当します。
USBカメラの露出時間などを考慮し、結果としての1フレーム当たりの処理時間がそれより長めになるよう設定するのが良いと考えています。
なおUSBカメラの露出時間を短くし、処理周期を短くする場合はカメラのフレームレートもそれに合うように調整する必要があります。

 同期型キャプチャデバイスプラグインを使用する場合は、この設定は250msecで固定になります。 実際の補正周期はキャプチャデバイス側の設定に依存する形になります。

処理時間の概念図

[重心計算方法]
ガイド星の重心計算の方法を選択します。
「輝度線形重みづけ」と「単純2値化」があります。
いずれのモードでも「輝度カット下限閾値」で指定した値以下のピクセルは計算から除外されます。
下図は入力が4階調6ピクセルでの計算例です。

重心計算方法の概要

[自動輝度カット下限閾値を有効にする]
 チェックを入れるとガイド時に輝度カット下限閾値を自動的かつリアルタイムに
変更します。
 比率で設定した値に基づき以下の図のとおりに制御します。
自動輝度カット下限閾値

 この機能が有効なときは、画面上の閾値表示部分の数値の頭にAがつきます。

[画像フィルター]
なし:フィルターを無効にします。

メディアン:ノイズフィルターの一種であるメディアンフィルターを有効にします。
      上下左右中心の画素輝度の中央値を中心の画素輝度とします。

ガウシアン:平滑化フィルターの一種であるガウシアンフィルターを有効にします。ノイズ低減効果も期待できます。
      3x3の範囲で演算します。

[制御した次のフレームは無視する]
<実験的実装です。>
PCの処理が遅い時などは、休止時間内に補正指示動作が完了せず、次の画像フレームに
補正指示中の画像が含まれる場合があります。
この項目にチェックを入れると、この影響を低減する為に、補正指示を行った
次の画像フレームを無視し次の次の画像フレームから加算処理を行うようにします。
非同期型キャプチャデバイスプラグインを使用する場合のみ設定可能です。

設定画面-ガイドタブ


ガイドエリア

[ガイド領域サイズ]
ガイド時の二値化・重心計算対象範囲の大きさ(ピクセル)を設定します。
画面上のガイド円の直径がこの値と同じになります。(計算対象はこの値を一辺とする正方形です。)
[不感領域サイズ]
補正を行わない領域(不感領域)の幅を指定します。
不感領域はこの値を直径とする円になります。
ガイド星の重心がこの範囲内にある場合は補正を行いません。
デフォルト値は1pixel(=±0.5pixel)です。

ガイド領域サイズと不感領域サイズ
GuideArea(ガイド領域)とDeadZoneSize(不感領域サイズ)

不感領域周辺の挙動
不感領域まわりの補正挙動
#黄色のエリアの時は赤緯方向のみ、水色のエリアの時は赤経方向のみ、
 緑色のエリアの時は赤経、赤緯両方向の補正を行います。

[現在の較正情報を保存する]
現在設定されている較正情報を保存します。保存領域は1回分となっており
新たに較正を行うとこの情報は上書きされます。
[前回の較正情報を復元する]
iAGを一旦終了した時あるいは異常終了時に再度iAGを起動した際にも、
較正することなく、ボタンクリックで、直前の較正済みの状況に復元できます。
ただし、たとえば輝度下限値等のアプリケーションで保持されない情報かつ
較正情報以外の項目は復元しません。

可変時間モードエリア

[赤経補正率 / 赤緯補正率]
可変補正量モードのときの補正率を指定します。100%のとき計算上ちょうどズレ量が0になるように補正をかけます。
ただし、あまりキッチリを狙いすぎると過剰補正になる場合がありますので、通常は少し小さめが良いと思います。
#観測した位置と真の位置には必ず誤差が含まれていると考えられますので、補正率は安全をみて小さめが
 推奨されます。デフォルト値は50%にしています。

固定時間モードエリア

[Shift]
固定時間補正量モードのときの補正量(ミリ秒)を指定します。

設定画面-制御タブ


制御エリア

[赤緯の制御を無効にする]
チェックを入れるとガイド時赤緯の制御を行いません。一軸制御時や極軸合わせ時に使用することを想定しています。
[赤経の制御を無効にする]
チェックを入れるとガイド時赤経の制御を行いません。

赤緯一方向無効化エリア

[使用しない]
赤緯一方向無効化機能を使用しません。
[プラス方向を無効化]
赤緯のプラス方向への補正制御を無効化します。
[マイナス方向を無効化]
赤緯のマイナス方向への補正制御を無効化します。

メトカーフ法ガイドエリア

[メトカーフ法ガイド]
<実験的実装です。>
彗星や小惑星等恒星と異なる動きをする天体に対し、対象の天体を静止した状態に保つように
恒星を相対的に移動させてガイドする機能です。
あらかじめ対象とする天体の移動量を求め、最終的にはiAGの画面上での
単位時間当たり(1分間あたり)の移動量(赤経、赤緯)を入力します。
赤経は右方向、赤緯は下方向が正になります。
メトカーフ法ガイドの設定方法
「赤緯は一方向制御とする」にチェックを入れると、赤緯の移動方向を設定した方向と
同じ方向のみにします。

処理フィルターエリア

<実験的実装です。>
画像処理で得られた重心座標を元に、各種の計算を行います。
この計算結果が最終的に補正を行う際の判定値になります。
処理を有効とする場合は、無効リスト中の項目を選択し「>>」ボタンをクリックします。
有効リスト側にその機能が現れますので、必要に応じその項目を選択した状態で「設定」ボタンを押し詳細設定を行います。
有効リストには順番があり、上の処理フィルターの出力が次の処理フィルターの入力になります。
最後の処理フィルターの出力値が、補正する際の評価値になります。
フィルターを有効にしなくても問題はありません。
「移動平均」「カルマンフィルター」「大規模差異無効」のフィルターを同梱しています。

設定画面-較正タブ



 較正(キャリブレーション)に関する設定を行います。

移動時間エリア

[赤経]
キャリブレーション時の赤経方向の移動時間(秒)を設定します。
小さすぎると精度が悪化します。大きすぎると画面からはみ出し正常なキャリブレーションが出来ません。
[赤緯]
キャリブレーション時の赤緯方向の移動時間(秒)を設定します。
小さすぎると精度が悪化します。大きすぎると画面からはみ出し正常なキャリブレーションが出来ません。

赤緯の再試行エリア

[有効とする赤緯速度の閾値(赤経比)]
赤緯速度の計測値が赤経速度の一定以下の場合にリトライを行う、閾値を設定します。
赤緯速度の計測時にバックラッシュの影響を受けると赤緯速度は小さめに出ますので、
計測値がバックラッシュの影響を受けているかをこの閾値(比率)を元に判定します。
赤経と赤緯の速度差異が同じくらいなら初期値の50%のままでも問題ありませんが、速度差異が大きい時には
調整が必要です。
リトライは1つのステージで最大99回行われます。リトライの回数はステータスウインドウ の"Stage5-x"のxの部分に表示されます。

拡張較正 エリア

[待機時間]
拡張キャリブレーションのための待ち時間(分)を設定します。

[赤緯一方向自動無効化]
チェックを入れると赤緯制御の一方向を自動的に無効にすることを試みます。
キャリブレーション時に指定時間待機し、その結果
一定量のずれが生じた場合に、それを助長する方向への制御を無効にします。
これにより、DEC方向の補正は一方向のみになり、ギアのバックラッシュによる
反応低下の影響を削減することを期待しています。
多くの場合赤緯の補正方向は1方向だけで事足るはずですが、場合によってはこれに
当てはまらないケース(長時間ガイドや地平線近くのガイド等)も多々あるので、
利用の際はご注意ください。
 またキャリブレーション完了時は、制御する方向へのバックラッシュをキャンセルした
状態にします。それ以降手動で動かした場合は、ガイド前に手動でバックラッシュをなく
した状態にすることが推奨されます。
[差異の閾値]
「赤緯一方向自動無効化」を有効にする閾値を設定します。
[自動不感領域設定を有効にする]
不感領域サイズを自動的に設定します。
拡張較正で得られた赤緯方向のばらつき(標準偏差σ)に対して、
±2σ(幅で4σ)の値を整数に切り上げて設定します。


拡張較正のロジック概要を以下に示します。


各ステージの概要を以下に示します。


[手動設定]
ボタンをクリックすると較正情報を手動で設定する画面を表示します。

較正手動設定画面

設定画面-もろもろタブ



グラフプラグイン エリア

[グラフプラグイン ドロップダウンリスト]
グラフプラグインを選択します。
[設定ボタン]
選択されているグラフプラグインの設定画面が表示されます。

サウンド通知 エリア

[有効にする]
チェックを入れると、サウンド通知機能が有効になります。

[様式]
サウンド通知の様式を設定します。初期配布時は以下の様式を準備しています。
スタイル名説明
SimpleSound単純な音が出ます。
EnglishVoice英語の音声メッセージが出ます。(MS-SAPI5ベースの合成音声です。)
日本語音声日本語の音声メッセージが出ます。(AquesTalkベースの合成音声です。)

各様式のwavファイルはiAGインストールディレクトリ以下のsounds\[様式フォルダ]以下に保存されています。
サウンド通知を行うタイミングは現時点で以下の通りです。
また自身で様式フォルダを作成し、以下に対応するwavファイルを設置することにより、好みの音やメッセージに変更することもできます。
タイミングwavファイル名初期配布状態
SimpleSoundEnglishVoice日本語音声
キャリブレーション完了時11.wavありありあり
キャリブレーション失敗時12.wavありありあり
ガイド星を見失ったとき21.wavありありあり
較正後ガイド開始成功時22.wavあり あり
較正後ガイド開始失敗時23.wavあり あり
撮影が完了した時30.wavありありあり
撮影枚数が残り1枚の時31.wav  あり
撮影枚数が残り2枚の時32.wav  あり
撮影枚数が残り3枚の時33.wav  あり
撮影枚数が残り4枚の時34.wav   
撮影枚数が残り5枚の時35.wav   
撮影枚数が残り6枚の時36.wav   
撮影枚数が残り7枚の時37.wav   
撮影枚数が残り8枚の時38.wav   
撮影枚数が残り9枚以上の時39.wav   
ダークフレーム取得開始時41.wavあり あり
ダークフレーム取得完了時42.wavあり あり
[試聴]
選択したスタイルの試聴ができます。

ログ エリア

[ログレベル]
ログレベルを設定します。ERROR<WARN<INFO<DEBUG<ALLの順に詳細なログが出力
されます。
出力場所は環境変数APPDATA 以下の swetake.com/iAG/logs/ になります 。
(Windows7/VistaならC:\Users\[ユーザー名]\AppData\Roamingになります。)
ログ出力を行うとパフォーマンスの低下を招く場合があるので
ご注意ください。(OFFにすると出力しません)

デフォルトでは
 すべてのログが集約された日付ごとのログファイル:iAG_[年月日].log
 アプリケーションが起動するたびにローテートされるログファイル:info.log と error.log
があります。
info.logはINFOレベルの内容が、error.logはERRORレベルおよびWARNレベルの内容が出力されます。
iAG_[年月日].logは1MByteでinfo.logおよびerror.logは4MByteに達した時点でもローテートされます。
info.logおよびerror.logは32世代まで保存され、それより古いものは破棄されます。

ログの出力機能はApacheProjectのlog4netを使用しています。log4net.xmlに設定を集約して
いますので、ローテートする容量や出力先の変更など必要な方はこのファイルを変更してください。

ガイド警告 エリア

[有効にする]
チェックを入れるとガイド警告を有効にします。現在の仕様はログへの出力有無のみです。
[比率ドロップダウンリスト]
ガイド警告を出す閾値を設定します。ここで表示される比率は不感領域の大きさに対する比率です。
たとえば不感領域の大きさが1でここでの比率が200%ならば、ガイド基準位置を中心とした直径2の大きさの領域からはみ出したときに警告が出されます。
[露出時のみ]
チェックを入れると露出を行っているときのみガイド警告を出します。

表示 エリア

[現在時刻と露出情報を表示する]
チェックを入れると現在時刻(秒単位)と露出情報をステータスバーに表示します。

言語 エリア

ドロップダウンリストで言語を変更できます。現在サポートしている言語は英語と日本語です。
言語の変更を有効にするためにはiAGを一旦終了する必要があります。

設定画面-露出タブ



主光学系に接続したカメラの露出制御に関する設定です。
なお各制御は必要最低限と考えられる精度でしか制御していませんので、
高精度な制御が必要な場合は別の手段を採用する必要があります。
[オンパルス時間]
オンパルスの指定した時間幅を設定します。
後述する[露出開始前にパルスを送る]や[露出の開始と停止にパルスを使う]をチェックした時に 使用される値です。
[前待機時間]
露出前の待機時間を指定します。
[露出時間]
露出時間を設定します。
表の上から指定の時間を露出するように実行されます。
各指定時間の前後にはそれぞれ、オンパルス時間、前待機時間、後待機時間が考慮されます。
値に0を指定した場合は、その列は無視されます。
[枚数]
露出枚数を0から15の値で設定します。
表の上から指定の時間を露出するように実行されます。
値に0を指定した場合は、その列は無視されます。
もし16枚以上同じ露出時間で撮影したい場合は、同じ露出時間を2列以上に設定して下さい
[後待機時間]
露出後の待機時間を指定します。
[露出開始前にパルスを送る]
露出開始前にONパルスを送ります。
ミラーアップ信号を送出することを想定しています。
[露出の開始と停止にパルスを使う]
露出の開始または終了の制御にパルスを使います。
露出中はOFF状態と同様になります。
[露出ごとのターゲット位置シフト量]
露出毎に、ガイドターゲットの座標を赤経,赤緯とも指定分ずらしていきます。
方向は赤経は右方向、赤緯は下方向です。ただし、「赤緯一方向自動無効化」が有効な時は、
赤緯方向にはずらさず、赤経方向のみになります。
この機能により、撮影イメージが各ショットごとにずれますので、主光学系の常時輝点や常時暗点の影響を
コンポジットにより分散できることを期待しています。
適正な指定量は主光学系側の焦点距離や撮像イメージサイズに依存します。
(あくまでこのズレ量はUSBカメラ上のズレpixel量であることに注意してください。)
なおこの機能を利用する際は、後待機時間や前待機時間の各待機時間を長めにとることが推奨されます。
[露出毎にグラフ画像を保存する]
チェックを入れると露出完了時にその時点のグラフエリアをPNG画像として保存します。
出力場所は実行ファイルのあるフォルダの直下のimagesです。
ファイル名は"iAGGraph_yyyyMMddhhmmss.png"になります。(yyyyMMddhhmmssは年月日時分秒)

下図は露出制御関係のチャート概要図です。

[露出の開始と停止にパルスを使う]がOFFの時(Default)


[露出の開始と停止にパルスを使う]がONの時




設定画面-入出力タブ



TelescopeControlPluginエリア

[赤道儀制御プラグイン ドロップダウンリスト]
赤道儀制御プラグインを選択します。
[設定ボタン]
選択されている赤道儀制御プラグインの設定画面が表示されます。
[on-Camera]を選択するとCameraデバイスの制御リレーを使用します。

ExposureControlPluginエリア

[露出制御プラグイン ドロップダウンリスト]
主光学系カメラ露出制御プラグインを選択します。
[設定ボタン]
選択されている主光学系カメラ露出制御プラグインの設定画面が表示されます。

設定画面 全般

確定ボタン
変更を反映します。(設定ファイルへの保存はアプリケーション終了時に自動的に実行されます。)
設定ファイルは "%USERPROFILE%\Local Settings\Application Data\swetake.com"以下の
iAG.exeで始まるフォルダに格納されます。
(%USERPROFILE%の設定をみるときはコマンドプロンプトでecho %USERPROFILE% としてください)
なおバージョンアップなどに伴い、以前の設定ファイルが残ることがあります。
初期値化ボタン
設定をアプリケーション初期値(配布時の値)にします。
再読込ボタン
設定ファイルを今回起動時の値に戻します。


リモートライブビュー用合焦支援機能

 画面上で他のソフトウェア(EOS Utility等)が表示しているリモートライブビューの画像を
iAG側で拡大・加工することにより、より精度の高い合焦を行うための支援機能です。

【使い方】
1.カメラ(キャプチャデバイス)が動作していない状態で、画面をクリックします。
2.カメラ動作開始の確認ダイアログが表示されますので[いいえ]を選択します。
3.続いて合焦支援機能の開始確認ダイアログが表示されますので[はい]を選択します。
4.ダイアログ表示後、画面全体が赤っぽくなります。この状態で拡大したい個所をクリックします。
 拡大倍率および範囲は右上部分の表示されており機能開始時は x8 (60x60) となっています。
 この表示の部分をクリックすると x4 (120x120)に変更することもできます。
5.拡大したいところをクリックすると拡大する領域に黄色い枠が表示され、確認ダイアログが表示されます。
 [はい]を選択すると、iAGの画面に当該個所が拡大表示されます。


6.表示される画像は、「画像合成フレーム数」の枚数を重ねあわせた移動平均画像になります。
 そのため実際の変化と比較して緩やかな変化で表示されます。
 カメラエリアの「輝度カット下限閾値」や「画像モードドロップダウンリスト」で画像を調整することも
 できます。ノイズが多い場合は「輝度カット下限閾値」の値を少し高めにしてください。
 画像モードをカラーマップモードに選択すると、カラーマップ状態で表示され輝度分布が直感的に把握できます。
 メッセージ欄には、現在の最大輝度値、括弧の中に期間を通じての最大輝度値、その下に輝点の数が表示されます。
 合焦時には輝度が最大かつ、輝点の数が最小になるかと思いますので、定量的に焦点を追い込むこともできます。
 なおキャプチャデバイス(USBカメラ)からの画像の処理と同様、RGBのうちGのチャネルのみを処理の対象としています。

 いわゆる「豚の鼻」を併用した際の画面。(ピントが合っていない時は星像が2つに見える)

7.画面をクリックすると合焦支援機能を終了することができます。

Tips

大気の状態が不安定で、星像の振れにより過剰にガイドしてしまう場合。

取得する星像を安定させる。
 ・「画像合成フレーム数」を大きめにし画像を平均化する。
  但し補正周期が長くなるので、その点に注意が必要。
 ・カメラの露出時間を長めにする。あわせて「1フレームあたりの周期」も適当な値にする。

星像が振れても補正を行わないようにする。
 ・処理フィルターを用いる。
 ・不感領域サイズを大きめにする。
  但しガイドの許容範囲が緩くなるので、その点に注意が必要。

赤緯の制御が過剰補正(オーバーシュート)気味になる場合

 特にASCOMの同期型PulseGuideでガイドする場合(SS2Kドライバー等)は、
赤経、赤緯の同時制御ができないため、赤緯の制御が遅れ気味になり、結果として
過剰補正(オーバーシュート)しやすくなります。
#これはiAG側の制御が赤経→赤緯の順に補正指示を行うためです。
対策としては、
・設定ガイドタブの「制御した次のフレームは無視する」を有効にする
・赤緯の補正率を小さめにする
等が考えられます。
またPC側の処理が追い付いていない場合はこの現象はより顕著になる傾向になります。

テスト撮影例

比較的ガイド条件の厳しい天の赤道付近の天体としてM2でテスト撮影をしてみました。
撮影条件は以下の通りです。
PENTAX75SDHF(f=500mm)+EOS KissX2(APS-C 12MPixel) ISO800 15分
ガイド鏡:f=420mm + QCAM E3500
赤道儀:EM-10 (オートガイド用の配線改造実施)
利用バージョン:iAG 0.2.0 + USB-IOリレーボックス
iAGの主な設定
 ・CycleTime: 250msec x 4Frames
 ・キャリブレーション実施。
 ・AutoDeadZoneSize:On
 ・GustProtection:On
 ・赤緯の制御は1方向のみ(DEC Auto1WayDisable)
中央部をピクセル等倍で切り出し。ダーク減算・明るさ調整のみ

中央は完全に白飛びしてしまっていますが、周辺の星像を参考にしてください。

m2


既知の問題

現在以下のような問題が確認されています。
・環境によってキャプチャデバイス関係でメモリの問題が発生する場合があるようです。
#プラグインに依存する問題はプラグインのドキュメントを参照ください。


同梱しているプラグイン一覧


キャプチャデバイスプラグイン
CaptureDevice Control Plugin for DirectShow

赤道儀制御プラグイン
TelescopeControl Plugin for USB-IO
TelescopeControl Plugin for ASCOM
TelescopeControl Plugin for FTD2XX

露出制御プラグイン
ExposureControl Plugin for USB-IO
ExposureControl Plugin for SerialPort
ExposureControl Plugin for ExternalCommand

グラフプラグイン
Time-Gap Graph Plugin
Time-Gap Graph with Scatter Plot Plugin
Time-Gap Graph with Statistics Plugin

処理フィルタープラグイン
ProcessingFilter Plugin for MovingAverage
ProcessingFilter Plugin for KalmanFilter
ProcessingFilter Plugin for CutLargeDiff

※なおDLL名にXがついているものはサンプル的提供物なので、説明書はありません。


著作権

 このプログラムの著作権は作者であるY.Swetakeにあります。
 このプログラムはフリーウェアです。自由に使用しても結構です。
 このプログラムは以下の資料およびプログラムを参考・使用しています。
 使用した各プログラムのライセンスはオリジナルに従います。

USB-IOの制御用DLLはhttp://bake-san.com/usb001.htmにあるvbausbio.dllを利用しています。
ZIPファイルの解凍にはDotNetZip (http://dotnetzip.codeplex.com/) を使用しています。
C#へのラッパーはhttp://d.hatena.ne.jp/yaneurao/20041109を参考にしています。
USBカメラの制御にはDirectShowの機能を利用しています。 参考にしたサイトは以下の通りです。
 ・USBカメラをC#で使おう http://mobiquitous.com/programming/usbcamera.html
 ・まちみのな.NET Framework 2.0 でキャプチャ http://tmp.junkbox.info/e24.html
  (このサイトのクラスライブラリを流用させていただきました。このクラスライブラリは
  以下のDirectShow.NETのライブラリを使用しています。)
 ・DirectShow.NET(http://www.codeproject.com/KB/directx/directshownet.aspx)
   本プログラムに適用する際に一部改変して使用しています。
ログの出力にはApacheProjectのlog4net (http://logging.apache.org/log4net/index.html) を使用しています。
プラグインの実装には以下のサイトを参考にしました。
 ・.NETによるプラグイン機能を持つテキストエディタの作成:CodeZine (http://codezine.jp/article/detail/1)

免責事項

 これらのプログラムによって生じるあらゆる損害・不利益について、作者は
一切責任を負いません。
 作者はこれらのプログラムに不備があっても、それを訂正する義務を負いません。

謝辞

α版およびRC版のテストを実施いただきましたA(1)さん、ご協力ありがとうございました。


更新履歴


2012/7/14 ver. 0.9.1
 ・【変更】ログの出力形態を変更。従来のiAG_[年月日].logに加えて、起動ごとに生成されるinfo.logとerror.logを出力するようにした。
 ・【新規】画像フィルターとしてガウシアンフィルターを追加

2012/5/13 ver. 0.9.0
 ・【新規】カメラ側に制御リレーが組み込まれているデバイスへ対応した。
      現時点でこの機能が使えるのはASCOM Camera v1とStarlight Xpressプラグインのみ
 ・【新規】ASCOM Camera v1プラグインを同梱した。

2011/11/19 ver. 0.8.3
 ・【新規】較正情報を手動で設定できるようにした。
 ・【新規】赤緯一方向無効化の方向を設定画面で設定可能とした。
 ・【変更】較正での時間測定部分およびログ出力を一部変更。
 ・【変更】開発環境をVisula C# Express 2010 + WiX に移行した。
 ・【新規】外部コマンド制御用露出制御プラグインを同梱した。
 ・【変更】同梱しているASCOM関連プラグインの同梱ライブラリの見直しを行った。
 ・【変更】メインフォームの高さを少し小さくした。

2011/2/20 ver. 0.8.1
 ・【変更】色分布の階調を8段階から16段階に変更
 ・【修正】自動明暗比のロジック修正

2010/12/5 ver. 0.8.0
 ・【新規】自動輝度調整機能(自動明暗比)の追加
 ・【新規】メトカーフ法ガイド機能 の追加
 ・【新規】前回較正情報の復元機能の追加
 ・【新規】メディアンフィルター(ノイズフィルター)の追加
 ・【新規】サスペンド(スタンバイ)時の対応追加
 ・【変更】上記に伴う設定画面のタブ構成の変更

2010/10/24 ver. 0.7.0
 ・【追加】同期型キャプチャデバイスプラグイン(DSIプラグイン等)に対応するようにした。
 ・【追加】フォーカサー制御プラグインに実験対応し、操作パネルからマニュアル制御できるようにした。
 ・【追加】サウンド通知タイミングについてダークフレーム取得開始時・完了時を追加した。
 ・【追加】輝度カット下限閾値の自動調整機能を追加した。

2010/6/6 ver. 0.6.1
 ・【追加】キャリブレーション終了後そのままガイド状態に遷移するチェックボックスを追加した。
 ・【追加】シリアルポート(RTS/DTR)露出制御プラグインを同梱した。
 ・【変更】「1サイクルあたりの周期」の有効桁を上位2桁とし、あわせてその範囲を10msecから10,000msec(10sec)とした。
      これに伴い設定画面のインターフェイスを一部変更した。
 ・【変更】PluginInstallerがVista/7で管理者権限で起動するようにManifestファイルを追加した。
 ・【修正】露出制御において、ボタンを押すタイミングにより、その後一切制御が効かなくなる不具合対策を盛り込んだ。

2010/5/5 ver. 0.6.0
 ・キャプチャデバイスからの画像取得処理を抽象化しプラグインとして実装しなおした。これにより別途プラグインを準備すれば
  DirectShow以外の入力もサポートできるようになった。
 ・同梱しているDirectShowプラグインで利用しているDirectShow.NET内部の.NET1.1時代の表現(UCOM*)を.NET2.0以降の推奨表現に書き換えた。(機能上の変更なし)
 ・ダークフレーム減算機能の追加
 ・64bitOS(x64)での動作確認。ターゲットプラットフォームをAnyCPUからx86に変更し、明示的に32bitモードで動作するよう変更した。

2010/4/24 ver. 0.5.2
 ・露出制御に[露出の開始と停止にパルスを使う]機能を追加。これに伴い一部関連仕様の変更。
 ・サウンド通知機能に撮影時の残り枚数をアナウンスする機能を追加。(配布状態では残り3枚以下の時)
 ・同梱するExposureControlPluginForUSBIOを1.1.0にバージョンアップ
 ・画像処理関係ロジックの小改善

2010/3/25 ver. 0.5.1
 ・リモートライブビュー用合焦支援機能を追加
 ・画像処理関係ロジックの小改善

2010/3/14 ver. 0.5.0
 ・キャリブレーションロジックの見直しを実施。(リトライ機能の導入等)
 ・プラグイン類をすべて本体に同梱するようにした。
  また同梱するにあたり、IO制御のプラグイン(赤道儀制御、露出制御)は有効化・無効化を指定できるようにした。
 ・処理フィルター機能を導入(実験導入)
  これにより移動平均フィルターやカルマンフィルター等の時系列フィルターを個別に追加可能とした。
 ・グラフプラグインインターフェイスのバージョンアップ
  処理フィルター機能導入により仕様変更。以前のグラフプラグインは使用不可となった。
 ・不感領域サイズの最小値を0.5とした。
 ・多言語対応化(日本語を追加)

2010/2/7 ver. 0.4.3
 ・サウンド通知機能を追加した。

2010/1/30 ver. 0.4.2
 ・DEC/RAの速度情報の文字色をシステムカラーとし、無効時は反転するようにした。
  主要な文字/背景色はOSの画面配色に連動していますので、色調を変更したいときは、OSの画面プロパティで
  配色を変更してください。
 ・キャリブレーション失敗時および、キャリブレーション最後のバックラッシュキャンセル時に、
  一見ハングアップしているように見えるため、メッセージ欄にメッセージを出すようにした。
 ・キャリブレーション失敗時に望遠鏡制御が完了するまで待機する処理において、最大20秒で
  タイムアウトするようにした。

2010/1/10 ver. 0.4.1
 ・グラフの画面を露出完了ごとにPNG画像として保存するオプションを追加した。
 ・起動時のiAG Start Menuでその時点でアプリケーションを終了できるTerminateボタンを追加した。
 ・iAG本体に同梱していたvbausbio.dllを各プラグインに同梱するように変更した。
 ・画像キャプチャ時のメモリ周りのエラー発生対策強化した。(ただし対策がまだ不十分なケースがあるようです)

2009/12/11 ver. 0.4.0
 ・主光学系カメラ露出機能およびグラフ機能をプラグイン化し、プラグイン選択により機能選択できるようにした。
 ・Pluginの管理ツール PluginManager を添付した。
 ・CameraのLowerCutThresholdの初期値を32とした。(元は128)
 ・主光学系カメラ露出制御の最終ショット時にはAfterTimeの待機と座標Shiftを行わないように変更した。

2009/11/7 ver. 0.3.0
 ・赤道儀制御部分をプラグイン化し、USB-IO経由以外でも駆動できるようにした。
  上記に伴う一部ロジックの見直しを実施した。

2009/10/18 ver. 0.2.2
 ・DeadZoneSizeの桁を小数第一位までもつようにした。
 ・DecAuto1WayDisable機能ON時に露出制御のshift機能のDEC方向へのShiftを行わないようにした。
 ・IgnoreNextFrameInCorrectingを試験実装した。
 ・補正時間の計測アルゴリズムを変更した。
   #Thread.Sleep から Thread.SleepとStopwatchの組み合わせに変更
 ・ログ出力項目の調整を行った。

2009/10/3 ver. 0.2.1
 ・インストーラーによるセットアップに変更
 ・不感領域を正方形→円形に変更
 ・ColorMapモードの追加
 ・IDLE時の挙動変更
  →時計および露出情報を表示可能とした。
   主光学系カメラの露出機能を利用可能とした。
 ・その他画面およびユーザーインターフェイス周りの調整

2009/9/21 ver. 0.2.0
 ・一般公開


参考:開発経緯

 最近久々に天文モチベーションが向上したため、その昔、パラレルポート 経由で行っていたオートガイドを復活させようかかと思いました。
 ところが最近のノートPCにはレガシーデバイスであるパラレルポートが ついておらず、さてどうしたものかと困っておりました。

 インターネットで探してみると汎用入出力デバイスであるUSB-IOを使用した フリーのオートガイドソフトGAGP1が公開されていたため、しばらくは ありがたくこれを使用させていただいておりました。しかしながら雑で 不精な私にとってはパラメータ出しなどの作業がわずらわしく、もう 少し楽してオートガイドできないかなぁと思いました。
 そこで開発したのがこのソフトウェアiAGです。

(このような経緯からUSB-IOを用いたリレーボックスの仕様は、GAGP1と ほぼ互換になっております。)

 iAGとはintelligent Auto Guider の略で、私より賢く条件出しとか ガイドをしてくれることを期待してこのような名前になっております。
(ですので、皆さまや他のソフトより賢いかはわかりません。)

もどる