fc2ブログ

ASCOM・Alpacaのカテゴリー記事一覧


---------------------------------------------------------------------------------------------------------------------------------------------
メイン

以前にINDI環境について記載しましたので、ASCOM環境についても触れておこうと思います。

Windowsで天体環境を構築するために非常に重要な働きをしますが、思ったよりまとまった文献が無いようです。
これから環境を構築する方の参考用としてご活用いただけると幸いです。

・ASCOMはNetframework、DirectXを活用した天体機器のサーバ・ドライバセットである。
・Windowsのシステム機能との依存関係が高いため動作環境はWindowsに限定される。
・天体機器との通信としてCOMポートを利用する。そのため、原則としてドライバ・クライアントの対応関係は一対一になる。
・非常に多くのクライアントアプリが対応しており、ドライバ開発などにメーカーが参与している場合もある。
・ドライバのCOMポートの管理にはレジストリが使用されている。
・メインの開発・検証は32ビットで行われているため、64bitで使用する場合は制約がある。
・インストール後はサーバが常時起動しており、必要となるドライバを起動・設定して使用する。
ドライバの設定・保存はGUIのフロントエンドで行う。
・複数のクライアントでドライバを利用する場合は、ドライバが独自に仮想シリアル機能をもつか、ASCOM独自のPOTHドライバを経由する必要がある。
・レジストリを操作するため、サーバ・ドライバを管理者として実行する必要がある。
・Windows8、10に対しては正式対応していないため、動作しない場合は互換環境で動作させる必要がある。

実質PCで天体機器を扱う環境としてデファクトスタンダードとしての地位が確立していますが、上記の通りサーバ・ドライバの設計が現在となっては古びている部分や、Windowsのシステムにかなり依存する動作環境になっているためWindows10などで使用する場合は注意が必要な部分もあります。
以下に注意点も記載しましょう。

・サーバ・ドライバが管理者として実行されているため、使用するクライアントも管理者として実行しないと正常に動作しないことがある。(トラブルを避けるのであればクライアンをを含め全て管理者として実行する環境に整えておくほうが良い)

・クライアントアプリが64ビットの場合、ドライバの対応状況によっては動作しないことがある。(クライアント・サーバ・ドライバ全て32ビットで使用する場合が一番推奨環境に近くなる。)

・原則ドライバの設定はASCOM側で行い、保存しておく必要がある。(クライアントの対応にばらつきがある。)

・Platesolvingのように複数アプリ・サーバでドライバを共用する場合はPOTHドライバ、またはマウントのドライバがマルチクライアント仕様(バーチャルCOM)に対応している必要がある。



注意が必要なのはデフォルトが32bit、Windows10正式対応がされていない、レジストリを使用するため管理者として実行されている必要がある、複数アプリでドライバを共用するためにはPOTH、またはドライバ自体がマルチクライアントに対応が必要になることでしょうか。

プラネタリウムアプリでマウントドライバをコントロールするなど一対一の関係で使用することに留めれば、簡単に使用できますが天体撮影のように複数機器をまとめて、更に場合によっては複数アプリでドライバを共用するような使い方となると、制約を避けながらの環境構築が必要となり、かなり注意が必要になります。


現状で安定した環境を作るのであれば以下の項目を実施するのが無難です。

・ASCOMサーバ・ドライバは32bit版を利用、インストール時に管理者として実行する設定にしておく。

・ASCOMサーバ・ドライバは互換モードで動作させる設定にしておく。(推奨はWindows7)

・制御を行うクライアントアプリも全て32bit版を使用、管理者として実行する設定にしておく。

・マウントドライバがマルチクライアント対応の機器を使用する。(不可能な場合はPOTHでの動作チェックを念入りに行う)


上記はあくまで原則論での内容になります。
Windowsの場合、対応するクライアントも非常に多数ありますのでクライアント側でこれらの制約を払拭している場合もありますので、試してみるまでわからないというのが現状です。
いずれにしても上記原則部分を念頭において環境構築すればトラブルが起きづらくなるかと思います。

