CN109960157A - 舵机运动的平滑处理方法、装置、终端设备和存储介质 - Google Patents

舵机运动的平滑处理方法、装置、终端设备和存储介质 Download PDF

Info

Publication number
CN109960157A
CN109960157A CN201711402868.4A CN201711402868A CN109960157A CN 109960157 A CN109960157 A CN 109960157A CN 201711402868 A CN201711402868 A CN 201711402868A CN 109960157 A CN109960157 A CN 109960157A
Authority
CN
China
Prior art keywords
steering engine
movement
curve
numerical value
start position
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201711402868.4A
Other languages
English (en)
Inventor
熊友军
张礼富
柳冬
孙汉宇
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Ubtech Robotics Corp
Original Assignee
Ubtech Robotics Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Ubtech Robotics Corp filed Critical Ubtech Robotics Corp
Priority to CN201711402868.4A priority Critical patent/CN109960157A/zh
Priority to US16/140,549 priority patent/US10627805B2/en
Publication of CN109960157A publication Critical patent/CN109960157A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/18Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form
    • G05B19/41Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form characterised by interpolation, e.g. the computation of intermediate points between programmed end points to define the path to be followed and the rate of travel along that path
    • G05B19/4103Digital interpolation
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B17/00Systems involving the use of models or simulators of said systems
    • G05B17/02Systems involving the use of models or simulators of said systems electric
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/18Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form
    • G05B19/408Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form characterised by data handling or data format, e.g. reading, buffering or conversion of data
    • G05B19/4086Coordinate conversions; Other special calculations
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/18Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form
    • G05B19/416Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form characterised by control of velocity, acceleration or deceleration
    • G05B19/4163Adaptive control of feed or cutting velocity
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/34Director, elements to supervisory
    • G05B2219/34153Linear interpolation
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/42Servomotor, servo controller kind till VSS
    • G05B2219/42128Servo characteristics, drive parameters, during test move
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/42Servomotor, servo controller kind till VSS
    • G05B2219/42173Acceleration deceleration
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/42Servomotor, servo controller kind till VSS
    • G05B2219/42207Generate points between start and end position, linear interpolation
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/43Speed, acceleration, deceleration control ADC
    • G05B2219/43006Acceleration, deceleration control
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/45Nc applications
    • G05B2219/45007Toy

Abstract

本发明涉及舵机控制技术领域,提出一种舵机运动的平滑处理方法、装置、终端设备和计算机存储介质。所述平滑处理方法包括:获取舵机运动的起点位置和控制指令;根据所述控制指令确定舵机运动的终点位置以及运动时间;根据所述起点位置、终点位置和运动时间构建舵机的运动曲线,所述运动曲线为横、纵坐标分别为时间和位置,且包含正弦函数或余弦函数的一次函数;控制舵机按照所述运动曲线从所述起点位置运动至所述终点位置。上述过程通过构建简单的一次函数对舵机的运动进行平滑处理,与采用三次贝塞尔公式的技术方案相比大大减小了计算量,从而能够降低对舵机的硬件性能要求。

Description

