Raspbian に ROS をインストール

準備編で設定した、SSHが有効になっているかチェックします。(デフォルトではすべてNGとなっています。)

 ssh pi@192.168.1.175
 pw:ja3***

 pi@jrobo: ~$

SSHでRaspbrryPiに入り込むことが出来ました。

参考URL:https://wiki.ros.org/ROSberryPi/Installing%20ROS%20Kinetic%20on%20the%20Raspberry%20Pi

上記URL記事に沿って実行していきます。

【ROSリポジトリのセットアップ】
 $ 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 C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654

ここで鍵サーバーからの受信に失敗しました:Syntax eroor in URI
WEBブラウザを日本語翻訳にしていた為、コピペ間違い、原文(英語)でコピペしたらOKでした。--解決

 $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

【rosdepの初期化】
 $ sudo rosdep init
 $ rosdep update

【ROS Kineticダウンロード&インストール】
<catkinワークスペースを作成する>
 $ mkdir -p ~/ros_catkin_ws
 $ cd ~/ros_catkin_ws

次に、コアパッケージをフェッチしてビルドできるようにします。これにはwstoolを使用します。インストールする特定のバリアントのwstool
コマンドを選択します。
ROS-Comm:(推奨) ROSパッケージ、ビルド、および通信ライブラリ。GUIツールはありません。
 $ rosinstall_generator ros_comm --rosdistro kinetic --deps --wet-only --tar> kinetic-ros_comm-wet.rosinstall
 $ wstool init src kinetic-ros_comm-wet.rosinstall

デスクトップ:ROS、rqt、rviz、およびロボット汎用ライブラリ
 $ rosinstall_generator desktop --rosdistro kinetic --deps --wet-only --tar> kinetic-desktop-wet.rosinstall
 $ wstool init src kinetic-desktop-wet.rosinstall

<依存関係を解決する>
catkinワークスペースを構築する前に、必要なすべての依存関係があることを確認する必要があります。これにはrosdepツールを使用しますが、
リポジトリではいくつかの依存関係は利用できません。最初に手動でビルドする必要があります。
 collada_urdfのコンパイルは失敗します。
 Assimp(Open Asset Import Library)の互換バージョンを提供して、このリンクエラーを修正できます。

 mkdir -p ~/ros_catkin_ws/external_src
 cd ~/ros_catkin_ws/external_src
 wget http://sourceforge.net/projects/assimp/files/assimp-3.1/assimp-3.1.1_no_test_models.zip/download -O  
  assimp-3.1.1_no_test_models.zip
 unzip assimp-3.1.1_no_test_models.zip
 cd assimp-3.1.1
 cmake .
 make
 sudo make install

<rosdepによる依存関係の解決>
残りの依存関係は、rosdepを実行して解決する必要があります。
Raspbian Stretch:下記2行実行
 $ cd〜/ ros_catkin_ws
 $ rosdep install -y --from-paths src --ignore-src --rosdistro kinetic -r --os = debian:stretch
Raspbian Jessie:未実行
 $ cd ~/ros_catkin_ws
 $ rosdep install -y --from-paths src --ignore-src --rosdistro kinetic -r --os=debian:jessie
Raspbian Buster:これも実行(すべてのRaspbianが正常にインストールされました。と表示)
 $ cd ~/ros_catkin_ws
 $ rosdep install -y --from-paths src --ignore-src --rosdistro kinetic -r --os=debian:buster

自分が今まで実行してきたのが、Raspbian の Strech なのかJessieなのかBusterなのか不明だったので確認方法
 $ lsb_release -a


これで、Raspbianの「buster」であることが解りました。(最新版)


