ATOMS3R M12カメラキットの画像をROS2にパブリッシュ

ROS2内でArUcoマーカーを使うために、ATOMS3R M12の画像をトピックとしてパブリッシュするスクリプトを作った。ATOMS3R M12とPCとの接続はUSBケーブル接続と、Wi-Fi接続の2通りがある。

atoms3r_m12_usb_image_pub.pyUVC/image_raw
atoms3r_m12_usb_image_info_pub.pyUVC/image_raw
/camera_info
atoms3r_m12_image_publisher.pyWi-Fi/image_raw
/camera_info

ROS2のノードを作る

動作環境
Raspberry Pi 5上でROS2のバージョンjazzyを動作させるSDカードに作る。参照

ワークスペースを作る。
mkdir -p ~/atoms3r_m12_ws/src

パッケージを作る。
cd ~/atoms3r_m12_ws/src
ros2 pkg create --build-type ament_python --node-name atoms3r_m12_usb_image_pub atoms3r_m12

プログラムを作ったらパッケージをビルドする。
cd ~/atoms3r_m12_ws
colcon build --symlink-install --packages-select atoms3r_m12


source ~/atoms3r_m12_ws/install/setup.bash

動作確認

USBケーブル接続
USBケーブル接続の場合は、ATOMS3R M12を工場出荷の状態に戻しておかなければならない。その方法はここを参照。

Wi-Fi接続
UWi-Fi接続接続の場合は、ATOMS3R M12をステーションモードでWi-Fiアクセスポイントに接続するプログラムをセットしておかなければならない。その方法はここを参照。


ros2 run atoms3r_m12 atoms3r_m12_usb_image_info_pub  # デフォルトは、下の/dev/video0を指定した場合に同じ。
ros2 run atoms3r_m12 atoms3r_m12_usb_image_info_pub --ros-args -p video_device:=/dev/video0


ros2 run atoms3r_m12 atoms3r_m12_usb_image_info_pub --ros-args -p video_device:=http://192.168.0.105

# 以下は、たぶん不要
ros2 run atoms3r_m12 atoms3r_m12_usb_image_pub
ros2 run atoms3r_m12 atoms3r_m12_image_publisher

パブリッシュされた画像を確認する。
ros2 run rqt_image_view rqt_image_view

トピックを確認する。
ros2 topic echo /camera_info