PythonによるRTコンポーネント講座(その3)

周期的に文字出力


先に言っておきます。早稲田大学の菅氏のサイトからパクッてます。警告が来たら即消します。まあ、僕のサイトが万が一にも見てもらえる可能性はないとは思いますが。サンプルプログラムはここです。
えーとですねえ。C++だろうとPythonだろうとやることはほとんど同じです。
Eclipseを起動してください。最初にようこそとかいうのが出ますが上の×押して消してくださって結構です。次に右上のパースペクティブを開くというところからその他をクリックしてください。


それからRTCLinkをクリックします。その後、左上のファイルからOpen New Template Editorをクリックします。真ん中上にTemplate Editorが出ます。

コンポーネントを作成します。Template Editorの設定は

Programming language selection Python
モジュール定義 Module name PeriodicConsoleOut
Module description Periodic Console Out Component
Module version 0.0.1
Module vender あなたの名前
Module category TEST
Component type COMMUNICATIVE
Component's activity type PERIODIC
Number of maximum instance 1
Output directory 適当なフォルダを指定してください.

とします。見ての通りパクッてます。C++をPythonに変えただけの手抜きです。警告が来たらこのページは消えます。
これでGenerateすると指定したフォルダに

PeriodicConsoleOut.py
README.PeriodicConsoleOut

が作られます。

あとはプログラムの編集です。94〜96行目の#を消してください。そして以下のようにしてください。

def onExecute(self, ec_id):
    print "Hello RT Component!"
    return RTC.RTC_OK

まだ、実行はしません。以下の内容のrtc.confを同じフォルダに作成してください。これで1秒間に10回onExcuteが実行されます。

corba.nameservers: localhost:2809
exec_cxt.periodic.rate:10

ようやく実行します。C:\Program Files\OpenRTM-aist\0.4\binのrtm-namingを実行してください。
そのあと、Eclipseの右上のAdd name Serverをクリックします。

ネームサーバのアドレスにはlocalhost:2809と入力します。そのあとPeriodicConsoleOut.pyをダブルクリックして実行します。これで、以下のようになります。

このあと、ファイルからOpen New System Editorをクリックして、PeriodicConsoleOut0|rtcをドラッグしてエディタまでもっていきます。

あとはエディタのPreiodicConsoleOut0を右クリックしてActiveを選択すると周期的に文字が出力されます。終わるときは再び右クリックしてDeactiveして、文字を出力したウインドウの×を押すだけです。右クリックでExit押しても終了しないのは僕だけでしょうか?

あと、vista使ってる人でできない人がいたらここに書いてることをしたらできるかもしれませんし、パソコンが壊れるかもしれません。


PythonによるRTコンポーネント講座に戻る

トップページへ戻る