ツイッターで知ったRTno(アールティーノ)。早大の菅先生が開発されたミドルウェア。紹介文によると「組み込みマイコンボード「Arduino」を使い,簡単にRTCに対応したデバイスを作るためのライブラリです.」と書かれています。
Link: RTno
Arduinoを組み合わせてFA制御に使えないかな。。。と思ってはいたのですが、いちいちソフトを書くのが大変そう。。。と思いそのままにしていました。ミドルウェアがあるなら話しは別。早速試してみました。
まだインストールしてサンプルを動かした程度です。とりあえず今日は、上記のLinkにしたがって「概要」「ダウンロード」「インストール」「使い方」とやってみました。Macにインストールを試みたときにちょっと修正したところをメモしたいと思います。
0.OpenRTM-aistのmacports版をインストールします。以下の2つのLink先のファイルをDLして同一フォルダ内におき、ターミナルで「sh port_install.sh」とすれば少し時間がかかりますが恐らく問題なくインストールできるはずです。
Link: Portfile (ports.tgz)
Link: インストールスクリプト (port_install.sh)
1.RTno (arduino側のライブラリ)をGithubから取り出しArduino/librariesフォルダ内に入れます。
Link: https://github.com/ysuga/RTno
2.RTnoProxy (PC側の実行ファイル)もGithubから取り出してデスクトップに圧縮ファイルを展開し、ターミナルを開いて以下のようにします。
Link: https://github.com/ysuga/RTnoProxy
cd ysuga-RTnoProxy-274d685(エンター)
make(エンター)
(ここでコンパイルエラーがでます。出なければ改修済みなので以下は無視してください)
vi ./RTnoProxy/SerialPort/SerialPort.cpp
vi上で23行目を#include
から#include に変更します。 make(エンター)
(またエラーが出ます。出なければ改修済みなので以下は無視してください。)
cd RTnoProxy
rtm-config --libs(エンター)
上記コマンド実行後に表示される文字列をコピーします。
vi Makefile
18行目の「LDFLAGS = `rtm-config --libs` -LSerialPort/lib/SerialPort.a」の`rtm-config --libs`の部分をさきほどコピーした文字列で置き換えます。
私の環境の場合は以下のような感じになりました。環境によって異なるのではないかと思います。
LDFLAGS = -L/opt/local/lib -export-dynamic -arch x86_64 -L/opt/local/lib -l omniORB4 -lomnithread -lomniDynamic4 -lRTC -lcoil -LSerialPort/lib/SerialPor t.a
で、上記の-export-dynamicの前にハイフンをもう一つ追加して--export-dynamicとします。さらに「-LSerialPort/lib/SerialPort.a」の「-L」を取っちゃいます。
make(エンター)
これでビルドが成功するはずです。
cd ..
make(エンター)
またエラーが表示されるはずです。RTnoProxyと同様のことをDataPortTestにも行います。ここは省略。ちょっと面倒ですがやっていることは単純です。
あとは一番上のリンクに戻って「使い方」のページにしたがって動かしてみます。
ちょっとはまったのはRT System Editor。OpenRTM-aistのツールのページからMacOSX用全部入りをDLします。展開してEclipse.appを実行したのですが、RTC Builderは表示されるけどRT System Editorが表示されない。。。いつも使っているworkspaceを利用したのですが、workspaceを新しい場所に設定すると出てきました。
ソフトウェアを部品化してグラフィカルエディタ上に表示し、部品のポート同士を結線してプログラミングする。。。何やら懐かしい感じがします。時間があればオリジナルの部品でも作ってみたいですね。ゼミ生にやってもらおうかな?状態変化検知部品を作ってイベント駆動開発ができれば、FAっぽいものが視覚部品ベースで開発できると楽しいかも?