
ラズパイ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は無理だと思われます。
Leave a Reply