Jetson Nanoでカメラ画像のPublish/Subscribeをやってみる(ROS2)ではNVIDIA提供のコンテナを使いましたがROS2のバージョンはEloquent Elusorでした。
ここでは、より新しいバージョンのFoxy FitzroyをUbuntu 20.04 のコンテナにインストールします。
参照するのはROS2公式のInstalling ROS 2 via Debian Packagesです。
NanoのOSイメージはJetpack 4.5.1
Docker Hub からUbuntu 20.04 のイメージをお借りします。
1 |
sudo docker pull ubuntu:20.04 |
my_ros2_foxyという名前でコンテナ作成
シンプル設定
1 |
sudo docker create -it --name my_ros2_foxy --network host ubuntu:20.04 |
USBカメラ などを使う場合(今回はこっち)
sudo docker create -it --name my_ros2_foxy --network host --device /dev/video0:/dev/video0 -e DISPLAY=$DISPLAY -v /tmp/.X-unix/:/tmp/.X-unix ubuntu:20.04
コンテナ起動
1 |
sudo docker start -i my_ros2_foxy |
アップデート&アップグレード、パッケージなどをインストール
1 2 3 4 |
apt update apt upgrade -y apt install nano apt install curl -y |
ロケールをセット
チェック
1 |
locale |
UTF-8をサポートしたロケール設定
1 2 3 4 |
apt update && apt install locales locale-gen en_US en_US.UTF-8 update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 export LANG=en_US.UTF-8 |
ベリファイ
1 |
locale |
初期状態ではPythonも入っていません。
Python3.8 をインストール
1 2 |
apt install python3.8 ln -s /usr/bin/python3.8 /usr/bin/python3 |
OpenCVも入れておきます。
1 |
apt install libopencv-dev python3-opencv |
ソースをセットアップ
1 2 3 4 5 |
apt update && apt install curl gnupg2 lsb-release curl -s https://raw.githubusercontent.com/ros/rosdistro/master/ros.asc | apt-key add - sh -c 'echo "deb [arch=$(dpkg --print-architecture)] http://packages.ros.org/ros2/ubuntu $(lsb_release -cs) main" > /etc/apt/sources.list.d/ros2-latest.list' |
ROS2 Foxyにはros-foxy-ros-baseとros-foxy-desktopの2種類あります。
ここではimage_toolsなども使いたいのでFoxy Desktop をインストールします。
1 2 |
apt update apt install ros-foxy-desktop |
環境をセットアップ
1 |
source /opt/ros/foxy/setup.bash |
恒久化
1 2 3 4 |
nano ~/.bashrc //追記 source /opt/ros/foxy/setup.bash |
Ctrl + D でコンテナ終了
Pub / Sub
コンテナ起動
1 |
sudo docker start -i my_ros2_foxy |
Publisher
テキストをメッセージ送信
1 |
ros2 run demo_nodes_cpp talker |
カメラ画像(イメージ) をメッセージ送信
1 |
ros2 run image_tools cam2image |
同コンテナで別ターミナル起動
イメージ受信用にXも設定しておきます。
1 2 3 |
sudo xhost si:localuser:root sudo docker exec -it my_ros2_foxy bash |
Subscriber
テキストメッセージ受信
1 |
ros2 run demo_nodes_py listener |
カメラ画像(イメージ) メッセージ受信
1 |
ros2 run image_tools showimage |
ROS2 アンインストール
1 |
apt remove ros-foxy-* && apt autoremove |
Leave a Reply