Calenderを書きます。ROSを使ったことはあるけれど、そろそろROS2にも触れておきたいな...という気分になってきたので、ROS2に挑戦してみました。NanoPi-NEO2とはFriendlyElecが販売しているシングルボードコンピュータです。Cortex-A53のCPUを搭載しています。HDMIコネクタ、WiFi、Bluetoothは付いていません。HDMIもWiFiも付いていないボードをわざわざ使うのかというと、次のような理由からです。Bionic(18.04)64bitのようです。NanoPi-NEO2は、ArmbianというARMボード向けのDebian、UbuntuベースのOSを使用することで、この環境を作ることができます。技適の問題を回避できること最近のシングルボードコンピュータはWiFiやBluetoothを搭載していることがよくありますが、国内で技適マークのない無線機器を使用すると電波法違反になる場合があります。その点、もともとWiFi非搭載なことはむしろ利点です。(11月20日から総務省に届け出をすることで、技適なしの無線機器でも使用することができるようになりました。詳細についてはこちら。40mm(コネクタ含まず)という驚きの小ささです。これでいてUSB機器を接続できるので、ちょっと凝ったこともできるんじゃないでしょうか。入手性が良いこと秋月電子で購入できます。512MBモデルです。1GBモデルはAliExpress等の海外通販サイトで販売されています。)NanoPi-NEO2のセットアップメーカーのWikiが参考になります。今回使用するOSはUbuntuCoreではなくArmbianです。Bionicのイメージをダウンロードして解凍します。SDカードに書き込みます。アカウント作成NanoPi-NEO2をLANケーブルでご家庭のネットワークに接続します。ACアダプタに繋いで電源を入れます。起動すると基板上の緑色のランプが点滅します。NanoPi-NEO2のIPアドレスを検索します。PCなら以下のようなコマンドでネットワーク上のIPアドレスの一覧を取得可能です。192.168.xxx.xxx/24IPアドレスが分かったら、sshでログインします。初回パスワードは1234になっています。root@192.168.xxx.xxx自動でアカウント作成が始まります。現在のrootパスワード(1234)を入力して、新しいrootパスワード(適当に決めてください)を入力します。次に、新しいアカウントのユーザ名とパスワードを入力します。Nameなどの個人情報の入力を促されますが、空欄でも問題ないようです。アカウントができたら、ログアウトして新アカウントでログインし直します。アップデートアップデートしておきましょう。Diademataのインストール通常のPCと同様に、公式の手順でインストールすることができます。従ってインストールすればOKです。ros-dashing-desktopの実行には非常に時間がかかるので、ros-dashing-desktopの代わりにros-dashing-ros-baseをインストールすることをお勧めします。デモの実行ros-dashing-ros-baseをインストールした場合、デモが入っていないので、以下のコマンドでインストールします。ros-dashing-demo-nodes-pyインストールできたら、1つ目のターミナルからtalkerノードを起動します。talker次に、2つ目のターミナルを立ち上げて新たにsshでログインし、listenerノードを起動します。listenerこのように送受信できたら成功です。D435iを動かしてみました。あるので手順に従ってインストールします。libglu1-mesa-dev2019年11月時点ではバージョン2.0.4のバイナリが提供されており、aptでインストールすることができました。このバージョンではYAMLファイルからパラメータを指定することができないため、今回はソースからビルドすることにします。ワークスペースを作って、gitでros2_intel_realsenseのソースコードをクローンします。buildでワークスペースをビルドします。sequentialをつけて1個ずつビルドするようにしました。sequentialパラメータパラメータを記述するYAMLファイルを作ります。ファイル名は適当にrealsense_parameters.yamlとしておきます。NanoPi-NEO2の性能では、RealSenseの標準の解像度だとエラーになりやすいため、解像度を落として起動した方が安定します。以下のようなコマンドでパラメータを渡しながらRealSenseノードを起動できます。ROS2インストール済みのPCを同じネットワークに接続すれば、rviz2で画像を確認できます。USBアダプタを取り付けることで、WiFiを使用することもできます。WiFiの設定方法はここでは割愛します。buildが通らなかったり(特に512MBモデルでは)しますが、スワップ領域を拡大することで解決することがあります。音声出力NanoPi-NEO2にイヤホンジャックはついていませんが、Audioピンが出ているためジャックDIP化キットなどで配線すれば音声を出力することができます。analog-codecをチェックして音声出力を有効化します。armbian-config次のコマンドでデバイス一覧を確認します。こんな感じになると思います。#0以下のコマンドで、接続したスピーカーやイヤホンから音がでれば成功です。/usr/share/sounds/alsa/Front_Center.wavUSBコネクタの追加デフォルトではUSBコネクタが1つしかついていないのですが、実はポート2つ分のピンが別に付いているので、USBコネクタDIP化キットなどに配線すれば複数のUSB機器を使用することができます。おわりにそんなわけで、NanoPi-NEO2でROS2を動かすことができました。NanoPi-NEO2自体は2年ほど前のものですが、こういうボードでもROS2を動かせると分かったので、いろいろと夢が広がります。ROS2について分からないところはたくさんありますが、今後も勉強していきたいと思います。upLoginユーザーは見つかりませんでした。