胡碧康,张 丁,周丽红,袁浥宁,左泓强
(武汉城市学院,湖北 武汉 430083)
通过对市面上大部分FDM 3D打印机进行分析,可以看到普通3D打印机采用三轴结构设计,现有技术仅能在上一层材料的基础上进行堆叠,当遇到悬臂结构时必须打印额外的支撑结构才能正常打印零件,且打印平台面积较小,因此不适合大型复杂产品的生产。近年来,多轴机械臂通过灵活的机动性,可以实现喷涂、搬运、加工等操作,在工业、医疗以至于军事行业应用越来越广泛[1]。
开发一款基于机械臂的六轴3D打印机,把机械臂的机动灵活与3D打印增材制造的特性融合起来,突破3D打印对打印平台、打印尺寸、打印结构的限制。然而多角度打印时,打印材料受力情况发生变化,不能沿用原3D打印机打印方法。
本文研究了机械臂在调整角度时的补偿算法,通过改变挤出头喷口方向从而给材料额外的力使其与上一层材料紧密结合,实现多角度打印。
喷头在打印时将根据模型切片文件时规划的路径以及安装在机械臂末端的各个传感器所反馈出的数据进行角度调整,因此其补偿算法如下:
在某个时间点Tx上,电子罗盘值为YawCompassTx,陀螺仪值为YawGyroTx,融合后的数据为YawFuzeTx。
下一个时间点Tx+1,陀螺仪计算的角度变化为:
其中
K的取值范围为[0.9,1),在T0时间点时:
电子罗盘:0°~360°的方位角,也称为yaw。角度为arctan2(y,x)。
这里我们引入两个定义:
1)可达工作空间。至少从一个方向可以到达的空间,可以放置末端执行器的点的总位置。
2)灵巧工作空间。机器人末端执行器能够从各个方向到达的空间区域,在这个点上,可以以任意的姿态摆放机械臂。
如图1所示,两连杆的所有关节能旋转360°,当L1=L2时,灵巧工作空间只有原点处单独的一个点,可达工作空间是半径为L1+L2的圆;当L1≠L2时不存在灵巧工作空间,可达工作空间是外径为L1+L2,内径为|L1-L2|的圆环。因此灵巧工作空间是可达工作空间的子集。
图1 两轴机械臂
为了保证打印时材料堆叠点始终保持一致的同时减少因为工作轴旋转带来的误差,在开始打印前要对机械臂进行工作空间转换,即将坐标从机械臂底座中心点转移至喷口,由于机械臂的工具坐标系原点默认为A1轴法兰盘中心,因此,首先要进行工具坐标系TCP的位置标定。
控制工具末端点分别沿x方向和z方向移动一定距离,工具末端点只在该方向上有移动,其他方向上无位移,同时固定初始姿态保持不变。实际操作上可以设置三个固定点(三个固定点满足上述要求,点2和点3相对点1只有一个方向上的移动)如图2所示,使工具末端点分别触碰这三个点然后记录下机械臂末端位姿。
图2 TCP位置标定
工具坐标系{T}到基坐标系{B}的位姿关系为:
标定误差为:
控制机械臂移动工具从不同方位触碰空间中某个固定点,记录N组数据,其次进行TCF姿态标定,如图3所示。
图3 TCF位姿标定
Xv为Z方向标定点处工具坐标系在+Z方向上的向量,Z轴相对于末端连杆坐标系{E}的方向余弦为:
工具坐标系{T}的Y轴相对于末端连杆坐标系{E}的方向余弦为:
因x方向和z方向为示教移动确定,无法保证两个方向相互垂直,因此需要对其中一个轴(x或者z)进行修正,确保坐标系主矢量的正交性[2-4],此处调整z轴:
部分上位机及程序代码如下:
Uint16 ServoPwmDuty[8]={1500,1500,1800,550,1500,1500,1600,1500};//PWM脉冲宽度
Uint16 ServoPwmDutySet[8]={1500,1500,1500,1500,1500,1500,1500,1500};//PWM脉冲宽度
float ServoPwmDutyInc[8];//为了速度控制,当PWM脉宽发生变化时每2.5 ms或20 ms递增的PWM脉宽
bool ServoPwmDutyHaveChange=FALSE;//脉宽有变化标志位
uint16 ServoTime=2000;//舵机从当前角度运动到指定角度的时间,也就是控制速度
Serve myservo[6];//create servo object to control a servo
void ServoSetPluseAndTime(uint8 id,uint16 p,uint16 time)
{
if(id>=0 && id<=7 && p>=500 && p<=2500)
{
if(time<20)
time=20;
if(time>30000)
time=30000;
ServoPwmDutySet[id]=p-ServoDeviation[id];
ServoPwmDutySet[id]=p;
ServoTime=time;
ServoPwmDutyHaveChange=TRUE;
}
}
按比例缩小制作了实物模型,如图4、图5所示。
图4 六轴3D打印机模型
图5 六轴3D打印机模型实物工作图
通过研究多角度打印时机械臂末端角度调整补偿算法,及机械臂末端打印喷头的位置标定方法,实现3D多角度打印。实验中通过调整喷头温度及挤出机速度,可以有效控制融化材料的凝固时间,实验结果表明非水平平面打印高温材料凝固后与平面垂直打印材料凝固后并无区别。