欢迎光临散文网 会员登陆 & 注册

机器人制作开源方案 | 桌面级机械臂--应用设计

2023-09-04 11:38 作者:机器谱  | 我要投稿

      本节内容将基于机器视觉带着大家进行应用实训。机器视觉是人工智能正在快速发展的一个分支,简单说来机器视觉就是用机器代替人眼来做测量和判断。机器视觉系统是通过机器视觉产品(即图像摄取装置,分CMOS和CCD两种)将被摄取目标转换成图像信号,传送给专用的图像处理系统,得到被摄目标的形态信息,根据像素分布和亮度、颜色等信息,转变成数字化信号;图像系统对这些信号进行各种运算来抽取目标的特征,进而根据判别的结果来控制现场的设备动作。

      机器视觉基础主要包含二维码识别颜色识别等。

      机器视觉系统最基本的特点就是提高生产的灵活性和自动化程度,在一些不适于人工作业的危险工作环境或者人工视觉难以满足要求的场合,常用机器视觉来替代人工视觉。同时在大批量重复性工业生产过程中,用机器视觉检测方法可以大大提高生产的效率和自动化程度。下面我们将结合机器视觉基础,基于开源的机器人平台,进行桌面机械臂搬运、颜色追踪等应用开发。


1. 视觉二维码识别

      二维码的应用渗透到生活的方方面面,如手机购物、微信登录等,二维码常见的分类有矩阵式、堆叠式/行排式。具有代表性的矩阵式二维条码有Code One、Maxi Code、QR Code、 Data Matrix等;具有代表性的行排式二维条码有Code 16K、Code 49、PDF417等。

      二维码的使用分为:生成二维码、识别已生成的二维码。这里我们主要是识别已生成的二维码(矩阵式二维码)。

设计思路

      本实验主要是基于矩阵式二维码进行识别。QR码(Quick Response Code)是在正方形二维矩阵内通过黑白标识编码二进制位从而编码数据。

实现思路

      利用摄像头采集二维码信息,利用zbar库识别后把结果显示在屏幕上。

器材准备

      生成QR Code码(可以用在线编辑器生成)、摄像头。

      下面是为本实验准备的二维码:(当然大家也可以直接打开微信二维码进行识别)

操作步骤

第一步:连接电路。将摄像头与控制盒进行连接。

第二步:下载文末资料中的参考程序color_experiment_ws\src\qr_detection\scripts\QrCode_Detection.py:

第三步:运行程序并查看效果。

打开终端,输入roslaunch qr_detection qr_detection_experiment.launch命令(见下图),等待程序的运行启动界面。

界面启动后,添加Image并设置其参数,设置成功后出现以下三幅图像画面。

图一
图二
图三

把QR code类型的二维码放置在摄像头下,稍后就会在界面上显示结果(如下图所示)。

2. 形状识别—识别圆形

实现思路

利用摄像头采集图片信息,识别圆形后显示出圆的中心坐标。

器材准备

主要用到:摄像头、红色和绿色两种圆形图(如下图所示)。

操作步骤

第一步:连接电路,将摄像头与主机进行连接。(温馨提示做实验时,大家可以灵活的把摄像头放置在圆形图片上方,以便于采集图形信息)

第二步:下载文末资料中的参考程序color_experiment_ws\src\shape_detection\scripts\shape_detection_victory.py:

第三步:运行程序并查看效果。

打开终端,输入roslaunch shape_detection shape_detection_experiment.launch 命令(见下图), 等待程序的运行启动界面。

界面启动后,添加Image并设置其参数,设置成功后出现以下三幅图像画面。

图一
图二
图三

      放置待识别的圆形图(请把物品放置在摄像头可以采集到的区域),然后就可以在界面上看到识别结果。下图是分别识别红色圆形、蓝色圆形,并显示识别出圆心的中心坐标x、y的值。

3. 颜色识别(红绿蓝)

实现思路

      摄像头采集红绿蓝的物品颜色后,利用开源视觉库进行识别,把结果显示在屏幕上。


颜色识别算法

RGB和HSV彩色模型

      数字图像处理通常采用RGB(红、绿、蓝)和HSV(色调、饱和度、亮度)两种彩色模型,RGB虽然表示比较至直观,但R、G、B数值和色彩三属性并没有直接关系,模型通道并不能很好的反映出物体具体的颜色信息,而HSV模型更符合我们描述和解释颜色的方式,使用HSV的彩色描述会更加直观。


RGB和HSV的区别:

①. RGB模型

      三维坐标:

RGB:三原色(Red, Green, Blue)

      原点到白色顶点的中轴线是灰度线,r、g、b三分量相等,强度可以由三分量的向量表示。

用RGB来理解色彩、深浅、明暗变化:

      色彩变化 三个坐标轴RGB最大分量顶点与黄紫青YMC色顶点的连线

      深浅变化:RGB顶点和CMY顶点到原点和白色顶点的中轴线的距离

      明暗变化:中轴线的点的位置,到原点,就偏暗,到白色顶点就偏亮


