Closed shintarokkk closed 5 years ago
16.04で「USE_ROBOTHARDWAREをON」じゃなければほぼ1倍速出るんだろうか?
16.04にしてからnvidiaのドライバをまだ入れてなくてnouveau的な奴のまま説とかは?
あとUSE_VISION:=false試してみるとなんか違いが出たりとか
USE_ROBOTHARDWARE=falseで1倍速出てるって書いてありましたね・・・
手元に、14.04ある人いるかな? USE_ROBOTHARDWAREのON/OFFで差がどれぐらいあるか知りたい。
rtmlaunch hrpsys_choreonoid_tutorials jaxon_red_choreonoid.launch
rostopic hz /joint_states -w 200
average rate: 142.143
min: 0.000s max: 0.043s std dev: 0.01250s window: 200
average rate: 146.972
min: 0.000s max: 0.040s std dev: 0.01207s window: 200
average rate: 139.551
min: 0.000s max: 0.042s std dev: 0.01275s window: 200
rtmlaunch hrpsys_choreonoid_tutorials jaxon_red_choreonoid.launch USE_ROBOTHARDWARE:=TRUE
rostopic hz /joint_states -w 200
average rate: 147.189
min: 0.000s max: 0.035s std dev: 0.01190s window: 200
average rate: 149.175
min: 0.000s max: 0.033s std dev: 0.01180s window: 200
average rate: 156.693
min: 0.000s max: 0.032s std dev: 0.01128s window: 200
hzはros時間で測る(はずだ)から比較しにくいと思う。 シミュレーション時間/実際時間が必要。 choreonoidのストップボタンを押すと、choreonoid内のコンソールに出る。 または、小松くん方式で見るか。。
rtmlaunch hrpsys_choreonoid_tutorials jaxon_red_choreonoid.launch
AISTSimulatorによるシミュレーションを開始しました。
AISTSimulatorによるシミュレーションが15.587秒時点で終了しました。
計算時間: 18.491 [s], 計算時間 / シミュレーション時間 = 1.18631
rtmlaunch hrpsys_choreonoid_tutorials jaxon_red_choreonoid.launch USE_ROBOTHARDWARE:=true
AISTSimulatorによるシミュレーションを開始しました。
AISTSimulatorによるシミュレーションが15.469秒時点で終了しました。
計算時間: 20.56 [s], 計算時間 / シミュレーション時間 = 1.32911
nvidiaのドライバで410が入るのはubuntu標準じゃなくないかな?
nvidiaのドライバはapt-add-repositoryを経て入れました。 Ubuntu14.04を標準のnvidiaドライババージョン(384)で使っていた頃にlinuxのカーネルをアップデートしたところログインループに陥り、410に上げたら直った、という経緯があったため、今回はインストール時からバージョン410のドライバを入れました。384にバージョンを落としたほうが良いでしょうか?
http://choreonoid.org/ja/workshop/install.html このページの末尾にある
シーンビューの設定ダイアログ にある「テスト」というボタンを押すと、シーンを360度回転させるアニメーションを行なって、これにかかるフレームレートを表示します。この機能により描画速度が分かりますので、ドライバ更新前と後でこのテストを行なって、描画が速くなっていることを確認できるとよいかと思います。テストは何らかのプロジェクトを読み込んでモデルが表示されている状態で行うとよいでしょう。
という部分をUSE_ROBOTHARDWARE=true/falseで比較してみましたが、trueで30.0551 fps, falseで30.0426 fpsと、ほぼ違いのない結果になりました。choreonoidの描画速度の問題ではないのかもしれません。
USE_ROBOTHARDWARE=true/false でvisionは変わらないはずなので、あまり関係ないかもしれない。 そうなると何がちがうかわからないけど。。。 openrtmとかdebとソースがあったりしないかな?
openrtmについてはdebとソースが混ざってしまっている可能性があります。 最初に環境構築をする際にはまだ https://github.com/start-jsk/rtmros_choreonoid/issues/275 を見つけていなかったため、 http://openrtm.org/ を参考にして git clone https://github.com/n-ando/xenial_package.git
ubuntu 16.04 (64bit) の場合 $ cd xenial_package/xenial/main/binary-amd64/
C++版のインストール $ sudo dpkg -i openrtました。m-aist_1.1.2-0_amd64.deb $ sudo dpkg -i openrtm-aist-example_1.1.2-0_amd64.deb $ sudo dpkg -i openrtm-aist-dev_1.1.2-0_amd64.deb
Python版のインストール $ sudo dpkg -i openrtm-aist-python_1.1.2-1_amd64.deb $ sudo dpkg -i openrtm-aist-python-example_1.1.2-1_amd64.deb
を実行してしまいました。この方法でインストールしたopenrtmの消し方が分からず、そのままソース(tork-aが公開しているgithubのレポジトリ)を入れてビルドを行いました。 もしかするとこれが問題を起こしているのでしょうか...
それが原因かわからないけど、通常だと、ros-kinetic-openrtm-aistをdebで入れるか、
一度ソースをcatkinのワークスペースごと全て消し、
sudo apt-get purge ros-kinetic-hrpsys* ros-kinetic-openrtm* openrtm*
を実行し、choreonoidもソースとビルド先を全て消してからopenrtmはaptで入るものを入れなおしました。 shintarokkk@shintarokkk-desktop:~$ dpkg -l | grep openrtm ii ros-kinetic-openrtm-aist 1.1.0-2xenial-20180809-140258-0800 amd64 This package represents OpenRTM-aist that's built within ROS eco system. ii ros-kinetic-openrtm-aist-python 1.1.0-1xenial-20160613-105740-0700 amd64 Python binding of OpenRTM-AIST (see openrtm_aist for further information). ii ros-kinetic-openrtm-tools 1.4.2-0xenial-20180824-103043-0800 amd64 The openrtm_tools package
その上でhrpsys, rtmros_choreonoid, rtmros_commonはソースから入れてビルドし、choreonoidもrelease-1.6で再インストールしてみましたが、依然としてUSE_ROBOTHARDWARE:=trueで実行すると速度は遅いままです。 一度choreonoidをソースの最新にしてCMakeLists.txtの中のopenrtm_aistのバージョン制限を書き換えて(1.1.2以上→1.1.0以上)無理矢理ビルドを通すことも試してみましたが、choeronoid上の経過時間がUSE_ROBOTHARDWAREの有無で大きく違うという問題は解決しませんでした。
それと参考になるかわからないですが、USE_ROBOTHARDWARE=true/falseでrtprintを試した時の出力は以下のようになっていました。
こちらの16.04環境でも再現してしまったので,ガチのやつかもしれない・・・
AISTSimulatorによるシミュレーションを開始しました。
AISTSimulatorによるシミュレーションが30.397秒時点で終了しました。
計算時間: 43.736 [s], 計算時間 / シミュレーション時間 = 1.43883
AISTSimulatorによるシミュレーションを開始しました。
AISTSimulatorによるシミュレーションが30.111秒時点で終了しました。
計算時間: 172.933 [s], 計算時間 / シミュレーション時間 = 5.74318
@ioryさんに教えてもらった方法ですが、hrpsys_choreonoidのコンパイル時にreleaseビルドを行うとUSE_ROBOTHARDWARE:=trueとしてもほぼ実時間でchoreonoidが動くようになりました。 手順は、既に通常通りにビルドされている環境を想定して、
$ roscd hrpsys_chorenoid
$ git clean -xfd
$ catkin bt --cmake-args -DCMAKE_BUILD_TYPE=Release
です。 なぜUbuntu14.04では大丈夫でUbuntu16.04だとこの問題が起きたかという根本的な原因は不明ですが、この手順でうまくいくということは https://github.com/start-jsk/rtmros_choreonoid/blob/master/hrpsys_choreonoid/iob/RobotHardware_choreonoid.cpp などが問題なのかもしれません。
https://github.com/tu-darmstadt-ros-pkg/hector_slam/pull/32
と同じ問題だと思います CMakeList.txtを直してプルリクを出しておきましょう
プルリク出すまでがトラブルシュートです
2018年12月11日(火) 17:17 Shintaro Komatsu notifications@github.com:
@iory https://github.com/iory さんに教えてもらった方法ですが、hrpsysとhrpsys_choreonoidのコンパイル時にreleaseビルドを行うとUSE_ROBOTHARDWARE:=trueとしてもほぼ実時間でchoreonoidが動くようになりました。 手順は、既に通常通りにビルドされている環境を想定して、
$ roscd hrpsys_chorenoid $ git clean -xfd $ catkin bt --cmake-args -DCMAKE_BUILD_TYPE=Release
です。 なぜUbuntu14.04では大丈夫でUbuntu16.04だとこの問題が起きたかという根本的な原因は不明ですが、この手順でうまくいくということは https://github.com/start-jsk/rtmros_choreonoid/blob/master/hrpsys_choreonoid/iob/RobotHardware_choreonoid.cpp などが問題なのかもしれません。
— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/start-jsk/rtmros_choreonoid/issues/296#issuecomment-446111027, or mute the thread https://github.com/notifications/unsubscribe-auth/AAeG3M1gysFTuqxuDuqM5j-w9C59jE0Xks5u32n8gaJpZM4ZK9bS .
--
◉ Kei Okada
VERBOSE=1 catkin build --this -iv -j 1 -p 1
とすると、実際に実行されているコマンドが見れるんだけど、debugの時とreleaseの時で gccとリンクのコマンドがどう違うか見てもらえるかな?
releaseとdebugでそれぞれcatkin clean hrpsys_choreonodとgit clean -xfdをしてから
VERBOSE=1 catkin build --this -iv -j 1 -p 1 --start-with-this &> hoge.txt
のようにして出力したログを以下のリンクに置いておきました。
・debugのとき(これまで通りの設定)
https://github.com/shintarokkk/misc/blob/master/181211_buildlog/btlog_all_debug.txt
・releaseのとき(iobのCMakeLists.txtを今回のプルリクエストの内容に変更)
https://github.com/shintarokkk/misc/blob/master/181211_buildlog/btlog_all_release.txt
※独断で--start-with-thisをつけましたが、ない方が良ければお教えください
※出力したものを見てみるとだいぶ読みづらいのですが、もっと良い保存方法があれば教えていただけないでしょうか
Releaseのときは、 -O3 -DNDEBUG になってる。 なにもないときは、なにもついていない -gもついていないからdebugですらないような気がする。
default
/usr/bin/c++ -DHRPSYS_PACKAGE_VERSION="\"\\\"..\\\"\"" -DROBOT_IOB_VERSION=4 -DROSCONSOLE_BACKEND_LOG4CXX -DROS_PACKAGE_NAME=\"hrpsys_choreonoid\" -DhrpIo_choreonoid_EXPORTS -I/opt/ros/kinetic/include -I/opt/ros/kinetic/share/xmlrpcpp/cmake/../../../include/xmlrpcpp -I/usr/local/choreonoid/include/choreonoid-1.6 -I/usr/include/qt4 -I/usr/include/qt4/QtOpenGL -I/usr/include/qt4/QtGui -I/usr/include/qt4/QtCore -I/usr/include/eigen3 -I/home/shintarokkk/catkin_ws/test_ws/devel/include -I/home/shintarokkk/catkin_ws/test_ws/devel/include/OpenHRP-3.1 -I/home/shintarokkk/catkin_ws/test_ws/devel/include/coil-1.1 -I/home/shintarokkk/catkin_ws/test_ws/devel/include/openrtm-1.1 -I/home/shintarokkk/catkin_ws/test_ws/devel/include/openrtm-1.1/rtm/idl -I/home/shintarokkk/catkin_ws/test_ws/devel/include/hrpsys -I/home/shintarokkk/catkin_ws/test_ws/devel/include/hrpsys/idl -I/home/shintarokkk/catkin_ws/test_ws/devel/include/hrpsys/io -I/home/shintarokkk/catkin_ws/test_ws/devel/share/hrpsys/src/rtc/RobotHardware -std=c++11 -fPIC -o CMakeFiles/hrpIo_choreonoid.dir/iob.cpp.o -c /home/shintarokkk/catkin_ws/test_ws/src/rtm-ros-robotics/rtmros_choreonoid/hrpsys_choreonoid/iob/iob.cp
Release
/usr/bin/c++ -DHRPSYS_PACKAGE_VERSION="\"\\\"..\\\"\"" -DROBOT_IOB_VERSION=4 -DROSCONSOLE_BACKEND_LOG4CXX -DROS_PACKAGE_NAME=\"hrpsys_choreonoid\" -DhrpIo_choreonoid_EXPORTS -I/opt/ros/kinetic/include -I/opt/ros/kinetic/share/xmlrpcpp/cmake/../../../include/xmlrpcpp -I/usr/local/choreonoid/include/choreonoid-1.6 -I/usr/include/qt4 -I/usr/include/qt4/QtOpenGL -I/usr/include/qt4/QtGui -I/usr/include/qt4/QtCore -I/usr/include/eigen3 -I/home/shintarokkk/catkin_ws/test_ws/devel/include -I/home/shintarokkk/catkin_ws/test_ws/devel/include/OpenHRP-3.1 -I/home/shintarokkk/catkin_ws/test_ws/devel/include/coil-1.1 -I/home/shintarokkk/catkin_ws/test_ws/devel/include/openrtm-1.1 -I/home/shintarokkk/catkin_ws/test_ws/devel/include/openrtm-1.1/rtm/idl -I/home/shintarokkk/catkin_ws/test_ws/devel/include/hrpsys -I/home/shintarokkk/catkin_ws/test_ws/devel/include/hrpsys/idl -I/home/shintarokkk/catkin_ws/test_ws/devel/include/hrpsys/io -I/home/shintarokkk/catkin_ws/test_ws/devel/share/hrpsys/src/rtc/RobotHardware -std=c++11 -O3 -DNDEBUG -fPIC -o CMakeFiles/hrpIo_choreonoid.dir/iob.cpp.o -c /home/shintarokkk/catkin_ws/test_ws/src/rtm-ros-robotics/rtmros_choreonoid/hrpsys_choreonoid/iob/iob.cpp
皆様、いろいろと教えていただきありがとうございました。https://github.com/start-jsk/rtmros_choreonoid/pull/297 で修正がマージされたためクローズします。
最近使用しているデスクトップのOSをUbuntu14.04からUbuntu16.04に変え、ほぼhttps://github.com/start-jsk/rtmros_choreonoid/issues/275 の通りに環境構築を行いました(ただし、choreonoidのバージョンはrelease-1.6にし、euslisp等はソースから入れました)。 新しい環境で https://github.com/start-jsk/rtmros_choreonoid/blob/master/hrpsys_choreonoid_tutorials/launch/jaxon_red_choreonoid.launch#L3 のオプションUSE_ROBOTHARDWAREをONにして動かしたところ、極端にchoreonoidの回る速度が落ちました。Ubuntu14.04を使っていた時はこのような症状はなかったように思うのですが、どなたか原因に心当たりのある方がいればお教えいただけないでしょうか。
参考として、今回使ったデスクトップ環境と速度計測結果を貼っておきます。 ・デスクトップ CPU: Intel(R) Core(TM) i7-4770K CPU @ 3.50GHz 4コア8スレッド GPU: nvidia GeForce GTX 780 (ドライババージョン: 410.78) OS: VERSION="16.04.5 LTS (Xenial Xerus)"
・jaxon_red_choreonoid.launchをchoreonoid上の時間で40秒回すのにかかった時間(ストップウォッチ計測なので誤差±1秒程度あります) USE_ROBOTHARDWARE=false: 44秒 USE_ROBOTHARDWARE=true: 200秒