FreeHILS フェーズ1経過報告
FreeHILS フェーズ1の経過報告です。
本当は、フェーズ1を完了させておきたかったのですが無理でした。仕事の方で色々と新企画を練っていまして、そちらに土日の時間を吸い取られてしまったせいもあります。しかし、技術的に困難な問題がいくつも持ち上がった事が大きいです。まぁ、ボチボチがんばります。
完了した事
- Windows上でSicoslabモデルをコンパイルすると、Linuxマシンに自動転送&ビルドする
- Windows上でSimulinkモデルをコンパイルすると、Linuxマシンに自動転送&ビルドする
- ScicoslabでRTAI-Labを使用する際の不具合をいくつか修正
これからやる事
- 転送&ビルドアプリに、もっと遊び心を加える
- 各種ライブラリのビルドにも対応する
- RTAI-Lab for Windowsから、直接Linuxマシン上のモデルを起動できるようにする
- RTAI-Labが元々もっている、いくつかの不具合を修正する
せっかくなので、現状のスクリーンショットを掲載します。
Scicoslabモデルのコンパイル
モデルをコンパイルしてビルドする。ただそれだけの事をやってみます。
図1 単純なモデル
こんなモデルをWindows上で作ってみました。以前は、Linux上のScicoslabの画面をWindowsに飛ばして実行しました。しかし、今回はScicosLabのWindows版を使用し、Windows上で全ての作業を行っています。
このモデルをビルドするには、RTAIメニューを使用します。
図2 RTAIのコード生成メニュー
すると、コード生成フォルダの指定画面が出てきます。
図3 コード生成プロパティ画面
ここで「OK」をクリックすると、コード生成が開始します。それが終わると、以下のアプリが自動的に起動します。(まだ作りかけなので、殺風景ですね。これから、もっと色気を足していきます。)
図4 FreeHILSによるコード転送&ビルド
ここで、LinuxマシンのIPアドレスや、ユーザー名、パスワード等を指定します。ディレクトリは、Windowsのフォルダ名をもとに自動的に設定されますが、手で修正することもできます。
OKをクリックすると、転送&ビルド完了です。
図5 FreeHILSによるコード転送&ビルド 実行結果
いろいろ警告も出ていますが、とりあえずビルドは正常終了しています。
ここまで、ユーザーはGUIのいわれるままに項目を入力し、OKボタンをクリックするだけでした。ですから、マニュアルを読まなくても使えるのではないかと思います。
さて、いよいよモデルを実行します。本来なら、Windows側から自動的にLinux側のモデルを起動したいのですが・・・まだその機能は作っていません。仕方が無いので、SSH経由で手で起動します。
図6 SSH経由でモデル実行
そして、以前つくったRTAI-Lab for Windowsで接続すると・・・
図7 RTAI-Lab for Windowsで実行
たしかに動作します。これで、「Windows上でモデリング&リアルタイムLinux上で実行」という作業が、まがりなりにも出来るようになりました。
Scicoslabモデルのコンパイル エラー編
市販のHILSを使っていてちょっと不満な点がありました。それは、コンパイルエラーが発生した際、何が原因かよく分からないのです。「エラー!」とだけ言われても、何がどう悪いのやら・・・
そこで、FreeHILSではエラーの自動診断機能をつけてみました。モデルのビルド時に、たとえばありもしないIPアドレスを設定してみましょう。すると、こんなメッセージが出ます。(今は英語表記ですが、あとでちゃんと日本語対応もします)
図8 コンパイル時のエラー
「いやー、失敗しちゃった。原因たしかめてみる?」と聞かれます。そこでOKをクリックすると、自動診断の開始です。
図9 エラー診断結果
「pingしたけど応答ないねー。電源入ってる?ケーブルはつながってる?」というメッセージが表示されます。そこで気がつくわけです。「あぁ、こんなIPのマシン無いわ」と。
ほかにも、SSHが動いていないっぽい、ユーザーが存在しないっぽい、パスワードが間違っているっぽい、など色々な問題を自動的に認識してくれます。
Simulinkモデルも動きます
Scicoslabだけでなく、Simulinkモデルも動かせます。こんなモデルを作って、RTWビルドするとScicoslabと同じアプリが起動し、コンパイル&ビルドをしてくれます。(RTAIブロックに色気がないですね。あとで、もっとキレイな見た目にします)
図10 SimulinkによるRTAI-Labモデル
RTAI-Labで動かしてみると・・・
図11 Simulinkモデルのリアルタイム実行画面
ちゃんと動きます。パラメーターの変更もできます。
図12 パラメータマネージャー
ここで、Sine Waveブロックの「Amplitute」プロパティを変更してみましょう。すると、実行中のモデルにすぐに適用されます。
図13 振幅がおおきくなった
こんな感じで、ひととおり使えるようになりました。
フェーズ2では、スライダーなど操作系パーツでもってブロックプロパティを変更できるようにしましょう。そうすれば、市販のHILSと似たような操作感になるでしょう。
フェーズ1は、まだまだ終わらない
フェーズ1で新規に作る機能としては、見た目を良くする、Windows側からLinux側のモデルを起動できるようにする、など大きな課題はありません。
しかし、そもそもRTAI-Labが持っていると思われる不具合をいくつも見つけています。それらをきっちり修正した上でないと、リリースする気にはなれません。かなり根が深そうな問題もあり、修正するのは大変そうです。
この不具合修正&テスト&テスト&テストという作業が、相当時間がかかりそうなので、今年度中にフェーズ1が終わるものなのかどうかも定かではありません。。。がんばらなくっちゃ!