昨年あたりからINDIGOドライバにあったTCP/IPラッパー(TCP/IP環境でASCOMサーバ・ドライバ環境を使用できるようにするラッパー)のAlpacaがアナウンスされています。

Alpacaが普及すればWindows以外の環境でもTCP/IPを通じてASCOMサーバ・ドライバを使用することができるようになるようです。
これらの規格も期待したいところですが、まずはASCOM本体でCOMポートの扱いや、Windowsの最新環境に対応することが最重要な事項になると思います。

ASCOMが誕生してから20年になります。
現在においては事実上天体機器制御環境のデファクトスタンダードになっています。
しかし、現状はWindowsの高い互換性におんぶにだっこになっている部分が散見されます。
上記記載の通り、最新OSへのフル対応や、COMポートの扱い方などが改善されればさらに使いやすい環境が整うと思います。

Alpacaを開発したりなど、積極的に開発が行われているようなので、ベースとなる機器制御の安定性や拡張性が充実するように期待したいと思います。



スポンサーサイト



以前の記事でAlpacaについて少し触れましたが、その時は本家が作るASCOMのTCP/IPラッパーなのかなといった認識でしたが、詳しく調べていくとAlpacaサーバ・ドライバなる情報が出てきました。

どうやらAlpacaは既存ASCOMドライバをTCP/IPで他の環境で使えるようにするラッパーと、Alpacaサーバ・ドライバによるTCP/IPサーバ・ドライバの総称ということらしいです。

既存のASCOMはそのまま残し、ラッパーとなるASCOM RemoteでTCI/IPを使用したマルチクライアント対応を図り、新規に開発されるAlpacaサーバ・ドライバでマルチクライアント・TCI/IP対応(ASCOMドライバ互換)を行うといったことになるようです。

書いてあることだけ読めば理想的ですが、いくつか懸念があります。

・既存のASCOMサーバ・ドライバの改善はどうなるか?
正直ASCOMのネットワーク実装(COM)が現状不具合になることが多く、ASCOM自体も正式にWindows10に対応していません。ドライバをマルチクライアントで使用するにはメーカー側がマルチクライアント対応したドライバを開発しているか、POTHHubを使用する必要があります。
昨今流行りのPlateSolvingなどを使用するとなると複数アプリの連携が必須になりますのでマルチクライアント対応ドライバか、POTHHubでの連携が必要になりますが、私の環境(使用機器)では正直まともに動いたことがありません。

既存のASCOMの開発がこのような状態で別規格を作ってしまうと混乱するようにも感じてしまいます。
既存のASCOM環境をきちんとWindows10に対応させ、全てのドライバがマルチクライアント対応、及び64ビット・32ビット両対応になれば少なくともWindowsで動かす限りは安定するはずです。
少なくともASCOMで上記部分の改善はしっかり取り組んでほしいですね。(じゃないとAlpacaRemoteで他の環境でASCOMが使えるようになったとしてもまともに動きませんので。。。)


・Alpacaサーバ・ドライバってどこで入手できるの?
発表されてからそこそこ時間が経過しましたが、本家サイトにAlpacaサーバ・ドライバのダウンロードページがありません。
ネットなどでいろいろ探してみると個人の方がAlpacaドライバを配布していたりします。

どうやら、本家ではまだサーバ・ドライバの配布状態には至っていないようでドライバ開発キットやチェッカーの配布にとどまっているようです。

現状を見てのあくまでも予想ですが、既存ASCOMドライバを残しながらラッパーを被せて他環境でも使用できるようにしながら、緩やかにAlpacaサーバ・ドライバに切り替えていく作戦なのでしょうか?
そうなると切り替わるのに非常に時間がかかりそうです。(カオス状態になる予感も。。)
AlpacaでASCOMのCOM環境から脱却という姿勢は大いに評価できますが、これだけ発表されてから時間が経過しているのにラッパーしか発表されていないというのは非常に心配な状況です。
MacユーザーやLinuxユーザーはラッパー被せてまでASCOMを使いたいとは思っていないことをしっかり認識してほしいですね。(INDIやINDIGOで不自由なく機器制御ができますので、もしAlpacaがそれらより優れていたら乗り換えたいです。)

