CN103838563B - 自动装置的程序开发方法 - Google Patents
自动装置的程序开发方法 Download PDFInfo
- Publication number
- CN103838563B CN103838563B CN201210491249.8A CN201210491249A CN103838563B CN 103838563 B CN103838563 B CN 103838563B CN 201210491249 A CN201210491249 A CN 201210491249A CN 103838563 B CN103838563 B CN 103838563B
- Authority
- CN
- China
- Prior art keywords
- automatics
- program
- behavior
- developing method
- thread
- 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.)
- Expired - Fee Related
Links
- 238000000034 method Methods 0.000 title claims abstract description 96
- 238000013461 design Methods 0.000 claims abstract description 28
- 238000004088 simulation Methods 0.000 claims abstract description 21
- 230000002159 abnormal effect Effects 0.000 claims description 3
- 238000012544 monitoring process Methods 0.000 claims description 3
- 230000001360 synchronised effect Effects 0.000 claims description 3
- 230000006399 behavior Effects 0.000 description 72
- 230000006870 function Effects 0.000 description 14
- 230000008569 process Effects 0.000 description 14
- 238000004140 cleaning Methods 0.000 description 12
- 238000013473 artificial intelligence Methods 0.000 description 9
- 230000004888 barrier function Effects 0.000 description 7
- 238000012545 processing Methods 0.000 description 7
- 238000010586 diagram Methods 0.000 description 6
- 230000009471 action Effects 0.000 description 5
- 230000005540 biological transmission Effects 0.000 description 5
- 230000003287 optical effect Effects 0.000 description 5
- 230000000694 effects Effects 0.000 description 4
- 230000001195 anabolic effect Effects 0.000 description 3
- 230000008859 change Effects 0.000 description 3
- 239000003086 colorant Substances 0.000 description 3
- 238000011161 development Methods 0.000 description 3
- 230000006872 improvement Effects 0.000 description 3
- 238000007689 inspection Methods 0.000 description 3
- 210000004556 brain Anatomy 0.000 description 2
- 238000010276 construction Methods 0.000 description 2
- 238000010924 continuous production Methods 0.000 description 2
- 239000000428 dust Substances 0.000 description 2
- 230000005611 electricity Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 241000272525 Anas platyrhynchos Species 0.000 description 1
- 230000001133 acceleration Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 231100001261 hazardous Toxicity 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 230000007257 malfunction Effects 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000004904 shortening Methods 0.000 description 1
- 235000014347 soups Nutrition 0.000 description 1
- 238000002948 stochastic simulation Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
Landscapes
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Stored Programmes (AREA)
Abstract
本发明揭示一种自动装置的程序开发方法,用于解决该控制程序开发不易的问题,其技术手段是借助一个电脑系统对一个自动装置进行控制程序开发作业,该方法包含:建模步骤,是供设计者以图形化界面对该自动装置建立行为树,该行为树包含数个节点及其触发事件;模拟步骤,是依据各节点的触发事件模拟该行为树的行为,并显示该模拟结果;及判断步骤,是依据期望资料判断该模拟结果是否符合预期,若判断为是,进行编程步骤,若判断为否,重新进行该建模步骤,其中该编程步骤是将该行为树编辑为控制程序,该控制程序具有数个执行绪。借此,不仅容易实现设计者的设计理念,并可缩短该控制程序开发时间。
Description
技术领域
本发明是关于一种程序开发方法,尤其是一种用于自动装置的程序开发方法。
背景技术
各种自动装置(例如:用于教学、娱乐、家庭或工业等的机器人,Robots)已可逐渐替代人们进行部份教学、娱乐、家庭或工业所需进行的作业。其中,现有自动装置的程序开发方法,例如:用于LEGO或中鸣机器人的程序开发方法,都以该自动装置具备的元件(Device)或模组(Module)等机械构件为主,进行整个控制程序开发过程。
换言之,在整个程序开发过程中,设计者需思考的是该机械构件应如何循序运作,才能达成该自动装置需运行的行为模式(behavior mode),而非着重于该自动装置需同时进行何种行为,如此一来,将使整个程序开发过程局限于该自动装置的机械构件。
但是,该自动装置的行为模式(即其运作方式)是供设计者利用该自动装置实现设计理念,倘若在整个程序开发过程中局限于该机械构件,则设计者须先将该行为模式拆解为上述机械构件的运作状态,再将各机械构件的运作状态组合而成该自动装置的不同行为。因此,设计者必须经过上述拆解及组合过程,方能在该自动装置实现其设计理念。
承上所述,倘若设计者不熟悉上述拆解及组合过程,则无法将其设计理念实现于该自动装置,纵使设计者已经熟知上述拆解及组合过程,也需花费较多心思与时间编撰控制程序,待该自动装置依据该控制程序实际运作时,方能验证该自动装置是否已实现其设计理念,在此过程中,该自动装置同时进行的多个行为可能会出错,需经历除错(debug)过程加以修正,如此,将使该自动装置的开发及测试时间延长。
此外,人工智能(artificial intelligence,AI)是以人为知识形成不同领域的操控或决策方法,只是如何将人为知识转为上述决策方法并非易事,虽已有人提出行为树(Behavior Tree)的概念,然而,如何将不同领域的知识转为行为树中的节点仍有待解决,而且,在已设计完成的行为树中是否需要除错仍有改善空间。
综上所述,现有自动装置的程序开发方法除了有不易实现设计理念及开发时间长等缺点,仍有不易设计行为树的节点及不易得知行为树是否有错等疑虑,在实际使用时更衍生不同限制与缺点,确有不便之处,亟需进一步改良,以提升其实用性。
发明内容
本发明的目的乃改良上述的缺点,以提供一种自动装置的程序开发方法,借助图形化界面供设计者将其设计理念转为行为树的节点,并依据该节点模拟该自动装置的行为,供设计者得知该行为是否符合该设计理念。
本发明的次一目的是提供一种自动装置的程序开发方法,是于该自动装置的行为模拟结果符合设计理念后,将行为树的节点转为具有多线程的控制程序,以控制该自动装置依据该设计理念运作。
本发明自动装置的程序开发方法,是借助一个电脑系统对一个自动装置进行控制程序开发作业,该方法包括:一个建模步骤,是供一个设计者以一个图形化界面对该自动装置建立一个行为树,该行为树包括多个节点及其触发事件;一个模拟步骤,是依据各节点的触发事件模拟该行为树的行为,并显示该模拟结果;及一个判断步骤,是依据一个期望资料判断该模拟结果是否符合预期,若判断为是,进行一个编程步骤,若判断为否,重新进行该建模步骤,其中该编程步骤是将该行为树编辑为一个控制程序,该控制程序具有多个线程。
其中,该线程包括多个常态线程及多个监督线程,该常态线程是依该行为树的行为转换而成,该监督线程是监视该常态线程的状态值,若该状态值出现异常,则该监督线程修正该状态值,使该常态线程回复正常。
其中,该行为树的行为是以同步方式受该常态线程控制,该常态线程是以非同步方式受该监督线程控制。
其中,各常态线程使用独立的堆叠空间,各监督线程具有一个母线程,且各监督线程使用其母线程的堆叠空间。
其中,该自动装置具有多个输入元件与多个输出元件,该行为树的节点包括多个输入节点、多个输出节点及多个控制节点,该输入节点用以读取该输入元件的信号状态,该输出节点用以决定该输出元件的动作状态,各控制节点用以控制其他节点。
其中,该建模步骤是依据该设计者所发出的一个选择指令选择至少一个自动装置,并供该设计者建立该自动装置所属的行为树。
其中,该电脑系统接收来自该设计者所输入的一个判断指令,并以该判断指令作为该期望资料。
其中,该电脑系统接收来自该设计者所输入的多个期望值,并以该多个期望值组成该期望资料。
其中,该电脑系统依据该设计者所发出的一个转码指令,而将该控制程序转为该转码指令所指定的程序码。
其中,另包括一个载码步骤,是将该控制程序编译成一个可执行码,并将该可执行码载入该自动装置。
其中,该电脑系统依据该设计者所发出的一个修正指令,而载入该自动装置中的可执行码,并将该可执行码转为一个待修程序,供该设计者修改该待修程序。
附图说明
图1:本发明自动装置的程序开发方法较佳实施例的系统架构图。
图2:本发明自动装置的程序开发方法较佳实施例的流程图。
图3:本发明自动装置的程序开发方法较佳实施例的行为树示意图。
图4:本发明自动装置的程序开发方法较佳实施例的球类竞赛模拟过程示意图。
图5:本发明自动装置的程序开发方法较佳实施例的循线行走模拟过程示意图。
图6:本发明自动装置的程序开发方法较佳实施例的地面清洁模拟过程示意图。
图7:本发明自动装置的程序开发方法较佳实施例的寻宝游戏模拟过程示意图。
图8:本发明自动装置的程序开发方法较佳实施例的行为树转为多执行续过程示意图。
【主要元件符号说明】
〔本发明〕
1 自动装置
11 输入单元 11a 输入元件
11b 光学感测元件 11c 方位感测元件
11d 超音波感测元件 12 控制单元
13 输出单元 13a 显示元件
13b 动力元件 13c 发声元件
2 电脑系统
21 编辑平台 22 处理单元
S1 建模步骤 S11,S12子步骤
S2 模拟步骤 S21,S22子步骤
S3 判断步骤 S4编程步骤
S5 载码步骤。
具体实施方式
为让本发明的上述及其他目的、特征及优点能更明显易懂,下文特举本发明的较佳实施例,并配合附图,作详细说明如下:
本发明全文所述的“自动装置”(automatic apparatus),是指一种内部嵌设人工智能(AI)的装置,用以自动执行地面清洁、物品搬运、循线行走、球类竞赛或工厂自动化等特定功能(specific function),例如:各式机器人(robots)等智能化装置(intelligentapparatuses),这是本发明所属技术领域中具有通常知识者可以理解的。
本发明全文所述的“连接”(connect),是指二资料处理硬体(data processinghardware)之间借助实体线材(例如:USB信号线等)或无线媒介(例如:Bluetooth无线电波、红外线通讯等)相互耦接(coupling),使该二资料处理硬体之间可以相互传递资料,这是本发明所属技术领域中具有通常知识者可以理解的。
本发明全文所述的“行为树”(behavior tree),是指一种用于人工智能的资料结构表示方式,该资料结构以节点表示资料,各节点之间形成树状结构,这是本发明所属技术领域中具有通常知识者可以理解的。
本发明全文所述的“线程”(thread),是指单一个应用程序所拥有的执行流程,若该应用程序拥有多个执行流程,则其为具有多线程(multi-thread)的该应用程序,这是本发明所属技术领域中具有通常知识者可以理解的。
请参阅图1所示,其是本发明自动装置的程序开发方法较佳实施例的系统架构图。其中,本发明自动装置的程序开发方法较佳实施例可借助至少一个自动装置1连接一个电脑系统2作为执行架构,该自动装置1可选为具有自动控制功能的装置,例如:各式机器人(Robots)或嵌入式系统(embedded system)等,用以依据内部的控制程序(controlprogram)执行特定功能,例如:地面清洁、物品搬运、循线行走、球类竞赛、寻宝游戏或工厂自动化等,其中该自动装置1的数量可依需求选择为一个或数个。该电脑系统2可选为具有资料输入、输出及处理能力的装置,例如:个人电脑(PC)、笔记型电脑(notebookcomputer)、工业电脑(industrial computer)、平板电脑(Tablet computer)、智能型手机(smart phone)或其他手持式装置(hand-held devices)等,供一个设计者据其设计理念产生该控制程序,使该自动装置1执行特定功能。
在此实施例中,是以一个自动装置1作为实施形态说明,其中该自动装置1设有数个输入单元11、一个控制单元12及数个输出单元13,该数个输入单元11包含一个输入元件11a(例如:按钮或键盘等)、一个光学感测元件11b(例如:红外线感测器等)、一个方位感测元件11c(例如:加速度感测器、地磁感测器或电子罗盘等)及一个超音波感测元件11d,用以输入资料及感测外在环境的信息,该控制单元12分别电性连接该输入单元11及输出单元13,该控制单元12可选为具有资料处理功能的控制装置,例如:微控制器(MCU)等,用以接收该输入单元11传送的资料、执行该控制程序及送出信号控制该输出单元13动作,该数个输出单元13包含一个显示元件13a(例如:各式显示器等)、至少一个动力单元13b(例如:各式马达等)及一个发声元件13c(例如:喇叭等),用以显示信息、输出动力及发出声响,以便执行上述特定功能;该电脑系统2设有一个编辑平台21及一个处理单元22,该编辑平台21可选为具有人机界面功能的装置,例如:键盘搭配显示器(monitor)、触控屏(touch panel)或手机屏(monitor of mobile phone)等,用以显示一个图形化界面(Graphic UserInterface,GUI),供该设计者编辑一个行为树(behavior tree)的数个节点(node),例如:该数个输入单元11的动作状态、控制参数及输出信号等,该处理单元22可选为具有资料处理功能的装置,例如:微处理器或云端伺服器(cloud computing servers)等,用以模拟该行为树的行为、将模拟结果显示于该编辑平台21,以及,将该节点转为一个具有多线程(multi-thread)的控制程序等,例如:C语言程序码或手机应用程序(APP)等,只是不以此为限。
请参阅图2所示,其是本发明自动装置的程序开发方法较佳实施例的流程图。其中,该自动装置的程序开发方法包含一个建模步骤S1、一个模拟步骤S2、一个判断步骤S3及一个编程步骤S4,分别叙述如后,请一并参阅图1所示。
该建模步骤S1,是供一个设计者以一个图形化界面对该自动装置建立一个行为树,该行为树包含数个节点及其触发事件。详言之,该建模步骤S1包含一个子步骤S11及一个子步骤S12,该子步骤S11是由该设计者在建立该行为树之前,较佳先发出一个选择指令,以选择至少一个自动装置1作为欲执行上述特定行为的装置,例如:选择一个或数个自动装置1的型号;或者,由该电脑系统2自动选取一个自动装置1作为欲执行上述特定行为的装置。之后,进行该子步骤S12,该设计者可据其设计理念,例如:设计一个具有清洁地面、防止冲撞、避免掉落、排除障碍及自动充电的地面清洁机器人,而自该选取的自动装置1中,选取其具备的输入单元11类型,例如:该输入元件11a、光学感测元件11b、方位感测元件11c及超音波感测元件11d,用以建立该自动装置1所属的行为树(如图3所示),包含该数个节点及其触发事件,以便由该光学感测元件11b、方位感测元件11c及超音波感测元件11d感测外在环境信息,并由该输入元件11a接受控制信号,进而输出信号该显示元件13a、动力单元13b及发声元件13c,使该选取的自动装置1具有清洁地面、防止冲撞、避免掉落、排除障碍及自动充电等功能。
其中,由于该自动装置具有数个输入元件与数个输出元件,因此,该行为树的节点包含数个输入节点及数个输出节点,该输入节点可读取该输入元件的信号状态,该输出节点可依据该输入节点的状态决定该输出元件的动作状态。而且,该行为树另包含数个控制节点,各控制节点可以控制其他节点,例如:在循序回圈中的控制节点,可依序执行回圈中的输入、输出或其他控制节点,并重复执行一个可被指定的次数;在随机回圈中的控制节点,可在回圈中随机的选择一个节点执行。请再参阅图3所示,其是本发明自动装置的程序开发方法用以建立行为树的一个实施例。
该模拟步骤S2,是依据各节点的触发事件模拟该行为树的行为,并显示该模拟结果。详言之,该模拟步骤S2包含一个子步骤S21及一个子步骤S22,当该行为树建立完成后,该电脑系统2可进行该子步骤S21,依据各节点的触发事件是否成立,而决定是否要模拟该选取的自动装置1的行为,其中若该触发事件成立,则进行该子步骤S22,模拟该选取的行为,例如:球类竞赛(如图4所示)、循线行走(如图5所示)、地面清洁(如图6所示)或寻宝游戏(如图7所示)等。以地面清洁模拟过程为例,当该输入元件11被按压时,则启动该自动装置1的电源,并驱动该动力元件13b,用以执行前进/后退或吸尘等行为,同时,随机模拟在各行为进行中所有可能出现的例外情形,例如:在前进时,若遇到电线,则朝其它方向试图摆脱电线,若遇到楼梯,则停止前进并后退,若遇到墙壁,则减速并后退等,在此过程中,同时纪录模拟结果,用以判断该模拟结果是否合乎预期的设计。
该判断步骤S3,是依据一个期望资料判断该模拟结果是否符合预期,若判断为是,进行该编程步骤S4,若判断为否,重新进行该建模步骤S1。详言之,该电脑系统2接收来自该设计者所输入的一个判断指令,例如:若“符合预期”,则输入“1”作为该期望资料,若“不符预期”,则输入“0”作为该期望资料;或者,由该设计者事先针对该行为树的不同行为而输入数个期望值,并以数个期望值组成该期望资料。
该编程步骤S4,是将该行为树编辑为一个控制程序,该控制程序具有数个线程。详言之,该电脑系统2可依据该行为树的节点而编辑形成该具有数个线程的控制程序(如图8所示),使该自动装置1可以依据该设计者的设计理念自动执行上述清洁、搬运、行走或竞赛等特定行为。而且,该电脑系统2还可以接受该设计者所发出的一个转码指令,而将该控制程序转为该转码指令所指定的程序码,例如:将该控制程序转为Java或C++等程序码,只是不以此为限。
其中,该线程包含数个常态线程(normal thread)及数个监督线程(supervisingthread),该常态线程是依该行为树的行为转换而成,该监督线程是监视该常态线程的状态值,若该状态值出现异常,则该监督线程修正该状态值,使该常态线程回复正常。其中,该行为树的行为是以同步(synchronous)方式受该常态线程控制,该常态线程是以非同步(asynchronous)方式受该监督线程控制;而且,各常态线程使用独立的堆叠空间(stackspace),各监督线程具有一个母线程(parent thread),且各监督线程使用其母线程的堆叠空间。
举例而言,倘若该自动装置1具有一个全自动行为模式,例如:自动进行清洁、搬运、行走或竞赛等行为模式,则该全自动行为模式具有数个行为,以清洁行为模式为例,该自动装置1将会执行移动、吸尘、高度侦测、障碍物侦测、污垢侦测等常态线程,当该自动装置1移动时,若卡到一个障碍物(例如:踏垫或电线等)而动弹不得,则该移动线程的监督线程将会修正该移动线程的状态,例如:停止前进,并后退试图脱离该障碍物,若能无法脱离该障碍物,则停止运转并发出警示声响,以防止该自动装置1损坏。其余行为模式是熟知该项技艺者可以理解,在此容不赘述,因此,该常态线程及该监督线程含括该全自动行为模式的所有行为。请再参阅图8所示,其是本发明自动装置的程序开发方法较佳实施例中,将行为树转换成多执行续的过程。
本发明自动装置的程序开发方法较佳实施例在该编程步骤S4之后,还可以包含一个载码步骤S5,是将该控制程序编译成一个可执行码,并将该可执行码载入该自动装置。详言之,该电脑系统2可以将该控制程序编译成该可执行码(executable code),并通过现有资料传输技术传输该可执行码,例如:采用USB传输线或Bluetooth无线传输信号,只是不以此为限,以便将该可执行码载入该自动装置1,使该自动装置1可以依据该设计者的设计理念执行上述特定功能。
其中,该电脑系统2还可以依据该设计者所发出的一个修正指令,例如:〝增加功能〞、〝修改功能〞或〝除错功能〞等指令,而使该电脑系统2自动载入该自动装置中的可执行码,并将该可执行码转为一个待修程序,供该设计者修改该待修程序,以便针对该自动装置1进行增加、修改或除错等作业。
承上所述,本发明自动装置的程序开发方法较佳实施例,可提供设计者在个人电脑、笔记型电脑、平板电脑或手持设备等装置,编辑该自动装置的控制程序,并模拟该自动装置具备人工智能(即智能化)后的表现,验证是否能自行完成工作。待验证该自动装置符合设计者想法,且能自行完成工作后,可将所建立的控制程序储存成档案或转成自动装置可以执行的程序码,进一步以相关的下载工具与界面,将该控制程序下载至该自动装置,使该该自动装置拥有该设计者所建立的智能。
再者,本发明自动装置的程序开发方法较佳实施例,可提供图形化界面,例如:将该自动装置的智能(即对于该自动装置的设计理念)表达分成输入、输出及控制三种节点图案,供该设计者可将图案以树状架构连接成行为树,用以表达装置的智能。
本发明自动装置的程序开发方法较佳实施例,可提供各种节点子视窗、装置模拟操作子视窗、装置模拟场景子视窗及执行程序下载子视窗等等,提供装置智能化编辑、装置操作模拟及智能下载至自动装置所需。
本发明自动装置的程序开发方法较佳实施例,是将该自动装置规划为机器人,该机器人有输入装置(即该输入单元)、输出装置(即该输出单元)及核心运算装置(即该控制单元),该输入装置包含按钮、接触开关及各种感测器例如光感测器、测距感测器、电子罗盘、超音波、红外线感测器等,该输出装置包含马达、喇叭、液晶显示模组等,该核心运算装置可将上述自动装置的智能转成的程序码,并提供执行所需的运算与控制,使机器人可依所建立的智能自行完成工作。
在本发明自动装置的程序开发方法较佳实施例中,该机器人所自行完成的工作的一个实施例是循线行走,此时地面贴有具颜色的线,机器人具有可辨识颜色的感测器,在掌握具颜色线所在位置后,机器人所建立的智能可以控制机器人沿着该线行走。
在本发明自动装置的程序开发方法较佳实施例中,可模拟场景子视窗的一个实施例是机器人循线行走,在此子视窗,设计者可自行编辑线的轨迹,并提供模拟观察机器人延线行走的表现,用以判断所编辑机器人的智能是否满足要求。
在本发明自动装置的程序开发方法较佳实施例中,该机器人所自行完成的工作的一个实施例是搜寻宝物,此时地面贴有具颜色的线表示搜寻范围,范围中具不同颜色宝物及具不同颜色为危险区域,机器人具有可辨识颜色的感测器,以颜色掌握搜寻范围、危险区域及宝物,机器人所建立的智能可以控制机器人在搜寻范围内、避开危险区域及搜寻到宝物。
在本发明自动装置的程序开发方法较佳实施例中,可模拟场景子视窗的一个实施例是机器人搜寻宝物,在此子视窗,设计者可自行编辑搜寻范围、危险区域及宝物位置,并提供模拟观察机器人避开危险区域且搜寻到宝物的表现,用以判断所编辑机器人的智能是否满足要求。
在本发明自动装置的程序开发方法较佳实施例中,该机器人所自行完成的工作的一个实施例是清洁地面,此时机器人存有一张地图,并有感测器可以辨识其位置,以便机器人按所编辑的智能,规画能涵盖所有地面的行走路径,完成清洁工作。
在本发明自动装置的程序开发方法较佳实施例中,可模拟场景子视窗的一个实施例是清洁机器人,在此子视窗,设计者可自行编辑空间的障碍物,并提供模拟观察机器人清洁地面的表现,用以判断所编辑机器人的智能是否满足要求。
在本发明自动装置的程序开发方法较佳实施例中,机器人所自行完成的工作的一个实施例是踢足球,此时有复数个机器人且分成两队进行对抗竞赛,经由对抗观察他人的智能化方法,以达教育娱乐效果。
在本发明自动装置的程序开发方法较佳实施例中,可模拟场景子视窗的一个实施例是足球竞赛机器人,在此子视窗,有一足球比赛场地,有两个不同颜色得球门,供两位设计者同时编辑其机器人智能,以近对机器人的对抗赛,用以评断所编辑机器人智能的优劣,并据以改进,以达教育目的。
在本发明自动装置的程序开发方法较佳实施例中,该机器人所自行完成的工作的一个实施例是工厂自动化,此时机器人可由其感测器得知外界情况,机器人所建立的智能可以控制机器人尤其感测器得知外界情况后,下达决策自行完成工厂的工作。
本发明自动装置的程序开发方法较佳实施例,可模拟场景子视窗的一个实施例是机器人在工厂中自行完成工作,在此子视窗,设计者可自行编辑工厂的场景,并提供模拟观察机器人的工作表现,用以判断所编辑机器人的智能是否满足要求。
本发明自动装置的程序开发方法较佳实施例,可在感知外界信息后,自行思考推论目前情况,并进行决策,决定如何因应目前情况,使该自动装置自行完成工作。
本发明自动装置的程序开发方法较佳实施例,包括发展软体、软体模拟器以及自动装置。发展软体可以编辑建构装置的智能,之后,可以在软体模拟器中模拟装置智能化时是否可以自行完成工作,若无法自行完成工作,可在发展软体中修正所编辑的智能,直到可自行完成工作,在模拟器中验证装置可自行完成工作时,发展软体可将所编辑建构的智能,编译成装置可以执行的程序码,并下载至自动装置,使自动装置可按所编辑建构的智能,使该自动装置自行完成工作。
本发明自动装置的程序开发方法较佳实施例,是以数个线程的方式实现,且线程分类为常态线程与监督线程,所有的常态线程以一个顺序,按分时多工的方式使用CPU时间依序执行,监督线程掌握整个系统所有事件,并有权依所发生事件,更改常态线程的顺序,以便能对所发生事件即时反应。
本发明自动装置的程序开发方法较佳实施例,其操作方式采用图形化界面,各种基本图形用以表达装置的各种行为,设计者可以树状结构将数个所定义的图形相连接,用以设计装置的动作。装置的各种行为都提供相关的输入与输出参数,以便所设计的装置动作可以感之外界情况,在思考推论后作适当的决策,并进行适当的动作,也就是该自动装置的人工智能。
在本发明自动装置的程序开发方法较佳实施例中,该设计者可以设计符合其装置的场景,以便设计完成的人工智能,可以针对该设计者的需要,模拟装置是否能在其环境中,自行完成工作。而且,软体模拟器模拟的结果,可作为对所编辑的人工智能进行除错或细微调整依据,以便能设计更完美的人工智能。此模拟器也提供将多个使用所编辑的人工智能载入,进行对抗竞赛,以便使用可以观摩彼此的设计,学习更完美的设计,并达到教育娱乐的效果。
本发明的自动装置包含该输入单元、输出单元及控制单元,该输入单元用以感知外界情况,该输出单元用以控制该自动装置的动作,该控制单元驱使该自动装置可以实现所设计的人工智能。
本发明自动装置的程序开发方法较佳实施例,是可借助图形化界面供设计者将其设计理念转为行为树的节点,并依据该节点模拟该自动装置的行为,供设计者得知该行为是否符合该设计理念,达成「容易实现设计理念」及「缩短开发时间」等功效。
本发明自动装置的程序开发方法较佳实施例,是于该自动装置的行为模拟结果符合设计理念后,将行为树的节点转为具有多线程的控制程序,以控制该自动装置依据该设计理念运作,达成“容易设计行为树的节点”及“容易得知行为树是否有错”等功效。
只是以上所述的,仅为本发明的较佳实施例而已,当不能以此限定本发明实施范围;故,凡依本发明申请专利范围及创作说明书内容所作的简单的等效变化与修饰,皆应仍属本发明专利涵盖之范围内。
Claims (9)
1.一种自动装置的程序开发方法,是借助一个电脑系统对该自动装置进行控制程序开发作业,其特征在于,该方法包括:
建模步骤,是供设计者以图形化界面对该自动装置建立行为树,该行为树包括多个节点及其触发事件;
模拟步骤,是依据各节点的触发事件模拟该行为树的行为,并显示该模拟结果;及
判断步骤,是依据期望资料判断该模拟结果是否符合预期,若判断为是,进行编程步骤,若判断为否,重新进行该建模步骤,其中该编程步骤是将该行为树编辑为控制程序,该控制程序具有多个线程。
2.如权利要求1所述的自动装置的程序开发方法,其特征在于,该多个线程包括多个常态线程及多个监督线程,该多个常态线程是依该行为树的行为转换而成,该多个监督线程是监视相应常态线程的状态值,若状态值出现异常,则监督线程修正该状态值,使常态线程回复正常。
3.如权利要求2所述的自动装置的程序开发方法,其特征在于,该行为树的行为是以同步方式受常态线程控制,常态线程是以非同步方式受监督线程控制。
4.如权利要求1所述的自动装置的程序开发方法,其特征在于,该自动装置具有多个输入元件与多个输出元件,该行为树的节点包括多个输入节点、多个输出节点及多个控制节点,该多个输入节点用以读取该输入元件的信号状态,该多个输出节点用以决定该输出元件的动作状态,各控制节点用以控制其他节点。
5.如权利要求1所述的自动装置的程序开发方法,其特征在于,该建模步骤是依据该设计者所发出的选择指令选择至少一个自动装置,并供该设计者建立该自动装置所属的行为树。
6.如权利要求1所述的自动装置的程序开发方法,其特征在于,该电脑系统接收来自该设计者所输入的多个期望值,并以该多个期望值组成该期望资料。
7.如权利要求1所述的自动装置的程序开发方法,其特征在于,该电脑系统依据该设计者所发出的一个转码指令,而将该控制程序转为该转码指令所指定的程序码。
8.如权利要求1所述的自动装置的程序开发方法,其特征在于,另包括一个载码步骤,是将该控制程序编译成可执行码,并将该可执行码载入该自动装置。
9.如权利要求8所述的自动装置的程序开发方法,其特征在于,该电脑系统依据该设计者所发出的修正指令,而载入该自动装置中的可执行码,并将该可执行码转为待修程序,供该设计者修改该待修程序。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210491249.8A CN103838563B (zh) | 2012-11-27 | 2012-11-27 | 自动装置的程序开发方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210491249.8A CN103838563B (zh) | 2012-11-27 | 2012-11-27 | 自动装置的程序开发方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103838563A CN103838563A (zh) | 2014-06-04 |
CN103838563B true CN103838563B (zh) | 2017-07-28 |
Family
ID=50802104
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210491249.8A Expired - Fee Related CN103838563B (zh) | 2012-11-27 | 2012-11-27 | 自动装置的程序开发方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103838563B (zh) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP3214510B1 (en) | 2016-03-03 | 2021-06-30 | Magazino GmbH | Controlling process of robots having a behavior tree architecture |
CN106647354A (zh) * | 2016-10-31 | 2017-05-10 | 遨博(北京)智能科技有限公司 | 一种控制方法、装置及系统 |
CN106959850A (zh) * | 2017-03-02 | 2017-07-18 | 上海时年信息科技有限公司 | 自动生成行为树代码的方法及系统 |
CN106899441B (zh) * | 2017-03-16 | 2019-09-03 | 网易(杭州)网络有限公司 | 故障节点定位方法及系统 |
CN108563161A (zh) * | 2018-01-22 | 2018-09-21 | 深圳市牧激科技有限公司 | 开放式智能控制方法、系统及计算机可读存储介质 |
CN112235419B (zh) * | 2020-12-09 | 2021-03-09 | 之江实验室 | 基于行为树的机器人云平台执行引擎和执行方法 |
CN113967913B (zh) * | 2021-10-22 | 2024-03-26 | 中冶赛迪上海工程技术有限公司 | 一种抓钢装置的运动规划方法及系统 |
WO2023142078A1 (zh) * | 2022-01-29 | 2023-08-03 | 西门子股份公司 | 工作流构建方法、系统、介质及程序产品 |
CN115545213B (zh) * | 2022-10-13 | 2023-04-18 | 北京鼎成智造科技有限公司 | 一种基于图形化行为树和强化学习的建模方法及装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101501637A (zh) * | 2005-03-25 | 2009-08-05 | 索尼株式会社 | 模块化镜像下载系统 |
CN101872322A (zh) * | 2009-04-27 | 2010-10-27 | 武汉大学 | 一种基于需求模型的软件特性检测方法 |
CN102707712A (zh) * | 2012-06-06 | 2012-10-03 | 广州山锋测控技术有限公司 | 电子装备故障诊断方法和系统 |
-
2012
- 2012-11-27 CN CN201210491249.8A patent/CN103838563B/zh not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101501637A (zh) * | 2005-03-25 | 2009-08-05 | 索尼株式会社 | 模块化镜像下载系统 |
CN101872322A (zh) * | 2009-04-27 | 2010-10-27 | 武汉大学 | 一种基于需求模型的软件特性检测方法 |
CN102707712A (zh) * | 2012-06-06 | 2012-10-03 | 广州山锋测控技术有限公司 | 电子装备故障诊断方法和系统 |
Also Published As
Publication number | Publication date |
---|---|
CN103838563A (zh) | 2014-06-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103838563B (zh) | 自动装置的程序开发方法 | |
Huang et al. | Code3: A system for end-to-end programming of mobile manipulator robots for novices and experts | |
US10427295B2 (en) | System and method for reinforcing programming education through robotic feedback | |
DK2435216T3 (en) | SYSTEM AND PROCEDURE FOR EDITING AND MANAGING A MOBILE ROBOT'S BEHAVIOR | |
Biggs et al. | A survey of robot programming systems | |
CN100590629C (zh) | 用于机器人仿真的装置、程序、记录介质以及方法 | |
EP1321248A1 (en) | Authoring system and authoring method, and storage medium | |
US20130275091A1 (en) | Non-programmer method for creating simulation-enabled 3d robotic models for immediate robotic simulation, without programming intervention | |
JP7384575B2 (ja) | 情報処理装置、仲介装置、シミュレートシステム、情報処理方法及びプログラム | |
CN110516389B (zh) | 行为控制策略的学习方法、装置、设备及存储介质 | |
JP3785349B2 (ja) | シミュレーション装置 | |
US20200234609A1 (en) | System and method for teaching computer programming | |
Mirza et al. | Physically embedded planning problems: New challenges for reinforcement learning | |
KR102571997B1 (ko) | 정보 처리 장치, 중개 장치, 시뮬레이트 시스템 및 정보 처리 방법 | |
Thai | Exploring robotics with ROBOTIS Systems | |
KR102529023B1 (ko) | 트레이닝 처리 장치, 중개 장치, 트레이닝 시스템 및 트레이닝 처리 방법 | |
TWI475483B (zh) | 自動裝置的程式開發方法 | |
Kasper et al. | Abstracting perception and manipulation in end-user robot programming using Sikuli | |
Floyd et al. | Building learning by observation agents using jloaf | |
Floyd et al. | Creation of devs models using imitation learning | |
Kumar et al. | Simulation in robotics | |
US20220404835A1 (en) | Systems, computer program products, and methods for building simulated worlds | |
KR101052740B1 (ko) | 모션캡쳐를 이용한 다관절 로봇 행위 모델링 도구 및 방법 | |
Karagiannis et al. | WSNGE: a platform for simulating complex wireless sensor networks supporting rich network visualization and online interactivity. | |
Dobrovolný | Platformer game with block-based programming control |
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: 20170728 |
|
CF01 | Termination of patent right due to non-payment of annual fee |