ロボット、千葉ロッテマリーンズについていいかげんなことを書きます。
×
[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。
Intel EdisonにOpenRTM-aist-1.1.1-Releaseをインストールしようとしたのですが、少し引っかかる部分がありました。
DoxygenをインストールせずにconfigureでMakefileを生成しようとするとエラーが出ます。
それで--without-documentというオプションを付けなさいと言われるので付けてみたのですがエラーが消えません。
変だと思ってヘルプを見てみると--without-doxygenとなっていました。
何だか地味なミスだなあ。
複合コンポーネント作成支援ツール、ビルド自動化ツールのマニュアルを作成しました。
ここで読むことができます。まだ不十分なので今後追記はすると思います。
PyQtがインストールされていない場合もあると思うのでpy2exeで実行ファイルも作成しました。
これで多少は使いやすくなったかもしれないです。
以前作成したロボットアームのGUIを更新しようと思ったのですが、Ogre3DがVisual Studio 2012までしか対応していないのでOgre3Dが更新されるまで待つことにしました。
まあこちらでビルドすることもできるのでしょうけど、面倒くさいですからね。
VC++2010でビルドするのもOpenRTM-aistをVC++2010対応版をインストールしなければならないのでやりたくないです。
こちらでPython2.6のライブラリを使ってビルドしたので、Python2.6にOpenRTM-aistをインストールしておく必要があります。
OpenRTM-aist-PythonがPython2.7にも対応したのでこちらもバージョンアップしたいのですが、Ogre3Dが更新されるまでは保留にしておきます。
一応CMakeLists.txtを作成しておいたので、そちらでビルドできる人はそうしてください。
にほんブログ村のロボットのカテゴリから
全然人が来ない・・・
DoxygenをインストールせずにconfigureでMakefileを生成しようとするとエラーが出ます。
それで--without-documentというオプションを付けなさいと言われるので付けてみたのですがエラーが消えません。
変だと思ってヘルプを見てみると--without-doxygenとなっていました。
何だか地味なミスだなあ。
複合コンポーネント作成支援ツール、ビルド自動化ツールのマニュアルを作成しました。
ここで読むことができます。まだ不十分なので今後追記はすると思います。
PyQtがインストールされていない場合もあると思うのでpy2exeで実行ファイルも作成しました。
これで多少は使いやすくなったかもしれないです。
以前作成したロボットアームのGUIを更新しようと思ったのですが、Ogre3DがVisual Studio 2012までしか対応していないのでOgre3Dが更新されるまで待つことにしました。
まあこちらでビルドすることもできるのでしょうけど、面倒くさいですからね。
VC++2010でビルドするのもOpenRTM-aistをVC++2010対応版をインストールしなければならないのでやりたくないです。
こちらでPython2.6のライブラリを使ってビルドしたので、Python2.6にOpenRTM-aistをインストールしておく必要があります。
OpenRTM-aist-PythonがPython2.7にも対応したのでこちらもバージョンアップしたいのですが、Ogre3Dが更新されるまでは保留にしておきます。
一応CMakeLists.txtを作成しておいたので、そちらでビルドできる人はそうしてください。
にほんブログ村のロボットのカテゴリから
全然人が来ない・・・
PR
実を言うとGitHubのsubmoduleを最近まで使ったことがありませんでした。
いろいろ試していたのですが、その中で根本的な勘違いをしている事に気づきました。
submoduleとはこのサイトに書いてあるとおり、「現在のリポジトリのクローン中に、別のリポジトリの特定のコミットを、サブディレクトリとして参照する」という機能らしいです。
どうにも僕は太字部分を勘違いしたらしく、参照したリポジトリが更新されると勝手にsubmoduleも更新されるものと思っていました。
どうやらこちらで設定しなおす必要があるみたいですね。
GitHub for windowsのGUIでのsubmoduleの追加の方法が分からなかったので、とりあえずGit Shell上でコマンドを入力して追加しています。
まず以下のコマンドでsubmoduleを追加します。
git submodule add https://github.com/Nobu19800/RobotArmController.git RobotArmController
問題はRobotArmControllerというリポジトリを変更した後なのですが、先ほど言ったように自動的には更新されないので以下のコマンドを入力してください。
git submodule foreach 'git checkout master; git pull'
git add RobotArmController
git commit -m "update RobotArmController"
git push origin master
これで更新されるはずです。
Download ZIPをクリックしてダウンロードした場合、submoduleはダウンロードされません。
cloneした場合でも以下のコマンドを入力しないとsubmoduleはcloneされません。
git submodule init
git submodule update
submoduleの中にsubmoduleがある場合もあるので以下のコマンドの方が良いとからしい。
git submodule update --recursive
なんだか凄く面倒くさいなあ。
Windowsだと余計に使いづらい。
自分で作ったコードだったらsubmodueを使わずにそのまま入れた方がましな感じがしなくもないです。
にほんブログ村のロボットのカテゴリから
全然人が来ない・・・
いろいろ試していたのですが、その中で根本的な勘違いをしている事に気づきました。
submoduleとはこのサイトに書いてあるとおり、「現在のリポジトリのクローン中に、別のリポジトリの特定のコミットを、サブディレクトリとして参照する」という機能らしいです。
どうにも僕は太字部分を勘違いしたらしく、参照したリポジトリが更新されると勝手にsubmoduleも更新されるものと思っていました。
どうやらこちらで設定しなおす必要があるみたいですね。
GitHub for windowsのGUIでのsubmoduleの追加の方法が分からなかったので、とりあえずGit Shell上でコマンドを入力して追加しています。
まず以下のコマンドでsubmoduleを追加します。
git submodule add https://github.com/Nobu19800/RobotArmController.git RobotArmController
問題はRobotArmControllerというリポジトリを変更した後なのですが、先ほど言ったように自動的には更新されないので以下のコマンドを入力してください。
git submodule foreach 'git checkout master; git pull'
git add RobotArmController
git commit -m "update RobotArmController"
git push origin master
これで更新されるはずです。
Download ZIPをクリックしてダウンロードした場合、submoduleはダウンロードされません。
cloneした場合でも以下のコマンドを入力しないとsubmoduleはcloneされません。
git submodule init
git submodule update
submoduleの中にsubmoduleがある場合もあるので以下のコマンドの方が良いとからしい。
git submodule update --recursive
なんだか凄く面倒くさいなあ。
Windowsだと余計に使いづらい。
自分で作ったコードだったらsubmodueを使わずにそのまま入れた方がましな感じがしなくもないです。
にほんブログ村のロボットのカテゴリから
全然人が来ない・・・
RTCビルド自動化ツール、複合コンポーネント作成支援ツールを更新しました。
ビルド自動化ツールはあまり変わっていないのですが、複合コンポーネント作成支援ツールはパッケージ作成機能を追加しました。
作成したプロジェクトを利用するのにツール本体をインストールしておく必要があったわけですが、それがそもそも良くなかったと思っていたのでツールを入手してなくても動作できるようにしました。
プロジェクトを作成後にパッケージをどこかに作成するだけです。
生成されたフォルダのstart.bat(start.sh)を起動するとRTCの起動、接続、コンフィギュレーションパラメータの設定、複合コンポーネントの作成を行います。
必要なdllがある場合は自分で追加する必要があります。
一応rtcdを動作させるのに必要なdllは自動的にコピーするようにしていますが、配布する場合はライセンスを記述したテキストファイルを付属させるようにしてください。
ここからはCMakeの話です。
CMakeでインストーラーまで作成するにはCMakeLists.txtに以下の記述を追加します。
まあ他にも以下の項目を設定した方が良いとは思いますが、ちょっと試すだけなら上記だけで大丈夫です。
CPACK_PACKAGE_NAME
CPACK_PACKAGE_VENDOR
CPACK_PACKAGE_DESCRIPTION_SUMMARY
CPACK_PACKAGE_VERSION
CPACK_PACKAGE_VERSION_MAJOR
CPACK_PACKAGE_VERSION_MINOR
CPACK_PACKAGE_VERSION_PATCH
CPACK_PACKAGE_INSTALL_DIRECTORY
後はPACKAGEというプロジェクトをビルドするとインストーラーが作成できるみたいです。
あと、cmakeを使えば環境にかかわらず以下のコマンドでビルドができるみたいです。
cmake --build . --config Release --target PACKAGE
自動的にvcvarsall.batとかVsDevCmd.batを見つけてMsBuildを使っているのだろうか?
仕組みはよく分かりませんけどそれでできるのであればそれでいいです。
にほんブログ村のロボットのカテゴリから
全然人が来ない・・・
ビルド自動化ツールはあまり変わっていないのですが、複合コンポーネント作成支援ツールはパッケージ作成機能を追加しました。
作成したプロジェクトを利用するのにツール本体をインストールしておく必要があったわけですが、それがそもそも良くなかったと思っていたのでツールを入手してなくても動作できるようにしました。
プロジェクトを作成後にパッケージをどこかに作成するだけです。
生成されたフォルダのstart.bat(start.sh)を起動するとRTCの起動、接続、コンフィギュレーションパラメータの設定、複合コンポーネントの作成を行います。
必要なdllがある場合は自分で追加する必要があります。
一応rtcdを動作させるのに必要なdllは自動的にコピーするようにしていますが、配布する場合はライセンスを記述したテキストファイルを付属させるようにしてください。
ここからはCMakeの話です。
CMakeでインストーラーまで作成するにはCMakeLists.txtに以下の記述を追加します。
set(CPACK_GENERATOR "WIX") もしくは set(CPACK_GENERATOR "NSIS")
include(CPack)
まあ他にも以下の項目を設定した方が良いとは思いますが、ちょっと試すだけなら上記だけで大丈夫です。
CPACK_PACKAGE_NAME
CPACK_PACKAGE_VENDOR
CPACK_PACKAGE_DESCRIPTION_SUMMARY
CPACK_PACKAGE_VERSION
CPACK_PACKAGE_VERSION_MAJOR
CPACK_PACKAGE_VERSION_MINOR
CPACK_PACKAGE_VERSION_PATCH
CPACK_PACKAGE_INSTALL_DIRECTORY
後はPACKAGEというプロジェクトをビルドするとインストーラーが作成できるみたいです。
あと、cmakeを使えば環境にかかわらず以下のコマンドでビルドができるみたいです。
cmake --build . --config Release --target PACKAGE
自動的にvcvarsall.batとかVsDevCmd.batを見つけてMsBuildを使っているのだろうか?
仕組みはよく分かりませんけどそれでできるのであればそれでいいです。
にほんブログ村のロボットのカテゴリから
全然人が来ない・・・
RTCのインストーラー作成時にrt_middleware_logo.ico、rt_middleware_logo.bmpが見つからないエラーが出ると言いましたが、どうやら既知の不具合だったみたいです。
Deselect_required_by_componentというマクロからのエラーはドキュメント生成をONにした場合に発生するエラーだと思うので、そのページに書いてある通りBUILD_DOCUMENTATIONをOFFにしてください。
それから例のPARENT_SCOPEオプションが間に入るのも既知だったみたいなので、そのページの通りに修正してください。
やっぱり仕様だったみたいです。
PythonのCMakeLists.txtの不具合に関しては載っていなかったので既知なのかどうかは不明です。
rtc.confで設定したモジュール探索パスはrtc.confが存在するディレクトリからのパスではなくてrtcdを実行したディレクトリからのパスになります。
なので以下のようなバッチファイル、シェルスクリプトをrtc.confと同じフォルダに作成して実行すれば良いということになります。
run.bat
cd /d %~dp0
rtcd -f rtc.conf
run.sh
以前から気になっていたのですが、PythonのRTCでidlcompile.batを実行すると構文エラーが出ていませんかね?
「'do'は、内部コマンドまたは外部コマンド操作可能なプログラムまたはバッチファイルとして認識されません」と出るので、どうやらif文の所のdoがいらないみたいです。
このエラーのせいでpython.exeがパスから見つかっても、見つからなかった場合の処理も行います。
まあ別にそれで何か問題があるか言うと、全く問題はないので放置しておいても大丈夫です。
にほんブログ村のロボットのカテゴリから
全然人が来ない・・・
Deselect_required_by_componentというマクロからのエラーはドキュメント生成をONにした場合に発生するエラーだと思うので、そのページに書いてある通りBUILD_DOCUMENTATIONをOFFにしてください。
それから例のPARENT_SCOPEオプションが間に入るのも既知だったみたいなので、そのページの通りに修正してください。
やっぱり仕様だったみたいです。
PythonのCMakeLists.txtの不具合に関しては載っていなかったので既知なのかどうかは不明です。
rtc.confで設定したモジュール探索パスはrtc.confが存在するディレクトリからのパスではなくてrtcdを実行したディレクトリからのパスになります。
なので以下のようなバッチファイル、シェルスクリプトをrtc.confと同じフォルダに作成して実行すれば良いということになります。
run.bat
cd /d %~dp0
rtcd -f rtc.conf
run.sh
#!/bin/sh
cd `dirname $0`
rtcd -f rtc.conf
簡単な事なのですが、こういうファイルを付属してくれたら便利かもしれないです。以前から気になっていたのですが、PythonのRTCでidlcompile.batを実行すると構文エラーが出ていませんかね?
「'do'は、内部コマンドまたは外部コマンド操作可能なプログラムまたはバッチファイルとして認識されません」と出るので、どうやらif文の所のdoがいらないみたいです。
このエラーのせいでpython.exeがパスから見つかっても、見つからなかった場合の処理も行います。
まあ別にそれで何か問題があるか言うと、全く問題はないので放置しておいても大丈夫です。
にほんブログ村のロボットのカテゴリから
全然人が来ない・・・
今度はPythonでも試してみたのですが、CMakeの段階で失敗しました。
CMakeLists.txtを読んでみると、
set(CPACK_RESOURCE_FILE_LICENSE "@CMAKE_CURRENT_SOURCE_DIR@/cpack_resources/License.rtf")
の部分が、License.rtfは実際にはcmakeというフォルダにあるみたいなのでここでエラーが出るみたいです。
インストーラーを作成したい人は上の箇所を修正してください。
そこさえ修正すればPACKAGEというプロジェクトをビルドすることでインストーラーが作成できます。
どうやらPythonのRTCではWIXでインストーラーを作成しているみたいなので、C++のRTCでは何故NSISでインストーラーを作成してしまったのかが余計に分からなくなりました。そしてインストールすると以下のディレクトリに各ファイルがインストールされます。
C:\Program Files\RTC名バージョン名
INSTALLという名前のプロジェクトを実行した場合、
C:\Program Files (x86)\OpenRTM-aist\1.1\components\python\RTC名バージョン名
と全然違う場所にインストールされるみたいですが、一体どういう意図があるのかが分かりません。
しかもC++のRTCと違ってCMakeLists.txtの中でCMAKE_INSTALL_PREFIXを設定しているみたいなので、CMakeでプロジェクトを作成する段階でこちらでインストールするディレクトリを設定する事はできないみたいです。
ちなみにcmakeでプロジェクトを作成するときに以下のようなコマンドを入力すればインストールするディレクトリを設定することはできます。
CMakeLists.txtを直接編集するしかないのですかね?
にほんブログ村のロボットのカテゴリから
全然人が来ない・・・
CMakeLists.txtを読んでみると、
set(CPACK_RESOURCE_FILE_LICENSE "@CMAKE_CURRENT_SOURCE_DIR@/cpack_resources/License.rtf")
の部分が、License.rtfは実際にはcmakeというフォルダにあるみたいなのでここでエラーが出るみたいです。
インストーラーを作成したい人は上の箇所を修正してください。
そこさえ修正すればPACKAGEというプロジェクトをビルドすることでインストーラーが作成できます。
どうやらPythonのRTCではWIXでインストーラーを作成しているみたいなので、C++のRTCでは何故NSISでインストーラーを作成してしまったのかが余計に分からなくなりました。
C:\Program Files\RTC名バージョン名
INSTALLという名前のプロジェクトを実行した場合、
C:\Program Files (x86)\OpenRTM-aist\1.1\components\python\RTC名バージョン名
と全然違う場所にインストールされるみたいですが、一体どういう意図があるのかが分かりません。
しかもC++のRTCと違ってCMakeLists.txtの中でCMAKE_INSTALL_PREFIXを設定しているみたいなので、CMakeでプロジェクトを作成する段階でこちらでインストールするディレクトリを設定する事はできないみたいです。
ちなみにcmakeでプロジェクトを作成するときに以下のようなコマンドを入力すればインストールするディレクトリを設定することはできます。
cmake . -D CMAKE_INSTALL_PREFIX=パス .
この方法ではPythonのRTCのインストールするディレクトリは上述したように設定できません。CMakeLists.txtを直接編集するしかないのですかね?
にほんブログ村のロボットのカテゴリから
全然人が来ない・・・