ラベル Fuerte の投稿を表示しています。 すべての投稿を表示
ラベル Fuerte の投稿を表示しています。 すべての投稿を表示

2012年5月26日土曜日

rosintall&rosws入門

rosintallとrosws (ROS workspace)の仕組みについて調べてみました。

rosintallは、ソースからROSのスタックを持ってきてビルドするためのものでした。
fuerteになって、rosintallはroswsで実質置き換えられたようです。
rosintallは、
rosintall, rosws, roslocate, roscoという4つのコマンドでできているようです。

roswsはrosintallでできることは全部できる、と書いてあるので、
roswsをマスターしましょう。

もとのチュートリアルはこちら。

http://www.ros.org/doc/api/rosinstall/html/rosws_tutorial.html

1.インストール

Ubuntuの人は以下のコマンドで入れることができます。

$ sudo apt-get install python-pip
$ sudo pip install -U rosinstall

2.ワークスペースの初期化

以下のコマンドを打って、/tmp/rosws_tutorialというディレクトリをワークスペースにしてみましょう。

$ cd /tmp
$ mkdir rosws_tutorial
$ cd rosws_tutorial
$ rosws init
Writing /tmp/rosws_tutorial/.rosinstall
(Over-)Writing setup.sh, setup.bash, and setup.zsh in /tmp/rosws_tutorial

rosws init complete.

Type 'source ./setup.bash' to change into this environment.
Add that source command to the bottom of your ~/.bashrc to set it up every time you log in.

If you are not using bash please see http://www.ros.org/wiki/rosinstall/NonBashShells

すると以下のファイルができます。
$ ls -a
./  ../  .rosinstall  setup.bash  setup.sh  setup.zsh
以下のようなコマンドを打ってみると、ワークスペースがセットされました。
$ rosws info
workspace: /tmp/rosws_tutorial
ROS_ROOT: None
もし、はやまって環境変数ROS_WORKSPACEがすでにセットされてるとエラーになります。

ERROR: Ambiguous workspace: ROS_WORKSPACE=/home/ogutti/ros/otl-ros-pkg, /tmp/rosws_tutorial/.rosinstall

そのときは↓のようにしましょう。
$ unset ROS_WORKSPACE
(ROS_WORKSPACEは、rosws initで作ったsetup.bashを読み込むことでセットするもののようです。)

3.ROSディストロの情報をセット

以下のようにするとfuerteの環境がセットされるみたいです。これをやることで/opt/ros/fuerte/setup.bashを読みこまなくてよくなります。
$ rosws merge /opt/ros/fuerte/.rosinstall
     Performing actions:

     Add new elements:
  /opt/ros/fuerte/share,  /opt/ros/fuerte/share/ros,  /opt/ros/fuerte/setup.sh,  /opt/ros/fuerte/stacks

Overwriting /tmp/rosws_tutorial/.rosinstall

rosws update complete.

Do not forget to do ...
$ source /tmp/rosws_tutorial/setup.sh
... in every open terminal.
Config changed, maybe you need run rosws update to update SCM entries.


使い始めるには生成したsetup.bashを読み込みましょう。

$ source setup.bash

これで、ROS_WORKSPACE環境変数がセットされました。
確かめてみてください。

$ echo $ROS_WORKSPACE
$ roscd
すると、ここに来れますね。

4.ワークスペースの拡張

折角なのでrosrubyでも入れてもらいたいところですが、rosruby入れるとメッセージのビルドが遅くなって迷惑をかけるので、最新の私のリポジトリorz-ros-pkgでも入れましょう。

