模块化机器人内部结构优化方法与流程

文档序号:11681088阅读:387来源:国知局
模块化机器人内部结构优化方法与流程

本发明涉及模块化机器人技术领域,尤其涉及一种模块化机器人内部结构优化方法。



背景技术:

模块化机器人由大量相同的机器人模块组装而成,可以按照环境和任务的不同,灵活的改变构型。每个模块均可以视为一个简单的机器人单元,拥有处理能力,搭载着驱动器、传感器、电源、连接元件和通信元件。相较于传统固定构型机器人,模块化机器人通过增减某些模块或者对现有模块进行重新组合,可以由某种几何构型迅速变换为另一种适应新环境、新任务的构型。近年来,模块化机器人已成为学术界和工业界研究关注的热点。

不同的模块化机器人外形差异较大,从模块结构来看,可分为单模块类型和双子模块类型。单模块的模块化机器人中每个模块相互分离,需要时再相互连接,如麻省理工学院提出的m-blocks,宾夕法尼亚大学提出的smores等;双子模块的模块化机器人中每个模块由两个不可分离的子模块及连接件组成,如日本产业技术综合研究所提出的m-tran,洛桑联邦理工学院提出的roombots等。

目前,现有的双子模块内部结构设计方法需要人们手工完成,非常繁琐,当选择不同的元件时,往往需要人工重新设计,设计结果的好坏依赖设计人员的经验,很难保证得到较优结果。

鉴于此,如何将用户根据模块化机器人的目标用途而选择的元件合理的布局于双子模块类型的机器人模块中成为目前需要解决的技术问题。



技术实现要素:

为解决上述的技术问题,本发明提供一种模块化机器人内部结构优化方法,能够实现将用户输入的、待装配在双子模块类型的机器人模块中的元件进行自动合理的布局并在机器人模块内部相应位置生成支撑结构,从而得到一种优化的模块化机器人内部结构。

本发明提供一种模块化机器人内部结构优化方法,包括:

q1、获取用户输入的待装配在机器人模块内的元件,并设置用户输入的每一元件的空间位置约束;

q2、根据用户输入的元件的尺寸,获取所述机器人模块的子模块的边长s的候选集合;

q3、选择所述边长s的候选集合中的一个取值,按照预设的元件顺序及相应的空间位置约束,获取一个内部结构的随机解及该随机解对应的全局能量函数值;

q4、获取所述随机解的相邻解及该相邻解对应的全局能量函数值,利用预设优化算法,获得优化的内部结构;

q5、判断是否遍历完所述边长s的候选集合,若是,则获得的优化的内部结构为最终内部结构优化结果,若否,则返回所述步骤q3。

可选地,所述机器人模块为双子模块类型的机器人模块,由两个子模块组成;所述两个子模块分别为公子模块和母子模块,所述公子模块和母子模块之间利用连接件固定连接,不可分离;

通过一个机器人模块的公子模块伸出挂钩挂住另一个机器人模块的母子模块,实现两个机器人模块的连接,通过收回公子模块已伸出挂住的挂钩实现两个机器人模块的分离;

所述公子模块和母子模块的外壳均为半圆柱体与长方体构成的联合体,其中,长方体的边长分别为s、s+1和s/2,半圆柱体的底面半圆的直径为s,半圆柱体的高为s+1,s为预设正数,通过将半圆柱体中长为s+1、宽为s的长方形平面叠加在长方体中长为s+1、宽为s的一个长方形平面上构成所述联合体,所述半圆柱体的两个底面半圆的圆心之间设置有旋转轴,所述公子模块和母子模块均可绕自身的旋转轴旋转180度;

所述公子模块的外壳具有三个平面,每个平面的重心位置均设置有用于伸出和收回挂钩的一字形凹槽;所述母子模块的外壳具有三个平面,每个平面的重心位置均设置有用于挂住挂钩的凹槽。

可选地,所述用户输入的待装配在机器人模块内的元件,包括:一个电池、两个主舵机、三个小舵机和两个控制电路板;

其中,两个控制电路板设置在所述母子模块中;

