手頭有個專案需要檢測apriltag,ROS的這個包看起來能滿足我的要求,記錄一下。
apriltag_ros:
mkdir -p ~/catkin_ws/src # Make a new workspace
cd ~/catkin_ws/src # Navigate to the source space
git clone https://github。com/AprilRobotics/apriltag。git # Clone Apriltag library
git clone https://github。com/AprilRobotics/apriltag_ros。git # Clone Apriltag ROS wrapper
cd ~/catkin_ws # Navigate to the workspace
rosdep install ——from-paths src ——ignore-src -r -y # Install any missing packages
catkin build # Build all packages in the workspace (catkin_make_isolated will work also)
相機驅動cv_camera:
cd ~/catkin_ws/src
git clone https://github。com/OTL/cv_camera
catkin build
相機標定:
rosdep install camera_calibration
1。 開啟相機
可透過ls /dev/video*檢視相機裝置
我的robot的相機是video2
設定並開啟相機驅動,
rosparam set cv_camera/device_id 2 #set camera
rosrun cv_camera cv_camera_node
檢視topic list
其中
/cv_camera/image_raw是相機抓到的圖片
/cv_camera/image_info是相機的引數
這兩個topic要用於接下來的apriltag_ros 。
2。 標定相機
rosrun camera_calibration cameracalibrator。py ——size 11x9 ——square 0。100 image:=/cv_camera/image_raw camera:=/cv_camera
解釋一下其中的引數,11*9代表我用的標定版是11*9的,size是每個正方形格子的邊長大小,單位是m,image和camera一定要對映到自己的驅動。
上下左右移動,等calibrate亮了就可以計算相機的引數了,之後save以及commit自動儲存。
3。 Apriltag生成
openmv下載
sudo chmod +x openmv-ide-linux-x86_64-2。6。5。run
。/openmv-ide-linux-x86_64-2。6。5。run
工具-機器視覺-ApirlTag生成器-TAG36H11
AprilTag
4。 執行apriltag_ros
要點參考官方wiki,各個檔案修改時的注意事項。
修改launch檔案,主要是camera_name和image_topic要改成對應相機的topic
<!—— Set parameters ——>
<!—— Remap topics from those used in code to those on the ROS network ——>
<!—— default: false ——>
修改settings。yaml檔案,採用何種apriltags二維碼
修改tags。yaml檔案,主要是自己的AprilTag
tag_bundles:
[
{
name: ‘CUSTOM_BUNDLE_NAME’,
layout:
[
{id: 0, size: 0。146, x: 0, y: 0, z: 0, qw: 1。0, qx: 0。0, qy: 0。0, qz: 0。0},
]
}
]
好了,接下來我們就可以運行了。
roslaunch apriltags2_ros continuous_detection。launch
可以透過topic list看到新的topic,其中/tag_detection就是我們的檢測結果了。
rostopic echo /tag_detection
能看到apriltag的位姿。
最後給大家看一下我小飛機的靚照,這個專案後續的部分我也會繼續更新的。