ROS学习——-ubuntu16.04之摄像头的标定目录
-
-
- 一、进行摄像头的挂载
- 1、打开ubuntu16.04,进入图像界面后,选择VM上面的用户看,右击,选择可移动设备
- 二、安装相机校准功能包
- 1、安装命令如下,没有安装的就安装,安装过的会提示已经安装
- 三、启动ROS,进行摄像头的标定
- 1、启动ROS
- 2、新建一个终端,运行相机节点
- 3、准备棋盘
- 4、进行摄像头校正
- 1、输入如下命令进行摄像头的校正
- 2、将棋盘放入摄像区域,校正成功如下所示:#### 3、保持校准1到5分钟左右,便会出现校准的成功的标志,如下所示:
- 4、校准过程大约进行了1分钟左右,上面的==CALIBRATE==按钮会被激活,点击这个按钮后会进行实际的校准计算,这大约需要半分钟,计算成功后的界面所下所示,所有按钮都被激活:
- 5、点击==SAVE==按钮保存校准信息,这时候,在左边的终端会出现存储的地址信息:==/tmp/calibrationdata.tar.gz==
- 6、进入 ==/tmp文件==,解压calibrationdata.tar.gz文件,查询图像文件和校准参数
- 一、进行摄像头的挂载
-
在嵌入式的开发过程中,特别是人智能的开发,在进行机器人的开发的时候,我们需要通过摄像头进行信息的采集,ROS开发也是这样,需要调用摄像头对信息进行采集,进一步进行数据分析判断,做出下一步的行动,特别是摄像头的识别,对于人工智能来说是一项重要的设备,本次博客林君学长将带大家了解ubuntu16.04如何进行摄像头的标定
一、进行摄像头的挂载
1、打开ubuntu16.04,进入图像界面后,选择VM上面的用户看,右击,选择可移动设备
上图中是我自己的摄像头名称,小伙伴的可能不一样,然后再圈圈4中点击连接,我的是连接好的,所以显示断开连接,小伙伴们最开始应该是连接
二、安装相机校准功能包
1、安装命令如下,没有安装的就安装,安装过的会提示已经安装
sudo apt-get install ros-kinetic-camera-calibration
如上所示,我的之前已经安装成功了!
三、启动ROS,进行摄像头的标定
1、启动ROS
roscore
2、新建一个终端,运行相机节点
1)、注意这里的topic和service和后面矫正包订阅的并不一样,所以运行驱动的时候要重新映射
rosrun uvc_camera uvc_camera_node image_raw:=/camera/imagraw set_camera_info:=/camera/set_camera_info
相机节点启动成功后,笔记本电脑上面的摄像头会亮着哦,记得观察吧!林君的笔记本是联想的,亮着的!
2)、打印相机信息
rostopic echo /camera_info
我们可以看到D、P、K、R都是空的!
3、准备棋盘
1)、例如自己的棋盘是8*6的棋盘,如下所示:
注意:不同长宽的棋盘,后面启动相机标定时候设置的参数也就不同
4、进行摄像头校正
1、输入如下命令进行摄像头的校正
rosrun camera_calibration cameracalibrator.py —size 8x6 —square 0.024 image:=/camera/image_raw camera:=/camera
2、将棋盘放入摄像区域,校正成功如下所示:#### 3、保持校准1到5分钟左右,便会出现校准的成功的标志,如下所示:
4、校准过程大约进行了1分钟左右,上面的CALIBRATE按钮会被激活,点击这个按钮后会进行实际的校准计算,这大约需要半分钟,计算成功后的界面所下所示,所有按钮都被激活:
5、点击SAVE按钮保存校准信息,这时候,在左边的终端会出现存储的地址信息:/tmp/calibrationdata.tar.gz
6、进入 /tmp文件,解压calibrationdata.tar.gz文件,查询图像文件和校准参数
1)、进入 /tmp文件夹
cd /tmp
2)、解压calibrationdata.tar.gz文件
tar -xvzf calibrationdata.tar.gz
打开其中一张图片查看:
xdg-open left-0010.png
3)、上图可以看到我们的图像文件有很多png格式的图片,这些就是我们图像文件,最下面就是我们的校准参数文件:
4)、将ost.txt文件改名为ost.ini
mv ost.txt ost.ini
5)、使用camera_calibration_parsers功能包的convert节点创建相机参数文件(camera.yaml)
rosrun camera_calibration_parsers convert ost.ini camera.yaml
6)、将camera.yaml其保存在~/.ros/ camera_info/目录中,则ROS中使用的相机相关功能包会引用此信息
- 在~/.ros/ 下创建== camera_info==目录
mkdir ~/.ros/camera_info
- 将camera.yaml其保存在~/.ros/ camera_info/目录中
mv camera.yaml ~/.ros/camera_info/
7)、再次运行uvc_camera_node相机节点,如下所示:
这次没有出现关于校准文件的警告,对比之前:
8)、查看==/camera_info==话题,则可以看到D、K、R和P参数已被填充:
rostopic echo /camera_info
对比之前==/camera_info==的话题:
到这里,本次实验就结束啦,希望本次实验可以帮助小伙伴们更过的了解ROS的摄像头的应用哦!
以上就是本次博客的全部内容,有帮助的小伙伴记得点赞、关注哦!遇到问题的小伙伴评论区留言哦,林君学长耐心给大家解答,这个学长不太冷!
_陈一月的又一天编程岁月^ _ ^_
评论(1)
您还未登录,请登录后发表或查看评论