舵机的分布式控制系统及方法与流程

文档序号:12360888阅读:585来源:国知局
舵机的分布式控制系统及方法与流程

本发明涉及自动化机器人技术领域,尤其涉及一种舵机的分布式控制系统及方法。



背景技术:

舵机最早应用于船舶上,由于其转角可连续控制,被广泛应用于智能小车及机器人等领域。大多数舵机控制系统采用的是集中式控制方法,即通过一个控制器产生一路或多路PWM信号驱动舵机转动。控制器需要执行路径规划,计算每个舵机的目标位置、运动速度等控制参数,并产生相应的PWM信号驱动舵机转动,同时需要采集各路舵机的反馈信号方便实时跟踪调节,使各舵机以最佳性能达到指定的目标位置。

但是,集中式控制方法存在如下不足:1.当舵机数量较多时系统控制难度增加、接线复杂;2.当舵机安装位置远时,控制系统抗干扰能力降低等;3.控制系统的控制器处理所有的控制功能,占用资源较多、负担重;4.控制系统控制的舵机数量有限,不易扩展,当舵机数量比较多时,无法满足要求。



技术实现要素:

发明目的:本发明针对现有技术存在的问题,提供一种舵机的分布式控制系统。

技术方案:本发明所述的舵机的分布式控制系统包括:

上位机,用于当上位机对舵机需要进行控制时,向通讯控制器发送舵机控制参数和对应的通讯ID,还用于当上位机需要获取舵机状态时,向通讯控制器发送舵机状态获取指令和对应的通讯ID,以及用于在接收到舵机状态数据后根据通讯ID更新舵机状态;

通讯控制器,设有若干个通讯端口,用于根据通讯ID映射出目的端口ID和目的舵机ID号,并将目的舵机ID号和上位机发送的数据发送至映射出的目的端口ID对应的通讯端口,还用于将舵机返回的舵机状态数据和对应的通讯ID上传至上位机;

若干组舵机,一组舵机通过一个通讯端口连接至通讯控制器,舵机用于根据通讯控制器发送的目的舵机ID号进行匹配,当匹配成功时根据舵机控制参数进行舵机控制,还用于根据通讯控制器发送的舵机状态获取指令返回当前状态数据。

进一步的,所述上位机包括:

路径规划单元,用于对需要控制的舵机执行路径规划;

指令生成单元,用于对需要获取状态的舵机生成状态获取指令;

控制参数生成单元,用于根据规划的路径生成舵机控制参数;

数据包生成单元,用于将控制参数生成单元生成的舵机控制参数,加上其对应的通讯ID生成数据包,还用于将指令生成单元生成的状态获取指令,加上其对应的通讯ID生成数据包;

数据传输单元,用于将数据包生成单元生成的数据包发送至通讯控制器,还用于接收通讯控制器返回的舵机状态数据和对应的通讯ID;

匹配单元,用于将数据传输单元接收的通讯ID,与向通讯控制器发送舵机状态获取指令对应的通讯ID进行匹配,若一致,则匹配成功,否则匹配失败;

状态更新的单元,用于在匹配单元匹配成功时,更新通讯ID对应的舵机的状态。

进一步的,所述通讯控制器包括:

第一传输单元,用于上位机和通讯控制器的数据传输;

第一映射单元,用于从第一传输单元接收的数据包中,提取出通讯ID,并根据通讯ID映射出目的端口ID和目的舵机ID号;

第一数据包生成单元,用于将上位机发送的数据和目的舵机ID号生成数据包,并发送至第二数据传输单元;

第二传输单元,用于将第一数据包生成单元的数据包发送至映射出的目的端口ID对应的通讯端口,还用于接收舵机通过通讯端口返回的舵机状态数据和对应的舵机ID;

第二映射单元,用于将第二传输单元接收的舵机ID和接收时采用的通讯端口的端口ID,映射为通讯ID;

第二数据包生成单元,用于将映射的通讯ID和接收的舵机状态数据打包生成数据包,并发送至第一传输单元。

进一步的,所述舵机包括:

数据传输单元,用于接收通讯控制器发送的数据,以及向通讯控制器返回舵机状态数据和对应的舵机ID;

