apriltag介绍:
实验平台:realsenseD435和apriltag码
Apriltag的样子如下图所示,
![](https://i-blog.csdnimg.cn/blog_migrate/2dc515de36fdb0e300a8a95a05f12fed.png)
apriltag的识别过程如下图所示:
![](https://i-blog.csdnimg.cn/blog_migrate/d07491bef9d75cc8c3576cd2ad4b0f6d.png)
- 自适应阈值二值化
- 分割,边缘检测
- 四边形检测
- 二维码检测,结合黑白快的信息进行确定apriltag的族和id
通过点阵获得二维码的内部编码形式,确定二维码的族和id
ros包安装和编译:
mkdir catkin_demo/src
cd catkin_demo/src
git clone https://github.com/rocos-sia/apriltagAndrealsense.git
cd ..
catkin build
ros包解释和功能介绍:
![](https://i-blog.csdnimg.cn/blog_migrate/29c28c0a8eb883934d38ad2f1e94fc52.png)
其中apriltag2_ros就是我们的apriltag_ros只是后续更新了版本
其中apriltag2_ros就是我们的apriltag_ros只是后续更新了版本
apriltag_ros所用的话题:/camera/image_rect,/camera/camera_info:
话题接收消息类型为:/sensor_msgs/Image,该消息包含了从相机采集到的图像数据。
/camera/camera_info:话题接收消息类型为:/sensor_msgs/CameraInfo ,该消息包含了相机的内参矩阵K和其他的一些标定参数。
apriltag_ros所导出的话题:
/tag_detections:话题发布类型:apriltag_ros/AprilTagDetectionArray(自定义消息类型)
包含(识别得到的世界坐标系和相机坐标系的变换参数)
/tf:话题发布类型:tf2_msgs/TFMessage:世界坐标系和相机坐标系的变换矩阵的变换参数
/tag_detections_image:话题发布类型:sensor_msgs/Image
包含相机识别码的输出图像,如果图像没有码该信息和/camera/image_rect一致。所以无论是Realsense还是海康,只需要给该ROS包喂sensor_msgs/Image和/sensor_msgs/CameraInfo即可。
![](https://i-blog.csdnimg.cn/blog_migrate/599ff520fec4f21843416ff5661f9af2.png)
包的使用
话题的对应:可以改相机或者直接个更改该ROS包
码的参数设置:
tag.yaml
该yaml文件主要是确定码的参数和id
standalone_tags: [ {id: 1 , size: 0.14} ]
Id 为1 大小为14cm
settings.yaml
确定apriltag码的家族和算法解析参数
tag_family: 'tag36h11' # options: tagStandard52h13, tagStandard41h12, tag36h11, tag25h9, tag16h5, tagCustom48h12, tagCircle21h7, tagCircle49h12
tag_threads: 2 # default: 2
tag_decimate: 1.0 # default: 1.0
tag_blur: 0.0 # default: 0.0
tag_refine_edges: 1 # default: 1
tag_debug: 0 # default: 0
max_hamming_dist: 2 # default: 2 (Tunable parameter with 2 being a good choice - values >=3 consume large amounts of memory. Choose the largest value possible.)
# Other parameters
publish_tf: true # default: false
transport_hint: "raw" # default: raw, see http://wiki.ros.org/image_transpo
启动运行该包:
source ./devel/setup.bash
roslaunch apriltag_ros continuous_detection.launch
常用测试图像的指令
rqt_image_viewer