手势控制的机器人手臂

将向你展示如何构建机械手臂并使用手势和计算机视觉来控制它。下面有一个在开发阶段的机械手臂的演示视频。

展示开发中的手臂的演示视频:https://youtu.be/KwiwetZGv0s

如图所示,该过程首先用摄像头捕捉我的手及其标志。通过跟踪特定的界标,例如拇指和食指的指尖,可以确定这些界标的相对运动,并将其转化为伺服系统的运动。这是通过处理数据并将整数值发送到控制伺服电机的 Arduino 的 Python 脚本完成的。

操作流程:

相机 —> python 脚本 —> Arduino —> 伺服电机

f6b4ec8ea3d509fd4f1539aa3f9ef856.jpeg

此项目的项目列表

  1. 机械臂套件(仅限框架和伺服电机 (MG996)):

  2. Arduino 板(加 USB 线)

  3. 跳线

  4. 电话充电器

  5. PCA9685 伺服电机驱动器

  6. 笔记本电脑

  7. 抽吸泵套件:

  8. 继电器模块

使用的编程环境:
  1. 开发环境

  2. PyCharm 编辑器

先决条件:
  • OpenCV 知识

    • youtube 上有教程:https://www.youtube.com/watch?v=WQeoO7MI0Bs&t=8774s

  • 了解 C++ 和 Python

需要修改机械臂组件(用于我购买的套件),因为伺服电机在完全组装后无法移动机械臂,导致某些自由度 (DOF) 的损失,并取消了作为末端执行器的抓手。我选择改用抽吸泵机构。

