Docker を用いて ROS 環境構築
最近ROSをちゃんとはじめようとチュートリアルとかとにらめっこしています.
ROSといえば昔なんとなくで導入したらAnacondaの他のPython環境とブッキングして大変な目に合ってからさわってません.
ossyaritoori.hatenablog.com
他の環境とのブッキングを避けていろいろやりたいという背景からDockerを使用しています.
Virtualenv?知らね.
ROSのイメージをPull
ROSのイメージをさくっとpullできます.
docker/Tutorials/Docker - ROS Wiki
以下のコードを実行しますが,Permissionがなかったのでsudoでやりました.
docker pull ros
Permissionが無いと言われたら?
以下のとおり.$USERは自分のUSER名を用いてください.
sudo usermod -a -G docker $USER
終わったら再起動するのが安心です.
使い方
初回は
docker run -it ros
でrosのイメージを起動してください.
その後別のターミナルでIDなどを確認します.
docker ps -l
僕の環境ではこうなりました.
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 1b38c11303cd ros "/ros_entrypoint.s..." 2 hours ago Up 14 seconds lucid_sinoussi
Dockerを立ち上げるときはこちら.<ID>は変えてね.なお,複数ターミナルからstartしないよう注意.
sudo docker start -i 1b38c11303cd
そして立ち上げたDockerに入るときはこちら.IDは(略).こちらもstartされてないコンテナには入れませんので注意.
sudo docker exec -it 1b38c11303cd bash
出るときはexitで出ます.
正しく動作するはずですが正しい手順かはしりません.
ROSテスト
書いてから思ったのですがROSのチュートリアルをある程度読んでいる前提で記事を書いています.
何もわからない人は,とりあえずなんか動いていることを確認したら後はご自由に.
startしたターミナルでMasterプログラムを走らせましょう.
roscore
これは簡単.
(はじめての人へ:これはサーバ的なプログラムでこれを立ち上げて他のターミナルからこいつにアクセスします.プログラムが待機状態になりっぱなのは仕様です.)
なお,execを用いて客として入った?場合は以下のコードを実行しないとROSのコードを実行できません.
source /opt/ros/kinetic/setup.bash
ああん?
rostopic list
でroscoreが動いていることを確かめればOK.