CN112060076A - 一种舵机控制方法、舵机控制装置、终端及存储介质 - Google Patents
一种舵机控制方法、舵机控制装置、终端及存储介质 Download PDFInfo
- Publication number
- CN112060076A CN112060076A CN202010708694.XA CN202010708694A CN112060076A CN 112060076 A CN112060076 A CN 112060076A CN 202010708694 A CN202010708694 A CN 202010708694A CN 112060076 A CN112060076 A CN 112060076A
- Authority
- CN
- China
- Prior art keywords
- steering engine
- steering
- engine control
- unit
- bus interfaces
- 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
Images
Classifications
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Programme-controlled manipulators
- B25J9/16—Programme controls
- B25J9/1602—Programme controls characterised by the control system, structure, architecture
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J19/00—Accessories fitted to manipulators, e.g. for monitoring, for viewing; Safety devices combined with or specially adapted for use in connection with manipulators
Landscapes
- Engineering & Computer Science (AREA)
- Robotics (AREA)
- Mechanical Engineering (AREA)
- Automation & Control Theory (AREA)
- Combined Controls Of Internal Combustion Engines (AREA)
Abstract
本申请属于舵机控制技术领域,提供了一种舵机控制方法、舵机控制装置、终端及存储介质,其中,多关节机器人包括N个舵机总线接口以及与N个舵机总线接口一一对应连接的N个舵机组,其中,每个舵机组包括至少一个舵机,N为大于1的整数,根据预设的接口顺序通过N个舵机总线接口依次向N个舵机组中的第一个舵机发送舵机控制指令,根据预设的接口顺序通过N个舵机总线接口依次向每个舵机组中的下一个舵机发送舵机控制指令,直至完成N个舵机组中每个舵机的舵机控制指令的发送,减少多关节机器人的关节运动的时延,提高其关节开始运动时间的一致性,从而达到高速运动控制应用场景的要求。
Description
技术领域
本申请属于舵机控制技术领域,尤其涉及一种舵机控制方法、舵机控制装置、终端及存储介质。
背景技术
人形机器人是一个多舵机关节的复杂系统,关节数量一般都会在14个以上。机器人控制板需要通过通信接口与舵机关节进行通信,发送命令给舵机关节让其运动到控制板所需的目标角度。为了让机器人整体在某个时间内执行完所需要的某一帧动作,机器人控制板需要在很短的时间内完成与多个舵机关节的通信以让其达到控制板所需要的目标角度,从而从整体上看实现了某一帧动作的控制。
现有的技术采用单总线同步控制结构,即主控板使用一个通信接口,在一条总线上挂接一个机器人上的所有舵机关节,控制板必须根据每个舵机关节ID的不同,按顺序逐个地发送运动控制命令,然后等待舵机关节应答,若机器人的舵机个数较多,则会导致整个机器人在一个动作帧中所有舵机关节的开始运动时间一致性较差,同时,这种延时也会耗费处理器资源,从而导致整个系统的延时,减弱了系统的反应速度。
发明内容
本申请实施例提供一种舵机控制方法、舵机控制装置、终端及存储介质,可以减少多关节机器人的关节运动的时延,提高其关节开始运动时间的一致性,从而达到高速运动控制应用场景的要求。
本申请实施例第一方面提供了一种舵机控制方法,应用于多关节机器人,所述多关节机器人包括N个舵机总线接口以及与N个所述舵机总线接口一一对应连接的N个舵机组;其中,每个舵机组包括至少一个舵机,N为大于1的整数;所述舵机控制方法包括:
根据预设的接口顺序通过N个所述舵机总线接口依次向N个所述舵机组中的第一个舵机发送舵机控制指令;
在完成每个所述舵机组中第一个舵机的舵机控制指令的发送后,根据所述预设的接口顺序通过N个所述舵机总线接口依次向每个所述舵机组中的下一个舵机发送舵机控制指令,直至完成所述N个舵机组中每个舵机的舵机控制指令的发送。
可选的,所述根据预设的接口顺序通过N个所述舵机总线接口依次向N个所述舵机组中的第一个舵机发送舵机控制指令之前,还包括:
建立N个舵机总线接口与N个舵机组之间的映射关系表。
可选的,所述舵机控制方法还包括:
在完成每个所述舵机组中第一个舵机的舵机控制指令的发送后,根据预设的接口顺序检测N个所述舵机组中的舵机是否返回应答指令,并生成检测结果。
可选的,所述根据预设的接口顺序检测N个所述舵机组中的舵机是否返回应答指令,并生成检测结果,包括:
若所述舵机没有返回应答指令,则检测所述舵机在预设时长内是否返回应答指令;
若所述舵机在预设时长内返回应答指令,则判定异步通信成功。
可选的,所述根据所述预设的接口顺序通过N个所述舵机总线接口依次向每个所述舵机组中的下一个舵机发送舵机控制指令,包括:
若所述舵机组中的下一个舵机为空,则接收所述舵机组中上一个舵机发送的应答指令。
本申请实施例第二方面提供的一种舵机控制装置,应用于多关节机器人,所述多关节机器人包括N个舵机总线接口以及与N个所述舵机总线接口一一对应连接的N个舵机组;其中,每个舵机组包括至少一个舵机,N为大于1的整数;所述舵机控制装置包括:
第一指令发送单元,用于根据预设的接口顺序通过N个所述舵机总线接口依次向N个所述舵机组中的第一个舵机发送舵机控制指令;
第二指令发送单元,用于在完成每个所述舵机组中第一个舵机的舵机控制指令的发送后,根据所述预设的接口顺序通过N个所述舵机总线接口依次向每个所述舵机组中的下一个舵机发送舵机控制指令,直至完成所述N个舵机组中每个舵机的舵机控制指令的发送。
可选的,所述舵机控制装置还包括:
映射单元,用于建立N个舵机总线接口与N个舵机组之间的映射关系表。
可选的,所述舵机控制装置还包括:
应答检测单元,用于在完成每个所述舵机组中第一个舵机的舵机控制指令的发送后,根据预设的接口顺序检测N个所述舵机组中的舵机是否返回应答指令,并生成检测结果。
本申请实施例第三方面提供一种终端,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述方法的步骤。
本申请实施例第四方面提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述方法的步骤。
本申请实施例中,本申请实施例提供了一种舵机控制方法、舵机控制装置、终端及存储介质,其中,多关节机器人包括N个舵机总线接口以及与N个舵机总线接口一一对应连接的N个舵机组,其中,每个舵机组包括至少一个舵机,N为大于1的整数,根据预设的接口顺序通过N个舵机总线接口依次向N个舵机组中的第一个舵机发送舵机控制指令,根据预设的接口顺序通过N个舵机总线接口依次向每个舵机组中的下一个舵机发送舵机控制指令,直至完成N个舵机组中每个舵机的舵机控制指令的发送,减少多关节机器人的关节运动的时延,提高其关节开始运动时间的一致性,从而达到高速运动控制应用场景的要求。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本申请一个实施例提供的多总线异步并行控制拓扑示意图;
图2是本申请实施例提供的一种舵机控制方法的实现流程示意图;
图3是本申请实施例提供的一种舵机控制方法的另一实现流程示意图;
图4是本申请实施例提供的一种舵机控制方法的另一实现流程示意图;
图5是本申请实施例提供的一种舵机控制装置的结构示意图;
图6是本申请实施例提供的另一种舵机控制装置的结构示意图;
图7是本申请实施例提供的终端的结构示意图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。基于本申请的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
为了说明本申请的技术方案,下面通过具体实施例来进行说明。
本申请实施例第一方面提供了一种舵机控制方法,应用于多关节机器人,所述多关节机器人包括N个舵机总线接口以及与N个所述舵机总线接口一一对应连接的N个舵机组;其中,每个舵机组包括至少一个舵机,N为大于1的整数,通过N个舵机总线接口与N个舵机组一一对应,建立一个多总线异步并行控制架构。控制板上的可编程控制芯片支持多路独立的通信DMA(直接存储器访问),该通信DMA可以包括如UART、IIC、SPI等通信DMA,且支持DMA接收完毕相关中断。
例如,图1为本申请一个实施例提供的多总线异步并行控制拓扑图,参见图1所示,控制板上设有4路独立UART的DMA(Port1、Port2、Port3、Port4),从而有别于传统单Port单总线技术,它有4路独立的Port,根据机器人整机产品舵机关节ID顺序定义的不同,把舵机关节分为了4组,四个舵机组分别挂接在控制板的4路独立的舵机总线接口(通信Port)上,每个Port上的舵机关节在通信物理线上相互连通,控制板通过舵机ID对舵机进行寻址与通信,每个Port之间的舵机关节在通信物理线上不连通,“ID1”表示舵机号码为ID1的舵机,依次类推。在本实施例中,利用DMA独立传输不占用CPU(处理器)资源,可以通过多总线(例如4路DMA)异步并行控制,以完成一帧动作
在本实施例中,参见图2所示,舵机控制方法步骤10和步骤20。
步骤10:根据预设的接口顺序通过N个所述舵机总线接口依次向N个所述舵机组中的第一个舵机发送舵机控制指令。
在本实施例中,根据预设的接口顺序通过N个所述舵机总线接口依次向N个舵机组中每个舵机组发送一个舵机控制指令为一次舵机指令并发操作,每一次舵机指令并发操作中的指令发送顺序不变,该预设的接口顺序即为指令发送顺序,在执行舵机指令并发操作时,按照预设的接口顺序向N个所述舵机总线接口依次向N个舵机组中每个舵机组发送一个舵机控制指令。
步骤20:在完成每个所述舵机组中第一个舵机的舵机控制指令的发送后,根据所述预设的接口顺序通过N个所述舵机总线接口依次向每个所述舵机组中的下一个舵机发送舵机控制指令,直至完成所述N个舵机组中每个舵机的舵机控制指令的发送。
在本实施例中,在完成第一次舵机指令并发操作后,继续执行第二次舵机指令并发操作,直至完成舵机组中所有舵机的舵机控制指令的发送,具体的,若舵机组中的最后一个舵机已经接收到舵机控制指令,则在下一次执行舵机指令并发操作时直接跳过该舵机组。
在一个实施例中,参见图3所示,所述根据预设的接口顺序通过N个所述舵机总线接口依次向N个所述舵机组中的第一个舵机发送舵机控制指令之前,还包括步骤30。
步骤30:建立N个舵机总线接口与N个舵机组之间的映射关系表。
在本实施例中,首先建立N个舵机总线接口与N个舵机组之间的映射关系表,一个舵机总线接口对应一个舵机组,例如,参见图1所示,图1中包括17个舵机,每个舵机具有其独特的ID号,将4个舵机总线接口(通信Port)与17个舵机关节做一个映射,并确定每个舵机组中的舵机的连接顺序,表1为基于图1所示的多总线异步并行控制拓扑图建立的舵机总线接口与舵机映射关系表。
表1:舵机总线接口与舵机映射关系表
在一个实施例中,舵机总线接口与舵机映射关系表还可以包括机器人肢体的关节与通信Port的映射关系。
参见表1所示,在本实施例中,与通信Port1连接的舵机组1包括舵机ID 2、舵机ID3,通信Port1挂载的舵机数量为2,该舵机组1用于控制机器人肢体的右手;与通信Port2连接的舵机组2包括舵机ID 1、舵机ID7、舵机ID 8、舵机ID9、舵机ID 10以及舵机ID11,通信Port2挂载的舵机数量为6,该舵机组2用于控制机器人肢体的右脚;与通信Port3连接的舵机组3包括舵机ID 5、舵机ID6,通信Port3挂载的舵机数量为2,该舵机组3用于控制机器人肢体的左手;与通信Port4连接的舵机组4包括舵机ID 4、舵机ID12、舵机ID 13、舵机ID14、舵机ID 15、舵机ID 16以及舵机ID17,通信Port2挂载的舵机数量为6,该舵机组2用于控制机器人肢体的右脚。
在一个实施例中,参见图4所示,所述舵机控制方法还包括步骤40。
步骤40:在完成每个所述舵机组中第一个舵机的舵机控制指令的发送后,根据预设的接口顺序检测N个所述舵机组中的舵机是否返回应答指令,并生成检测结果。
具体的,在本实施中,在完成每个所述舵机组中第一个舵机的舵机控制指令的发送后,根据预设的接口顺序检测N个所述舵机组中的舵机是否返回应答指令(ACK),若检测到该应答指令,则说明该舵机正常,异步通信完整且成功。
进一步的,在一个实施例中,在每一次舵机指令并发操作之后,在执行下一次舵机指令并发操作中的每个舵机控制指令发送之前,均检测该舵机组中是否返回应答指令,并生成检测结果。
在一个实施例中,还可以根据舵机总线接口与舵机映射关系表确定挂载舵机数量最多舵机总线接口以及其挂载的舵机数量(Max_Nums),例如,参见表1所示,通信Port4挂载的舵机数量最多,此时,令Max_Nums=Port4_Nums=7,Port4_Nums为通信Port4挂载的舵机数量。即在控制机器人的一帧动作时,需要执行7次舵机指令并发操作,因此,可以根据图1所示的多总线异步并行控制拓扑图以及表1中的舵机总线接口与舵机映射关系表生成的多总线异步并行控制实现机器人一帧动作的示意表,参见表2所示。
在本实施例中,通过确定Max_Nums的数量值,从而将机器人的一帧动作所需要的17个舵机的舵机控制指令的发送分成了时间上连续的Max_Nums+1次舵机指令并发操作。
表2:多总线异步并行控制示意表(一帧)
参见表2所示,本实施例中预设的接口顺序可以为Port1->Port2->Port3->Port4(从上到下),而每个舵机组中的舵机ID的顺序是从左到右。第1次舵机指令并发操作中,控制板先给Port1上的ID2舵机通过DMA发送舵机控制指令(CMD),此时舵机ID2会经过一个时间间隔(Delay)才会将应答指令(ACK)发送至控制板,然而,在本实施例中,无需等待舵机ID2返回的应答指令,而是直接运行到下一个Port2,将舵机ID1的CMD发送至舵机ID1,舵机ID1同样也会经过一个Delay的时间才会返回应答指令至控制板,此时立刻通过通信接口Port3将舵机ID5的CMD发送至舵机ID5中,然而接着通过通信接口Port4将舵机ID4的CMD发送至舵机ID4,此时完成第一次舵机指令并发操作,第1次并发通信结束。
在一个实施例中,所述根据预设的接口顺序检测N个所述舵机组中的舵机是否返回应答指令,并生成检测结果,包括:
若所述舵机没有返回应答指令,则检测所述舵机在预设时长内是否返回应答指令,并生成检测结果。
在本实施例中,在完成第一次舵机指令并发操作之后,在进行第二次舵机指令操作之前,检查舵机组中的舵机是否返回应答指令,若舵机没有返回应答指令,则检测舵机在预设时长内是否返回应答指令,若所述舵机在预设时长内返回应答指令,则判定异步通信成功。
在一个实施例中,参见表2所示,在通过Port1向舵机组1中的舵机ID3发送舵机控制指令之前,先查询上一次舵机指令并发操作(第1次并发)中舵机ID2是否返回应答指令(ACK),若接收到舵机ID2返回的应答指令,则表示该ACK是在第1次舵机指令并发操作中的Port2到Port4通信过程中接收到的,异步通信完整且成功。此时立刻开始执行第2次舵机指令并发操作,即通过通信接口Port1对舵机ID3发送CMD,然后检查上一次舵机指令并发操作中是否接收到舵机ID1返回的应答指令,若接收到舵机ID1返回的应答指令,则表示该ACK是在Port2、Port3、Port4、Port1的指令发送过程中接收的。若接收到舵机ID1返回的应答指令,则立刻执行第2次舵机指令并发操作中的通过Port2向舵机ID7发送舵机控制指令,以此类推,直至完成舵机组中每个舵机的舵机控制指令的发送。
在一个实施例中,若在第1次舵机执行并发操作结束后,检查舵机组1中的舵机ID2是否返回应答指令时,没有接收到舵机ID2返回的应答指令,则等待预设时长Timeout=Delay-(Port2开始到Port4结束所经历的时间),Delay为等待舵机关节应答的预设时间,在预设时长Timeout时间内,若接收到应答指令(ACK),则立刻执行开始第2次舵机指令并发操作,即向挂载于Port1的舵机ID3发送CMD。如果等待超时了还没收到ACK,则认为此次异步通信失败,接着就开始执行第2次舵机指令并发操作,即向挂载于Port1的舵机ID3发送CMD。以此类推,直到执行完第Max_Nums次(例如,表2中的Max_Nums=7)舵机指令并发操作后,到了第Max_Nums+1次并发,然而第Max_Nums+1次并发不任何发送CMD,此时已经向所有的舵机发送过CMD了,该并发只是用来检测第Max_Nums次并发后,舵机ID17是否返回ACK,以确定舵机ID17的异步通信是否完整且成功。
在一个实施例中,所述根据所述预设的接口顺序通过N个所述舵机总线接口依次向每个所述舵机组中的下一个舵机发送舵机控制指令,包括:
若所述舵机组中的下一个舵机为空,则接收所述舵机组中上一个舵机发送的应答指令。
在本实施例中,若确定舵机组的下一个舵机为空,即当前舵机指令并发操作时,舵机组中的最后一个舵机在上一次舵机指令并发操作时已经接收到舵机控制指令,则无需向该舵机组发送舵机控制指令,该舵机为当前舵机组中最后一个接收舵机控制指令的舵机,则接收该舵机组中上一个舵机返回的应答指令,并在当前帧动作内停止向该舵机组发送舵机控制指令。
进一步的,若检测到舵机组中上一个舵机没有返回应答指令,则判定该舵机组中最后一个舵机异步通信失败。
在本实施例中,通过利用等待舵机返回应答指令的空闲时间(Delay),向其他通信Port发送舵机控制指令,例如表2中,减小了从最先ID2舵机开始运动到最后ID17舵机开始运动的时间差,减少了多关节机器人的关节运动的时延,提高了CPU的时间利用率,提高了关节开始运动时间的一致性,达到了高速运动控制应用场景的要求。
在关节开始运动时间的一致性性能上,本实施例在实测过程中相比单总线同步控制实现方式能提升约2.5倍。具体的,控制板上设置的通信Port越多,分布在每个Port上的舵机数量越均匀,对提高关节开始运动时间的一致性就越有利。
本申请实施例第二方面提供的一种舵机控制装置,应用于多关节机器人,所述多关节机器人包括N个舵机总线接口以及与N个所述舵机总线接口一一对应连接的N个舵机组;其中,每个舵机组包括至少一个舵机,N为大于1的整数。
在本实施例中,参见图5所示,所述舵机控制装置包括:
第一指令发送单元501,用于根据预设的接口顺序执行舵机控制指令并发操作,通过N个所述舵机总线接口依次向N个所述舵机组中的第一个舵机发送舵机控制指令;
第二指令发送单元502,用于在完成每个所述舵机组中第一个舵机的舵机控制指令的发送后,根据所述预设的接口顺序通过N个所述舵机总线接口依次向每个所述舵机组中的下一个舵机发送舵机控制指令,直至完成所述N个舵机组中每个舵机的舵机控制指令的发送。
在本实施例中,第一指令发送单元根据预设的接口顺序通过N个所述舵机总线接口依次向N个舵机组中每个舵机组发送一个舵机控制指令为一次舵机指令并发操作,每一次舵机指令并发操作中的指令发送顺序不变,该预设的接口顺序即为指令发送顺序,在执行舵机指令并发操作时,按照预设的接口顺序向N个所述舵机总线接口依次向N个舵机组中每个舵机组发送一个舵机控制指令。在完成第一次舵机指令并发操作后,第二指令发送单元继续执行第二次舵机指令并发操作,直至完成舵机组中所有舵机的舵机控制指令的发送,具体的,若舵机组中的最后一个舵机已经接收到舵机控制指令,则在下一次执行舵机指令并发操作时直接跳过该舵机组。
在一个实施例中,参见图6所示,所述舵机控制装置还包括:
映射单元503,用于建立N个舵机总线接口与N个舵机组之间的映射关系表。
在本实施例中,映射单元建立N个舵机总线接口与N个舵机组之间的映射关系表,一个舵机总线接口对应一个舵机组,例如,参见图1所示,图1中包括17个舵机,每个舵机具有其独特的ID号,将4个舵机总线接口(通信Port)与17个舵机关节做一个映射,并确定每个舵机组中的舵机的连接顺序。
在一个实施例中,参见图6所示,所述舵机控制装置还包括:
应答检测单元504,用于在完成每个所述舵机组中第一个舵机的舵机控制指令的发送后,根据预设的接口顺序检测N个所述舵机组中的舵机是否返回应答指令,并生成检测结果。
具体的,在本实施中,应答检测单元504在第一指令发送单元501或者第二指令发送单元502完成每个所述舵机组中第一个舵机的舵机控制指令的发送后,根据预设的接口顺序检测N个所述舵机组中的舵机是否返回应答指令(ACK),若检测到该应答指令,则说明该舵机正常,异步通信完整且成功。
进一步的,在一个实施例中,在每一次舵机指令并发操作之后,在执行下一次舵机指令并发操作中的每个舵机控制指令发送之前,均检测该舵机组中是否返回应答指令,并生成检测结果。
本申请实施例中,本申请实施例提供了一种舵机控制方法、舵机控制装置、终端及存储介质,其中,所述多关节机器人包括N个舵机总线接口以及与N个所述舵机总线接口一一对应连接的N个舵机组;其中,每个舵机组包括至少一个舵机,N为大于1的整数,根据预设的接口顺序执行舵机控制指令并发操作,通过N个所述舵机总线接口依次向N个所述舵机组中的第一个舵机发送舵机控制指令;在完成每个所述舵机组中第一个舵机的舵机控制指令的发送后,根据所述预设的接口顺序通过N个所述舵机总线接口依次向每个所述舵机组中的下一个舵机发送舵机控制指令,直至完成所述N个舵机组中每个舵机的舵机控制指令的发送,从而减少多关节机器人的关节运动的时延,提高其关节开始运动时间的一致性,达到高速运动控制应用场景的要求。
需要说明的是,为描述的方便和简洁,上述描述的舵机控制装置500的具体工作过程,可以参考图2至图4所述方法的对应过程,在此不再赘述。
如图7所示,为本申请实施例提供的一种终端的示意图。该终端6可以包括:处理器60、存储器61以及存储在所述存储器61中并可在所述处理器60上运行的计算机程序62,例如实现舵机控制方法的程序。所述处理器60执行所述计算机程序62时实现上述各个舵机控制方法实施例中的步骤,例如图2所示的步骤201至204。或者,所述处理器60执行所述计算机程序62时实现上述各装置实施例中各模块/单元的功能,例如图5所示单元501至504的功能。
所述计算机程序可以被分割成一个或多个模块/单元,所述一个或者多个模块/单元被存储在所述存储器61中,并由所述处理器60执行,以完成本申请。所述一个或多个模块/单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述所述计算机程序在所述终端中的执行过程。例如,所述计算机程序可以被分割成检测单元、控制单元、采集单元和生成单元,各单元具体功能如下:
第一指令发送单元501,用于根据预设的接口顺序执行舵机控制指令并发操作,通过N个所述舵机总线接口依次向N个所述舵机组中的第一个舵机发送舵机控制指令;
第二指令发送单元502,用于在完成每个所述舵机组中第一个舵机的舵机控制指令的发送后,根据所述预设的接口顺序通过N个所述舵机总线接口依次向每个所述舵机组中的下一个舵机发送舵机控制指令,直至完成所述N个舵机组中每个舵机的舵机控制指令的发送。
所述终端可以是人形机器人、桌上型计算机、掌上电脑及云端服务器等智能设备。所述终端可包括,但不仅限于,处理器60、存储器61。本领域技术人员可以理解,图7仅仅是终端的示例,并不构成对终端的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述终端还可以包括输入输出设备、网络接入设备、总线等。
所称处理器60可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字直线位移舵机的位置标定器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
所述存储器61可以是所述终端的内部存储单元,例如终端的硬盘或内存。所述存储器61也可以是所述终端的外部存储设备,例如所述终端上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。进一步地,所述存储器61还可以既包括所述终端的内部存储单元也包括外部存储设备。所述存储器61用于存储所述计算机程序以及所述终端所需的其他程序和数据。所述存储器61还可以用于暂时地存储已经输出或者将要输出的数据。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本申请的保护范围。上述系统中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
在本申请所提供的实施例中,应该理解到,所揭露的装置/终端和方法,可以通过其它的方式实现。例如,以上所描述的装置/终端实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通讯连接可以是通过一些接口,装置或单元的间接耦合或通讯连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(Read-Only Memory,ROM)、随机存取存储器(RandomAccess Memory,RAM)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。
以上所述实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围,均应包含在本申请的保护范围之内。
Claims (10)
1.一种舵机控制方法,应用于多关节机器人,其特征在于,所述多关节机器人包括N个舵机总线接口以及与N个所述舵机总线接口一一对应连接的N个舵机组;其中,每个舵机组包括至少一个舵机,N为大于1的整数;所述舵机控制方法包括:
根据预设的接口顺序通过N个所述舵机总线接口依次向N个所述舵机组中的第一个舵机发送舵机控制指令;
在完成每个所述舵机组中第一个舵机的舵机控制指令的发送后,根据所述预设的接口顺序通过N个所述舵机总线接口依次向每个所述舵机组中的下一个舵机发送舵机控制指令,直至完成所述N个舵机组中每个舵机的舵机控制指令的发送。
2.如权利要求1所述的舵机控制方法,其特征在于,所述根据预设的接口顺序通过N个所述舵机总线接口依次向N个所述舵机组中的第一个舵机发送舵机控制指令之前,还包括:
建立N个舵机总线接口与N个舵机组之间的映射关系表。
3.如权利要求1所述的舵机控制方法,其特征在于,所述舵机控制方法还包括:
在完成每个所述舵机组中第一个舵机的舵机控制指令的发送后,根据预设的接口顺序检测N个所述舵机组中的舵机是否返回应答指令,并生成检测结果。
4.如权利要求3所述的舵机控制方法,其特征在于,所述根据预设的接口顺序检测N个所述舵机组中的舵机是否返回应答指令,并生成检测结果,包括:
若所述舵机没有返回应答指令,则检测所述舵机在预设时长内是否返回应答指令;
若所述舵机在预设时长内返回应答指令,则判定异步通信成功。
5.如权利要求1所述的舵机控制方法,其特征在于,所述根据所述预设的接口顺序通过N个所述舵机总线接口依次向每个所述舵机组中的下一个舵机发送舵机控制指令,包括:
若所述舵机组中的下一个舵机为空,则接收所述舵机组中上一个舵机发送的应答指令。
6.一种舵机控制装置,应用于多关节机器人,其特征在于,所述多关节机器人包括N个舵机总线接口以及与N个所述舵机总线接口一一对应连接的N个舵机组;其中,每个舵机组包括至少一个舵机,N为大于1的整数;所述舵机控制装置包括:
第一指令发送单元,用于根据预设的接口顺序通过N个所述舵机总线接口依次向N个所述舵机组中的第一个舵机发送舵机控制指令;
第二指令发送单元,用于在完成每个所述舵机组中第一个舵机的舵机控制指令的发送后,根据所述预设的接口顺序通过N个所述舵机总线接口依次向每个所述舵机组中的下一个舵机发送舵机控制指令,直至完成所述N个舵机组中每个舵机的舵机控制指令的发送。
7.如权利要求6所述的舵机控制装置,其特征在于,所述舵机控制装置还包括:
映射单元,用于建立N个舵机总线接口与N个舵机组之间的映射关系表。
8.如权利要求6所述的舵机控制装置,其特征在于,所述舵机控制装置还包括:
应答检测单元,用于在完成每个所述舵机组中第一个舵机的舵机控制指令的发送后,根据预设的接口顺序检测N个所述舵机组中的舵机是否返回应答指令,并生成检测结果。
9.一种终端,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1-7任一项所述方法的步骤。
10.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1-7任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010708694.XA CN112060076A (zh) | 2020-07-22 | 2020-07-22 | 一种舵机控制方法、舵机控制装置、终端及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010708694.XA CN112060076A (zh) | 2020-07-22 | 2020-07-22 | 一种舵机控制方法、舵机控制装置、终端及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112060076A true CN112060076A (zh) | 2020-12-11 |
Family
ID=73656605
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010708694.XA Pending CN112060076A (zh) | 2020-07-22 | 2020-07-22 | 一种舵机控制方法、舵机控制装置、终端及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112060076A (zh) |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050107897A1 (en) * | 2003-11-14 | 2005-05-19 | Callaghan David M. | Dynamic browser-based industrial automation interface system and method |
CN102914982A (zh) * | 2011-08-05 | 2013-02-06 | 同济大学 | 一种机器人的分布式控制系统总线结构 |
CN103753535A (zh) * | 2014-01-08 | 2014-04-30 | 深圳市优必选科技有限公司 | 一种机器人单总线模块化数字舵机控制装置及控制方法 |
CN106292369A (zh) * | 2016-09-09 | 2017-01-04 | 南京玛锶腾智能科技有限公司 | 舵机的分布式控制系统及方法 |
CN206123639U (zh) * | 2016-09-14 | 2017-04-26 | 杭州海灵智电科技有限公司 | 17自由度总线舵机人形机器人 |
CN107160399A (zh) * | 2017-06-23 | 2017-09-15 | 安徽师范大学 | 一种无线控制舵机互动人形机器人 |
CN108021076A (zh) * | 2018-01-24 | 2018-05-11 | 华馨晶贸易(深圳)有限公司 | 一种串行分布式模块通信及控制系统及方法 |
-
2020
- 2020-07-22 CN CN202010708694.XA patent/CN112060076A/zh active Pending
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050107897A1 (en) * | 2003-11-14 | 2005-05-19 | Callaghan David M. | Dynamic browser-based industrial automation interface system and method |
CN102914982A (zh) * | 2011-08-05 | 2013-02-06 | 同济大学 | 一种机器人的分布式控制系统总线结构 |
CN103753535A (zh) * | 2014-01-08 | 2014-04-30 | 深圳市优必选科技有限公司 | 一种机器人单总线模块化数字舵机控制装置及控制方法 |
CN106292369A (zh) * | 2016-09-09 | 2017-01-04 | 南京玛锶腾智能科技有限公司 | 舵机的分布式控制系统及方法 |
CN206123639U (zh) * | 2016-09-14 | 2017-04-26 | 杭州海灵智电科技有限公司 | 17自由度总线舵机人形机器人 |
CN107160399A (zh) * | 2017-06-23 | 2017-09-15 | 安徽师范大学 | 一种无线控制舵机互动人形机器人 |
CN108021076A (zh) * | 2018-01-24 | 2018-05-11 | 华馨晶贸易(深圳)有限公司 | 一种串行分布式模块通信及控制系统及方法 |
Non-Patent Citations (1)
Title |
---|
杨斌: "仿人机器人分布式控制系统主控层的研究与实现", 《中国优秀硕士学位论文全文数据库 信息科技辑》 * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20070288220A1 (en) | Method and Device for Simulating an Automation System | |
CN111901164B (zh) | Ocp nic网卡的适配控制方法、装置、设备及系统 | |
JPS6224801B2 (zh) | ||
CN112147927B (zh) | 一种双通道总线通信的多轴运动控制系统 | |
CN116627888B (zh) | 硬件计算模块、设备、方法、电子设备及存储介质 | |
WO2019072218A1 (zh) | 信号转换方法和装置、家庭总线系统hbs电路和用户设备 | |
CN108959136A (zh) | 基于spi的数据传输加速装置、系统及数据传输方法 | |
CN111767995B (zh) | 运算方法、装置及相关产品 | |
CN114691578A (zh) | 一种高性能串行通信方法、系统、介质、设备及终端 | |
CN112060076A (zh) | 一种舵机控制方法、舵机控制装置、终端及存储介质 | |
CN102708079B (zh) | 应用于微控制器的控制数据传输的方法及系统 | |
CN112579495A (zh) | Gpio控制器 | |
US20230153153A1 (en) | Task processing method and apparatus | |
CN103095739A (zh) | 机柜服务器系统及其节点通信方法 | |
US20230169031A1 (en) | Method and device for constructing communication topology structure on basis of multiple processing nodes | |
CN113556242B (zh) | 一种基于多处理节点来进行节点间通信的方法和设备 | |
CN104156332A (zh) | 基于外部pci-e连接的高性能并行计算方法 | |
CN112615739B (zh) | 一种多主机应用环境下ocp3.0网卡的适配方法及系统 | |
JP2007536659A (ja) | 自動化システムのシミュレーションのための方法及び装置 | |
CN106407155A (zh) | 用于开关磁阻电机控制的基于dsp和fpga的双核控制器及方法 | |
CN106484642A (zh) | 一种具有运算能力的直接存储器访问控制器 | |
CN114690692B (zh) | 一种基于移位寄存器的高速插补脉冲输出方法及装置 | |
CN116701275B (zh) | 终端设备扩展设备、方法、装置及总线标准设备 | |
CN112835837B (zh) | 建立数据连接的方法、相关装置及计算机程序产品 | |
CN111814680B (zh) | 一种基于fpga的多路axi总线的控制方法 |
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: 20201211 |
|
RJ01 | Rejection of invention patent application after publication |