论文部分内容阅读
机器人技术是工业进步的标志,在某些危险的工作环境中,它们有着不可替代的作用。Microsoft Kinect传感器问世后,体感机器人成了当今的一个研究热点,它有着巨大的潜在价值。本文设计了一个由FPGA控制的远程机械臂监控系统,可以通过体感方式完成机械臂控制。机械臂本体采用六自由度串联型机械臂,利用MATLAB Robotics Toolbox建立了它的模型,并完成了机械臂的正运动学、逆运动学和轨迹规划求解。本文采用Altera公司的EP2C8Q208型FPGA作为下位机主控芯片,编写了Verilog HDL程序包括PWM方式舵机控制程序、串行通信发送和接收程序、解析上位机发送给FPGA的控制命令程序、加速度传感器与FPGA的I2C通信程序、角陀螺仪与FPGA之间的AD转换程序等。上位机由Lab VIEW编程,计算主要关节的夹角和腰部转动角度,实时显示三维模拟机械臂的运动状态,采用三种方式控制机械臂运动:上位机直接选择控制舵机的编号、方向和角度对机械臂进行运动控制;MATLAB与Lab VIEW混合编程,输入目标点的三维坐标,由MATLAB编写的机械臂运动学反解程序进行舵机转角的自动计算和控制;基于Kinect传感器,用C#编写了基于空间向量法计算人体双臂关节角的程序,实现双臂体感控制机械臂,其中,左臂负责机械臂肩关节、肘关节、腕关节俯仰的控制,右臂负责腰部、腕关节旋转和手指的控制。Lab VIEW程序生成.exe可执行文件,可移植性高。在上位机中,对双臂各个关节夹角进行滤波,提出带限幅的加权滑动平均滤波算法,并与滑动平均滤波算法、加权滑动平均滤波算法进行了对比分析。经调试,FPGA接收和发送指令无冲突,机械臂的运动平稳且位置准确,Kinect传感器检测人体骨骼关节角正确,LabVIEW可以实时读取C#生成在文本文件(txt格式)中关节角的数据并进行滤波,能滤除异常数据使得曲线平滑,时滞性小,机械臂可夹取形状规则的物体。