一个主舵机设置在所述公子模块中,与设置在所述母子模块中的控制电路板连接,用于根据与其连接的控制电路板发送的指令,控制所述公子模块绕自身的旋转轴旋转;

另一个主舵机设置在所述母子模块中,与设置在所述母子模块中的控制电路板连接,用于根据与其连接的控制电路板发送的指令,控制所述母子模块绕自身的旋转轴旋转;

所述三个小舵机分别设置在所述公子模块的三个平面上,分别与设置在所述母子模块中的控制电路板连接,其中,每一小舵机分别根据与其连接的控制电路板发送的指令,控制其所在公子模块平面中设置的挂钩的伸出和收回。

可选地,所述步骤q1在设置用户输入的每一元件的空间位置约束时,对任意元件ci,i=1,2,…,8,选择其包围盒bbox(ci)上六个面中面积最大的两个面之一作为底面,利用五维坐标确定所述元件ci的位置,其中,为包围盒bbox(ci)的重心坐标,为用于指定包围盒bbox(ci)底面法线方向的两个球面角;

相应地,所述用户输入的每一元件的空间位置约束,包括:

约束1:任意元件ci的包围盒bbox(ci)在包含于ωm(s)∪ωf(s),其中,ωm(s)表示被所述公子模块的外壳所包围的区域,ωf(s)表示被所述母子模块的外壳所包围的区域;

约束2:所述公子模块中的三个小舵机smallservom在相应的外壳平面上具有两个候选位置,其中m=1,2,3,第m个小舵机的候选位置集合为:其中,为第m个小舵机的第1个候选位置,为第m个小舵机的第2个候选位置;

约束3:令所述公子模块中的主舵机mainservo1的旋转轴与y轴重合,则所述公子模块中的主舵机mainservo1的五维坐标中的三个参数被唯一确定,所述公子模块中的主舵机mainservo1的候选位置集合为

约束4:所述公子模块中的主舵机mainservo1与所述母子模块中的主舵机mainservo2的y轴方向坐标相同:则在所述公子模块中的主舵机的候选位置确定后,所述母子模块中的主舵机mainservo2候选位置集合为

约束5:所述电池battery、所述公子模块中的控制电路板ctrl1和所述母子模块中的控制电路板ctrl2的候选位置集合分别为γbattery、其中,中的候选位置为五维坐标其中,ci=battery,ctrl1,ctrl2。

可选地,所述步骤q2包括:

根据用户输入的元件的尺寸,通过第一公式计算得到所述公子模块/母子模块中长度为s+1的边的长度最小值smin+1,进而获得s的最小值smin;

根据用户输入的元件的尺寸,通过第二公式计算得到所述公子模块/母子模块中长度为s+1的边的长度最大值smax+1,进而获得s的最大值smax;

以等差数列的形式在smin和smax之间选取预设数量个数值,组成边长s的候选集合;

其中,所述第一公式为:

smin+1=hmainservo+2×wsmallservo+2×wlink+τ,

其中,hmainservo为主舵机机身部分的高度,wsmallservo为小舵机厚度,wlink为单个连接件宽度,τ为容差;

所述第二公式为:

其中,为公子模块中的控制电路板的厚度,为母子模块中的控制电路板的厚度,wbattery为电池的厚度。

可选地,所述步骤q3包括:

q31、选择所述边长s的候选集合中的一个取值,根据所选择的s的取值和每一元件的空间位置约束,计算出每一元件ci的候选位置集合γi;

q32、对每一元件ci,在其候选位置集合γi中选择一个候选位置,并自动为该候选位置生成支撑结构,得到一个内部结构的随机解s;

q33、按照预设的元件顺序,判断当前内部结构s是否发生碰撞;

q34、针对未发生碰撞的内部结构s,分别计算其结构强度、空间利用率和可装配性,并通过第三公式将所述结构强度、空间利用率和可装配性加权求和,得到当前内部结构s的能量函数值f;

其中,所述第三公式为:

f=w1fstruct+w2fspace+w3fassembly

其中,fstruct为结构强度,fspace为空间利用率,fassembly为可装配性,w1为结构强度的权重,w2为空间利用率的权重,w3为可装配性的权重,w1、w2和w3均为非负值。

