公路养护机械臂装置设计与实物搭建*

2022-03-15 04:06习佳俊曹明恒许圆圆
机械工程与自动化 2022年1期
关键词:支撑架底座端口

肖 刚,习佳俊,曹明恒,杨 龙,梁 彤,许圆圆

(宝鸡文理学院 机械工程学院,陕西 宝鸡 721016)

0 引言

随着已有公路使用年限的增加,我国大批公路即将进入养护阶段。据有关数据统计,我国每年有12%的公路需要翻修和养护,旧沥青废弃量高达每年240万吨之巨,而且这个数字以每年15%的速度增长。为了减少养护过程中的环境污染,2018年交通部和陕西省交通厅印发了《关于进一步加强公路养护工程项目环境保护工作的通知》陕交函〔2018〕1102号,通知明确要求采用机械化设备提高养护效率,养护过程严格按照“绿色、循环、低碳”的原则。2018年开始政府部门相继推出了《服务机器人科技发展“十二五”专项规划》《中国制造2025》《机械工业“十三五”质量管理规划纲要》《机器人产业发展规划(2016-2020年)》等文件,文件提出将机器人相关产业列为未来重点攻关领域。

在此背景下,本文在查阅已有研究资料基础上,首先通过UG建立公路养护机械臂装置三维实体简化模型,然后利用机械人相关理论中的D-H法建立了所设计机械臂的数学模型,在数学模型基础上通过MATLAB软件对机械臂末端运动轨迹进行分析与规划,得到公路养护车机械臂装置的最优设计结果,最后,利用ARDUINO控制芯片、电机和继电器等构件搭建了机械臂及控制系统实物模型。

1 机械臂装置结构

利用UG软件建立的机械臂三维模型如图1所示。机械臂工作主要承力支架由电机结构支撑架7、8和可转位养护设备支撑架14组成,由机械臂底座1固定在养护车的后承受板上,电机4用于控制可转位养护设备在横向的转动,电机6用于控制可转位养护设备在纵向的转动,使可转位设备到达工作区域,电机10、13控制可转位设备的水平及其工作刀口方向运动,电机16安装在支撑架14上,通过电机10、13来驱动设备精准到达工作区域,由锥形齿轮19传输电机18动力带动铣刨切割刀具17工作。

1-机械臂底座;2,11,12-电机机槽;3-螺丝;4,5-水平运动电机;6,10,13-垂直运动电机;7,8-电机机械臂支架;9-机械臂支架螺母;14-可转位养护设备支撑架;15-可转位设备外罩;16,18-可转位动力电机;17-铣刨、切割刀具;19-锥形齿轮

2 机械臂运动轨迹规划

机械臂参数影响末端轨迹,末端轨迹关系到机械臂是否可以有效工作,因此进行末端轨迹分析主要是为了避免运动过程中的干涉,合理选择参数,就可确保机械臂具有较大的有效工作范围,图2为机械臂运动学模型。

图2中,坐标系X0Y0Z0位于底座的回转中心,X1Y1Z1为一节臂回转中心,底座和一节臂之间通过圆柱销链接,底座可以绕Z0转动,s和h分别为两个坐标系横向和纵向之间的距离。

根据图2,利用D-H法建立机械手末端相对于固定坐标系的位置方程:

图2 机械臂运动学模型

(1)

其中:θ123=Φ3+Φ2-Φ1;θ12=Φ2-Φ1。

根据表1中的机械臂运动参数,取转台摆动角度Φ0为-30°~30°,Φ1为30°~70°,Φ2为50°~130°,臂长l1=1.8 m,二节臂长l2=1.5 m,可得机械臂在XYZ空间的运动范围,如图3所示。

表1 机械臂运动参数

图3 机械手末端运动轨迹

利用MATLAB设计的主程序如下:

clear all;clc;

s=0.2;h=0.8;L3=2.5;L1=1.8;L2=1.5;

v1=3*pi/18:pi/18:7*pi/18;v2=5*pi/18:2*pi/36:13*pi/18;

m1=length(v1);m2=length(v2);D=zeros(m1,m2);Z=zeros(m1,m2);

DX=zeros(m1,m2);DY=zeros(m1,m2);v0=-3*pi/18:pi/36:3*pi/18;

m3=length(v0);

for ii=1:m3

for i=1:m1

for j=1:m2

D(i,j)=s+L1.*cos(v1(i))+L2.*cos(v2(j)-v1(i));