これにより、srcディレクトリ内のすべてのパッケージが調べられ、それらが持つすべての依存関係が見つかります。
次に、依存関係を再帰的にインストールします。
--from-pathsオプションは、パッケージのディレクトリ全体(この場合はsrc)の依存関係をインストールすることを示しています。
--ignore-srcオプションは、rosdepに対して、パッケージマネージャーからsrcフォルダーにROSパッケージをインストールしようとするべきでは
ないことを示します。
私たちは自分たちでそれらを構築しているので、それを必要としません。
--rosdistroオプションが必要なのは、まだROS環境がセットアップされていないためです。
そのため、ビルドするROSのバージョンをrosdepに指示する必要があります。
最後に、-yオプションはrosdepに対して、パッケージマネージャーからのあまりにも多くのプロンプトに煩わされたくないことを示しています。
しばらくすると、rosdepはシステム依存関係のインストールを完了し、続行できます。
(apt-getからlibpclなどのVTK7を必要とするものをインストールした場合、rosdepはVTK6のインストールに失敗することがあります。
rosdepを呼び出す前に、sudo apt-get remove libvtk7-dev libvtk7-qt-devを使用してVTK7関連パッケージを削除してください
rosdepが終了したらすぐに、VTK7と他のパッケージを自由に再インストールしてください。


【catkinワークスペースの構築】
パッケージのダウンロードが完了し、依存関係を解決したら、catkinパッケージをビルドする準備が整います。
catkin_make_isolatedを呼び出します。

やはり「catkin_make_isolated」コマンドが見つかりませんというエラーが出ました。<Raspbian Busterの為か?>
下記コマンドを実行

 $ sudo apt remove libboost1.67-dev
 $ sudo apt autoremove
 $ sudo apt install -y libboost1.58-dev libboost1.58-all-dev
 $ sudo apt install -y g ++-5 gcc-5
 $ sudo update-alternatives --install / usr / bin / gcc gcc / usr / bin / gcc-5 10
 $ sudo update-alternatives --install / usr / bin / gcc gcc / usr / bin / gcc-5 20
 $ sudo update-alternatives --install / usr / bin / g ++ g ++ / usr / bin / g ++-5 10
 $ sudo update-alternatives --install / usr / bin / g ++ g ++ / usr / bin / g ++-5 20
 $ sudo update-alternatives --install / usr / bin / cc cc / usr / bin / gcc 30
 $ sudo update-alternatives --set cc / usr / bin / gcc
 $ sudo update-alternatives --install / usr / bin / c ++ c ++ / usr / bin / g ++ 30
 $ sudo update-alternatives --set c ++ / usr / bin / g ++
 $ sudo apt install -y python-rosdep python-rosinstall-generator python-wstool python-rosinstall build-essential cmake

 $ sudo ./src/catkin/bin/catkin_make_isolated --install -DCMAKE_BUILD_TYPE = Release --install-space / opt / ros / kinetic

正常に終了しました。

これでROSがインストールされました!新しいインストールを入手することを忘れないでください:

 $ source /opt/ros/kinetic/setup.bash 未実行/下記コマンドを使用します。

または、必要に応じて〜/ .bashrcのsetup.bashを取得し、新しいシェルが起動されるたびにROS環境変数がbashセッションに自動的に追加される
ようにします。

 $ echo "source /opt/ros/kinetic/setup.bash" >>〜/ .bashrc


【ソースチェックアウトの維持】
<ワークスペースの更新>
ros_catkin_wsワークスペースを更新する手順については、Ubuntuソースのインストール手順を参照してください。同じ手順がRaspberry Piにも
適用されます。 手順参考URL:https://wiki.ros.org/kinetic/Installation/Source
<リリース済みパッケージの追加>
rosエコシステムにリリースされたインストール済みrosワークスペースに追加のパッケージを追加できます。
最初に、新しいパッケージを含む新しいrosinstallファイルを作成する必要があります(注、これは最初のインストールでも実行できます)。
たとえば、ros_commをインストールしたが、ros_controlとjoystick_driversを追加したい場合、コマンドは次のようになります:

 $ cd〜/ ros_catkin_ws
 $ rosinstall_generator ros_comm ros_control joystick_drivers --rosdistro kinetic --deps --wet-only --tar> kinetic-custom_ros.rosinstall

スペースで区切って、いくつでもROSパッケージをリストし続けることができます。
次に、wstoolを使用してワークスペースを更新します。

 $ wstool merge -t src kinetic-custom_ros.rosinstall
 $ wstool update -t​​ src

ワークスペースを更新した後、rosdepを実行して、必要な新しい依存関係をインストールすることができます。

 $ rosdep install --from-paths src --ignore-src --rosdistro kinetic -y -r --os = debian:buster

最後に、ワークスペースが最新で依存関係が満たされているので、ワークスペースを再構築します。

 $ sudo ./src/catkin/bin/catkin_make_isolated --install -DCMAKE_BUILD_TYPE = Release --install-space / opt / ros / kinetic

完了しました。(79パッケージ中の69パッケージでエラーが発生し中断rosbag

これでTurtlebot3関連をインストールしていきますが、どこまで影響があるか確認します。

roscoreもワーニングが出てうまく行かない。




【再チェレンジ】
以前ダウンロードし Rasbian/Buster をWindowsインストーラーに頼らず、従来方法(フォーマット、書込みツールによる書込み)でSD作成。
作成したSDカードをRaspbrryPi4に挿入しPowerOn -> WinodwsのインストーラでRaspbianを立ち上げた時とかなり異なり、設定が簡単
立上げ中にアップデート(かなり時間がかかる)し、立ち上がった時は、日本語化、WiFi設定等すべて完了しており使い勝手が良い。
時刻も同期している。
WEBブラウザは、Chromeなので使いやすい(同期をとる)
SSHはデフォルトでは使えない。

 sudo raspi-config
   5.Interfacing Options を選択、<Cmara,SSH、I2C、Serial、Remot GPIO>を有効にする。

 ssh pi@192.168.1.182

MasterPC より、入込みOK

これから、参照URLで実施

【Setup ROS Repositories】Raspbian Buster:
 $ 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-get update
 $ sudo apt-get upgrade

【Install Bootstrap Dependencies】
 $ sudo apt-get install -y python-rosdep python-rosinstall-generator python-wstool python-rosinstall build-essential cmake

【Initializing rosdep】
 $ sudo rosdep init
 $ rosdep update

【Create a catkin Workspace】
 $ mkdir -p ~/ros_catkin_ws
 $ cd ~/ros_catkin_ws

ROS-Comm:(推奨) ROSパッケージ、ビルド、および通信ライブラリ。GUIツールはありません。
 $ rosinstall_generator ros_comm --rosdistro kinetic --deps --wet-only --tar> kinetic-ros_comm-wet.rosinstall
 $ wstool init src kinetic-ros_comm-wet.rosinstall

【Resolve Dependencies】
 mkdir -p ~/ros_catkin_ws/external_src
 cd ~/ros_catkin_ws/external_src
 wget http://sourceforge.net/projects/assimp/files/assimp-3.1/assimp-3.1.1_no_test_models.zip/download -O    
  assimp-3.1.1_no_test_models.zip
 unzip assimp-3.1.1_no_test_models.zip
 cd assimp-3.1.1

 cmake .
 make
 sudo make install

【Resolving Dependencies with rosdep】
 $ cd ~/ros_catkin_ws
 $ rosdep install -y --from-paths src --ignore-src --rosdistro kinetic -r --os=debian:buster

【Building the catkin Workspace】
 catkin_make_isolated

 $ sudo apt remove libboost1.67-dev
 $ sudo apt autoremove
 $ sudo apt install -y libboost1.58-dev libboost1.58-all-dev
 $ sudo apt install -y g ++-5 gcc-5
 $ sudo update-alternatives --install / usr / bin / gcc gcc / usr / bin / gcc-5 10
 $ sudo update-alternatives --install / usr / bin / gcc gcc / usr / bin / gcc-5 20
 $ sudo update-alternatives --install / usr / bin / g ++ g ++ / usr / bin / g ++-5 10
 $ sudo update-alternatives --install / usr / bin / g ++ g ++ / usr / bin / g ++-5 20
 $ sudo update-alternatives --install / usr / bin / cc cc / usr / bin / gcc 30
 $ sudo update-alternatives --set cc / usr / bin / gcc
 $ sudo update-alternatives --install / usr / bin / c ++ c ++ / usr / bin / g ++ 30
 $ sudo update-alternatives --set c ++ / usr / bin / g ++
 $ sudo apt install -y python-rosdep python-rosinstall-generator python-wstool python-rosinstall build-essential cmake

CMakeエラー発生<下記モジュールが無いというエラーの為、インストール>
 $sudo apt-get install python-empy

再度実行(1:52)
 $ sudo apt install -y python-rosdep python-rosinstall-generator python-wstool python-rosinstall build-essential cmake
 1から52まで無事終了。

 $ echo "source /opt/ros/kinetic/setup.bash" >>〜/ .bashrc

 $ cd〜/ ros_catkin_ws
 $ rosinstall_generator ros_comm ros_control joystick_drivers --rosdistro kinetic --deps --wet-only --tar> kinetic-custom_ros.rosinstall

 $ wstool merge -t src kinetic-custom_ros.rosinstall
 $ wstool update -t​​ src

 $ rosdep install --from-paths src --ignore-src --rosdistro kinetic -y -r --os = debian:buster

 $ sudo ./src/catkin/bin/catkin_make_isolated --install -DCMAKE_BUILD_TYPE = Release --install-space / opt / ros / kinetic
 1から69まで(すべてにワーニングは出る)最終69でエラーでストップ。

マスター、ホスト名を「~/.bashrc」に書いて、roscore を実行してもマスターに接続できないエラー
そもそも「~/.bashrc」内に export 部分が無いのがおかしい。



【再々チャレンジ】
 参考URLにて再々チェレンジします。
SDカードにRaspbian・Buster を書込み初期設定(国、PW,WiFi、アップデート):アップデート中エラーが出たがいずれアップデートするので
この状態で進めます。
SSHで進める為、$ifconfig<pi@192.168.1.186>
カメラ、SSH、GPIO等を有効にする。 標準メニューの<設定><RaspbrryPi設定>より実行:raspi-config
再起動、SSH通信で以下実行

<debianのバージョン確認方法>
 $cat /etc/debian_version
 10.1
<カーネルのバージョン確認方法>
 $uname -a
 Linux raspberrypi 4.19.75-v7l+ #1270 SMP Tue Sep 24 18:51:41 BST 2019 armv7l GNU /Linux
<パッケージリストのアップデートとパッケージのアップグレード>
 $sudo apt-get update
 $sudo apt-get upgrade
<ROS-melodicを導入する>
 <リポジトリを追加する>
  $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://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654
  $sudo apt-get update
 <必要なパッケージをインストールする>
  $sudo apt-get install -y python-rosdep python-rosinstall-generator python-wstool python-rosinstall build-essential cmake
  $sudo rosdep init
  $rosdep update
 <ros_catkin_ws のディレクトリを作成して移動する>
  $mkdir ~/ros_catkin_ws
  $cd ~/ros_catkin_ws
<ROS Desktop のインストール>
 $rosinstall_generator desktop --rosdistro melodic --deps --wet-only --tar > melodic-desktop-wet.rosinstall
 $wstool init -j8 src melodic-desktop-wet.rosinstall
<依存関係の細かな修正>
 $mkdir -p ~/ros_catkin_ws/external_src
 $cd ~/ros_catkin_ws/external_src
 $wget http://sourceforge.net/projects/assimp/files/assimp-3.1/assimp-3.1.1_no_test_models.zip/download -O  
   assimp-3.1.1_no_test_models.zip
 $unzip assimp-3.1.1_no_test_models.zip
 $cd assimp-3.1.1
 $cmake .
 $make (多くワーニングが出る)
 $sudo make install
<OGRE for rvizのインストール>
 $sudo apt-get install libogre-1.9-dev
<rosdepの実施>
 $cd ~/ros_catkin_ws
 $rosdep install --from-paths src --ignore-src --rosdistro melodic -y
<ビルドとインストール>
 $sudo ./src/catkin/bin/catkin_make_isolated --install -DCMAKE_BUILD_TYPE=Release --install-space /opt/ros/melodic -j2
 1から186のインストール(以前は、ここでワーニング&エラーが発生した所)一部ワーニング有り
 $echo "source /opt/ros/melodic/setup.bash" >> ~/.bashrc

 $sudo reboot

 $roscore

正常に立ち上がりました。

<turtlesimも動作テスト>
別のターミナルを開けて SSH で RasPi4に入り下記コマンドを打ち turtlesim(カメ)を表示させる。
 $rosrun turtlesim turtlesim_node
ディスプレーに接続できないというエラー(SSHでは表示されることが出来ないのか?)
Raspi4側で上記コマンドを打つとカメが表示された。

これで、Raspbian・busterにROS・melodic がインストールの確認出来たので、ここまでの状態のSDカード内容をバックアップしておきます。
まず作成したSDカード内容をWindows10のデスクトップ上のフォルダーにコピーします
Win32 Disk Imager を使います。
SDカードドライブ名「E」を選択。
Image File には、デスクトップ上に空のファイルを作成し拡張子は「img」とします。



Image File には、今作成したros.img を選択します。


ここで「Read」ボタンを押してSDカード内容を「ros.img」ファイルに読み込みます。
読込み完了したら、新しいフォーマット完了のSDカードをPCに挿入し「ros.img」内容をSDカードに書き込みます。
これで、同じ内容のSDカードが2枚完成です。
1枚は大事に保存して置き、もう1枚のSDカードで引き続きROSパッケージを書込んでいきます。


バックアップ用に作成したSDカードで試して解ったことですが、キーでの日本語化が出来ないのと、ファイルマネージャは一瞬しか表示しない
事がわかりました。当面差しさわりが無いのでそのままで使用します。
ただ時々WiFiのIPアドレスが「192.168.1」ではなく「256.***」等になりネットに接続できなくなることがあるのが問題。
1.日本語化の問題は、以下の「mozc」をインストールすることで解決します。
2.ネットIPアドレス問題は不明
3.ファイルマネージャが消える(ゴミ箱も消える)のは、参考URL解決
  $sudo apt-get install pcmanfm  これで解消しますが、念のため下記も実行しました。
  $sudo apt-get autoremove
  $sudo apt-get dist-upgrade
  途中でゴミ箱が消えますが、update,upgradeしてreboot すれば現れます。

もう一度、Rasbian・Buster をSDに書込み確認します。
国、WiFi設定後のアップデートでエラーが発生(前回と変わりなし)
reboot 後、ファイルマネージャはOK、WiFiのIPアドレス確認:192.168.1.193 と正常(Chromium動作もOK)Google登録、同期OK、Time:OK
日本語化がNG、設定方法を探してみます。
また、ROS・melodic をインストールするとおかしくなるのか再度確認。

メニューをデフォルトから数を増やしてパッケージ等のアップデートをはかる。<システムツールを増やした>
再度日本語化の為「$ sudo apt-get install ibus-mozc」で、「mozc」をインストールし再立ち上げしてみます。
メニューバーにキーボードが出ました。ここを選択すると「日本語-Japanese」「日本語-Mozc」の選択が出るので「日本語-Mozc」を選択する
事で日本語入力が可能となりました。
これですべてOKとなりましたので、ROS・melodicを入れ込んでいきます。

参考URL(kinetic):https://wiki.ros.org/ROSberryPi/Installing%20ROS%20Kinetic%20on%20the%20Raspberry%20Pi
参考URL(melodic):https://qiita.com/Ninagawa_Izumi/items/063d9d4910a19e9fcdec 今回の取組はこちら!!

ここでデスクトップ部(rviz等)はインストールしていないので、後に動作しなければインストールが必要です。

一応、Rabbian・Buster+ROS・melodicの環境設定は無事完了しました。コピーSDを作っておきます。
コピーSDで、Turtlebot3関連ファイルをインストールしようとするが、kinetic 対応の為、melodic のファイルが無く対応不可となる。



ここまでのまとめ
1.Raspi4でのUbuntu系統はうまく動作しない。(日本語化、時間の設定が反映しない)
2.Rasbian・buster にkinetic をインストールするが途中でエラー
3.Rasbian・buster にROS・melodicはインストール出来るが、turtlebot3 のソフトが melodic に対応していない。

結果、Rasbian・Buster でも日本語化には「mozc」をインストールが必要なので「Ubuntu」でもこれで解決する可能性がある。
   ファイルマネージャ、ゴミ箱が消える現象も、下記コマンドで対応可能
     $sudo apt-get install pcmanfm  これで解消しますが、念のため下記も実行しました。
     $sudo apt-get autoremove  $sudo apt-get dist-upgrade  途中でゴミ箱が消えますが、
     update,upgradeしてreboot すれば現れます。


【最終トライ】Raasbian・Buster+ROS・kinetic
turtlebot3 を動かしたいので、kinetic のROSをインストール必要があり、Rasbian・Buster でROS・kinetic を再度チェレンジします。
参考URL:http://wiki.ros.org/ROSberryPi/Installing%20ROS%20Kinetic%20on%20the%20Raspberry%20Pi
 参考URLで書かれている Windows・imager.exe でSDカードに書込み(メニュー一番上の「Raasbian」を選択)
 今回は、Raasbianが最初に立ち上がった時に設定する内容はすべて良好。(国、WiFi、PW、後にupdate sofutoware すべてダウンロード、
 インストールは時間がかかったが正常終了した。
 その為、時間同期時時計が正常に戻った、言語もかなり時間はかかるが各国の言語がダウンロードされるが、このおかげで日本語化も正常となる)
 Chromeを同期した。

ここからROS・kinetic が正常にインストールされるか確認していきます。
1-52 もワーニングも出ずに成功
1-79 はCMake ワーニングレベルで推移,69 番目でエラーとなる。  NG



【最終トライ】Ubuntu19.10Server+Ubuntu・MATE+ROS・kinetic
参考URL:https://raspida.com/ubuntumate-on-rpi4b
以前は日本語化にNGだったが、Raasbianの時の対応で解決するかも知れないので再チャレンジしてみます。

Ubuntu19.10をSDに書込みRasPi4に挿しPowerON、PWを変更して update, reboot, upgrade, reboot してUbuntuMATEをインストールする
有線LANからのインストールだが、途中でエラー
すべてのネット絡みは(別のOSも同様)、同様なエラーでアップデートせよとのメッセージがでるが解決しない。
以前は、MATEの画面までは行ったのに、今回はダウンロード中でエラーが出る。

ひょっとしてとHard(RaspbrryPi4)本体を疑い別のRasPi4に変えてインストールしたらMATEがインストールできた。
各種設定でWiFi等の設定がSDカード以外に記憶されていないのだろうか?
Buffalo のWiFi ブースターがRaspiのMACアドレスを記憶している可能性が高い。(このRaspi4はWiFiを使っていたものなので)
最終的にどのRaspi4でもNGとなる。


【最終トライ】Rasbian・busterよりROS・kineticをインストール(別取組)
ここのWindowsインストーラーから直接SDカードに書込み(OS:RasbianFullを選択)
書込みが終了しRaspi4に差し込みができたら、このサイトを参考にして実行していきます。
国、PW、WiFi、Updateを済ませてRasbianを立ち上げる。(少し時間がかかる)
日本語化も問題なし、Chrrominumの同期設定OK

<ROS・kinetic のインストール>
Rasbianが無事動作したら、早速始めます。

 $ 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 C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654

 $ sudo apt-get update
 $ sudo apt upgrade

 $ sudo apt-get install -y python-rosdep python-rosinstall-generator python-wstool python-rosinstall build-essential cmake

 $ sudo rosdep init
 $ rosdep update

 $ mkdir -p ~/ros_catkin_ws
 $ cd ~/ros_catkin_ws

■ ROS-Comm: (recommended) を入れる。
 $ rosinstall_generator ros_comm --rosdistro kinetic --deps --wet-only --tar > kinetic-ros_comm-wet.rosinstall
 $ wstool init src kinetic-ros_comm-wet.rosinstall

■ 3.2 依存関連の処理
 $ mkdir -p ~/ros_catkin_ws/external_src
 $ cd ~/ros_catkin_ws/external_src
 $ wget http://sourceforge.net/projects/assimp/files/assimp-3.1/assimp-3.1.1_no_test_models.zip/download -O
   assimp-3.1.1_no_test_models.zip
 $ unzip assimp-3.1.1_no_test_models.zip
 $ cd assimp-3.1.1
 $ cmake .
 $ make
 $ sudo make install

 $ cd ~/ros_catkin_ws
 $ rosdep install -y --from-paths src --ignore-src --rosdistro kinetic -r --os=debian:buster

■ Boost1.58.0を導入する
 $ cd ~/ros_catkin_ws/src/rospack
 $ wget http://sourceforge.net/projects/boost/files/boost/1.58.0/boost_1_58_0.tar.gz
 $ tar -zxvf boost_1_58_0.tar.gz
 $ rm boost_1_58_0.tar.gz

 $ cd ~/ros_catkin_ws/src/rospack/boost_1_58_0
 $ sudo sh bootstrap.sh

 $ mkdir ~/ros_catkin_ws/src/rospack/boost
 $ sudo ./b2 install -j2 --prefix=/home/pi/ros_catkin_ws/src/rospack/boostls

■rosBoost関連のファイルの修正
① $ sudo nano /home/pi/ros_catkin_ws/src/rospack/include/rospack/rospack.h
  ファイルの中身から
    #include <boost/tr1/unordered_set.hpp>
    #include <boost/tr1/unordered_map.hpp>
  をそれぞれ
    #include </home/pi/ros_catkin_ws/src/rospack/boost/include/boost/tr1/unordered_set.hpp>
    #include </home/pi/ros_catkin_ws/src/rospack/boost/include/boost/tr1/unordered_map.hpp>
  に書き換える。

② $ sudo nano /home/pi/ros_catkin_ws/src/rospack/src/utils.cpp
  として
    #include <boost/tr1/unordered_set.hpp>
  を
    #include </home/pi/ros_catkin_ws/src/rospack/boost/include/boost/tr1/unordered_set.hpp>

③ $ sudo nano /home/pi/ros_catkin_ws/src/rospack/boost/include/boost/tr1/unordered_set.hpp
  を開いて、3箇所書き換える。
    # include <boost/tr1/detail/config.hpp> を
    # include </home/pi/ros_catkin_ws/src/rospack/boost/include/boost/tr1/detail/config.hpp> に。
  また
    # include <boost/tr1/detail/config_all.hpp> を
    # include </home/pi/ros_catkin_ws/src/rospack/boost/include/boost/tr1/detail/config_all.hpp> に。
  また
    #include <boost/unordered_set.hpp>を
    #include </home/pi/ros_catkin_ws/src/rospack/boost/include/boost/unordered_set.hpp> 
  に書き換える。

④ $ sudo nano /home/pi/ros_catkin_ws/src/rospack/boost/include/boost/tr1/unordered_map.hpp
    # include <boost/tr1/detail/config.hpp> を
    # include </home/pi/ros_catkin_ws/src/rospack/boost/include/boost/tr1/detail/config.hpp> に。
  また
    # include <boost/tr1/detail/config_all.hpp> を
    # include </home/pi/ros_catkin_ws/src/rospack/boost/include/boost/tr1/detail/config_all.hpp> に。
  また
    #include <boost/unordered_map.hpp> を
    #include </home/pi/ros_catkin_ws/src/rospack/boost/include/boost/unordered_map.hpp> 
  に書き換える

■ スワップ領域を増やす
 CONF_SWAPSIZE=1024
 CONF_SWAPFILE=/mnt/sda1/swap.file

■ いよいよワークスペースのビルド
 $ cd ~/ros_catkin_ws
 $ sudo ./src/catkin/bin/catkin_make_isolated --install -DCMAKE_BUILD_TYPE=Release --install-space /opt/ros/kinetic -j2
 (苦労した身としてはこれがすんなり行くとかなり気持ちよい。)
 1-52までCMake実行されるが、やはり9項目でエラー発生


右側に表示されているのがCMake実行中にエラーを起こした部分です。
これを見ると「boost」というライブラリのビルドに失敗しているようです。
 BOOST_ROOTというCMake 変数が無いという事で、ビルドは成功しているので変数設定に問題が有るようです。
 該当パッケージ「cpp_common」の CMakeList.txt ファイルの中身を確認してみます。


「cpp_common」の場所は、緑色で囲まれたパス(アドレス)で、ここに CMakeList.txt があります。

  cmake_minimum_required(VERSION 2.8.3)
  project(cpp_common)
  find_package(Boost REQUIRED COMPONENTS system thread)
  find_package(console_bridge REQUIRED)
  find_package(catkin REQUIRED)
  catkin_package(
    DEPENDS Boost console_bridge
   INCLUDE_DIRS include
    LIBRARIES ${PROJECT_NAME})
  include(CheckIncludeFile)
  include(CheckFunctionExists)
  include(CheckCXXSourceCompiles)
  include_directories(include ${Boost_INCLUDE_DIRS} ${console_bridge_INCLUDE_DIRS})
  # execinfo.h is needed for backtrace on glibc systems
  CHECK_INCLUDE_FILE(execinfo.h HAVE_EXECINFO_H)
  if(HAVE_EXECINFO_H)
   add_definitions(-DHAVE_EXECINFO_H=1)
  endif(HAVE_EXECINFO_H)
  # do we have demangle capability?
  # CHECK_INCLUDE_FILE doesn't work here for some reason
以下省略

2行目と3行目の間に、以下の3行を追加します。
  SET (BOOT_ROOT "~/ros_catkin_ws/src/rospack/boost")
  SET (BOOT_INCLUDEDIR "~/ros_catkin_ws/src/rospack/boost/include")
  SET (BOOT_LIBRARYDIR "~/ros_catkin_ws/src/rospack/boost/lib")

■ ソースの追加とバッシュへの登録
 $ source /opt/ros/kinetic/setup.bash
 $ echo "source /opt/ros/kinetic/setup.bash" >> ~/.bashrc

■ 4.ソースのメンテ
 $ sudo apt-get install python-rosdep python-rosinstall-generator python-wstool python-rosinstall build-essential
 $ rosdep update

 $ cd ~/ros_catkin_ws
 $ rosinstall_generator ros_comm ros_control joystick_drivers --rosdistro kinetic --deps --wet-only --tar > kinetic-custom_ros.rosinstall

 $ wstool merge -t src kinetic-custom_ros.rosinstall
 $ wstool update -t src

 $ rosdep install --from-paths src --ignore-src --rosdistro kinetic -y -r --os=debian:jessie
 $ sudo ./src/catkin/bin/catkin_make_isolated --install -DCMAKE_BUILD_TYPE=Release --install-space /opt/ros/kinetic

 ここでは、1-79のパーケージの CMake が実行されます。(ワーニングが所々でますが問題ないと思われます。)