• 欢迎访问开心洋葱网站,在线教程,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站,欢迎加入开心洋葱 QQ群
  • 为方便开心洋葱网用户,开心洋葱官网已经开启复制功能!
  • 欢迎访问开心洋葱网站,手机也能访问哦~欢迎加入开心洋葱多维思维学习平台 QQ群
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏开心洋葱吧~~~~~~~~~~~~~!
  • 由于近期流量激增,小站的ECS没能经的起亲们的访问,本站依然没有盈利,如果各位看如果觉着文字不错,还请看官给小站打个赏~~~~~~~~~~~~~!

ROS探索总结(六十七)—— 古月私房课 | ROS机器视觉应用中的关键点

人工智能 古月 3052次浏览 0个评论

~欢迎关注~

微信公众号:古月居

新浪微博:古月春旭

知乎专栏:古月居

原文链接:古月私房课 | ROS机器视觉应用中的关键点

 

古月居联合深蓝学院推出的“古月私房课”第一弹——《ROS机械臂开发:从入门到实战》已经上线啦,欢迎各位小伙伴前来围观,以下是第八讲《ROS机器视觉应用中的关键点》的内容精要。

大家好,这里是《ROS机械臂开发:从入门到实战》的第八讲——ROS机器视觉应用中的关键点,我是主讲人胡春旭。

幻灯片1

在很多应用场景中,机械臂都是重要的执行单元,需要配合摄像头等传感器来感知外界环境,本讲我们就来介绍ROS机器视觉应用中的几个关键点。

幻灯片2

首先我们需要知道如何在ROS中将摄像头驱动起来,以及驱动发布的图像数据是什么样的。

幻灯片3

ROS中有通用USB摄像头的驱动功能包——usb_cam,安装后很快就可以把摄像头跑起来,在该功能包的wiki上我们可以看到详细的接口说明,最终的图像将通过<camera_name>/image发布出来,订阅后就可以看到图像了。

幻灯片4

该话题的消息类型是sensor_msgs/Image,具体结构如下,按照高清图像计算的话,每帧图像数据量将近3MB,每秒产生的数据量将在60MB以上,会对通信传输造成比较大的压力。

幻灯片5

所以我们也经常使用压缩图像进行传输,ROS里也定义了CompressedImage压缩图像的消息,只包含压缩格式和数据即可,大大减少了传输数据量。

幻灯片6

除二维摄像头外,我们也可以使用三维摄像头获取更为丰富的数据,常用的RGBD摄像头不仅可以获取每个像素点的RGB值,还可以获取深度XYZ信息,将会以一个点云的形态展现三维环境信息。

幻灯片7

下图就是RealSense运行之后的点云图像。

幻灯片8

ROS中定义了PointCloud2消息描述点云数据,单帧数据量是纯图像数据的多倍,在图像传输中同样需要考虑优化问题。

幻灯片9

摄像头获取图像之后,我们就可以继续下一步——摄像头标定啦。这里有内参标定和外参标定的区别,本讲我们先介绍内参标定,下讲会介绍外参标定。

幻灯片10

内参标定主要针对摄像头本身硬件的参数,避免数据源上带来的图像枕形畸变或筒形畸变,在ROS里有直接可用的标定功能包。

幻灯片11

启动摄像头之后,就可以运行标定节点了,注意命令后边跟的配置参数,需要指明标定靶的内部角点数、方格边长以及图像话题名。

幻灯片12

然后把标定靶放到视野中,根据右上角的提示不断移动,直到“CALIBRATE”按键变成绿色,说明标定图像采集结束,点击“CALIBRATE”和“SAVE”按键后完成标定过程。

幻灯片13

将生成的标定参数文件放置到功能包中,并在驱动中添加文件路径,即可在运行后使用标定好的参数啦。

幻灯片14

标定后的图像发布出来后,接下来是本讲的重点,我们要完成图像中某物体的识别。

幻灯片15

这里要用到一个大家都很熟悉的工具——OpenCV。

幻灯片16

ROS本身并没有图形处理能力,需要借助OpenCV等开源库实现,由于不同库中的图像数据定义不同,ROS定义了一个“Bridge”来做桥接,CvBridge就是完成ROS图像消息和OpenCV图像数据转换的“桥”。

幻灯片17

我们来运行CvBridge官方提供的一个例程,先将ROS图像消息转换到OpenCV中,并调用OpenCV绘制了一个红点显示出来,再变换回ROS消息,使用ROS工具显示出来,两幅图像是完全一样的。

幻灯片18

代码层面就是调用CvBridge实现的。

幻灯片19

接下来我们看一个复杂点的图像识别案例:在如下仿真环境中,通过红色摄像头识别黑色桌面和绿色易拉罐的位置,下讲我们再来实现机械臂的抓取。

幻灯片20

例程运行后,打开rqt工具,可以看到原始图像、桌面识别结果图像和物体识别结果图像,蓝色框出了识别物体的边缘,红心代表物体的中心。

幻灯片21

代码实现方面依然是之前的流程,只不过OpenCV图像处理的部分复杂很多,通过图像通道的分离和阈值判断识别不同的颜色来确定物体的像素位置,再通过一个简单的线性变换计算图像坐标系下的实际位置。

幻灯片22

再分别将结果转换成ROS图像消息发布出去,就可以在ROS中看到结果啦!

幻灯片23

以上就是本讲的内容精要,详细讲解过程和仿真/真机演示过程请见具体课程。

幻灯片24

更多精彩,欢迎大家关注“古月居”。

幻灯片27

 

更多内容欢迎关注:

微信公众号:古月居 (guyue_home)

新浪微博:古月春旭

知乎专栏:古月居


开心洋葱 , 版权所有丨如未注明 , 均为原创丨未经授权请勿修改 , 转载请注明ROS探索总结(六十七)—— 古月私房课 | ROS机器视觉应用中的关键点
喜欢 (0)

您必须 登录 才能发表评论!

加载中……