一种用于机器人室内未知环境下的视觉目标驱动导航系统

文档序号:31077460发布日期:2022-08-09 21:54阅读:121来源:国知局
一种用于机器人室内未知环境下的视觉目标驱动导航系统

1.本发明属于机器人智能导航和人工智能控制领域,特别涉及一种用于室内未知环境下的视觉目标驱动导航系统。


背景技术:

2.国务院印发的《中国制造2025》国家行动纲领中明确指出需重点发展智能制造工程,紧密围绕重点制造领域关键环节,开展新一代信息技术与制造装备融合的集成创新,实现关键工序智能化、关键岗位机器人替代和生产过程智能优化控制。《新一代人工智能发展规划》中明确指出需构建开放协同的人工智能科技创新体系,包括关键共性技术、基础研究系统等多方面的部署。高级机器学习理论重点突破自适应学习、自主学习等理论方法,实现具备高可解释性、强泛化能力的人工智能。
3.传统的室内导航方法很大程度上依赖于预先确定的地图,或者即时建图,这在时间和人力上都很昂贵。此外,由于环境的变化,地图只有在采集时才准确。我们认为,这种获取高质量地图的严格要求从根本上限制了机器人系统在我们这个动态世界中的可实现性。而本专利涉及到的机器人室内未知环境下的视觉目标驱动导航作为一种新兴的室内导航技术方案,将会为机器人的导航方式及应用场景提供更多的可行方案,为新一代信息技术与制造装备的集成创新提供动力。
4.机器人室内未知环境下的视觉目标驱动导航将人工智能技术与机器人导航技术紧密连接在一起,其终极目标是:通过将人工智能的信息编码、处理、记忆与推理能力赋予机器人,使机器人在没有地图、卫星信号等额外辅助定位信息的场景下,仅依靠视觉信息执行导航任务。这对机器人对当前环境观测和导航目标的识别、记忆、推理以及下一步的决策能力提出了更高挑战。但是,(1)现实物理世界中,训练一个导航智能体十分困难,因为在现实场景中训练会消耗大量的时间,并具有危险性,机器人动作不易控制和实验条件不易重现。(2)使用深度学习对多种原生数据预处理需要较强的算力,而机器人的机载控制终端并不具备开展大规模的人工智能算法的训练和测试能力。
5.因此,亟需出现一种将人工智能方法和机器人视觉导航相融合的实验研究系统,该系统具备机器人导航行为的模拟能力和人工智能算法的训练和测试能力。该系统的出现,可为研究者提供方便,灵活和快速的机器人导航效果验证,为进一步泛化到现实世界的机器人导航系统提供可靠的实验参考。


技术实现要素:

