ラズベリーパイにUbuntu16.04とROS-Kineticをセットアップ
Raspberry Pi用のUbuntuイメージをダウンロードします。ARM/RaspberryPi から 「Raspberry Pi3: ubuntu16.04.2 LTS classic image」をダウンロードします。ダウンロードしたファイルは圧縮されているため解凍します。 解凍は7zipなどのソフトが使用できます。Windowsで作業する場合は、Win32 Disk Imager を使ってSDカードへ書き込むことができます。Ubuntuを書き込んだSDカードをRaspberry Pi 3へ装着して起動します。
リモートPCからRaspberry Pi へSSH接続
デフォルトの状態ではDHCPが有効になっているため、LAN上のホストを検索してRaspberry Pi3のIPアドレスを調べます。
Windowsで検索する場合は、netenum 等のフリーソフトを使うと便利です。
Linuxの場合: nmap -sP ネットワークアドレス(192.168.0.0/24 や 192.168.0.*) で検索できます。
Ubuntuheへログイン
UbuntuにSSHで接続し、ログインします。
デフォルトのログイン名は: ubuntu、パスワードはubuntuです。新規パスワードを聞かれるので必要に応じて設定します。
/etc/hosts の修正
/etc/hostsを開いてホスト名を追加します。
127.0.0.1 localhost # The following lines are desirable for IPv6 capable hosts ::1 ip6-localhost ip6-loopback fe00::0 ip6-localnet ff00::0 ip6-mcastprefix ff02::1 ip6-allnodes ff02::2 ip6-allrouters ff02::3 ip6-allhosts
「 127.0.0.1 localhost 」の下にホストを追加します。
次ぎの1行を追加します。
「 127.0.0.1 ubuntu ]
これを追加しないと、「 sudo: unable to resolve host ubuntu 」と表示が出ます。
ROS Kineticをセットアップ
参照: ROS KineticのUbuntuへのインストール
source.listを設定する
ubuntuではパッケージ管理システムとして,Advanced Packaging Tool(APT)が採用されています。 本システムを用いてROSをインストールします。 本システムでは,パッケージを配布するサーバのアドレスを記述したリスト(sources.lst)からパッケージをダウンロードします. そこで,ROSのダウンロード先のアドレスをsources.lstに追加します。 (packages.ros.org からソフトウェアを受容するよう以下の設定をします。
$ sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'
認証鍵の設定(リポジトリの追加)
ROSのパッケージが信頼できることを証明するために鍵を使用します.下記のように鍵をダウンロードし,リポジトリに追加します。
$ sudo apt-key adv -keyserver hkp://ha.pool.sks-keyservers.net:80 --recv-key 421C365BD9FF1F717815A3895523BAEEB01FA116
キーサーバーへのアクセスに問題があれば、
hkp://pgp.mit.edu:80またはhkp://keyserver.ubuntu.com:80も利用可能です。
ubuntuのアップデート
|
ここで、以下のエラーが出た場合: $ GPG エラー: http://ftp.jp.debian.org wheezy-backports Release: 公開鍵を利用できないため、以下の署名は検証できませんでした: NO_PUBKEY F42ED6FBAB17C654 --recv-keysの次に上記エラーのNO_PUBKEY以降のキーを記載して実行します。 |
$ sudo apt-get update 6
ROS kineticのインストール
1. 全てのデスクトップ環境のインストール(推奨): ROS, rqt, rviz, ロボットの一般的なライブラリ、2D/3Dシミュレータ、ナビゲーション、2D/3D認識
$ sudo apt-get install ros-kinetic-desktop-full python-rosinstall
rosdepの初期化
ROSのパッケージの多くは,他のパッケージと依存関係(あるパッケージが他のパッケージを使用)にあります。 rosdepは,自動的にパッケージ間の依存関係の整合性を取るものです。 ここでは,ROSを使用ために初期化します。
ROSを使用可能にする前に、rosdepを初期化する必要があります。 rosdepはコンパイル対象となるソースのシステム依存のインストールを簡易化し、ROSの中でいくつかコアとなる コンポーネントを実行するために必須とされています。
$ sudo rosdep init $ rosdep update
環境の構築
ROSの環境変数を設定します。
$ source /opt/ros/kinetic/setup.bash
端末を起動する度に上記を実行する必要があるため,下記のように設定すると楽です。
$ echo "source /opt/ros/kinetic/setup.bash" >> ~/.bashrc $ source ~/.bashrc
rosinstallの追加(コマンドラインツールのインストール)
rosinstall は、別途配布されているものとして、ROS中で頻繁に使用されるコマンドライン・ツールです。 膨大なROSパッケージのソースツリーを、たった一つのコマンドで簡単にダウンロードできるようにします。 Ubuntuでこのツールをインストールするには、以下のコマンドを実行します:
$ sudo apt-get install python-rosinstall
ここまででUbuntuとROSのセットアップは終了です。
ROSインストール後の処理
2-1-7-1. 作業フォルダ(ワークスペース)の作成と初期化
ROS は catkin という ROS 専用のビルドシステムを使用しています。 このビルドシステムを使用するために catkin 作業フォルダを作成し、作業フォルダ内を初期化する必要があります。
※この設定は、ROSインストール後に一度だけ行えばよい。
$ mkdir -p ~/catkin_ws/src $ cd ~/catkin_ws/src $ catkin_init_workspace
※ 1.のワークスペース名は任意の名前を使用可能です。
※ 2.は CD!$ でも代用できます。
ビルド
catkin ワークスペース作成後、試しにワークスペース内のプログラムは」次のようにしてビルドします。
$ cd ~/catkin_ws/ $ catkin_make
ビルドすると、既にある src フォルダのほかに、build フォルダ、devel フォルダが新たに作成されます。
$ ls $ build devel source
ここで各フォルダには次のファイルが格納されています。
build フォルダ : catkin ビルドシステムのビルドに関連するファイル
devel フォルダ : 実行に関連するファイル
bashrcを書き換える
端末を起動した際に、製作したワークスペース関係の設定を bash に読み込ませるように、.bashrc を書き換えます。
$ cd ~ $ sudo vim .bashrc
source /opt/ros/kinetic/setup.bash #の下に以下の行を追加します。
source ~/catkin_ws/devel/setup.bash
※ catkin_ws 以外にワークスペースを作成した場合は、作成したワークスペースも列記します。
ROSのパッケージの作成方法
$ cd ~/catkin_ws/src $ catkin_create_pkg my_pckage std_msgs rospy roscpp
これにより、test1 というパッケージフォルダが作成されます。作成後ビルドします。
$ cd ~/catkin_ws $ catkin_make