匹配单元,用于从接收的数据中提取出目的舵机ID号,并与当前舵机的ID号进行匹配,若一致,则匹配成功,否则匹配失败;

舵机控制单元,用于在匹配单元匹配成功,且接收的数据是舵机控制参数时,根据该舵机控制参数对舵机进行控制;

舵机状态获取单元,用于在匹配单元匹配成功,且接收的数据是舵机状态获取指令时,将当前舵机的状态数据发送至数据传输单元。

进一步的,所述上位机通过RS422连接通讯控制器,每组舵机通过一个RS485总线连接通讯控制器。

本发明所述的舵机的分布式控制方法包括步骤:

S1、当上位机对舵机需要进行控制时,向通讯控制器发送舵机控制参数和对应的通讯ID;

S2、通讯控制器根据通讯ID映射出目的端口ID和目的舵机ID号,并将目的舵机ID号和上位机发送的数据发送至映射出的目的端口ID对应的通讯端口,其中,通讯控制器设有若干个通讯端口;

S3、舵机根据通讯控制器发送的目的舵机ID号进行匹配,当匹配成功时根据舵机控制参数进行舵机控制,其中,舵机一共有若干组,一组舵机通过一个通讯端口连接至通讯控制器;

S4、当上位机需要获取舵机状态时,向通讯控制器发送舵机状态获取指令和对应的通讯ID;

S5、通讯控制器根据通讯ID映射出目的端口ID和目的舵机ID号,并将目的舵机ID号和上位机发送的数据发送至映射出的目的端口ID对应的通讯端口;

S6、舵机根据通讯控制器发送的目的舵机ID号进行匹配,当匹配成功时根据通讯控制器发送的舵机状态获取指令返回当前状态数据;

S7、通讯控制器将舵机返回的舵机状态数据和对应的通讯ID上传至上位机;

S8、上位机接收到舵机状态数据后根据通讯ID更新舵机状态。

进一步的,步骤S1具体包括:

S11、当上位机对舵机需要进行控制时,对需要控制的舵机执行路径规划;

S12、根据规划的路径生成舵机控制参数;

S13、将生成的舵机控制参数加上其对应的通讯ID生成数据包;

S14、将数生成的数据包发送至通讯控制器;

步骤S4具体包括:

S41、当上位机需要获取舵机状态时,生成舵机状态获取指令;

S42、将舵机状态获取指令和对应的通讯ID生成数据包;

S43、将数生成的数据包发送至通讯控制器;

步骤S8具体包括:

S81、将接收的通讯ID,与向通讯控制器发送舵机状态获取指令时对应的通讯ID进行匹配,若一致,则匹配成功,否则匹配失败;

S82、在匹配成功时,更新通讯ID对应的舵机的状态。

进一步的,步骤S2具体包括:

S21、通讯控制器接收上位机传输的数据;

S22、从接收的数据包中,提取出通讯ID,并根据通讯ID映射出目的端口ID和目的舵机ID号;

S23、将上位机发送的舵机控制参数和目的舵机ID号生成数据包;

S24、将生成的数据包发送至映射出的目的端口ID对应的通讯端口;

步骤S5具体包括:

S51、通讯控制器接收上位机传输的数据;

S52、从接收的数据包中,提取出通讯ID,并根据通讯ID映射出目的端口ID和目的舵机ID号;

S53、将上位机发送的舵机状态获取指令和目的舵机ID号生成数据包;

S54、将生成的数据包发送至映射出的目的端口ID对应的通讯端口;

步骤S7具体包括:

S71、通讯控制器接收舵机通过通讯端口返回的舵机状态数据和对应的舵机ID;

S72、通讯控制器将接收的舵机ID和接收时采用的通讯端口的端口ID,映射为通讯ID;

S73、通讯控制器将映射的通讯ID和接收的舵机状态数据打包生成数据包,并发送至上位机。

进一步的,步骤S3具体包括:

S31、舵机接收通讯控制器发送的数据;

S32、舵机从接收的数据中提取出目的舵机ID号,并与当前舵机的ID号进行匹配,若一致,则匹配成功,否则匹配失败;