可选地,所述步骤q33,包括:

将内部结构集合struct初始设为空集

给定集合i={i|i=1,2,3,…,8},对应预设的元件顺序为:

{smallservo1,smallservo2,smallservo3,mainservo1,

mainservo2,battery,ctrl1,ctrl2};

按照所述预设的元件顺序,判断当前内部结构s中的每一元件ci是否与现有struct发生碰撞;

如果发生碰撞,返回执行所述步骤q32;

如果未发生碰撞,为当前元件ci生成其支撑结构s(ci),并利用第四公式更新内部结构集合struct的值;

当i==5,确定连接件的位置及旋转空间sweeplink,并利用第五公式更新内部结构集合struct的值;

若全部8个元件均判断完毕且没有发生碰撞,则确定当前内部结构s未发生碰撞;

其中,所述第四公式为:

struct=struct∪ci∪s(ci);

所述第五公式为:

struct=struct∪sweeplink。

可选地,所述针对判断得到的未发生碰撞的内部结构s,分别计算其结构强度、空间利用率和可装配性,包括:

针对判断得到的未发生碰撞的内部结构s:

施加重力和舵机的力矩作为外力,利用第六公式,计算得到结构强度fstruct;

利用第七公式,计算得到空间利用率fspace;

根据未发生碰撞的内部结构s中的元件布局得到一个对应的装配矩阵m,m为n×n的方阵,n为元件数量,m中(i,j)代表元件ci在元件cj存在时不发生碰撞的情况下的装配方向;根据预先指定的装配序列π=(c1,c2,…,cn),计算v(i)=∩j<im(i,j),其中cj代表在ci之前装配的元件;当且仅当时,π是有效的装配序列;计算有效的装配序列π=(c1,c2,…,cn)的重定向次数,并根据所述重定向次数,利用第八公式,计算得到可装配性;

其中,所述第六公式为:

其中,σabs_max为内部结构s上的最大绝对应力,σref为预设参考应力;

所述第七公式为:

其中,volmale为公子模块的体积,volfemale为母子模块的体积,vol(ci)为元件ci的体积;

所述第八公式为:

其中,nreorient为有效的装配序列π的重定向次数。

可选地,所述计算有效的装配序列π=(c1,c2,…,cn)的重定向次数,包括:

则在装配ci,…,cj过程中不需重定向,若并且则装配cj+1时需要一次重定向;统计有效的装配序列π=(c1,c2,…,cn)的重定向次数。

可选地,所述预设优化算法为模拟退火算法,相应地,所述步骤q4,包括:

r1、设置最优能量函数值为初始值,给定集合i={i|i=1,2,3,…,8},对应预设的元件顺序为:

{smallservo1,smallservo2,smallservo3,mainservo1,

mainservo2,battery,ctrl1,ctrl2},设置相邻解s’=s,

标志flag=true;

r2、若flag=true,则随机选择集合i中的一个数i,在i对应的候选位置集合γi内随机选择另外一个位置代替当前位置得到内部结构s’;

r3、将所述步骤q33中的当前内部结构s替换为内部结构s’,通过执行所述步骤q33,判断内部结构s’是否发生碰撞;如果内部结构s’发生碰撞,则返回执行所述步骤r2;如果内部结构s’未发生碰撞,则flag=false,将未发生碰撞的s’作为随机解s的相邻解;

r4、将所述步骤q34中未发生碰撞的内部结构s替换为未发生碰撞的s’,通过执行所述步骤q34,得到未发生碰撞的s’的能量函数值;

r5、根据模拟退火算法的metropolis准则,计算从当前随机解s转变为其相邻解s’的可能性概率p;

r6、若可能性概率p大于预设阈值,则将当前随机解s更新为s’,并将t更新为0.95t;

r7、循环执行所述步骤r1-r6,直到迭代次数达到预设次数并且f’-f<0;

r8、如果当前随机解的能量函数值小于最优能量函数值,则更新当前内部结构,并将最优能量函数值更新为当前随机解的能量函数值;

其中,所述预设阈值为0到1间的一个随机数,所述模拟退火算法的metropolis准则为:

其中,t为当前温度,f为当前随机解s的能量函数值,f′为当前随机解s的相邻解s’的能量函数值。

由上述技术方案可知,本发明的模块化机器人内部结构优化方法,通过q1、获取用户输入的待装配在机器人模块内的元件,并设置用户输入的每一元件的空间位置约束;q2、根据用户输入的元件的尺寸,获取所述机器人模块的子模块的边长s的候选集合;q3、选择所述边长s的候选集合中的一个取值,按照预设的元件顺序及相应的空间位置约束,获取一个内部结构的随机解及该随机解对应的全局能量函数值;q4、获取所述随机解的相邻解及该相邻解对应的全局能量函数值,利用预设优化算法,获得优化的内部结构;q5、判断是否遍历完边长s的候选集合,若是则获得的优化的内部结构为最终内部结构优化结果,若否则返回步骤q3,由此,能够实现将用户输入的、待装配在双子模块类型的机器人模块中的元件进行自动合理的布局并在机器人模块内部相应位置生成支撑结构,从而得到一种优化的模块化机器人内部结构,克服了现有模块化机器人结构设计需要根据用户输入的、待装配在双子模块类型的机器人模块中的元件的不同类型手动设计的缺点,相比于现有人工依照经验的进行结构设计而言结果更优。

附图说明

图1为本发明一实施例提供的一种模块化机器人内部结构优化方法的流程示意图;

图2为本发明实施例提供的双子模块类型的机器人模块的外形结构示意图;

图3为本发明实施例提供的五维坐标的坐标轴方向及子模块的边长对应关系;

图4为本发明实施例提供的小舵机在公子模块外壳的相应平面上的两个候选位置示意图;

图5为本发明实施例提供的公子模块中的主舵机的候选位置示意图;

图6为本发明实施例提供的母子模块中的主舵机的候选位置示意图;

图7为本发明实施例提供的一种机器人模块中的二维图形布局及其所对应的装配矩阵示意图;

图8为本发明实施例提供的一种电子设备的实体结构示意图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整的描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他的实施例,都属于本发明保护的范围。

图1示出了本发明一实施例提供的模块化机器人内部结构优化方法的流程示意图,如图1所示,本实施例的模块化机器人内部结构优化方法如下所述。

q1、获取用户输入的待装配在机器人模块内的元件,并设置用户输入的每一元件的空间位置约束。

在具体应用中,可参考图2,所述机器人模块为双子模块类型的机器人模块,由两个子模块组成;所述两个子模块分别为公子模块01和母子模块02,所述公子模块01和母子模块02之间利用连接件03固定连接,不可分离;

通过一个机器人模块的公子模块01伸出挂钩挂住另一个机器人模块的母子模块02,实现两个机器人模块的连接,通过收回公子模块01已伸出挂住的挂钩实现两个机器人模块的分离;

所述公子模块01和母子模块02的外壳均为半圆柱体与长方体构成的联合体,可参考图3,其中,长方体的边长分别为s、s+1和s/2,半圆柱体的底面半圆的直径为s,半圆柱体的高为s+1,s为预设正数,通过将半圆柱体中长为s+1、宽为s的长方形平面叠加在长方体中长为s+1、宽为s的一个长方形平面上构成所述联合体,所述半圆柱体的两个底面半圆的圆心之间设置有旋转轴,所述公子模块01和母子模块02均可绕自身的旋转轴旋转180度;

所述公子模块01的外壳具有三个平面,每个平面的重心位置均设置有用于伸出和收回挂钩的一字形凹槽;所述母子模块02的外壳具有三个平面,每个平面的重心位置均设置有用于挂住挂钩的凹槽。举例来说,所述用于挂住挂钩的凹槽可以为图2中所示的不完整十字形凹槽。

在具体应用中,所述用户输入的待装配在机器人模块内的元件,可以包括:一个电池、两个主舵机、三个小舵机和两个控制电路板;

其中,两个控制电路板设置在所述母子模块中;

一个主舵机设置在所述公子模块中,与设置在所述母子模块中的控制电路板连接,用于根据与其连接的控制电路板发送的指令,控制所述公子模块绕自身的旋转轴旋转;