個人的にはずるずると古い環境を引っ張るのではなく、すっぱりとAlpacaに切り替えてほしかったです。

現在EAAで使用しているマウントがドライバのバグでまともに動作しなくなってしまいましたので、この機会にAlpacaを試そうかと考えましたが、まだ残念ながら試せる環境自体がなさそうです。

ドライバは天体機器を制御する上でもっとも重要な部分になります。
アプリの方はさまざまな連携ができる環境が整ってきましたが、ドライバの不具合で連携が出来ないことが散見されます。

天体機器のドライバは他の環境では当たり前になってきているPlug & Playに対応していませんし、ASCOMのデフォルトではドライバを一つのアプリでしか利用できません。(連携のためにPothHubがありますが、前出になりますが、私の機器では正直全てまともに動いたことがありません。。マルチクライアント対応のドライバはわずかです。)

現在は消去法的にINDI環境を使用していますが、Alpacaの動向によってはユーザー(特にWindows)が安定環境を手にするのは時間がかかるかもしれません。。。(共倒れになるとかは本当に勘弁してほしいです)

個人的には小難しいことを考えなくても繋げば動くという環境が早く整ってほしいと感じています。(まだ見ぬAlpacaはそのような環境を実現できるのでしょうか、そうなることを心より願います。)

規格ばかり増えて安定環境が作れないとか本末転倒ですね。
良い方向に進みますように。。。。。


追伸
冷静に考えると、ハードメーカー発の統合環境ってとても少ないですね。(ASIAirProくらい?)
ハートメーカーがアプリまでセットで面倒見てくれれば、動作の安定性は担保されそうです。
現状だとCelestronかZWOでしょうかね。
ZWO社のASIAirProがINDI本家のStellarMateより安定していたり、使いやすいのは自社のハードへの動作チェックや操作体系を考察しているからでしょう。
天体撮影が趣味のユーザーに頼っている割には天体望遠鏡メーカーからはこのような統合環境アプリが出てきませんね。
CelestronやSkyWatcherなどの大手がこれらの開発に着手してくれれば大分環境が整うのにな。。
(そう言えば、以前ミードで出していたような記憶が。。。会社自体が体力ダウンして過去のものになってしまいましたが)

なんか、今の天体機器のドライバの状況ってUVCが登場する前のWebCamに似てるように感じます。。。(独自ドライバの安定性に依存(大体安定していない(苦笑))、OSによってはドライバ自体が無い、自己責任の汎用ドライバの乱立など。。)

天体機器のドライバもUVCのように統一規格に。。。。ならないか。。。。。。

Alpaca RemoteというASCOMのネットワークラッパーが配布されてから約3年。

久しぶりにどのような進展があったか本家サイトを確認してみました。

Alpaca Remote以外で本家サイトから唯一リンクされているのがAlpacaScopeというASCOM環境をSkySafariで利用するミドルウェアのみ。。

ネットをくまなく探すと個人の方、アプリケーションの開発者などが非公式でドライバを配布しています。(Cielの開発者のパドリックがミード架台のドライバを開発、ArduinoのDSCのドライバを作っていたミッシェルのDSCドライバラズパイのディストリビューションAlpacaPiなど。。)

ASCOMの時のようにメーカーの参画もありません。。

発表されてからすでに3年以上経過しています。。一体なぜこのようなことになっているのでしょうか。(うすうす想像はつきますが。。。)

本家サイトの文献を見ても、開発元であるASCOM Initiativeの認識の甘さが散見されます。

ASCOMに関してはWindows環境下で天体機器を制御するプラットフォームを作るという意味で訴求がありましたが、Alpacaに関しては開発者にとって先行するINDIやINDIGOに対して差別化できるメリットが見えづらいです。(個人的にはCOM脱却は大賛成ですが)

ASCOMで培った協力関係をもとに、開発元自らがメーカーと協力してドライバを用意して移行を促すなどすればよかったのでしょうが、仕様だけ公開してあとは放置では開発者も賛同しないでしょう。

いっそのこと他ではやっていないコンシュマーに対してWebアプリでの提供とかしてくれれば大いにPRできそうですが、まずはドライバの開発が先決ですね。

