多自由度书写机械臂控制系统设计

2019-05-21 07:43白昊天
绿色科技 2019年2期
关键词:舵机运动学连杆

白昊天,李 萍

(北京信息科技大学,北京 100192)

1 引言

当前解决机械臂末端路径轨迹规划大都采用运动学正逆解及路径规划的方法,如陈雪华[1]对四自由度写字机器人进行了研究,类延超[2]对五自由度写字机器人系统进行了研究,何薇[3]基于机器视觉设计了机器人写字技术。这些方法精度高,有严谨的数学理论支撑,但用到的硬件成本较高。本文尝试采用低成本的简易的方法设计多自由度书写机械臂控制系统。

2 多自由度书写机械臂控制系统结构

2.1 机械臂结构

机械人手部若在其工作空间内到达任意位置并实现任意姿态,机器人必须至少有6个自由度[2],写字时只需要夹紧笔,不需要松开,所以可以将末端的第6个关节去掉。为了方便分析,先用matlab对机械臂结构做建模。建立机械臂模型需要用到4个参数,即连杆长度ai、连杆扭角αi、两连杆距离di、两连杆夹角θi。连杆长度指连杆上两个关节轴线的最小距离;连杆扭角指两关节轴线的夹角;两连杆距离指关节轴上两个法线的距离;两连杆夹角指关节轴上两个法线的夹角。连杆四参数示意图如图1所示,建立的机械臂结构如图2所示。

2.2 控制器

采用以51单片机为核心的舵机控制器,六个舵机控制器端口对应六个关节处的舵机。通过舵机控制器发送的不同占空比的PWM波以及运用插补算法,可以控制舵机以指定速度转动指定角度。插补算法将在下文详细讨论。

图1 连杆四参数结构示意图

图2 六自由度机械臂结构

2.3 六自由度书写机械臂控制系统总体结构

首先得到待书写汉字的各坐标值,将其发送给写字程序按时间序列生成一系列各关节需转动的角度值,将这些值发送给舵机控制器,舵机控制器控制机械臂各关节按指定速度转动指定角度实现汉字的书写。多自由度书写机械臂控制系统总体结构如图3所示。

3 软件设计

3.1 下位机软件设计

下位机接收上位机通过串口发送过来的字符串并将之解析为某关节的运动角度和速度,如上位机发送#1P1500T100 ,那么数字1为舵机控制板上的S1通道,数字1500是控制舵机的角度(范围为500~2500),控制舵机的0~180°,数字100是时间,即从当前的位置,旋转到命令中的位置,所需要的时间。最后 是一个特殊字符。以上命令的意思就是:S1上连接的舵机,在100 ms的时间内,从现在的位置旋转到90度。程序流程图如图4所示。

图3 六自由度书写机械臂控制系统总体结构

图4 下位机软件程序流程

对舵机速度的控制采用的是插补算法,该算法的基本思想是:将舵机的整个运动过程分解,使舵机并不是从初始位置直接到达到目标位置,而是划分成多个小过程让其逐步到达,如此便实现了速度的控制。假设舵机初始位置的值是x,舵机要运行到目标位置y,对其插补100次。首先设置变量a=0,则下一个目标位置就是:

x+(y-x)·a/100,

之后每隔固定的时间对a加1,随着a的变化舵机位置逐步从初始位置向目标位置靠近,到a=100的时候完全到达目标位置,停止a的自加。

3.2 上位机软件设计

3.2.1 机械臂末端到达指定位置的方法

当前解决机械臂末端路径轨迹规划大都采用运动学正逆解及路径规划的方法,首先需要得到精确的机械臂结构参数,构造正逆解方程,带入路径的解析式求出各关节需要运动的角度、速度甚至角加速度。轨迹规划的具体步骤是:①确定字体笔划起点和终点的坐标,并给出若干中间路径点;②将这些路径点的坐标值代入逆运动学求解方程中得到各个关节的变量;③根据这些关节变量来控制机器人的轨迹。

(2)

ai指连杆长度,αi指连杆扭角,di指两连杆距离,θi指两连杆夹角,s指sin,c指cos。

对于逆向运动学问题,即已知连杆几何参数,给定末端执行器的位姿,求机器人到达指定位置的关节变量。运动学方程是非线性超越方程组,没有通用的解法,求解过程繁琐。对于机器人的轨迹规划,除了上面提到的正、逆向运动学,还需要进行位置和姿态的插补算法,对各关节的角度和角速度都有要求。

这种方法精度高,有理论支撑,但计算略显复杂,用到的硬件成本较高。如下方法可采用低成本解决该问题,该方法并不是将路径点的坐标值代入逆运动学求解方程中得到各个关节的变量,而是采用“示教法”,先把写字区域划分为100份,记录下机械臂末端到达每个坐标点处的各个关节转动角度,由此便得到了各点处的位姿。这样只要指定笔画的起点终点,并指定若干中间点,即可使机械臂按指定路径运动。因为一个点可能有多种位姿,为了保证书写的平滑性,记录角度值时就要采取一定的技巧:要从一个点出向四周扩展,保证该点的上、下、左、右、斜对角的点处各关节转动的角度值不发生突变,不可随便指定点标记。

3.2.2 上位机软件设计

由给出的坐标值,从数组中找出对应的各关节角度值,这时需要判断这个点是不是一个笔画的终点,可以通过输入的数据格式判断,若是则需要提笔,可把第二个关节的角度值增加让笔提起来。按时间顺序生成一系列各关节角度值,机械臂按此运动即可完成汉字的书写。

4 结果与展望

机械臂书写的汉字“北京”结果如图5、图6所示,按照该方法可以完成汉字的书写。但因为采用的是毛笔书写,写字的力度不太好把握。写字过程中笔尖容易出现分叉现象,影响了书写汉字的美观。按本文的方法要写出汉字需要手动按时间序列输入一系列坐标值,这里提供两种自动生成坐标值的方法:首先制作待书写汉字的图像,然后用matlab等软件读取图像的灰度值,以此为参考编写书写程序;也可通过Inkscape矢量图像编辑软件将输入的文字图像转换成坐标形式的数组代码,以数组代码为依据编写书写程序。

图5 “北”字书写结果

图6 “京”字书写结果

猜你喜欢
舵机运动学连杆
基于装配工况发动机连杆有限元分析
轿车前后悬架运动学仿真分析
基于速度观测的双余度电液舵机系统容错同步控制
速度轮滑直道双蹬技术的运动学特征
超音速舵机保护器
基于运动学特征的新型滑板对速滑蹬冰动作模拟的有效性
“必修1”专题复习与训练
菜鸟看模型
舵机的应用