对于这个项目,你可以只购买我使用的机械臂套件,或者只购买底盘并升级到更强大的伺服系统,以与完整的组件一起工作。第二种选择需要你使用本文作为指导,并进行修改以达到你想要的结果。

  1. 组装机械臂:

  • 将 Arduino 代码加载到电路板上,并使用电路图连接伺服电机。

  • 是时候组装机器人手臂了。在开始之前,确保按照此处所述(https://www.electroniclinic.com/pca9685-servo-driver-arduino-circuit-diagram-and-code/#google_vignette),通过下载并安装 HCPCA9685 库来加载 Arduino 代码。使用提供的电路图连接伺服电机,以确保它们处于所需位置。首先将手臂底部的伺服(旋转底座关节)连接到 PCA9865 的引脚 0,然后将手臂中的下一个伺服(肩关节)连接到引脚 3,依此类推,从左到右移动 PCA9685。最后,启动 Arduino 板并等待伺服电机到达其位置。

  1. 手臂关节

  • 将滑轮放在伺服电机上并固定螺钉。

  • 现在是时候组装机器人手臂的其他部分了。使用此处(https://automaticaddison.com/how-to-build-a-diy-aluminium-6-dof-robotic-arm-from-scratch/) 链接的视频作为指南,但你可以随意使用自己的方法来实现图像中描绘的姿势。如果在测试过程中遇到任何问题,例如关节不动,请检查伺服电机是否发热。如果天气很热,则该接头处可能存在装配问题,导致其无法正常工作。

880cd4c1df8635cfd4687f9dd599ebb0.jpeg 8b027964dfa74b78feca5c2c5b0891ef.jpeg

图片显示机器人手臂处于原位。

96a14d68a54124efe26d188f0cbf54f4.png 764ba1038ba341b2071f96e56cbe3d4d.png 5ba7b399be4fe495d7e84a5c13a3a640.png

组装手臂时供参考的附加图片

  1. 连接抽吸泵:

  • 如下图所示连接软管,黑色箭头代表空气的连接和流动。

a0a41d8ba66fd4ffef8e2e44b2a19f83.jpeg 1651a97e39eb8a1d86f88e8247e1b14e.jpeg

抽吸泵机构

  • 将真空泵、继电器模块和电磁阀的负极端子连接到电源的负极端子。

  • 将继电器模块的正极端子连接到电源的正极端子。

  • 将继电器模块的信号线连接到 Arduino 板的数字引脚 3。

  • 将真空泵的正极端子连接到继电器模块的常开 (NO) 端子。

  • 将电磁阀的正极端子连接到继电器模块的常闭 (NC) 端子。

  • 将继电器模块的公共端子连接到电源输入的正极端子。

  1. Arduino代码:

  • 设置和初始化库和变量。

#include <Servo.h>

#include <Wire.h>
#include <Adafruit_PWMServoDriver.h>

// called this way, it uses the default address 0x40
Adafruit_PWMServoDriver pwm = Adafruit_PWMServoDriver();


#define USMIN  1000//600 // This is the rounded 'minimum' microsecond length based on the minimum pulse of 150
#define USMAX  2000//2400 // This is the rounded 'maximum' microsecond length based on the maximum pulse of 600
#define SERVO_FREQ 50 // Analog servos run at ~50 Hz updates

uint16_t Pos1;
uint16_t Pos2;
uint16_t Pos3;
uint16_t Pos0;
 int ang;
 int ang2;
 int ang3;
 int ang0;
 int X;  //variable storing data from the index finger (landmark 8)
 int Y;  //variable storing data from the middle finger(landmark 12)
 int Z;  //variable storing data from the ring finger (landmark 16)
 int J;  //variable storing data from the bottom of the palm (landmark 0)
 int K;  //variable storing data from the thumb finger (landmark )
 int L;  //variable storing data from the thumb finger (landmark )
 const int RELAY_PIN = 3; // auction pump relay pin
 const int RELAY_PIN = 3;
  • “setup”部分在通电后

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 肌电控制机器人手臂是一种利用肌电信号控制机器人手臂的技术。肌电信号是肌肉活动时产生的电信号,可以通过肌电传感器采集并转换成控制信号,用于控制机器人手臂的运动。 肌电控制机器人手臂技术的应用领域非常广泛,如康复医疗、残障人士辅助器具、工业自动化等。通过肌电控制技术,残障人士可以使用机器人手臂完成日常生活中的一些动作,康复医疗中也可以用于帮助患者进行肌肉训练。在工业自动化领域,肌电控制机器人手臂可以实现人机协作,提高生产效率。 肌电控制机器人手臂技术目前还存在一些挑战,如信号采集和处理、算法优化等问题,需要继续进行研究和改进。 ### 回答2: 肌电控制机器人手臂是一种通过检测和解读肌肉电信号来实现手臂运动的先进技术。这种技术的发展相对较新,但在医学康复、辅助生活等领域的应用前景广阔。 肌电控制技术主要依托于肌肉电信号的采集和处理。通过将电极安装在患者的皮肤上,可以记录到肌肉收缩所产生的电信号。这些信号经过放大和滤波处理后,可以将其转化为机器人手臂运动的控制指令。 肌电控制机器人手臂的应用十分广泛。在医学康复领域,肌电控制机器人手臂可以帮助恢复肢体功能,提供精确的运动训练和康复治疗。不仅可以恢复肌肉力量和运动协调性,还可以改善患者的日常生活质量。 此外,肌电控制机器人手臂也可以用于辅助生活。例如,对于丧失运动能力的人群,肌电控制机器人手臂可以成为他们生活的延伸,帮助完成日常活动,如吃饭、穿衣和洗漱等。同时,该技术还可以用于危险环境下的搬运和操作,以降低人工操作的风险。 总结而言,肌电控制机器人手臂是一种将肌肉电信号应用于机器人手臂运动控制的先进技术。其广泛的应用领域和潜在的发展前景使其成为医疗康复和辅助生活领域的研究热点。然而,该技术仍面临着一些挑战,如肌电信号检测和处理的精准性和稳定性,以及机器人手臂的设计和操控等问题,需要进一步的研究和改进。 ### 回答3: 肌电控制机器人手臂是一种利用肌电信号(EMG)来实现手部运动控制的技术。肌电信号是指肌肉运动时产生的电化学信号,可通过电极采集和测量。利用肌电控制技术,机器人手臂可以实现与人类手臂相似的运动。 肌电控制机器人手臂的综述可分为以下几个方面: 首先,肌电信号采集和处理是肌电控制机器人手臂的关键技术。通过电极固定在皮肤上,采集到的肌电信号需要进行滤波、放大和可视化处理,以获得有效的控制信号。 其次,肌电控制机器人手臂的运动模式包括单通道和多通道控制。单通道控制使用一个肌电信号来实现手部运动,而多通道控制则利用多个肌电信号来实现更精细的运动控制。 此外,肌电控制机器人手臂的分类可分为表面肌电控制和深部肌电控制。表面肌电控制通过电极贴附在皮肤上来采集肌电信号,适用于一般的手部动作控制。深部肌电控制则通过电极植入到肌肉组织中来采集肌电信号,可以实现更精细的手部运动控制。 最后,肌电控制机器人手臂在医疗康复、辅助生活和工业生产等领域具有广阔的应用前景。例如,在康复领域,肌电控制机器人手臂可以帮助康复患者恢复手部运动功能。在工业生产中,肌电控制机器人手臂可以辅助人类完成高强度、高精度的工作任务。 总之,肌电控制机器人手臂是一项新兴的技术,通过捕捉和利用肌电信号,能够实现精细、自然的手部运动控制。在未来,随着技术的进一步发展和应用的拓展,肌电控制机器人手臂将在各个领域展现出更广泛的应用和潜力。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值