舵机运动的平滑处理方法、装置、终端设备和存储介质
技术领域
本发明涉及舵机控制技术领域,尤其涉及一种舵机运动的平滑处理方法、装置、终端设备和计算机存储介质。
背景技术
舵机是一种位置(角度)伺服的驱动器,适用于需要角度不断变化并可以保持的运动控制系统。目前,舵机已经在高档遥控玩具,如飞机、潜艇模型,遥控机器人中得到了普遍应用。
舵机运动的平滑处理指控制舵机在运动启动阶段的速度逐渐增加,在运动停止阶段的速度逐渐减小的过程。平滑处理问题是舵机研发过程中的关键问题,舵机运动的平滑度直接影响使用该舵机的控制系统的整体性能。
目前,常用三次贝塞尔公式进行舵机运动的平滑处理。然而,采用三次贝塞尔公式的计算量极大,对舵机的硬件性能要求高。
发明内容
有鉴于此,本发明实施例提供了一种舵机运动的平滑处理方法、装置、终端设备和计算机存储介质,能够减小舵机运动平滑处理的计算量,从而降低对舵机的硬件性能要求。
本发明实施例的第一方面提供了一种舵机运动的平滑处理方法,包括:
获取舵机运动的起点位置和控制指令;
根据所述控制指令确定舵机运动的终点位置以及运动时间;
根据所述起点位置、终点位置和运动时间构建舵机的运动曲线,所述运动曲线为横、纵坐标分别为时间和位置,且包含正弦函数或余弦函数的一次函数;
控制舵机按照所述运动曲线从所述起点位置运动至所述终点位置。
本发明实施例的第二方面提供了一种舵机运动的平滑处理装置,包括:
获取模块,用于获取舵机运动的起点位置和控制指令;
确定模块,用于根据所述控制指令确定舵机运动的终点位置以及运动时间;
运动曲线构建模块,用于根据所述起点位置、终点位置和运动时间构建舵机的运动曲线,所述运动曲线为横、纵坐标分别为时间和位置,且包含正弦函数或余弦函数的一次函数;
运动控制模块,用于控制舵机按照所述运动曲线从所述起点位置运动至所述终点位置。
本发明实施例的第三方面提供了一种终端设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如本发明实施例的第一方面提供的舵机运动的平滑处理方法的步骤。
本发明实施例的第四方面提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现如本发明实施例的第一方面提供的舵机运动的平滑处理方法的步骤。
在本发明实施例中,获取舵机运动的起点位置和控制指令;根据所述控制指令确定舵机运动的终点位置以及运动时间;根据所述起点位置、终点位置和运动时间构建舵机的运动曲线,所述运动曲线为横、纵坐标分别为时间和位置,且包含正弦函数或余弦函数的一次函数;控制舵机按照所述运动曲线从所述起点位置运动至所述终点位置。上述过程通过构建简单的一次函数对舵机的运动进行平滑处理,与采用三次贝塞尔公式的技术方案相比大大减小了计算量,从而能够降低对舵机的硬件性能要求。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的一种舵机运动的平滑处理方法的第一个实施例的流程图;
图2是本发明实施例提供的一种舵机运动的平滑处理方法的第二个实施例的流程图;
图3是本发明实施例提供的一种舵机运动的平滑处理方法的第三个实施例的流程图;
图4是本发明实施例提供的一种舵机运动的平滑处理装置的一个实施例的结构图;
图5是本发明实施例提供的一种终端设备的示意图。
具体实施方式
以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术之类的具体细节,以便透彻理解本发明实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本发明。在其它情况中,省略对众所周知的系统、装置、电路以及方法的详细说明,以免不必要的细节妨碍本发明的描述。
本发明实施例提供了一种舵机运动的平滑处理方法、装置、终端设备和计算机存储介质,能够减小舵机运动平滑处理的计算量,从而降低对舵机的硬件性能要求。
请参阅图1,本发明实施例中一种舵机运动的平滑处理方法的第一个实施例包括:
101、获取舵机运动的起点位置和控制指令;
在舵机开始运动前,控制系统获取舵机运动的起点位置和控制指令。起点位置为舵机本次运动前所处的位置(角度),控制指令为控制系统发送给舵机用于操控舵机运动的指令,该指令中包含舵机本次运动的相关参数,比如运动时间、运动速度或者运动角度等。
102、根据所述控制指令确定舵机运动的终点位置以及运动时间;
在获取到控制指令后,根据控制指令确定舵机运动的终点位置以及运动时间。终点位置为舵机本次运动后所处的位置(角度),运动时间指舵机本次运动所耗费的时间。具体的,所述控制指令可以包括舵机运动的终点位置和运动时间,这样只需从控制指令中解析出该终点位置和运动时间即可。或者,所述控制指令可以包括舵机运动的终点位置和运动速度,这样可以通过终点位置减去起点位置得到本次运动的距离,再用该距离除以运动速度即可得到运动时间。又或者,所述控制指令可以包括舵机运动的运动时间和运动速度,通过运动时间乘以运动速度可以得到本次运动的距离,再用该距离减去起点位置即可得到终点位置。
103、根据所述起点位置、终点位置和运动时间构建舵机的运动曲线;
在得到起点位置、终点位置和运动时间后,即可根据这些参数构建舵机的运动曲线。所述运动曲线为横、纵坐标分别为时间和位置(即横坐标为时间、纵坐标为位置,或者横坐标为位置、纵坐标为时间),且包含正弦函数或余弦函数的一次函数。正弦函数或余弦函数都可形成平滑的曲线,适用于舵机运动的平滑处理。这里的运动曲线为一次函数,相对于多阶的贝塞尔公式能够极大地减少计算量。具体的,该运动曲线的表达式可以举例如下:S(t)=Ac+(At-Ac)*{n*[t-a*sin(bt+φ)]}、S(t)=Ac+(At-Ac)*{n*[t-a*cos(bt+φ)]}等等,其中Ac为所述起点位置、At为所述终点位置,a、b、φ和n均为常数。
104、控制舵机按照所述运动曲线从所述起点位置运动至所述终点位置。
在构建出舵机的运动曲线之后,即可由控制系统控制舵机按照所述运动曲线从所述起点位置运动至所述终点位置。比如,控制舵机在各个时间点分别运动到达所述运动曲线中与所述各个时间点对应的目标位置,以实现平滑运动。
在本发明实施例中,获取舵机运动的起点位置和控制指令;根据所述控制指令确定舵机运动的终点位置以及运动时间;根据所述起点位置、终点位置和运动时间构建舵机的运动曲线,所述运动曲线为横、纵坐标分别为时间和位置,且包含正弦函数或余弦函数的一次函数;控制舵机按照所述运动曲线从所述起点位置运动至所述终点位置。上述过程通过构建简单的一次函数对舵机的运动进行平滑处理,与采用三次贝塞尔公式的技术方案相比大大减小了计算量,从而能够降低对舵机的硬件性能要求。
请参阅图2,本发明实施例中一种舵机运动的平滑处理方法的第二个实施例包括:
201、获取舵机运动的起点位置和控制指令;
202、根据所述控制指令确定舵机运动的终点位置以及运动时间;
步骤201至202与步骤101至102相同,具体可参照步骤101至102的相关说明。
203、根据所述起点位置、终点位置和运动时间构建舵机的运动曲线S(t)=Ac+(At-Ac)*[t/T+(a-1)*sin(2π*t/T)/2π],t∈[0,T],a∈[0,1];
在本实施例中,该运动曲线的具体表达式为S(t)=Ac+(At-Ac)*[t/T+(a-1)*sin(2π*t/T)/2π],t∈[0,T],a∈[0,1],其中t为时间变量,Ac为所述起点位置,At为所述终点位置,T为所述运动时间(假设控制指令给定了舵机的运动速度V,则T=|At-Ac|/V),a为用于调整运动曲线的平滑程度的系数。当t=0时(舵机运动前),S(t)=Ac,即舵机处于起点位置;当t=T时(舵机运动后),S(t)=At,即舵机处于终点位置。a为用于调整运动曲线的平滑程度的系数,特殊的,当a=1时,S(t)=Ac+(At-Ac)*t/T,即为斜率为(At-Ac)/T的直线;当a=0时,S(t)=Ac+(At-Ac)*[t/T-sin(2π*t/T)/2π],为平滑度最高的曲线;当a处于0和1之间时,S(t)=Ac+(At-Ac)*[t/T+(a-1)*sin(2π*t/T)/2π],为平滑度处于直线和最高平滑度之间的曲线。可见,通过调整a的大小,即可实现不同程度的平滑处理效果。
204、从预设的表格中查询时间区间[0,T]内每个预设时间点下X*[t/T+(a-1)*sin(2π*t/T)/2π]的数值,X为舵机位置传感器的极限值;
对于硬件性能较差的舵机控制系统来说,可能无法胜任正弦函数值的实时计算。这时候可以采用查表法,即预先计算运动曲线中的正弦函数部分在各个预设时间点下的数值,将这些数值存储于预设的表格中,后续的舵机控制程序可以通过查表的方式获取各个时间点对应的数值,以减小计算量,提高处理速度。
在步骤204中,直接从预设的表格中查询舵机的运动时间区间[0,T]内每个预设时间点下X*[t/T+(a-1)*sin(2π*t/T)/2π]的数值,X为舵机位置传感器的极限值。这些数值预先计算好并存储在该表格中,每个时间点对应一个数值。由于浮点数占用的存储空间多,且浮点计算的计算量大,耗费时间长,因此计算正弦函数部分的数值时乘上舵机位置传感器的极限值X,从而将浮点数转换为整数进行存储,以减少占用的存储空间以及后续操作步骤的计算量。假设舵机的运动时间区间为[0,500](时间单位为毫秒,即T=500ms),则预设时间点可以为0ms、1ms、2ms…500ms,根据运动控制精度要求的不同可以增加或减少部分时间点(时间点越多则控制的精度越大,但占用的存储空间也越大),而且各个时间点之间的时间间隔也可以不同。可以用tab[t]表示查表得到的数值X*[t/T+(a-1)*sin(2π*t/T)/2π],比如tab[1]=X*[1/T+(a-1)*sin(2π*1/T)/2π],表示时间点1ms所对应的X*[t/T+(a-1)*sin(2π*t/T)/2π]的数值;tab[2]=X*[2/T+(a-1)*sin(2π*2/T)/2π],表示时间点2ms所对应的X*[t/T+(a-1)*sin(2π*t/T)/2π]的数值,以此类推。
205、根据查询得到的所述数值和所述运动曲线分别计算舵机在每个所述时间点下对应的目标位置;
在查询得到各个时间点对应的X*[t/T+(a-1)*sin(2π*t/T)/2π]的数值后,根据这些数值和所述运动曲线分别计算舵机在每个所述时间点下对应的目标位置。具体的,运动曲线S(t)=Ac+(At-Ac)*[t/T+(a-1)*sin(2π*t/T)/2π]=Ac+(At-Ac)*tab[t]/X,在查表得到各个时间点对应的tab[t]之后,通过计算Ac+(At-Ac)*tab[t]/X,即可得到各个时间点对应的目标位置。假设X为4095,舵机运动的起点位置Ac=2048,终点位置At=0,运行时间T=500ms,所述表格包含500个时间点对应的数值:{0,1,2,4,……4090,4093,4094,4095},该500个时间点分别为1,2,3……500,单位为毫秒,即tab[1]=0,tab[2]=1,tab[2]=2……tab[500]=4095。则时间点1ms时舵机对应的目标位置S(1)=Ac+(At-Ac)*tab[1]/X=2048+(0-2048)*0/4095=2048,时间点2ms时舵机对应的目标位置S(2)=Ac+(At-Ac)*tab[2]/X=2048+(0-2048)*1/4095=2048-2048/4095,时间点500ms时舵机对应的目标位置S(500)=Ac+(At-Ac)*tab[500]/X=2048+(0-2048)*4095/4095=2048-2048=0,其它时间点舵机对应的目标位置可以根据相同的方法计算得到。
进一步的,若在查询所述表格时存在所述数值缺失的时间点,则选取所述数值缺失的时间点前后相邻的两个时间点对应的所述数值进行线性插值运算,将线性插值运算得到的结果作为所述数值缺失的时间点对应的所述数值,所述数值缺失的时间点指从所述表格中查询所述数值失败的所述预设时间点。
具体的,若从所述表格中查询不到某个时间点x对应的tab[x]数值,则可以选取x前后相邻的两个时间点对应的所述数值进行线性插值运算,所述前后相邻的两个时间点分别为x之前和之后与x最接近的时间点、且能从所述表格中查询获得所述数值的时间点。假设时间点x为时间点3ms和5ms之间的时间点,则选取3ms和5ms对应的所述数值即tab[3]和tab[5]进行线性插值运算,将线性插值运算得到的结果作为时间点x对应的所述数值。可见,通过这样设置,表格内所述数值缺失的时间点也可获得与实际的所述数值较为接近的近似值代替计算,提高了算法的成功率。
206、控制舵机在每个所述时间点运动到达对应的目标位置。
在计算得到舵机在每个所述时间点下对应的目标位置之后,即可控制舵机在每个所述时间点运动到达对应的目标位置,从而实现舵机运动的平滑处理。
在本发明实施例中,获取舵机运动的起点位置和控制指令;根据所述控制指令确定舵机运动的终点位置以及运动时间;根据所述起点位置、终点位置和运动时间构建舵机的运动曲线S(t)=Ac+(At-Ac)*[t/T+(a-1)*sin(2π*t/T)/2π],t∈[0,T],a∈[0,1];从预设的表格中查询时间区间[0,T]内每个预设时间点下X*[t/T+(a-1)*sin(2π*t/T)/2π]的数值,X为舵机位置传感器的极限值;根据查询得到的所述数值和所述运动曲线分别计算舵机在每个所述时间点下对应的目标位置;控制舵机在每个所述时间点运动到达对应的目标位置。与本申请的第一个实施例相比,本实施例采用查表法获取运动曲线中对应于各个预设时间点的数值,能够进一步减小计算量,提高软件处理速度,尤其适用于硬件性能较差的舵机控制项目。
请参阅图3,本发明实施例中一种舵机运动的平滑处理方法的第三个实施例包括:
301、获取舵机运动的起点位置和控制指令;
302、根据所述控制指令确定舵机运动的终点位置以及运动时间;
303、根据所述起点位置、终点位置和运动时间构建舵机的运动曲线;
步骤301至303与步骤101至103相同,具体可参照步骤101至103的相关说明。
304、对所述运动曲线求导,得到速度曲线;
在得到舵机的运动曲线之后,对所述运动曲线求导,得到速度曲线,该速度曲线定义了舵机从起点位置运动至终点位置时每个时间点对应的速度。假设运动曲线为S(t)=t-sin(t),t∈[0,2π],则速度曲线V(t)为S(t)对时间t的导数,即V(t)=1-cos(t),t∈[0,2π]。在舵机开始运动前,即t=0的时候,V(t)=0,;在舵机停止运动时,即t=2π的时候,V(t)=0,而当t∈(0,2π)时,V(t)逐渐增大至最大值,然后从最大值逐渐减小,实现了舵机运动的平滑处理。
305、控制舵机按照所述速度曲线对应的速度从所述起点位置运动至所述终点位置。
在得到速度曲线之后,控制舵机按照所述速度曲线对应的速度从所述起点位置运动至所述终点位置,即可实现平滑的运动效果。在具体操作过程中,根据速度曲线计算得到舵机在各个时间点下的速度值,然后控制舵机在所述各个时间点分别以对应的速度值运动。
在本发明实施例中,获取舵机运动的起点位置和控制指令;根据所述控制指令确定舵机运动的终点位置以及运动时间;根据所述起点位置、终点位置和运动时间构建舵机的运动曲线,所述运动曲线为横、纵坐标分别为时间和位置,且包含正弦函数或余弦函数的一次函数;对所述运动曲线求导,得到速度曲线;控制舵机按照所述速度曲线对应的速度从所述起点位置运动至所述终点位置。上述过程通过构建简单的一次函数对舵机的运动进行平滑处理,与采用三次贝塞尔公式的技术方案相比大大减小了计算量,从而能够降低对舵机的硬件性能要求。
应理解,上述各个实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。
上面主要描述了一种舵机运动的平滑处理方法,下面将对一种舵机运动的平滑处理装置进行描述。
请参阅图4,本发明实施例中一种舵机运动的平滑处理装置的一个实施例包括:
获取模块401,用于获取舵机运动的起点位置和控制指令;
确定模块402,用于根据所述控制指令确定舵机运动的终点位置以及运动时间;
运动曲线构建模块403,用于根据所述起点位置、终点位置和运动时间构建舵机的运动曲线,所述运动曲线为横、纵坐标分别为时间和位置,且包含正弦函数或余弦函数的一次函数;
运动控制模块404,用于控制舵机按照所述运动曲线从所述起点位置运动至所述终点位置。
进一步的,所述运动曲线的表达式可以为:S(t)=Ac+(At-Ac)*[t/T+(a-1)*sin(2π*t/T)/2π],t∈[0,T],a∈[0,1],其中t为时间变量,Ac为所述起点位置,At为所述终点位置,T为所述运动时间,a为用于调整运动曲线的平滑程度的系数。
进一步的,所述运动控制模块404可以包括:
数值查询单元,用于从预设的表格中查询时间区间[0,T]内每个预设时间点下X*[t/T+(a-1)*sin(2π*t/T)/2π]的数值,X为舵机位置传感器的极限值;
位置计算单元,用于根据查询得到的所述数值和所述运动曲线分别计算舵机在每个所述时间点下对应的目标位置;
运动控制单元,用于控制舵机在每个所述时间点运动到达对应的目标位置。
本发明实施例还提供一种终端设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如图1至图3表示的任意一种舵机运动的平滑处理方法的步骤。
本发明实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现如图1至图3表示的任意一种舵机运动的平滑处理方法的步骤。
图5是本发明一实施例提供的终端设备的示意图。如图5所示,该实施例的终端设备5包括:处理器50、存储器51以及存储在所述存储器51中并可在所述处理器50上运行的计算机程序52。所述处理器50执行所述计算机程序52时实现上述各个舵机运动的平滑处理方法的实施例中的步骤,例如图1所示的步骤101至104。或者,所述处理器50执行所述计算机程序52时实现上述各装置实施例中各模块/单元的功能,例如图4所示模块401至404的功能。
所述计算机程序52可以被分割成一个或多个模块/单元,所述一个或者多个模块/单元被存储在所述存储器51中,并由所述处理器50执行,以完成本发明。所述一个或多个模块/单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述所述计算机程序52在所述终端设备5中的执行过程。
所述终端设备5可以是各种类型的手机、桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。所述终端设备可包括,但不仅限于,处理器50、存储器51。本领域技术人员可以理解,图5仅仅是终端设备5的示例,并不构成对终端设备5的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述终端设备5还可以包括输入输出设备、网络接入设备、总线等。
所称处理器50可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
所述存储器51可以是所述终端设备5的内部存储单元,例如终端设备5的硬盘或内存。所述存储器51也可以是所述终端设备5的外部存储设备,例如所述终端设备5上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。进一步地,所述存储器51还可以既包括所述终端设备5的内部存储单元也包括外部存储设备。所述存储器51用于存储所述计算机程序以及所述终端设备所需的其他程序和数据。所述存储器51还可以用于暂时地存储已经输出或者将要输出的数据。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本申请的保护范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
在本发明所提供的实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的系统实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通讯连接可以是通过一些接口,装置或单元的间接耦合或通讯连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,RandomAccess Memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括是电载波信号和电信信号。
以上所述实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围,均应包含在本发明的保护范围之内。

