ロボット、千葉ロッテマリーンズについていいかげんなことを書きます。
×
[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。
考えた結果、ubilinuxを使う事にしました。
インストールの方法は以下の通りです。
あと仕様なのかどうかはわかりませんが、再起動すると無線LANがつながらなくなっていました。仕方ないのでシリアル通信でログインしてifup wlan0を入力したらつながるようになりましたけど。
OpenRTM-aist-Pythonのインストール手順は前回述べた通りですが、C++版のインストールではuuidが必要になるので、
sudo apt-get install uuid-dev
としてインストールしておいてください。
OpenRTM-aistは解凍したフォルダに移動して、
target_link_libraries(${PROJECT_NAME}Comp ${OPENRTM_LIBRARIES})
↓
target_link_libraries(${PROJECT_NAME}Comp ${OPENRTM_LIBRARIES} -lmraa)
みたいに変更してください。
今回はEdison上でビルドしましたけど、あまり好きなやり方ではないなあ。
僕はLinuxで開発するときはCode::Blocksを使うようにしているので、統合開発環境を使わないと言う事自体にあまり慣れていません。多分、世の中にはviでソースコードを編集する剛の者もいるのでしょうけど、正直僕は遠慮したいです。
色々実験してみたのですが、今一アイデアが湧いてきません。
具体的にはラジコン用サーボモータの制御、モータドライバICでのモータ制御、温度センサ、人感センサ、赤外線リモコン受信モジュールで計測、LCDで表示等をやったのですが、別にArduinoでもできるからなあ。ちなみに何でこれらの実験をしたかと言うとたまたま手元にあったからです。
Edisonの用途を色々調べていく中で一番面白いと思ったのはこれです。
バトルドームみたいな高速に玉が動く玩具で遠隔操作が出来るのかは少し疑問ですが、非常に発想が素晴らしいと思います。
こういうの見ると、やはり無駄は美しいものだと思うのですよ。「誰が得するの?」とつい思ってしまうようなものはどうしても心惹かれてしまいます。
僕も以前ドラえもんバトルドームの3Dゲームを作っていた事があるので興味があります。
だんだん黒歴史っぽくなってきましたが。
Edisonで色々実験してみて分かった事は、高性能すぎて用途が見当たらないと言う事です。さすがにマイコン代わりに使うには値段が高いですし、高度な使い方をしようと思ったら僕の技術が追いつかないと、どちらにも転べない感じになってきました。
もう少し考えてみます。
にほんブログ村のロボットのカテゴリから
全然人が来ない・・・
インストールの方法は以下の通りです。
- ubiliniuxをダウンロードして適当な所に解凍する
- dfu-util.exeを入手してubilinuxを解凍したフォルダにコピーする
- flashall.batを起動後、EdisonのJ16とPCを接続する
あと仕様なのかどうかはわかりませんが、再起動すると無線LANがつながらなくなっていました。仕方ないのでシリアル通信でログインしてifup wlan0を入力したらつながるようになりましたけど。
OpenRTM-aist-Pythonのインストール手順は前回述べた通りですが、C++版のインストールではuuidが必要になるので、
sudo apt-get install uuid-dev
としてインストールしておいてください。
OpenRTM-aistは解凍したフォルダに移動して、
./configure
make
make install
と入力して1時間ほど放置してください。
あと自作のRTCでmraaのライブラリを使うときはsrcのCMakeLists.txtを、と入力して1時間ほど放置してください。
target_link_libraries(${PROJECT_NAME}Comp ${OPENRTM_LIBRARIES})
↓
target_link_libraries(${PROJECT_NAME}Comp ${OPENRTM_LIBRARIES} -lmraa)
みたいに変更してください。
今回はEdison上でビルドしましたけど、あまり好きなやり方ではないなあ。
僕はLinuxで開発するときはCode::Blocksを使うようにしているので、統合開発環境を使わないと言う事自体にあまり慣れていません。多分、世の中にはviでソースコードを編集する剛の者もいるのでしょうけど、正直僕は遠慮したいです。
色々実験してみたのですが、今一アイデアが湧いてきません。
具体的にはラジコン用サーボモータの制御、モータドライバICでのモータ制御、温度センサ、人感センサ、赤外線リモコン受信モジュールで計測、LCDで表示等をやったのですが、別にArduinoでもできるからなあ。ちなみに何でこれらの実験をしたかと言うとたまたま手元にあったからです。
Edisonの用途を色々調べていく中で一番面白いと思ったのはこれです。
バトルドームみたいな高速に玉が動く玩具で遠隔操作が出来るのかは少し疑問ですが、非常に発想が素晴らしいと思います。
こういうの見ると、やはり無駄は美しいものだと思うのですよ。「誰が得するの?」とつい思ってしまうようなものはどうしても心惹かれてしまいます。
僕も以前ドラえもんバトルドームの3Dゲームを作っていた事があるので興味があります。
だんだん黒歴史っぽくなってきましたが。
Edisonで色々実験してみて分かった事は、高性能すぎて用途が見当たらないと言う事です。さすがにマイコン代わりに使うには値段が高いですし、高度な使い方をしようと思ったら僕の技術が追いつかないと、どちらにも転べない感じになってきました。
もう少し考えてみます。
にほんブログ村のロボットのカテゴリから
全然人が来ない・・・
PR
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アドレスを調べてください。
そして問題のomniORB、omniORBpy、OpenRTM-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を用意してコピーします。
とりあえずテスト用RTCはこれを使いました。
そして起動してRTシステムエディタでアクティブにすると動作している事が確認できます。
ソースコードを見てもらえれば分かると思いますが、LEDを点滅させています。面倒なのでその様子は載せませんけど。
Edisonを終了するときはshutdown -h nowと入力してください。いきなり電源を引っこ抜いたりはしない方が良いとからしいです。
多分C++版でも動作可能だと思うので、誰か実験してください。
できればクロスコンパイルの方法まで説明して頂けるとありがたいです。
にほんブログ村のロボットのカテゴリから
全然人が来ない・・・
買ってとりあえず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アドレスを調べてください。
そして問題のomniORB、omniORBpy、OpenRTM-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++版でも動作可能だと思うので、誰か実験してください。
できればクロスコンパイルの方法まで説明して頂けるとありがたいです。
にほんブログ村のロボットのカテゴリから
全然人が来ない・・・
またrtc.confの設定用GUIを更新しました。
ファイルを保存すると自動的に同じフォルダにバッチファイルを作成します。
それを実行すると作成した設定ファイルを読み込んだrtcdを起動できます。
projectsというフォルダにサンプルがありますが、つまりprojectsに適当にフォルダを作って設定ファイルを保存するとバッチファイルも作成されるので、それを実行すれば設定したRTCが起動できます。
とは言っても配布できるような仕様にするつもりはなく、あくまでrtc.conf編集のためのツールなのでいらない機能だったかもしれないです。
例えば前やった実験みたいに同一プロセスで起動したRTC同士の通信の時間を計測したいとか、自作した実行コンテキストの動作確認をしたいと言った時に、rtc.confをテキストエディタで開いて編集するのは面倒なのでこれを使えば楽かもしれないですね。
にほんブログ村のロボットのカテゴリから
全然人が来ない・・・
ファイルを保存すると自動的に同じフォルダにバッチファイルを作成します。
それを実行すると作成した設定ファイルを読み込んだ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月に公開しただけです。しばらく休むって言ったのでちょっと間をおいて公開しようと思っていたらおかしな事になってしまいました。これからは気を付けます。
にほんブログ村のロボットのカテゴリから
全然人が来ない・・・
一応ここからダウンロードできます。
全くそんな要望はなかったのですが、自分で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++版も作りたいと思います。
作ってみてから気がついたのですが、あまり需要なさそうですね。
にほんブログ村のロボットのカテゴリから
全然人が来ない・・・
と言うか僕ぐらい記憶力が悪いと何の設定項目があったかを忘れます。
なのでGUI上の操作で簡単にできないかと思い、以下のソフトウェアを作りました。
単純にGUIで操作できるようにしただけなのであまり楽にはなってないかもしれないです。
ちなみにここからダウンロードできます。
動作にはPyQt4が必要です。
起動して最初の状態では以下のようになっていると思います。
とりあえずNewを選んで新規作成してください。
すると以下の画面が表示されます。
まあほとんどの項目が動的には反映されないので直接編集するのと大差はないのですが、RTCの起動だけは動的に行う事ができます。
RTコンポーネント読み込みボタンを押してMyFirstComponentフォルダのMyFirstComponent.pyを開いてください。ちなみにサンプルプログラムを作るのが面倒だったのでSysML-RTMのチュートリアルで作ったやつをそのまま同梱してあります。
RTシステムエディタで確認するとRTCが起動している事が分かると思います。
ちなみにスタート時に起動するコンポーネント名から先ほど起動したコンポーネントを選択して起動ボタンを押すともう一つ起動します。
先ほどの手順でRTCを起動するとあらかじめロードしておくモジュール、モジュール探索パスも自動的に設定されます。
ちなみに独自の実行コンテキストも似たような手順で設定するとロードするモジュール、パスが自動的に設定できますが、再起動しなければ反映はされません。
設定が終わったらFile→Saveで出来れば同じフォルダにコンフィギュレーションファイルを保存してください。相対パスでモジュールの探索パスを設定しているので不具合が生じる可能性があります。
今の所Pythonのみしか作っていません。
要望があればC++版も作りたいと思います。
作ってみてから気がついたのですが、あまり需要なさそうですね。
にほんブログ村のロボットのカテゴリから
全然人が来ない・・・