ROS2内でArUcoマーカーを使うために、ATOMS3R M12の画像をトピックとしてパブリッシュするスクリプトを作った。ATOMS3R M12とPCとの接続はUSBケーブル接続と、Wi-Fi接続の2通りがある。
atoms3r_m12_usb_image_pub.py | UVC | /image_raw |
atoms3r_m12_usb_image_info_pub.py | UVC | /image_raw /camera_info |
atoms3r_m12_image_publisher.py | Wi-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ケーブル接続の場合は、ATOMS3R M12を工場出荷の状態に戻しておかなければならない。その方法はここを参照。
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