机器鱼的运动仿真方法
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
定理 1[7] : 设 P (t ) 是以给定的点列 Pi (i=1,2, … , n)为控制顶点的区 间 [a, b] ( a < b) 上定义的 n 次 Bézier 曲线,即, P (t ) = ∑ Pi Bn, i (
i=0 n
t −a ) ( a ≤ t ≤ b )) b−a
(4)
则
Dec.
变形后鱼体上点的坐标和其法线的求解如下: uuu r A 点的法线为 nA = BA ,A 点的切向量为 AC ,则 A 点的法 线为:
由于 Bézier 曲线插值其控制多边形的起点和终点,细 分的终止条件可相当直观地给出:如果 Bézier 曲线 Q (u ) 上 任一点与连接该点曲线两端点的连线 P 0P 3 的距离
E ξ
D (U ) = T 2 R 2 (T1 R1 ) − 1U
' U
(2)
其中 T1 为矢量 OAU 的平移矩阵, T2 为矢量 O A 的平移矩
η y ζ 图2 z 坐标系 x
阵。 因此, 物体的变形与轴的变形密切相关。 通过对轴线的 弯曲和伸长,达到控制物体弯曲和伸长的目的。除此之外, 若在轴线的每一点附加一比例缩放因子, 还可以实现物体的 比例缩放和扭曲变形。此时 D(U ) 可计算如下:
引
言
1
深入的研究[2]。 在国内, 北京航空航天大学的研究人员研制了类似八目 鳗的曲伸式仿生鱼。 哈尔滨工业大学机械电子工程系正在研 究的仿生鱼机器人申请了国家自然科学基金项目。 哈尔滨工 程大学水下机器人实验室开发了“仿生-Ⅰ”号机器鱼(图 1) , 用于研究仿生推进的机理及其在微小型无人水下探测器 上应用的可行性。
由于鱼在摆动过程中,其形状是在不断变化的,水动力 系数也是在不断的变化的, 所以很难按照传统的潜艇操纵性 方程给出其水动力模型, 只能对应一种特定的摆动规律, 即 某一摆幅和相位差下,计算不同航速下的在其前进方向( X 方向)的水动力合力(有正也有负) ,取合力为零的情况, 在这种状态下,可以认为,在这一摆幅和相位差下,鱼匀速 运动的速度即为其合力为零时对应的速度。 鱼在回航时, 鱼 尾只在一边摆动(比如说左侧) ,那么鱼向左转,其回转角 速度与摆幅及相位差有一个对应的关系,系数可由试验测 出。 另外, 胸鳍升力和攻角的关系可由水动力试验给出 (图 3) 。
收稿日期: 2003-09-12 修回日期: 2004-03-15 作者简介: 彭之春 (1977-), 男, 湖北省荆州市人, 硕士, 研究方向为潜水 器及深海资源开发系统设计。
图1
机器鱼的照片
在利用计算机仿真方法模拟机器鱼的运动方面也有很 多研究。涂晓媛采用人工生命方法来模拟鱼的运动[3],该方 法是从基于物理的图形建模方法发展起来的。从低层次上 看, 基于物理的图形建模方法包括构建运动对象的动力学模 型, 通过仿真计算其运动。 基于物理的建模意味着物体的运 动受物理规律的支配,使得仿真自然逼真。而且,这种方法 将人们从许多低层次的运动细节的描述和制作中解放出来, 因为,运动是通过计算机的仿真过程自动合成的。 对于机器鱼的运动仿真中,一种方法是用 MultiGen Creator 建立机器鱼的模型,即制作鱼运动的关键帧,并确
鳍的攻角与升力的关系,建立了机器鱼的运动模型,并采用轴变形方法模拟了机器鱼在水平面内的 直航运动。 根据仿真试验结果的误差可以认为, 该方法实现的运动仿真与真实的鱼的运动基本一致, 这对以后的工作有较大的指导意义。 关键词: 仿生学;机器鱼;计算机仿真;轴变形 文章编号:1004-731X (2004) 12-2643-04 中图分类号: TP391.9 文献标识码:A
1
机器鱼运动的一般方程
为了描述机器鱼的运动和建立仿真系统, 就必须首先建
立适合描述机器鱼运动的坐标系。本文根据国际水池会议 (ITTC)推荐的和造船与轮机工程学会( SNAME)术语公 报的体系,同时参考有关资料[4],建立如下两种坐标系:固 定坐标系 E − ξηζ 和运动坐标系 O − xyz (图 2) ,动坐标系 的原点设在机器鱼的重心上。
・2645・
(5) ( 5)
( 6) (6)
y
A
C
α
o B
其中 Bn ,i (t ) = n! a +b , t i (1 − t ) n−i , (i = 0,1,L n) c = 2 i!( n − i )!
图4
A
计算鱼体表面法线
C
x
Pi
[r ]
(7) r = 0 ,i = 0,1, 2 ,...,n P [ r −1] − [ 1] r = Pi −1 + Pi r = 1, 2 ,...,n;i = r , r + 1,..., n (8) 2
传统的操纵与推进装置的体积大、重量重、效率低、噪 音大和机动性差等问题一直是限制自主式水下机器人、 无人 无缆水下航行器或微小型无人水下探测器实用化的主要障 碍之一。 人们在开发新能源的同时, 也在积极寻找降低能耗、 提高推进效率的方法。 利用仿生学原理, 开发类似海豚或金 枪鱼的操纵与推进技术是一个很有前途的研究方向之一。 经 过 6000 万年的演变,海洋中的海豚和金枪鱼等动物已经具 备了高速航行的能力,并且它们的推进效率高、噪声低、机 动性好。 这样的综合能力是人类目前所使用的传统的推进和 控制装置所无法比拟的。 所以, 探索生物的操纵与推进原理, 并将其应用于微小型无人水下探测器,具有十分重要的意 义。 在战争时期, 这些微小型无人水下探测器可用于水雷战 和反水雷战、军事侦察和潜艇的配套武器;在和平时期,可 用于复杂海洋环境下的海底测量、水下观察等。 对水中海豚或鱼类游动的系统的流体力学研究开始于 二十世纪六十年代。Lighthill 首先对水中动物的游动方式进 行了分类和力学分析。 根据鱼类推进运动的特征, 机器鱼可 划分为两种基本模式[1]:一类是曲伸式(anguilliform) ,如 八目鳗等;另一类是摆尾式(carangiform) ,如海豚和金枪 鱼等。 近年来, 国外在这两种鱼类运动模式上都进行了相当
Vol. 16 No. 12 Dec. 2004
系 统 仿 真 学 报 JOURNAL OF SYSTEM SIMULATION
・2643・
机器鱼的运动仿真方法
彭之春, 庞永杰
(哈尔滨工程大学船舶工程学院, 哈尔滨 150001)
摘
要: 采用轴变形方法模拟机器鱼的运动。 根据用面元法计算的机器鱼水动力结果和垂直面内胸
Abstract: The axial deformation method was used to simulate the motion of robot fish in this paper. Based on the hydrodynamic results which are calculated by the panel method, and the relations between pectoral fin’s attack angle and lift, the motion equation in vertical plane is done, and the axial deformation method has been used to simulate the robot fish moving ahead in horizontal plane. From the errors of the result, the simulating movement is consistent with the tuna fish’s motion, and this is practicable to the future research on robot fish. Keywords:bionics;robot fish; computer simulation; axial deformation.
2004
n t [i] ∑ Pi B n , i b i= 0 P (t) = n ∑ P n[ n − i ] B n , i i= 0
彭之春, 等:机器鱼的运动仿真方法
− a , (a ≤ t ≤ c ) − a t − c , (c ≤ t ≤ b ) b − c
2
轴变形 AxDf
轴变形 AxDf(Axial Deformation)是一种通过参数曲
线来控制物体自由变形的方法[5]。在轴变形方法中,物体的 变形与轴的变形连接起来, 轴变形抛开了 FFD 中移动 lattcie 控制顶点的繁琐工作, 只需移动轴的控制顶点, 物体就会产 生相应的变形。 轴变形的第一步为在物体上附上一根轴。 对 于物体上的每一点U = (u1 , u2 , u3 ) ,找出与之相关的轴上点 然后用矩阵 R1 计 并在 AU 点上建立一个局部坐标系, AU , ' ' ' 。对轴线进 算出 U 在该局部坐标系的坐标 U = (u1 , u 2 , u3 ) 行变形后, 设未变形轴线上的点 AU 对应于轴线变形后的点 ' ,则变形后的点在 ' 所对应的局部坐标系中的坐标 AU AU D (U ) 与 U 点 在 AU 所 对 应 的 局 部 坐 标 系 中 的 坐 标 ' ' 相等。 U = (u1' , u 2 , u3 ) D (U ) 在整体坐标系中的坐标可用矩 阵来计算。
・2644・
系
统
仿
真
学
报
Dec. 2004
定尾部摆动的范围, 然后用 Vega 或 OpenGL Performer 将模 型调入,其主要工作量用在 MultiGen Creator 的建模上。另 外一种方法是通过计算机器鱼在摆动过程中鱼体上点的坐 标及法线, 在程序中用 OpenGL 实时绘制机器鱼。 虽然后一 种方法的编程工作量较大, 但是, 仿真的结果在视觉上更加 细腻。本文就是采用了后一种方法。
10 图3
20
30
攻角/度
3
Bézier 曲线的递归细分
Bézier 曲线的离散是基于 Bézier 曲线的中点离散定理。
胸鳍升力和攻角的关系
参考潜艇的运动方程[3],假如定常运动时,水平方向合 力为零, 垂直方向上只考虑升力, 则可得到机器鱼垂直面运 动的方程: m (u & + wq + z G q & − xG q 2 ) = X = 0 & + m [ xG ( w & − uq ) − z G ( u & + wq ) ] = M IY q 2 & − uq − xG q & − yG q ) = Z m(w (1)
升力 /牛顿 30 20 10
D (U ) = T2 S 2 W2 R2 (T1 S1W1 R1 ) −1U
其中 W1 、 W2 分别为轴线变形前后的扭曲角矩阵;
(3)
S1 、 S2 为轴线变形前后的比例缩放矩阵。
从用户的角度来说, 变形的过程可以放在物体内部, 也 可以放于物体外部, 根据变形的需要, 这条轴线可以有任意 的形状。再把物体附于该轴线上。第二步,用户用传统的曲 线编辑技术交互改变轴线的形状。 作用于轴线的变形自动传 递给物体。 在轴变形中, 物体的变形归根到底是通过轴线来 实现的,轴线变形的效果决定了物体变形的质量。 Chang[5]等人提出的基于广义 de Casteljau 算法的三维自 由变形方法也是一种通过曲线来控制物体变形的方法。 该方 法基于迭代仿射变换,使物体沿着一条 Bézier 曲线骨架线 变形。 轴变形的总体上可分两步进行, 首先是定义轴线, 先确 定轴线的上的点的运动情况; 然后, 把轴线作用于待变形的 机器鱼上,则机器鱼的变形与曲线的变形密切联系起来。
Movement Simulation Method of Robot Fish
PENG Zhi-chun, PANG Yong-jie
(Dept. of Naval Architecture and Ocean Engineering, Harbin Engineering University, Harbin 150001, China)