发明内容
本发明的目的在于提供一种鳞翅目昆虫模型仿真和控制方法、系统及可读存储介质;用于解决现有技术中,将鳞翅目昆虫视为刚体,对其仿真不精准;以及在考虑空气动力、涡旋力和鳞翅目昆虫独特的飞行轨迹的情况下,对非刚体虚拟鳞翅目昆虫模型进行飞行控制的问题。
为了实现上述发明目的,本发明提供了以下技术方案:
一种鳞翅目昆虫模型的仿真和控制方法,包括:
步骤1:基于昆虫身体的详细尺寸,采用三维mesh和层次化骨骼建立虚拟鳞翅目昆虫模型;所述模型包括n个翅膀和重力信息;并基于鳞翅目昆虫的飞行状态特性设置多个飞行控制角θ * ,所述多个飞行控制角θ * 包括:前翼和后翼拍打角θ γ 、前翼旋转角θ ζ 、俯仰角θ β 、前翼扫角θ Ψ 和腹部旋转角θ φ ;所述重力信息包括虚拟鳞翅目昆虫模型的质量、重力和虚拟鳞翅目昆虫模型的重心坐标。
步骤2:采用准稳态空气动力学理论,求解所述虚拟鳞翅目昆虫模型第j个翅膀每一个三维mesh的三角面片上空气动力F i,j ,并将所述第j个翅膀上每一个三维mesh的三角面片上的空气动力F i,j 进行叠加,得到第j个翅膀上的空气动力F j ;依次求解所述虚拟鳞翅目昆虫模型的n个翅膀上的空气动力,求和得到所述虚拟鳞翅目昆虫模型的空气动力总和,以及在旋度噪声场上叠加Perlin噪声得到涡旋力F vor 。
步骤3:根据所述空气动力总和、所述涡旋力F vor 和所述重力得到虚拟鳞翅目昆虫模型的局部加速度a loc ;通过飞行路径规划,获取若干吸引点;通过最近吸引点、鳞翅目昆虫模型的重心坐标和鳞翅目昆虫模型的质量计算得到虚拟鳞翅目昆虫模型的偏好加速度a pre ;并通过所述局部加速度a loc 和所述偏好加速度a pre 得出鳞翅目昆虫的速度u t 。
步骤4:依据所述鳞翅目昆虫的速度u
t 得出虚拟鳞翅目昆虫模型各飞行控制角
θ * 对应的振幅
和虚拟鳞翅目昆虫模型各飞行控制角
θ * 对应的频率
f * (u
t ) ;根据鳞翅目昆虫的速度u
t 、振幅
和频率
f * (u
t )求得鳞翅目昆虫模型的飞行控制角
θ * ;以对所述虚拟鳞翅目昆虫模型进行飞行控制。
其中,所述最近吸引点为距离当前虚拟鳞翅目昆虫模型位置最近的吸引点,所述n可以为4;所述飞行状态特性为: 翅膀为平整的平面,翅膀扇动时,腹部上下翘动;飞行时,腹部翘动上下方向与翅膀上下扇动方向相反;飞行时头部上下抖动。
所述飞行控制角θ * 的计算公式为:
其中符号“*”为上标,用于表示不同的飞行控制角,当*为β时表示前述俯仰角θ β ,为γ时表示前翼和后翼拍打角θ γ ,为ζ时表示前翼旋转角θ ζ ,为Ψ 时表示前翼扫角θ Ψ ,为φ时表示腹部旋转角θ φ 。
其中,
表示计算飞行控制角𝜃
∗所使用到的幅度域宽,| u
max|是蝴蝶的最大飞行速度;
其中,所述频率f * (u t )的计算公式为:
其中,R * f 是计算飞行控制角θ * 所使用到的频率域宽。
进一步的是,层次化骨骼可以基于线性混合蒙皮模型建立,并可以与所述三维mesh绑定,用于驱动三维mesh运动。
通过将骨骼与三维mesh绑定,并用骨骼驱动三维mesh运动可以使鳞翅目昆虫模型的姿态更加的精细化,成功的建立了一种非刚体的鳞翅目模型,使鳞翅目昆虫模型的姿态、行为更加的真实、仿生感更强。并通过飞行控制角θ * 使鳞翅目昆虫模型展现出不同的精细姿态。
通过准稳态空气动力学理论,并将空气动力分散到每一个三维mesh的三角面片上,使虚拟鳞翅目昆虫模型更加的真实,精细化的呈现了鳞翅目昆虫在飞行过程中三维mesh的细微运动;同时量化了空气动力、涡旋力和鳞翅目昆虫的飞行路径对非刚体虚拟鳞翅目昆虫模型飞行的影响,并实现了对其自动控制。
进一步的是,所述俯仰角θ β 用于表征鳞翅目昆虫的胸部沿身体纵轴上下翘动的幅度;所述前翼和后翼拍打角θ γ 用于表征鳞翅目昆虫翅膀前后翼的拍打幅度;所述前翼旋转角θ ζ 用于表征鳞翅目昆虫前翼绕其前翼轴线的旋转角度;所述前翼扫角θ Ψ 用于表征鳞翅目昆虫前翼扫动的幅度;所述腹部旋转角θ φ 用于表征鳞翅目昆虫腹部沿身体纵轴上下翘动的幅度。
进一步的是,在所述步骤2中第j个翅膀上第i个三角面片上空气动力F i,j 通过如下方式计算:
其中,j=1、2...n;
ρ是空气密度,
是第𝑖个三角面片的面积,𝑉是翅膀表面的空气速度;
分别为升力系数和阻力系数;系数
由翅膀的迎角
α所决定,迎角
α计算为:
V n 和V t 分别为相对空气速度在翅膀表面法向量和切向量的分量,切向量指从翅根指向翅尖的单位方向向量;
所述涡旋力F vor 表示为:
其中,
是鳞翅目昆虫模型的重心坐标,
,
和
作为三个取值不同的Perlin噪声种子;
为噪声场网格的密度系数,
为噪声幅度系数,符号“▽x”为旋度运算符号,通过旋度运算构建一个旋度场;gain
x、gain
y、gain
z分别为噪声场网格密度系数gain在x、y、z三个方向上的取值。
进一步的是,在所述步骤3中,所述偏好加速度a pre 表示为:
其中,
是最近的吸引点,
是鳞翅目昆虫模型的重心坐标,
m是鳞翅目昆虫模型的总质量,
L是鳞翅目昆虫模型有效视域中的最大感知深度,
为坡度函数,用于平滑的降低鳞翅目模型飞行末段的速度;
𝑡时刻时的速度u t 的计算公式为:
其中u t-1 表示蝴蝶在前一时刻的速度。
进一步的是,频率
f * (u
t )和振幅
的剧烈变化不利于真实鳞翅目昆虫在飞行中节省能量;并且
f * (u
t )和振幅
的持续剧烈变化会导致飞行的不流畅;因此可以通过滑动窗口算法处理
f * (u
t )和振幅
。消除
f * (u
t )和振幅
的突变,更加增强虚拟鳞翅目昆虫的真实感。
进一步的是,所述滑动窗口算法为:
一种鳞翅目昆虫模型的仿真和控制系统,所述系统包括:
模型建立模块、第一计算模块、第二计算模块、第三计算模块和飞行控制模块。
所述模型建立模块,用于建立虚拟鳞翅目昆虫模型;所述虚拟鳞翅目昆虫模型采用三维mesh和层次化骨骼建立;所述模型包括n个翅膀和重力信息;并基于鳞翅目昆虫的飞行状态特性设置多个飞行控制角θ * ,所述多个飞行控制角θ * 包括:前翼和后翼拍打角θ γ 、前翼旋转角θ ζ 、俯仰角θ β 、前翼扫角θ Ψ 和腹部旋转角θ φ ;所述重力信息包括虚拟鳞翅目昆虫模型的质量、重力和虚拟鳞翅目昆虫模型的重心坐标。
所述第一计算模块,用于求解所述虚拟鳞翅目昆虫模型第j个翅膀的三维mesh的三角面片上的空气动力F i,j ,并将所述第j个翅膀的三维mesh的三角面片上的空气动力F i,j 进行叠加,得到第j个翅膀上的空气动力F j ;依次求解所述虚拟鳞翅目昆虫模型的n个翅膀上的空气动力,并得到所述虚拟鳞翅目昆虫模型的空气动力总和,以及在旋度噪声场上叠加Perlin噪声得到涡旋力F vor 。
所述第二计算模块用于根据所述空气动力总和、所述涡旋力F vor 和所述重力得到虚拟鳞翅目昆虫模型的局部加速度a loc ;通过飞行路径规划,获取若干吸引点;通过最近吸引点、鳞翅目昆虫模型的重心坐标和鳞翅目昆虫模型的质量计算得到虚拟鳞翅目昆虫模型的偏好加速度a pre ;并通过所述局部加速度a loc 和所述偏好加速度a pre 得出鳞翅目昆虫的速度u t 。
所述第三计算用于依据所述鳞翅目昆虫的速度u
t 得出虚拟鳞翅目昆虫模型各飞行控制角
θ * 对应的振幅
和虚拟鳞翅目昆虫模型各飞行控制角
θ * 对应的频率
f * (u
t );根据鳞翅目昆虫的速度u
t 、振幅
和频率
f * (u
t )求得鳞翅目昆虫模型的飞行控制角
θ * 。
所述飞行控制模块通过鳞翅目昆虫模型的飞行控制角θ * ,并结合速度u t 控制所述虚拟鳞翅目昆虫模型生成飞行动画。
通过该系统可以建立一种非刚体的虚拟鳞翅目昆虫模型,并实现对非刚体虚拟鳞翅目昆虫飞行的自动控制,同时得到动态的虚拟鳞翅目昆虫飞行动画,该动画的仿生性能好,真实感强。
一种可读存储介质,其上存储有计算机程序,所述程序被处理器执行可以实现上述鳞翅目昆虫模型的仿真和控制方法。
综上,与现有技术相比,本发明的有益效果是:本发明在利用三维mesh与层次化骨骼绑定建立虚拟鳞翅目昆虫模型的基础上,基于鳞翅目昆虫的飞行状态特性设置了能够用于表征鳞翅目昆虫飞行状态下身体姿态变化的飞行控制角θ * ;从而建模得到了一种非刚体虚拟鳞翅目昆虫模型,所得鳞翅目昆虫模型更加的真实,仿生效果更强;进一步的,引入空气动力、涡旋力和鳞翅目昆虫的飞行路径对非刚体虚拟鳞翅目昆虫模型进行综合飞行行为控制,能够形成与飞行速度、空间位置、所受的外力、噪声环境相关联的非刚体鳞翅目昆虫模型的飞行控制模型,从而实现了对非刚体鳞翅目昆虫模型的自动飞行控制;同时,通过本发明的方法能够得到一种仿真程度高,拟生效果好的动态虚拟鳞翅目昆虫飞行动画。
具体实施方式
本发明提出了一种鳞翅目昆虫模型仿真和控制方法、系统及可读存储介质,其中本发明方法部分的整体框架图如图1所示。
下面将结合实施例对本发明作进一步的详细描述。但不应将此理解为本发明上述主题的范围仅限于以下的实施例,凡基于本发明内容所实现的技术均属于本发明的范围。
实施例1
本实施例主要用于介绍一种鳞翅目昆虫模型的仿真和控制方法中的仿真部分,可以通过个体控制参数具体详实的描述鳞翅目昆虫的不同姿态;使昆虫模型更加的真实,仿生效果更强;可以包括:
基于昆虫身体的详细尺寸,采用三维mesh和层次化骨骼建立一个虚拟鳞翅目昆虫模型;所述模型包括n个翅膀和重力信息,并基于鳞翅目昆虫的飞行状态特性设置多个飞行控制角,所述多个飞行控制角包括:前翼和后翼拍打角θ γ 、前翼旋转角θ ζ 、俯仰角θ β 、前翼扫角θ Ψ 和腹部旋转角θ φ ;所述重力信息包括模型的质量、重力和虚拟鳞翅目昆虫模型的重心坐标;所述n可以为4。
通过将骨骼与三维mesh绑定,并用骨骼驱动三维mesh运动可以使鳞翅目昆虫模型的姿态更加的精细化,成功的建立了一种非刚体的鳞翅目模型,使鳞翅目模型的姿态、行为更加的真实、仿生感更强。并通过所述多个飞行控制角,使鳞翅目昆虫展现出不同的精细姿态。
所述俯仰角θ β 用于表征鳞翅目昆虫的胸部沿身体纵轴上下翘动的幅度;所述前翼和后翼拍打角θ γ 用于表征鳞翅目昆虫翅膀前后翼的拍打幅度;所述前翼旋转角θ ζ 用于表征鳞翅目昆虫前翼绕其前翼轴线的旋转角度;所述前翼扫角θ Ψ 用于表征鳞翅目昆虫前翼扫动的幅度;所述腹部旋转角θ φ 用于表征鳞翅目昆虫腹部沿身体纵轴上下翘动的幅度。
作为优选的,本方法特别适用于蝴蝶类、蛾类等;根据生物仿真学研究显示,这类鳞翅目昆虫翅膀为平整的平面,翅膀扇动时,腹部上下翘动;飞行时,腹部翘动上下方向与翅膀上下扇动方向相反;飞行时头部上下抖动。
实施例2
在实施例1的基础上,本实施例主要关注对蝴蝶类和蛾类的仿真,主要选用了两种具有代表性的蝴蝶和一种代表性的蛾类;分别为燕尾蝶(学名:Pachlioptaaristolochiae)、黑脉金斑蝶(学名:Danaus plexippus)和天蛾(学名:Hawkmoth Manducasexta);并以蝴蝶为例对本发明提出的一种鳞翅目昆虫模型的仿真方法做详细说明。具体的,在英特尔(R)核心(TM)I7-7700CPU,Geforce RTX2070GPU(8G),和16GB内存的PC上进行了仿真实验;对模型仅采用GPU进行渲染加速,并通过GPU进行并行计算。
三维蝴蝶模型的mesh由三角面片组成,其中黑脉金斑蝶3D模型具有11814个顶点和23334个三角形,燕尾蝶3D模型包含16596个顶点和16594个三角形。蝴蝶模型主要由头部、胸部、腹部、前翼和后翼五个部分组成;为了仿真更加真实的蝴蝶,基于线性混合蒙皮模型给蝴蝶设计了层次化骨骼,并将其与mesh绑定。通过骨骼来驱动mesh运动,以得到一个非刚体的仿真蝴蝶模型。
其中,线性混合蒙皮模型可以从文献Jacobson A, Deng Z, Kavan L, 等的Skinning: real-time shape deformation[A]. ACM SIGGRAPH 2014 Courses on -SIGGRAPH ’14[C]. Vancouver, Canada: ACM Press, 2014: 1–1 中得到;建立的层次化骨骼如图2所示。
进一步的,根据学术研究发现,鳞翅目昆虫在飞行过程中具有特定的飞行状态特性,以蝴蝶为例,蝴蝶通过点关节相连的翅膀有着特有的频率范围和拍打幅度,蝴蝶会翘动腹部来抵消其在前向或攀爬飞行过程中翅膀拍打所带来的身体失衡;参照图3,为了更加真实的模拟这些飞行状态特性,设置多个飞行控制角,包括:前翼和后翼拍打角θ γ 、前翼旋转角θ ζ 、俯仰角θ β 、前翼扫角θ Ψ 和腹部旋转角θ φ ;蝴蝶初始姿势为:翅膀水平舒展,身体沿水平并与地面平行,左侧翅膀与右侧翅膀距地面距离相同。令贯穿蝴蝶头部至尾部的直线为身体纵轴,垂直于身体纵轴并贯穿左右侧翅膀的直线为身体横轴,身体纵轴与身体横轴所在的平面为身体平面。则俯仰角θ β 是指胸部与身体的夹角。同理,腹部旋转角θ φ 是指腹部与身体平面的夹角。前翼和后翼拍打角θ γ 是指翅膀与身体平面的夹角;前翼扫角是指前翼与身体纵轴的夹角。从翅膀根部到翅尖为翅膀纵轴,与翅膀纵轴垂直且贯穿的直线为翅膀横轴,翅膀纵轴与横轴所构成的平面为翅膀平面,则前翼旋转角θ ζ 指翅膀扭转后翅膀平面与初始姿势时的翅膀平面所成的夹角。
所述俯仰角θ β 用于表征鳞翅目昆虫的胸部沿身体纵轴上下翘动的幅度;所述前翼和后翼拍打角θ γ 用于表征鳞翅目昆虫翅膀前后翼的拍打幅度;所述前翼旋转角θ ζ 用于表征鳞翅目昆虫前翼绕其前翼轴线的旋转角度;所述前翼扫角θ Ψ 用于表征鳞翅目昆虫前翼扫动的幅度;所述腹部旋转角θ φ 用于表征鳞翅目昆虫腹部沿身体纵轴上下翘动的幅度。
为了更加精细的呈现蝴蝶胸部运动情况;蝴蝶身体的运动参考点为其胸部。蝴蝶在飞行过程中除了有翅膀的拍打运动还会有胸部的俯仰动作。在本方法中,给蝴蝶胸部的俯仰赋予一个自由度(DOF)为俯仰角θ β 。
为了更加精细的呈现蝴蝶胸部的运动情况,使其更加自然,让蝴蝶双侧的翅膀拍打保持频率与幅度同步。 此外,对于翅膀的控制分为前、后翅。对于每个前翼都有3自由度旋转。对于后翼,由于其对飞行动力产生的作用不大,故后翅只赋予一个自由度用于拍打控制。因此,通过前翼和后翼的拍打角θ γ ,前翼的旋转角θ ζ 和前翼的扫角θ Ψ 来精细的描述蝴蝶胸部的姿态。
腹部控制参数;蝴蝶在飞行过程中,特别是盘旋或攀爬过程中腹部有明显沿身体纵轴上下翘动的动作,并且相位与翅膀拍打相位相反。腹部的翘动所产生的转动惯量作用于腹胸连接点有助于维持身体平衡。腹部因此具有1个自由度沿身体纵轴上下旋转。 则腹部控制参数为腹部的旋转角θ φ 。
在上述实施例中,本发明基于鳞翅目昆虫的飞行状态特性,赋予鳞翅目昆虫各个部位独立的飞行控制角,进一步将鳞翅目昆虫模型转换为了非刚体鳞翅目昆虫模型,使鳞翅目昆虫的不同姿态得以精准、栩栩如生的展现,使仿真的自由度更高、可塑性更强,进一步的提升了本仿真的真实感和准确性。
采用上述方法,通过建模得到燕尾蝶模型,设置若干个体控制参数,仿真出燕尾蝶的不同姿态如图4中a至g所示。其具体细节如图7所示。
采用上述方法,通过建模得到黑脉金斑蝶模型,设置若干个体控制参数,仿真出黑脉金斑蝶的不同姿态如图5中a至g所示。
采用上述方法,通过建模得到黑脉金斑蝶模型,设置若干个体控制参数,仿真出天蛾的不同姿态如图6中a至g所示。
实施例3
在实施例1的基础上,本实施例主要用于介绍一种鳞翅目昆虫模型仿真和控制方法中的飞行控制部分:该方法包括如下步骤:
步骤1:采用上述方法建立一个虚拟鳞翅目昆虫模型。
步骤2:采用准稳态空气动力学理论,求解所述虚拟鳞翅目昆虫模型第j个翅膀每一个三维mesh的三角面片上空气动力F i,j ,并将第j个翅膀上每一个三维mesh的三角面片上空气动力F i,j 进行叠加,得到第j个翅膀上的空气动力F j ;依次求解所述虚拟鳞翅目昆虫模型n个翅膀上的空气动力,求和得到所述虚拟鳞翅目昆虫模型的空气动力总和,以及在旋度噪声场上叠加Perlin噪声得到涡旋力F vor 。
步骤3:根据所述虚拟鳞翅目昆虫模型的空气动力总和与所述涡旋力F vor 和虚拟鳞翅目昆虫模型的重力得到虚拟鳞翅目昆虫模型的局部加速度a loc ;通过飞行路径规划,获取若干吸引点;通过最近吸引点、鳞翅目昆虫模型的重心坐标和鳞翅目昆虫模型的总质量计算得到虚拟鳞翅目昆虫模型的偏好加速度a pre ;并通过所述局部加速度a loc 和所述偏好加速度a pre 得出鳞翅目昆虫的速度u t ;
步骤4:依据t时刻的虚拟鳞翅目昆虫模型的速度u
t 得出虚拟鳞翅目昆虫模型各飞行控制角
θ * 对应的振幅
和虚拟鳞翅目昆虫模型各飞行控制角
θ * 对应的频率
f * (u
t );根据
t时刻的速度u
t 、频率
f * (u
t )和振幅
求得鳞翅目昆虫模型的飞行控制角
θ * ;以对所述虚拟鳞翅目昆虫模型进行飞行控制。
其中,所述最近吸引点为离当前虚拟鳞翅目昆虫模型位置最近的吸引点。所述若干吸引点,可以是使用者根据使用者需要人为设定,也可以是只给定一个飞行目的地采用现有路径规划算法,经过运算得出。
其中,
表示计算飞行控制角𝜃
∗所使用到的幅度域宽,| u
max|是蝴蝶的最大飞行速度;其中,
是计算飞行控制角
θ * 所使用到的频率域宽;其中符号“*”为上标用于表示不同的飞行控制角,
β表示前述俯仰角
θ β ,
γ用于表示前翼和后翼拍打角
θ γ ,ζ用于表示前翼旋转角
θ ζ ,Ψ 用于表示前翼扫角
θ Ψ ,φ用于表示腹部旋转角
θ φ 。
所述频率f * (u t )的计算公式为:
其中,其中,R * f 是计算飞行控制角θ * 所使用到的频率域宽;
所述实时飞行控制角θ * 的计算公式为:
学术界研究证实翅膀因拍打会在翅膀边沿触发空气涡流,并给飞虫产生垂直向上的升力;目前用于涡旋模拟方法中基于CFD的方法来求解Naiver-Stokes方程计算量巨大。因此需要采用了一种更轻量级的方法来模拟空气涡流。为了模拟涡流对鳞翅目昆虫产生的影响,以及刻画其生物噪声行为,引入旋度噪声场来获得一个涡旋力。并在构建的旋度场上增加Perlin噪声,能够模拟飞虫的与生俱来的生物噪声行为。将旋度噪声力扩展到微观的鳞翅目昆虫个体的飞行控制,可以用于仿真涡旋力对鳞翅目昆虫的身体整体运动所造成的影响。
通过准稳态空气动力学理论,并将空气动力分散到每一个三维mesh的三角面片上,使虚拟鳞翅目昆虫模型更加的真实,更加精细化的呈现了鳞翅目昆虫在飞行过程中三维mesh的细微运动;同时通过偏好加速度a pre 可以模拟真实环境中鳞翅目昆虫独特的飞行路径;同时在平衡考虑计算量的基础上,简化了振幅和频率与速度的关系,简化了振幅、频率和速度与飞行控制角θ * 的关系在保证真实程度的基础上节约了算力。实现了对虚拟鳞翅目飞行的自动控制。
进一步的是,步骤中第j个翅膀上第i个三角面片上的空气动力F i,j, 通过如下方式计算:
其中,j=1、2...n;
ρ是空气密度,
是第𝑖个三角面片的面积,,𝑉是翅膀表面的空气速度;
分别为升力系数和阻力系数;系数
由翅膀的迎角
α所决定,迎角
α计算为:
V n 和V t 分别为相对空气速度在翅膀表面法向量和切向量的分量,切向量指从翅根指向翅尖的单位方向向量;
第j个翅膀上的空气动力F j 为
所述涡旋力F vor 表示为:
其中,
是鳞翅目昆虫的重心坐标,
,
和
作为三个取值不同的Perlin噪声种子;
为噪声场网格的密度系数,
为噪声幅度系数;符号“▽x”为旋度运算符号,通过旋度运算构建一个旋度场;gain
x、gain
y、gain
z分别为噪声场网格密度系数gain在x、y、z三个方向上的取值,gain取值越大生成的涡流越小,反之越大;旋度噪声场可以从文献BridsonR, Houriham J, Nordenstam M. Curl-noise for procedural fluid flow[J]. ACMTransactions on Graphics, 2007, 26(3): 46.中知晓。
进一步的是,步骤3中,所述偏好加速度a pre 表示为:
其中,qi是最近的吸引点,p是鳞翅目昆虫模型的重心坐标,m是鳞翅目昆虫模型的总质量,L是鳞翅目昆虫模型有效视域中的最大感知深度, R(d)为坡度函数,用于平滑的降低鳞翅目模型飞行末段的速度;u t 的计算公式为:
u t 的计算公式为:
其中u t-1 表示蝴蝶在前一时刻的速度。
局部加速度a loc 为
本飞行控制方法考虑了飞行速度、空间位置、所受的外力、环境等因素等对非刚体鳞翅目昆虫模型的飞行姿态影响,填补了现有技术中对非刚体鳞翅目模型飞行控制的空白;通过本发明提出的方法控制的鳞翅目模型,其飞行姿态更加真实,仿生性能更好。
实施例4
本实施例在实施例3的基础上,基于窗口滑动窗口算法,通过如下公式优化处理频率
f * (u
t )和振幅
,使其变化更加流畅,更加真实的模拟鳞翅目昆虫在真实飞行中的姿态。
因为鳞翅目昆虫在飞行过程中主要的身体变化为翅膀的拍打。并且,翅膀拍打的频率与幅度是动态变化的。为了仿真蝴蝶在飞行过程中这种动态变化的身体运动,需要动态调节两个控制频率
f * (u
t )和振幅
。为了更加真实的模拟鳞翅目昆虫在现实中的飞行状态,可以在开始一个新的拍打周期时调整频率
f * (u
t )和振幅
,并可以根据过去的飞行数据动态调整。因为频率和振幅的剧烈变化不利于鳞翅目昆虫在飞行中节省能量。此外,频率和振幅的持续剧烈变化会导致运动不流畅。因此,需要平滑𝑓和𝜑𝑎的值。基于滑动窗口算法,通过上述公式处理频率
f * (u
t )和振幅
,使其变化更加流畅,可以更加真实的模拟鳞翅目昆虫在真实飞行中的姿态。
实施例5
在前叙实施例的基础上本实施例主要关注对于虚拟非刚体蝴蝶模型的飞行控制,并通过计算机软件自动生成动画;并采用英特尔(R)核心(TM)I7-7700 CPU,GeforceRTX2070GPU(8G),和16GB内存的PC进行仿真实验;对模型仅采用GPU进行渲染加速,并通过GPU进行并行计算。
其中将
gain x 和
gain z 设置为22.0,将
gain y 设置为5.5,并将
η设置为3.66;
L设置为4.5;频率域宽
和幅度域宽
均可从现有技术中得到。
如图8所示,展示了采用本发明提出的仿真方法及飞行控制方法模拟的仿真蝴蝶与真实蝴蝶的对比;左侧为真实的蝴蝶(蝴蝶品种为燕尾蝶),右侧为仿真的蝴蝶。首先,从Internet上下载一段高清的蝴蝶视频,然后从视频中随机选择一个片段来进行对比。根据所选择的视频片段中蝴蝶的起始与结束姿态,给仿真的蝴蝶手动指定类似的开始和线束姿势。从图片可以看出,仿真蝴蝶的身体变化,如翅膀的拍打、腹部的翘动、胸部的抖动从视觉上看非常接近真实蝴蝶。
如图10所示,图片展示了在通过采用本发明提出的飞行控制方法,在鳞翅目昆虫翅膀上打和下打过程中各参数变化的示意图。
如图11所示,展示了采用本发明提出的飞行控制方法与传统的基线控制方法对比;在传统动画中,往往采用预先录制好的循环动画来表达蝴蝶在飞行过程的身体变化;其并未考虑蝴蝶的真实飞行姿态。并没有将蝴蝶的飞行姿态与飞行速度、空间位置、所受的外力、环境等因素关联。
实施例6
一种鳞翅目昆虫模型的仿真和控制系统,包括:
模型建立模块、第一计算模块、第二计算模块、第三计算模块和飞行控制模块。
所述模型建立模块,用于建立虚拟鳞翅目昆虫模型;所述虚拟鳞翅目昆虫模型采用三维mesh和层次化骨骼建立;所述层次化骨骼基于线性混合蒙皮模型建立,并与所述三维mesh绑定,用于驱动三维mesh运动;所述模型包括n个翅膀和重力信息;所述重力信息包括虚拟鳞翅目昆虫模型的质量、重力和虚拟鳞翅目昆虫模型的重心坐标。
所述第一计算模块,用于基于准稳态空气动力学理论,求解所述虚拟鳞翅目昆虫模型第j个翅膀每一个三维mesh的三角面片上空气动力F i,j ,并将其叠加从而得到第j个翅膀上的空气动力F j ;依次求解所述虚拟鳞翅目昆虫模型n个翅膀上的空气动力,以及在旋度噪声场上叠加Perlin噪声得到涡旋力F vor 。
所述第二计算模块用于基于牛顿第二定律,通过所述涡旋力F vor 、所述第j个翅膀上的空气动力F j, 和重力得到局部加速度a loc ;以及通过最近吸引点、鳞翅目昆虫模型的中心坐标和鳞翅目昆虫模型的重质量计算得到虚拟鳞翅目昆虫模型的偏好加速度a pre ;并通过所述局部加速度a loc 和所述偏好加速度a pre 得出鳞翅目昆虫的速度u t 。
所述第三计算用于依据
t时刻的速度u
t 得出虚拟鳞翅目昆虫模型个飞行控制角
θ * 对应的频率
f * (u
t )和振幅
;并根据
t时刻的速度u
t 、频率
f * (u
t )和振幅
得出虚拟鳞翅目昆虫模型的飞行控制角
θ * 。
所述飞行控制模块通过鳞翅目昆虫模型的飞行控制角θ * ,并结合速度u t 控制所述虚拟鳞翅目昆虫模型生成飞行动画。
实施例7
同时,本发明还提出了一种可读存储介质,其上存储有计算机程序,其中程序被处理器执行使实现本发明提出的鳞翅目昆虫模型的仿真和控制方法。
应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中,且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的技术中的任意一项或它们的组合来实现;具有用于对时局信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。