OpenRTM / OpenRTP-aist

OpenRTP-aist: RT-Middleware and OMG RTC based component and system development tools implemented by AIST
Other
1 stars 6 forks source link

デフォルトでオブザーバ使用がONになっている(2.0) #439

Closed n-kawauchi closed 2 years ago

n-kawauchi commented 3 years ago

Describe the bug

Reproducibility 100%

Environment

ga-sakamoto commented 3 years ago

まだ,現象を再現できていないのですが,取り急ぎ,ご質問に回答させて頂きます. オブザーバに関連した2つのボタンなのですが, 左側のボタンは,個々のRTCの設定を変更するためのボタンとなります.システムエディタ上で,RTCを選択して頂きますと,クリックできるようになります. 右側のボタンは,システムエディタ上の全てのRTCの設定を変更するためのボタンとなります.

n-kawauchi commented 3 years ago

ご説明、ありがとうございます。 左側のボタンをクリックできることは確認しましたが、使い方が分かりません。 このIssueに対するPR作成時、具体的な動作確認手順を記載して下さい。レビュー時、それを読んで左右のボタンの使い分けや、オブザーバの動作を確認したいと思います。 よろしくお願いいたします。

ga-sakamoto commented 2 years ago

ご連絡が遅くなってしまい,申し訳ございません.

まずオブザーバの設定なのですが,(1)の状態になっているという事は,デフォルトでOFFになっていると思います. ただ,この状態で「ポート間の接続線は描画されず,RTCの状態を変更しても色が変わらない」という事は,オブザーバではなく,ポーリング実行時に何らかのエラーが出ているものと思われます.

ただ,こちらの環境(OpenRTM-aist1.2)で試した所,ポート間の接続もRTCの状態変更も正常に実行する事ができました. このため,OpenRTM-aist 2.0での修正で何らかの変更があったため,正常に動作しなくなってしまったのではないかと思います. そこで,たいへん申し訳ございませんが,OpenRTM-aist 2.0 のインストール方法をお教え頂けませんでしょうか?

また,メールの方で,「Windows環境で上記Zipを展開して確認したところ、オブザーバのデフォルト動作はOKでした。」とのご連絡を頂いておりましたが,もしもWindows環境で,OpenRTM-aist 2.0を動作させる方法があるのでしたら,そちらをお教え頂けませんでしょうか?

n-kawauchi commented 2 years ago

改めて動作確認したところ、やはりUbuntu環境のOpenRTM2.0.0、OpenRTP2.0.0の組み合わせ時、動作がおかしいです。 使用したOpenRTPは以下のものです。 OpenRTP1.2.2(20210818版)、openrtp1.2.2-2 ・・・オブザーバ機能をOFFにしたバージョン OpenRTP2.0.0(20210906版)・・・最新版

確認したことは「RTCポート間の接続線描画、RTC状態変更での色変化」で、OpenRTM/OpenRTPの組み合わせ条件は以下です。

・Windows環境 OpenRTM1.2.2 + OpenRTP1.2.2(20210818版)・・・OK OpenRTM1.2.2 + OpenRTP2.0.0(20210906版)・・・OK OpenRTM2.0.0 + OpenRTP1.2.2(20210818版)・・・OK OpenRTM2.0.0 + OpenRTP2.0.0(20210906版)・・・OK

・Ubuntu環境 OpenRTM1.2.2 + OpenRTP1.2.2-2      ・・・OK OpenRTM1.2.2 + OpenRTP2.0.0(20210906版)・・・OK OpenRTM2.0.0 + OpenRTP1.2.2(20210818版)・・・OK OpenRTM2.0.0 + OpenRTP2.0.0(20210906版)・・・NG★

上記★のNG環境で、まずポート間の接続線が描画されません。続けてAll ExitするとName Service Viewからは消えるがSystem Editor上からは消えないという状況も確認しています。 デフォルトの動作確認ということで極力~/.eclipse下やworkspace下を削除してから次の確認に入るようにしました。 しかし、OpenRTP1.2.2のテストと交互に行っていた際、描画された場合もあったのでこれは避けた方がよいと思えます。