このままズルズルと待ち状態が続いているとWindowsのCOM環境の互換性低下とともに制御環境の信頼性が低下しそうです。。。(ASCOMもWindows10に正式対応しないままWindows11が登場してしまいました。)

ASCOM Initiativeの今後の取り組みに期待したいと思います。








個人的にはWindows含め全てのPCでAlpacaドライバが開発される状況を望んでいましたが、この記事を読む限り以下のように推測されます。

・Windowsは今まで通り.Net、Com環境を継続

・他のOS(Mac、Linux)に関してはAlpacaドライバに.Net、Com用のライブラリを追加することでWindowsとの互換性を図る


どうやら開発側はWindows環境において.NET、COMからは脱却しないようです。。。

過去の経緯から考えるとメーカーがMacやLinuxでAlpacaドライバを作るとは考えづらいので(今までは、MacやLinuxに関しては個人、ソフトメーカー、オープンソースのみでハードウェアメーカーがドライバを配布することは知る限り一度もありませんでした)なので、Windowsでは従来どおりASCOM(.NET、COM)を利用、Mac、Linux側からドライバが登場することはなさそうです。。。

ドライバとしてASCOMを利用する上で不具合が起こる原因としては以下があります。

・ドライバが32ビット専用、64ビット専用、32ビット・64ビット両対応が混在(メーカーにより対応が異なる)

・ドライバの実行権限が管理者権限のみ、管理者権限+ユーザー、ユーザーのみが混在(メーカーにより対応が異なる)

・ドライバのマルチクライアント対応が希少(殆どはHubが必要)

・制御アプリの対応もさまざま(32ビット専用、64ビット専用、混在可能、管理者権限のみ、管理者権限+ユーザー、ユーザーのみなど)



考慮する事項が多すぎますね。。。

ドライバ、アプリで上記の条件が全て合致しないと使えないという仕様です。

単体利用では安定していても、PlateSolvingなど複数アプリを連携する機能を使う場合使えなくなる機器があるのはこのためです。(はっきり言って問題がある仕様だと思います。。。。)

ドライバが配布されているサイトに上記対応状況が記載されていれば良いのですがほとんどの場合は記載が無いので今まではASCOM Diagnosticsを使ってしらみ潰しにドライバが32ビット、64ビット、またはどちらも対応なのかを調べた後、アプリでの動作確認(これも32ビット、64ビット)、繋がらない場合は実行権限を管理者に変更してみたりと非常に時間がかかりました。。。(そこまでやっても上記の通り繋がらない可能性もあるということです。)

現状ではN.I.N.AやAPTなど撮影用アプリを利用する方が多いと思いますが、このようなアプリでパルスガイドを利用したり、プラネタリウムアプリと連携して自動導入をするとなると、マウントドライバがマルチクライアントに対応する必要があり、対応しない場合はデバイスHub(ユーザ領域のみ)、PothHub(管理者権限のみ)で動作を確認する必要がありました。

はっきり言って面倒でしたが、現状下においてもASCOM Remoteを利用することでこのようなこのような面倒な制約から開放されます。


用意するもの

ASCOM Remote

CCDCielCielSkyChartなどAlpacaに対応した制御アプリ(この2つのアプリはAlpacaも安定動作するので動作確認のリファレンスとしてセットでインストールしておくのが望ましい)

要は既存のASCOMドライバをASCOM Remoteを利用してAlpacaドライバとして認識させ、Alpaca対応アプリと接続するということです。

AlpacaはINDI、Indigo同様ネットワークドライバなので、上記のようなドライバ、アプリの接続制限を受けません。
単体利用で問題なく動作するドライバであれば、全てTCP/IPリモート(ローカルも含めて)で連携使用が可能になります。

(ローカルで複数アプリの同時接続も可能ですし、ネットワーク接続されたアプリでも動作します。)

ASCOM Remoteを使うことで、既存のASCOMドライバをTCP/IP通信で利用できるAlpacaドライバとして利用できます。
Alpaca対応クライアントでAlpacaドライバとして接続すれば、ASCOMドライバの制約をほとんど回避出来るということです。(
アプリ側はドライバにリンクしているだけになりますのでHubが無くても複数アプリで接続、連携利用ができますし、ネットワーク接続された別のマシンのクライアントでも利用できます。)

