ROS下使用D435识别AR码
前言
在ROS Kinetic下使用Inter realsense D435,结合ar_track_alvar
功能包,实现AR码的识别与定位。
说明
借鉴胡春旭老师的launch文件进行改写。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_marker
,id
即为AR码编码。
5. 在读取AR码的launch
文件中,预设了AR码的尺寸marker_size
。实际上通过试验发现测量位置结果与该AR码预设尺寸无关。(在使用USB相机时,计算结果与该预设尺寸有关)
其它
- D435的相机内部参数已经写入其固件中,因此不需要在ROS中标定并使用其参数文件。
- 测试方式为一张纸上有不同大小方向的4个AR码,通过相机读取结果计算的码间相对距离与实际距离很相近。