S33、在匹配成功,且接收的数据是舵机控制参数时,根据该舵机控制参数对舵机进行控制;

步骤S6具体包括:

S61、舵机接收通讯控制器发送的数据;

S62、舵机从接收的数据中提取出目的舵机ID号,并与当前舵机的ID号进行匹配,若一致,则匹配成功,否则匹配失败;

S63、在匹配成功,且接收的数据是舵机状态获取指令时,将当前舵机的状态数据发送至数据传输单元。

进一步的,所述上位机通过RS422连接通讯控制器,每组舵机通过一个RS485总线连接通讯控制器。

有益效果:本发明与现有技术相比,其显著优点是:

1.控制难度低、接线简单;

2.传输距离远、抗干扰能力强;

3.上位机被占资源少,负担轻;

4.可控制舵机数量多且易于扩展;

5.中继成本低。

附图说明

图1是本发明提供的舵机的分布式控制系统的一个实施例的系统框图;

图2是图1中上位机的单元示意图;

图3是图1中通讯控制器的单元示意图;

图4是图1中舵机的单元示意图;

图5是本发明提供的舵机的分布式控制方法的一个实施例的流程示意图;

图6是舵机控制流程示意图;

图7是舵机状态数据获取的流程示意图。

具体实施方式

如图1所示,本实施例的舵机的分布式控制系统包括:上位机、通讯控制器和若干组舵机(图中有三组,每组有N个舵机)。上位机通过RS422连接通讯控制器,每组舵机通过一个RS485总线连接通讯控制器。其中,上位机用于当上位机对舵机需要进行控制时,向通讯控制器发送舵机控制参数和对应的通讯ID,还用于当上位机需要获取舵机状态时,向通讯控制器发送舵机状态获取指令和对应的通讯ID,以及用于在接收到舵机状态数据后根据通讯ID更新舵机状态;通讯控制器设有若干个通讯端口,用于根据通讯ID映射出目的端口ID和目的舵机ID号,并将目的舵机ID号和上位机发送的数据发送至映射出的目的端口ID对应的通讯端口,还用于将舵机返回的舵机状态数据和对应的通讯ID上传至上位机;一组舵机通过一个通讯端口连接至通讯控制器,舵机用于根据通讯控制器发送的目的舵机ID号进行匹配,当匹配成功时根据舵机控制参数进行舵机控制,还用于根据通讯控制器发送的舵机状态获取指令返回当前状态数据。本系统中,上位机并不直接参与舵机的实际控制,而是将舵机的控制由舵机本身的控制电路独立实现,所以舵机控制占用上位机的资源大大减少,减轻了上位机的负担。

如图2所示,上位机包括路径规划单元、指令生成单元、控制参数生成单元、数据包生成单元、数据传输单元、匹配单元和状态更新的单元。其中,路径规划单元用于对需要控制的舵机执行路径规划;指令生成单元用于对需要获取状态的舵机生成状态获取指令;控制参数生成单元用于根据规划的路径生成舵机控制参数;数据包生成单元用于将控制参数生成单元生成的舵机控制参数,加上其对应的通讯ID生成数据包(例如,图1中,1-1表示通讯ID,前面的1表示通讯端口的端口ID,后面的1表示舵机ID),还用于将指令生成单元生成的状态获取指令,加上其对应的通讯ID生成数据包;数据传输单元用于将数据包生成单元生成的数据包发送至通讯控制器,还用于接收通讯控制器返回的舵机状态数据和对应的通讯ID;匹配单元用于将数据传输单元接收的通讯ID,与向通讯控制器发送舵机状态获取指令对应的通讯ID进行匹配,若一致,则匹配成功,否则匹配失败;状态更新的单元用于在匹配单元匹配成功时,更新通讯ID对应的舵机的状态,匹配失败时丢弃数据。

