start-jsk / rtmros_choreonoid

using chreonoid for simulator with hrpsys and other ros system
9 stars 43 forks source link

16.04で動かすためのTIPS #275

Closed ishiguroJSK closed 4 years ago

ishiguroJSK commented 6 years ago

オススメ2018verはこんな感じですかね? 以下の~/catkin_ws/tutorial/src/.rosinstallで,

- git:
    local-name: hrpsys
    uri: https://github.com/fkanehiro/hrpsys-base.git
- git:
    local-name: openhrp3
    uri: https://github.com/fkanehiro/openhrp3.git
- git:
    local-name: rtm-ros-robotics/rtmros_choreonoid
    uri: https://github.com/start-jsk/rtmros_choreonoid.git
- git:
    local-name: rtm-ros-robotics/rtmros_common
    uri: https://github.com/start-jsk/rtmros_common.git
- git:
    local-name: rtm-ros-robotics/rtmros_hrp2
    uri: https://github.com/start-jsk/rtmros_hrp2.git
- git:
    local-name: rtm-ros-robotics/rtmros_tutorials
    uri: https://github.com/start-jsk/rtmros_tutorials.git
- git:
    local-name: trans_system
    uri: https://github.com/jsk-ros-pkg/trans_system.git
- hg:
    local-name: multisense
    uri: https://bitbucket.org/crl/multisense_ros
    version: 3.4.9
- git:
    local-name: openrtm_aist
    uri: http://github.com/tork-a/openrtm_aist-release
- git:
    local-name: openrtm_aist_python
    uri: http://github.com/tork-a/openrtm_aist_python-release
- git:
    local-name: rtctree
    uri: http://github.com/tork-a/rtctree-release
- git:
    local-name: rtshell
    uri: http://github.com/tork-a/rtshell-release
- git:
    local-name: rtsprofile
    uri: http://github.com/tork-a/rtsprofile-release
cd ~/catkin_ws/tutorial/src
wstool update
cd ../
rosdep install -v -r --from-paths src --ignore-src -y
sudo apt-get purge ros-kinetic-hrpsys* ros-kinetic-openrtm* openrtm*
catkin b -c
(.bashrcに以下追記)
export CNOID_INSTALL_DIR=/usr/local/choreonoid
export CNOID_RTM_DIR=~/catkin_ws/tutorial/devel
export PKG_CONFIG_PATH=${CNOID_INSTALL_DIR}/lib/pkgconfig:$PKG_CONFIG_PATH
export PATH=${CNOID_INSTALL_DIR}/bin:$PATH
cd
sudo apt-get install libyaml-dev
git clone https://github.com/s-nakaoka/choreonoid.git
cd choreonoid
misc/script/install-requisites-ubuntu-16.04.sh
mkdir build
cd build
## not use python3, and not use pybind11 for backward compatibility (python3 pybind11に関するオプション消えてる気もする)
cmake .. -DCMAKE_INSTALL_PREFIX=${CNOID_INSTALL_DIR} -DOPENRTM_DIR=${CNOID_RTM_DIR} -DENABLE_INSTALL_RPATH=ON -DENABLE_CORBA=ON -DBUILD_CORBA_PLUGIN=ON -DBUILD_OPENRTM_PLUGIN=ON -DBUILD_HELLO_WORLD_SAMPLE=ON -DBUILD_SPRING_MODEL_SAMPLE=ON -DUSE_PYTHON3=OFF -DUSE_PYBIND11=OFF
make -j8
sudo make install
pkill -9 choreonoid; rtmlaunch hrpsys_choreonoid_tutorials jaxon_red_choreonoid.launch USE_VISION:=False

からの

ipython -i `rospack find hrpsys_choreonoid_tutorials`/scripts/jaxon_red_setup.py "JAXON_RED(Robot)0"
hcf.abc_svc.goPos(1,0,0)

roseus `rospack find hrpsys_ros_bridge_tutorials`/euslisp/jaxon_red-interface.l
(jaxon_red-init)
send *ri* :go-pos 1 0 0

で実行確認

choreonoid本体のcmake時に export CNOID_RTM_DIR=${HOME}/ros/indigo_parent/develexport CNOID_RTM_DIR=/opt/ros/kinetic に読み替えて, (この設定もしないとrtlsとかでエラーが出る気がする

$ sudo vi /etc/omniORB.cfg
giopMaxMsgSize = 209715200     # 200MB に設定

) 以下の.rosinstallで最小構成のワークスペースを作って,

- git:
    local-name: hrpsys
    uri: https://github.com/fkanehiro/hrpsys-base.git
- git:
    local-name: openhrp3
    uri: https://github.com/fkanehiro/openhrp3.git
- git:
    local-name: rtm-ros-robotics/rtmros_choreonoid
    uri: https://github.com/start-jsk/rtmros_choreonoid.git
- git:
    local-name: rtm-ros-robotics/rtmros_common
    uri: https://github.com/start-jsk/rtmros_common.git
- git:
    local-name: rtm-ros-robotics/rtmros_hrp2
    uri: https://github.com/start-jsk/rtmros_hrp2.git
- git:
    local-name: rtm-ros-robotics/rtmros_tutorials
    uri: https://github.com/start-jsk/rtmros_tutorials.git
- git:
    local-name: trans_system
    uri: https://github.com/jsk-ros-pkg/trans_system.git
- hg:
    local-name: multisense
    uri: https://bitbucket.org/crl/multisense_ros
    version: 3.4.9

○○ws/以下でrosdep install -v -r --from-paths src --ignore-src -yして

