1.标定安装camera_calibration功能包(18.04)
sudo apt-get install ros-melodic-camera-calibration
启动usb摄像头
roslaunch usb_cam usb_cam-test.launch
运行标定程序(具体参数根据打印黑白格纸的类型和rostopic list中的
-
/usb_cam/camera_info
-
/usb_cam/image_raw 来决定)
rosrun camera_calibration cameracalibrator.py --size 11x8 --square 0.03 image:=/usb_cam/image_raw camera:=/usb_cam
用打印好的黑白格纸上下左右前后晃动,直到可以计算,点击 calculate,等待几分钟后,点击save和commit.(会自动保存)
2.导入apriltags_ros功能包
开始用最新版时(apriltags2_ros),编译需要opencv3.2的一个动态库(而我的tx2只有opencv4),后来找到合适版本的功能包(我下的是apriltags_ros),git后运行里面的一个launch文件(先打开摄像头),在rostopic echo /tag_detections可得到具体数据。
需要注意:
1.如果要通过ros话题订阅获取到position.x,position.y,position.z.得注意它的消息类型是geometry_msgs/PoseArray
2.功能包中的launch文件需要自己修改一下
3.launch文件中需要设置不同id的apriltag码的尺寸
3.最终结果