CN103902412A - 微处理设备、在线调试系统和方法 - Google Patents
微处理设备、在线调试系统和方法 Download PDFInfo
- Publication number
- CN103902412A CN103902412A CN201210567887.3A CN201210567887A CN103902412A CN 103902412 A CN103902412 A CN 103902412A CN 201210567887 A CN201210567887 A CN 201210567887A CN 103902412 A CN103902412 A CN 103902412A
- Authority
- CN
- China
- Prior art keywords
- data
- treatment equipment
- micro treatment
- module
- functional module
- 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.)
- Granted
Links
Images
Abstract
本发明公开了一种微处理设备、在线调试系统和方法,该在线调试方法包括:该微处理单元通过该输入接口收到总线上的第一数据;微处理单元解码该第一数据以获得该第一数据的数据类型,并且对该第一数据执行与该数据类型相对应的处理,或者:微处理单元通过该输入接口接收了来自该输入功能模块的第一数据;微处理单元将该第一数据编码后通过该输出接口发送至该输出功能模块。本发明解决了基于行为的机器人调试困难的问题,采集基于行为的机器人系统在运行过程中的数据信息以及对局部功能模块进行调试,从而方便得分析问题出现的原因以及方便问题重现。
Description
技术领域
本发明涉及一种微处理设备、在线调试系统和方法,特别是涉及一种用于对机器人的行为进行在线调试的微处理设备、在线调试系统和方法。
背景技术
在传统的机器人学中(也就是1986年之前的机器人学),机器人拥有一个中央“大脑”,这个大脑构建并维护环境的“地图”,然后根据地图来制定计划。首先,机器人的传感器(例如接触传感器、光线传感器和超声波传感器)从它的环境中获得信息。机器人的大脑将传感器收集的所有信息组合起来并更新它的环境地图。然后,机器人决定运动的路线。它通过传动器和受动器执行动作。简单地说,传统的机器人接收来自传感器(可能有多个传感器)的输入,组合传感器信息,更新环境地图,根据它当前掌握的环境视图制定计划,最后执行动作。
对于传统的人工智能,主要的工作集中在“推理”上,在建造机器人时,采取的是“感觉”--“建模”--“计划”--“行动”(Sense->Model->Plan->Act)框架。早期的机器人都被放置在简单的人工世界中,它们感觉这个事情,然后思考它,努力的建立关于这个世界的二维或三维的模型。接着,机器人根据这些模型做出计划,并且通过计划使得机器人产生实现特定目标的行为。
但是,这种方法是有问题的。问题之一是它需要进行大量计算。另外,因为外部环境总是在变化,所以很难让环境地图符合最新情况。一些生物(比如昆虫)不掌握外部世界的地图,甚至没有记忆,但对环境的适应性却非常好,对这些问题的思考引出了一种新型的机器人学,称为基于行为的机器人学(behavior-based robotics,BBR)。
在基于行为的机器人学中,行为是实现功能的基本组件,基于行为的思想符合软件工程的基本原理,行为具有天生的模块化特征,易于对机器人能力的增量扩展,机器人也可以通过拥有更多的行为而变的更加聪明。把系统按行为分解导致了实时运行的系统要求,同时也减少了系统实现对计算的要求。由于以上的优点,BBR在当今的机器人实验室中占主要地位。
基于行为的机器人学中最具有代表的人为布鲁克斯(Rodney A.Brooks),他从80年代初期开始以全新的眼光来看待人工智能和机器人研究。他在研究过程中,发现传统的逻辑程序在机器人的导航方面显得非常缓慢和笨拙,传统的机器人研究先假设真实的世界是静止的,当我们把这个静止的世界中所有的问题都解决了,再回到动态的世界中研究它。但布鲁克斯一开始就假设世界是动态的,这样就可避免无止境的运算中。他将目标集中在制造能够处理变化多端的日常事物的移动式机器人,并且集中精力在机器人的行为上。
但基于行为的体系结构伴随而来的问题是调试比较困难,因为基于行为的体系结构强调的是“场景化”和“具体化”,即调试应该直接在具体环境中实现,而不主张通过仿真或模拟来实现,在对机器人的行为进行调试时,由于计算分散在多个有限状态机中进行,需要调试的内容变成了三部分:1)对每个有限状态机功能的调试。2)多个有限状态机之间通讯消息的调试。3)多个有限状态机之间协调工作所组成的行为调试。
现行的调试方式因为系统结构的局限,采用比较简单的试错法和排除法,即在搭建整体系统前,先对每个单独的有限状态机测试输出,判断输出结果是否满足设计要求,然后再构建成一个独立的行为,当对行为进行调试时,主要是通过调整局部参数来实现对外界环境的适应,当发现错误时,由于系统特殊的结构,通过所有对计算过程的追溯就变的非常困难,只能通过设计人员的经验来判断可能出现问题的地方,然后通过试错法来逐步排除,但当新的多个高层行为叠加后,当实际效果不满足设计目标时,对整体系统中出现问题部分的定位尤其的困难。现有调试的方法从某种程度上可以看作是一种“艺术”而非“工程”设计范畴。
发明内容
本发明要解决的技术问题是为了克服现有技术中基于行为的机器人的调试困难、尤其是当实际效果不满足设计目标时,对整体系统中出现问题部分的定位困难的缺陷,提供一种无需对被调试系统进行修改即可对机器人的行为进行在线采集调试信息、方便后续的调试和错误追溯的微处理设备、在线调试系统和方法。
本发明是通过下述技术方案来解决上述技术问题的:
一种微处理设备,该微处理设备用于机器人行为的在线调试,其特点在于,该机器人包括多个功能模块,该微处理设备包括一微处理单元、多路总线接入的输入接口、输出接口、一无线收发模块,其中,
该微处理单元用于通过该输入接口收到总线上的第一数据、解码该第一数据以获得该第一数据的数据类型,并且对该第一数据执行与该数据类型相对应的处理;
该无线收发模块用于将该第一数据发送至一监控器,其中,
该第一数据为该功能模块之间的通信数据。
该微处理单元可以为具有计算能力的微处理器,用于进行数据处理,当接收到总线上数据信息(即上述的第一数据)时,可以对信息解码,根据信息的数据报头,判断数据的类型,对不同的消息进行不同的处理。
优选地,该微处理单元用于在通过该输入接口接收了来自一输入功能模块的第一数据后,将该第一数据编码后通过该输出接口发送至一输出功能模块,其中,该输入功能模块为位于该微处理设备输入端的功能模块,该输出功能模块为位于该微处理设备输出端的功能模块。
除此之外,该微处理单元还具有数据缓冲能力,可以对总线上的通讯数据(即上述的第一数据)加以编码后再发送,例如当总线上的一处理模块(输入功能模块)对另一处理模块(输出功能模块)发送计算数据信息时,会先经由两者之间的微处理设备接收到,微处理设备不对数据进行任何处理,直接将接收到的原数据经过该输出端口发送给另一处理模块,以确保不影响被调试系统的原功能。
多路总线接入的输入接口和输出接口是指多路常用总线接口的一个集合,包含RS232,RS485,CAN和Ethernet(异步传输标准接口、控制器局域网络、以太网)等,这样就可以适应不同种类的总线类型。同时该微处理设备还提供一个总线的配置功能,从而可以对调试总线的类型进行设定,同时还可以对通讯过程中的参数进行设置。
优选地,该无线收发模块还用于接收来自该监控器的调试命令,该调试命令用于对单个待测的功能模块进行在线调试的命令,
该微处理单元还用于屏蔽位于该待测的功能模块输入端的数据输入或者屏蔽位于该待测的功能模块输出端的数据输出。
该微处理设备可以通过该无线收发模块同监控器进行通讯。微处理设备虽然拥有局部缓存,但相对于总上的数据通讯量来说,能缓存的数据信息非常有限,所有为了解决这个问题,本发明采用将采集到的数据,通过无线收发模块实时的发送到监控器,这样一方面避免了每个微处理设备上都需要配备大数据缓存设备的尴尬,另一方面,也满足了对整体系统实时监控的要求,在监控器端,可以根据多个微处理设备发送上来的数据,实时的观察到整体系统的运行情况。
优选地,该微处理单元还用于通过该输入接口收到总线上的第二数据,并且屏蔽该第二数据向该输出接口的数据输出,以及在增加了该第二数据的发送者身份信息和发送时间信息之后将该第二数据编码;
该无线收发模块用于将编码后的该第二数据发送至该监控器,其中,该第二数据为功能模块的内部调试数据。
采集单个功能模块有限状态机内容状态以及计算数据是指收集每个有限状态机在计算过程产生的临时数据信息已经状态变化信息。每个功能模块虽然实现功能不同,但本质上就是一个有限状态机,从计算过程上来看,就是根据输入信息处理后把计算结果输出的过程,不存在“记忆”(内部状态信息)。
单个功能模块计算的结果会经过输出接口经由总线发送到下一个功能模块,但单个功能模块的内部计算过程对外部来说,是不可见的,为了可以监视每个功能模块内部的计算过程,每个功能模块内部都会集成一个内部数据发送功能,并且提供一个外部接口进行开关控制,当内部数据发送功能被打开的时候,内部的数据将会通过发送接口(输出接口)发送到总线上,被发送的数据包含两部分数据:状态变换信息和临时数据信息。状态变换信息:每个功能模块就是一个有限状态机,每个有限状态机包含多个状态,例如等待状态、计算状态、分支状态和输出状态等等,当接收端口(输入接口)接收到总线上的计算请求时,有限状态机的状态会从等待状态变化为计算状态,当计算完成后,状态由计算状态变为输出状态,当数据发送完成后,状态又由发送状态变回为等待状态,在每次状态发生变化时,内部数据发送功能会记录下状态变化信息,加上时间戳后,再通过总线发送出去。临时数据信息:功能模块在计算状态时,会产生很多中间过程数据,这部分数据对输出的结果来说,没有任何意义,但当计算过程中出现错误时,这部分数据对追溯出现错误的原因却有很大作用,所以功能模块在实现时,都会实现一个临时数据缓冲区,计算过程中的产生的数据都存放在这个临时数据缓冲区,当内部数据发送功能被起用后,内部数据发送功能会在每次数据产生后,将临时数据缓冲区的内容通过发送接口发送到总线上。
经由内部数据发送功能发送到总线上的数据都包含特殊报头,代表这部分消息只是调试数据,距离功能模块总线发送端最近的微处理设备会接收到这部分信息,微处理设备会对消息进行解析,当发现消息的报头属于内部数据发送功能发送的信息时,会将此条消息截断,不再往后续连接的功能模块发送消息,同时将接收到的消息加上发送者的ID(身份信息)和发送时间后,进行编码,然后通过无线收发模块将信息发送到监控器,监控器在接收到信息后进行保存并进行显示,方便后续的调试和错误追溯。
本发明还提供一种在线调试系统,其特点在于,其包括多个如上所述的微处理设备、如上所述的多个功能模块和如上所述的监控器。
本发明还提供一种在线调试方法,其特点在于,其采用如上所述的在线调试系统实现,该在线调试方法包括以下步骤:
步骤S1、该微处理单元通过该输入接口收到总线上的第一数据;
步骤S2、该微处理单元解码该第一数据以获得该第一数据的数据类型,并且对该第一数据执行与该数据类型相对应的处理。
本发明还提供一种在线调试方法,其特点在于,其采用如上所述的在线调试系统实现,该在线调试方法包括以下步骤:
步骤S1R、该微处理单元通过该输入接口接收了来自该输入功能模块的第一数据;
步骤S2R、该微处理单元将该第一数据编码后通过该输出接口发送至该输出功能模块。
优选地,步骤S2中或步骤S2R中包括:该无线收发模块用于将该第一数据发送至该监控器,或者,
步骤S1中或步骤S1R中包括:该微处理单元通过该输入接口收到总线上的第二数据,并且屏蔽该第二数据向该输出接口的数据输出;
步骤S2中或步骤S2R中包括:该微处理单元在增加了该第二数据的发送者身份信息和发送时间信息之后将该第二数据编码,该无线收发模块将编码后的该第二数据发送至该监控器。
本发明还提供一种在线调试方法,其特点在于,其采用如上所述的在线调试系统实现,该在线调试方法包括以下步骤:
步骤S1T、该监控器的发送调试命令至一第一微处理设备;
步骤S2T、第一微处理设备通过该输出接口将该调试命令发送至待测的功能模块,该第一微处理设备为位于待测的功能模块输入端的微处理设备;
步骤S3T、待测的功能模块得到计算结果并将该计算结果输入至第二微处理设备,该第二微处理设备为位于待测的功能模块输出端的该微处理设备;
步骤S4T、该第二微处理设备将该计算结果发送至该监控器。
采集模块之间通讯以及数据传递的方法是指采集功能模块之间数据传递的信息。当一个有限状态机(例如称作输入功能模块)计算完成后,会将结果以消息的方式通过总线发送到下一个有限状态机(例如称作输出功能模块),为了采集两个功能模块之间传递的消息,需要在输入功能模块和输出功能模块之间增加一个微处理设备来采集消息数据。输入功能模块发送的消息,在到达输出功能模块之前,会被微处理设备先接收到,当微处理设备接收到数据后,会先对消息进行解析,根据消息报头判断消息的类型,如果是模块间的通讯消息,会分为两部分进行发送,第一部分:不对消息进行处理,将原消息内容通过输出接口发送到输出功能模块,因为微处理设备在判断消息类型时的所需要的时间基本可以忽略不记,所以不会对原系统造成影响;第二部分:会对原始消息进行编码,增加部分信息,包含消息的发送者,接收者,发送时间以及消息类型等,然后通过无线收发模块将编码后的信息发送给监控器。通过收集多个微处理设备传送的数据,便可以还原出整个系统的通讯消息信息。
单个功能模块或局部功能进行在线调试的方法是指在不对原系统进行修改的情况下,可以在运行过程中调试单个功能模块或局部功能模块的方法。单个模块或局部功能进行在线调试的方法分为二部分:控制微处理设备进入调试的方法和对功能模块进行调试的方法。
在对单模块或局部功能进行在线调试之前,需要对微处理设备发送命令,通知其进入调试模式。如果是对单个模块进行调试,则通过无线收发模块对距离待调试的功能模块总线输入端最近的微处理设备和距离输出端最近的微处理设备发送进入调试的命令。如果是前端的微处理设备,在进行调试状态后,会屏蔽所有的从总线上接收到的数据信息,如果是后端的微处理设备,在进入调试状态后,则会屏蔽微处理设备输出端上所有的数据输出。
对功能模块进行调试的命令由监控器发出,调试命令经过前端的微处理设备,传送给待调试的功能模块,功能模块计算出的结果经输出端发送到总线上,当后端的微处理设备接收到计算结果后,再通过无线收发模块将信息返还给监控器。这样在监制器端就可以通过无线收发模块对功能模块发送命令,并且通过无线收发模块来取得计算的数据反馈,从而达到在线调试的目的。
替换单个模块输出的在线调试方法是指将功能模块的输出通过微处理设备替换掉,以达到调试后续模块功能的目的。在替换单个模块输出前,需先对微处理设备进行设置成调试模式,具体方式为通过无线收发模块发送命令给微处理设备,当微处理设备进入调试状态后,则会屏蔽任何通过输入接口处由前端的功能模块发送的命令,同时只接收来自监控器发送的调试数据,其效果相当于位于微处理设备输出端的后端功能模块接收到的命令均来自于监控器的虚拟数据信息。对于系统中有些特殊的行为,在流程下很难被触发,为了对这部分的功能进行调试,可以通过替换单个模块输出的方式,来对这部分的功能进行调试。
在符合本领域常识的基础上,上述各优选条件,可任意组合,即得本发明各较佳实例。
本发明的积极进步效果在于:
1、本发明为了解决基于行为的机器人的行为调试困难的情况,提出了一种微处理设备、在线调试系统和方法,通过对有限状态机变化信息和之间通讯信息的采集和记录,加上局部模块的在线调试功能,解决了基于行为的机器人调试困难的问题。
2、通过收集多个微处理设备传送的数据,便可以还原出整个系统的通讯消息信息。
3、通过将功能模块的内部数据发送至监控器,可以方便后续的调试和错误追溯。
4、通过替换单个模块输出的方式,来实现对局部功能的调试。
附图说明
图1为本发明一实施例的微处理设备的结构框图。
图2为本发明一实施例的在线调试方法的流程图。
图3为本发明另一实施例的在线调试方法的流程图。
图4为本发明又一实施例的在线调试方法的流程图。
图5为本发明设置多模块进入调试的应用实例的示意图。
图6为本发明模块间通讯信息采集的应用实例的示意图。
图7为本发明单个模块功能调试的应用实例的示意图。
图8为本发明代替单个模块输出的在线调试的应用实例的示意图。
图9为本发明包容结构实现漫游和避让功能的应用实例的示意图。
图10为本发明消息采集调试功能的数据处理流程图。
图11为本发明单个模块功能调试的流程图。
图12为本发明对调试模块的输入或输出进行屏蔽或修改的流程图。
具体实施方式
下面通过实施例的方式进一步说明本发明,但并不因此将本发明限制在所述的实施例范围之中。
参考图1,本发明所述的微处理设备700用于机器人行为的在线调试,该机器人包括多个功能模块,该微处理设备700包括一微处理单元710、多路总线接入的输入接口720、输出接口750、一无线收发模块730,其中,
该微处理单元710用于通过该输入接口收到总线上的第一数据、解码该第一数据以获得该第一数据的数据类型,并且对该第一数据执行与该数据类型相对应的处理;
该无线收发模块730用于将该第一数据发送至一监控器,其中,
该第一数据为该功能模块之间的通信数据。
其中,该微处理单元710用于在通过该输入接口接收了来自一输入功能模块的第一数据后,将该第一数据编码后通过该输出接口发送至一输出功能模块,其中,该输入功能模块为位于该微处理设备输入端的功能模块,该输出功能模块为位于该微处理设备输出端的功能模块。
除此之外,该无线收发模块730还用于接收来自该监控器的调试命令,该调试命令用于对单个待测的功能模块进行在线调试的命令,
该微处理单元710还用于屏蔽位于该待测的功能模块输入端的数据输入或者屏蔽位于该待测的功能模块输出端的数据输出。
为了方便后续调试和错误追溯,该微处理单元710还用于通过该输入接口收到总线上的第二数据,并且屏蔽该第二数据向该输出接口的数据输出,以及在增加了该第二数据的发送者身份信息和发送时间信息之后将该第二数据编码;
该无线收发模块730用于将编码后的该第二数据发送至该监控器,其中,该第二数据为功能模块的内部调试数据。
本发明还提供一种在线调试系统,其包括多个如上所述的微处理设备700、如上所述的多个功能模块和如上所述的监控器。
参考图2-4,介绍本发明的在线调试方法。
参考图2,该在线调试方法采用如上所述的在线调试系统实现,该在线调试方法包括以下步骤:
步骤S1、该微处理单元通过该输入接口收到总线上的第一数据;
步骤S2、该微处理单元解码该第一数据以获得该第一数据的数据类型,并且对该第一数据执行与该数据类型相对应的处理。
参考图3,该在线调试方法采用如上所述的在线调试系统实现,该在线调试方法包括以下步骤:
步骤S1R、该微处理单元通过该输入接口接收了来自该输入功能模块的第一数据;
步骤S2R、该微处理单元将该第一数据编码后通过该输出接口发送至该输出功能模块。
其中,步骤S2中或步骤S2R中包括:该无线收发模块用于将该第一数据发送至该监控器,或者,
步骤S1中或步骤S1R中包括:该微处理单元通过该输入接口收到总线上的第二数据,并且屏蔽该第二数据向该输出接口的数据输出;
步骤S2中或步骤S2R中包括:该微处理单元在增加了该第二数据的发送者身份信息和发送时间信息之后将该第二数据编码,该无线收发模块将编码后的该第二数据发送至该监控器。
参考图4,该在线调试方法采用如上所述的在线调试系统实现,该在线调试方法包括以下步骤:
步骤S1T、该监控器的发送调试命令至一第一微处理设备;
步骤S2T、第一微处理设备通过该输出接口将该调试命令发送至待测的功能模块,该第一微处理设备为位于待测的功能模块输入端的微处理设备;
步骤S3T、待测的功能模块得到计算结果并将该计算结果输入至第二微处理设备,该第二微处理设备为位于待测的功能模块输出端的该微处理设备;
步骤S4T、该第二微处理设备将该计算结果发送至该监控器。
下面通过几个应用实例,参考图5-图12,再次介绍本发明的在线调试方法。
调试的内容包含三个部分的内容:
1)在线采集系统运行过程中的数据。同传统的机器人学的计算模型不同,没有中央的处理器,计算分散在多个有限状态机中进行,并且没有统一的调度,多个功能模块并行的运行,并没有特定的先后执行顺序,为了达到调试的目的,采集系统中各模块的计算过程数据以及通讯的信息内容进行分析就显得格外重要。采集的数据信息包含两部分内容,模块运行过程中状态变化和模块直接通讯的数据信息。
2)对单个模块或多个模块进行的功能调试。每个功能模块在本质上就是一个增强的有限状态机,响应外部输入的信息,进行处理后,将计算后结果通过输出接口传送到下一个功能模块,最简单的有限状态机的处理过程可以理解为一个(“等待输入”——“数据处理”——“输出结果”)的过程。在实际运行过程中,功能模块可能会接收到多种数据,如果通过模拟现实中的多种环境来测试模块的功能,实现太复杂且当情况比较特殊时不太现实,单模块的功能调试通过输入模拟的外界输入测试消息,通过采集功能模块计算后的输出,然后判断输出是否满足要求,来达到调试的目的。
3)对调式模块的输入或输出进行屏蔽或修改,来达到调试的目的。机器人对外界环境刺激所做的反映来源与多个行为的叠加,而每个行为由多个有限状态机通过特定的方式组合而成,所以整体机器人动作的表现来源于多个有限状态机输出的组合,当对整体进行调试时,可以通过屏蔽或修改某个或多个模块的输入或输出信息,观察整体系统修改后的表现来达到调试的目的。
本发明是通过以下技术方案实现的,其中包括:用于调试数据采集的微处理设备700,本发明的在线调试方法包括采集单模块有限状态机内容状态以及计算数据的方法,采集模块之间通讯以及数据传递的方法,对单模块或局部功能进行在线调试的方法,替换单模块输出的在线调试方法。
微处理单元710是指的具有计算能力的微处理器,可以进行数据处理,当接收到总线上数据信息时,可以对信息解码,根据信息的数据报头,判断数据的类型,对不同的消息进行不同的处理;同时微处理单元还具有数据缓冲能力,可以对总线上的通讯数据加以编码后再发送,例如当总线上功能模块a810对功能模块b820发送计算数据信息时,会先经由微处理设备800接收到,调试设备不对数据进行任何处理,直接将接收到的原数据经过总线输出端口发送给功能模块b820,以确保不影响被调试系统的原功能。
无线收发模块是指微处理设备可以通过无线收发同监控器进行通讯。微处理调试虽然拥有局部缓存,但相对于总上的数据通讯量来说,能缓存的数据信息非常有限,所有为了解决这个问题,本发明采用将采集到的数据,通过无线收发模块实时的发送到监控器,这样一方面避免了每个微处理设备上都需要配备大数据缓存设备的尴尬,另一方面,也满足了对整体系统实时监控的要求,在监控器端,可以根据多个微处理设备发送上来的数据,实时的观察到整体系统的运行情况。
采集单模块有限状态机内容状态以及计算数据的方法是指收集每个有限状态机在计算过程产生的临时数据信息已经状态变化信息。每个功能模块虽然实现功能不同,但本质上就是一个有限状态机,从计算过程上来看,就是根据输入信息处理后把计算结果输出的过程,不存在“记忆”(内部状态信息)。
单个功能模块计算的结果会经过输出接口经由总线发送到下一个功能模块,但单模块的内部计算过程对外部来说,是不可见的,为了可以监视模块内部的计算过程,每个模块内部都会集成一个内部数据发送功能,并且提供一个外部接口进行开关控制,当内部数据发送功能被打开的时候,内部的数据将会通过发送接口发送到总线上,被发送的数据包含两部分数据:状态变换信息和临时数据信息。状态变换信息:每个模块就是一个有限状态机,每个有限状态机包含状态,例如等待状态,计算状态,分支状态,输出状态等等,当接收端口接收到总线上的计算请求时,有限状态机的状态会从等待状态变化为计算状态,当计算完成后,状态由计算状态变为输出状态,当数据发送完成后,状态又由发送状态变回为等待状态,在每次状态发生变化时,内部数据发送功能会记录下状态变化信息,加上时间戳后,再通过总线发送出去。临时数据信息:功能模块在计算状态时,会产生很多中间过程数据,这部分数据对输出的结果来说,没有任何意义,但当计算过程中出现错误时,这部分数据对追溯出现错误的原因却有很大作用,所以功能模块在实现时,都会实现一个临时数据缓冲区,计算过程中的产生的数据都存放在这个临时数据缓冲区,当内部数据发送功能被起用后,内部数据发送功能会在每次数据产生后,将临时数据缓冲区的内容通过发送接口发送到总线上。
经由内部数据发送功能发送到总线上的数据都包含特殊报头,代表这部分消息只是调试数据,距离功能模块总线发送端最近的微处理设备会接收到这部分信息,微处理设备会对消息进行解析,当发现消息的报头属于内部数据发送功能发送的信息时,会将此条消息截断,不再往后续连接的功能模块发送消息,同时将接收到的消息加上发送者的ID和发送时间后,进行编码,然后通过无线通讯模块将信息发送到监控器,监控器在接收到信息后进行保存并进行显示,方便后续的调试和错误追溯。
采集模块之间通讯以及数据传递的方法是指采集功能模块之间数据传递的信息。当一个有限状态机910计算完成后,会将结果以消息的方式通过总线发送到下一个有限状态机920,为了采集之间传递的消息,需要在功能模块a910和功能模块b920之间增加一个微处理设备900来采集消息数据(功能模块可以看成一个有限状态机,故采用同样的附图标记)。功能模块a910发送的消息,在到达功能模块b920之前,会被微处理设备900先接收到,当微处理设备接收到数据后,会先对消息进行解析,根据消息报头判断消息的类型,如果是模块间的通讯消息,会分为两部分进行发送,第一部分:不对消息进行处理,将原消息内容通过发送端发送到功能模块b920,因为微处理设备在判断消息类型时的所需要的时间基本可以忽略不记,所以不会对原系统造成影响;第二部分:会对原始消息进行编码,增加部分信息,包含消息的发送者,接收者,发送时间以及消息类型等,然后通过无线通讯端口将编码后的信息发送给监控器940。通过收集多个微处理设备传送的数据,便可以还原出整个系统的通讯消息信息。
单模块或局部功能进行在线调试的方法是指在不对原系统进行修改的情况下,可以在运行过程中调试单个模块或局部功能模块的方法。单模块或局部功能进行在线调试的方法分为二部分:控制微处理设备进入调试的方法和对功能模块进行调试的方法。
在对单模块或局部功能进行在线调试之前,需要对微处理设备发送命令,通知其进入调试模式。如果是对单模块进行调试,则通过无线通讯接口对距离待调试的功能模块b1030总线输入端最近的微处理设备1020和距离输出端最近的微处理设备1040发送进入调试的命令。如果是前端的微处理设备1020,在进行调试状态后,会屏蔽所有的从总线上接收到的数据信息,也就是说功能模块a1010发送给功能模块b1030的所有数据信息将会被微处理设备1020截断。如果是后端的微处理设备1040,在进入调试状态后,则会屏蔽微处理设备1040输出端上所有的数据输出。
对功能模块进行调试的命令由监控器1070发出,调试命令经过前端的微处理设备1020,传送给调试的功能模块b1030,功能模块b1030计算出的结果经输出端发送到总线上,当微处理设备1040接收到计算结果后,再通过无线通讯接口,将信息返还给监控器1070。这样在监制器端就可以通过无线接口对功能模块发送命令,并且通过无线接口来取得计算的数据反馈,从而达到在线调试的目的。
替换单模块输出的在线调试方法是指将有功能的模块的输出通过微处理设备替换掉,以达到调试后续模块功能的目的。在替换单模块输出前,需先对微处理设备进行设置成调试模式,具体方式为通过无线发送命令给微处理设备1120,当微处理设备进入调试状态后,则会屏蔽任何输入端口连接的功能模块a1110发送的命令,同时只接收来自监控器发送无线发送的调试数据,其效果相当于功能模块b1130接收到的命令来自于监控器1150的虚拟数据信息。对于系统中有些特殊的行为,在流程下很难被触发,为了对这部分的功能进行调试,可以通过替换单模块输出的方式,来对这部分的功能进行调试。
基于行为的机器人学在具体的实施中有很多种方式,使用最多的方式为包容结构(subsumption architecture)。包容体系结构的发明者是Rodney A.Brooks(曾任MIT AI Lab领导),他在1986年的文章“Elephants Don′t PlayChess”中首次提出了包容体系结构,包容结构体系也是基于行为的实现。行为的定义包括触发它们的条件(常常是一个传感器读数)和采取的动作(常常涉及一个受动器)。一个行为建立在其他行为之上。当两个行为发生冲突时,一个中央仲裁器(arbitrator)来决定哪个行为应该优先。机器人的总体行为是突然的(emergent),根据包容的理论,它的效果好于其部分之和。较高层行为包容(subsume)较低层行为。在实现过程中,Brooks主张并不创建整个机器人,只需添加行为并看看会发生什么。包容结构的核心是多个特殊功能的增强有限状态机组合而成的一个并行计算结构,模块根据能力的层次进行分层,位于较高层次上的行为可以包容相邻的低层次的行为输出,而行为的触发来源于外界环境的刺激,它的处理方法直接来源于外部环境刺激的响应,这样就避免了对内部状态的使用。这就是“场景化”和“具体化”概念的由来,即智能体不需要依赖于基于符号的语意响应,而是通过智能体同环境之间的交互作用来定义。
下面以包容结构作为在线调试方法的对象来进行说明具体的实施方法。见图9,这是一个典型的用包容结构实现避障漫游机器人的结构图,其中每个长方形的都代表一个功能模块(相当于一个有限状态机),黑色的线条代表了模块间通讯所用的总线,圆形代表实现包容功能的模块。第一层的行为实现了避障功能,在图9中Sonar(声纳)模块用于采集机器人外围安装的声纳信息,并且形成一个Map(地图)数据,传给Feelforce(吸引力)和Collide(碰撞)模块,Collide模块判断前方最近的障碍物是否在安装距离以内,如果障碍物进入了安全距离,Collide模块则会发送一个Halt(中止)命令给Forward(前进)模块,通知机器人不再往前走。而Feelforce模块根据Sonar发送的Map信息计算出障碍物对机器人吸引力,将Force发送给Runway(跑道)模块,Runway模块再根据吸引力计算出避开障碍物所需要运行的方向后,发送给Turn(转弯)模块,通知机器人转弯。而在更高层的行为中实现了漫游功能,在图9中通过Wander(漫游)模块每隔10秒随机产生一个方向信息,发送给Avoid(避让)模块,而在Avoid模块中,结合方向信息和Feelforce生成的障碍物的吸引力后,计算出一个新的方向发送给Turn模块,从而实现了避障和漫游功能的结合。
为了实现调试功能,需要在每个模块之间通讯的总线上安装一个微处理设备,例如将原总线从中截断,一端接入微处理设备的总线接入端,另一端接入微处理设备的总线输出端。
微处理设备在系统初始化时,默认不会对总线上的消息进行处理,也不会将通讯的数据通过无线通讯传送到监控器。为了实现调试的目的,需要通过监控器对指定的微处理设备发送命令,通知其进入对应的调试状态。
下面先介绍实现采集单模块有限状态机内容状态以及计算数据的方法,首先将功能模块的状态信息发送开关打开,然后在监控器端通过无线,发送报头为’M”S’的2字节大小的命令给总线上所有的微处理设备,微处理设备即进入状态和数据采集状态,此时,系统运行过程所有的功能模块在状态变化时的信息以及数据,都会通过无线传回到监控器端,这样通过监控器的数据收集及状态显示程序就可以看到整体系统的运行情况。
在需要采集系统中功能模块之间通讯的信息时,通过监控器端向所有的微处理设备发送报头为’M”C’的2字节大小的命令,微处理设备即进入状态和数据采集状态,当总线上有数据时,微处理设备会截取通讯数据并进行判断,当发现是功能模块之间的数据通讯,则会通过输出端口,将通讯数据返回到总线上,保证了不对原系统产生影响,与此同时,对原始消息的副本进行编码,增加消息发送者、消息接收者、发送时间、消息类型等信息,然后通过无线通讯接口将编码的信息发送给监控器,
在监控器端即可通过收集多个微处理设备发送的通讯信息,还原和跟踪整个系统的通讯情况。
当在对单模块进行调试时,需要两个阶段:微处理设备设置阶段和虚拟调试数据发送接收阶段。下面以runaway功能模块的调试为例。
当在调试设备设置阶段,对距离待调试的功能模块总线输入端最近的微处理设备和距离输出端最近的微处理调试发送进入调试的命令。如果是前端的微处理设备,在进行调试状态后,会屏蔽所有的从总线上接收到的数据信息,如果是后端的微处理设备,在进入调试状态后,则会屏蔽微处理设备输出端上所有的数据输出,而把接收到的数据,通过无线通讯接口发送给监控器,这样监控器就能得到计算结果的反馈信息。
当在虚拟调试数据发送接收阶段时,功能模块的输入端被微处理设备屏蔽,功能模块的输入被替换成监控器的调试数据输入,功能模块接收到调试数据后会进行计算,并通过输出端口把计算的结果放在总线上,当功能模块输出端连接的微处理设备接收到数据信息后,会屏蔽向后功能模块的信息传递,转而将消息通过无线传回到监控器,这样可以从监视端发送虚拟的调试数据,并且观察到功能模块输出的数据,从而达到对单模块进行调试的目的。
本发明为了解决基于行为的机器人的行为调试困难的情况,提出了一种微处理设备、在线调试系统和方法,通过对有限状态机变化信息和之间通讯信息的采集和记录,加上局部模块的在线调试功能,解决了基于行为的机器人调试困难的问题。
虽然以上描述了本发明的具体实施方式,但是本领域的技术人员应当理解,这些仅是举例说明,本发明的保护范围是由所附权利要求书限定的。本领域的技术人员在不背离本发明的原理和实质的前提下,可以对这些实施方式做出多种变更或修改,但这些变更和修改均落入本发明的保护范围。
Claims (9)
1.一种微处理设备,该微处理设备用于机器人行为的在线调试,其特征在于,该机器人包括多个功能模块,该微处理设备包括一微处理单元、多路总线接入的输入接口、输出接口、一无线收发模块,其中,
该微处理单元用于通过该输入接口收到总线上的第一数据、解码该第一数据以获得该第一数据的数据类型,并且对该第一数据执行与该数据类型相对应的处理;
该无线收发模块用于将该第一数据发送至一监控器,其中,
该第一数据为该功能模块之间的通信数据。
2.如权利要求1所述的微处理设备,其特征在于,该微处理单元用于在通过该输入接口接收了来自一输入功能模块的第一数据后,将该第一数据编码后通过该输出接口发送至一输出功能模块,其中,该输入功能模块为位于该微处理设备输入端的功能模块,该输出功能模块为位于该微处理设备输出端的功能模块。
3.如权利要求1所述的微处理设备,其特征在于,该无线收发模块还用于接收来自该监控器的调试命令,该调试命令用于对单个待测的功能模块进行在线调试的命令,
该微处理单元还用于屏蔽位于该待测的功能模块输入端的数据输入或者屏蔽位于该待测的功能模块输出端的数据输出。
4.如权利要求1-3中任意一项所述的微处理设备,其特征在于,该微处理单元还用于通过该输入接口收到总线上的第二数据,并且屏蔽该第二数据向该输出接口的数据输出,以及在增加了该第二数据的发送者身份信息和发送时间信息之后将该第二数据编码;
该无线收发模块用于将编码后的该第二数据发送至该监控器,其中,该第二数据为功能模块的内部调试数据。
5.一种在线调试系统,其特征在于,其包括多个如权利要求1-4中任意一项所述的微处理设备、权利要求1-4中任意一项中所述的多个功能模块和权利要求1-4中任意一项中所述的监控器。
6.一种在线调试方法,其特征在于,其采用如权利要求5所述的在线调试系统实现,该在线调试方法包括以下步骤:
步骤S1、该微处理单元通过该输入接口收到总线上的第一数据;
步骤S2、该微处理单元解码该第一数据以获得该第一数据的数据类型,并且对该第一数据执行与该数据类型相对应的处理。
7.一种在线调试方法,其特征在于,其采用如权利要求5所述的在线调试系统实现,该在线调试方法包括以下步骤:
步骤S1R、该微处理单元通过该输入接口接收了来自该输入功能模块的第一数据;
步骤S2R、该微处理单元将该第一数据编码后通过该输出接口发送至该输出功能模块。
8.如权利要求6或7所述的在线调试方法,其特征在于,步骤S2中或步骤S2R中包括:该无线收发模块用于将该第一数据发送至该监控器,或者,
步骤S1中或步骤S1R中包括:该微处理单元通过该输入接口收到总线上的第二数据,并且屏蔽该第二数据向该输出接口的数据输出;
步骤S2中或步骤S2R中包括:该微处理单元在增加了该第二数据的发送者身份信息和发送时间信息之后将该第二数据编码,该无线收发模块将编码后的该第二数据发送至该监控器。
9.一种在线调试方法,其特征在于,其采用如权利要求5所述的在线调试系统实现,该在线调试方法包括以下步骤:
步骤S1T、该监控器的发送调试命令至一第一微处理设备;
步骤S2T、第一微处理设备通过该输出接口将该调试命令发送至待测的功能模块,该第一微处理设备为位于待测的功能模块输入端的微处理设备;
步骤S3T、待测的功能模块得到计算结果并将该计算结果输入至第二微处理设备,该第二微处理设备为位于待测的功能模块输出端的该微处理设备;
步骤S4T、该第二微处理设备将该计算结果发送至该监控器。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210567887.3A CN103902412B (zh) | 2012-12-24 | 2012-12-24 | 微处理设备、在线调试系统和方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210567887.3A CN103902412B (zh) | 2012-12-24 | 2012-12-24 | 微处理设备、在线调试系统和方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103902412A true CN103902412A (zh) | 2014-07-02 |
CN103902412B CN103902412B (zh) | 2018-08-14 |
Family
ID=50993748
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210567887.3A Expired - Fee Related CN103902412B (zh) | 2012-12-24 | 2012-12-24 | 微处理设备、在线调试系统和方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103902412B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111267082A (zh) * | 2020-02-19 | 2020-06-12 | 上海柴孚机器人有限公司 | 一种用于工业机器人的调试方法 |
CN111340976A (zh) * | 2020-02-24 | 2020-06-26 | 北京百度网讯科技有限公司 | 调试车辆模块的方法、装置、电子设备以及计算机可读存储介质 |
CN112147908A (zh) * | 2019-06-28 | 2020-12-29 | 青岛海尔智能技术研发有限公司 | 用于电器设备调试的方法、控制器及电器设备 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6289264B1 (en) * | 2000-02-23 | 2001-09-11 | Mitsubishi Denki Kabushiki Kaisha | Debugging system for robot programs |
CN201491008U (zh) * | 2009-09-07 | 2010-05-26 | 浙江大学城市学院 | 一种微型机器人的无线调试装置 |
CN102508750A (zh) * | 2011-10-27 | 2012-06-20 | 青岛海信信芯科技有限公司 | Soc内部模块检测装置及方法 |
-
2012
- 2012-12-24 CN CN201210567887.3A patent/CN103902412B/zh not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6289264B1 (en) * | 2000-02-23 | 2001-09-11 | Mitsubishi Denki Kabushiki Kaisha | Debugging system for robot programs |
CN201491008U (zh) * | 2009-09-07 | 2010-05-26 | 浙江大学城市学院 | 一种微型机器人的无线调试装置 |
CN102508750A (zh) * | 2011-10-27 | 2012-06-20 | 青岛海信信芯科技有限公司 | Soc内部模块检测装置及方法 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112147908A (zh) * | 2019-06-28 | 2020-12-29 | 青岛海尔智能技术研发有限公司 | 用于电器设备调试的方法、控制器及电器设备 |
CN112147908B (zh) * | 2019-06-28 | 2023-07-21 | 青岛海尔智能技术研发有限公司 | 用于电器设备调试的方法、控制器及电器设备 |
CN111267082A (zh) * | 2020-02-19 | 2020-06-12 | 上海柴孚机器人有限公司 | 一种用于工业机器人的调试方法 |
CN111340976A (zh) * | 2020-02-24 | 2020-06-26 | 北京百度网讯科技有限公司 | 调试车辆模块的方法、装置、电子设备以及计算机可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN103902412B (zh) | 2018-08-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103716324B (zh) | 一种基于多智能体虚拟矿井风险行为实现系统及方法 | |
CN107037782B (zh) | 监控机床的方法和装置 | |
CN107127751A (zh) | 关节型机械臂驱控一体化控制系统及控制方法 | |
CN107817756A (zh) | 网络化分布式数控系统靶场设计方法 | |
CN113722912B (zh) | 一种虚实融合的无人集群协同验证系统 | |
CN103902412A (zh) | 微处理设备、在线调试系统和方法 | |
Zong et al. | A multi-robot monitoring system based on digital twin | |
CN106991861A (zh) | 分布式模块化嵌入式战术训练系统 | |
CN105305627B (zh) | 市县调度电力设备的数据集中采集和监视的方法 | |
CN103317513B (zh) | 一种基于多cpu的网络化机器人控制系统 | |
Mallozzi et al. | MoVEMo: a structured approach for engineering reward functions | |
CN112187942B (zh) | 一种服务于智能机舱的边缘计算系统 | |
CN110474985A (zh) | 一种用于人工智能的基础数据传输方法及系统 | |
CN210161164U (zh) | 仿人脑机器人控制中枢及仿人脑行走机器人控制中枢 | |
Shriyam et al. | Modeling and analysis of subsystem interactions in robotic assembly | |
Ruiz et al. | Implementation of a sensor fusion based robotic system architecture for motion control using human-robot interaction | |
Duan et al. | RTCE: Real-time co-emulation framework for EMT-based power system and communication network on FPGA-MPSoC hardware architecture | |
Kazemeyni et al. | MULE-based wireless sensor networks: probabilistic modeling and quantitative analysis | |
CN110308669A (zh) | 一种模块机器人自修复仿真系统及方法 | |
CN110039541A (zh) | 一种机器人安全工作控制方法和装置以及设备 | |
CN109298666A (zh) | 一种无人驾驶汽车智能控制节点硬件架构 | |
CN110190523A (zh) | 一种智能预装式变电站继电保护报警系统 | |
Witsch et al. | A formal multi-agent language for cooperative autonomous driving scenarios | |
CN110874312B (zh) | 一种适用于异质多智能主体的众智机及其实现方法 | |
Sharbafi et al. | Designing a football team of robots from beginning to end |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20180814 Termination date: 20201224 |
|
CF01 | Termination of patent right due to non-payment of annual fee |