$ rosws info
workspace: /tmp/rosws_tutorial
ROS_ROOT: /opt/ros/fuerte/share/ros

 Localname                 S SCM  Version-Spec UID  (Spec) URI  (Spec) [https://...]
 ---------                 - ---- ------------ ----------- -------------------------
 orz-ros-pkg               x git  master                   github.com/OTL/orz-ros-pkg.git
 /opt/ros/fuerte/stacks                                    
 /opt/ros/fuerte/share                                     
 /opt/ros/fuerte/share/ros 

以上のように表示されたでしょうか?ちゃんとorz-ros-pkgが登録されています。

$ rosws update

すると、見事に登録されたorz-ros-pkgがインストール(ダウンロード)されました。
新しいリポジトリを加えるときは、
  1. rosws mergeでrosintallファイルを追加
  2. rosws updateでダウンロード&アップデート。
という流れみたいですね。

これで大体つかめたんじゃないでしょうか?
もっと機能は豊富なので、知りたい人は原典URLを参照ください。

まとめ

ということで今までと↓が変更点です。
ここでは試しに/tmp/rosws_tutorialでやりましたが、本番は~/rosなどでやるといいでしょう。
  • .bashrcでROS_PACKAGE_PATHを直接編集しない
  • .bashrcにROS_WORKSPACEを書かない
  • .bashrcで/opt/ros/fuerte/setup.bashを読み込まない
  • 作成したWORKSPACEのsetup.bashを読み込む

2012年5月5日土曜日

ROS Fuerte Ubuntu 12.04 (precise)対応

Ubuntu12.04でもapt-getでROSがインストールできるようになりました。

私の環境はUbuntu12.04アップデート時にいろいろ失敗してしまい、
入れるのに少し苦労しましたが、普通の人は、

$ sudo apt-get update
$ sudo apt-get install ros-fuerte-desktop-full

とでもすればOKでしょう。
setup.bashの読み込みもお忘れなく。

2012年4月24日火曜日

ROS Fuerteリリース

Fuerteが正式リリースされました!

http://www.ros.org/news/2012/04/ros-fuerte.html

すでにベータで使っているので個人的には特に感慨もないんですが。

Fuerteで気になっていたのがcatkinです。
ビルドシステムがrosmakeじゃなくなるというのでビビっていました。

でも、結局Fuerteではrosmakeが基本みたいです。
同じように心配している人がanswers.ros.orgにいました。

http://answers.ros.org/question/30132/dependencies-and-rosmake-in-fuerte-and-following

結局、catkinにしたのはPCLとか、「外部ライブラリ」を自然に取り込みたかったから(普通のライブラリみたいにROSのライブラリを使えるようにしたいから)、
ということみたいです。なので、普通のstackはrosmake使ってね、ってことみたいです。

で、次のGroovy Garapagosでは本格的にcatkin化するっぽい?ですね。

Fuerteの主な変更点は

  • gazebo 1.0 (DARPA Robotics Challengeでも使われるっぽい)
  • PCL 1.5
  • ROS messageライブラリが単独で動くように
  • rvizのQT化
  • rosdep2 (rosdep.yamlじゃなくて中央で依存情報をまとめられた)
っていう感じですかね。
↓が詳しいです。

FuerteはROSがGarapagos化しないための一歩って感じですね。
で、次のGarapagosでまさにGarapagosから出てくるって気がします。
Ubuntuの本体のリポジトリに入れてくるんじゃないかなー。

Updateではまった人はこちらを参照。

EigenとかUbuntuのを普通に使うから、CMakeLists.txtにも↓みたいに普通に書かないとだめになったぽいすね。全般的にそんな方向。opencv2パッケージも削除方向だし。

find_package(Eigen REQUIRED)
include_directories(${EIGEN_INCLUDE_DIRS})
add_definitions(${EIGEN_DEFINITIONS})

rosdep2の中央集権リポジトリはgithubで更新されます。
rosの開発自体かなりgithubに移ってきています。


2012年3月18日日曜日

ROS Fuerte アルファ版試してみる

Fuerteのアルファ版がでています。
普通に

$ apt-get install ros-fuerte-desktop-full

などとするとインストールできます。
では中身を見てみますか。

$ ls -F /opt/ros/fuerte/
bin/ etc/ lib/ setup.sh share/
env.sh* include/ setup.bash setup.zsh stacks/

おー、構成が結構変わってますね。ではbinは・・・・

$ ls /opt/ros/fuerte/bin/
add_gaussian_noise pcd_viewer
boundary_estimation plane_projection
catkin-build-debs-of-workspace registration_visualizer
catkin-bump-version rosbag
catkin-generate-debian rosboost-cfg
catkin-parse-stack rosclean
catkin-topological-order roscore
catkin-version roscreate-pkg
catkin_install_parse rosgraph
catkin_util.sh roslaunch
cluster_extraction roslaunch-deps
compute_cloud_error roslaunch-logs
concatenate_points_pcd rosmake
convert_pcd_ascii_binary rosmaster
crop_to_hull rosmsg
elch rosmsg-proto
em rosnode
extract_feature rospack
fpfh_estimation rosparam
gen_cpp.py rosrun
gen_lisp.py rosservice
genmsg_py.py rossrv
gensrv_py.py rosstack
git-catkin rostest
git-catkin-generate-debian rostopic
git-catkin-import-upstream rosunit
git-catkin-set-upstream rosversion
git-catkin-track-all roswtf
gp3_surface rxbag
icp rxconsole
icp2d rxgraph
marching_cubes_reconstruction rxloggerlevel
mesh2pcd rxplot
mesh_sampling spin_estimation
normal_estimation swig
octree_viewer timed_trigger_test
outlier_removal transform_point_cloud
passthrough_filter vfh_estimation
pcd2ply virtual_scanner
pcd2vtk voxel_grid
pcd_convert_NaN_nan

おー、たっぷり入っています。
しかし、すべてがこっちに来たわけじゃないみたいです。
たとえばrvizはまだstacksの下にありますね。

$ roscd
No ROS_WORKSPACE set. Please set ROS_WORKSPACE to use roscd with no arguments.

あ、roscdの仕様もいつのまにか変わっていますね。引数なしの場合に
任意の場所(ROS_WORKSPACE)に飛べるようになっていますね。

$ roscd std_msgs
すると
/opt/ros/fuerte/share/std_msgs
に飛びます。

fuerteはstacksとros直下が入り乱れる過渡期のdistroになりそうです。

2012年3月2日金曜日

Fuerte Turtleでの変更点

次のROSのリリースFuerteについて書きます。
http://ros.org/wiki/fuerte

何気にその変更点の一つを見ていたら結構びっくりすることが書いてあったので紹介します。
http://ros.org/reps/rep-0122.html

ここに書いてあるファイル構成についてです。
今は
$ ls /opt/ros/electric
とすると、
ros/
setup.bash
setup.sh
setup.zsh
stacks/
と表示されると思いますが、

これがFuerteでは


bin/
etc/
include/
lib/
stacks/

となるようです。
しかも、
bin/にはrosのシステム用のバイナリだけじゃなく、ユーザのバイナリが直接置かれるようです。これまではrosrunがあったので、バイナリの名前は適当に付けられましたが、これからは被らないようにしないといけなくなるようです。

stacksは互換性のために一応残すようです。


ライブラリも同様にlibに入れられて、Pythonのライブラリも集められるので、
roslib.load_manifest()といったおまじないが必要なくなります。


これはrosmakeに変わり、catkinというシステムでビルドされるようになるためのようです。

まあ、より自然で使いやすい形になりますね。

これにより、ROSのスタックをprefix(/opt/ros/fuerte)を/usrに変えるただけで、
普通のLinuxのパッケージにできるようになり、
普通のdebian/Ubuntuパッケージとして配布できるようにするのが狙いのようです。
一方で複数のバージョン(cturtle, diamondback,electricなど)を共存させることもできる、ということで、このようなシステムになるみたいです。

ROSが不思議なrospackシステムでガラパゴス化してしまうのを防ぎたいのでしょう。
Fuerteの次のリリースはGROOVY GALAPAGOSですが。