②. HSV模型

      倒锥形模型:

这个模型就是按色彩、深浅、明暗来描述的。

H是色彩

S是深浅, S = 0时,只有灰度

V是明暗,表示色彩的明亮程度,但与光强无直接联系。

③. RGB与HSV的联系

     从上面的直观的理解,把RGB三维坐标的中轴线立起来,并扁化,就能形成HSV的锥形模型了。

     但V与强度无直接关系,因为它只选取了RGB的一个最大分量。而RGB则能反映光照强度(或灰度)的变化。

     v = max(r, g, b)

     由RGB到HSV的转换:

④.HSV色彩范围

操作步骤

第一步:连接电路。将摄像头与主机进行连接。

第二步:下载文末资料中的参考程序color_experiment_ws\src\color_detection\scripts\color_test_one.py:

第三步:运行程序并查看效果。

打开终端,输入roslaunch color_detection color_detectioning.launch命令(见下图), 等待程序的运行启动界面。

界面启动后,添加Image并设置其参数,设置成功后出现以下三幅图像画面。

图一
图二

图三

放置物品(请把物品放置在摄像头可以采集到的区域),然后摄像头开始识别颜色并在界面上显示识别结果。

下面以蓝色物品为例,当摄像头识别到蓝色物品后,在界面上显示结果(the color is blue)。

大家也可以试着去放置红色、绿色物品(识别结果见下面两幅图)。

4. 键盘控制运动

实现思路

      按下键盘上指定的键,实现底盘、大臂、小臂朝不同方向运动。

操作步骤

      第一步:下载文末资料中的参考程序color_experiment_ws\src\visual_recognition\arduino_program\keyboard_control_arm\keyboard_control_arm.ino:

第二步:打开终端,输入roslaunch visual_recognition keyboard_control_arm.launch 命令(见下图), 等待程序的运行启动界面。

终端

第三步:尝试按下【u、o、j、l、m、.】观察运动,包括底盘左转、右转、大臂向前伸、大臂向后伸、小臂下降、小臂上升。(注意:字母均为小写;按键盘时,稍微有点间隔,给转动留时间)

键盘命令及含义表

5. 颜色识别与搬运

实现思路

      摄像头识别不同颜色的物块后,机械爪开始抓取把其搬运到不同的区域。

操作步骤

第一步:连接电路(见下图)。

第二步:下载文末资料中的参考程序color_experiment_ws\src\color_sorting\arduino_program\arm_driver\arm_driver.ino:

第三步:运行程序并查看效果。

打开终端(Alt+ctrl+T),输入roslaunch color_sorting open_camera_and_get_ImageTopic.launch 命令即可(见下图)。

打开第二个终端(shift+ctrl+T),输入rviz命令,等待rviz界面启动。

界面启动后,添加Image并设置其参数,设置成功后出现以下三幅图像画面。

图一
图二
图三

      放置物品(请把物品放置在摄像头可以采集到的区域),然后开始识别并进行搬运。下面以红色物品为例,当摄像头识别到红色物品后,机械爪把此物品搬运到一侧;当摄像头识别到蓝色物品时,把蓝色物品搬运到另一侧。这样就完成了按颜色识别物品并搬运的过程。

      提示:颜色识别搬运时,待识别的物品周边尽量不要有过多的杂色,否则会误识别颜色。


6. 颜色识别与追踪

实现思路

      摄像头采集到物品颜色后,随着该颜色物品的运动而缓慢移动,实现追踪效果。

器材准备

      本实验中需要用到的器材如下图所示,其中键盘、鼠标、红色物品可自行准备。

操作步骤

第一步:下载文末资料中的参考程序color_experiment_ws\src\color_tracking\arduino_program\color_tracking_Red_Things\color_tracking_Red_Things.ino:

第二步:打开终端(Alt+ctrl+T),输入roslaunch color_tracking color_tracking_sth.launch 命令即可,见下图。

打开第二个终端(shift+ctrl+T),输入rviz命令,等待rviz界面启动。

界面启动后,添加Image并设置其参数,设置成功后出现以下三幅图像画面。

图一
图二

图三

第三步:放置物品(请把物品放置在摄像头可以采集到的区域),开始追踪。下面以红色物品为例,当摄像头识别到红色物品后,随着红色物品的运动缓慢移动,实现追踪效果。(注意:受硬件的影响,物品的移动速度要稍微慢一些)。


图一
图2 上位机采集的图片信息及画轮廓

7. 资料下载

资料内容:程序源代码

资料下载地址:桌面级机械臂-应用设计 https://www.robotway.com/h-col-259.html

机器人制作开源方案 | 桌面级机械臂--应用设计的评论 (共 条)

分享到微博请遵守国家法律