另一个主舵机设置在所述母子模块中,与设置在所述母子模块中的控制电路板连接,用于根据与其连接的控制电路板发送的指令,控制所述母子模块绕自身的旋转轴旋转;

所述三个小舵机分别设置在所述公子模块的三个平面上,分别与设置在所述母子模块中的控制电路板连接,其中,每一小舵机分别根据与其连接的控制电路板发送的指令,控制其所在公子模块平面中设置的挂钩的伸出和收回。

举例来说,所述母子模块中的第一个控制电路板可以使用atmega328p作为控制芯片,并集成蓝牙模块,用于接收指令,所述母子模块中的第二个控制电路板可以集成无线模块用于模块间通信,并提供舵机的插口,为舵机提供信号。

在具体应用中,所述步骤q1在设置用户输入的每一元件的空间位置约束时,对任意元件ci,i=1,2,…,8,选择其包围盒bbox(ci)上六个面中面积最大的两个面之一作为底面,利用五维坐标确定所述元件ci的位置,其中,为包围盒bbox(ci)的重心坐标,为用于指定包围盒bbox(ci)底面法线方向的两个球面角;

相应地,所述用户输入的每一元件的空间位置约束,可以包括下述约束1-约束5:

约束1:任意元件ci的包围盒bbox(ci)在包含于ωm(s)∪ωf(s),其中,ωm(s)表示被所述公子模块的外壳所包围的区域,ωf(s)表示被所述母子模块的外壳所包围的区域。

约束2:所述公子模块中的三个小舵机smallservom在相应的外壳平面上具有两个候选位置,其中m=1,2,3,第m个小舵机的候选位置集合为:其中,为第m个小舵机的第1个候选位置,为第m个小舵机的第2个候选位置。

可以理解的是,由于所述公子模块中的三个小舵机的作用是控制其所在公子模块外壳的平面中所设置的挂钩的伸出和收回,而所述公子模块中设置的用于伸出和收回挂钩的一字形凹槽在每个平面的重心位置,因此,每个小舵机在公子模块外壳的相应平面上只具有两个候选位置,可参考图4。

约束3:令所述公子模块中的主舵机mainservo1的旋转轴与y轴重合,则所述公子模块中的主舵机mainservo1的五维坐标中的三个参数被唯一确定,所述公子模块中的主舵机mainservo1的候选位置集合为可参考图5。

可以理解的是,由于每一子模块(公子模块/母子模块)中的主舵机mainservo1用于控制所述公子模块绕自身的旋转轴旋转,所以主舵机的旋转轴应与该子模块的旋转轴重合,可以使该子模块与连接件发生相对旋转,同一机器人模块中的公子模块和母子模块中的主舵机重心的连接线应与y轴方向垂直,可参考图6。

约束4:所述公子模块中的主舵机mainservo1与所述母子模块中的主舵机mainservo2的y轴方向坐标相同:则在所述公子模块中的主舵机的候选位置确定后,所述母子模块中的主舵机mainservo2候选位置集合为可参考图6。

约束5:所述电池battery、所述公子模块中的控制电路板ctrl1和所述母子模块中的控制电路板ctrl2的候选位置集合分别为γbattery、其中,γbattery、中的候选位置为五维坐标其中,ci=battery,ctrl1,ctrl2。

q2、根据用户输入的元件的尺寸,获取所述机器人模块的子模块的边长s的候选集合。

在具体应用中,所述步骤q2可以包括图中未示出的步骤q21-q23:

q21、根据用户输入的元件的尺寸,通过第一公式计算得到所述公子模块/母子模块中长度为s+1的边的长度最小值smin+1,进而获得s的最小值smin。

其中,所述第一公式为:

smin+1=hmainservo+2×wsmallservo+2×wlink+τ(1)

其中,hmainservo为主舵机机身部分的高度,wsmallservo为小舵机厚度,wlink为单个连接件宽度,τ为容差。

