Kinect2和六轴机械臂的实时映射(初步)

本文暂时不贴代码,只是总结一下这两天的思路,做的过程中遇到的问题,尝试的各种方法以及结果。

首先说下现阶段想要的一个效果吧:利用Kinect2采集人的骨架参数,实时映射到机械臂的几个自由度让其模仿人右臂的动作。

Kinect2部分流程图大概如下:

Created with Raphaël 2.1.0 开始 初始化选择对象 检测骨架 TCP/IP发送数据 退出? 结束 yes no

1)这里的初始化选择对象的意思是让电脑知道要跟踪哪一副骨架,之前有做过一个向上举手达到两秒选中的小Demo所以直接拿过来用了,作用也十分直观,因为kinect2可以追踪六个骨架,而且这样可以中途换人。
2)知道要追踪哪一个骨架之后自然是得考虑哪些数据是有效的哪些要舍弃,这里取了右臂的肩关节,肘关节以及手关节三个点的三维坐标用来计算映射方式,对应关系如下:
①左右挥手的角度->机械臂的底座
②上臂和两肩连线夹角->机械臂自下而上第二个自由度
③上下臂夹角->机械臂自下而上的第三个自由度
④为了测试机械臂稳定程度,通过计算保持手部垂直向上(在上方可以放一些物体)
3)这里的退出暂时还没有加,初步的设想是利用kinect2的手势保持特定的几秒即可(很容易实现)

下面是这几天遇到的问题以及解决思路
1)TCP/IP通讯一直不成功,但IP可以ping得通。
解决方法:控制指令最后加上“\n” //吐了半升血
2)直接在刷图的地方给机器人发送控制指令,机器人的移动速度可以说是龟速。
初步分析:刷图的速率大概是30ms,机械臂接受指令的方式是非阻塞的,也就是说后一条会覆盖前一条,但每条指令执行的时候需要几十毫秒的“启动时间”,所以每次刚刚启动就被下一条指令覆盖了。
处理方法:判定指令必须和上一条指令有超过15度的偏差之后才会给机械臂发送指令。
3)在跟随的时候机械臂卡顿感非常严重!!!!(还没有完全解决)
初步分析:在给某个电机正向运动时一个反向的指令,机械臂会立即卡住再反向(不会平滑)
处理方法1:记录三条控制指令,判定一旦有反向的时候Sleep一秒,但这样会让画面卡住,时间少于一秒效果不是很好。
处理方法2:在1的基础之上给发送指令的部分单独写一个线程,不至于让画面卡住以及某些指令的丢失(指令确实可以有条件地舍去,但不能因为Sleep而丢失,这不好……)
处理方法3:(现阶段采取的方法)给发送指令加了一个最小间隔,大概为600ms,也就是两次指令之间至少间隔二十帧,效果比不加处理的要好很多,但很多时候还是有一定卡顿。

暂时的效果如下:(还是存在卡顿感,这也是之后可能要重点解决的问题)

这里写图片描述

这里写图片描述

最后祝大家开发愉快~

  • 14
    点赞
  • 73
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 25
    评论
手势控制是一种新兴的交互方式,结合Kinect和Arduino可以实现机械臂的手势控制。 首先,我们需要使用Kinect传感器来捕捉用户的手势。Kinect可以通过深度摄像头、RGB摄像头和红外线发射器来识别用户的身体姿势和动作。通过对Kinect SDK的编程,我们可以提取用户的手的位置和动作,包括抓取、放开、旋转等。 其次,我们将使用Arduino控制机械臂的运动。Arduino是一种开放源码的硬件平台,可以编程控制各种电子硬件设备。通过连接Kinect和Arduino,我们可以将用户的手势与机械臂的运动进行关联。我们可以将机械臂的动作编程为对应不同手势的响应,并通过Arduino控制电机和传感器来实现运动。 在项目开发过程中,我们需要先进行硬件的连接和搭建。将Kinect连接到电脑或主控设备,通过Arduino连接机械臂和电机。接下来,我们需要开发软件,使用Kinect SDK和Arduino IDE编程工具。通过编写代码来识别用户的手势,并将识别结果发送给Arduino进行机械臂的控制。我们还可以根据需要添加其他功能,例如手势的缩放和旋转等。 最后,在项目的测试阶段,我们需要验证系统的稳定性和准确性。通过不断调试和优化代码,确保机械臂能够准确地响应用户的手势。 总的来说,使用Kinect和Arduino的手势控制机械臂项目开发是一项复杂而有趣的工程。通过结合开源硬件和软件,我们可以实现更加灵活和直观的机器人控制方式,为工业自动化和人机交互领域带来创新的解决方案。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

朱铭德

五毛也是爱٩(●´৺`●)૭

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值