下調べ
今回は、FreeHILSに使えそうなパーツについて、ざっくりと情報を集めてみました。「HILSシステムのコストダウンの可能性検討」をされている方や、「モデルベース開発に関する情報は何でも集めて、シミュレーション関連に強くなりたい!」と考えていらっしゃる方にとっては、面白い話になるかと思います。
さて、Scicosと、ScicosでHILSっぽい処理が出来るようにしてあるものが、既に存在するという事は知っていました。ここにあるPDFファイルの中で、Scicosを使ってリアルタイムシミュレーションをするための一連の流れがレポートされているからです。(しかし、FreeHILSの要件を全て満たしてくれるかどうかは分かりません。)
ですが、レポートは流し読みしただけで、具体的なツールチェーンについてはまだ読んでいませんでした。ですから、具体的にどんなモジュールが必要で、それらのライセンスはどうなっているのか?という所を調べることにしました。
理想の構成は、こうでした。一般的なHILSはこんな感じが多いです。
しかし、既存のツールを組み合わせると、こうなってしまいそうです。Linux上でGUIを操作しないといけない、というのがやっかいです。
FreeHILSは、Scicosと、あとRTAI-Labというツールがあればベースが出来そうです。しかし、このRTAI-LabがLinuxベースなのです。ですが、今のところは気にしない事にしましょう。
Scicos
Scilab / Scicosは、MATLAB/Simulinkに似たモデリングツールです。正直、MATLAB/Simulinkと比べると見劣りする点が多々あります。しかし、なんといってもこれはタダです。ですから、Scicosベースで進めましょう。
まず調べて行くと、Scilab、Scicosという名前の他に、ScicosLabという名前まで出てきます。ここでかなり混乱してしまいました。一体なにがどうなっているのやら・・・?
実は、上記のイメージの通り、Scilabの開発がVer4.13からフォークしてしまった模様です!
両方とも、Scilab+Scicosの配布をしていますが、中身が全然ちがってしまっているようです。いつかマージしてくれればいいのですが、難しいかも分かりません。というのも、フォークした理由がどこにも書かれていませんから・・・学者の世界って結構ドロドロしてますしね・・・
とにかく、どちらを使うか選択しないといけません。そこで、色々と調べてみました。すると、INRIA版は『GTK+』ベース、Digiteo版は『Java』ベースっぽい、という情報が得られました。
そこで、なじみのあるC++をつかうべく、INRIA版を使用する事とします。
ライセンスは、『Scilab License』というものです。修正、再配布などは自由ですが、INRIAの著作権表示が必要なことと、派生製品もすべてScilab Licenseを適用しなければならない、という制約があります。
FreeHILSが完成したら、ソースコードから何から全て公開します。ですから、ライセンスの問題はなさそうです。
もう1点、ちょっと興味を引かれる情報を見つけました。Scicosでは、どうやらModelica言語が扱えるようになっている模様です。うまくすると、物理モデリング環境も構築できる可能性があります。
RTAI
Scicosをリアルタイム化するために、もう1つモジュールが必要です。それは、『RTAI-Lab』というツールです。(リンク先をちょっと見てみてください。かなり本格的なHILSシステムっぽい画像が載っています)
このRTAI-Labは、『RTAI』というツールの配布パッケージに含まれています。このRTAIというのは、Linuxをリアルタイム化するツールです。同じような製品にRTLinuxというものがありますが、それとは別物です。
このモジュールさえあれば、Linuxをリアルタイムにしつつ、Scicosモデルをリアルタイム実行する事が出来そうです。
ただし残念な事に、このツールはLinux上でしか動作しないようです。出来れば全てをWindows上で動かしたいですから、これは何とかしたいところです。
逆に、うれしい誤算もありました。RTAIは、Scicosだけではなく、MATLAB/Simulinkにも対応しています。(Linux版のSimulinkですが!)。ひょっとすると、Scicos、Simulink、どちらにも対応するようなFreeHILSが出来るかも分かりません。
ライセンスを確かめようと、RTAIのホームページをさんざん探し回ったのですが、全然見つかりません。困ったな・・・と思いつつ、RTAIのソースコードを見てみたら、なんとそこに書いてありました!RTAIは、GPLのようです。ですから、やぱりフリーで使用でき、再配布も問題なさそうです。
ツールチェーン
まだざっくり調べただけですから、何が何やら分かりません。(なにせ動かしてもいませんから。)
とりあえず想像するに、次のようなツールチェーンになっていそうです。
今後の課題
今回ざっくりと調査を行いました。その結果、次のような課題が見つかりました。
1.RTAI-LabがLinuxでしか動かない。Windows上ですべて操作したいので、出来れば移植したい。
2.I/Oドライバーは、Comediという規格に従って書かないといけない。このComediというのは、LinuxでI/Oインタフェースを扱うための規格らしいのです。ですが、詳しい事は全然知りません。ですから、ちゃんと調べておかないといけません。
3.ScicosLabの構造について、きちんと調べたい。というのは、MATLABの構造なら良く知っているのですが、Scicosの構造がどうなっているのかはさっぱり分かりません。オールインワンのインストーラパッケージを作るには、まずScicosLabの構造がどうなっているのかしっかり調べる必要があります。
4.RTAIを適用したLinuxディストリビューションを作りたい、もしくは探したい。というのは、Linuxをインストールしてからパッチを当てて・・・という作業をユーザーにさせるのは、目指す所ではありません。CDを入れたら自動でインストール!というくらいの所を目指したいと思っています。
5.RTAIの動作原理をしっかりと理解したい。
次回
とにもかくにも、まずは動かしてみないと始まりません。そこで、余っているPCにLinuxをインストールします。そしてRTAIやScicosLabもインストールします。それがうまくいったら、とにかく一通り動かしてイメージをつかんでみます。というわけで、次回はスクリーンショットだらけになりそうです。