Category

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が終わるものなのかどうかも定かではありません。。。がんばらなくっちゃ!