ros系统矫正镜头畸变

学长说近期会有个项目用到ros系统,让我自己再复习一遍ros的操作。刚加课题组时看ros wiki浅浅入了个门,结果今天一用发现之前自己学的全是漏洞,于是记录一下折腾的记录。

ros系统安装不难,20.04lts对应了noetic版本的ros,很快就装好了。

想到后面会用ros采集数据,我打算拿之前做python项目的usb摄像头练练手,顺便用实验室的标定板给它矫正一下畸变。

用到的包有:opencv, usb_cam, ros-noetic-camera-calibration, ros-noetic-image-proc


编译usb_cam需要先安装好opencv,我用的是opencv官网下载的源码编译安装的方法

本来是想apt-get装usb_cam的,但是装好发现我的摄像头是video1而不是video0,要更改默认摄像头需要重新编译,于是干脆还是下载源码版从头编译得了


这里安装ros包的过程走了些弯路,直接说结论:

为了做好后续第三方包管理,最好使用catkin (ROS社区开发的元编译系统),方法是在主目录(~)下新建一个catkin_ws文件夹,里面新建一个src用于放置源码,然后回到catkin_ws下打开终端输入catkin_make,这样就创建好了目录

别忘了把source ~/catkin_ws/devel/setup.bash用vim添加到~/.bashrc下,这样以后打开终端不需要一遍遍地source了

然后在src下克隆usb_cam项目,编译没什么好说的,结束以后在launch文件下的launch配置文件设置分辨率、默认相机


相机畸变矫正参考文章写的很详细。我这篇文章旨在解释和规范化这篇文章之前的步骤

搞定了矫正之后新建一个包my_camera,查看图像先roslaunch my_camera my_camera.launch创建话题,然后ROS_NAMESPACE=usb_cam rosrun image_proc image_proc保证图像和摄像头参数话题能正常的被image_proc节点接收


image_proc可以利用usb_cam话题下的camera_info矫正畸变,rqt_image_view中最终效果如下:
效果

posted @ 2023-10-05 15:41  想玩攀岩的slam小白  阅读(233)  评论(0)    收藏  举报