catkin b -cでビルドする(gazebo関係がエラー出るけどそれはそれとして,) 最近hrpsys_choreonoidのビルドでTimedRobotState2周りでエラーが出る気もするので (古いaptのhrpsysのidl見に行ってる気がする.ros-kinetic-hrpsys消すとそれはそれでhrpsys/idl/Img.hhがないとかエラーが出る),

sudo mv /opt/ros/kinetic/include/hrpsys/idl/RobotHardwareService.hh /opt/ros/kinetic/include/hrpsys/idl/RobotHardwareService.hh.org
sudo cp ~/○○ws/devel/include/hrpsys/idl/RobotHardwareService.hh /opt/ros/kinetic/include/hrpsys/idl/

とかしちゃうと一応ビルドが通って動く. ちゃんと直したほうがいい気もする.

YoheiKakiuchi commented 6 years ago

16.04(kinetic)に特有なことは無いと思っているんだけどどうだろうか?

これは、リンクされるrtmのヘッダーがあるところを指定する必要があると思っている。 なので、ソースで入っていると、上記で、aptで入っていると後者。

export CNOID_RTM_DIR=${HOME}/ros/indigo_parent/devel
を
export CNOID_RTM_DIR=/opt/ros/kinetic

こちらは、

$ sudo vi /etc/omniORB.cfg
giopMaxMsgSize = 209715200     # 200MB に設定

envで設定されていて、必要ないはず。あってもとくに悪さはしないが。 https://github.com/start-jsk/rtmros_choreonoid/blob/master/hrpsys_choreonoid/launch/choreonoid.launch#L21

最近hrpsys_choreonoidのビルドでTimedRobotState2周りでエラーが出る気もするので (古いaptのhrpsysのidl見に行ってる気がする.ros-kinetic-hrpsys消すとそれはそれでhrpsys/idl/Img.hhがないとかエラーが出る),

これもよく見る気がするけど、ソースとaptが混ざっているとうまく行かない。 全部ソースならうまく行く気がしている。全部aptの場合はどうだろう?

ishiguroJSK commented 6 years ago

確かに16.04特有ではないですね. (久しぶりに一から環境構築してみたというだけでした) CNOID_RTM_DIRはhrpsysがある方を指せばいいんですね,間違ってました. giopMaxMsgSize = 209715200はやっぱり書かないとrtmlaunchそのままではいろいろ不具合出たのですが, 僕だけですかね・・・VM上だからとかいろいろ地雷踏んでる気もしますが・・・ hrpsysとopenhrp3が両方aptの場合もビルドと実行共に問題なく動いているように見えます.

YoheiKakiuchi commented 6 years ago

giopMaxMsgSize = 209715200はやっぱり書かないとrtmlaunchそのままではいろいろ不具合出たのですが, 僕だけですかね・・・VM上だからとかいろいろ地雷踏んでる気もしますが・・・

これは、indigoではなかったのでkinetic特有かも。 maxsizeが小さいと、model-loaderでloadが失敗するので、choreonoidだけでなくて、hrpsys-simulatorもうまく行かないかもしれないのだけど、あっちはテストしてるから問題ないはずだしなあ。 モデルのサイズが大きい(JAXON)と問題あるかもしれない。

ishiguroJSK commented 6 years ago

やっぱり/etc/omniORB.cfg戻すとrtlsでエラー出たりしますね. あくまでVM上の16.04での報告ですが・・・ CNOID_RTM_DIRはhrpsysのRobotHardwareのidlに変更があったらそのhrpsys側を指してChoreonoidビルドし直しということになるんでしょうか? (つまり別バージョンのRobotHardwareを含むhrpsysに対して同じChoreonoidを使うのは良くないということに?)

YoheiKakiuchi commented 6 years ago

CNOID_RTM_DIRはhrpsysのRobotHardwareのidlに変更があったらそのhrpsys側を指してChoreonoidビ ルドし直しということになるんでしょうか?

hrpsysのバージョンは問題ないと思います。 主に、openrtmのバージョンをあわせる(これも必須かは疑問)ことを目的としてます。 openrtmもソースとバイナリは混在しない方が無難です。

2018年4月7日 0:18 Yasuhiro Ishiguro notifications@github.com:

やっぱり/etc/omniORB.cfg戻すとrtlsでエラー出たりしますね. あくまでVM上の16.04での報告ですが・・・ CNOID_RTM_DIRはhrpsysのRobotHardwareのidlに変更があったらそのhrpsys側を指してChoreonoidビ ルドし直しということになるんでしょうか? (つまり別バージョンのRobotHardwareを含むhrpsysに対して同じChoreonoidを使うのは良くないということに?)

— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/start-jsk/rtmros_choreonoid/issues/275#issuecomment-379286142, or mute the thread https://github.com/notifications/unsubscribe-auth/ACS-5HEOyi1S80IwuHfIt0ylXf1Itzqvks5tl4dQgaJpZM4TKIOQ .

ishiguroJSK commented 6 years ago

openrtm関連もhrpsysもCNOID_RTM_DIRも全てソースにして,aptのopenrtm,hrpsysを消したらビルドも実行も出来き,/etc/omniORB.cfgの設定なしでもうまく動きました. 今までhrpsysはソースでopenrtmとCNOID_RTM_DIRはapt側で動かしていましたが,たまたま動いてた感ありますね・・・

ishiguroJSK commented 6 years ago

いろいろやってて気づいたのですが

    local-name: rtm-ros-robotics/rtmros_○○

とするか

    local-name: rtmros_○○

とするかでhrp2wのビルドができるorできないが分岐しますね・・・

ishiguroJSK commented 4 years ago

18.04に移行しつつあるのでclose