Kinect XBOX 360和六轴机械臂的实时映射


时间:2019-06
地点:深圳
邮箱:[email protected]

=================================================================================

内容概要:
1.如何使用ROS控制UR5机械臂;
2.使用Kinect 1 进行人体骨骼追踪;
3.将提取的骨骼关节角度参数传给UR5机械臂。


环境及主要工具:
Ubuntu16.04、ROS(Kinetic)、CLion、OpenNI等等。

=================================================================================

ROS与UR5机械臂的通讯

UR5系列的机械臂支持使用ROS进行控制,相关的功能包在ROS开源社区就可以找到。所以安装相关的功能包非常的简单,使用如下的命令就可以:

sudo apt-get install ros-kinetic-universal-robot

当时控制真实UR机械臂时这个功能包会有问题,解决方法可以参照下面的链接ur机械臂实体联调解决方法,这样我们就完成了第一步。

Kinect1 进行人体骨骼追踪

首先我们说一下骨架空间,在Kinect里面,是通过20个关节点来表示一个骨架的,具体可以由图3-8看到。当你走进Kinect的视野范围的时候,Kinect就可以把你的20个关节点的位置找到(此时你得站着),位置通过(x,y,z)坐标表示。这样。你在Kinect前面做的很多复杂的动作的时候,因为人的动作和这些关节点的位置的变化由很大的关系。当电脑拿到这些数据后,对理解你做什么动作就很有帮助了。
人体骨架空间

骨骼追踪

在Ubuntu上使用的IDE是CLion,用起来很方便,Openni提取骨架信息代码如下:

#include <stdlib.h>
#include <iostream>
#include <vector>

#include <XnCppWrapper.h>
#include <XnModuleCppInterface.h>
#include "cv.h"
#include "highgui.h"

using namespace std;
using namespace cv;

//#pragma comment (lib,"cv210")
//#pragma comment (lib,"cxcore210")
//#pragma comment (lib,"highgui210")
//#pragma comment (lib,"OpenNI")

//【1】
xn::UserGenerator userGenerator;

xn::DepthGenerator depthGenerator;
xn::ImageGenerator imageGenerator;

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值