玩手板球的 AI 机械臂:6 个步骤(带图片)- 教程

介绍:玩手板球的人工智能机械臂


 

你打手板球吗,你有没有想过用机械臂玩会有多酷?好吧,你来对地方了。这个指导将指导你,在这个指导结束时,你将能够建立你的自己的机械臂,和你一起玩手板球。

步骤 1:您需要的东西:


 


 


 

5 更多图像
  • 4 x 微型伺服电机
  • 阿杜诺乌诺
  • 电线绝缘管
  • 尼龙线
  • CD封面(手掌用)
  • 云母片
  • 打开简历
  • Python
  • 高清摄像头
  • Fevikwik 和双面胶带
  • 一些螺母和螺栓

步骤 2:总体视图:


 

图片为您提供了总体思路。

高清摄像头:获取输入

图像处理:处理图像以告诉手臂人类玩过的数字

算法:决定手臂必须玩哪个数字

Arduino:它控制伺服电机,进而旋转手指。

步骤 3:设计手指:


 


 


 

机械臂的设计与具有5个手指的人手的结构相似。每个手指都由一根弹性电线绝缘管制成,并相应地切割以代表机器人的手臂。使用这些管子是因为它们既便宜又可靠。管子上有六边形切口,便于灵活运动。尼龙线用于手指和电机轴之间的连接。尼龙是因为它的强度。将线系在管子的最顶部,线向内穿过,进入空心管。然后将线连接到固定在云母片中的电机轴上。手指粘在手掌的底座(这里是 CD 板)上,并放置在云母片中伺服电机底座的稍上方,以方便拉动电机。

步骤 4:通电!


 

 


 

 


 

 

为了给舵机供电,使用了7805的稳压电路。微型舵机的工作电压范围为4.8-6V,所需电流约为500-600毫安,因此每个舵机由单独的7805供电稳压电路。

电路所需的元件:

4 x 7805 IC

4 x 100uF 电容

4 x 10uF 电容

4 个 LED

4 x IN4007 二极管

4 x 220 欧姆电阻

一个开关

一个电源插座

公连接器引脚

使用7805的稳压电路按照框图焊接,制作了四个这样的电路。输入电源(12V电池)提供给电源插座和一个开关,然后将正极和地提供给IC。

伺服电机有三根线,红5V供电,棕地和白/黄信号。所以7805 IC的输出给电机,地线接地,arduino的线作为信号给出。所有四个伺服系统都做同样的事情。并确保将 arduino 接地也接地。

 

步骤 5:图像处理和算法:


 

 


 

 


 

处理图像:

高清摄像头接收输入,通过一个简单的算法来找到显示的手指数量。输入帧为RGB格式,即红、绿、蓝。它基本上将输入的RGB视频帧转换为YCrCb格式。Y是亮度Cb 和 Cr 是蓝色、红色色度差异分量。处理和解码每个单独的帧。对其他连续帧重复此过程。它是一种编码RGB信息的方式。现在帧被高斯函数模糊了。接下来我们在 YCrCb 图像中找到具有肤色的区域。该方法包括将视频信号中每一帧的图像数据分离成数据集,平均每个数据集中的图像数据以生成数据集中每个颜色分量的平均值,将平均值与存储的颜色配置文件相关联人的肤色,

通过轮廓追踪查找区域:

提取肤色区域后找到轮廓。轮廓的边界点存储在数组中。轮廓主要用于物体识别。轮廓跟踪是对数字图像执行的许多预处理技术之一,目的是提取特定图像的边界。因此,正确提取轮廓将产生更准确的特征,这将增加正确分类给定对象的机会。所有存在于帧中的轮廓都存储在其中,根据区域从中提取手部轮廓。凸包使用内置函数 cv2 绘制。convexHull() 函数检查曲线的凸性缺陷并纠正它。凸曲线是总是向外凸出的曲线,或者至少是平坦的。如果内部鼓起,则称为凸面缺陷。首先,我们从最左边的点(或具有最小 x 坐标值的点)开始,并沿逆时针方向继续环绕点。该集合的凸包是包含其所有点的最小凸多边形。

凸面缺陷:

包围手的红线(如图 3 所示)是凸包。基本上它是一个凸集。如果我们在红色区域内取任意两点并将它们连接起来形成一条线,那么这条线完全位于集合内。ConvexityDefects 是查找凸包和轮廓之间缺陷的特征,这些缺陷对于查找手中的特征(例如手指的数量)很有用。深度点是手指之间的空间。缺陷()函数返回co-凸点的纵坐标,我们绘制连接这些凸点的线。从极端手指的两个凸点到图像外画两条线,n-1条线连接n个手指。因此检测到显示的手指的数量。

为了区分同时表示两个凸点和表示两个凸点的拇指,以一个凸点位于圆内的方式绘制一个半径为圆的圆。而对于数字二,两个凸点都位于圆外。因此,2 与数字 6 不同。显示的数字被发送到另一个旨在玩手板球的算法。为避免任何差异,在 50 个连续帧中检测该数字,并将这些值的模式作为数字传递给算法.

算法:

手臂必须击球和保龄球。然后,击球和保龄球算法都应该生成一个随机
数,其中包括模式解密的特殊情况,并且必须是不可预测的。因此,这里使用具有偏置权重的随机数的概念。

使用 2.7 版本的 Python。

代码下载见文末

步骤 6:驱动舵机:

由算法决定的数字提供给arduino。编写了一个简单的代码来驱动伺服器来表示相应的数字。

代码下载见文末

 


FAQ:

版权说明

玩手板球的人工智能机械臂
本文遵循CC BY-SA版权协议,转载请附上原文出处链接及本声明。
链接:https://51qudong.com/ai-robotic-arm-which-plays-hand-cricket.html
作者:Robotics+club+of+CEG
版权协议:CC BY-NC-SA
分类标识:robots-10
资源标识:AI-Robotic-Arm-Which-Plays-Hand-Cricket

视觉魔法师

我还没有学会写个人说明!

暂无评论

发表评论

相关推荐