版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
工业机器视觉人工智能应用实践
--4.2基于视觉的模仿学习应用1.1基于视觉的模仿学习应用1.1.1模仿学习模仿学习(ImitationLearning,IL)是一种机器学习方法,通过观察和模仿专家的行为来学习完成任务的策略。在模仿学习中,机器并不直接通过奖励函数来优化行为,而是通过模仿已知的示范(例如人类或其他智能体的行为)来学习如何做出正确的决策。模仿学习可以分为两种主要方法。●行为克隆(BehavioralCloning,BC):将模仿学习视为监督学习问题,机器根据专家的示范输入(如图像或传感器数据)来预测输出动作。●逆强化学习(InverseReinforcementLearning,IRL):通过观察专家的行为推断隐藏的奖励函数,机器基于这个奖励函数来学习优化决策。1.专家示范数据专家示范数据是模仿学习中使用的一种关键数据形式,指通过记录人类或其他高性能智能体在任务中表现出的行为轨迹生成的数据集。这些数据包含专家在不同状态下的决策行为,用于指导学习智能体模仿专家的决策模式。专家示范数据是模仿学习的基础,通过记录专家行为,帮助智能体快速学习复杂的任务。采集高质量的专家示范数据需要充分考虑任务需求和数据处理流程,确保数据的多样性和准确性。1.1基于视觉的模仿学习应用1)专家示范数据的基本组成专家示范数据通常以状态-动作对(state-actionpairs)的形式表示,每一组状态-动作对数据记录了专家在某一特定状态下所采取的动作,见表1。1.1基于视觉的模仿学习应用表1专家示范数据基本组成字段含义示例状态(State,st)描述当前环境的信息,如图像、传感器数据、位置坐标等摄像头捕获的环境图像或机器人当前位置动作(Action,at)专家在当前状态下执行的决策行为机械臂的运动方向、无人车的转向角度时间戳(t)数据采集的时间点,用于维持序列的一致性2024-12-1010:00奖励信息(Optional)某些情况下记录每个动作的奖励值,用于评估专家的表现完成任务得分、抓取物体的成功与否2)专家数据的主要获取方式(见表2)1.1基于视觉的模仿学习应用表2专家数据的主要获取方式获取方式特点适用场景人类专家操作由人类直接操作设备或系统,数据真实可靠,能体现实际任务中的操作策略自动驾驶、机器人操作等复杂真实任务高性能模型生成利用已训练好的高性能模型在仿真环境中完成任务,高效采集数据仿真任务、强化学习后的行为记录模拟环境采集通过仿真工具设计任务逻辑,程序化生成理想操作轨迹,采集效率高自动驾驶仿真、机器人路径规划2.行为克隆行为克隆是一种模仿学习方法,其核心思想是将决策问题转化为监督学习问题。通过学习人类或其他专家的行为模式来训练一个模型,然后基于该模型来预测给定状态下的最优动作,确保其能在类似的环境中模仿人类或其他专家的行为。行为克隆常用于自动驾驶、机器人控制等领域。1)行为克隆的原理(1)输入与输出的定义:输入(state)是系统当前的状态,如传感器数据、图像等;输出(action)是对应状态下的动作,如机器人手臂的运动指令。(2)目标函数:学习一个策略函数,使其能够最小化专家示范数据的误差。例如,可使用均方误差(MeanSquareError,MSE)或交叉熵损失来衡量模型输出与专家动作的差异。(3)假设:假设专家的动作是最优的,即模型通过学习专家示范可以获得理想的行为;假设训练数据已覆盖所有可能的状态。1.1基于视觉的模仿学习应用2)行为克隆模型训练的流程步骤(见图1)1.1基于视觉的模仿学习应用收集专家示范数据数据预处理模型选择与构建模型训练模型评估与验证模型部署与测试图1行为克隆模型训练的流程步骤3)行为克隆举例在简单自动驾驶任务中(见图2),可根据人类提供的状态-动作对来习得驾驶策略。这个任务也叫作行为克隆。假设我们已获取丰富的专家的示例数据,这些数据以如下形式出现:<s1,a1>,<s2,a2>,…,<sn,an>,si代表当前的环境,ai代表当前环境下专家采取的动作。我们将这一系列专家动作输入到一个神经网络中进行学习,s是输入,a是输出,最终训练出一个结果(克隆专家的行为,此时我们希望它的输出是ai)。1.1基于视觉的模仿学习应用图2简单自动驾驶任务4)行为克隆的优缺点优点:行为克隆简单直接,可以通过监督学习方法快速训练模型,尤其适用于专家示范数据充足的场景。缺点:行为克隆容易受到示范数据质量的影响,且无法应对环境中未见过的情况(如自动驾驶例子中,如果出现未遇见过的道路情况,车辆控制失去先验学习参考后,无法正确控制车辆),可能导致过拟合或泛化能力差。3.逆强化学习逆强化学习是一种机器学习方法,其目标是从专家行为中推断出隐含的奖励函数,而不是直接学习专家行为的策略。逆强化学习方法适用于明确定义奖励函数困难的场景,通过分析专家行为的决策逻辑,间接推导任务目标和内在动机。1.1基于视觉的模仿学习应用1)逆强化学习的原理通过观察专家在环境中的行为(状态和动作的序列),推断出专家的行为是基于某种奖励函数所做出的最优决策。通过分析专家的示范数据,逆强化学习试图推断出奖励函数,从而揭示哪些状态或动作更为“优越”。获得奖励函数后,可以使用强化学习的标准方法训练智能体,使其学习到最大化奖励的最优策略,见图3。1.1基于视觉的模仿学习应用图3逆强化学习的原理2)奖励函数奖励函数(rewardfunction)是强化学习中用来量化智能体在某一状态或执行某一动作后获得的即时反馈的函数。它为智能体提供了明确的学习信号,帮助其优化决策策略,以实现既定目标。3)逆强化学习模型训练的流程步骤与行为克隆类似,逆强化学习模型训练步骤也需要收集专家示范数据并进行数据预处理。然而,与行为克隆不同的是,逆强化学习还包含假设奖励函数形式、推断奖励函数、策略优化及模型评估与验证等步骤。
(1)假设奖励函数形式。(2)推断奖励函数。(3)策略优化。(4)模型评估与验证。1.1基于视觉的模仿学习应用1.1.2动作分块算法动作分块(ActionChunkingwithTransformers,ACT)算法是一种利用Transformer模型处理行为分段(actionchunking)问题的算法。行为分段是指将一系列连续的动作(或行为)划分为多个有意义的块,每个块代表一个高层次的任务或目标。ACT算法广泛应用于机器人控制、任务规划、自然语言处理等领域。1.ACT算法的原理ACT算法使用Transformer架构来处理一系列动作序列,通过自注意力机制捕捉动作之间的依赖关系,从而将动作序列分割成多个任务块。每个任务块代表一个相对独立的任务部分。ACT算法的核心是通过Transformer对连续的动作序列进行学习,进而将这些动作序列分解为多个子任务,其在机器人任务分解中,展现出了很好的性能。行为块:可以理解为一个任务的“子任务”,每个子任务是执行一系列具体动作块的集合。一个任务可由多个子任务组成,各个子任务之间可具有一定的依赖关系。动作块:
动作块是行为块的基本组成单元,表示具体的操作。例如,一个搬运任务的行为块“拾起物体”可能包含多个动作块,例如手臂移动到物体位置、抓取器张开、抓取物体等。1.1基于视觉的模仿学习应用Transformer模型:在ACT算法中,Transformer用于学习任务块之间的关系。Transformer的自注意力机制能够捕捉长距离的依赖关系,从而使得机器人能根据当前的状态和环境,选择合适的动作块并执行。本节基于低成本开源硬件系统(ALow-costOpen-sourceHardwareSystemforBimanualTeleoperation,ALOHA),详细说明ACT算法的工作原理。图4左图展示了ALOHA双臂工作空间示意,中图为“手柄和剪刀”机制和定制夹具的视图,右图为ViperX6自由度的机器人技术参数。1.1基于视觉的模仿学习应用图4ALOHA系统ALOHA采用正前方、顶部、左、右共计四个网络摄像头获取数据。其中,左右两个摄像头(其视角如红线所示)安装在ViperX机器人的手腕上,可提供夹具的近距离视角,方便用户近距离观察夹爪;正前方和顶部两个网络摄像头(其视角如蓝线和绿线所示)安装在桌面的前方和桌子上方的顶部位置,按照一定频率完成遥控和数据记录等操作。基于给定的ALOHA系统,ACT算法可实现以下功能:对于一个较小的机械臂到较大机械臂ViperX的关节空间映射,用户通过反向驱动较小的机械臂(“领导者”)进行远程操作,其关节与较大的ViperX(“跟随者”)同步,即直接形成两个机械臂的关节空间映射,从而进行端到端的模仿学习,来实现ViperX先学习小机械臂的移动、抓取、放置等动作,进而达到ViperX可自我完成各种动作任务。1.1基于视觉的模仿学习应用2.ACT算法的结构整体概览ACT算法的整体结构见图5,其将ACT模型训练为条件变分自动编码器(ConditionalVariationalAutoencoder,CVAE)(见图5)。CVAE包含编码器和解码器共两个部件。ACT模型使用编码器从多个视点、关节位置和z合成图像,并使用解码器预测一系列动作。其中:1.1基于视觉的模仿学习应用图5ACT算法的整体结构1)CAVE编码器(见图5):CVAE的编码器将动作序列和关节观察压缩成z,即样式变量。其输入为来自演示数据集的当前关节位置joints、“[CLS]”token标记和长度为k的目标动作序列。这长度为k+2的输入信号通过编码器之后,与“[CLS]”对应的特征将用于预测样式变量z的均值和方差,并作为CVAE编码器的输出信息输入到CVAE解码器。2)CAVE解码器(见图5中右侧):ACT算法的解码器接受编码器输出的样式变量z和当前观测(包括图像cam1~cam4、机器人关节位置joints)的条件,输出预测的动作序列(即接下来的k个动作)。在测试时为了保证策略模型输出的动作不会出现随机波动,我们将z设置为先验分布的均值(即0),从而实现确定性的解码。1.1基于视觉的模仿学习应用3)动作分块:将同一时间步内的预测动作进行聚合,见图6。1.1基于视觉的模仿学习应用图6动作分块我们将块大小固定为k,每k步智能体接收一个观察,并生成下一组k个动作(决策),然后依次执行这些动作(见图6)。这表明任务的有效视界变成1/k(智能体每k步做一次决策,那么时间窗口就变成1/k)。这样做可以使不同的动作块相互重叠,在给定的时间步长上产生多个预测动作。时间集成:在应用动作时,我们同时使用动作分块和时间集成,而不是交替观察和执行。我们可以看到(见图6):在t=0时生成了t=0,1,2,3,4个动作步骤,比如ABCD。在t=1时生成了t=1,2,3,4,4个动作步骤,比如EFGH。在t=2时生成了t=2,3,4,5,4个动作步骤,比如IJKL。在t=3时生成了t=3,4,5,6,4个动作步骤,比如MNOP。在t=3时最终采用什么动作,由t=0,t=1,t=2,t=3这4个时间段进行指数加权平均,来得到最终的结果。我们以下棋进行类比,棋手每走一步棋,都需考虑接下来的几步该如何布局。但因为局势随时发生变化,棋手必须根据当下的情况灵活调整策略,而不是一味地按照最初设定的计划前进。1.1基于视觉的模仿学习应用3.ACT模型的执行步骤ACT模型训练共包含采样数据、推断风格变量z、预测动作序列共三步(见图7),接下来我们将详细介绍各个步骤的实现过程。1.1基于视觉的模仿学习应用图7ACT模型训练过程的整体图示1)采样数据本步骤用于获取后续CVAE编码器输入中的关节位置和动作序列(见图8)。输入:4幅RGB图像,每幅图像的分辨率为480×640×3(即三通道RGB彩色图像)。这些图像来自多个摄像头视角,提供任务场景的不同视觉信息。两个机器人手臂有14(7+7)个关节的位置,关节位置是用来表示机械臂的当前状态。输出:通过Transformer整合来自RGB图像和关节位置的信息,将多模态数据(视觉和关节状态)进行融合。动作空间为两个机械手臂的每个关节的绝对角度,仍是一个维度为14的向量。因此,通过动作分块,策略在给定当前观测的情况下输出一个k×14张量(每个动作都被定义为一个14维的向量,所以k个动作自然便是一个k×14张量)。1.1基于视觉的模仿学习应用图8采样数据2)通过CVAE编码器推断风格变量z本步骤右侧黄色框所示的CVAE编码器,其预测样式变量z分布的均值和方差。其输入是来自演示数据集的当前关节位置和目标动作序列,外加一个[CLS]token(见图9)。其中[CLS]token由随机初始化的学习权值组成,用于表示整个输入序列的全局表示。嵌入关节位置(embeddedjoints),通过一个线性层linearlayer2,把joints投影到嵌入维度的关节位置(14维至512维),得到embeddedjoints。嵌入动作序列(embeddedactionsequence),通过另一个线性层linearlayer1,把k×14的actionsequence投影到嵌入维度的动作序列(k×14维至k×512维)。1.1基于视觉的模仿学习应用图9编码器推断风格变量z以上3个输入最终形成(k+2)×embedding_dimension的序列,即(k+2)×512,并用CVAE编码器中的Transformer编码器进行处理。最后,经过处理后,[CLS]标记会代表整个输入序列的全局信息。选择对应[CLS]标记的输出作为全局表示,并使用另一个线性网络来预测z分布的均值和方差。另外编码器仅用来训练解码器,在测试时,只使用解码器作为策略,z被设置为零。3)CVAE解码器预测动作序列本步骤通过从CVAE的解码器通过生成的潜在变量z和其他输入(如图像特征、关节位置等)来预测动作序列,最终生成控制策略,见图10。1.1基于视觉的模仿学习应用图10解码器预测动作序列可以观察到每一幅图像皆被ResNet18网络处理以获得一幅特征图(将480×640×3RGB图像转换为15×20×728的特征图;然后flatten处理,以获得一个特征序列(300×728),这些特征用线性层linearlayer5投影到嵌入维度(300×512);为了保留空间信息,再添加一个2D正弦位置嵌入(即sinusoidalposEmb,正弦位置嵌入被广泛用于Transformer架构中。通过这种方式,模型不仅了解特征值本身,还能够理解这些特征在空间上的相对位置),相当于把位置信息添加到特征序列中。对所有4幅图像重复此操作,得到一个4×300×512,即1200×512维度的特征序列。将来自每个摄像机的特征序列连接起来(将各个摄像头获取的图像特征序列拼接成一个大的输入),用作CVAE解码器中Transformer编码器的输入之一。而对于另外两个输入,当前的关节位置joints和“风格变量”z,它们分别通过线性层linearlayer6、linearlayer7从各自的原始维度(14、32)都统一投影到512维度。此刻Transformer编码器的输入是1202×512(将此3项进行连接:4幅图像的特征维度1200×512、关节位置joins的特征维度1×512,风格变量z的特征维度1×512),以供编码器进行处理。1.1基于视觉的模仿学习应用另外,CVAE解码器中的输入说明如下。Transformer解码器的“query”(transformer解码器中的查询向量)是第一层固定的正弦位置嵌入,见图4.2.11右下角所示的positionembeddings(fixed),其维度为k×512。在解码器中,其中,query是通过与keys和values进行交叉注意力(cross-attention)来生成目标输出的。而位置嵌入(positionalembeddings)是一个常用的技巧,用于将位置信息注入Transformer模型中,帮助模型理解输入的顺序或空间结构。Transformer解码器的交叉注意力(cross-attention)层中的“keys”和“values”来自上述Transformer编码器的输出。在交叉注意力机制中,解码器的query会与编码器的keys和values进行交互,编码器对输入进行处理,生成一系列keys和values,这些将被传递到解码器,作为解码器计算输出的参考。解码器根据这些keys和values来生成目标动作序列。最后,Transformer解码器在接收到编码器的输出后(如图像特征、关节位置、风格变量等),来生成最终的动作序列。1.1基于视觉的模仿学习应用4)ACT测试过程的整体说明(见图11)在测试过程中,CVAE编码器(标记为黄色部分)将被弃用,而CVAE解码器则作为策略进行使用。输入的观察(包括图像和关节信息)与训练时相同,唯一的不同在于变量z,它代表了我们希望从策略中引发的动作序列的“风格”。在测试阶段,我们将z设置为零向量。因此,对于给定的每个观察,策略的输出始终是确定性的,这有助于进行策略评估。1.1基于视觉的模仿学习应用图11ACT测试过程(1)ACT算法训练的流程步骤(见图12)。1.1基于视觉的模仿学习应用图12ACT算法训练的流程步骤收集专家数据数据预处理模型训练模型测试与评估模型部署(2)ACT算法应用举例。①
机械臂搬运。在物体搬运任务中,ACT算法被用于机械臂的视觉引导控制,帮助机器人在任务中通过视觉引导和自主探索,自主进行物体抓取和搬运。②
家务劳动。在机器人执行家务劳动场景中,机器人通过ACT算法,执行烹饪、擦玻璃、洗碗、打扫卫生、整理桌面等复杂家务劳动。③
装配任务。在机器人装配场景中,机器人通过ACT算法,能够完成。④
智能分拣。在工业智能分拣系统中,机器人通过ACT算法,能够根据工件的颜色、形状等特征等进行分类抓取和分类放置,实现智能分拣。1.1基于视觉的模仿学习应用5)ACT算法的优缺点优点:ACT算法通过将复杂任务分解为行为块,提升了学习和执行效率,能够有效处理长时间依赖关系,增强了泛化能力。基于Transformer架构使其能适应不同环境变化,并能实时做出决策,灵活性强,适合快速反应的任务。缺点:需要高质量的专家示例数据来确保模型的有效性,对超长程复杂任务存在一定的局限性。综合实验——利用ACT算法实现机械臂自主堆积木1.1基于视觉的模仿学习应用1.1.3综合实验——利用ACT算法实现机械臂自主堆积木本实验通过ACT算法实现机械臂的自主堆积木。实验过程如下:首先,由摄像头采集专家操作主臂堆积木的示范数据(包括动作、状态以及相关视角的图像),并将示范的关节角数据传递至从臂,实现主臂与从臂的同步运动。其次,将示范数据集合分解为多个行为块(如拾取、移动、放置等),并利用ACT算法学习这些行为块之间的关系。最后,从臂通过实时分析环境状态,选择并执行合适的行为块,最终实现机械臂自主完成堆积木任务的目标。1.1基于视觉的模仿学习应用【实验目的】知识目标(1)了解基于视觉的模仿学习在工业机器人领域的应用。(2)掌握ACT算法的理论基础和实际应用。能力目标(1)能够完成软件代码运行环境的配置,以及机械臂、摄像头等相关硬件的配置。(2)能够进行机械臂校准及场景搭建。(3)能够基于ACT算法实现机械臂自主堆积木。素养目标(1)培养学生严谨细致的工作态度,提高问题解决能力。(2)通过小组合作完成任务,提高学生团队协作能力。(3)提高学生对人工智能技术在实际工程中的理解与应用能力。1.1基于视觉的模仿学习应用【实验原理】本实验通过ACT算法,控制机械臂实现自主堆积木。ACT算法将复杂任务分解为多个行为块(如拾取、移动、放置等),并使用模型学习这些行为块之间的关系,根据环境状态实时选择并调整行为块,执行任务并进行优化。通过不断与环境交互,ACT算法能够提高任务完成的效率和准确性,实现自主堆积木的目标。【实验过程】使用ACT算法实现机械臂自主堆积木:ACT算法适合处理复杂、动态的环境,能够通过持续优化策略适应多样化的积木场景。其通过CVAE建模积木堆叠动作的多样性,结合强化学习策略优化,能够适应复杂且多变的积木场景。在其特有的学习框架下,通过探索与优化不断提升操作精度和效率。同时,ACT具备较强的泛化能力,在未见过但与训练分布相似的场景中仍表现稳定。1.1基于视觉的模仿学习应用1.环境配置实验环境推荐使用Windows环境,需配置至少8GB显存的GPU一块。本实验基于windows11系统完成开发。具体的环境配置流程请观看视频讲解。2.代码结构本项目的整体代码结构见图13和图14,其中configs文件夹内包含各种配置文件。图13整体代码结构11.1基于视觉的模仿学习应用●common:数据集、训练策略、机械臂等通用代码。●configs:参数配置。●scripts:训练、机械臂配置、数据集可视化等运行脚本。图14整体代码结构21.1基于视觉的模仿学习应用在代码根目录下的config_templates文件夹提供了机械臂校准、数据采集、数据回放、遥操作、策略测试、训练等多种脚本运行参数模板,便于参数修改和脚本运行。(1)机械臂控制。关键代码位置:lerobot/scripts/control_robot.py。该脚本提供了多种机械臂控制功能,包括校准、遥操作、录制、回放、关节角显示和策略测试等。为了方便操作,在config_templates目录下已经生成了启动这些功能所需的参数配置文件,用户只需切换config_path对应的文件名即可。例如,record_dataset.yaml为数据采集参数文件。使用Vscode打开lerobot项目代码,在终端界面下输入如下命令(见图15)。pythonlerobot/scripts/control_robot.py--config_path=configs/record_dataset.yaml图15命令操作11.1基于视觉的模仿学习应用命令含义:该脚本实现了数据集采集功能,通过可视化和交互式的方式实现数据集采集。作用:通过执行上述命令,可以启动数据集采集功能,自动执行相关任务,减少手动输入,提高操作效率。(2)摄像头显示。关键代码位置:lerobot/scripts/display_cameras.py。在Vscode终端界面下输入如下命令。pythonlerobot/scripts/display_cameras.py命令含义:该脚本提供了显示所有已连接摄像头的功能。运行时,系统会扫描连接的摄像头并显示其相关信息,如分辨率、帧率等。作用:通过执行该命令,可以查看当前系统中连接的摄像头,确保摄像头正常连接并工作。1.1基于视觉的模仿学习应用(3)数据集可视化。关键代码位置:lerobot/scripts/visualize_dataset_html.py。在Vscode终端界面下输入如下命令。其具体配置见配套资源中的程序代码。pythonlerobot/scripts/visualize_dataset_html.py--config_path=configs/visualize_dataset.yaml命令含义:该脚本实现了数据集的可视化功能,并通过web页面展示数据集内容。作用:通过运行上述命令,用户可以直观地查看和分析录制的数据集,方便后续的训练或调试工作。1.1基于视觉的模仿学习应用(4)策略训练。关键代码位置:lerobot/scripts/train.py。在Vscode终端界面下输入如下命令。其具体配置见配套资源中的程序代码。pythonlerobot/scripts/train.py–-config_path=configs/train_act.yaml命令含义:该脚本提供了一键训练的功能,能够针对不同的场景进行策略训练。通过执行上述命令,系统将自动进行训练任务。作用:通过运行上述命令,用户可以启动训练过程,自动进行相关的模型训练或策略优化,简化训练操作步骤。上述步骤的相互关系:数据集录制和摄像头显示紧密配合,确保摄像头正常工作并为后续的训练提供有效数据。数据集可视化让用户确认数据是否符合预期,为策略训练提供数据支持。策略训练完成后,生成的策略应用于机械臂控制,实现自动化任务。1.1基于视觉的模仿学习应用3.机械臂校准(1)进入校准模式。①校准前准备。在开始校准操作之前,需要确保机械臂和摄像头的配置已经完成,并且它们都已正确连接到电脑。避免设备未配置或连接不当而导致校准失败或不准确,确保后续操作顺利进行。确保当前项目目录下有configs文件夹,如没有则将config_templates文件夹复制一份。②进入校准模式。在Vscode终端界面下输入如下命令(见图16)。其具体配置见配套资源中的程序代码。pythonlerobot/scripts/control_robot.py--config_path=configs/calibrate.yaml图16命令操作21.1基于视觉的模仿学习应用命令含义:运行该命令后,系统会启动机械臂的校准模式,进入一个特定的校准流程。作用:启动校准过程,准备对机械臂的各个部件(如从臂和主臂)进行校准。(2)从臂的校准流程。注意事项,建议重新插拔从臂电源,确保从臂未处于力矩启动状态,否则易损坏机械臂。其校准流程如下。①在Vscode终端界面下输入如下命令后,显示见图17。pythonlerobot/scripts/control_robot.py--config_path=configs/calibrate.yaml命令含义:完成从臂的所有校准操作后,终端会显示相关信息,表示校准已成功完成。图17命令操作31.1基于视觉的模仿学习应用●robot/scripts/control_robot.py:这是一个Python脚本的路径,位于lerobot项目中的scripts文件夹下,文件名为control_robot.py。这个脚本负责控制机器人,包括校准、遥操作、数据采集等功能。●config_path:这是传递给control_robot.py脚本的一个命令参数。通过传递该参数,脚本会读取该参数指定的文件参数,进入“校准”模式,执行与机械臂校准相关的操作。作用:通过显示成功的提示信息,确认从臂的校准已经顺利完成,设备可以准备好进行实际操作。②
将从臂移动到零点位置(见图18),然后按下Enter键。图18从臂零点位置校准1.1基于视觉的模仿学习应用操作含义:将从臂移动到预定义的零点位置,并按下Enter键确认该位置已达到。作用:零点位置通常是从臂运动的参考起始位置,校准零点可以确保后续动作和计算的精确性,避免误差积累。③
将从臂移动到旋转点位置(见图19),然后按下Enter键。操作含义:将从臂移动到预定的旋转点位置,并按下Enter键进行确认。作用:旋转点是校准过程中用于确定从臂旋转角度的参考点,确保机械臂的旋转动作能够准确执行。图19从臂旋转点位置校准1.1基于视觉的模仿学习应用④
将从臂移到休息点位置(见图20),然后按下Enter键。操作含义:将从臂移动到休息点位置,并按下Enter键进行确认。作用:休息点通常是用来将机械臂的状态恢复到初始状态的参考位置,确保系统可以从该位置重新启动或复位。至此,从臂的校准完成。通过上述步骤实现了从臂的校准流程,通过逐步移动到零点、旋转点和休息点来确保从臂各个位置的精确控制,再通过终端确认校准成功。图20从臂休息点位置校准1.1基于视觉的模仿学习应用(3)主臂的校准流程。在完成从臂的校准流程之后,会自动进入主臂的校准,其流程如下。①将主臂移动到零点位置(见图21),然后按下Enter键。图21主臂零点位置校准1.1基于视觉的模仿学习应用②将主臂移动到旋转点位置(见图22),然后按下Enter键。操作含义:将主臂移动到预定的旋转点位置,然后按下Enter键。作用:旋转点用于确定主臂的旋转角度的基准点,确保主臂在旋转时不会发生偏差,从而提高运动的精确性和可靠性。图22主臂旋转点位置校准1.1基于视觉的模仿学习应用③将主臂移动到休息点位置(见图23),然后按下Enter键。操作含义:将主臂移动到预定义的休息点位置,并按下Enter键进行确认。作用:休息点是一个用于复位机械臂的参考点。校准后可以确保主臂能够恢复到初始状态,保证后续操作的准确性。图23主臂休息点位置校准1.1基于视觉的模仿学习应用至此,主臂的校准完成。通过上述步骤实现了主臂的校准过程,逐步调整到零点、旋转点和休息点,确保主臂能够精确执行任务。校准完成后,通过终端确认,并确保从臂电源连接正确,以避免损坏。主臂和从臂最终校准后的结果显示见图24,该校准过程只需运行一次命令,即可同时校准从臂和主臂。图24主从臂校准结果示意1.1基于视觉的模仿学习应用4.场景搭建分别固定机械臂和摄像头(相机)位置(见图25),确保机械臂和摄像头的固定位置有助于准确地操作和数据采集,保证系统运行时的稳定性和一致性。图25实验整体场景从臂主臂相机相机1.1基于视觉的模仿学习应用5.实验流程以下为具体的实验流程。1)数据采集参考代码文件是lerobot\common\robots\manipulator.py。具体配置见配套资源中的程序代码。(1)修改configs\record_dataset.yaml脚本中的各项参数,最终运行该脚本开始录制数据集。具体配置见配套资源中的程序代码。(2)修改完成后,在终端界面下输入如下命令(见图26)。pythonlerobot/scripts/control_robot.py--config_path=configs/record_dataset.yaml图26命令操作41.1基于视觉的模仿学习应用命令含义:通过config_path参数将数据采集参数传递给control_robot.py,启动数据采集过程。作用:control_robot.py脚本根据预先设置的参数(如数据集目录、视频帧率、视频时长等)控制数据采集工作。执行该命令后,系统将开始录制数据集,并将采集的视频和图像数据存储到指定的目录中。这是完成数据采集过程的关键命令。在projects\lerobot_datasets\文件夹下(见图27),可以看到每次数据采集后的生成文件(例如so100_test1)。如果想再次采集数据,可以将so100_test1文件夹整体删除掉,之后进行重新的数据采集。图27数据采集后的生成文件1.1基于视觉的模仿学习应用如果终端界面出现提示wrongmotorposition……,说明从臂校准有些偏差(见图28),需要重新进行一次从臂的校准。另外,在正式的数据采集之前,建议先练习一下机械臂断电情况下的专家行为(数据采集),尽可能让动作更加地准确和流畅,待熟练之后,再进行正式的数据采集。如果未出现异常提示,则可以进入数据采集的环节。图28校准偏差提示下面是在进行数据采集时,结合键盘的方向按键辅助采集的说明。●按右箭头
→
,在任何时候进行情节录制时,提前停止并进入重置阶段。重置阶段是提前停止并进入下一个情节录制。
●按左箭头
←
,在任何时候进行情节录制或重置时,提前停止,取消当前情节,并重新录制。
●按Esc键,在任何时候进行情节录制时,提前结束会话并直接进入视频编码和数据集上传。1.1基于视觉的模仿学习应用另外,每采集一个视频之后,都要将机械臂设置于相应的位置(见图29),该位置为机械臂完成任务后的休息位置,然后进行下一次的数据(视频)采集。图29机械臂待机位置1.1基于视觉的模仿学习应用结合record_dataset.yaml脚本中的各项参数进行设置,然后进行录制。例如,我们设置NUM_EPISODES=5,即录制视频的总数为5个,作为数据采集的总量。图30为录制结束后的界面。图30录制结束采集完几组视频数据存放在projects\lerobot_datasets\hhws\so100_test文件夹下。1.1基于视觉的模仿学习应用2)数据集展示(1)启动rerun可视化后端程序。运行可视化后端程序(见图31),在Vscode终端界面下输入如下命令。rerun图31命令操作6命令含义:该命令启动rerun-sdk可视化后端,rerun是该后端的执行命令。它负责展示和管理数据集的可视化信息。作用:启动rerun后,系统将为数据集创建一个可视化的界面,方便用户查看和交互,特别是对于采集到的视频、图像和数据标注的可视化展示。1.1基于视觉的模仿学习应用(2)启动可视化服务。①修改configs/visualize_dataset.yaml的参数。具体配置见配套资源中的程序代码。命令含义:在执行可视化之前,需修改文件中的参数,包括:root:数据集的根目录位置,指定存放数据集的路径。repo_id:数据集的名称,指定需要展示的具体数据集。作用:修改这些参数是为了确保可视化服务加载正确的数据集并展示相应的内容。②加载数据集并启动可视化服务,在Vscode终端界面下输入如下命令。pythonlerobot/scripts/visualize_dataset_html.py--config_path=configs/visualize_dataset.yaml命令含义:运行lerobot/scripts/visualize_dataset_html.py脚本文件。脚本文件包含启动数据集可视化服务的步骤,并依赖于已修改的参数。作用:执行指令后,脚本会加载数据集并启动可视化服务,展示数据集的内容。该命令会通过配置好的参数设置数据集的根目录和数据集名称,启动一个本地服务。1.1基于视觉的模仿学习应用③打开网页地址(在浏览器中输入http://127.0.01:9090),查看结果(见图32)。Moto1-Motor6表示舵机1-6,state为当前从臂舵机的关节角,action为主臂对应舵机发送给当前从臂舵机的目标关节角。也就是说,主臂通过控制信号(action)来指挥从臂的舵机(Moto1-Motor6)达到目标角度,而从臂的舵机会根据这些指令调整其当前位置(state)。图32舵机角度1.1基于视觉的模仿学习应用地址含义:在浏览器中访问:9090,这是本地运行的可视化服务的地址。作用:通过访问该地址,用户可以查看可视化结果,展示的数据集内容将以图形界面方式展现,便于用户进行浏览和分析。3)ACT模型训练train.py文件:一个用于启动并配置训练过程的python脚本,通常用于自动化训练模型的启动过程。根据给定的参数,它配置训练环境、数据路径、模型、优化器和训练设置等。通过设置该脚本的参数,可以灵活地根据不同任务的需求进行训练,确保训练过程的可控性和高效性。具体配置见配套资源中的程序代码。(1)开始训练模型(见图33),在Vscode终端界面下输入如下命令。pythonlerobot/scripts/train.py--config_path=configs/train_act.yaml图33命令操作71.1基于视觉的模仿学习应用命令含义:这条命令用于启动train.py脚本并开始训练过程。目的:执行训练脚本,初始化并开始模型的训练。通过命令行传入配置参数,脚本会根据这些配置执行相应的训练步骤。(2)终端显示信息说明。当命令执行后,终端会显示训练信息(见图34),这些信息表明了当前训练的进度和状态。图34训练信息训练过程的相关参数说明,可参看代码。1.1基于视觉的模仿学习应用(3)运行tensorboard查看训练日志。查看模型的训练过程和日志,在Vscode终端界面下输入如下命令,见图35。tensorboard--logdir=$RUN_DIR图35命令操作8命令含义:其是TensorFlow提供的一个工具,用于可视化训练过程中的各种数据和图表,包括损失值、准确度、计算图等。--logdir=$RUN_DIR:指定训练日志的目录路径,$RUN_DIR应替换为实际的训练日志保存目录。1.1基于视觉的模仿学习应用作用:该命令用于启动TensorBoard,并指定日志文件所在的目录。运行该命令后,通过浏览器可以访问TensorBoard,查看训练过程中记录的各种数据(如损失、精度等)及模型的计算图(见图36)。图36可视化训练过程及指标数据1.1基于视觉的模仿学习应用其中:●l1_loss:平均绝对差损失(MeanAbsoluteErrorLoss)。其是一种常用的损失函数,表示预测值与真实值之间的平均绝对差值。主要用于衡量预测结果与真实结果之间的偏差。●kld_loss:平均KL散度(MeanKullback-LeiblerDivergence)。它计算的是两个概率分布之间的差异。它帮助我们优化模型,使生成的输出尽量接近真实数据的分布。●loss:l1_loss和kld_loss的加权平均。loss是将l1_loss和kld_loss两种误差结合起来。也就是说,我们在优化模型时,既要考虑预测值和真实值之间的差异(l1_loss),又要考虑预测分布和真实分布之间的差异(kld_loss)。加权平均就是通过调整这两部分的比例,平衡它们对最终结果的影响。1.1基于视觉的模仿学习应用专家数据的构造流程:启动遥操作模式,专家通过操作主臂执行给定任务,按照30FPS的速度读取主臂的所有关节角,并将关节角数据按照
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026事业单位工勤技能-广东-广东地质勘查员三级(高级工)历年参考题库含答案详解3套试卷
- 2026事业单位工勤技能-山西-山西计算机信息处理员一级高级技师历年参考题库含答案详解3套试卷
- 2026事业单位工勤技能-山西-山西家禽饲养员三级(高级工)历年参考题库含答案详解3套试卷
- 2026事业单位工勤技能-山东-山东电工一级(高级技师)历年参考题库含答案详解3套试卷
- 2026事业单位工勤技能-四川-四川水工闸门运行工二级(技师)历年参考题库含答案详解3套试卷
- 2026事业单位工勤技能-吉林-吉林水生产处理工二级(技师)历年参考题库含答案详解3套试卷
- 2025年航空航天科普知识竞赛题库及一套完整答案
- 2026事业单位工勤技能-云南-云南汽车修理工(技师-高级技师)历年参考题库含答案详解3套试卷
- 2025海洋科普知识赛题真题试卷
- 2026年四川省广元市重点学校初一入学数学分班考试试题及答案
- 医保基金监管培训课件
- 健身房防汛应急预案管理方案范文
- 长期供货合同范本
- 步进电机课件教学课件
- 危险废物事故预防及处理机制管理制度
- JJG 692-2010无创自动测量血压计
- 医学哲学教学大纲
- 输电线路(电缆)工程施工作业票典型模板(2024版)
- 中外名著常识100题及答案
- 2023年广西自然资源职业技术学院教师招聘考试笔试题库及答案
- 四川省地图矢量经典模板(可编辑)
评论
0/150
提交评论