#初めに
友人がROS2をjetson nanoにインストールしようとして失敗まくっていたので覚書程度に。
##前提条件
jetsonnanoの初期設定は終わっていて、update,upgradeはできているものとします。(英語環境)
sshのためにいちいちipアドレス調べるのめんどくさいのでavahi-daemonを導入済み。
(というかjetson "nano"なのにnano入ってないのね、入れときます。)
#入れてみる(参考文献はここ)
実際に入れていきますが、自分のROS2の知識が浅いので間違ってるかもしれません。(ROS1ならある程度分かるのに…)
##言語設定
utf-8じゃないと動かないようですね。
$ sudo locale-gen en_US en_US.UTF-8
Generating locales (this might take a while)...
en_US.ISO-8859-1... done
en_US.UTF-8... done
Generation complete.
次にこれ
sudo update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8
export LANG=en_US.UTF-8
#リポジトリの追加
リポジトリを追加します。いつもの奴ですね。
sudo apt update && sudo apt install curl gnupg2 lsb-release
curl -s https://raw.githubusercontent.com/ros/rosdistro/master/ros.asc | sudo apt-key add -
sudo sh -c 'echo "deb [arch=amd64,arm64] http://packages.ros.org/ros2/ubuntu `lsb_release -cs` main" > /etc/apt/sources.list.d/ros2-latest.list'
sudo apt update
##インストールします
ROS2はGUIの有無を選択できます。当然ながらGUI無しのほうが軽量です。
###desktop用(GUI込み)のコマンド
sudo apt install ros-dashing-desktop
------ 省略 ------
Need to get 193 MB of archives.
After this operation, 1,256 MB of additional disk space will be used.
さすがに大きい。いい産業用microSD買っといてよかった。
###Base(no-GUI版)はこっち
sudo apt install ros-dashing-ros-base
このjetson nanoは画像認識に使うと思うのでとりあえずDesktop版を入れました。
##argcomplete(補完機能)のインストール(オプション)
sudo apt install python3-argcomplete
ROS2のコマンドライン上での補完機能を使いたいときはこれをインストールします。
(pythonってことはコマンドラインツールもpython製になったのか?)
##PATHを通す
コマンドのためのPATHを通します。
source /opt/ros/dashing/setup.bash
echo "source /opt/ros/dashing/setup.bash" >> ~/.bashrc
##ROS1のパッケージを使う
うちにあった某研究室では互換性の問題でいまだにindigo(!?)を使ってましたが互換性というのは大切です。これを使えばある程度のROS1(Kinetic or melodic)パッケージがつかえる、らしい?
sudo apt update
sudo apt install ros-dashing-ros1-bridge
何も考えずにインストールしようとしたら弾かれました。
melodicのパッケージ群が必要なようで…
#おわりに
結構さらっとインストールできました。
日本語で軽くググっても出てこなかったので書いてみたわけですが、需要なさそうだなとは思ってます。
#追記
##通信周りについて
ROS2ではデフォルトのDDSにFastRTPSが採用されています。(DDSは分散型のネットワーク通信ミドルウェアでリアルタイムに通信できるよう)
これはApache2ライセンスで提供され軽量なためマシンパワーの低いマシンもネットワークに参加させることができます。
分散型であることと組み合わせてかなり便利そう。