ROS下使用D435识别AR码

前言

在ROS Kinetic下使用Inter realsense D435,结合ar_track_alvar功能包,实现AR码的识别与定位。

说明

借鉴胡春旭老师的launch文件进行改写。
ROS下使用D435识别AR码1. 主要修改红框部分。需要注意到,cam_image_topic需要是sensor_msgs::PointCloud2类型,从众多topic类型里面找到即可。
2. 尝试了几下,发现参数output_frame跟右侧显示的frame_id:camera_color_optica_frame无关。也即所有的输出都是参照frame_id. 实际使用时,还需再注意一下。
3. 所以,在RVIZ里显示的时候,也是根据frame_id:camera_color_optica_frame来显示,而非第二点中提到的output_frame
4. 右侧读取的topic/visualizatin_markerid即为AR码编码。
5. 在读取AR码的launch文件中,预设了AR码的尺寸marker_size。实际上通过试验发现测量位置结果与该AR码预设尺寸无关。(在使用USB相机时,计算结果与该预设尺寸有关)

其它

  1. D435的相机内部参数已经写入其固件中,因此不需要在ROS中标定并使用其参数文件。

https://github.com/intel-ros/realsense/issues/508

  1. 测试方式为一张纸上有不同大小方向的4个AR码,通过相机读取结果计算的码间相对距离与实际距离很相近。