Claims (10)

1.一种舵机运动的平滑处理方法,其特征在于,包括:
获取舵机运动的起点位置和控制指令;
根据所述控制指令确定舵机运动的终点位置以及运动时间;
根据所述起点位置、终点位置和运动时间构建舵机的运动曲线,所述运动曲线为横、纵坐标分别为时间和位置,且包含正弦函数或余弦函数的一次函数;
控制舵机按照所述运动曲线从所述起点位置运动至所述终点位置。
2.如权利要求1所述的舵机运动的平滑处理方法,其特征在于,所述运动曲线的表达式为:S(t)=Ac+(At-Ac)*[t/T+(a-1)*sin(2π*t/T)/2π],t∈[0,T],a∈[0,1],其中t为时间变量,Ac为所述起点位置,At为所述终点位置,T为所述运动时间,a为用于调整运动曲线的平滑程度的系数。
3.如权利要求2所述的舵机运动的平滑处理方法,其特征在于,所述控制舵机按照所述运动曲线从所述起点位置运动至所述终点位置包括:
从预设的表格中查询时间区间[0,T]内每个预设时间点下X*[t/T+(a-1)*sin(2π*t/T)/2π]的数值,X为舵机位置传感器的极限值;
根据查询得到的所述数值和所述运动曲线分别计算舵机在每个所述时间点下对应的目标位置;
控制舵机在每个所述时间点运动到达对应的目标位置。
4.如权利要求3所述的舵机运动的平滑处理方法,其特征在于,还包括:
若在查询所述表格时存在所述数值缺失的时间点,则选取所述数值缺失的时间点前后相邻的两个时间点对应的所述数值进行线性插值运算,将线性插值运算得到的结果作为所述数值缺失的时间点对应的所述数值,所述数值缺失的时间点指从所述表格中查询所述数值失败的所述预设时间点。
5.如权利要求1或2所述的舵机运动的平滑处理方法,其特征在于,所述控制舵机按照所述运动曲线从所述起点位置运动至所述终点位置包括:
对所述运动曲线求导,得到速度曲线;
控制舵机按照所述速度曲线对应的速度从所述起点位置运动至所述终点位置。
6.一种舵机运动的平滑处理装置,其特征在于,包括:
获取模块,用于获取舵机运动的起点位置和控制指令;
确定模块,用于根据所述控制指令确定舵机运动的终点位置以及运动时间;
运动曲线构建模块,用于根据所述起点位置、终点位置和运动时间构建舵机的运动曲线,所述运动曲线为横、纵坐标分别为时间和位置,且包含正弦函数或余弦函数的一次函数;
运动控制模块,用于控制舵机按照所述运动曲线从所述起点位置运动至所述终点位置。
7.如权利要求6所述的舵机运动的平滑处理装置,其特征在于,所述运动曲线的表达式为:S(t)=Ac+(At-Ac)*[t/T+(a-1)*sin(2π*t/T)/2π],t∈[0,T],a∈[0,1],其中t为时间变量,Ac为所述起点位置,At为所述终点位置,T为所述运动时间,a为用于调整运动曲线的平滑程度的系数。
8.如权利要求7所述的舵机运动的平滑处理装置,其特征在于,所述运动控制模块包括:
数值查询单元,用于从预设的表格中查询时间区间[0,T]内每个预设时间点下X*[t/T+(a-1)*sin(2π*t/T)/2π]的数值,X为舵机位置传感器的极限值;
位置计算单元,用于根据查询得到的所述数值和所述运动曲线分别计算舵机在每个所述时间点下对应的目标位置;
运动控制单元,用于控制舵机在每个所述时间点运动到达对应的目标位置。
9.一种终端设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至5中任一项所述的舵机运动的平滑处理方法的步骤。
10.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至5中任一项所述的舵机运动的平滑处理方法的步骤。
CN201711402868.4A 2017-12-22 2017-12-22 舵机运动的平滑处理方法、装置、终端设备和存储介质 Pending CN109960157A (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201711402868.4A CN109960157A (zh) 2017-12-22 2017-12-22 舵机运动的平滑处理方法、装置、终端设备和存储介质
US16/140,549 US10627805B2 (en) 2017-12-22 2018-09-25 Method, device, and terminal device for servo movement smoothing

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201711402868.4A CN109960157A (zh) 2017-12-22 2017-12-22 舵机运动的平滑处理方法、装置、终端设备和存储介质

Publications (1)

Publication Number Publication Date
CN109960157A true CN109960157A (zh) 2019-07-02

Family

ID=66948840

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201711402868.4A Pending CN109960157A (zh) 2017-12-22 2017-12-22 舵机运动的平滑处理方法、装置、终端设备和存储介质

Country Status (2)

Country Link
US (1) US10627805B2 (zh)
CN (1) CN109960157A (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111844030A (zh) * 2020-07-10 2020-10-30 珠海格力电器股份有限公司 插补点生成方法、装置、处理器及电子装置
CN112440282A (zh) * 2020-11-23 2021-03-05 乐聚(深圳)机器人技术有限公司 一种舵机控制方法、装置、电子设备及存储介质
CN114268580A (zh) * 2021-12-27 2022-04-01 中国电信股份有限公司 业务请求的转发方法和装置、存储介质及电子装置
CN117103285A (zh) * 2023-10-25 2023-11-24 成都信息工程大学 一种舵机步行机器人的运动控制方法及机器人

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113018018B (zh) * 2021-03-01 2023-09-22 广州希科医疗器械科技有限公司 轮椅电机的控制方法、系统及装置和轮椅
CN115442188A (zh) * 2022-08-19 2022-12-06 哲库科技(北京)有限公司 一种信道估计方法、装置、设备及存储介质
CN117315083B (zh) * 2023-11-27 2024-02-23 深圳市杰美康机电有限公司 电子凸轮运动曲线生成方法和装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030074996A1 (en) * 2001-09-06 2003-04-24 Camp Eckart Op Den Steering gear
CN101499222A (zh) * 2009-02-26 2009-08-05 浙江工业大学 一种线性结构的模块化机器人的运动步态控制方法
CN103076752A (zh) * 2012-12-26 2013-05-01 上海云杉信息科技有限公司 舵机控制器、舵机控制方法以及控制系统
CN107132761A (zh) * 2017-04-14 2017-09-05 烟台南山学院 一种采用纯模糊与模糊pid复合控制的电动舵机设计方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1925698B1 (de) * 2006-11-24 2010-03-17 Groz-Beckert KG Getriebe für einen Webschaftantrieb

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030074996A1 (en) * 2001-09-06 2003-04-24 Camp Eckart Op Den Steering gear
CN101499222A (zh) * 2009-02-26 2009-08-05 浙江工业大学 一种线性结构的模块化机器人的运动步态控制方法
CN103076752A (zh) * 2012-12-26 2013-05-01 上海云杉信息科技有限公司 舵机控制器、舵机控制方法以及控制系统
CN107132761A (zh) * 2017-04-14 2017-09-05 烟台南山学院 一种采用纯模糊与模糊pid复合控制的电动舵机设计方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
李北斗: "数字舵机驱动控制的研究和设计", 《计算机时代》 *

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111844030A (zh) * 2020-07-10 2020-10-30 珠海格力电器股份有限公司 插补点生成方法、装置、处理器及电子装置
CN111844030B (zh) * 2020-07-10 2022-04-05 珠海格力电器股份有限公司 插补点生成方法、装置、处理器及电子装置
CN112440282A (zh) * 2020-11-23 2021-03-05 乐聚(深圳)机器人技术有限公司 一种舵机控制方法、装置、电子设备及存储介质
CN114268580A (zh) * 2021-12-27 2022-04-01 中国电信股份有限公司 业务请求的转发方法和装置、存储介质及电子装置
CN117103285A (zh) * 2023-10-25 2023-11-24 成都信息工程大学 一种舵机步行机器人的运动控制方法及机器人

Also Published As

Publication number Publication date
US10627805B2 (en) 2020-04-21
US20190196453A1 (en) 2019-06-27

Similar Documents

Publication Publication Date Title
CN109960157A (zh) 舵机运动的平滑处理方法、装置、终端设备和存储介质
Yuan et al. A heuristic rapidly-exploring random trees method for manipulator motion planning
CN103092128B (zh) 一种多轴运动控制器
CN111553239B (zh) 一种机器人关节视觉伺服控制方法、终端设备及存储介质
Pan et al. Multi-robot obstacle avoidance based on the improved artificial potential field and PID adaptive tracking control algorithm
CN105892412B (zh) 基于自定义总线的多轴运动控制系统硬件架构
CN104552311A (zh) 基于EtherCAT的智能工业机器人总线模块及其操作方法
CN109760048A (zh) 一种机器人的伺服控制方法、装置及机器人
CN103744346A (zh) 一种电子凸轮曲线生成方法
CN111443709B (zh) 车辆变道路线规划方法、装置、终端和存储介质
CN113119111A (zh) 机械臂及其轨迹规划方法和装置
CN109933008A (zh) 一种非实时系统和机器人控制器的双插补方法及装置
Jin et al. A predefined fixed-time convergence ZNN and its applications to time-varying quadratic programming solving and dual-arm manipulator cooperative trajectory tracking
CN110510073A (zh) 一种无人帆船的自适应控制方法及系统
CN105353613B (zh) 一种通信关系自动匹配的事件驱动一致性控制方法
CN110262484B (zh) 基于自适应事件触发的轮式机器人匀速直线编队控制方法
CN109947112B (zh) 两轮自平衡车直线定点运动的最优时间轨迹规划方法
CN103429399A (zh) 用于命令机器人的系统
CN109773784A (zh) 一种机器人的参数调整方法、装置及机器人
CN109932929A (zh) 船舶巡航模拟仿真方法、计算机可读存储介质及终端设备
CN108015761B (zh) 一种单连杆柔性机械臂控制方法及系统
CN108563122A (zh) 一种移动机器人速度平滑插值方法
CN114690767A (zh) 一种机器人轨迹规划方法、系统以及机器人
CN109696910A (zh) 一种舵机运动控制方法及装置、计算机可读存储介质
CN112198795B (zh) 机电伺服控制方法、系统、终端设备及存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination