著录项信息
专利名称 | 一种沙画表演机器人及其图像处理和运动控制方法 |
申请号 | CN201410214837.6 | 申请日期 | 2014-05-20 |
法律状态 | 权利终止 | 申报国家 | 中国 |
公开/公告日 | 2014-07-30 | 公开/公告号 | CN103955166A |
优先权 | 暂无 | 优先权号 | 暂无 |
主分类号 | G05B19/19 | IPC分类号 | G;0;5;B;1;9;/;1;9;;;G;0;5;B;1;9;/;4;1;4查看分类表>
|
申请人 | 大连理工大学 | 申请人地址 | 辽宁省大连市高新园区凌工路2号
变更
专利地址、主体等相关变化,请及时变更,防止失效 |
权利人 | 大连理工大学 | 当前权利人 | 大连理工大学 |
发明人 | 冯林;吕连生;秦晓程;武超;毛小龙;彭向岐 |
代理机构 | 大连星海专利事务所 | 代理人 | 花向阳 |
摘要
一种沙画表演机器人及其图像处理和运动控制方法,其属于图像处理和运动控制技术领域。其中图像处理模块对用户提供的二值图像进行预处理并生成绘图轨迹。生成绘图轨迹之后,图像处理模块与下位机相互通信,交互绘图轨迹数据与控制信息。下位机根据图像处理模块发送的绘图轨迹数据,通过向步进电机驱动器发送PWM脉冲和方向信号来控制步进电机,步进电机负责驱动X、Y、Z三轴的滑块移动到指定位置。下位机还需要根据图像处理模块发送的沙漏控制信息,控制漏沙装置的开关状态。X、Y、Z三轴的步进电机闭环控制使用编码器实现。安全控制模块使用光电限位开关实现。本发明能够流畅、安全、自主地跟据用户提供的图片绘制出相应的沙画作品。
1.一种沙画表演机器人,它包括一个沙画绘制平台,其特征在于:它还包括一个上位机和一个下位机,所述上位机通过串口与下位机通信,控制沙画绘制平台进行绘图操作;所述上位机包括一个图像处理模块,所述下位机包括通信模块、机器人主控处理器、闭环控制模块、安全模块、步进电机驱动器和沙漏电机驱动器,所述沙画绘制平台包括步进电机、沙漏装置(14)和绘画平台X、Y、Z三轴、摄像系统、沙画工作台和灯箱(6);所述通信模块分别与上位机的图像处理模块和下位机的机器人主控处理器进行电连接,闭环控制模块、安全模块和步进电机驱动器分别与机器人主控处理器和绘画平台X、Y、Z三轴的步进电机进行电连接,沙漏电机驱动器分别与机器人主控处理器和沙漏装置(14)进行电连接;所述安全模块使用光电限位开关,光电限位开关设置在绘画平台X、Y、Z三轴的导轨的两端,当导轨上的滑块移动到限位开关处时,滑块停止移动并发出警报;所述闭环控制模块使用编码器记录步进电机实际转过的角度,在误差超出允许范围时进行相应的调整。
2.根据权利要求1所述的一种沙画表演机器人,其特征在于:所述沙画绘制平台设有一个沙画平台(20),在沙画平台(20)上设置两个平行的X轴直线导轨(18),在X轴直线导轨(18)上移动的X轴滑块(8)与Z轴直线导轨(10)固定连接,在Z轴直线导轨(10)移动的Z轴滑块(11)与Y轴直线导轨(12)固定连接,在Y轴直线导轨(12)移动的Y轴滑块(13)与沙漏装置(14)固定连接;Z轴步进电机(3)、Y轴步进电机(4)和X轴步进电机(9)分别通过Z轴联轴器(2)、Y轴联轴器(5)、X轴联轴器(23)连接Z轴直线导轨(10)、Y轴直线导轨(12)和X轴直线导轨(18)内的齿形皮带轮传动机构驱动Z轴滑块(11)、Y轴滑块(13)和X轴滑块(8)移动,使沙漏装置(14)到达指定位置;同时Z轴步进电机(3)、Y轴步进电机(4)、X轴步进电机(9)上的编码器模块实时向主控处理器(22)反馈矫正沙漏装置(14)位置的编码信号,主控处理器(22)向沙漏电机驱动器发送控制信号,控制沙漏装置(14)内的电机转动,使沙子落在作画平面(15)上,进行沙画绘制;灯箱(6)放置在沙画平台(20)上,灯箱(6)的一端安装有灯条(16),光线通过作画平面(15)将沙子的投影投到沙画平台(20)上,安装在沙画平台上的摄像头(17)将画面传输到投影仪端实时显示。
3.根据权利要求2所述的一种沙画表演机器人,其特征在于:所述齿形皮带轮传动机构包括两个齿形皮带轮和一个齿形皮带,在Z轴直线导轨(10)、Y轴直线导轨(12)和X轴直线导轨(18)两端都设有一个用齿形皮带连接的齿形皮带轮,步进电机经联轴器连接一端的齿形皮带轮驱动Z轴滑块(11)、Y轴滑块(13)和X轴滑块(8)移动;对于两个平行设置的Z轴直线导轨(10)和X轴直线导轨(18),步进电机经联轴器连接一个设有两个齿形皮带轮的传动轴(1)。
4.根据权利要求1或2所述的一种沙画表演机器人,其特征在于:所述沙漏装置(14)的外壳(14.2)固定在底座(14.3)上,底座(14.3)固定在移动的Y轴滑块(13)上,沙漏的电机(14.1)安装到底座(14.3)上,带动安装在外壳(14.2)中的转子(14.7)转动;圆柱形的转子(14.7)被划分为20个隔舱,沙子从储沙漏斗(14.5)通过导管(14.4)流进转子的隔舱,转子隔舱内的沙子在外壳(14.2)内转动半圈后,经过漏嘴(14.6)流出,落到作画平面(15)上,面板(14.8)用于密封外壳(14.2)。
5.权利要求1所述的沙画表演机器人的图像处理和运动控制方法,其特征是:
一、图像处理方法
(1)所述上位机通过图像预处理、轨迹生成及路径规划算法分析之后,得到最终的绘图轨迹;
(2)所述图像预处理将输入的原始二值图像,分割成线条部分图像和面部分图像,并对线条部分图像提取其骨架,保留其中心线得到新的线条部分图像;
(3)所述轨迹生成及路径规划算法对于新的线条部分图像,将其像素矩阵转换成拓扑结构,并通过一种路径规划方法,从生成的拓扑结构中规划出绘图路径,对于面部分图像,通过逐行填充方法,从面部分图像中生成面填充路径;
(4)所述拓扑结构由节点及连接两个节点之间的边构成,在骨架化的图像中,端点和分支点均是拓扑中的节点,而处于节点之间的其它点作为一个整体构成拓扑中的边,节点结构中存储了所有邻接边的指针、该边在该节点处的斜率值、邻接边数目以及访问位,边结构中存储了两端节点的指针以及访问位;
(5)所述路径规划方法,在拓扑结构中的交叉节点处,通过比较交叉节点所有未访问的邻接边在交叉节点处的斜率,选出斜率值最为接近的一对邻接边,则这两条边便处于同一条路径上且不属于其他路径中;以此方法,从一个起始节点开始访问,找出属于同一条路径上的所有边,当访问到某节点,刚访问过的边不在夹角最小的一对邻接边里时,则该路径已到尽头,需要从另一个起始节点开始访问,找下一条路径;一个拓扑结构可能经过多条路径的访问,才能访问完拓扑中所有边,这些路径便是所规划的路径;
(6)所述逐行填充方法,这里的路径规划等效于用一个方形矩阵模板,在由面部分图像像素构成的矩阵上逐行左右移动,以尽量短的移动路程覆盖矩阵的大部分区域,而忽略个别像素点没有被覆盖到的地方,方形矩阵模板的移动轨迹即是面部分图像的绘图路径轨迹;
二、运动控制方法
(1)所述机器人下位机的运动控制使用改进的S形加减速曲线算法控制步进电机的移动速度,使用改进的DFB直线插补算法实现绘画平台的X轴和Y轴联动控制;
(2)所述改进的S形加减速曲线算法是根据步进电机的具体参数和实际负载确定S形加减速曲线的方程;然后将S形加减速曲线离散为21个加减速台阶,计算一次移动所需的PWM脉冲个数,然后为每个加减速台阶分配相应的脉冲个数;
(3)所述改进的S形加减速曲线算法是根据运动曲线的方向变化趋势来设定移动一个线段的终点所在的减速台阶;
(4)所述改进的DFB直线插补算法对原算法的改进是定义单独的方向变量,然后将移动向量都转化为增加步进电机闭环控制的第一象限向量。
一种沙画表演机器人及其图像处理和运动控制方法\n技术领域\n[0001] 本发明涉及一种沙画表演机器人及其图像处理和运动控制方法,其属于图像处理和运动控制技术领域。\n背景技术\n[0002] 沙画是一种前卫的艺术形式。沙画的创作过程通常为把细小的沙子洒在一个底部可照亮的白色或透明的硬胶板上,用手指在上面绘画。这种艺术表现形式因其独特的艺术表现魅力而深受人们喜爱。\n[0003] 经过对现有技术的检索发现,中国专利文献号CN103264611A,公开日期2013-06-\n08,记载了一种沙画的制作方法及沙画用沙,该专利使用特制的沙画原料在经过高温处理的玻璃板上作画,该制作过程较为复杂,不能大规模推广。中国专利文献号CN1124210A,公开日期1996-6-12,记载了一种沙画组件及其制作方法,在不干胶模板上面用小刀刻出图案每部分的轮廓,做画者只需在做画的时候用一根牙签轻轻将每一部分揭起,然后将各种颜色的沙子倒在上面即可。这种方式虽然制作简单,却无法体现创作者的创作过程,不能个性化绘制沙画,仅是在已创作好的作品上进行上沙过程。\n发明内容\n[0004] 为了克服现有技术中存在的问题,本发明提供一种沙画表演机器人及其图像处理和运动控制方法,该沙画表演机器人应是一种融合了图像处理、电机控制和人机交互等技术的机器人。使用计算机软件处理用户提供的图片,三维平台和漏沙漏斗取代人的双手,在沙画平台上用沙子绘画,,用投影仪向观众同步展示绘画过程。\n[0005] 本发明采用的技术方案是:一种沙画表演机器人,它包括一个沙画绘制平台,它还包括一个上位机和一个下位机,所述上位机通过串口与下位机通信,控制沙画绘制平台进行绘图操作;所述上位机包括一个图像处理模块,所述下位机包括通信模块、机器人主控处理器、闭环控制模块、安全模块、步进电机驱动器和沙漏电机驱动器,所述沙画绘制平台包括步进电机、沙漏装置和绘画平台X、Y、Z三轴、摄像系统、沙画工作台和灯箱;所述通信模块分别与上位机的图像处理模块和下位机的机器人主控处理器进行电连接,闭环控制模块、安全模块和步进电机驱动器分别与机器人主控处理器和绘画平台X、Y、Z三轴的步进电机进行电连接,沙漏电机驱动器分别与机器人主控处理器和沙漏装置进行电连接;所述安全模块使用光电限位开关,光电限位开关设置在绘画平台X、Y、Z三轴的导轨的两端,当导轨上的滑块移动到限位开关处时,滑块停止移动并发出警报;所述闭环控制模块使用编码器记录步进电机实际转过的角度,在误差超出允许范围时进行相应的调整。\n[0006] 所述沙画绘制平台设有一个沙画平台,在沙画平台上设置两个平行的X轴直线导轨,在X轴直线导轨上移动的X轴滑块与Z轴直线导轨固定连接,在Z轴直线导轨移动的Z轴滑块与Y轴直线导轨固定连接,在Y轴直线导轨移动的Y轴滑块与沙漏装置固定连接;Z轴步进电机、Y轴步进电机和X轴步进电机分别通过Z轴联轴器、Y轴联轴器、X轴联轴器连接Z轴直线导轨、Y轴直线导轨和X轴直线导轨内的齿形皮带轮传动机构驱动Z轴滑块、Y轴滑块和X轴滑块移动,使沙漏装置到达指定位置;同时Z轴步进电机、Y轴步进电机、X轴步进电机上的编码器模块实时向主控处理器反馈矫正沙漏装置位置的编码信号,主控处理器向沙漏电机驱动器发送控制信号,控制沙漏装置内的电机转动,使沙子落在作画平面上,进行沙画绘制;灯箱放置在沙画平台上,灯箱的一端安装有灯条,光线通过作画平面将沙子的投影投到沙画平台上,安装在沙画平台上的摄像头将画面传输到投影仪端实时显示。\n[0007] 所述齿形皮带轮传动机构包括两个齿形皮带轮和一个齿形皮带,在Z轴直线导轨、Y轴直线导轨和X轴直线导轨两端都设有一个用齿形皮带连接的齿形皮带轮,步进电机经联轴器连接一端的齿形皮带轮驱动Z轴滑块、Y轴滑块和X轴滑块移动;对于两个平行设置的Z轴直线导轨和X轴直线导轨,步进电机经联轴器连接一个设有两个齿形皮带轮的传动轴。\n[0008] 所述沙漏装置的外壳固定在底座上,底座固定在移动的Y轴滑块上,沙漏的电机安装到底座上,带动安装在外壳中的转子转动;圆柱形的转子被划分为20个隔舱,沙子从储沙漏斗通过导管流进转子的隔舱,转子隔舱内的沙子在外壳内转动半圈后,经过漏嘴流出,落到作画平面上,面板用于密封外壳。\n[0009] 所述的沙画表演机器人上位机的图像处理方法:\n[0010] (1)所述上位机通过图像预处理、轨迹生成及路径规划算法分析之后,得到最终的绘图轨迹;\n[0011] (2)所述图像预处理将输入的原始二值图像,分割成线条部分图像和面部分图像,并对线条部分图像提取其骨架,保留其中心线得到新的线条部分图像;\n[0012] (3)所述轨迹生成及路径规划算法对于新的线条部分图像,将其像素矩阵转换成拓扑结构,并通过一种路径规划方法,从生成的拓扑结构中规划出绘图路径,对于面部分图像,通过逐行填充方法,从面部分图像中生成面填充路径;\n[0013] (4)所述拓扑结构由节点及连接两个节点之间的边构成,在骨架化的图像中,端点和分支点均是拓扑中的节点,而处于节点之间的其它点作为一个整体构成拓扑中的边,节点结构中存储了所有邻接边的指针、该边在该节点处的斜率值、邻接边数目以及访问位,边结构中存储了两端节点的指针以及访问位;\n[0014] (5)所述路径规划方法,在拓扑结构中的交叉节点处,通过比较交叉节点所有未访问的邻接边在交叉节点处的斜率,选出斜率值最为接近的一对邻接边,则这两条边便处于同一条路径上且不属于其他路径中;以此方法,从一个起始节点开始访问,找出属于同一条路径上的所有边,当访问到某节点,刚访问过的边不在夹角最小的一对邻接边里时,则该路径已到尽头,需要从另一个起始节点开始访问,找下一条路径;一个拓扑结构可能经过多条路径的访问,才能访问完拓扑中所有边,这些路径便是所规划的路径;\n[0015] (6)所述逐行填充方法,这里的路径规划等效于用一个方形矩阵模板,在由面部分图像像素构成的矩阵上逐行左右移动,以尽量短的移动路程覆盖矩阵的大部分区域,而忽略个别像素点没有被覆盖到的地方,方形矩阵模板的移动轨迹即是面部分图像的绘图路径轨迹;\n[0016] 所述的沙画表演机器人其下位机的运动控制方法:\n[0017] (1)所述机器人运动控制模块使用改进的S形加减速曲线算法控制步进电机的移动速度,使用改进的DFB直线插补算法实现绘画平台的X轴和Y轴联动控制;运动控制模块的作用是从上位机图像处理模块接收移动坐标数据和沙漏控制数据,然后控制绘画平台绘制沙画作品;\n[0018] (2)所述改进的S形加减速曲线算法是根据步进电机的具体参数和实际负载确定S形加减速曲线的方程;然后将S形加减速曲线离散为21个加减速台阶,计算一次移动所需的PWM脉冲个数,然后为每个加减速台阶分配相应的脉冲个数;所做的改进是引入了运动方向预判和速度调整策略;\n[0019] (3)所述改进的S形加减速曲线算法是根据运动曲线的方向变化趋势来设定移动一个线段的终点所在的减速台阶;\n[0020] (4)所述改进的DFB直线插补算法对原算法的改进是定义单独的方向变量,然后将移动向量都转化为增加步进电机闭环控制的第一象限向量。\n[0021] 本发明的有益效果:这种沙画表演机器人的上位机包括图像预处理和轨迹生成及规划两个模块的图像处理模块,下位机包括通信模块、机器人主控处理器、闭环控制模块、安全模块、步进电机驱动器和沙漏电机驱动器,沙画绘制平台包括步进电机、沙漏装置和绘画平台的X、Y、Z三轴。该沙画表演机器人结构简洁,并且采用了模块化设计,便于维护。安全模块可以保证沙画表演机器人移动过程的安全性。步进电机的闭环控制模块可以保证沙画表演机器人运动的准确性。沙画表演机器人上位机的图像处理模块可以将用户提供的图片转化为相应的坐标数据和沙漏控制数据。下位机使用了改进的S形加减速曲线和改进的DFB直线插补算法,可以保证沙画表演机器人运动的流畅和平稳。串口通信模块使用了自定义的通信协议和数据包格式,可以保证上位机图像处理模块和下位机之间的通信的可靠性。\n附图说明\n[0022] 图1为沙画表演机器人的结构框图。\n[0023] 图2为沙画表演平台的结构示意图。\n[0024] 图3为沙漏装置结构示意图。\n[0025] 图4为图像矩阵到拓扑结构的转换程序流程图。\n[0026] 图5为路径规划的程序流程图。\n[0027] 图6为运动控制程序流程图。\n[0028] 图中:1、传动轴,2、Z轴联轴器,3、Z轴步进电机,4、Y轴步进电机,5、Y轴联轴器,6、灯箱,7、L型连接件,8、X轴滑块,9、X轴步进电机,10、Z轴直线导轨,11、Z轴滑块,12、Y轴直线导轨,13、Y轴滑块,14、沙漏装置,14.1、电机,14.2、外壳,14.3、底座,14.4、导管,14.5、储沙漏斗,14.6、漏嘴,14.7、转子,14.8、面板,15、作画平面,16、灯条,17、摄像头,18、X轴直线导轨,19、限位保护模块,20、沙画平台,21、步进电机驱动器,22、主控处理器,23、X轴联轴器。\n具体实施方案\n[0029] 图1示出了沙画表演机器人的结构框图。一种沙画表演机器人包括一个沙画绘制平台、一个上位机和一个下位机。上位机通过串口与下位机通信,控制沙画绘制平台进行绘图操作。上位机包括图像预处理和轨迹生成及规划两个模块的图像处理模块,下位机包括通信模块、机器人主控处理器、闭环控制模块、安全模块、步进电机驱动器和沙漏电机驱动器,沙画绘制平台包括步进电机、沙漏装置和绘画平台的X、Y、Z三轴。安全模块使用光电开关实现,光电限位开关之间的范围为安全范围,当导轨的滑块移动到限位开关处时,表示滑块移动超出安全范围,此时系统停止移动发出警报。闭环控制模块使用编码器记录步进电机实际转过的角度,将实际转过角度和目标值进行对比,在误差超出允许范围时进行相应的调整。绘画平台的X、Y、Z三轴的导轨两端都装有光电限位开关,光电限位开关之间的范围为安全范围,当导轨上的滑块移动到限位开关处时,表示滑块移动超出安全范围,此时系统停止滑块移动并发出警报。\n[0030] 图2示出了沙画表演机器人的结构图。所述沙画绘制平台设有一个沙画平台20,在沙画平台20上设置两个平行的X轴直线导轨18,在X轴直线导轨18上移动的X轴滑块8与Z轴直线导轨10固定连接,在Z轴直线导轨10移动的Z轴滑块11与Y轴直线导轨12固定连接,在Y轴直线导轨12移动的Y轴滑块13与沙漏装置14固定连接。Z轴步进电机3、Y轴步进电机4和X轴步进电机9分别通过Z轴联轴器2、Y轴联轴器5、X轴联轴器23连接Z轴直线导轨10、Y轴直线导轨12和X轴直线导轨18内的齿形皮带轮传动机构驱动Z轴滑块11、Y轴滑块13和X轴滑块8移动,使沙漏装置14到达指定位置。齿形皮带轮传动机构包括两个齿形皮带轮和一个齿形皮带,在Z轴直线导轨10、Y轴直线导轨12和X轴直线导轨18两端都设有一个用齿形皮带连接的齿形皮带轮,步进电机经联轴器连接一端的齿形皮带轮驱动Z轴滑块11、Y轴滑块13和X轴滑块8移动;对于两个平行设置的Z轴直线导轨10和X轴直线导轨18,步进电机经联轴器连接一个设有两个齿形皮带轮的传动轴1。同时Z轴步进电机3、Y轴步进电机4、X轴步进电机9上的编码器模块实时向主控处理器22反馈矫正沙漏装置14位置的编码信号,主控处理器22向沙漏电机驱动器发送控制信号,控制沙漏装置14内的电机转动,使沙子落在作画平面15上,进行沙画绘制;灯箱6放置在沙画平台20上,灯箱6的一端安装有灯条16,光线投过作画平面\n15将沙子的投影投到沙画平台20上,安装在沙画平台上的摄像头17将画面传输到投影仪端实时显示。\n[0031] 图3示出了沙漏装置结构示意图。沙漏装置14的外壳14.2固定在底座14.3上,底座\n14.3固定在移动的Y轴滑块13上,沙漏的电机14.1安装到底座14.3上,带动安装在外壳14.2中的转子14.7转动。圆柱形的转子14.7被划分为20个隔舱,沙子从储沙漏斗14.5通过导管\n14.4流进转子的隔舱,转子隔舱内的沙子在外壳14.2内转动半圈后,经过漏嘴14.6流出,落到作画平面15上,面板14.8用于密封外壳14.2。\n[0032] 采用上述的沙画表演机器人的图像处理方法是:\n[0033] 上位机的图像处理模块包括图像处理模块和轨迹生成及规划模块。\n[0034] 图像处理模块负责完成对二值图像的处理。其具体过程如下。首先要把原始二值图像分割成线条部分和面部分两个部分分开处理,这一步称为“线面分割处理”。线条部分是指图像中线宽变化较平滑,线宽较窄的部分;面部分则是将线条部分去掉的其他部分。\n[0035] “线面分割处理”的处理方法为,首先估计线条部分的线宽大小:逐行遍历全图4,并设计数数组width[10]。当遇到黑色像素区域便对像素个数开始计数,回到白色像素区域停止计数。假设计数值为x,若计数值x在1到10之间(包括1和10),则width[x-1]加一,表示宽度为x的黑色区域增加一个。遍历结束后,找出计数数组中值最大的元素,其下标加一的值则为我们所要的线宽估计值。\n[0036] 估计完线条部分的线宽大小之后,要将此线宽作为参数,对原始二值图像进行“线面分割处理”。具体做法是对原二值图像进行膨胀操作(作用是为腐蚀掉图像中线宽较小的线条部分),但线条为黑色,因此为膨胀操作,模板为3×3大小时,膨胀次数为线宽值。处理完成后即得到了面部分。最后用原始二值图像减去面部分即为线条部分。经“线面分割处理”后,得到了线条图像部分和面图像部分。对于线条图像部分,使用Zhang-快速并行细化算法进行骨架化处理,得到单线宽的线条图像部分。至此图像预处理完成。\n[0037] 轨迹生成及规划模块,对线条图像部分和面图像分别生成轨迹并规划路径。\n[0038] 骨架化的线条部分的实现过程为,首先要将这部分的图像矩阵,转换成拓扑结构。\n拓扑结构由节点和连接两个节点的边组成。骨架化后的线条图像中,所有的端点像素点、分支像素点都是拓扑中的节点,此外,对于闭合环等没有显式节点的情况,也要选择一个点作为节点。除了这些作为节点的点以外,其它处于两个节点(可能是同一个节点)之间的点作为一个整体,属于拓扑中的边。边的结构体成员包含了边两端节点的指针,以及边上所有点组成的双向链表指针,另外还有访问位。节点结构体包含了分支数,所有分支边指针以及分支在局部的斜率值构成的Map,另外还有x、y坐标,以及访问位与其他标志位。\n[0039] 从图像矩阵到拓扑结构的转换程序流程图如图4所示。在图4的流程图中,搜索函数功能是在指定坐标的点附近搜索图像矩阵,得到该点附近的分支数(端点附近只有一个分支,普通边上有两个分支,分支上有大于两个分支);以及待访问分支边的起始点指针。\n[0040] 图4的流程图中更新当前边信息是指,将双向链表的指针、两端的节点指针存入到边的成员里;更新节点信息是指,将连接它的边指针以及对应的斜率存入到Map里,更新分支数,以及初始化或者更改标志位。\n[0041] 完成拓扑结构的生成以后,即得到了一系列的坐标轨迹序列。这些轨迹序列就是边结构中存储的双向链表。接下来的路径规划就是将这些轨迹序列组织成一段一段的路径(一段路径可能由一条或多条边构成),一个拓扑结构可能经过多条路径的访问,才能访问完拓扑中所有边。路径规划的结果是一系列边序列。\n[0042] 路径规划的程序流程图如图5所示。在图5的流程图中,最优边组合是指,连接当前节点的所有未访问的边中,夹角最小的一对组合,只需比较这些边对应的斜率值,选出差值最小的一对即可。在规划完线条部分的路径之后,还需将边序列转换成坐标点序列。这一步转换实际上就是将多条双向链表按各自被指定的方向,转换成一条单向链表。\n[0043] 面部分是使用逐行填充的方式来绘制。面部分的路径规划等效于用一个方形矩阵模板在面部分图像矩阵上移动,以尽量短的移动路程覆盖图像矩阵的大部分区域,对于个别没有覆盖到的像素点可以忽略。该部分路径规划最终得到的也是一条存放坐标点序列的单向链表。该单链表将与线条部分的链表合成一条单向链表,即整体图像绘图坐标点序列。\n[0044] 为了实现上位机和下位机之间的可靠通信,定义了上位机和下位机的串口通信协议。通信协议共定义了两大数据包类型:上位机向下位机发送数据的数据包(简称数据数据包)、下位机向上位机回应的数据包(简称回应数据包)。其中回应数据包又分为接收成功数据包、校验和错误或数据包头部错误数据包、缓冲区已满数据包、缓冲区非满数据包。\n[0045] 在整个通信中,下位机的主控处理器是通信的发起者,若下位机程序的缓冲区有空闲,则向上位机发送缓冲区非满数据包,即向上位机发出请求,请求上位机发送坐标点。\n上位机收到这个请求之后,将要发送的点封装成数据数据包向下位机发送过去,同时将此数据存储在本地缓存数组中,并设置一个定时器。\n[0046] 下位机的主控处理器收到上位机发送过来的数据数据包后,向上位机发送回应数据包。若上位机发送数据数据包后1000ms没有收到回应数据包,则重发缓存中的数据。若上位机收到的回应为接收成功数据包,则重新设置定时器。若上位机收到的回应为校验和错误或数据包头部错误数据包,则重发缓存中的数据,并重设定时器。若上位机收到的回应为缓存区已满数据包,则关闭定时器。\n[0047] 下位机的运动控制方法主要包括改进的S形加减速曲线和改进的直接函数运算法(DFB算法)。\n[0048] 改进的S形加减速曲线的计算方法如下,首先根据步进电机的参数确定S形加减速曲线的计算公式中的参数。然后将S形加减速曲线离散为21个加减速台阶。21个加减速台阶中有10个加速台阶、10个减速台阶和1个匀速台阶。其中加速阶段、减速阶段和匀速阶段各占总输出脉冲个数的1/3。先介绍该改进算法中的运动方向预判和速度调整策略。假设当前所在点为A点,A点坐标为(xa,ya),接下来要移动到B点,B点坐标为(xb,yb),B点的下一个点为C点,C点坐标为(xc,yc)。计算向量 与向量 的夹角余弦值,设夹角余弦的值为cos_value。由夹角余弦的值来决定本次移动的终点速度。对于该绘画机器人,在实际实现时夹角余弦与终点速度之间的关系。夹角余弦与终点速度的具体关系为,当cos_value>=0.9时终点速度对应S形加减速曲线的匀速阶段速度,当cos_value>=0.7&&cos_value<0.9时终点速度对应减速阶段的倒数第5个减速台阶。当cos_value<0.7&&cos_value>=0时终点速度为减速台阶的倒数第3个减速台阶。当cos_value<0终点速度为0。\n[0049] 改进的直接函数运算法(DFB算法)计算方法如下。原算法将直角坐标系的每个象限都用45°斜线分2个区域。将四个象限共划分为8个区域,称为8个卦限。按照原算法实现对于不同的卦限需要有8种不同的移动策略。这在程序实现时显得过于冗余和复杂。对于该算法的改进是,定义单独的方向变量用于记录步进电机的方向,然后所有的移动向量都可以转换为第一象限的向量进行处理。步进电机的方向只有逆时针和顺时针两种,因此该方向向量只需要有0和1两种状态既可。假设X轴滑块移动的方向变量为dir_x,Y轴滑块移动的方向变量为dir_y。当前点A(x1,y1),下一个点B(x2,y2),移动向量\n当x2-x1>0时,dir_x=1,表示X轴滑块的移动方向沿X轴正方向,反之dir_x=0,表示X轴滑块的移动方向沿X轴负方向;当y2-y1>0时,dir_y>0,表示Y轴滑块的移动方向沿Y轴正方向,反之dir_y<0,表示Y轴滑块的移动方向沿Y轴负方向。\n[0050] 然后需要根据移动向量 计算X轴和Y轴各自移动所需的PWM脉冲个数。将\n看作起点为原点,终点为(|x1-x2|,|y1-y2|)的线段。该线段可能在第一卦限或者在第二卦限。接下来我们分别对这两种情况进行讨论。\n[0051] 当线段在第一卦限时,首先向X轴走一步。然后计算误差函数F(u,v,根据以下策略决定X,Y轴的进给方向。当F(u,v)>=0时,X轴运动一步;当F(u,v)<0时,X、Y轴各运动一步。X轴或者Y轴移动一步即主控处理器向该轴的步进电机驱动器输出一个PWM脉冲。\n[0052] 当线段在第二卦限时,首先向Y轴走一步。然后计算误差函数F(u,v,F(u,v)=uev-veu。根据以下策略决定X,Y轴的进给方向。当F(u,v)<0时,Y轴运动一步;当F(u,v)>=0时,X、Y轴各运动一步。\n[0053] 使用这种插补策略,依次调度X轴和Y轴移动顺序直到本次移动完成。\n[0054] 为了保证运动精度,沙画表演机器人的X轴和Y轴增加了闭环控制。闭环控制实现方法为给X轴的步进电机和Y轴的步进电机均安装霍尔编码器。该沙画表演机器人使用霍尔编码器记录X轴和Y轴的步进电机实际转过的角度,然后对比目标转过角度和实际转过角度,对误差进行补偿。\n[0055] 主控处理器控制系统通过以下方式实现具体控制。\n[0056] 步骤1,主控处理器在上电之后,完成系统硬件的初始化。\n[0057] 步骤2,主控处理器完成硬件初始化之后同时上位机开始发送数据包,通知上位机开始通信。主控处理器与上位机通过串口来进行通信。\n[0058] 步骤3,主控处理器在接收完一个数据包之后,检查数据包是否正确,如果数据包准确无误,从数据包中解析出坐标数据,将坐标数据存入坐标缓存队列。否则舍弃该数据包,通知上位机重发该数据包。\n[0059] 如图6所示,主控处理器的运动控制部分的实现如下。\n[0060] 步骤4,主程序从坐标缓存队列中取出坐标。根据上个已经计算完成的点、当前计算的点和下一个要计算的点,计算方向夹角余弦,然后根据本次计算的移动向量与下次移动向量的夹角余弦确定本次所计算的移动向量的终点速度。\n[0061] 步骤5,计算移动到该点X轴、Y轴和Z轴各自需要输出的PWM脉冲个数和移动方向。\n[0062] 步骤6,根据改进的S形加减速曲线,计算各个加减速台阶所需的脉冲个数。\n[0063] 步骤7,判断Z轴滑块是否需要移动,如果Z轴滑块需要移动,首先移动Z轴滑块。Z轴的移动所需的脉冲通过开启一个配置为PWM输出模式的定时器来负责输出。\n[0064] 步骤8,判断沙漏的开关状态是否需要改变,如果需要则启动控制沙漏的减速电机,调整沙漏的开关状态。\n[0065] 步骤9,如果Z轴需要移动或沙漏开关状态需要改变则等待Z轴滑块的移动和沙漏开关状态调整均完成。否则重复步骤9。\n[0066] 步骤10,将根据改进的S形加减速曲线计算的运动参数存入运动参数缓存队列。\n[0067] 步骤11,X轴和Y轴的联动控制所使用的改进的直接函数运算法是在定时器中断中实现,一次定时器中断进行一次脉冲输出。\n[0068] 上一段所述的改进的DFB插补算法在中断函数中的具体实现为如下:\n[0069] 步骤S1,在定时器中断中,首先检测限位开关的状态是否正常\n[0070] 步骤S2,检测当前已取出的运动参数节点是否已经执行完了。如果执行完则转到步骤S3,否则转到步骤S4。\n[0071] 步骤S3,检测运动参数缓存队列是否为空,不为空则从队列中取出一个节点,根据节点的参数修改定时器频率。该沙画表演机器人是通过设定定时器频率来控制脉冲输出频率,从而控制X轴导轨滑块和Y轴导轨滑块的移动速度。\n[0072] 步骤S4,如果已经取出的节点未执行完,则按照改进的DFB算法,为X轴和Y轴分配PWM脉冲。\n[0073] 步骤S5,在完成脉冲分配之后,判断一个加减速台阶是否完成。如果已经完成,则转到步骤6,否则退出中断。\n[0074] 步骤S6,分别读取X轴和Y轴霍尔编码器所对应的计数器的值。通过该计数器的值获取X轴步进电机真实转过的角度。然后将真实值与理论值作对比,计算误差,如果误差超过允许范围则在下一阶段进行补偿。否则修改定时器频率进入下一加减速阶段。\n[0075] 步骤S7,退出中断。
法律信息
- 2020-05-08
未缴年费专利权终止
IPC(主分类): G05B 19/19
专利号: ZL 201410214837.6
申请日: 2014.05.20
授权公告日: 2016.08.17
- 2016-08-17
- 2014-08-27
实质审查的生效
IPC(主分类): G05B 19/19
专利申请号: 201410214837.6
申请日: 2014.05.20
- 2014-07-30
引用专利(该专利引用了哪些专利)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 |
1
| | 暂无 |
1996-12-16
| | |
2
| |
2005-12-21
|
2005-07-07
| | |
3
| | 暂无 |
1990-05-15
| | |
4
| |
2004-03-10
|
2003-07-21
| | |
被引用专利(该专利被哪些专利引用)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 | 该专利没有被任何外部专利所引用! |