ロボット、千葉ロッテマリーンズについていいかげんなことを書きます。
×
[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。
以前の記事で書いたことをメーリングリストで聞いてくれた人がいたのですが、ようやく回答があったようです。どうやら遅かったのはただメールを送る際にミスがあっただけみたいです。OpenRTP 1.1.0-RC5で対応するとからしいのですが、ファイルが存在しない原因はなんだったのかはメール読んだ限りではよくわかりませんでした。
前回の記事でOpenCVを複数バージョンインストールした場合にトラブルが起こりやすいと書きましたが、このページのように環境変数を変更すれば解決はできると思います。それから複数のOpenRTM-aistをインストールした場合はRTM_ROOTとOMNI_ROOTが違うバージョンになっていたのかなあとは思いますが、今はインストールしていないので確認できません。
その辺の解決方法をマニュアルに書いておけば良いとは思いますが、初心者にはなかなか厳しいですね。
今回はデータポート、サービスポートについて自分勝手な見解を書いていきたいと思います。
まず、独自のデータ型、独自のインターフェースはあまり使用するべきではないと思っています。
まあ単純に既存のRTCと接続できないと言う単純な理由ですが。
BasicDataType.idl、ExtendedDataTypes.idl、InterfaceDataTypes.idlで定義されたデータ型をできるだけ使うべきかなあとは思います。
ただ、独自のデータ型を使った方が便利なことがあると言われれば確かにそう思います。
音声データをTimedOctetSeq型で入出力しますがサンプリング周波数、ビット数、チャネル数も含んでいたほうがCameraImage型みたいに使いやすくはなります。と言うか画像データの扱いもちょっと前まで同じような扱いだったような。
DoubleSeq型の0番目をX座標、1番目をY座標で使うか、そのままPoint2D型を使うのとどっちが良いかと言われれば後者だとは思います。
ただTimedDoubleSeq型のデータポートを使用しているRTCが多いので実は前者の方が他のRTCと接続しやすかったりしているような気はしてます。
画像とかはこのページのように圧縮して送信する方が通信が速くなるので別のPCに送信する場合は便利です。リンク先のRTCはOpenCVのimencode関数で圧縮したデータをOctetの配列に書き込んで送信しているみたいなので、動作環境はUbuntuと書いてありますがWindowsでも動作できそうですね。
CameraImage型にはformatで圧縮形式を指定できるのですが、サンプルのソースコードを読んでみても使ってる気配はありませんね。
とりあえず画像データを圧縮して出力、圧縮された画像データを元に戻して出力するRTCを作成しておいたので使ってあげてください。
マニュアルは今週中に書きます。
にほんブログ村のロボットのカテゴリから
全然人が来ない・・・
前回の記事でOpenCVを複数バージョンインストールした場合にトラブルが起こりやすいと書きましたが、このページのように環境変数を変更すれば解決はできると思います。それから複数のOpenRTM-aistをインストールした場合はRTM_ROOTとOMNI_ROOTが違うバージョンになっていたのかなあとは思いますが、今はインストールしていないので確認できません。
その辺の解決方法をマニュアルに書いておけば良いとは思いますが、初心者にはなかなか厳しいですね。
今回はデータポート、サービスポートについて自分勝手な見解を書いていきたいと思います。
まず、独自のデータ型、独自のインターフェースはあまり使用するべきではないと思っています。
まあ単純に既存のRTCと接続できないと言う単純な理由ですが。
BasicDataType.idl、ExtendedDataTypes.idl、InterfaceDataTypes.idlで定義されたデータ型をできるだけ使うべきかなあとは思います。
ただ、独自のデータ型を使った方が便利なことがあると言われれば確かにそう思います。
音声データをTimedOctetSeq型で入出力しますがサンプリング周波数、ビット数、チャネル数も含んでいたほうがCameraImage型みたいに使いやすくはなります。と言うか画像データの扱いもちょっと前まで同じような扱いだったような。
DoubleSeq型の0番目をX座標、1番目をY座標で使うか、そのままPoint2D型を使うのとどっちが良いかと言われれば後者だとは思います。
ただTimedDoubleSeq型のデータポートを使用しているRTCが多いので実は前者の方が他のRTCと接続しやすかったりしているような気はしてます。
画像とかはこのページのように圧縮して送信する方が通信が速くなるので別のPCに送信する場合は便利です。リンク先のRTCはOpenCVのimencode関数で圧縮したデータをOctetの配列に書き込んで送信しているみたいなので、動作環境はUbuntuと書いてありますがWindowsでも動作できそうですね。
CameraImage型にはformatで圧縮形式を指定できるのですが、サンプルのソースコードを読んでみても使ってる気配はありませんね。
とりあえず画像データを圧縮して出力、圧縮された画像データを元に戻して出力するRTCを作成しておいたので使ってあげてください。
マニュアルは今週中に書きます。
にほんブログ村のロボットのカテゴリから
全然人が来ない・・・
PR
人に使ってもらえるRTCを作るのは非常に難しいです。
「RTMコンテストのRTCは大抵すぐに使えずデバッグするハメになる」とか言われるぐらいなので、普通に使えるだけでも賞は狙えると思います。
最低2台以上のPCで動作確認をする事が必要ですね。
今回は締め切りが10月31日とかなり早いので、コンセプトが面白い作品ならば発表当日までに簡単にフィードバックが得られます。前に言った通り10分以内の動作確認を目指して頑張ってください。僕も2時間以内を目指します。なんだかどんどん目標が下がるなあ。
それからPowerPointを操作するRTCの配布を始めました。OpenRTM-aist-1.1.1に対応させたいので、インストーラの配布はその後にします。
個人的な意見、というより僕ぐらいしか起こっていない事かもしれないのですが、複数のバージョンのライブラリをインストールしている場合にCMakeでトラブルが起こりやすいような気がします。
例えばOpenRTM-aistをインストールするとOpenRTM-aistのフォルダ内にOpenCVも同梱されているわけですが、それとは別にOpenCVをインストールするとプロジェクトのインクルードディレクトリ、ライブラリディレクトリがおかしくなりやすいような感じはあります。
OpenRTM-aist-1.1.0-ReleaseとOpenRTM-aist-1.1.1-betaが同時にインストールされている場合にCMakeでVC++のプロジェクトを作成するとインクルードディレクトリ、ライブラリディレクトリは1.1.0、追加の依存ファイルは1.1.1とかになったりしてたので、まずCMakeしてもらう仕様のRTCを配布する人は僕みたいな素人は訳わからないトラブルを起こすと考えてマニュアル等を書いてください。
関係ないかもしれませんがOpenCVがOpenRTM-aistをインストールすると付いてくるのはあまり好きではないです。
何故かと言うとOmniORBと違って必須というわけでもないからなだけなので大した理由ではないですけど。
にほんブログ村のロボットのカテゴリから
全然人が来ない・・・
「RTMコンテストのRTCは大抵すぐに使えずデバッグするハメになる」とか言われるぐらいなので、普通に使えるだけでも賞は狙えると思います。
最低2台以上のPCで動作確認をする事が必要ですね。
今回は締め切りが10月31日とかなり早いので、コンセプトが面白い作品ならば発表当日までに簡単にフィードバックが得られます。前に言った通り10分以内の動作確認を目指して頑張ってください。僕も2時間以内を目指します。なんだかどんどん目標が下がるなあ。
それからPowerPointを操作するRTCの配布を始めました。OpenRTM-aist-1.1.1に対応させたいので、インストーラの配布はその後にします。
個人的な意見、というより僕ぐらいしか起こっていない事かもしれないのですが、複数のバージョンのライブラリをインストールしている場合にCMakeでトラブルが起こりやすいような気がします。
例えばOpenRTM-aistをインストールするとOpenRTM-aistのフォルダ内にOpenCVも同梱されているわけですが、それとは別にOpenCVをインストールするとプロジェクトのインクルードディレクトリ、ライブラリディレクトリがおかしくなりやすいような感じはあります。
OpenRTM-aist-1.1.0-ReleaseとOpenRTM-aist-1.1.1-betaが同時にインストールされている場合にCMakeでVC++のプロジェクトを作成するとインクルードディレクトリ、ライブラリディレクトリは1.1.0、追加の依存ファイルは1.1.1とかになったりしてたので、まずCMakeしてもらう仕様のRTCを配布する人は僕みたいな素人は訳わからないトラブルを起こすと考えてマニュアル等を書いてください。
関係ないかもしれませんがOpenCVがOpenRTM-aistをインストールすると付いてくるのはあまり好きではないです。
何故かと言うとOmniORBと違って必須というわけでもないからなだけなので大した理由ではないですけど。
にほんブログ村のロボットのカテゴリから
全然人が来ない・・・
ひょっとして締め切りが10月31日というのは勘違いかな?とか思ってメールを確認したらやっぱり10月31日でした。
そりゃほとんどの人は締め切りギリギリまで頑張るのだろうけど、20人もいれば2~3人は早めに投稿すると思ってただけに少し予想外です。
とりあえずGitHubにスクリーンキャプチャした画像を出力するRTCと入力した画像から認識した文字列を出力するRTCをアップロードしておきました。インストーラーは前に言った通りOpenRTM-aist-1.1.1のリリース後に配布します。
PowerPointを操作するRTCはまだ公開できる状態ではないです。
それからMs OfficeのRTC群とOpenOfficenのRTCに共通して使えるRTCはこのサイトに仕様を記載しておきました。
とにかく締め切りが近いので少しでも帳尻をしておきます。
でないと今のままでは他の作品に比べて見劣りするのは確実ですからね。
しかしRTCの総数14個か。
早さの次は数で勝負するぜと言わんばかりの乱発です。
まあ質じゃ勝てないし仕方ないです。
少しソースコードの書き方について考えてみました。
コメント文の書き方はDoxygenの仕様に合わせれば大丈夫だと思います。
基本的にグローバル変数はできるだけ使うべきではないと思いますし、あとコンポーネントのコードとロジックのコードは分離すべきだと思います。
オープンソースなのですから、RTCの再利用性以前にプログラムの再利用性も考えた方が使ってもらえる可能性は高いかなあと思います。
にほんブログ村のロボットのカテゴリから
全然人が来ない・・・
そりゃほとんどの人は締め切りギリギリまで頑張るのだろうけど、20人もいれば2~3人は早めに投稿すると思ってただけに少し予想外です。
とりあえずGitHubにスクリーンキャプチャした画像を出力するRTCと入力した画像から認識した文字列を出力するRTCをアップロードしておきました。インストーラーは前に言った通りOpenRTM-aist-1.1.1のリリース後に配布します。
PowerPointを操作するRTCはまだ公開できる状態ではないです。
それからMs OfficeのRTC群とOpenOfficenのRTCに共通して使えるRTCはこのサイトに仕様を記載しておきました。
とにかく締め切りが近いので少しでも帳尻をしておきます。
でないと今のままでは他の作品に比べて見劣りするのは確実ですからね。
しかしRTCの総数14個か。
早さの次は数で勝負するぜと言わんばかりの乱発です。
まあ質じゃ勝てないし仕方ないです。
少しソースコードの書き方について考えてみました。
コメント文の書き方はDoxygenの仕様に合わせれば大丈夫だと思います。
基本的にグローバル変数はできるだけ使うべきではないと思いますし、あとコンポーネントのコードとロジックのコードは分離すべきだと思います。
オープンソースなのですから、RTCの再利用性以前にプログラムの再利用性も考えた方が使ってもらえる可能性は高いかなあと思います。
にほんブログ村のロボットのカテゴリから
全然人が来ない・・・
締め切りまであと2週間か。
それまでにいろいろやっておきたいところです。
締め切りと言っても賞の審査で減点されるだけで別に発表できなくなるわけではないのですけど、僕も他の人の作品を使ってみたいのでできるだけ間に合わせるようにしてください。僕なんかに言われる筋合いはないですけど。
以前の記事で「事前登録をちゃんとしていればプロジェクトを作成する際にメールを送る必要はなかったのではないか?」とか書きましたが、あくまで僕の想像で誰かに聞いたわけではないので事前登録をちゃんとしていてもプロジェクト作成のメールを送る必要はあるかもしれません。
なのでプロジェクトページの作成を10月31日に帳尻で間に合わせるのはかなりまずいです。僕がメールを送って返信が来たのは次の日でした。何か手間のかかる事があるのか忙しいのかはわかりませんが、当日中に作業に取り掛かれない可能性は高そうです。
なのでメールを送る必要があるのだとすれば、今のうちにメールだけでも送っておいた方が良いと思います。
それからこのブログでコメントくれとか評価を付けてくれとか今後いわないことにします。かなりウザかったと思うので。そんなに構ってほしいのか?と聞かれればその通りなのでどんどん構ってください。
MS Officeを操作するRTC群が少し手薄なので2つRTCを追加します。
まずPowerPointのRTCです。まあこれは単純にOpenOffice ImpressのRTCのMS Office版ということです。
もう一つはMODIによる文字認識RTCです。
このライブラリはMS Office 2003、もしくは2007にしか付属していないらしいですが、SharePoint Designer 2007をインストールすれば使用できるらしいです。
例によってOpenRTM-aist-1.1.1のリリースまで配布はしないつもりですが、そもそも10月1日が勘違いだったので一体いつリリースされるのかわからなくなってきました。とりあえず10月28日までに1.1.1がリリースされなければ1.1.0に対応したRTCを配布します。
ひょっとして1.1.1だから11月1日じゃないよなあ?
とにかくソフトウェア、マニュアルの質、発想の奇抜さでは勝てないので早めに投稿するなり、コメントに早く返信するなり、いろいろなRTCを乱発するなりいろいろするしかなさそうですね。
にほんブログ村のロボットのカテゴリから
全然人が来ない・・・
それまでにいろいろやっておきたいところです。
締め切りと言っても賞の審査で減点されるだけで別に発表できなくなるわけではないのですけど、僕も他の人の作品を使ってみたいのでできるだけ間に合わせるようにしてください。僕なんかに言われる筋合いはないですけど。
以前の記事で「事前登録をちゃんとしていればプロジェクトを作成する際にメールを送る必要はなかったのではないか?」とか書きましたが、あくまで僕の想像で誰かに聞いたわけではないので事前登録をちゃんとしていてもプロジェクト作成のメールを送る必要はあるかもしれません。
なのでプロジェクトページの作成を10月31日に帳尻で間に合わせるのはかなりまずいです。僕がメールを送って返信が来たのは次の日でした。何か手間のかかる事があるのか忙しいのかはわかりませんが、当日中に作業に取り掛かれない可能性は高そうです。
なのでメールを送る必要があるのだとすれば、今のうちにメールだけでも送っておいた方が良いと思います。
それからこのブログでコメントくれとか評価を付けてくれとか今後いわないことにします。かなりウザかったと思うので。そんなに構ってほしいのか?と聞かれればその通りなのでどんどん構ってください。
MS Officeを操作するRTC群が少し手薄なので2つRTCを追加します。
まずPowerPointのRTCです。まあこれは単純にOpenOffice ImpressのRTCのMS Office版ということです。
もう一つはMODIによる文字認識RTCです。
このライブラリはMS Office 2003、もしくは2007にしか付属していないらしいですが、SharePoint Designer 2007をインストールすれば使用できるらしいです。
例によってOpenRTM-aist-1.1.1のリリースまで配布はしないつもりですが、そもそも10月1日が勘違いだったので一体いつリリースされるのかわからなくなってきました。とりあえず10月28日までに1.1.1がリリースされなければ1.1.0に対応したRTCを配布します。
ひょっとして1.1.1だから11月1日じゃないよなあ?
とにかくソフトウェア、マニュアルの質、発想の奇抜さでは勝てないので早めに投稿するなり、コメントに早く返信するなり、いろいろなRTCを乱発するなりいろいろするしかなさそうですね。
にほんブログ村のロボットのカテゴリから
全然人が来ない・・・
もう一度配布の形式を考えてみました。
かなり身勝手な意見なので、RTMコンテスト参加者は参考にしないことをお勧めします。
まずC++版の場合ですが以下の形式が考えられると思います。
ただ僕みたいな初心者には思った以上に非常に敷居が高いような気がします。
2は多少難易度は下がると思いますが、そのままではRTCBuilderで生成したファイルをCMakeするとインクルードディレクトリ、出力ディレクトリ等のパスを絶対パスで指定しているプロジェクトを生成すると思うので、いろいろ設定し直してから配布する必要がありますね。ヘッダーファイルの入っているフォルダへのパスは相対パスに変更するだけでいいと思うのですが、OpenRTM-aistのインストールフォルダへのパスはProgram FilesかProgram Files (x86)かという違いがあるので注意が必要です。1.1.0か1.1.1かという違いが今後起きてくるとは思うので余計に面倒ですね。Windows、Linux、Mac等複数のOSに対応している場合はCMakeを使った方が便利ではあるのですが、CMakeしてもらうような仕様にすればそれはそれで面倒なので正直何が答えなのかわかりません。現状WIndows+OpenRTM-aist-1.1.0かUbuntu+OpenRTM-aist-1.1.0が多そうなのでその環境では簡単にビルド出来るようにした方が良いのではないでしょうか?それ以外の環境ではCMakeしてもらう形が良さそうな気がします。
3は動作確認を入念に行っているのならばこれで良いと思います。
ただユーザー側からしたら得体のしれないソフトウェアを実行することになるのがちょっと不安ですね。配布するファイルの容量が大きくなるのが少し気にはなります。
4は3とほぼ問題点は同じです。必要なdllはDependency Walker等で事前に調べておきましょう。
Python版は以下の方法が考えられると思います。
Pythonの場合はそれでも初心者が困ることは少ないとは思います。
ただ必要なライブラリのインストール方法は入念に書いておく必要はあります。
2でRTCを配布する人はあまり見ないですね。rtctree等ライブラリは簡単にインストーラーを作成できるので、インストーラーで配布する人は多いですが。
3も実はあまり見ませんね。確実に他の環境でも動作させるには一番だとは思います。
雑ですがいろいろと好き勝手なことを書いてしまいました。
そもそもCMakeに慣れた人から見れば一体何が難しいのかわからないかもしれませんが、僕みたいな素人はどんなトラブルを起こすかわからないので動作確認までなかなかできないということはありがちだとは思います。
VC++のプロジェクトでは簡単に設定できることがCMakeファイルにはどう書けばいいのかがわからないという事がありました。というより未だに分かっていません。具体的には、
どこで聞けば良いのかわからないのが最大の問題です。
まさかRTMのメーリングリストで聞くわけにもいかないだろうし。
にほんブログ村のロボットのカテゴリから
全然人が来ない・・・
かなり身勝手な意見なので、RTMコンテスト参加者は参考にしないことをお勧めします。
まずC++版の場合ですが以下の形式が考えられると思います。
- プロジェクトファイル(もしくはMakefile)はなし。CMakeしてもらう仕様
- プロジェクトファイル(もしくはMakefile)は同梱、実行ファイルはなし
- 実行ファイルを同梱
- インストーラーで配布(必要なdllも再配布可能なものだけ同梱)
ただ僕みたいな初心者には思った以上に非常に敷居が高いような気がします。
2は多少難易度は下がると思いますが、そのままではRTCBuilderで生成したファイルをCMakeするとインクルードディレクトリ、出力ディレクトリ等のパスを絶対パスで指定しているプロジェクトを生成すると思うので、いろいろ設定し直してから配布する必要がありますね。ヘッダーファイルの入っているフォルダへのパスは相対パスに変更するだけでいいと思うのですが、OpenRTM-aistのインストールフォルダへのパスはProgram FilesかProgram Files (x86)かという違いがあるので注意が必要です。1.1.0か1.1.1かという違いが今後起きてくるとは思うので余計に面倒ですね。Windows、Linux、Mac等複数のOSに対応している場合はCMakeを使った方が便利ではあるのですが、CMakeしてもらうような仕様にすればそれはそれで面倒なので正直何が答えなのかわかりません。現状WIndows+OpenRTM-aist-1.1.0かUbuntu+OpenRTM-aist-1.1.0が多そうなのでその環境では簡単にビルド出来るようにした方が良いのではないでしょうか?それ以外の環境ではCMakeしてもらう形が良さそうな気がします。
3は動作確認を入念に行っているのならばこれで良いと思います。
ただユーザー側からしたら得体のしれないソフトウェアを実行することになるのがちょっと不安ですね。配布するファイルの容量が大きくなるのが少し気にはなります。
4は3とほぼ問題点は同じです。必要なdllはDependency Walker等で事前に調べておきましょう。
Python版は以下の方法が考えられると思います。
- ソースコードで配布
- インストーラーで配布
- py2exe等で実行ファイルに変換して配布
Pythonの場合はそれでも初心者が困ることは少ないとは思います。
ただ必要なライブラリのインストール方法は入念に書いておく必要はあります。
2でRTCを配布する人はあまり見ないですね。rtctree等ライブラリは簡単にインストーラーを作成できるので、インストーラーで配布する人は多いですが。
3も実はあまり見ませんね。確実に他の環境でも動作させるには一番だとは思います。
雑ですがいろいろと好き勝手なことを書いてしまいました。
そもそもCMakeに慣れた人から見れば一体何が難しいのかわからないかもしれませんが、僕みたいな素人はどんなトラブルを起こすかわからないので動作確認までなかなかできないということはありがちだとは思います。
VC++のプロジェクトでは簡単に設定できることがCMakeファイルにはどう書けばいいのかがわからないという事がありました。というより未だに分かっていません。具体的には、
- 構成プロパティ→全般→共通言語ランタイムサポートの項目をどう設定するか
- 共通プロパティ→Frameworkと参照→.NETもしくはCOMコンポーネントの参照の追加をどう設定するか
どこで聞けば良いのかわからないのが最大の問題です。
まさかRTMのメーリングリストで聞くわけにもいかないだろうし。
にほんブログ村のロボットのカテゴリから
全然人が来ない・・・