目的
Raspberry Pi 3B+(Raspbian buster)にROS kinetic をインストールしてturtlesimを動すまで辿り着けませんでした。備忘録です。
※ Raspbian busterにROS kinetic をインストールするために必要なboostライブラリのインストールに失敗して挫折しました。
※ 代わりに、Raspbian stretchでROS kinetic インストールしましたがturtlesimパッケージ取得方法が分からず挫折しました。
※ 代わりに、Raspberry Pi 3B+(Ubuntu Mate 16.04LTS)にROS kinetic をインストールしてturtlesimを動かすと正常に動きそちらを使うことにしました。
準備
▪️RaspberryPi 3B+を用意します。
Raspberry Pi 3 Model B+ スターターセット
▪️Raspberry Pi 3B+(Raspbian buster)を準備します
Raspberry Pi 3 Model B+の初回セットアップ(購入から起動まで)
raspbian/images 日本ミラーサイト
公式サイトだとダウンロードに時間が掛かるためミラーサイトからデータ取得します。
▪️Raspberry Pi 3B+(Raspbian buster)にROS kinetic をインストールします。
Installing ROS Kinetic on the Raspberry Pi
Raspberry Pi 3 にROS kinetic をインストールしてみました。
公式サイトのRaspbian busterを利用する場合はROS wiki記載の通り boost 1.58 ライブラリをインストールする必要があります。
[Boostライブラリのビルド方法] (https://boostjp.github.io/howtobuild.html)
Installing ROS Kinetic on the Raspberry Pi
On Raspbian Buster the compilation may fail with "'boost/tr1/unordered_set.hpp' file not found". This is because rospack version used in Kinetic is dependent on boost 1.58. To fix this error try installing boost 1.58 manually.
しかしながら、RaspberryPi3B++busterだと、./b2 install の実行後インストール完了せず諦めました。(詳細は後述※1)
--
そもそもRaspbian busterはRaspiberryPi4用のimageかもしれないと思い、
Raspbian stretchで同手順を実施しました。
するとstretch + ROS kineticインストール完了しましたが、
その後のturtlesimパッケージインストールできませんでした。(詳細は後述※2)
sourcelist更新すれば良いかもしれませんが方法が分からず挫折しました。
To install and start the turtlesim:
sudo apt-get install ros-$(rosversion -d)-turtlesim
$ sudo apt-get install ros-kinetic-turtlesim
Reading Package Lists... Done
Building Dependency Tree... Done
E: Couldn't find package ros-kinetic-turtlesim
テスト
確認用としてROSの基本パッケージの1つであるturtlesimを動かすまで辿り着けませんでした。
roscore起動
$ roscore
turtlesim_node起動
$ rosrun turtlesim turtlesim_node
turtle_teleop_key node起動
$ rosrun turtlesim turtle_teleop_key
他サイトを探しても同様のROS kinetic環境でturtlesimを動かしている記事が見つからず、Raspberry Pi 3B+(Ubuntu Mate 16.04LTS)にROS kinetic をインストールしてturtlesimを動かすことで環境構築を進めることにしました。
参考
Raspberry Pi 3 Model B+の初回セットアップ(購入から起動まで)
raspbian/images 日本ミラーサイト
MacでRaspberryPi入門
Installing ROS Kinetic on the Raspberry Pi
Raspberry Pi 3 にROS kinetic をインストールしてみました。
ROS KineticをRaspberry Pi 3にインストールしてセンサノードに仕立てる
Installing ROS Kinetic on the Raspberry Pi
Boostライブラリのビルド方法
Boost Downloads
fatal error: 'boost/tr1/unordered_set.hpp' file not found
Get Boost 1.58
turtlesim Package Summary
ROS Kinetic on Raspbian Stretch for Raspberry PI 3
Raspberry Pi 3B+(Ubuntu Mate 16.04LTS)にROS kinetic をインストールしてturtlesimを動かす
※1RaspberryPi3B++busterだと、./b2 install の実行後インストール完了せず諦めました。
BoostライブラリインストールしないとROSインストール時に下記エラーが出ます。
$ sudo ./src/catkin/bin/catkin_make_isolated --install -DCMAKE_BUILD_TYPE=Release --install-space /opt/ros/kinetic
ros_catkin_ws/src/rospack/include/rospack/rospack.h:108:10: fatal error: boost/tr1/unordered_set.hpp: そのようなファイルやディレクトリはありません
#include <boost/tr1/unordered_set.hpp>
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
下記の通りboostライブラリをインストールする必要があります。
インストール手順を記載します
Installing ROS Kinetic on the Raspberry Pi
On Raspbian Buster the compilation may fail with "'boost/tr1/unordered_set.hpp' file not found". This is because rospack version used in Kinetic is dependent on boost 1.58. To fix this error try installing boost 1.58 manually.
$ wget http://sourceforge.net/projects/boost/files/boost/1.58.0/boost_1_58_0.tar.bz2
$ tar --bzip2 -xf boost_1_58_0.tar.bz2
$ cd boost_1_58_0
$ ./bootstrap.sh --prefix=$HOME/boost_1_58_0
> Select your configuration options and invoke ./bootstrap.sh again without the --help option. Unless you have write permission in your system's /usr/local/ directory, you'll probably want to at least use
> $ ./bootstrap.sh --prefix=path/to/installation/prefix
$ ./b2 install
$ (download boost_1_70_0.tar.gz)
$ tar zxvf boost_1_70_0.tar.gz
$ cd boost_1_70_0
$ ./bootstrap.sh
$ ./b2 install -j2 --prefix=$HOME/boost_1_70_0
> ./b2 install -j2 --prefix=(インストールしたいディレクトリ)
> /usr以下を使用すると環境を壊すことになりかねないので、通常は$HOME/localや$HOME/boost_1_51_0といったディレクトリを用意するのが良いでしょう。
./b2 install が完了せず挫折しました。(メモリスワップ領域枯渇?)
※2 その後のturtlesimパッケージインストールできませんでした。
Raspbian stretchにROSを下記の通りインストールする。
How to Install ROS Kinetic on Raspberry Pi 3 running Raspbian Stretch Lite
sudo apt-get install dirmngr
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 421C365BD9FF1F717815A3895523BAEEB01FA116
sudo apt-get update
sudo apt-get upgrade
sudo apt-get install -y python-rosdep python-rosinstall-generator python-wstool python-rosinstall build-essential cmake --fix-missing --allow-unauthenticated
sudo rosdep init
rosdep update
mkdir -p ~/ros_catkin_ws
cd ~/ros_catkin_ws
rosinstall_generator ros_comm --rosdistro kinetic --deps --wet-only --tar > kinetic-ros_comm-wet.rosinstall
wstool init src kinetic-ros_comm-wet.rosinstall
cd ~/ros_catkin_ws
rosdep install -y --from-paths src --ignore-src --rosdistro kinetic -r --os=debian:stretch
sudo ./src/catkin/bin/catkin_make_isolated --install -DCMAKE_BUILD_TYPE=Release --install-space /opt/ros/kinetic -j 1
cd ~/
source /opt/ros/kinetic/setup.bash
echo "source /opt/ros/kinetic/setup.bash" >> ~/.bashrc
catkin_make_isolatedが固まる場合は、-j 1を指定して並列ビルドを抑制すると良い。
$ sudo apt-get install ros-$(rosversion -d)-turtlesim
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています
状態情報を読み取っています... 完了
E: パッケージ ros-kinetic-turtlesim が見つかりません
$ rosinstall_generator desktop --rosdistro kinetic --deps --wet-only --exclude collada_parser collada_urdf --tar > kinetic-desktop-wet.rosinstall
sourcelistを更新すれば良いかもしれないが更新方法が分からず挫折