举例来说,以用户输入的元件中的电池为长宽高是39×21×8(毫米mm)的7.4v,500mah可充电锂电池,两个主舵机均为长宽高是32×11.5×30(mm)的hx1218d主舵机,三个小舵机均为长宽高是32×12.2×29(mm)的sg90小舵机,以及长宽高分别是31.75×20.96×2.85(mm)和27.94×14.65×1.71(mm)的两个控制电路板为例:长度为s+1的边的长度最小值smin+1=27.2+2×12.2+2×6+τ≈69mm,其中,主舵机机身部分的高度(y轴方向长度)为27.2mm,小舵机厚度为12.2mm,单个连接件宽度为6mm,容差τ设置为5mm。

q22、根据用户输入的元件的尺寸,通过第二公式计算得到所述公子模块/母子模块中长度为s+1的边的长度最大值smax+1,进而获得s的最大值smax。

其中,所述第二公式为:

其中,为公子模块中的控制电路板的厚度,为母子模块中的控制电路板的厚度,wbattery为电池的厚度。

以步骤q21所举例子为例,长度为s+1的边的长度最大值smax+1=69+2.85+1.71+8≈82mm,其中,2.85、1.71、8分别为两个控制电路板和电池的厚度。

q23、以等差数列的形式在smin和smax之间选取预设数量个数值,组成边长s的候选集合。

以步骤q21所举例子为例,假设预设数量个数值为4,可以选择s={68,72,76,81}为边长s的候选集合。

q3、选择所述边长s的候选集合中的一个取值,按照预设的元件顺序及相应的空间位置约束,获取一个内部结构的随机解及该随机解对应的全局能量函数值。

在具体应用中,所述步骤q3可以包括图中未示出的步骤q31-q34:

q31、选择所述边长s的候选集合中的一个取值,根据所选择的s的取值和每一元件的空间位置约束,计算出每一元件ci的候选位置集合γi。

q32、对每一元件ci,在其候选位置集合γi中选择一个候选位置,并自动为该候选位置生成支撑结构,得到一个内部结构的随机解s。

q33、按照预设的元件顺序,判断当前内部结构s是否发生碰撞。

具体地,所述步骤q33可以包括图中未示出的步骤t1-t5:

t1、将内部结构集合struct初始设为空集

t2、给定集合i={i|i=1,2,3,…,8},对应预设的元件顺序为:

{smallservo1,smallservo2,smallservo3,mainservo1,

mainservo2,battery,ctrl1,ctrl2}。

t3、按照所述预设的元件顺序,判断当前内部结构s中的每一元件ci是否与现有struct发生碰撞;如果发生碰撞,返回执行所述步骤q32;如果未发生碰撞,为当前元件ci生成其支撑结构s(ci),并利用第四公式更新内部结构集合struct的值。

其中,所述第四公式为:

struct=struct∪ci∪s(ci)(3)。

可以理解的是,所述步骤q33是在所述步骤q32生成一个随机解后,检查当前内部结构s是否发生碰撞;如果碰撞,就返回执行所述步骤q32重新生成一个随机解,直到生成一个没有发生碰撞的随机解。

t4、当i==5,确定连接件的位置及旋转空间sweeplink,并利用第五公式更新内部结构集合struct的值。

其中,所述第五公式为:

struct=struct∪sweeplink(4)。

可以理解的是,一旦主舵机y轴方向上的位置确定,主舵机两端连接件的位置也能唯一确定,连接件的旋转范围为180°,扫过的空间(即旋转空间)为sweeplink。

t5、若全部8个元件均判断完毕且没有发生碰撞,则确定当前内部结构s未发生碰撞,说明当前内部结构s的布局合理。

q34、针对未发生碰撞的内部结构s,分别计算其结构强度、空间利用率和可装配性,并通过第三公式将所述结构强度、空间利用率和可装配性加权求和,得到当前内部结构s的能量函数值f。

其中,所述第三公式为:

f=w1fstruct+w2fspace+w3fassembly(5)

其中,fstruct为结构强度,fspace为空间利用率,fassembly为可装配性,w1为结构强度的权重,w2为空间利用率的权重,w3为可装配性的权重,w1、w2和w3均为非负值。例如,可以设定w1=10.0,w2=1.0,w3=1.5。

具体地,所述步骤q34中的“针对判断得到的未发生碰撞的内部结构s,分别计算其结构强度、空间利用率和可装配性”,可以具体包括:

