忍者ブログ
ロボット、千葉ロッテマリーンズについていいかげんなことを書きます。
[23]  [24]  [25]  [26]  [27]  [28]  [29]  [30]  [31]  [32]  [33
×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

Edison Kit for Arduinoを買いました。
買ってとりあえずOpenRTM-aist-Pythonをインストールしてみたのですが、色々と手こずりました。

まずEdisonをArdiunoボードに取り付けるときに意外に力を入れないと取り付けられませんでした。いやそこかよって感じですがね。

reboot otaとコマンドを打ってファームウェアアップデートをしたつもりだったのですが、何故か1回やっただけではアップデートされていませんでした。それでアップデートできていたと思っていたので先頭の文字が入力できないなあとか不思議に思いながら数時間作業していました。今考えると相当マヌケだなあ。cat /etc/versionで確認して見るとアップデートできてないやんけと気づいて、もう一回reboot otaと入力するとアップデートできていました。Pythonでプログラム作ろうとしてmraaがないとかエラーが出ていたのですが、アップデートするとちゃんとインポートできていました。いやでもアップデート前にどっかのディレクトリにmraaはあったような気がするのですが、終わった事なので気にしない事にします。

それからやたらとインストールしなければならないものが多い。ドライバとかドライバとかドライバとか。

とりあえずPCには以下のソフトウェアをインストールしてください。

FTDI CDMドライバー
Intel Edisonドライバー
Tera Term(PuTTY等でも可)

それからUSB-microBケーブルでEdisonのJ16と接続後、Edisonに以下のファイルを解凍してYocto Linuxをインストールします。

Edison Yocto


そしてJ3に差し替えてTera Termでシリアル接続してください。
まずは先ほどのようにreboot otaと入力してください。必ずcat /etc/versionで最新版かどうか確認してください。次にconfigure_edison --setupで各種設定をしてください。


SSHで接続したいのでIPアドレスを調べます。ifconfigでIPアドレスを調べてください。



そして問題のomniORBomniORBpyOpenRTM-aist-Pythonのインストールをやります。
とりあえずomniORB-4.1.7.tar.bz2、omniORBpy-3.7.tar.bz2、OpenRTM-aist-Python-1.1.0-RC1.tar.gzをscpでEdisonにコピーして解凍しておいてください。

まずは解凍したomniORBのフォルダに移動して以下のコマンドを入力してください。



mkdir build
cd build
../configure
make
make install


数十分かかると思います。
次にomniORBpyのフォルダに移動して同じコマンドを入力します。

最後にOpenRTM-aist-Pythonのフォルダに移動して以下のコマンドを入力します。

python setup.py build
sudo python setup.py install



これで動作確認しようとテスト用のRTCを起動しようとするのですが、何故かomniORBというモジュールはないとかとエラーが出ます。

何故かと思って調べてみると、OpenRTM-aist-Pythonがインストールされたのは/usr/lib/python2.7/site-packagesで、omniORBがインストールされているのは/usr/local/lib/python2.7/site-packagesとなっていました。ひょっとしてConfigureのオプションで設定できたのかとも思いましたがよくわからないので

export PYTHONPATH=$PYTHONPATH:/usr/local/lib/python2.7/site-packages

としてパスを通しました。詳しい人は教えてください。

後は以下の内容のrtc.confを用意してコピーします。

corba.nameservers: IPアドレス
exec_cxt.periodic.rate: 1


IPアドレスはネームサーバーを起動しているPCのものを記述しておいてください。

とりあえずテスト用RTCはこれを使いました。


そして起動してRTシステムエディタでアクティブにすると動作している事が確認できます。




ソースコードを見てもらえれば分かると思いますが、LEDを点滅させています。面倒なのでその様子は載せませんけど。



Edisonを終了するときはshutdown -h nowと入力してください。いきなり電源を引っこ抜いたりはしない方が良いとからしいです。



多分C++版でも動作可能だと思うので、誰か実験してください。
できればクロスコンパイルの方法まで説明して頂けるとありがたいです。 





にほんブログ村 科学ブログ ロボットへ
にほんブログ村のロボットのカテゴリから
全然人が来ない・・・

人気ブログランキングへ
PR
またrtc.confの設定用GUIを更新しました
ファイルを保存すると自動的に同じフォルダにバッチファイルを作成します。
それを実行すると作成した設定ファイルを読み込んだrtcdを起動できます。
projectsというフォルダにサンプルがありますが、つまりprojectsに適当にフォルダを作って設定ファイルを保存するとバッチファイルも作成されるので、それを実行すれば設定したRTCが起動できます。

とは言っても配布できるような仕様にするつもりはなく、あくまでrtc.conf編集のためのツールなのでいらない機能だったかもしれないです。
例えば前やった実験みたいに同一プロセスで起動したRTC同士の通信の時間を計測したいとか、自作した実行コンテキストの動作確認をしたいと言った時に、rtc.confをテキストエディタで開いて編集するのは面倒なのでこれを使えば楽かもしれないですね。







にほんブログ村 科学ブログ ロボットへ
にほんブログ村のロボットのカテゴリから
全然人が来ない・・・

人気ブログランキングへ
rtc.confの設定用GUIのC++版を作りました。
一応ここからダウンロードできます。
全くそんな要望はなかったのですが、自分でPython版を使っていて意外に使えると思ったのでC++版も作ってしまいました。テキストファイルに直接記述するのは面倒ですからね。
使い方はPython版と同じです。ちなみにWindowsのみの対応です。
C++/release/SettingRTCConf.exeを実行してください。
Python版はPython/SettingRTCConf.pyに移動しました。


それからPython版もですけど少し改良しました。
まず、RTシステムエディタ等でRTCのコンフィギュレーションパラメータを変更した後にコンフィギュレーションファイルを保存するとコンポーネントの設定ファイルにその値が保存されるようにしました。まあRTCをアクティブにしないとコンフィギュレーションパラメータに反映されないので多少面倒ではあるのですが。一応RTシステムエディタで変更しただけで反映できるようにこちらで変更する事もできますが別の問題が発生しそうなのでやめておきます。


それから以前作成した実行順序設定可能な実行コンテキストに関する項目も設定できるようにしました。


GUIを起動したままでRTCを動作させるのが嫌な人はrtcdを持ってきて起動してください。Python版はC:\Python26、C++版はC:\Program Files\OpenRTM-aist\1.1\binとかにあると思います。


と言うか他の人はrtc.confをどうやって編集しているのですかね?




そう言えばちょっと前に記事でとっくに年が明けてるのに来年とか書いているのをおかしいと思った人がいるかもしれませんが、去年の年末に書いた記事を2月に公開しただけです。しばらく休むって言ったのでちょっと間をおいて公開しようと思っていたらおかしな事になってしまいました。これからは気を付けます。







にほんブログ村 科学ブログ ロボットへ
にほんブログ村のロボットのカテゴリから
全然人が来ない・・・

人気ブログランキングへ
rtc.confを変更したりするのが何かめんどくさい
と言うか僕ぐらい記憶力が悪いと何の設定項目があったかを忘れます

なのでGUI上の操作で簡単にできないかと思い、以下のソフトウェアを作りました





単純にGUIで操作できるようにしただけなのであまり楽にはなってないかもしれないです
ちなみにここからダウンロードできます
動作にはPyQt4が必要です

起動して最初の状態では以下のようになっていると思います




とりあえずNewを選んで新規作成してください


すると以下の画面が表示されます


まあほとんどの項目が動的には反映されないので直接編集するのと大差はないのですが、RTCの起動だけは動的に行う事ができます


RTコンポーネント読み込みボタンを押してMyFirstComponentフォルダのMyFirstComponent.pyを開いてください。ちなみにサンプルプログラムを作るのが面倒だったのでSysML-RTMのチュートリアルで作ったやつをそのまま同梱してあります。



RTシステムエディタで確認するとRTCが起動している事が分かると思います。





ちなみにスタート時に起動するコンポーネント名から先ほど起動したコンポーネントを選択して起動ボタンを押すともう一つ起動します。
先ほどの手順でRTCを起動するとあらかじめロードしておくモジュール、モジュール探索パスも自動的に設定されます。


ちなみに独自の実行コンテキストも似たような手順で設定するとロードするモジュール、パスが自動的に設定できますが、再起動しなければ反映はされません。




設定が終わったらFile→Saveで出来れば同じフォルダにコンフィギュレーションファイルを保存してください。相対パスでモジュールの探索パスを設定しているので不具合が生じる可能性があります。

今の所Pythonのみしか作っていません。
要望があればC++版も作りたいと思います。


作ってみてから気がついたのですが、あまり需要なさそうですね。









にほんブログ村 科学ブログ ロボットへ
にほんブログ村のロボットのカテゴリから
全然人が来ない・・・

人気ブログランキングへ
SysML-RTMを使ってみたのでその感想を書きます。
とりあえずこのページのチュートリアルを3つやってみました。

どうにもこのツールに関して僕は誤解をしていたらしく、RTCのテンプレートまで生成してくれると思っていたのですがRTC プロファイルまでの生成みたいです。
RTCBuilderでの読み込み、生成が地味に面倒ですね。

一見しただけでは使い方が覚えられないと言うか、僕みたいな初心者には難しい印象です。コンポーネント名でシステム復元のエラーが出るとか、サービスポートを使用する際にIDLパスの設定が必要となるあたり、どうにもこのツールとRTCBuilder・RTSystemEditorとの連携が今一つな感じがします。



何だか文句みたいな事ばっかり言ってしまいましたが、かなり便利なツールだと思います。
ただ現時点では初心者には敷居が高いかな?とは思います。
少なくとも僕は使いこなすにはそれなりに時間がかかりそうです。



前も似たような事を言ったとは思いますが、ブロック定義図等で作成したブロックを何でもかんでもRTCに割り当てるのは僕は間違いだと思います。RTCの粒度を小さくしすぎるかもしれないです。設計図はよく出来ているのに完成したものがヘンテコだったりすると、見ていて悲しくなります。









にほんブログ村 科学ブログ ロボットへ
にほんブログ村のロボットのカテゴリから
全然人が来ない・・・

人気ブログランキングへ
カレンダー
12 2025/01 02
S M T W T F S
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
フリーエリア
最新CM
[08/31 ysuga]
[08/31 Nobu]
[08/31 ysuga]
[12/11 Nobu]
[12/11 Kanamura]
最新TB
プロフィール
HN:
Nobu
年齢:
36
性別:
男性
誕生日:
1988/09/22
職業:
あれ
趣味:
妄想、自堕落
バーコード
ブログ内検索
P R
カウンター
忍者ブログ [PR]