如图3所示,通讯控制器包括第一传输单元、第一映射单元、第一数据包生成单元、第二传输单元、第二映射单元、第二数据包生成单元。其中,第一传输单元用于上位机和通讯控制器的数据传输;第一映射单元用于从第一传输单元接收的数据包中,提取出通讯ID,并根据通讯ID映射出目的端口ID和目的舵机ID号(例如,通讯ID为2-1,映射出通讯端口的端口ID为2,目的舵机ID号为1);第一数据包生成单元用于将上位机发送的数据和目的舵机ID号生成数据包,并发送至第二数据传输单元;第二传输单元用于将第一数据包生成单元的数据包发送至映射出的目的端口ID对应的通讯端口,还用于接收舵机通过通讯端口返回的舵机状态数据和对应的舵机ID;第二映射单元用于将第二传输单元接收的舵机ID和接收时采用的通讯端口的端口ID,映射为通讯ID;第二数据包生成单元用于将映射的通讯ID和接收的舵机状态数据打包生成数据包,并发送至第一传输单元。

如图4所示,舵机包括数据传输单元、匹配单元、舵机控制单元、舵机状态获取单元。其中,数据传输单元用于接收通讯控制器发送的数据,以及向通讯控制器返回舵机状态数据和对应的舵机ID;匹配单元用于从接收的数据中提取出目的舵机ID号,并与当前舵机的ID号进行匹配,若一致,则匹配成功,否则匹配失败;舵机控制单元用于在匹配单元匹配成功,且接收的数据是舵机控制参数时,根据该舵机控制参数对舵机进行控制;舵机状态获取单元用于在匹配单元匹配成功,且接收的数据是舵机状态获取指令时,将当前舵机的状态数据发送至数据传输单元。

如图5所示,本实施例的舵机的分布式控制方法包括步骤:

S1、当上位机对舵机需要进行控制时,向通讯控制器发送舵机控制参数和对应的通讯ID。

具体的,步骤S1包括:S11、当上位机对舵机需要进行控制时,对需要控制的舵机执行路径规划;S12、根据规划的路径生成舵机控制参数,包括目标位置、速度等参数;S13、将生成的舵机控制参数加上其对应的通讯ID生成数据包;S14、将数生成的数据包发送至通讯控制器。

例如,如图6所示,当上位机需要对通讯ID为2-1的舵机进行控制时,对该舵机执行路径规划;根据规划的路径生成舵机控制参数;将生成的舵机控制参数加上其对应的通讯ID2-1生成数据包;将数生成的数据包发送至通讯控制器。

S2、通讯控制器根据通讯ID映射出目的端口ID和目的舵机ID号,并将目的舵机ID号和上位机发送的数据发送至映射出的目的端口ID对应的通讯端口,其中,通讯控制器设有若干个通讯端口。

具体的,步骤S2包括:S21、通讯控制器接收上位机传输的数据;S22、从接收的数据包中,提取出通讯ID,并根据通讯ID映射出目的端口ID和目的舵机ID号;S23、将上位机发送的舵机控制参数和目的舵机ID号生成数据包;S24、将生成的数据包发送至映射出的目的端口ID对应的通讯端口。

例如,如图6所示,通讯控制器接收上位机传输的数据;从接收的数据包中,提取出通讯ID 2-1,根据2-1映射出目的端口ID为2和目的舵机ID号为1;将上位机发送的舵机控制参数和目的舵机ID号1生成数据包;将生成的数据包发送至通讯端口2。

S3、舵机根据通讯控制器发送的目的舵机ID号进行匹配,当匹配成功时根据舵机控制参数进行舵机控制,其中,舵机一共有若干组,一组舵机通过一个通讯端口连接至通讯控制器。

具体的,步骤S3具体包括:S31、舵机接收通讯控制器发送的数据;S32、舵机从接收的数据中提取出目的舵机ID号,并与当前舵机的ID号进行匹配,若一致,则匹配成功,否则匹配失败;S33、在匹配成功,且接收的数据是舵机控制参数时,根据该舵机控制参数对舵机进行控制。

例如,如图6所示,舵机2-1接收通讯控制器发送的数据;从接收的数据中提取出目的舵机ID号为1,并与当前舵机的ID号1进行匹配,若一致,则匹配成功,否则匹配失败;在匹配成功,且接收的数据是舵机控制参数时,根据该舵机控制参数对舵机进行控制。

