System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本申请涉及机器人。具体地,本申请涉及一种应用于机器人的逻辑模块开发方法、装置、计算机设备和计算机可读存储介质。
技术介绍
1、近年来,随着人工智能技术的飞速发展,智能机器人不断涌现,并逐渐应用于各行各业。智能机器人能够取代人类从事危险、繁重的工作,从工业制造到医疗保健,再到日常生活的方方面面,展现了广泛的应用前景。
2、然而,尽管智能机器人在许多领域展现出了巨大的潜力,但在实际应用中,为解决特定业务场景中的问题,需要编程技术人员开发和定制相应的应用程序。由于业务逻辑的复杂性,并缺乏成熟的智能机器人逻辑模块开发框架支持,导致智能机器人逻辑模块的开发工作变得异常繁琐、复杂且缺乏复用性,无法实现快速开发业务场景。这严重限制了智能机器人在实际场景中快速应用的能力,导致其落地速度受到了严重影响。
技术实现思路
1、基于此,有必要针对上述技术问题,提供一种应用于机器人的逻辑模块开发方法、装置、计算机设备和计算机可读存储介质。
2、第一方面,本申请提供了一种应用于机器人的逻辑模块开发方法。所述方法包括:
3、获取目标业务的整体业务逻辑;
4、根据预设的逻辑模块拆解模板对所述整体业务逻辑进行分解,生成多个逻辑子模块;其中,所述逻辑子模块用于运行所述整体业务逻辑分解得到的业务子逻辑;
5、针对每个逻辑子模块,获取所述逻辑子模块需运行的业务子逻辑的业务特征;
6、针对每个逻辑子模块,将所述逻辑子模块对应的业务特征与预设的逻辑模块触
7、根据所述多个逻辑子模块之间的调用关系,确定所述多个逻辑子模块之间的业务逻辑调度执行策略;
8、针对每个逻辑子模块,将所述逻辑子模块对应的业务特征与预设的逻辑模块通信机制库进行匹配,确定所述逻辑子模块的模块通信机制;其中,所述逻辑模块通信机制库中存储有不同的业务特征关联的通信机制,所述通信机制用于指示所述逻辑子模块与所述机器人的感知模块和/或运动模块之间的通信方式。
9、在其中一个实施例中,所述逻辑子模块包括输入接口、输出接口和反馈接口;其中,
10、所述输入接口,与所述感知模块相连接,用于接收所述感知模块传输的感知数据;
11、所述输出接口,与所述运动模块相连接,用于向所述运动模块发送运动指令;
12、所述反馈接口,与所述运动模块相连接,用于接收所述运动模块响应于所述运动指令反馈的运动结果。
13、在其中一个实施例中,所述方法还包括:
14、针对每个逻辑子模块,将所述逻辑子模块对应的业务子逻辑编译为动态链接库,并为所述逻辑子模块创建独立线程和独立消息队列;
15、针对每个逻辑子模块,将所述动态链接库加载至所述逻辑子模块中,并在所述独立线程中运行所述业务子逻辑;
16、针对每个逻辑子模块,通过所述独立消息队列与所述机器人中的其他模块进行消息传递。
17、在其中一个实施例中,所述将所述逻辑子模块对应的业务特征与预设的逻辑模块触发模板库进行匹配,并根据匹配结果确定所述逻辑子模块的触发机制,包括:
18、若所述逻辑子模块对应的业务特征为表示受消息驱动的业务的特征,则逻辑子模块的触发机制为消息触发;
19、若所述逻辑子模块对应的业务特征为表示使用严格时序的业务的特征,则逻辑子模块的触发机制为时钟触发;
20、若所述逻辑子模块对应的业务特征为表示逻辑简单的业务的特征,则逻辑子模块的触发机制为瀑布流触发;
21、若所述逻辑子模块对应的业务特征表示有限状态机,并有明确事件触发状态迁移的业务的特征,则逻辑子模块的触发机制为使用状态机触发。
22、在其中一个实施例中,所述方法还包括:
23、响应于所述逻辑子模块的调用请求,激活所述逻辑子模块,并将所述逻辑子模块接入消息总线和运动总线;
24、通过所述消息总线向所述逻辑子模块询问订阅消息;
25、当所述消息总线接收到新的消息时,根据订阅情况插入各逻辑子模块的消息队列;
26、若逻辑子模块的触发机制为消息触发,则将消息根据优先级和时间戳排序,进入消息队列,等待被处理;
27、若逻辑子模块的触发机制为时钟触发,则将消息暂存于缓冲区,等待逻辑子模块的读取;
28、若逻辑子模块的触发机制为瀑布流触发,则存储消息或触发动作返回;
29、若逻辑子模块的触发机制为使用状态机触发,则将消息根据优先级和时间戳排序,进入消息队列,等待被处理;
30、当逻辑子模块通过所述运动总线发送运动指令时,如果所述机器人的运动模块被所述逻辑子模块控制,则所述运动模块中断之前的运动指令,并执行最新的运动指令;如果所述运动模块被其他逻辑子模块控制,则所述运动指令被打回。
31、在其中一个实施例中,所述根据所述多个逻辑子模块之间的调用关系,确定所述多个逻辑子模块之间的业务逻辑调度执行策略,包括:
32、若所述逻辑子模块之间的调用关系为有前后赖关系,则所述逻辑子模块之间采用串行调用机制;
33、若所述逻辑子模块之间的调用关系为相互独立且互不干扰,则所述逻辑子模块之间采用并行调用机制;
34、根据所述多个逻辑子模块之间采用的调用机制和所述多个逻辑子模块之间的执行顺序,生成所述多个逻辑子模块之间的业务逻辑调度执行策略。
35、在其中一个实施例中,所述方法还包括:
36、采用阻塞机制或非阻塞机制,以使前序的逻辑子模块等待后序的逻辑子模块运行结束或运行通知之后进行时序处理;其中,所述前序的逻辑子模块的执行顺序先于所述后序的逻辑子模块的执行顺序,且所述前序的逻辑子模块与所述后序的逻辑子模块之间存在依赖关系。
37、在其中一个实施例中,所述将所述逻辑子模块对应的业务特征与预设的逻辑模块通信机制库进行匹配,确定所述逻辑子模块的模块通信机制,包括:
38、若所述逻辑子模块对应的业务特征为表示所述逻辑子模块订阅所述感知模块和/或所述运动模块的消息的特征,则逻辑子模块的模块通信机制为消息订阅分发机制;
39、若所述逻辑子模块对应的业务特征为表示所述逻辑子模块与所述感知模块和/或所述运动模块交换数据的特征,则逻辑子模块的模块通信机制为进程间通讯机制。
40、第二方面,本申请提供了一种应用于机器人的逻辑模块开发装置。所述装置包括:
41、业务逻辑获取模块,用于获取目标业务的整体业务逻辑;
42、业务逻辑拆解模块,用于根据预设的逻辑模块拆解模板对所述整体业务逻辑进行分解,生成多个逻辑子模块;其中,所述逻辑子模块用于运行所述整体业务逻辑分解得到的业务子逻辑;
<本文档来自技高网...【技术保护点】
1.一种应用于机器人的逻辑模块开发方法,其特征在于,所述方法包括:
2.根据权利要求1所述的方法,其特征在于,所述逻辑子模块包括输入接口、输出接口和反馈接口;其中,
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
4.根据权利要求1所述的方法,其特征在于,所述将所述逻辑子模块对应的业务特征与预设的逻辑模块触发模板库进行匹配,并根据匹配结果确定所述逻辑子模块的触发机制,包括:
5.根据权利要求4所述的方法,其特征在于,所述方法还包括:
6.根据权利要求1所述的方法,其特征在于,所述根据所述多个逻辑子模块之间的调用关系,确定所述多个逻辑子模块之间的业务逻辑调度执行策略,包括:
7.根据权利要求6所述的方法,其特征在于,所述方法还包括:
8.根据权利要求1所述的方法,其特征在于,所述将所述逻辑子模块对应的业务特征与预设的逻辑模块通信机制库进行匹配,确定所述逻辑子模块的模块通信机制,包括:
9.一种应用于机器人的逻辑模块开发装置,其特征在于,所述装置包括:
10.一种计
...【技术特征摘要】
1.一种应用于机器人的逻辑模块开发方法,其特征在于,所述方法包括:
2.根据权利要求1所述的方法,其特征在于,所述逻辑子模块包括输入接口、输出接口和反馈接口;其中,
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
4.根据权利要求1所述的方法,其特征在于,所述将所述逻辑子模块对应的业务特征与预设的逻辑模块触发模板库进行匹配,并根据匹配结果确定所述逻辑子模块的触发机制,包括:
5.根据权利要求4所述的方法,其特征在于,所述方法还包括:
6.根据权利要求1所述的方法,其特征在于,所述根据所述多个逻...
【专利技术属性】
技术研发人员:陈翔,刘宇华,
申请(专利权)人:深圳市木牛机器人科技有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。