実際のところ
JMU-ROBOTICS-VIVAさんのros2_arucoを使用します
ビルド
rosdepで何故か入らないので
sudo apt-get install ros-humble-tf-transformations
さらに、OpenCV pythonのライブラリが4.7からインターフェイスが変わった関係で
pip install opencv-contrib-python==4.6.0.66
$ cd dev_ws/src $ git clone https://github.com/JMU-ROBOTICS-VIVA/ros2_aruco.git -b humble $ cd ..
ビルド実施
Raspberry Pi 4BとRealsense D435の組み合わせなので、Qtまわりでビルド失敗するgazebo系は飛ばしています
$ colcon build --packages-skip realsense_gazebo_plugin xarm_gazebo xarm_planner
使用
マーカーの生成
デフォだとDICT_5X5_250のものが生成されます。
替えたい場合は --dictionary オプションで指定。
$ ros2 run ros2_aruco aruco_generate_marker --id 42
実行
DICT_5X5_250のマーカーサイズが10cm=0.1m、カメラがRasPi4BのRealsense D435のケースでは以下のような感じになります
(realsense2_cameraは先に起動しておいてください)
$ ros2 run ros2_aruco aruco_node --ros-args -p marker_size:=0.1 -p image_topic:=/camera/camera/color/image_raw -p camera_info_topic:=/camera/camera/color/camera_info
試しにトピック内容を確認しときます
$ ros2 topic info /aruco_markers Type: ros2_aruco_interfaces/msg/ArucoMarkers Publisher count: 1 Subscription count: 0
画角の中でDICT_5x5のID=42のマーカー動かし、その様子を読むとこんな感じ
結構
$ ros2 topic echo /aruco_markers header: stamp: sec: 1697079067 nanosec: 47821777 frame_id: camera_color_optical_frame marker_ids: - 42 poses: - position: x: -0.014340230843221665 y: 0.04541124134020066 z: 0.8333144763922312 orientation: x: 0.9970457343243315 y: 0.032748568591268415 z: 0.03998359230571906 w: 0.05682118678105546 --- header: stamp: sec: 1697079067 nanosec: 81179443 frame_id: camera_color_optical_frame marker_ids: - 42 poses: - position: x: -0.009487610521737102 y: 0.046256120321855214 z: 0.833102752779483 orientation: x: 0.9942479774523191 y: 0.028283850044668407 z: 0.060166346320995545 w: 0.08397019667123372 --- header: stamp: sec: 1697079067 nanosec: 114537109 frame_id: camera_color_optical_frame marker_ids: - 42 poses: - position: x: -0.0038821139120598894 y: 0.046213250873967174 z: 0.8303160400498403 orientation: x: 0.99166368348326 y: 0.024339255290264566 z: 0.033505239903708746 w: 0.12201695952335141 --- header: ...