6.为了解决上述现有技术中存在的不足,本发明提出了一种用于室内未知环境下的视觉目标驱动导航研究系统。
7.为了实现上述目的,本发明的技术方案提供一种用于机器人室内未知环境下的视觉目标驱动导航系统,包括特征预处理模块、神经网络模块和训练交互模块,
8.所述特征预处理模块,用于将机器人当前所处环境及导航目标的原始传感器数据
进行预处理,以及虚拟场景布局与结构信息的重构建;
9.所述神经网络模块,用于将记忆推理模型、感知模型和规划决策模型有序组织起来;
10.所述训练交互模块,用于基于配置文件、主函数入口、组件初始化、环境、优化器、损失函数和智能体,负责整个平台有序的管理及运行,以支持快速实现室内未知环境下的视觉目标驱动导航,缩小虚拟环境和真实物理环境的差距。
11.而且,支持添加需要的网络模块和算法模型,当观测环境和导航目标的数据格式发生变化时,针对处理观测环境和导航目标的特征提取网络能够灵活替换修改。
12.而且,为实现自动室内机器人导航,进行以下步骤,
13.步骤1、确定仿真环境,包括采用领域公开的仿真环境作为机器人的训练环境,通过环境重构建对场景布局及结构信息进行多线程封装,精简环境数据;
14.步骤2、导航目标特征提取,包括对原始传感器的数据进行特征预提取,同时根据先验知识的数据格式,采用不同的特征提取方式提取特征;
15.步骤3、特征融合,包括将从仿真环境中提取出来的特征和导航目标的特征进行融合,形成导航特征向量;
16.步骤4、策略训练,包括确定强化学习的基本算法,确定组件与交互参数,包括网络模型、导航逻辑网络部分,并提供对象字典、动作字典;
17.步骤5、超参数确定,包括确定最大的片段长度,智能体可执行的最大步数和学习率;
18.步骤6、组件微调,包括根据训练的效果,对网络模型的参数和组件进行微调,从而达到更优的效果;
19.步骤7、根据步骤6所得结果实现高效自动室内机器人导航。
20.本发明的有益效果是:
21.(1)无地图导航:本专利涉及的导航系统为一种无地图导航范式的新系统,该系统支持智能体在无预先绘制地图的前提下,在室内进行探索,寻找目标。
22.(1)仿真性质:相比传统的导航模系统,本专利涉及的系统可支持导航智能体的快速训练,并支持导入主流环境和自制环境训练导航智能体;
23.(3)高度模块化:本发明涉及的导航系统支持研究者们快速的上手室内视觉目标驱动导航的相关研究,并帮助研究者们将领域内已有的算法进行复现。无论是新算法设计还是已有算法的复现,模块化的框架和详细的参数设定可以让研究者不用从头实现整个强化学习交互流程,且在对比实验的时候把变量控制到最小,方便实验者对比算法效果,可以支持自动导航快速实现。
24.本发明方案实施简单方便,实用性强,解决了相关技术存在的实用性低及实际应用不便的问题,能够提高用户体验,具有重要的市场价值。
附图说明
25.图1为本发明实施例系统框架图。
26.图2为本发明实施例的实施流程图。
具体实施方式
27.以下结合附图和实施例具体说明本发明的技术方案。
28.参见图1,本发明实施例提供一种用于机器人室内未知环境下的视觉目标驱动导航系统,该系统由三个模块组成,分别是特征预处理模块、神经网络模块和训练交互模块。特征预处理模块将机器人当前所处环境及导航目标的原始传感器数据进行预处理,以及虚拟场景布局与结构信息的重构建。神经网络模块负责将记忆推理模型、感知模型和规划决策模型有序组织起来。训练交互模块中配置文件、主函数入口、组件初始化、环境、优化器、损失函数和智能体,负责将整个系统有序的管理及运行起来。本发明可以有效提升科研人员对室内未知环境下的视觉目标驱动导航流程(可体现为算法)构建,训练和测试效率,缩小虚拟环境和真实物理环境的差距。
29.这种用于机器人室内未知环境下的视觉目标驱动导航系统,能灵活修改,添加需要的网络模块和算法模型,当观测环境和导航目标的数据格式发生变化时,针对处理观测环境和导航目标的特征提取网络可以灵活替换修改,而不影响其他模块的使用。
30.并且,其参数模块能灵活的调节系统的功能,例如:训练或者测试。
31.本发明实施例的一种用于机器人室内未知环境下的视觉目标驱动导航系统,该系统可以帮助科研人员快速构建,训练和测试机器人室内视觉目标驱动导航流程的性能,以实现高效自动室内机器人导航,实施例流程图如图2所示。
32.具体实施步骤如下:
33.1、确定仿真环境。采用领域公开的仿真环境作为机器人的训练环境,利用本专利所述系统的环境重构建模块对场景布局及结构信息进行多线程封装,精简环境数据。具体实施时,可利用现有的仿真框架ai2-thor、habitat、house 3d、gibson等。
34.2、导航目标特征提取。采用本发明所述系统的特征预提取功能,对原始传感器的数据(例如rgb/d)进行特征预提取。同时,针对其他数据集提供的先验知识,可根据先验知识的数据格式,采用不同的特征提取方式提取特征。
35.3、特征融合。将从仿真环境中提取出来的特征和导航目标的特征进行融合,形成导航特征向量。
36.4、策略训练。策略训练需要确定强化学习的基本算法,包括:模型的输出、损失函数的类型和强化学习自身算法的相关参数。下一步需要确定组件与交互参数,包括:网络模型的设计,导航逻辑网络部分。过程中需要提供对象字典、动作字典。
37.5、超参数确定。在程序运行前,需确定最大的片段长度,智能体可执行的最大步数和学习率等。
38.6、组件微调。在这一步,通常需要根据训练的效果,对网络模型的参数,组件进行微调,从而达到更优的效果。
39.7、根据步骤6所得结果实现高效自动室内机器人导航。
40.具体实施时,本领域技术人员可采用软件技术实现以上过程的自动运行。
41.本发明实施例提供的机器人室内未知环境下的视觉目标驱动导航研究系统是基于python和pytorch构架的。该系统除了可以支持各种模拟环境的导入以外,它最大的功用在于降低研究门槛和精简研究流程,从而加速流程开发与对比测试。为了实现这一点,本系统形成了相互独立又完备的不同模块,通过调用模块的组件来形成导航流程以及相应的完
整实验和测试。模块组织的代码具有很强的灵活性。
42.导航流程(可表现为算法)的生成、训练与测试都通过书写一个配置文件来完成。配置文件中的参数既有对模块组件的选择,也有各种超参数的设置。一个配置文件的完成大约分为3个步骤:1.强化学习基本算法确定;2.组件与交互参数确定;3.超参数确定。在目前的研究领域中,2中往往包括了数据预处理的加速步骤。
43.1强化学习基本算法选择
44.基本算法的选择之所以放在首位,是因为无论网络模型如何修改变动,深度学习技巧如何加入,一些基本的输入输出量、网络结构、损失函数基本元素和超参数在选择强化学习基本算法的时候就已经确定了。
45.在本系统中,强化学习基本方法的选择是通过不同的主函数入口选择的,但同时配置文件中就必须包含相应的超参数和组件。根据是要测试还是训练,是单模型方法还是多模型方法,有不同的入口。主函数负责读取配置文件,生成实验文件夹,产生记录文件,根据配置文件调用训练器或者测试器开始具体的一次测试或者训练。定期会输出数据,定期会保存模型。
46.2组件与交互参数确定
47.本框架的一大特点在于模块化一个完整算法研究中需要的结构与机制,可以方便地进行组合和局部调整,并且定义了清晰的接口用于自定义和扩充组件。在强化学习基本算法选定之后,需要进一步根据导航的需要,在模块中选择或者自定义相应的组件。这部分设计配置文件编写的主要部分,包括三个部分。
48.网络模型设计:网络模型是导航流程的核心,本框架将网络分为三个部分:(1)感知输入与预处理部分;(2)导航逻辑网络部分;(3)网络输出层。
49.感知输入与预处理部分要解决机器人陌生环境下的泛化导航问题,输入的传感数据的形式以及信息量需要适合并足以支撑智能体形成有效的决策。在本系统中,一些被广泛采用的感知输入处理网络已经预先集成,可以方便地组合成信息丰富的输入特征向量,乃至进行预处理提取,从而加速训练过程。决定好输入量之后,只需要在配置文件中对对象字典与目标字典指明需要的数据的文件名即可,在生成环境是会自动获取这些数据并按照对象字典与目标字典中的字符串表示传递给神经网络。
50.导航逻辑网络部分的功能是将对状态特征向量进行判断处理,最终输出最优的动作。本部分网络的架构与参数将直接决定策略的好坏,可以预先实现多层感知器(mlp,multi-layer perceptron)以及长短期记忆神经网络(lstm,long short-term memory)结构的网络作为例程,方便开发与实现。通过对导航这个具体问题的特点和逻辑进行分析,可以启发不同的结构设计。
51.网络输出层的作用是根据所选择的强化学习算法的而决定的,根据不同的算法,输出不同维度的值函数数据。
52.在本系统中,实施例提供了对原始环境进行二次封装的流程,其中就包括了数据预处理部分,预处理之后的数据称为二级观察数据。因此本发明对神经网络的设计可以直接从二级观察数据开始决定——例如,需要目标检测结果、resnet50特征向量、对导航目标使用glove进行特征提取的一个网络,只要预处理操作完成,可以直接在对象字典与目标字典中指定二级观察数据的文件名,网络代码中也不需要再调用或者复现预处理网络的部
分,除开一些维度伸缩的线性层外,几乎能够直接从导航逻辑网络部分开始网络设计。
53.3交互参数与其他组件确定
54.交互参数指的是智能体与环境交互所需要的一系列参数协议,它包括对象字典与目标字典,用于指定环境向智能体提供的数据;动作字典,用于指定智能体能够向环境发出的动作,需要按照一定规则编写,便于环境认识;奖励字典,用于指定环境在什么情况下如何向智能体提供奖励。
55.其中对象字典与目标字典在上文中已经确定好;对象字典要根据环境所支持的动作来定义,例如ai2-thor离散数据集,支持45度的旋转和30度的视角俯仰;奖励字典以事件的字符串为键值,奖励的数值为值,例如多个工作采用的找到目标奖励10分,碰撞扣0.1分,每一步扣0.01分可以写作:奖励字典={碰撞:-0.1,步数:-0.01,目标成功找到:10,,目标失败找到:0}。需要新事件时,在环境部分代码中修改即可。
56.接下来是组件确定。使用什么环境是可以提前确定并更换的;损失函数在选择强化学习基本算法时已经确定,但是可以更细化地选择损失函数是否带熵和gae;训练器在选择强化学习算法时已经基本确定,但是如果要采用类似于元学习这样的深度学习方法时,需要增加新的训练器;执行器根据模型的并行情况会有不同,例如a3c和a2c需要不同的执行器;优化器可以自由选择,当模型需要同步参数时,推荐使用分享系列优化器,会使用同一个优化器,保存相同的状态来优化每一个线程的模型,从而加速收敛;需要确定智能体记录的需要传递给model的信息,例如上一步动作、上一步动作分布等这些历史信息。
57.以下是这些模块的定义。
58.智能体:智能体可以被认为是一种有独立智能的能与环境交互的对象。在概念上,它接受环境传达给它的信息,包括对自己的历史记录等自我的信息,这些信息一般称为观察,然后根据这些观察,在离散或者连续的动作空间中选择一个动作,反馈给环境。
59.环境:环境是智能体所处在的或者需要去交互的一个对象,不一定是物理空间,也可以是智能体需要去解决的一个系统。环境的所有信息往往不会甚至不可能全部给到智能体,但是当环境受到智能体的动作的作用后,有可能改变环境的状态,智能体本身也可能因为状态的改变而得到不同于之前的环境的信息,从而推测学习环境的全貌和规则。
60.工具中对以上两个概念的实现和封装并没有扭曲或修改其概念。
61.模型:模型指神经网络模型,基于pytorch框架搭建。智能体是对模型的封装,让数据的输入输出符合强化学习交互概念,并记录一些自我信息。但是看待模型时我们仍然可以把它看作单纯的输入输出系统。模型接收字典数据,键值为用户自定义的数据标签,在编写模型时取字典里的不同数据进行相应的处理,最后输出强化学习损失函数所需要的数据即可,例如策略分布pi和值v。
62.交互进程:强化学习算法仍然是从数据中学习的算法,只不过数据是从交互中产生,因此本工具有一个单独的类来代表和进行交互进程,即环境和智能体在执行器中进行交互,执行器同时负责记录用于学习的经验和试验结果,并打包传递给损失函数计算。
63.训练进程:用于训练一个智能体的函数,训练进程将包含一个线程的(多线程多模型方法中)完整训练流程,从类的初始化,到调用执行器产生n步经验,到损失函数计算,梯度剪裁,调用优化器进行反向传播,试验结果记录等等。
64.测试进程:用于测试模型的函数,基本可以认为是训练器的精简版,但是有更为详
尽的数据记录和处理代码。单模型多环境方法中目前不包含测试器。
65.辅助工具:各种辅助用的函数,大部分都是可以自由调用的。
66.4超参数确定
67.最后是训练阶段的一些超参数的设置。本框架将大量算法总结之后,提取出了所有可以修改的对训练结果会造成影响的超参数,并统一收入配置文件,方便研究开发过程中进行调整修改,非常方便。这些参数在不修改的情况下都已经设定好默认值,需要修改时只需要在配置文件中写明即可覆盖。
68.具体实施时,本发明技术方案可由本领域技术人员采用计算机软件模块化技术实现,实现方案的相应装置例如存储本发明技术方案相应计算机程序的计算机可读存储介质以及包括运行相应计算机程序的计算机设备,也应当在本发明的保护范围内。
69.本文中所描述的具体实施例仅仅是对本发明精神作举例说明。本发明所属技术领域的技术人员可以对所描述的具体实施例做各种各样的修改或补充或采用类似的方式替代,但并不会偏离本发明的精神或者超越所附权利要求书所定义的范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1