WindowsのOpenRTM2.0.0環境での確認ですが、インストーラはまだ作成していないため、ソースからインストールしています。この場合、システム環境変数は一切定義されないため、ネームサーバ起動時もRTC起動時もomniORBやOpenRTMのパスを手動で定義する必要があります。 Windows環境の本格的なテストはインストーラmsiを作成してからと考えておりますが、確認に必要でしたら別途メールで手順をお知らせします。

Ubuntu+omniORBの場合は下記に手順が記載してあります。続けてsudo make install を実行すればインストールされます。サンプルRTCは、/usr/local/share/openrtm-2.0/components/c++/examples下にインストールされています。 よろしくお願いいたします。 https://openrtm.org/openrtm/ja/doc/installation/install_1_1/cpp_1_1/install_qnx_1_1/qnx_build_proc_1_2/openrtm_cpp_cmake_build

ga-sakamoto commented 2 years ago

詳細なご調査,ご連絡ありがとうございました. まずはお教え頂いた手順で,Ubuntu環境にOpenRTM2.0.0をインストールし,NGとなった環境を準備させて頂きます. (ご連絡頂いた内容から,再度,仮想環境を作りなおした方が良さそうなので,ゼロから環境を構築してみたいと思います)

ちなみに,Ubuntu環境というのは18.04でしょうか?それとも,20.04でしょうか?

n-kawauchi commented 2 years ago

今回のOpenRTM2.0.0の確認はUbuntu18.04でしたが、環境を作り直すのであれば20.04でお願いします。 別件で、RTCポート上のマウスポインタの背景が黒になるIssueを作成しましたが、その際はUbuntu20.04を使いましたので、 これの確認にも使えると思います。ちなみに今回のUbuntu18.04での確認ではマウスポインタの背景は白(透明ではない)でした。

ga-sakamoto commented 2 years ago

かしこまりました. Ubuntu20.04 + OpenRTM2.0.0で試してみます.

ga-sakamoto commented 2 years ago

何度も申し訳ございません.

お教え頂きましたページの情報を基に,Ubuntu20.04にOpenRTM2.0.0をインストールしようとしているのですが,以下のコマンドを実行した際に,エラーとなってしまいます.  cmake -DCORBA=omniORB -DCMAKE_BUILD_TYPE=Release .. エラー内容は以下の通りです.  Parse error in command line argument: -DCMAKE_BUILD_TYPE

インストールしたCMakeのバージョンは以下となります.  3.16.3-1ubuntu1

cmakeのバージョンがおかしかったり,sudoで実行したりする必要があるのでしょうか?

n-kawauchi commented 2 years ago

こちらのVMと実機の2つの環境で確認しても問題なくcmakeは通ります。コメントに書いていただいたcmake -DCORBA... の行をそのままコピペして使っても問題ありませんでした。cmakeのバージョンはこちらも同じです。sudoの必要はありません。 omniORBは4.2.4がインストール済みの環境です。

ga-sakamoto commented 2 years ago

早速のご確認ありがとうございました. VM環境もお使い,との事なのですが,ご使用になられているUbunto20.04のVM環境をお送り頂く事は難しいでしょうか?

n-kawauchi commented 2 years ago

VM環境はVagrantで構築しています。ちょうどOpenRTP2.0用の環境構築手順を記載していますので、下記ページに従って VirtualBoxとVagrantのインストールをしてください。「環境整備」の項です。 「VM環境構築」の項はOpenRTPビルド用の説明 ですので、今回は関係ありません。 https://openrtm.org/redmine/projects/rtsystemeditor/wiki/VagrantでOpenRTP20用boxファイルを使ってビルド環境を構築する

普通のUbuntu環境を構築したいので、Windows環境の任意にディレクトリで下記を実行してください。私はGit Bashで実行しています。 git clone https://github.com/n-kawauchi/RTM-build-env-setup