针对判断得到的未发生碰撞的内部结构s:

1)施加重力和舵机的力矩作为外力,利用第六公式,计算得到结构强度fstruct。

其中,所述第六公式为:

其中,σabs_max为内部结构s上的最大绝对应力,σref为预设参考应力。

需要说明的是,fstruct值越小,结构强度越好。

2)利用第七公式,计算得到空间利用率fspace。

其中,所述第七公式为:

其中,volmale为公子模块的体积,volfemale为母子模块的体积,vol(ci)为元件ci的体积,vol(ci)值越小,空间利用率越大。

3)可以理解的是,最终未产生碰撞的元件布局也可能发生无法装配的情况,需要用装配复杂度衡量该设计能否顺利的装配和拆卸。可以根据未发生碰撞的内部结构s中的元件布局得到一个对应的装配矩阵m,m为n×n的方阵,n为元件数量,m中(i,j)代表元件ci在元件cj存在时不发生碰撞的情况下的装配方向,图7为一种机器人模块中的二维图形布局及其所对应的装配矩阵示意图,在图7中:a、b和c为小舵机,d为主舵机,e和f为侧壁,g为底板,h为主舵机支撑台;根据预先指定的装配序列π=(c1,c2,…,cn),计算v(i)=∩j<im(i,j),其中cj代表在ci之前装配的元件;当且仅当时,π是有效的装配序列;计算有效的装配序列π=(c1,c2,…,cn)的重定向次数,并根据所述重定向次数,利用第八公式,计算得到可装配性;

所述第八公式为:

其中,nreorient为有效的装配序列π的重定向次数。

其中,计算有效的装配序列π=(c1,c2,…,cn)的重定向次数,可具体包括:

则在装配ci,…,cj过程中不需重定向,若并且则装配cj+1时需要一次重定向;统计有效的装配序列π=(c1,c2,…,cn)的重定向次数。

q4、获取所述随机解的相邻解及该相邻解对应的全局能量函数值,利用预设优化算法,获得优化的内部结构。

在具体应用中,所述预设优化算法可以为模拟退火算法,相应地,所述步骤q4,可具体包括图中未示出的步骤r1-r8:

r1、设置最优能量函数值fopt为初始值,给定集合i={i|i=1,2,3,…,8},对应预设的元件顺序为:

{smallservo1,smallservo2,smallservo3,mainservo1,

mainservo2,battery,ctrl1,ctrl2},设置相邻解s’=s,

标志flag=true。

需要说明的是,所述最优能量函数值fopt的初始值为一个充分大的数值,理论上可以是无穷大。举例来说,在本实施例中,可以将fopt的初始值设置为106。在随后的迭代循环中,最优能量函数值越小越好。

r2、若flag=true,则随机选择集合i中的一个数i,在i对应的候选位置集合γi内随机选择另外一个位置代替当前位置得到内部结构s’。

r3、将所述步骤q33中的当前内部结构s替换为内部结构s’,通过执行所述步骤q33,判断内部结构s’是否发生碰撞;如果内部结构s’发生碰撞,则返回执行所述步骤r2;如果内部结构s’未发生碰撞,则flag=false,将未发生碰撞的s’作为随机解s的相邻解。

r4、将所述步骤q34中未发生碰撞的内部结构s替换为未发生碰撞的s’,通过执行所述步骤q34,得到未发生碰撞的s’的能量函数值。

r5、根据模拟退火算法的metropolis准则,计算从当前随机解s转变为其相邻解s’的可能性概率p。

其中,所述模拟退火算法的metropolis准则为:

其中,t为当前温度,f为当前随机解s的能量函数值,f′为当前随机解s的相邻解s’的能量函数值。

r6、若可能性概率p大于预设阈值,则将当前随机解s更新为s’,并将t更新为0.95t。

在具体应用中,所述预设阈值为0到1间的一个随机数。

r7、循环执行所述步骤r1-r6,直到迭代次数达到预设次数并且f’-f<0。

r8、如果当前随机解的能量函数值小于最优能量函数值fopt,则更新当前内部结构,并将最优能量函数值更新为当前随机解的能量函数值。

