sciencompass

今勉強していること、これまで勉強してきたことを発信してます。半導体物理や数学、英語などの記事を書いています。

電子工作

Jetson NanoへのROSインストール

投稿日:

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

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

-電子工作
-,

執筆者:


comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください

関連記事

Arduinoで計測した気温と湿度をFlashairでウェブにアップする その2

前回の記事に引き続いて、FlashairとArduinoで部屋の温湿度をモニタするシステムを構築する話です。前回は、Arduino側のソースコードを紹介しましたので、今回はFlashairに書き込むl …

Arduinoで計測した気温と湿度をFlashairでウェブにアップする その1

Arduinoを始めて簡単なプログラムを書くことができるようになったので、かねてからやりたかった自分の部屋の温湿度を出先からモニタすることに挑戦します。 目次システムの設計準備するものArduinoプ …

マイコンの仕組み:出力ポート

マイコン内部のスイッチをON/OFFする マイコンから外部の機器を制御するときには、入出力ポートから信号を送り出します。 信号はON/OFFの2つ、HighとLowで作られており、このHighとLow …

【電子工作】LEDの点滅が美しい、60th LED Luminous Clock作成

今回は、Silriumさんがコミックマーケット C73で頒布していた60th LED Luminous Clockキットの作成をしましたので、紹介します。 こちらのキットは2007年に購入したのですが …

創作意欲がわきだす、Maker Faire Tokyo 2019行ってきました

目次Maker Faire Tokyo 2019行ってきました見た目が可愛いコンデンサーの盆栽自宅のIoT化が簡単にできるObniz常識を超える食品を作り出す分子調理学おまけ Maker Faire …