後は、Windowsのコマンドプロンプトの操作でOKです。RTM-build-env-setup/u2004-gui/Vagrantfileと同じディレクトリに移動して操作します。 自動構築するVM環境はメモリ8GBで定義しています。これはVagrantfileの9行目で定義していますので、環境に合わせて変更して下さい。

> dir
Vagrantfile
> vagrant up
--> 処理が終わるまで待つ
> vagrant reload
--> Ubuntuインストール後の再起動です。

これでUbuntu GUI環境がインストール済み、OpenRTMのビルドに必要なパッケージもインストール済みの環境を自動構築できます。GUI画面も任意のサイズに拡張可能です。デバイス->クリップボード共有も「双方向」を選択すればすぐ使えます。 Windows側ではu2004-gui/share, Ubuntu側は$HOME/share が共有フォルダになってますので、両環境で成果物を簡単にやり取りできます。

GUI環境の方でvagrantユーザに対し、パスワードvagrantでログインし、Ubuntuインストール時の最後の設定に答えます。 これが済めばgit等必要なパッケージはすべてインストール済みですので、すぐOpenRTM-aistをcloneできます。 GUI画面操作不要ならば、vagrant upを実行したコマンドプロンプトで下記を実行しても使いやすいです。

> vagrant ssh u2004-gui
ga-sakamoto commented 2 years ago

詳細なご説明ありがとうございました. ご連絡頂きました内容を参考に,環境構築を行ってみたいと思います.

ga-sakamoto commented 2 years ago

ご連絡を頂きました情報を基に,仮想環境のインストールを行い,動作確認を行ってみようと思ったのですが,現状では上手くいっておりません.

仮想環境までのインストールは実行できたのですが,OpenRTM-aist 2.0.0のインストールを行い,サンプルコンポーネントを以下のように起動しようとした所,  /usr/local/share/openrtm-2.0/components/c++/example/SeqInComp 以下のようなエラーが表示され,コンポーネントの起動を行う事ができませんでした.  /usr/local/share/openrtm-2.0/components/c++/example/SeqInComp: error while loading shared libraries: libRTC.so.2.0: cannot open shared object file: No such file or directory

(余談ですが,仮想環境インストール時に,vagrant upを実行した所,最初はエラーが出てしまいました. これはこちらで使用しているウイルススキャンソフト(Kaspersky)が原因だったようで,「ウェブ保護」機能をOFFにする必要がありました)

なお,/usr/local/libの下を確認してみた所,  libRTC.a libRTC.so libRTC.so.2.0 libRTC.so.2.0.0 libhrtm.a libhrtm.so などが存在していました.

また,Ubuntu側の画面では,画面サイズを「800x600」「1024x768」しか選択できず,お教え頂きましたクリップボード共有につきましても,「双方向」を選択しても有効にならない状態です.

n-kawauchi commented 2 years ago

ソースからインストールしたためライブラリが見つからない件は、LD_LIBRARY_PATHで場所を示してあげればOKです。 ~/.bashrcにでも下記を追記すれば便利だと思います。 export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH

UbuntuのGUI画面サイズの変更ですが、vagrant-vbguestプラグインのインストールが必要です。 (Wikiの手順は、GUIなし環境なので記載しておりませんでした。すみません。)

vagrant haltでVM環境を終了させた後、下記でWindows環境へインストールしてください。

>vagrant plugin install vagrant-vbguest

こうすれば、GUI画面の四隅をマウスで引っ張れば好きな画面サイズに変更でき、クリップボード共有も使えます。 よろしくお願いいたします。

ga-sakamoto commented 2 years ago

