CN106843304A - 电机通用控制系统及方法 - Google Patents
电机通用控制系统及方法 Download PDFInfo
- Publication number
- CN106843304A CN106843304A CN201710209850.6A CN201710209850A CN106843304A CN 106843304 A CN106843304 A CN 106843304A CN 201710209850 A CN201710209850 A CN 201710209850A CN 106843304 A CN106843304 A CN 106843304A
- Authority
- CN
- China
- Prior art keywords
- instruction
- layer module
- motor
- motion
- interface
- 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
Links
Classifications
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05D—SYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
- G05D13/00—Control of linear speed; Control of angular speed; Control of acceleration or deceleration, e.g. of a prime mover
- G05D13/62—Control of linear speed; Control of angular speed; Control of acceleration or deceleration, e.g. of a prime mover characterised by the use of electric means, e.g. use of a tachometric dynamo, use of a transducer converting an electric value into a displacement
Abstract
本发明公开了一种电机通用控制系统及方法,所述系统包括:应用层模块,用于根据应用需求,调用所述接口层模块提供的接口,并通过所述接口向所述规划层模块下发通用运动指令;接口层模块,用于提供不同应用需求对应的接口;规划层模块,用于接收所述应用层模块下发的通用运动指令,并对解析所述通用运动指令进行解析,结合被控对象当前运动状态,生成运动目标集合;适配层模块,用于根据所述运动目标集合生成对应电机的控制信息,并将所述控制信息发送给对应所述电机的驱动层模块;所述驱动层模块用于根据接收到的控制信息控制对应电机工作,以使所述电机驱动被控对象运动。
Description
技术领域
本发明涉及电机控制领域,具体涉及一种电机通用控制系统及方法。
背景技术
目前,对于电机的控制,一般使用单片机+实时操作系统(如uC/OS II或者freeRTOS)或者应用处理器(如ARM Cortex-A、X86)+实时操作系统(如linux+(RTLinux/RTAI/Xenomai)、VxWorks)的硬件模式,这样可以保证控制的实时性与准确性。同时,对于不同的电机类型,控制方式也千差万别,比如:
步进电动机是一种将电脉冲信号转换成相应角位移或线位移的电动机,步进驱动器通过脉冲信号控制,当步进驱动器接收到一个脉冲信号,它就驱动步进电机按设定的方向转动一个固定的角度。通过控制脉冲频率来控制电机转动的速度和加速度,从而达到调速的目的。
舵机是一种位置(角度)伺服的驱动器,适用于那些需要角度不断变化并可以保持的控制系统,其实质是一种伺服马达。舵机需要通过固定周期的PWM(Pulse WidthModulation,脉宽调制)信号控制。
直流电机通过闭环PID(Proportion Integration Differentiation,比例积分微分)控制。
由此可见,对于不同的电机,不同的微处理器,控制软件也会不同。在某些应用场合,如服务机器人、玩具机器人,对于精度要求比较低,而且通常会使用多种不同电机来控制。在这种情况下,如果都使用微处理器控制每种电机,不仅会使软、硬件架构都比较复杂,而且会增加研发、测试、生产、维护成本。
发明内容
本发明提供一种电机通用控制系统及方法,以提高系统的适应性,简化产品在需要多种电机的情况下的软、硬件架构。
为此,本发明提供如下技术方案:
一种电机通用控制系统,所述电机用于驱动被控对象运动,所述系统包括:应用层模块、规划层模块、以及与被控对象不同驱动电机相对应的适配层模块和驱动层模块;
所述应用层模块用于根据应用需求,向所述规划层模块下发通用运动指令;
所述规划层模块用于接收所述应用层模块下发的通用运动指令,并对所述通用运动指令进行解析,结合被控对象当前运动状态,生成运动目标集合;
所述适配层模块用于根据所述运动目标集合生成对应电机的控制信息,并将所述控制信息发送给对应所述电机的驱动层模块;
所述驱动层模块用于根据接收到的控制信息控制对应电机工作,以使所述电机驱动被控对象运动。
优选地,所述通用运动指令包括以下任意一种或多种:启停指令、点位指令、直线指令、圆弧指令、动作文件指令、调速指令。
优选地,所述系统还包括:接口层模块,用于提供不同应用环境对应的接口;
所述应用层模块利用所述接口层模块提供的接口向所述规划层模块下发通用运动指令。
优选地,所述接口层模块提供的接口包括以下任意一种或多种:C接口、C++接口、Java接口。
优选地,所述规划层模块包括:
规划接口单元、指令解析单元、状态处理单元、核心处理单元、输出单元;
所述规划接口单元,用于接收所述应用层模块下发的通用运动指令;
所述状态处理单元,用于获取被控对象当前状态;
所述指令解析单元,用于解析所述通用运动指令,获得指令类型及指令数据;
所述核心处理单元,用于根据所述指令类型、指令数据、以及被控对象当前状态,生成运动目标集合;
所述输出单元,用于将所述运动目标集合传送给各适配层。
优选地,所述核心处理单元具体用于根据所述指令类型、指令数据、以及被控对象当前状态,进行路径规划、轨迹规划、插补处理,得到平滑的运动轨迹曲线,将所述运动轨迹曲线转换成各个自由度的运动序列点集合。
优选地,所述电机包括以下任意一种或多种:直流电机、舵机、步进电机。
一种电机通用控制方法,所述电机用于驱动被控对象运动,所述方法包括:
接收通用运动指令;
对所述通用运动指令进行解析,并结合被控对象当前运动状态,生成运动目标集合;
由电机适配层模块根据所述运动目标集合生成对应所述电机的控制信息;
由电机驱动层模块根据所述控制信息控制所述电机工作,以使所述电机驱动被控对象运动。
优选地,所述通用运动指令包括以下任意一种或多种:启停指令、点位指令、直线指令、圆弧指令、动作文件指令、调速指令。
优选地,所述方法还包括:
提供对应不同应用环境的接口;
所述接收通用运动指令包括:利用所述接口接收所述通用运动指令。
优选地,所述接口包括以下任意一种或多种:C接口、C++接口、Java接口。
优选地,所述对所述通用运动指令进行解析,并结合被控对象当前运动状态,生成运动目标集合包括:
解析所述通用运动指令,获得指令类型及指令数据;
获取被控对象当前状态;
根据所述指令类型、指令数据、以及被控对象当前状态,进行路径规划、轨迹规划、插补处理,得到平滑的运动轨迹曲线;
将所述运动轨迹曲线转换成各个自由度的运动序列点集合。
优选地,所述电机包括以下任意一种或多种:直流电机、舵机、步进电机。
本发明实施例提供的一种电机通用控制系统及方法,采用分层架构,上层模块不用关注底层具体是什么电机,大大增加了系统的通用性,通过软、件硬的配合,可以有效简化系统架构,降低研发、测试、生产、维护成本。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的附图。
图1是本发明实施例电机通用控制系统的一种结构示意图;
图2是本发明实施例电机通用控制系统中规划层模块的一种结构示意图;
图3是本发明实施例中直流电机的驱动原理图;
图4是本发明实施例中通过细分驱动器驱动步进电机的原理图;
图5是本发明实施例中通过非细分驱动器驱动步进电机的原理图;
图6是本发明实施例电机通用控制方法的流程图。
具体实施方式
为了使本技术领域的人员更好地理解本发明实施例的方案,下面结合附图和实施方式对本发明实施例作进一步的详细说明。
针对现有技术对于不同的电机,不同的微处理器,采用不同的控制软件,从而使得软、硬件架构都比较复杂的问题,本发明实施例提供一种实施例电机通用控制系统及方法,采用分层方式的软、硬件架构,使其更具通用性,提高产品的性价比,以更好地适应普通家庭场景、以及普通消费类运动产品的需求。
如图1所示,是本发明实施例电机通用控制系统的一种结构示意图。
在该实施例中,所述系统采用不同层次的模块,以驱动一种或多种不同电机,图1中示出了三种不同的电机,分别为:直流电机、舵机、步进电机,这些电机用于驱动被控对象产生相应的运动。需要说明的是,在实际应用中,可以根据被控对象的运动方式,选用相应的电机,具体需要一种还是多种电机,根据被控对象的运动需求来确定,对此本发明实施例不做限定。该电机通用控制系统包括:应用层模块、规划层模块、以及与被控对象不同驱动电机相对应的适配层模块和驱动层模块,如图1中所示,与直流电机对应的是直流电机适配层模块和直流电机驱动层模块,与舵机对应的是舵机适配层模块和舵机驱动层模块,与步进电机对应的是步进电机适配层模块和步进电机驱动层模块。
下面对上述各模块及该系统的工作过程进行详细说明。
上述应用层模块用于根据应用需求,向所述规划层模块下发通用运动指令,比如启停指令、点位指令、直线指令、圆弧指令、动作文件指令、调速指令等;
上述规划层模块用于接收所述应用层模块下发的通用运动指令,并对所述通用运动指令进行解析,结合被控对象当前运动状态,生成运动目标集合,比如具体可以是各个自由度的运动序列点集合;
上述适配层模块用于根据所述运动目标集合生成对应电机的控制信息,并将所述控制信息发送给对应所述电机的驱动层模块;具体地,可以根据对应的电机类型做控制和状态数据转换,比如,对于直流电机,可以将相应的运动序列点集合转换成绝对位置信息;对于步进电机,则需要将相应的运动序列点集合转换为相对位置与方向信息等;
上述驱动层模块用于根据接收到的控制信息控制对应电机工作,以使所述电机驱动被控对象运动。
需要说明的是,为了便于不同应用环境下的规划层模块都能够方便地接收应用层模块下发的通用运动指令,在本发明系统中,还可进一步包括:接口层模块,用于提供不同应用环境对应的接口,比如所述接口可以包括以下任意一种或多种:C接口、C++接口、Java接口。这样,所述应用层模块就可以调用所述接口层模块提供的接口向所述规划层模块下发通用运动指令,进一步增加了本发明系统对不同应用环境的适应能力。
另外,在实际应用中,上述各模块可以由AP(Application Processor,应用处理器)芯片(如ARM Cortex-A处理器)及相应的应用程序来实现,所述应用程序可以是在普通Linux系统、或者Android系统、或者Windows系统下运行。另外,上述应用层模块、接口层模块及规划层模块不用关注底层具体是什么电机;适配层模块呈上启下,生成对应电机的控制信息;驱动层模块根据所述控制信息直接控制相应电机,驱动被控对象做相应的运动。
上述规划层模块需要对应用层模块下发的通用运动指令进行解析,并结合被控对象当前运动状态,生成运动目标集合,图2示出了规划层模块的一种结构示意图。
所述规划层模块包括以下各单元:规划接口单元、指令解析单元、状态处理单元、核心处理单元、输出单元;
所述规划接口单元,用于接收所述应用层模块下发的通用运动指令;
所述指令解析单元,用于解析所述通用运动指令,获得指令类型及指令数据;
所述状态处理单元,用于获取被控对象当前状态;
所述核心处理单元,用于根据所述指令类型、指令数据、以及被控对象当前状态,生成运动目标集合;
所述输出单元,用于将所述运动目标集合传送给各适配层。
上述核心处理单元主要用于进行一些计算工作,比如根据所述指令类型、指令数据、以及被控对象当前状态,进行路径规划、轨迹规划、插补处理,得到平滑的运动轨迹曲线,将所述运动轨迹曲线转换成各个自由度的运动序列点集合,这些计算及处理工作可以采用现有的一些算法来完成,对此本发明实施例不做限定。
需要说明的是,在规划层模块支持多进程工作的情况下,所述规划层模块还可进一步包括任务管理单元,即对指令解析单元解析得到的多个指令解析结果,分配到不同的进程进行处理,任务管理单元对其进行统一分配及管理。另外,核心处理单元进行路径规划、轨迹规划、插补处理等工作可以由其独立完成,也可以通过调用相应的处理单元来完成,对此本发明实施例不做限定。
下面针对不同电机,详细说明对应的驱动层模块对电机的控制方式。
1.直流电机驱动层模块:
所述直流电机驱动层模块在具体应用中可以采用AP芯片(如ARM Cortex-A)加直流电机驱动IC(Integrated Circuit,集成电路)芯片的结构形式,如图3所示,直流电机驱动IC芯片即图中所示的直流电机驱动器。
(1)硬件连接上需要挂一个直流有刷电机驱动IC,通过GPIO模拟PWM(Pulse WidthModulation,脉冲宽度调制)输出模式控制驱动IC的相应引脚,直流电机驱动IC再向直流有刷电机输出PWM信号。
(2)直流电机不同于步进电机和舵机,电路中需要反馈元件,以反馈当前电机所在的位置。因为步进电机只要不失步,用户发多少脉冲,步进电机就走多少步,可以做到开环控制;舵机是根据控制信号的占空比来决定自身运动的绝对位置,到目标位置自己就会停下来。由于AP芯片一般没有正交编码器计数器单元,因此难以使用高精度的正交编码器计数,但是AP芯片一般有ADC(Analog-to-Digital Converter,模数转换器)采样单元,因此,如图3中所示,可以使用VR(Variable Resistor,可变电阻器)作为位置反馈元件。
(3)采用PID(比例-积分-微分)控制算法,每个控制周期(如10ms)根据目标位置与根据VR反馈计算的当前位置差,通过PID算法计算出PWM新的占空比输出。
调度误差分析:操作系统调度延迟一般都不会超过1ms(支持高精度定时器的操作系统调度误差一般在50us左右),这样的延迟对于整体PID控制来说影响不大,这样就可以在一定精度范围内控制直流电机。
2.步进电机驱动层模块
所述步进电机驱动层模块可以采用AP芯片(如ARM Cortex-A),对于细分驱动器(细分是指驱动器将非细分驱动器接收到1个脉冲驱动步进电机走1整步,调整为细分驱动器接收1个脉冲驱动步进电机走1个微步,提高控制精度的同时,也改善了电机的振动和噪声),可以由AP芯片发送脉冲信号给步进电机细分驱动器,再由步进电机细分驱动器的输出连接步进电机励磁线,连接示意图见图4,其中DIR信号用于控制细分驱动器运动方向,即正转或反转;对于非细分驱动器,可以直接用AP芯片的GPIO(General Purpose InputOutput,通用输入/输出)接口连接步进电机励磁线,连接示意图见图5。
考虑到AP芯片的运行环境大都是Android、Linux、Windows、IOS等,即非实时系统,系统调度会有us甚至ms级误差。而且,AP芯片一般不具备正交编码器计数器等硬件单元;而使用软件定时器又会给系统带来非常重的负担。因此,针对这些问题,本发明实施例提出了相应的解决方案。
针对步进电机使用细分驱动器的情况,可以采用以下措施:
(1)不使用定时器生成脉冲,采用GPIO的PWM工作模式。
(2)假设系统支持设置PWM个数控制,且系统调度误差很小,如几十个微秒级别,那么通过周期改变PWM波个数控制更准确;如果系统调度误差有几百微秒甚至毫秒,或者系统就不支持PWM个数控制,则采用周期更改PWM输出频率,不指定个数,以避免调度误差导致一定时间内无PWM波。比如控制周期是10ms,第一个周期希望发30个PWM波,第二个周期希望发35个PWM波,但是由于调度误差,如果第二个周期晚来了1ms,那么就意味着有1ms时间是没有任何PWM输出的,有可能导致电机运动过程中出现抖动。
使用PWM波时,考虑到有的运行环境支持设置指定PWM波个数,有的运行环境不支持设置指定PWM个数。因此,可以采用以下处理方式:
如果运行环境支持设置PWM波个数,并且调度误差在几十微秒级别,可以每个周期更改PWM信号的频率与个数。根据每个周期的目标位置与当前位置计算目标位置差,可以计算出应该让步进电机走几步,即发几个脉冲,但是步进电机每一步是要走一定角度的,大多时候计算步长都不是一个整数,而是有小数的。针对这种情况,可以采用四舍五入的方法,计算发出这么多个波后电机理论到达的位置,为下一个周期计算做准备。这种方式在调度误差平稳且在几十微秒时,误差很小。
如果系统调度误差不能保证,或者运行环境不支持设置PWM波个数时,那么可以不关注每个周期PWM波的个数,只关注PWM波的频率。这样匀速阶段PWM信号频率不变,不会因为调度原因产生任何误差;在加减速阶段有可能出现误差。但是一次运动,一般总是先加速,再匀速,再减速,如先从0度走到90度,加速阶段,如果系统调度总是提前到来,那么低速运动时间被减少,加速阶段会多走路程;减速阶段,如果系统调度仍然还是提前到来,那么高速运动时间被减速,最终少走路程,这样加速多走,减速少走,总的来看误差是有抵消的。当然,操作系统调度误差一般不可能总是提前或者滞后,一般情况下应该服从正态分布,这样加速阶段可能有多走的周期,也可能有少走的周期,总的误差也有抵消。另外,即使每次运动都是多走和少走也不会累计,因为反向运动的时候,误差就可以部分或者全部抵消。同时,在这种情况下,也不用每个周期去调整PWM信号的频率,只有当前PWM信号与目标PWM信号的频率不同的时候才需要调节,这样也减少了调整PWM信号频率的时间和系统开销。
由于常用操作系统(如Linux、Android、Windows)都不是实时系统。对电机运动控制一般都是周期控制,控制周期从工业级us级别到消费品ms级别不等。为了避免N个周期后,N次调度误差累积,每次定时,可以基于第一次定时基准时间,而不是基于上一次触发时间,这样可以避免调度误差累积。而一次的调度误差引入的影响,也仅在加减速时有影响,影响大小与加速度和调度时间差乘积成正比。比如加速度是300deg/s2,控制周期是10ms,第m个周期速度是100deg/s,第m+1个周期速度是103deg/s,如果没有调度误差,那么m周期应该走1.0deg(100deg/s*10ms),m+1周期应该走1.03deg(103deg/s*10ms/1000),m和m+1两个周期共走2.03deg。如果m+1次调度晚了0.5ms,m+2次调度正好,那么m周期实际走了1.05deg(100deg/s*10.5ms/1000),m+1周期实际走了0.9785deg(103deg/s*9.5ms/1000),实际两个周期共走2.0285deg,相差0.0015deg,而0.0015deg=300deg/s2*10ms*0.5ms/1000000。
3.舵机驱动层模块:
舵机需要通过固定周期的PWM信号控制,在实际应用中,所述舵机驱动层模块同样可以采用AP芯片(如ARM Cortex-A)。
需要说明的是,对于舵机的控制,同样存在与步进电机类似的实时性问题,对此,可以采用如下策略:
1.由于舵机的绝对位置与PWM占空比成比例关系,舵机控制一般需要一个周期为20ms的脉冲,该脉冲的高电平部分一般在0.5ms-2.5ms范围内,那么可以算出控制脉冲占空比调节范围在2.5%-12.5%之间。如果AP芯片的PWM驱动仅支持设置整数PWM占空比,那么此时可以采用定时器模式,根据占空比,定时将GPIO拉高和拉低,毕竟舵机的控制信号是周期为20ms的PWM信号,定时器模拟生成开销很小。如果AP芯片的PWM驱动支持设置带小数的PWM占空比,则推荐使用GPIO的PWM模式。
调度误差分析:操作系统调度延迟一般都不会超过1ms(支持高精度定时器的操作系统调度误差一般在50us左右)这样的延迟对于舵机控制来说,基本没有什么影响,也不会最终影响舵机位置。
下面以6个自由度机器手臂运动举例,结合上述不同电机的控制方式,详细说明本发明系统的工作过程。
所谓自由度是指自由运动空间的维数,自由度的个数是指用于计算某个特征数(比如样本期望或样本方差)的独立观察值的个数。在机器人领域,一般一个关节就是一个自由度。
如果需要机器人手指画一条长100mm的直线,那么应用层模块下发通用运动指令到规划层模块,所述通用运动指令是指不考虑底层电机的类型及具体的被控对象;规划接口单元接收到所述通用运动指令后,传送给指令解析单元对该指令进行解析,核心处理单元根据指令解析单元的解析结果并结合被控对象当前运动状态,生成运动目标集合,传送给各适配层模块。
需要说明的是,通用运动指令封装形式可以有很多种,如普通tag-value字符串,json字符串,接口参数等;指令内容需要包括坐标系信息、位置、速度、加速度等必要的运动控制信息;如这条直线是水平的,与x方向重合,以增量指令下发,则可以指定世界坐标系下增量指令类型是100,那么这条指令类型就是100,同时世界坐标一般有6个值(x,y,z,a,b,c)其中x,y,z决定位置信息,a,b,c决定姿态信息,那么这条指令的增量位姿信息就是(100,0,0,0,0,0)。
规划层收到上述通用运动指令后,会首先根据当前机械臂位置与姿态,计算用户想让机械臂到达的目标位置,然后判断是否在机械臂工作空间内;如果确认可以,则进行轨迹规划,然后进行运动学反解,计算出机械臂6个关节每个的目标值;然后对每个关节的目标值进行插值算法,以输出位置、速度、加速度连续变化的运动曲线,方便电机运动控制。需要说明的是,规划层模块做轨迹点的理论计算时,不考虑具体电机类型,与不同电机对应的适配层模块从规划层模块计算得到的数据中提取和转换自己需要的数据。
所述核心处理单元主要是根据指令类型,进行运动安全和障碍判断,进而对指令数据进行轨迹插补,将插补后的数据通过运动学正反解,算出各个自由度运动目标。
在实际应用中,本发明实施例的系统可以采用软硬件相结合的控制方式,通过AP芯片实现对直流有刷电机、步进电机、舵机位置的通用控制(一般系统中只用一种电机,当然也可以支持多种电机)。
本发明实施例提供的一种电机通用控制系统,采用分层架构,上层模块不用关注底层具体是什么电机,大大增加了系统的通用性,通过软、件硬的配合,可以有效简化系统架构,降低研发、测试、生产、维护成本。
相应地,本发明实施例还提供一种电机通用控制方法,如图6所示,是该方法的一种流程图,包括以下步骤:
步骤601,接收通用运动指令;
步骤602,对所述通用运动指令进行解析,并结合被控对象当前运动状态,生成运动目标集合;
具体地,解析所述通用运动指令,获得指令类型及指令数据;获取被控对象当前状态;然后根据所述指令类型、指令数据、以及被控对象当前状态,进行路径规划、轨迹规划、插补处理,得到平滑的运动轨迹曲线;最后将所述运动轨迹曲线转换成各个自由度的运动序列点集合;
步骤603,由电机适配层模块根据所述运动目标集合生成对应所述电机的控制信息;
步骤604,由电机驱动层模块根据所述控制信息控制所述电机工作,以使所述电机驱动被控对象运动。
对不同电机的控制过程可以参照前面本发明系统实施例中的说明,在此不再赘述。
在本发明实施例中,所述通用运动指令可以不考虑底层电机的类型及控制方式,只需提供针对被控对象的启停、点位、直线、圆弧、动作文件、调速、控制等信息即可。
另外,为了方便本发明方法在不同的环境下的适应性,本发明方法另一实施例还可进一步提供针对不同应用环境的接口,这样,应用层下发通用运动指令时,只需调用与应用环境相适配的接口即可完成指令的下发。所述接口包括以下任意一种或多种:C接口、C++接口、Java接口等。
本发明实施例的方法,可以实现对直流有刷电机、步进电机、舵机的位置控制,可以应用于由单一电机驱动的被控对象,当然也可以应用于由多种电机驱动的被控对象。
本发明实施例提供的电机通用控制方法,采用分层架构,上层模块不用关注底层具体是什么电机,大大增加了系统的通用性,通过软、件硬的配合,可以有效简化系统架构,降低研发、测试、生产、维护成本。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处,各实施例相关之处可以参见其它实施例的相关部分说明即可。
以上对本发明实施例进行了详细介绍,本文中应用了具体实施方式对本发明进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及系统;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (13)
1.一种电机通用控制系统,所述电机用于驱动被控对象运动,其特征在于,所述系统包括:应用层模块、规划层模块、以及与被控对象不同驱动电机相对应的适配层模块和驱动层模块;
所述应用层模块用于根据应用需求,向所述规划层模块下发通用运动指令;
所述规划层模块用于接收所述应用层模块下发的通用运动指令,并对所述通用运动指令进行解析,结合被控对象当前运动状态,生成运动目标集合;
所述适配层模块用于根据所述运动目标集合生成对应电机的控制信息,并将所述控制信息发送给对应所述电机的驱动层模块;
所述驱动层模块用于根据接收到的控制信息控制对应电机工作,以使所述电机驱动被控对象运动。
2.根据权利要求1所述的系统,其特征在于,所述通用运动指令包括以下任意一种或多种:启停指令、点位指令、直线指令、圆弧指令、动作文件指令、调速指令。
3.根据权利要求1所述的系统,其特征在于,所述系统还包括:接口层模块,用于提供不同应用环境对应的接口;
所述应用层模块利用所述接口层模块提供的接口向所述规划层模块下发通用运动指令。
4.根据权利要求3所述的系统,其特征在于,所述接口层模块提供的接口包括以下任意一种或多种:C接口、C++接口、Java接口。
5.根据权利要求1所述的系统,其特征在于,所述规划层模块包括:
规划接口单元、指令解析单元、状态处理单元、核心处理单元、输出单元;
所述规划接口单元,用于接收所述应用层模块下发的通用运动指令;
所述状态处理单元,用于获取被控对象当前状态;
所述指令解析单元,用于解析所述通用运动指令,获得指令类型及指 令数据;
所述核心处理单元,用于根据所述指令类型、指令数据、以及被控对象当前状态,生成运动目标集合;
所述输出单元,用于将所述运动目标集合传送给各适配层。
6.根据权利要求5所述的系统,其特征在于,所述核心处理单元具体用于根据所述指令类型、指令数据、以及被控对象当前状态,进行路径规划、轨迹规划、插补处理,得到平滑的运动轨迹曲线,将所述运动轨迹曲线转换成各个自由度的运动序列点集合。
7.根据权利要求1至6任一项所述的系统,其特征在于,所述电机包括以下任意一种或多种:直流电机、舵机、步进电机。
8.一种电机通用控制方法,所述电机用于驱动被控对象运动,其特征在于,所述方法包括:
接收通用运动指令;
对所述通用运动指令进行解析,并结合被控对象当前运动状态,生成运动目标集合;
由电机适配层模块根据所述运动目标集合生成对应所述电机的控制信息;
由电机驱动层模块根据所述控制信息控制所述电机工作,以使所述电机驱动被控对象运动。
9.根据权利要求8所述的方法,其特征在于,所述通用运动指令包括以下任意一种或多种:启停指令、点位指令、直线指令、圆弧指令、动作文件指令、调速指令。
10.根据权利要求8所述的方法,其特征在于,所述方法还包括:
提供对应不同应用环境的接口;
所述接收通用运动指令包括:利用所述接口接收所述通用运动指令。
11.根据权利要求10所述的方法,其特征在于,所述接口包括以下任意一种或多种:C接口、C++接口、Java接口。
12.根据权利要求8所述的方法,其特征在于,所述对所述通用运动指 令进行解析,并结合被控对象当前运动状态,生成运动目标集合包括:
解析所述通用运动指令,获得指令类型及指令数据;
获取被控对象当前状态;
根据所述指令类型、指令数据、以及被控对象当前状态,进行路径规划、轨迹规划、插补处理,得到平滑的运动轨迹曲线;
将所述运动轨迹曲线转换成各个自由度的运动序列点集合。
13.根据权利要求8至12任一项所述的方法,其特征在于,所述电机包括以下任意一种或多种:直流电机、舵机、步进电机。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710209850.6A CN106843304A (zh) | 2017-03-31 | 2017-03-31 | 电机通用控制系统及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710209850.6A CN106843304A (zh) | 2017-03-31 | 2017-03-31 | 电机通用控制系统及方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN106843304A true CN106843304A (zh) | 2017-06-13 |
Family
ID=59142263
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710209850.6A Pending CN106843304A (zh) | 2017-03-31 | 2017-03-31 | 电机通用控制系统及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106843304A (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107450480A (zh) * | 2017-08-06 | 2017-12-08 | 北京镁伽机器人科技有限公司 | 运动部件的控制装置、控制方法、介质和系统 |
CN109491811A (zh) * | 2018-11-20 | 2019-03-19 | 网易(杭州)网络有限公司 | 游戏测试方法、装置及存储介质 |
CN110154030A (zh) * | 2019-06-13 | 2019-08-23 | 哈尔滨玄智科技有限公司 | 一种机器人控制方法、机器人及控制终端 |
CN112446117A (zh) * | 2019-08-13 | 2021-03-05 | 浙江深酷机器人有限公司 | 一种直流电机虚拟机及其实现方法 |
CN114913761A (zh) * | 2022-05-20 | 2022-08-16 | 北京晟海汇泽科技有限公司 | 一种用于水下机器人教育和水下科学研究的平台 |
CN112446117B (zh) * | 2019-08-13 | 2024-04-19 | 浙江深酷机器人有限公司 | 一种直流电机虚拟机及其实现方法 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1847785A (zh) * | 2006-04-28 | 2006-10-18 | 南通大学 | 实现大量程自由曲面的高精度测量方法 |
CN101589970A (zh) * | 2008-05-28 | 2009-12-02 | 哈尔滨理工大学 | 基于多操作机排牙的装置 |
CN104029742A (zh) * | 2013-07-01 | 2014-09-10 | 李喆 | 新型球形机器人及其控制方法 |
CN204155150U (zh) * | 2014-09-12 | 2015-02-11 | 哈尔滨恒誉名翔科技有限公司 | 一种基于avr的移动机器人控制系统 |
CN204271965U (zh) * | 2014-12-19 | 2015-04-15 | 深圳市轴心自控技术有限公司 | 一种步进驱动器 |
CN205068164U (zh) * | 2015-10-22 | 2016-03-02 | 河海大学 | 一种远程机器视觉非遮挡寻物系统 |
CN105511400A (zh) * | 2016-02-04 | 2016-04-20 | 合肥泰禾光电科技股份有限公司 | 一种冲压机器人控制系统 |
CN205507539U (zh) * | 2016-03-28 | 2016-08-24 | 长沙师范学院 | 一种智能家用搬运机器人控制系统 |
CN106271281A (zh) * | 2016-09-27 | 2017-01-04 | 华南理工大学 | 一种复杂异型工件自动焊接轨迹生成系统及方法 |
-
2017
- 2017-03-31 CN CN201710209850.6A patent/CN106843304A/zh active Pending
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1847785A (zh) * | 2006-04-28 | 2006-10-18 | 南通大学 | 实现大量程自由曲面的高精度测量方法 |
CN101589970A (zh) * | 2008-05-28 | 2009-12-02 | 哈尔滨理工大学 | 基于多操作机排牙的装置 |
CN104029742A (zh) * | 2013-07-01 | 2014-09-10 | 李喆 | 新型球形机器人及其控制方法 |
CN204155150U (zh) * | 2014-09-12 | 2015-02-11 | 哈尔滨恒誉名翔科技有限公司 | 一种基于avr的移动机器人控制系统 |
CN204271965U (zh) * | 2014-12-19 | 2015-04-15 | 深圳市轴心自控技术有限公司 | 一种步进驱动器 |
CN205068164U (zh) * | 2015-10-22 | 2016-03-02 | 河海大学 | 一种远程机器视觉非遮挡寻物系统 |
CN105511400A (zh) * | 2016-02-04 | 2016-04-20 | 合肥泰禾光电科技股份有限公司 | 一种冲压机器人控制系统 |
CN205507539U (zh) * | 2016-03-28 | 2016-08-24 | 长沙师范学院 | 一种智能家用搬运机器人控制系统 |
CN106271281A (zh) * | 2016-09-27 | 2017-01-04 | 华南理工大学 | 一种复杂异型工件自动焊接轨迹生成系统及方法 |
Non-Patent Citations (1)
Title |
---|
许鸿文 等: "《机器人完全DIY 从零起步》", 31 August 2015, 武汉:中国地质大学出版社 * |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107450480A (zh) * | 2017-08-06 | 2017-12-08 | 北京镁伽机器人科技有限公司 | 运动部件的控制装置、控制方法、介质和系统 |
CN107450480B (zh) * | 2017-08-06 | 2019-08-16 | 苏州镁伽智能制造科技有限公司 | 运动部件的控制装置、控制方法、介质和系统 |
CN109491811A (zh) * | 2018-11-20 | 2019-03-19 | 网易(杭州)网络有限公司 | 游戏测试方法、装置及存储介质 |
CN109491811B (zh) * | 2018-11-20 | 2022-03-08 | 网易(杭州)网络有限公司 | 游戏测试方法、装置及存储介质 |
CN110154030A (zh) * | 2019-06-13 | 2019-08-23 | 哈尔滨玄智科技有限公司 | 一种机器人控制方法、机器人及控制终端 |
CN112446117A (zh) * | 2019-08-13 | 2021-03-05 | 浙江深酷机器人有限公司 | 一种直流电机虚拟机及其实现方法 |
CN112446117B (zh) * | 2019-08-13 | 2024-04-19 | 浙江深酷机器人有限公司 | 一种直流电机虚拟机及其实现方法 |
CN114913761A (zh) * | 2022-05-20 | 2022-08-16 | 北京晟海汇泽科技有限公司 | 一种用于水下机器人教育和水下科学研究的平台 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106843304A (zh) | 电机通用控制系统及方法 | |
US5103404A (en) | Feedback for a manipulator | |
US5025385A (en) | Multiple axis motion control system | |
US4947336A (en) | Multiple axis motion control system | |
JPH063994B2 (ja) | 複数台デイジタルサーボの制御方法 | |
EP3582934B1 (en) | A method for controlling an industrial robot during lead-through programming of the robot and an industrial robot | |
CN108453733B (zh) | 具有反馈控制功能的机器人、运动控制系统、方法和介质 | |
JPS63285601A (ja) | 適応フィードフォワード経路追跡による運動制御装置 | |
CN108663993B (zh) | 一种基于实时控制器的多轴伺服控制系统 | |
JPS59501806A (ja) | モ−タ用制御、力感知法及び装置 | |
JP3476287B2 (ja) | ロボットの接続動作時に速度制御を行なうための曲線補間方法 | |
EP1264667A2 (en) | Control system for robots | |
Dulger et al. | Modelling, simulation and control of a four-bar mechanism with a brushless servo motor | |
US10754320B2 (en) | Method and apparatus for integrating an external motion planner with an industrial controller | |
CN109093624B (zh) | 一种机械臂复杂曲线的连续插补运动控制方法 | |
CN109343589A (zh) | 用于机器人的速度平滑方法及装置 | |
Luo et al. | Adaptive impedance control for safe robot manipulator | |
US7228294B2 (en) | Electronic cam device and method of preparing cam data in electronic cam device | |
JP3668821B2 (ja) | ロボットコントローラおよびロボット制御方法 | |
Correa et al. | Implementation of an open-architecture control for CNC systems based on open-source electronics | |
JPH08328627A (ja) | サーボ制御装置及びサーボ制御方法並びにこれらを用いたロボット制御装置及びロボット制御方法 | |
Kung | A tutorial on modelling and control of two-wheeled self-balancing robot with stepper motor | |
Kapitány et al. | Kinematics and control of a planar cable robot | |
JP2012061560A (ja) | ロボットの制御装置 | |
JP2996445B2 (ja) | 複数軸駆動装置 |
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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20170613 |
|
RJ01 | Rejection of invention patent application after publication |