机器人控制方法、机器人控制系统
技术领域
本发明涉及机器人控制领域,尤其涉及一种机器人控制方法、机器人控制系统。
背景技术
网络时延是指各种数据(例如,数据包,通信指令等)在网络介质中通过网络协议(如TCP/IP)进行传输,如果信息量过大不加以限制,超额的网络流量就会导致设备反应缓慢,造成网络延迟。
刊登于《兰州理工大学学报》第40卷第6期上题为《基于时延预测的VOIP抖动缓冲控制算法》的论文公开了一种基于时延预测的抖动缓冲控制算法。由于网络时延抖动是影响VOIP语音质量的重要因素之一,为消除时延抖动,提高VOIP语音质量,该论文提出一种基于时延预测的自适应抖动缓冲控制算法.算法采用AR模型为时延序列建模,通过LMS算法进行时延的异步预测,并根据时延预测值,以缓冲时延最小化为目标,自适应调节缓冲区大小。
该论文提供的时延抖动控制应用于语音传输,但对于应用于机器人控制领域,虽然通过预测可以减小网络时延,但是无法精确预测网络时延,也就无法对网络时延作精确补偿。
机器人是通过网络获取中央控制轨迹指令,由于机器人移动速度较快,网络波动会导致控制精度的存在较大的误差,并且会引起机器人的速度抖动。假设,机器人的移动速度10米/秒,网络波动延时100毫秒,指令周期为10毫秒,那么机器人获取下一指令时,机器人已经有了1米的距离误差。
发明内容
本发明就是针对上述问题,提供了一种机器人控制方法,包括如下步骤:ARM处理器获取由中央控制器发布的指令数据;将获取到的指令数据存储于ARM内存的动态缓存区域;当所述动态缓存区域内存储的指令数据达到预设帧数时,根据读取周期依次调取指令数据,并将调取的指令数据发送至机器人的运动控制器。
可选的,所述ARM处理器获取由中央控制器发布的指令数据包括:
所述中央控制器生成包含指令数据的指令队列,且所述指令队列采用预设通信协议通过消息服务器发布;
所述ARM处理器通过订阅方式从所述消息服务器获取指令队列;
其中,所述中央控制器和ARM处理器分别作为客户端与所述消息服务器连接,以通过所述消息服务器实现两者之间的通信。
可选的,所述消息服务器为ActiveMQ服务器或者RabbitMQ服务器。
可选的,所述动态缓存区域所能存储的预设帧数是基于最大网络时延来确定的。
可选的,所述最大网络时延为200毫秒,所述预设帧数为60帧。
可选的,根据读取周期依次调取指令数据是指ARM处理器根据读取周期依照指令数据存入所述动态缓存区域的先后顺序按照先入先出的次序调取指令数据。
可选的,所述读取周期为10毫秒。
可选的,ARM处理器将调取的指令数据发送至机器人的运动控制器是通过串口UART方式发送的。
本发明实施例还提供了一种机器人控制系统,包括中央控制器和机器人;其中,所述机器人包括ARM处理器,ARM内存以及运动控制器,其特征在于,所述ARM内存中设有动态缓存区域,用于缓存所述ARM处理器获取到的由中央控制器发布的指令数据;所述ARM处理器用于当所述动态缓存区域内存储的指令数据达到预设帧数时,根据读取周期依次调取指令数据,并将调取的指令数据发送至机器人的运动控制器;所述运动控制器用于根据指令数据控制机器人运动。
与现有技术相比,本发明技术方案至少具有以下有益效果:
在机器人的ARM内存中设置一个动态缓存区域,用于缓存ARM处理器获取到的由中央控制器发布的指令数据,当该动态缓存区域内存储的指令数据达到预设帧数时,根据读取周期依次调取指令数据,并将调取的指令数据发送至机器人的运动控制器。由于相对于中央控制器发布的指令数据的周期,运动控制器可以以固定时延(根据预设帧数来确定)执行控制机器人运动的任务,从而可以减弱甚至消除网络延时所带来的影响。
附图说明
图1是本发明实施例的一种机器人控制系统的结构示意图;
图2是本发明实施例的一种机器人控制方法的流程示意图。
具体实施方式
为使本发明的上述目的、特征和优点能够更为明显易懂,下面结合附图对本发明的具体实施方式做详细的说明。
如图1所示的是本发明实施例的一种机器人控制系统的结构示意图。参考图1,所述机器人控制系统包括中央控制器11和机器人,其中所述机器人包括ARM处理器21,ARM内存211和运动控制器22。中央控制器11内设有无线通信模块111,所述机器人的ARM处理器21中设有无线通信模块212,中央控制器11与ARM处理器21通过无线通信模块传输指令数据。
与现有技术不同的是,在所述ARM内存211中设有动态缓存区域2111,所述动态缓存区域2111用于缓存所述ARM处理器21获取到的由中央控制器发布的指令数据。所述ARM处理器21用于当所述动态缓存区域2111内存储的指令数据达到预设帧数时,根据读取周期依次调取指令数据,并将调取的指令数据发送至机器人的运动控制器22,ARM处理器21与机器人的运动控制器22之间是通过串口UART方式传送数据。所述运动控制器22用于根据指令数据控制机器人运动。所述ARM处理器21中还设置有CPU213,用于处理机器人接收到的各种数据。
下面结合具体实施例描述机器人的ARM处理器处理指令数据的具体实施方法。
结合图2所示的是本发明实施例的一种机器人控制方法的流程示意图。参考图2,所述机器人控制方法包括如下步骤:
步骤S1:ARM处理器获取由中央控制器发布的指令数据;
步骤S2:将获取到的指令数据存储于ARM内存的动态缓存区域;
步骤S3:当所述动态缓存区域内存储的指令数据达到预设帧数时,根据读取周期依次调取指令数据,并将调取的指令数据发送至机器人的运动控制器。
本实施例中,中央控制器和ARM处理器之间是通过建立消息服务器来实现ARM处理器与中央控制器之间的通信,所述中央控制器和ARM处理器分别作为客户端与消息服务器连接。本领域技术人员知晓,消息服务器是采用发布、订阅的方式实现各客户端间的通信。
具体来说,步骤S1包括:
所述中央控制器生成包含指令数据的指令队列,且所述指令队列采用预设通信协议通过消息服务器发布;
所述ARM处理器通过订阅方式从所述消息服务器获取指令队列。
其中,所述消息服务器可以采用ActiveMQ(Active message queuing)服务器或者RabbitMQ服务器。预设通信协议可以采用MQTT(Message Queuing Telemetry Transport,消息队列遥测传输)协议。MQTT协议是IBM开发的一个基于TCP/IP的即时通信协议,两个App端发送和接收消息需要中间人,这个中间人就是消息服务器(比如ActiveMQ服务器、RabbitMQ服务器),三者通信协议就是MQTT协议。
指令队列可以采用json的协议格式发布,例如如下格式:
/IOV/Robot/f1c03371-fa58-11e6-981a-a5467436a6d6/MoveTo,{"time":"0.050000000000000","longitude":"121.627000000000000","latitude":"31.247874560000000","speed":"0.003400000045076","heading":"-1.324900000000000"}。
由于受到网络时延的影响,ARM处理器获取由中央控制器发布的指令数据的时间间隔会有波动。因此,在本实施例中,先将ARM处理器获取到的指令数据存储于ARM内存的动态缓存区域(如步骤S2所述)。
所述动态缓存区域所能存储的预设帧数是基于最大网络时延来确定的。具体来说,根据网络时延波动测试,如果最大网络时延为200毫秒。根据经验公式固定网络延时为该最大网络延时的两倍再加上200毫秒,即600毫秒。需要说明的是,设置最大网络延时的目的是为防止动态缓存区域里的指令数据被取空,导致ARM处理器发送给机器人的运动控制器的指令数据产生时延波动。其中,最大网络时延基于不同场景以及基于网络质量,例如无线访问接入点(AP)质量和数量而不同。
在本实施例中,每一帧指令数据是10毫秒,因此当所述动态缓存区域内存储的指令数据达到预设帧数(60帧)时,根据读取周期依次调取指令数据,并将调取的指令数据发送至机器人的运动控制器(如步骤S3所述)。
具体地,根据读取周期依次调取指令数据是指ARM处理器根据读取周期依照指令数据存入所述动态缓存区域的先后顺序按照先入先出的次序调取指令数据。其中,ARM处理器的读取周期为10毫秒。ARM处理器将调取的指令数据发送至机器人的运动控制器是通过串口UART方式发送的。
采用上述实施例的控制方法,相对于中央控制器发布的指令数据的周期,机器人的运动控制器可以以固定时延(如上述实施例中的600毫秒)执行控制机器人运动的任务,从而可以减弱甚至消除网络延时所带来的影响。如果需要进一步提高机器人运动控制的实时性,可以通过缩短固定时延,即可达到同步控制的要求。
另一方面,采用本发明实施例的技术方案可以降低成本,由于通过硬件成本降低网络时延的成本很高,以10米布置一个ap的方案。一个工业ap价格在5000元左右,500m长度的空间,至少需要25万。因此可以通过固化时延的方式解决因ap数量不足引起的网络时延抖动问题。
本发明虽然已以较佳实施例公开如上,但其并不是用来限定本发明,任何本领域技术人员在不脱离本发明的精神和范围内,都可以利用上述揭示的方法和技术内容对本发明技术方案做出可能的变动和修改,因此,凡是未脱离本发明技术方案的内容,依据本发明的技术实质对以上实施例所作的任何简单修改、等同变化及修饰,均属于本发明技术方案的保护范围。