ROSで足を動かしてみる - セットアップ編

ROS(Robot Operating System)

ROSはOSSのロボット制御ソフトウェアです。
部品もそろってきたので、まずはサーボモータ3個を使った足を動かしてみたいと思います。
ja/ROS/Tutorials - ROS Wiki


ROSの仕組みやセットアップについては以下のサイトが非常に参考になりました。
qiita.com

構築

環境

RaspberryPiZeroで組み立てたいですが、セットアップに3時間以上かかるため、並行してRaspberryPi4で動作確認をしました。
※同じOSだったため、手順は同じです。

  • RaspberryPi Zero W + Raspbian(18.04)
  • Raspberry Pi 4 + Raspbian(18.04)
ROSインストール

ROSのマニュアルをもとに構築していきます。
http://wiki.ros.org/ROSberryPi/Installing%20ROS%20Melodic%20on%20the%20Raspberry%20Pi

### 各種パッケージインストール
$ sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'
$ sudo apt-key adv --keyserver hkp://ha.pool.sks-keyservers.net:80 --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654
$ sudo apt update
$ sudo apt install -y python-rosdep python-rosinstall-generator python-wstool python-rosinstall build-essential cmake

### ROS初期化
$ sudo rosdep init
  Wrote /etc/ros/rosdep/sources.list.d/20-default.list
  Recommended: please run
        rosdep update
$ rosdep update
   reading in sources list data from /etc/ros/rosdep/sources.list.d
   ..snip..
   updated cache in /home/pi/.ros/rosdep/sources.cache

### 作業ディレクトリを作成して、ROSインストール
$ mkdir -p ~/ros_catkin_ws
$ cd ~/ros_catkin_ws
## ROSにはいくつかのパッケージが存在していて、以下は最低限の機能がインストールされる。
$ rosinstall_generator ros_comm --rosdistro melodic --deps --wet-only --tar > melodic-ros_comm-wet.rosinstall
$ ls
   melodic-ros_comm-wet.rosinstall
$ wstool init src melodic-ros_comm-wet.rosinstall
  ..snip..
  update complete.

### 不足しているライブラリの確認、インストール
$ rosdep install -y --from-paths src --ignore-src --rosdistro melodic -r --os=debian:buster
  ..sinip..
  #All required rosdeps installed successfully

### ワークスペースの設定
# sudoじゃないとインストールに失敗するため、一度sudoで/optへインストールする
$ sudo ./src/catkin/bin/catkin_make_isolated --install -DCMAKE_BUILD_TYPE=Release --install-space /opt/ros/melodic
  ..snip..
  <== Finished processing package [54 of 54]: 'roswtf'
$ source /opt/ros/melodic/setup.bash
$ cd ~/ros_catkin_ws/src
$ catkin_init_workspace
$ cd ..
$ catkin_make

$ echo "source  /opt/ros/melodic//setup.bash" >> ~/.bashrc
$ echo "export ROS_PACKAGE_PATH=/home/pi/ros_catkin_ws/src:/opt/ros/melodic/share" >> ~/.bashrc
$ source ~/.bashrc


少し手順が冗長な気がしますが公式サイトのRaspberryPiのインストール手順実施後にワークスペースに設定を実施しています。
ja/catkin/Tutorials/create_a_workspace - ROS Wiki


動作確認

構築が完了したら正常に起動するか確認をします。

$ roscore
... logging to /home/pi/.ros/log/d6f76424-9d7e-11ea-928e-dca6329e79b3/roslaunch-raspberrypi-21977.log
Checking log directory for disk usage. This may take a while.
Press Ctrl-C to interrupt
Done checking log file disk usage. Usage is <1GB.

started roslaunch server http://raspberrypi:34751/
ros_comm version 1.14.5


SUMMARY
========

PARAMETERS
 * /rosdistro: melodic
 * /rosversion: 1.14.5

NODES

auto-starting new master
process[master]: started with pid [21987]
ROS_MASTER_URI=http://raspberrypi:11311/

setting /run_id to d6f76424-9d7e-11ea-928e-dca6329e79b3
process[rosout-1]: started with pid [21998]
started core service [/rosout]