既存のASCOMドライバがINDIやIndigoなどのTCP/IPネットワークドライバと同様に扱えますので自由度が上がる上、複数アプリの連携が必須だったPlateSolvingなどの不具合を回避できます。

おそらくASCOM環境下では上記ASCOMの仕様からPlateSolvingを使った同期や、マウントドライバのみで利用出来るパルスガイドの使用に不具合を抱える方が多いのではないかと思います。

今回記載したようにASCOM RemoteでドライバをAlpacaとして扱うことで.NETやCOMが抱える制約、不具合をかなり解消できますのでお困りの方はお試しください。


追伸
上記の通り、ネイティブAlpacaドライバがWindows環境でも登場する状況は低そうなので(他のOSも同様)、Windows環境下においてはASCOMRemoteを使用してAlpaca環境で運用するのが現状ではベストかと思います。

Hubと異なりドライバ自体を仮想化するわけではなく、ドライバをTCP/IP接続できるリモコンを追加するようなものなので、接続の自由度があがる上、上記の.NETやCOMのしがらみから抜けることができます。

2024年2月加筆

エンドユーザーにとっては4者ともオープンソースで多数の機器に対応してくれるありがたい存在です。

私自身は現在天体機器の制御はLinux、WindowsMINIPCなどで行っています。
速度的にも不満がありませんし、消費電力が少ないので重いディープサイクルバッテリーの呪縛から離れられるのが一番の要因です。(MacはPCの中では最も環境作りが楽なので消費電力の少ないMINIPCが登場してくれたらありがたいのですが。。。)

INDI、Indigo、ASCOM、Alpacaをセットで比較できる情報が少ないためそれぞれの特徴を記載します。
これから始める方の参考になれば幸いです。

●ASCOM
.Net FrameWorkを利用する天体機器通信制御のサーバ・ドライバによるミドルウェアになります。
通信といってもTCP/IPではなく、ローカルのシリアル通信をメインにして(USBもシリアル通信です。)動作しています。

.Net FrameWork、COMなどを使用しているためWindows専用になります。
特徴としてWindows環境で普及したミドルウェアなので、海外のメーカーなどはASCOM準拠のドライバを開発していることです。

●長所
・オープンソースにも関わらずドライバ開発、配布にメーカーが参与している(個人・ソフトウェアベンダーも参加)
・使用者が多いのでネットに情報が多い
・多数の機器のドライバがある

●短所
・ドライバの種類が32ビット、64ビット、32・64両対応、管理者権限で動作、ユーザー領域で動作、管理者・ユーザー領域共になど開発メーカーによりばらつきがある
・プラネタリウムアプリやCCDアプリが独自に組み込んでいるドライバよりかなり低速(特にCCDドライバ)
・不安定、ネットワークサーバ・ドライバなのに、INDIやIndigoのようにネットワークドライバとして使用できない。(ローカル接続のみ)
・ハンドシェイク接続が基本となっているのでドライバ接続を自動化できない(複数アプリでのドライバ共有は同社が提供するHub機能を利用)


●Alpaca
.Net FrameWorkを含め、全てのOSで動作することを目指したミドルウェアになります。
通信にはINDI・Indigo同様TCP/IPを利用し、同社が提供するライブラリを組み込んだ場合は.Net FrameWork環境でも動作します。
2018年に仕様が公開された新しい規格のため、機器のドライバは海外有志が開発した数種類にとどまっています。

●長所
・マルチOS対応
・TCP/IP利用のネットワークを利用するため接続の柔軟性が高い
・ASCOM環境との親和性が高い

●短所
・方針としてASCOM同様メーカー参加を前提としているが、ASCOMがすでに普及しているためメーカーサイドのドライバ開発が進んでいない