ご連絡を頂きました情報を元に,vagrant-vbguestをインストールさせて頂きました. こちらをインストールした所,画面サイズの変更は行えるようになったのですが,Ubntu側でマウスが効かなくなってしまいました. (Ubuntuのログイン画面では,マウス/キーボードともに正常に動作するのですが,UbuntuのGUI画面が表示されると,マウス(恐らくキーボードも)反応しない状態です. もう少し調査してみようと思います.

n-kawauchi commented 2 years ago

マウス、キーボード反応の件ですが、私の方でも同様の症状になりました。 当初は普通に使えていたのですが、ある時からこの症状になりました。 そこで、Vagrantfile 9行目のメモリサイズを倍の16GBに増やしました。

Vagrantfile変更直後は、念のため--provisionオプションを付けて起動しました。 vagrant up --provision これでストレスなく使えています。参考までに、Ubuntu18.04のGUI環境ならばメモリ8GBでOKです。

ga-sakamoto commented 2 years ago

情報ありがとうございます. こちらでも同じ設定に変更してみたのですが,上手く動作してくれませんでした. (症状が安定しないのですが,GUI画面に入ると真っ暗になってしまったり,最初の画面サイズではマウスが効くのですが,画面サイズを変更すると,マウスが効かなくなったりしてしてしまいました)

そこで,再度,VMWareにUbuntu20.04をインストールし直し,OpenRTM2.0.0のビルドを試みてみたのですが,  cmake -DCORBA=omniORB -DCMAKE_BUILD_TYPE=Release .. を実行すると,以下のようなエラーが出てしまいました.  -- The CXX compiler identification is unknown CMake Error at CMakeLists.txt:3 (project): No CMAKE_CXX_COMPILER could be found.

そこで,ご質問なのですが,Ubuntu20.04上でOpenRTM2.0.0をコンパイルしようとした場合,事前にインストールする必要があるパッケージは何かございますでしょか? (GitHubからCloneするためにgitをインストールし,Cmakeを実行するためにcmakeをインストールしたのですが,これ以外に必要なパッケージがインストールできていないのかな?と思い,ご質問させて頂きました)

もしくは,CMakeを実行する前に,何か環境変数などを設定する必要があるのでしょうか?

n-kawauchi commented 2 years ago

webページの「ソースからのビルド(Linux編)」で解説している「一括インストールスクリプトpkg_install_ubuntu.sh」を使われていないということでしょうか? https://openrtm.org/openrtm/ja/doc/installation/install_1_2/cpp_1_2/build_source_linux_1_2#toc8

上記ページは1.2系の解説ですが、C++開発に必要なツールをインストールできるオプション「-l c++ -c」は同じです。 スクリプトの入手等はリンクしているページをご覧ください。

ga-sakamoto commented 2 years ago

これまでご連絡を頂きました情報を基に,VMWare上でUbuntu20.04 + OpenRTM2.0.0の環境を構築する事ができました. こちらを使用して動作確認を行わせて頂きます. 色々とありがとうございました.

ga-sakamoto commented 2 years ago

何度も申し訳ございません. ご連絡を頂きました内容を基に,再度,別PCにVirtualBox+Vagrantの環境を構築させて頂き,動作確認を行わせて頂きました.

ただ,こちらで構築した環境では,RTCのActivate/Deactivate,ポート間の接続は正常に動作し,画面表示も正常に表示されました. (環境構築時は,お教え頂いた手順で実行し,Eclipseもsetup_eclipse.shを使用してインストールしました)

そこで,幾つかご確認させてください.

n-kawauchi commented 2 years ago

改めて確認したところ、本Issue作成時の確認で使ったPR438のOpenRTPではこの不具合が発生しますが、PR442のOpenRTPでは発生しないことが分かりました。 (この2つのOpenRTPを交互に使い分けての確認で、それぞれ専用のworkspaceを指定しました。)

動作確認はUbuntu20.04でとお願いしましたが、私の方での元々の確認はUbuntu18.04のVM環境で、この環境が残っているので使用しました。確認にあたり、Ubuntu18.04はupgradeして最新状態にし、OS再起動後に作業に入りました。 ということで、PR441と442の修正が影響して解決したように思えてしまいますが、使用したVM環境が影響しているのかもしれません。

実機での確認ということで、PR442のOpenRTPをUbuntu20.04で動かしても不具合は発生しませんでした。

今回の調査はここまでとし、リリース前の本格的なテスト(なるべく実機使用予定)で問題がでなければOKとしたいと考えています。

n-ando commented 2 years ago

とりあえず本件はクローズします。 不具合がまたでたら再度issue上げてください。