ROS2では、ArUcoマーカーを検出して位置と姿勢の推定を行うパッケージが用意されている。
動作環境はRaspberry Pi 5上でROS2のバージョンjazzy。
事前にカメラキャリブレーションを終え、カメラごとのost.yamlファイルが作成されていること。
操作手順
--- webカメラを起動する。
ros2 run usb_cam usb_cam_node_exe --ros-args --remap video_device:=/dev/video0 -p framerate:=15.0 -p camera_info_url:=file:///home/kiyo/.ros/camera_info/HD_1080P.yaml # カメラ HD 1080P の場合
ros2 run atoms3r_m12 atoms3r_m12_usb_image_info_pub # ATOMS3R M12をUSBケーブルに接続した場合
# ATOMS3R M12をWi-Fiに接続した場合
ros2 run atoms3r_m12 atoms3r_m12_usb_image_info_pub --ros-args -p video_device:=http://192.168.0.105
2 --- 画像を確認する。
ros2 run rqt_image_view rqt_image_view
3 --- マーカーを検出する。
ros2 run ros2_aruco aruco_node --ros-args -p aruco_dictionary_id:=DICT_4X4_50 -p image_topic:=/image_raw -p camera_info_topic:=/camera_info -p marker_size:=.065
4 --- 検出されたマーカーを確認する。
ros2 topic echo /aruco_markers
カメラc270の場合、途中からカメラキャリブレーションの結果が正しく出力されなくなった。現在は、認識するマーカーのサイズ指定を補正している。
--- webカメラを起動する。
ros2 run usb_cam usb_cam_node_exe --ros-args --remap video_device:=/dev/video0 -p framerate:=15.0 -p camera_info_url:=file:///home/kiyo/.ros/camera_info/c270.yaml # カメラc270の場合
2 --- 画像を確認する。
ros2 run rqt_image_view rqt_image_view
3 --- マーカーを検出する。
ros2 run ros2_aruco aruco_node --ros-args -p aruco_dictionary_id:=DICT_4X4_50 -p image_topic:=/image_raw -p camera_info_topic:=/camera_info -p marker_size:=0.055 # マーカーのサイズを 0.065 → 0.055 に補正
4 --- 検出されたマーカーを確認する。
ros2 topic echo /aruco_markers