S4、当上位机需要获取舵机状态时,向通讯控制器发送舵机状态获取指令和对应的通讯ID。

具体的,步骤S4具体包括:S41、当上位机需要获取舵机状态时,生成舵机状态获取指令;S42、将舵机状态获取指令和对应的通讯ID生成数据包;S43、将数生成的数据包发送至通讯控制器。

例如,如图7所示,当上位机需要获取通讯ID为2-1的舵机状态时,生成舵机状态获取指令;将舵机状态获取指令和2-1生成数据包;将数生成的数据包发送至通讯控制器。

S5、通讯控制器根据通讯ID映射出目的端口ID和目的舵机ID号,并将目的舵机ID号和上位机发送的数据发送至映射出的目的端口ID对应的通讯端口。

具体的,步骤S5具体包括:S51、通讯控制器接收上位机传输的数据;S52、从接收的数据包中,提取出通讯ID,并根据通讯ID映射出目的端口ID和目的舵机ID号;S53、将上位机发送的舵机状态获取指令和目的舵机ID号生成数据包;S54、将生成的数据包发送至映射出的目的端口ID对应的通讯端口。

例如,如图7所示,通讯控制器接收上位机传输的数据;从接收的数据包中,提取出通讯ID为2-1,根据通讯ID 2-1映射出目的端口ID为2和目的舵机ID号为1;将上位机发送的舵机状态获取指令和目的舵机ID号1生成数据包;将生成的数据包发送至通讯端口2。

S6、舵机根据通讯控制器发送的目的舵机ID号进行匹配,当匹配成功时根据通讯控制器发送的舵机状态获取指令返回当前状态数据。

具体的,步骤S6具体包括:S61、舵机接收通讯控制器发送的数据;S62、舵机从接收的数据中提取出目的舵机ID号,并与当前舵机的ID号进行匹配,若一致,则匹配成功,否则匹配失败,丢弃数据;S63、在匹配成功,且接收的数据是舵机状态获取指令时,将当前舵机的状态数据和当前舵机的ID发送至数据传输单元。

例如,如图7所示,舵机接收通讯控制器发送的数据;从接收的数据中提取出目的舵机ID号为1,与当前舵机的ID号进行匹配,若一致,则匹配成功,否则匹配失败,丢弃数据;在匹配成功,且接收的数据是舵机状态获取指令时,将当前舵机的状态数据和舵机ID号1发送至数据传输单元。

S7、通讯控制器将舵机返回的舵机状态数据和对应的通讯ID上传至上位机。

具体的,步骤S7具体包括:S71、通讯控制器接收舵机通过通讯端口返回的舵机状态数据和对应的舵机ID;S72、通讯控制器将接收的舵机ID和接收时采用的通讯端口的端口ID,映射为通讯ID;S73、通讯控制器将映射的通讯ID和接收的舵机状态数据打包生成数据包,并发送至上位机。

例如,如图7所示,通讯控制器接收舵机通过通讯端口2返回的舵机状态数据和舵机ID 1;通讯控制器将接收的舵机ID 1和接收时采用的通讯端口的端口ID 2,映射为通讯ID 2-1;通讯控制器将映射的通讯ID2-1和接收的舵机状态数据打包生成数据包,并发送至上位机。

S8、上位机接收到舵机状态数据后根据通讯ID更新舵机状态。

具体的,步骤S8具体包括:S81、上位机将接收的通讯ID,与向通讯控制器发送舵机状态获取指令时对应的通讯ID进行匹配,若一致,则匹配成功,否则匹配失败,丢弃数据;S82、在匹配成功时,更新通讯ID对应的舵机的状态。

例如,如图7所示,上位机将接收的通讯ID 2-1,与向通讯控制器发送舵机状态获取指令时对应的通讯ID 2-1进行匹配,若一致,则匹配成功,否则匹配失败;在匹配成功时,更新通讯ID 2-1对应的舵机的状态。

以上所揭露的仅为本发明一种较佳实施例而已,不能以此来限定本发明之权利范围,因此依本发明权利要求所作的等同变化,仍属本发明所涵盖的范围。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1