q5、判断是否遍历完所述边长s的候选集合,若是,则获得的优化的内部结构为最终内部结构优化结果,若否,则返回所述步骤q3。

可以理解的是,在优化能量函数时利用模拟退火算法可以增大算法跳出局部最优解的可能性。

以上述步骤q21所举例子为例,本实施例所述方法获取用户输入的元件的集合,将初始fopt设为106,优化解结果开始为空,按照上述步骤q23选择s={68,72,76,81}为边长s的候选集合;对每个候选边长s∈{68,72,76,81},按照所述步骤q1中的空间位置约束计算出每个元件的候选位置,初始温度t=100;随机生成一个无冲突解s作为当前解,计算其能量函数值;设初始迭代次数iter=0,每轮迭代后iter加一,两轮迭代中能量函数值的差值δf初始设置为10;当迭代次数小于10000或者δf>0,生成相邻解s’并计算相邻解s’的能量函数值,计算其接受概率值p,如果p≥random(0,1),则将当前解更新并且将当前温度降低,即t←0.95t;跳出循环后,得到优化后的结果。

本实施例的模块化机器人内部结构优化方法,可以通过处理器实现,能够实现将用户输入的、待装配在双子模块类型的机器人模块中的元件进行自动合理的布局并在机器人模块内部相应位置生成支撑结构,从而得到一种优化的模块化机器人内部结构。本实施例所述方法对元件的多种类型通用,克服了现有模块化机器人结构设计需要根据用户输入的、待装配在双子模块类型的机器人模块中的元件的不同类型手动设计的缺点,通过迭代优化使得机器人模块的内部结构相比于现有人工依照经验的进行结构设计而言结果更优。

图8示出了本发明实施例提供的一种电子设备的实体结构示意图,如图8所示,该电子设备可以包括:处理器11、存储器12、总线13及存储在存储器12上并可在处理器11上运行的计算机程序;

其中,所述处理器11,存储器12通过所述总线13完成相互间的通信;

所述处理器11执行所述计算机程序时实现上述方法实施例所提供的方法,例如包括:q1、获取用户输入的待装配在机器人模块内的元件,并设置用户输入的每一元件的空间位置约束;q2、根据用户输入的元件的尺寸,获取所述机器人模块的子模块的边长s的候选集合;q3、选择所述边长s的候选集合中的一个取值,按照预设的元件顺序及相应的空间位置约束,获取一个内部结构的随机解及该随机解对应的全局能量函数值;q4、获取所述随机解的相邻解及该相邻解对应的全局能量函数值,利用预设优化算法,获得优化的内部结构;q5、判断是否遍历完所述边长s的候选集合,若是,则获得的优化的内部结构为最终内部结构优化结果,若否,则返回所述步骤q3。

本发明实施例提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述方法实施例所提供的方法,例如包括:q1、获取用户输入的待装配在机器人模块内的元件,并设置用户输入的每一元件的空间位置约束;q2、根据用户输入的元件的尺寸,获取所述机器人模块的子模块的边长s的候选集合;q3、选择所述边长s的候选集合中的一个取值,按照预设的元件顺序及相应的空间位置约束,获取一个内部结构的随机解及该随机解对应的全局能量函数值;q4、获取所述随机解的相邻解及该相邻解对应的全局能量函数值,利用预设优化算法,获得优化的内部结构;q5、判断是否遍历完所述边长s的候选集合,若是,则获得的优化的内部结构为最终内部结构优化结果,若否,则返回所述步骤q3。

本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置/系统。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。术语“上”、“下”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。除非另有明确的规定和限定,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本发明中的具体含义。

本发明的说明书中,说明了大量具体细节。然而能够理解的是,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。类似地,应当理解,为了精简本发明公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释呈反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。本发明并不局限于任何单一的方面,也不局限于任何单一的实施例,也不局限于这些方面和/或实施例的任意组合和/或置换。而且,可以单独使用本发明的每个方面和/或实施例或者与一个或更多其他方面和/或其实施例结合使用。

最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围,其均应涵盖在本发明的权利要求和说明书的范围当中。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1