Jetson NanoへのROSインストールの方法とインストールが成功したかどうかの確認までこのページで説明します。
Jetson Nanoへのインストール
ロボットを動かすために広く使われているROSですが、これをJetson Nanoにインストールするのが、このページの目的です。
ROSはWindows, Macにインストールすることもできますが、UbuntuやLinuxにインストールするほうが主流で、そちらのほうが簡単にインストールすることができます。
Jetson NanoはUbuntuを使用しているため、非常に相性が良い組み合わせです。
ここでインストールするバージョンは、2018年5月23日にリリースされたROS Melodic Moreniaになります。
ROS Melodic Moreniaのロゴ(ROS.orgより引用)
インストール
ターミナルを開き、以下のコマンドを磁こうしてソフトウェアを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'
続いて、aptがパッケージを認識できるようにkeyを追加します。
$ class="wp-block-preformatted">$ sudo apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654
パッケージリストをアップデートし、更新します。(少々時間がかかります。)
$ sudo apt update $ sudo apt upgrade
更新が完了したら、ROS Desktop packageをインストールします。このパッケージには、rqt, rvizandやその他の有用なパッケージが含まれています。
$ sudo apt install ros-melodic-desktop
ROS Desktop Fullというより完全なパッケージもありますが、Jetson Nanoのような組み込みプラットフォームには推奨されません。2D/3Dシミュレータのメモリ使用量が大きく、Jetson Nanoではキャパオーバーになってしまいます。
ROSのパッケージは、外部のライブラリやツールを必要とする場合があります。これらの要求されるライブラリやツールを、システム依存(system dependencies)と呼びます。システム依存はデフォルトではインストールされていない場合があります。ROSは、システム依存をダウンロードしインストールする単純なrosdepというツールというものを用意しています。
そこで、このrosdepの初期化を行います。
$ sudo rosdep init $ rosdep update
ROSの環境変数を設定します。次のように.bashrcを書き換えます。
$ echo "source /opt/ros/melodic/setup.bash" >> ~/.bashrc $ source ~/.bashrc
これでJetson NanoでROSパッケージを実行する環境が整いました。
catkinワークスペースを準備する
ROSパッケージを実行したり、ほかのパッケージをソースからインストールするためには、catkinワークスペースを作成する必要があります。
まず、次のシステム依存性をインストールします。
$ sudo apt-get install cmake python-catkin-pkg python-empy python-nose python-setuptools libgtest-dev python-rosinstall python-rosinstall-generator python-wstool build-essential git
catkinのルートディレクトリとソースフォルダを作成します。
$ mkdir -p ~/catkin_ws/src $ cd ~/catkin_ws/
これらのフォルダは空なので、catkinをビルドします。
$ catkin_make
最後に、.bashrcスクリプトを次のようにアップデートします。
$ echo "source ~/catkin_ws/devel/setup.bash" >> ~/.bashrc $ source ~/.bashrc
これで準備は完了です。
ROS動作確認
それでは動作確認をしましょう。
ターミナルを開いて、次のコマンドを実行します。
$ roscore
次に、新しいターミナルを開き、次のコマンドを実行します。
$ rosrun turtlesim turtlesim_node
以下のような画面が出れば成功です。
turtlesimを起動したところ([2]より引用)
終了するときには、ターミナルでCtrl + Cを入力します。(ROSは基本的にCtrl + Cで終了することが出来ます。)
まとめ
ROSをJetson Nanoにインストールする方法についてまとめました。
[2]には、これらを3行のスクリプトにまとめたものが紹介されています。
(ただ、私はそれだとうまくいかなかったので、このページで紹介したコマンドを一つずつ実行していくことにしました。)
次回からは、ROSを実際に使うところをやってみたいと思います。
参考ページ
[1]Getting Started with ROS on Jetson Nano
[2]Jetson NanoにROSをインストールする方法
https://qiita.com/karaage0703/items/aa54e086f0a2f165d3e9
[3]ROS Melodic Morenia
http://wiki.ros.org/melodic
[4]ROSを始めよう その1
https://qiita.com/hagi-suke/items/b0bb678678b0ec45147c