ラズパイ4でコンテナーにROS2をインストール、Pub/Subもやってみる


ラズパイ4でROS2を動かしてみる(DDS)では、Jetson Nao で作成したDockerイメージを使いましたが、ここではソースからセットアップしてみます。


ラズパイ4(4GB)にインストールするOSイメージとしてUbuntu 21.04のDesktopを使います。

Ubuntu Desktop 21.04

SSHはデフォルトでは使えない。サーバーをインストール。

以下のコマンドでactiveになっていることを確認

 


Dockerをインストール

前提条件をインストール

Dockerインストール

 

Docker Hub からUbuntuのイメージを降ろしておきます。

 

 


コンテナ作成

my_ros2_camという名前で作成、Xを使います。

sudo docker create -it --name my_ros2_cam --network host -e DISPLAY=$DISPLAY -v /tmp/.X11-unix/:/tmp/.X11-unix ubuntu:18.04

 

起動

アップデート&アップグレード、パッケージなどをインストール

 


ROS2 (Eloquent)インストール

ソースをインストール

ROS2(Eloquent)をインストール。途中でTimeZoneを聞いてきます。

シェルに反映させておきます。

ROS2環境をアンダーレイに指定

 


カメラ画像(image)をPub/Sub

Jetson からカメラ画像をpublishしたものをラズパイでsubscribeしてみます。

Jetson(4GB)でpublish

ここでやったようにカメラ画像をpublishしておきます。

ros2 run image_tools cam2image --ros-args -p device_id:=0 -p reliability:=best_effort -p width:=640 -p height:=480 -p frequency:=30.0

 

ラズパイ

ホストでXを起動しておきます。

 

ラズパイのコンテナにimage_toolsをインストールしておきます。

このままでimage_toolsを実行すると以下のようなWarningが出ます。ライブラリのバグのようですが、実行自体に問題はありません。

dbind-WARNING **: 15:54:20.098: Couldn’t connect to accessibility bus:

ただ気持ち悪いので、おまじない。

コンテナでsubscribe実行。

こんな感じで受信します。


WindowsからSSHで接続してXServerで確認する場合

WindowsのXServerについてはこのページの後半参照

SSHコンソールでコンテナ起動

WindowsのIPアドレスが192.168.0.23の場合、以下を実行

export DISPLAY=192.168.0.23:0.0 

subscribe実行

 

注:SSHはリアルタイムのsubscribeは無理だと思われます。

 


 

 

 

Be the first to comment

Leave a Reply

Your email address will not be published.


*