choreonoid v1.7.0のdockerイメージを作ってみた
Choreonid v1.7.0リリースされた。作者によるとこのリリースがこれまでの開発の区切りになるということで、いいタイミングではないかと思い、dockerイメージ作ってみた。
dockerhubリポジトリ
$ docker pull hsnuhayato/choreonoid1.7
でpullすれば良い。
Dockerfileもgithubに上げた。基本はchoreonoidリポジトリのchoreonoid/misc/docker/Dockerfile-ubuntu-xenial-gccと同じだが、
- ROSとの連携を想定して、ros:kineticをベースに作った。
-
OpenRTMのversionを1.1.2にダウングレードした。OpenRTM1.2.0の一部APIが更新されたが、choreonoidはまだ追いついてないようで
https://discourse.choreonoid.org/t/openrtm-aist-1-2-0/273/3
そのため、- add-apt-repository http://openrtm.org/pub/Linux/ubuntu/ レポジトリではなく、
- add-apt-repository ppa:hrg/daily レポジトリに変更した。
前者でapt installすると1.2.0がインストールされるが、後者はまだ1.1.2のまま。
- hrpsysのrosパッケージも入れた。RTCを扱うときによくhrpsys_config.pyとrtm.pyの世話になるので。
テスト
以下のスクリプトを実行し、dockerの環境を起動
#!/bin/bash
xhost +si:localuser:root
docker run -it --name choreonoid_sandbox --rm \
-v $(pwd):/mnt --workdir=/mnt \
--net host \
--privileged \
--env="DISPLAY" \
--env="QT_X11_NO_MITSHM=1" \
--env="LANG=ja_JP.UTF-8" \
hsnuhayato/choreonoid1.7 /bin/bash
ホスト環境にomniNamesが起動していなければ、
docker環境に入って
# /opt/ros/kinetic/bin/rtm-naming
でネームサーバー起動する。ホスト環境にomniNamesすでに起動しているなら不要。
次にdocker環境で
# usr/local/bin/choreonoid
でchoreonoidを起動(表示がおかしい場合にchoreonoidウィンドウ画面の最大化ボタンを押すと大体治る)。
次にchoreonoidのUIから、File -> open object -> /usr/local/share/choreonoid-1.7/project/OpenRTM-SR1Walk.cnoidを選んでプロジェクト読み込む。
最後に緑色の"Start simulation from the beginning"ボタンを押してロボットが歩き出す。RTMでロボット動かすのを確認した。
これでchoreonoid上の開発環境の構築が完了!あとはdocker起動時にvolumeでホストのディスクマウントしてバリバリ開発すれば良い!
おまけ
gtestをコンパイルする環境も入れた。
TODO GUI日本語化
現状だと起動するとGUIが英語になってるね...
apt-get update && apt-get install -y locales && locale-gen ja_JP.UTF-8 && echo "export LANG=ja_JP.UTF-8"
にしても日本語にならない...どなた様うまく日本語化できたら教えてください。
次回を待て!!
Author And Source
この問題について(choreonoid v1.7.0のdockerイメージを作ってみた), 我々は、より多くの情報をここで見つけました https://qiita.com/wukunn/items/07f7fa38e3d1e013973e著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .