Mac で ROS の環境構築
Mac OSX で ROS を動かすまでの環境構築手順です。
環境
- Mac OSX El Capitan
- ROS Kinetic
ROS の環境構築
GUI 系のツールを動かそうとすると Qt5 周りの依存関係でハマったので、とりあえず ROS の基本パッケージのみ(ROS-Comm)の環境構築を行いました。
基本的には公式ページの手順 に則るだけです。
Homebrew の設定
Homebrew を最新版にし cmake をインストールしておきます。
$ brew update $ brew install cmake
ROS のインストールに必要な依存パッケージをインストールできるようにします。
$ brew tap ros/deps $ brew tap osrf/simulation $ brew tap homebrew/versions $ brew tap homebrew/science
Python, Pip の設定
Homebrew でインストールしたパッケージを Python から使えるようにします。
$ mkdir -p ~/Library/Python/2.7/lib/python/site-packages $ echo "$(brew --prefix)/lib/python2.7/site-packages" >> ~/Library/Python/2.7/lib/python/site-packages/homebrew.pth
pip が入っていない場合は pip をインストールします。
$ brew install python # brew Python comes with pip $ sudo -H python -m pip install -U pip # Update pip
pip でパッケージをインストールします。
$ sudo -H python -m pip install -U wstool rosdep rosinstall rosinstall_generator rospkg catkin-pkg Distribute sphinx
rosdep の初期化
rosdep をインストールできたら、初期化を行っておきます。
$ sudo -H rosdep init
$ rosdep update
catkin workspace の作成
catkin_ws というディレクトリを作成します。
$ mkdir ~/catkin_ws $ cd ~/catkin_ws
ROS のインストール
今回は GUI 系のツールなしの、最小限の ROS パッケージのセットをインストールします。
$ rosinstall_generator ros_comm --rosdistro kinetic --deps --wet-only --tar > kinetic-ros_comm-wet.rosinstall $ wstool init -j8 src kinetic-ros_comm-wet.rosinstall
workspace の初期化が済んだら、依存するパッケージをインストールします。
$ rosdep install --from-paths src --ignore-src --rosdistro kinetic -y
そして workspace 内の各パッケージをビルド、インストールします。
$ ./src/catkin/bin/catkin_make_isolated --install -DCMAKE_BUILD_TYPE=Release
ROSの動作を確認
ターミナルに ROS の環境変数を設定しておきます。
$ source ~/catkin_ws/install_isolated/setup.bash
ROS の動作を確認します。
$ roscore & $ rosnode list /rosout $ rosnode info /rosout -------------------------------------------------------------------------------- Node [/rosout] Publications: * /rosout_agg [rosgraph_msgs/Log] Subscriptions: * /rosout [unknown type] Services: * /rosout/set_logger_level * /rosout/get_loggers contacting node http://YumaM-iMac-3.local:53388/ ... Pid: 26340 $ rosparam list /rosdistro /rosversion /run_id
動いた!