●INDI
ネットワーク通信(こちらはIP通信)を利用した天体機器通信制御サーバ・ドライバセット、クライアントに対してはASCOM同様ミドルウェアのような存在でTCP/IPにより接続されます。
ドライバはLinux、Macのみ、クライアントはマルチOSに対応。現状実質専用となるKStars・Ekosでほとんどの天体機器通信制御が出来てしまうため、この環境で使用される情報が多く、実質KStars・Ekosとのセット扱いになっています。
対応したクライアントもASCOMほどではないが多数あります。

●長所
・軽量のため、SBCでも動作可能
・IP通信を利用しているためローカルのみならずリモート通信制御も可能
・多数の機器のドライバがある
・Macのみ全ての依存関係がアプリ内に組み込まれているため環境構築が容易(Linuxは難しい)

●短所
・メーカー関与がほぼ無い
・そのためかドライバの管理項目にばらつきがあり、不明要素が多数ある
・ドライバにより初期状態の安定性のばらつきが多い(そもそも動作させるための初期設定がされていないドライバが多数。)
・Linuxの場合は環境構築が難しい
・サーバ・ドライバの組み込みはWindowsに対応していない(クライアントのみ)
・開発先の情報提供の更新が古くドライバ対応状況など正確な情報が無い


●INDIGO
INDI環境のMac用のサーバ・ドライバ、アプリなどを開発していた担当者が、INDIのプロトコルを基に独自に新規設計した制御環境。自社サイトにINDIに対しての優位性などが記載されていますが、技術情報が明確に示されていないため詳細は不明です。(実際に使用してみるとINDI環境との差異は操作系以外は不明です。大した違いはないような。。設定などはしやすいです。)

●長所
・軽量、IP通信を利用しているためローカルのみならずリモート通信制御も可能
・Macに関してはドライバが依存関係などを全て組み込んだアプリとして無料提供、ラズパイに関しては無料ディストリビューションが開発サイドで無料で提供されているためそれらの環境においては環境構築が容易
・サーバ・ドライバ以外にも自社が開発した天体機器制御アプリがあるため、それらを利用すれば一通りの環境が揃う
 (Macは有料、Linux、Windowsは無料)
・多数の機器のドライバがある

●短所
・メーカー関与がほぼ無い
・使用者情報がかなり少ない(INDI以上に人柱必須)
・自社が開発したアプリ以外でサーバ・ドライバをフルに利用出来るクライアントが少ない
(INDIドライバ互換モードも使用できますが、その場合はINDIバージョン1.7に低下)
・サーバ・ドライバの組み込みはWindowsに対応していない(クライアントのみ)



どれも一長一短です。

・ASCOMはドライバ環境構築がWindowsのみ(ASCOMリモートを用いればAlpacaドライバとしてマルチOS対応可能)

・Alpacaはドライバが登場すればマルチOSに対応可能予定(現状はLinuxで有志による配布が少数、Windows、Mac共無し)

・INDIはローカル環境でサーバ・ドライバを使用できるのはLINUX、MACの2択。(クライアントはマルチOS対応)

・IndigoはINDI同様ローカル環境でサーバ・ドライバを使用できるのはLINUX、MACの2択。(クライアントはマルチOS対応)になります。


このように現状ではどこかピースが欠けた状態です。

ASCOMの開発基がAlpacaを発表したので変動があるかと思いましたが当分この状態が続きそうです。

皆さんならどの環境を選びますか?

個人的にはPCを利用する環境構築はどんどん難易度が高くなっているように感じています。(OSのセキュリティ強化(制御にとっての大敵)や、シリアルなど古い規格への対応低下のため複数機器を連動させる環境を作ることが難しいです)

ASIAirのような専用機やドライバ・制御アプリ含め全て自社開発のステラショットなどが一番お手軽かもしれませんね。

追伸
制御をPCなどで行うことは全て自己責任になります。(フリーウェアを利用する場合は特に)
機器も高額ですし、サイズによっては事故の危険もありますのでくれぐれも安全第一で環境構築をおこないましょう。




プロフィール

TーStudio

Author:TーStudio
色々工夫しながら星空を楽しんでいます。
興味あるカテゴリを選択してお楽しみください。

カレンダー
03 | 2024/04 | 05
- 1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 - - - -
カテゴリ
最新記事
最新コメント
月別アーカイブ
アクセスカウンター