DX(i,j)=cos(v0(ii)).*D(i,j);DY(i,j)=sin(v0(ii)).*D(i,j);

Z(i,j)=h+L1*sin(v1(i))-L2*sin(v2(j)-v1(i))-L3;

scatter3(DX(i,j),DY(i,j),Z(i,j),'r')

hold on

end

end

hold on

end

xlabel('X');ylabel('Y');zlabel('Z')

3 部分控制程序代码

(1)机械臂舵机的初始化到等待状态代码:

void myservosetup()

{sea=myservoA.read();seb=myservoB.read();sec=myservoC.read();

sed=myservoD.read();see=myservoE.read();sef=myservoF.read();

myspeed=500;

for(pos=0;pos<=myspeed;pos+=1)

{myservoA.write(int(map(pos,1,myspeed,sea,66)));

myservoB.write(int(map(pos,1,myspeed,seb,90)));

myservoC.write(int(map(pos,1,myspeed,sec,50)));

myservoD.write(int(map(pos,1,myspeed,sed,90)));

myservoE.write(int(map(pos,1,myspeed,see,120)));

myservoF.write(int(map(pos,1,myspeed,sef,90)));

delay(1);}}

(2)控制程序主要定义引脚:

{Serial.begin(9600,SERIAL_8N1);

mycomflag=2;//机械臂默认上电状态为:2 自动运行

myservoA.attach(3);//控制腰部(A)的端口是~3号

myservoB.attach(5);//控制大臂(B)的端口是~5号

myservoC.attach(6);//控制小臂(C)的端口是~6号

myservoD.attach(9);//控制小臂旋转(D)的端口是~9号

myservoE.attach(10);//控制腕部(E)的端口是~10号

myservoF.attach(11);//控制腕部旋转(F)的端口是~11号

myservoA.write(66);myservoB.write(90);myservoC.write(55);

myservoD.write(90);myservoE.write(120);myservoF.write(90);}

(3)压力测控部分主程序代码:

{long PRESS_AO =0;

int VOLTAGE_AO =0;int value =analogRead(pin);

DEBUGSerial.print("AD =");DEBUGSerial.print(value);

DEBUGSerial.print(" ,");

VOLTAGE_AO =map(value,0,1023,0,5000);

DEBUGSerial.print("V =");

DEBUGSerial.print(VOLTAGE_AO);DEBUGSerial.print(" mv,");

if(VOLTAGE_AO

{PRESS_AO =0;}else if(VOLTAGE_AO >VOLTAGE_MAX)

{PRESS_AO =PRESS_MAX;}

else

{PRESS_AO =map(VOLTAGE_AO,VOLTAGE_MIN,VOLTAGE_MAX,PRESS_MIN,PRESS_MAX);}

return PRESS_AO;}

4 实物模型搭建

图4为搭载在公路养护车上的机械臂,主要用于驱动可转位养护设备。图4中,1为机械臂的底座,主要用于机械臂的安装;2为机械臂的水平旋转电机,其作用是驱动机械臂进行水平旋转移动;3为机械臂驱动可转位设备的主要电机;4为机械臂驱动可转位养护设备的主要承受臂;5为机械臂垂直移动辅助电机,其主要作用是配合电机3驱动机械臂进行垂直运动;6为机械臂驱动可转位养护设备电机,其功能是驱动旋转可转位养护设备;7为可转位养护设备的结构控制机架;8为控制可转位养护设备切换的电机。图5为机械臂装置实物图,主要采用ARDUINO和继电器控制。

1-机械臂底座;2-水平运动电机;3,5,6-垂直运动电机;4-机械臂支撑架;7-可转位设备支撑架;8-可转位电机

5 结论

本文利用UG建立起吊装置的三维简化模型,设计机械臂控制系统,对机械臂装置进行运动轨迹规划,通过对机械臂装置进行参数化设计,得到公路养护车机械臂装置的最优设计结果,可为公路养护车机械臂装置的设计和改进提供一定的参考。

1-机械臂支撑架;2,3,5-运动电机;4-可转位设备支撑架;6-可转位设备

猜你喜欢
支撑架底座端口
大型集装箱船舱底座结构加强与改进
一种便于刮料的橡胶开炼机
大型铝板拉伸机液压底座的设计计算
扩散塔模板及支撑架施工浅析
一种有源二端口网络参数计算方法
一种端口故障的解决方案
多按键情况下,单片机端口不足的解决方法
兵马俑底座学问大(第六站)
一种可调节的限制结构
卫星三端口DC-DC变换器技术综述