张典华, 陈一民
(1.上海大学计算机工程与科学学院,上海 201800;2.上海大学数码艺术学院,上海 201800)
篮球训练仿真系统的实现
张典华1,2, 陈一民1
(1.上海大学计算机工程与科学学院,上海 201800;2.上海大学数码艺术学院,上海 201800)
针对当前篮球训练中缺少量化计算的问题,开发了篮球训练仿真系统。首先利用篮球运动轨迹方程求导,得到起落点不在同一水平线上的无空气阻力情况下最佳出手角和出手速度的精确解。实验表明最佳出手角随出手速度的增加而增加,随出手高度的增加而减小。当投篮距离增大时,最小出手速度需要增加,最佳出手角则减小。然后制作了可视化的仿真环境,并对运动员动画、有物理材质的篮球、声音模块、关卡设计、最佳出手角计算模块及网络计分系统等进行了研究。运动员可以利用该可视化环境测算适合自己的最佳出手角和出手速度,辅助训练。
篮球;训练;无阻力;仿真
投篮是篮球运动中的核心技术。比赛中球队会使用各种战术,仅投篮技术就有正面投篮、后仰高手投篮、空中跳起拨球补篮、反手投篮、勾手投篮等,而所做的一切,都是为了投中,所以投篮命中率的高低决定了一个运动员水平的高低。一些人[1-2]从篮球训练的角度进行了论证,但训练一般很难进行量化,主要是基于经验。如果能对篮球运动中的数据运用运动力学和数学进行量化分析,求出精确解,则可以进行针对性训练,可快速提高篮球运动员的水平。所有的量化分析中求取运动员的最佳出手角一直是研究的热点问题。因为在最佳出手角投篮最省力,篮球飞得最远,准确度最高。找到每个运动员的最佳出手角并进行针对性训练,将发力和角度固化下来,可有效提高运动员的训练水平。许多力学教材研究的抛物体运动是起终点在相同水平线上的标准抛物体运动,计算结果是当抛射角为45°时可达到最远射程。实际篮球在飞行过程中起点和终点并不在一个水平线上,所以篮球运动的最佳抛射角并不一定是45°。文献[3]研究了抛物轨迹中投篮最高点的最佳位置,认为最佳出手角为 45°。篮球的飞行过程中会产生前旋、后旋、侧旋。文献[4]对抛体的实时旋转进行了研究,实现了抛掷动作的准确判定。文献[5-6]对运动中的手及手腕进行了自动估测。本文为简化问题,设篮球飞行时为不旋转且忽略手的姿态对球的影响。
本文从无空气阻力的常规物理运动方程出发,求出篮球与出手角和出手速度相关的运动轨迹方程,利用导数求出极值,得到最佳出手角和最小出手速度方程,并针对特例求出数值解。实验表明最佳出手角随着出手速度、投篮高度、投篮距离的变化而有很大变化。
篮球训练仿真系统是上海大学嘉定校区虚拟校园的一部分,虚拟校园分为校园漫游模块、虚拟展厅模块、小孩扔书游戏模块、篮球训练仿真系统模块。篮球训练仿真系统利用微软的Kinect和磁力跟踪设备及数据手套获取真实场景中运动员的出手速度、角度、高度,提交系统计算,在屏幕上显示虚拟运动员的投篮情况。同时系统根据运动员的投篮情况给出最佳出手角和最小出手速度等提示信息,辅助运动员训练。
主要功能:运动员进篮球场后,系统提示是否进行训练,确定后出现训练场景。篮球进筐时播放进筐的声音,若打板则播放打板或碰墙的声音。在屏幕左上角显示得分情况、当前最高分纪录、剩余时间(每关总时长为60 s,总共6个关卡)。篮球落地后会不断弹跳。训练完毕经注册,将分数发布到远程服务器中,以便查看历次得分情况。
篮球训练仿真系统主要包括图形用户界面、最佳出手角计算模块、关卡设计、物理模块、网络模块、声音模块等。系统结构如图1所示。
最佳出手角计算模块:利用物理方程求出篮球不受空气阻力时的最佳出手角和最小出手速度,这也是该系统要解决的重难点问题。
关卡设计模块:设计了6个关卡。为提高运行速度,对场景中的模型进行优化,包括减少模型面片数,使用全局光照贴图,利用主摄像机的平截头体进行场景裁剪等。
物理模块:利用基于坐标轴的包围盒 AABB (立方体包围盒)来实现碰撞检测,主要实现篮球对篮板、篮筐、墙体的碰撞检测。建立3个物理材质分别表示篮球、地面、篮框;物理材质具有动态和静态摩擦力、表面弹力、各向异性摩擦力等属性。
网络模块:可实现注册用户、发布和更新分数、验证 EMAIL、修改密码、创建计分系统、查询最高计分。
声音模块:使用FMOD声音引擎,建立了对篮球碰篮板、篮筐的声音监听。
图1 仿真系统结构图
2.1 获取出手的位置和高度
基于Kinect的方式使用Microsoft SDK对手进行了识别和位置跟踪,并使用有限状态机对肢体动作进行了语义解析。基于磁力跟踪设备和数据手套的方式利用运动链模型定义了双手的交互规则,同时对两种方式获取的数据进行了最大似然度数据融合[7-8]。利用自适应网格线性插值校正法对磁力跟踪器进行了校正[9]。
2.2 篮球轨迹模型
问题的模型图如图2所示。
图2 篮球飞行轨迹
为简化问题,将篮球与持球的人视为一个整体,将坐标原点设为篮球出手的位置,x, y是篮球在水平和垂直方向的位置,y=y1-h,y1指篮筐离地高度,标准篮架y1为3.05 m,h指篮球出手时的高度,h=h1+Lsinα,h1指运动员肩膀高度,L为运动员臂长。v指出手速度,α指出手角度。
篮球不受空气阻力时,x轴方向为匀速运动,y轴方向为受到重力的匀变速运动,将运动分解为 x轴和y轴,得方程组如下:
由方程组式(1)得:
因为 g x2>0,求式(2)的最大值,实际也就是求f(α)=2x sinαcosα-2ycos2α的最小值。对 f ( α )求导,得:
则由式(2)得最小出手速度:
标准篮球直径0.246 2 m。罚球线正中位置离边线 5.8 m,篮板中心离边线内沿 1.2 m,篮筐内径0.45 m,篮板厚0.003 m,篮筐内沿离篮板最近点0.15 m,故罚球时正中位置离篮筐中心点水平距离s=5.8-1.2-0.45/2-0.15-0.015=4.21 (m)。三分球时如运动员站在三分线上,则为 6.25 m。篮筐高度y1=3.05 m。重力加速度g=9.8 m/s2。
在罚球点处 x=4.21 m,设篮球出手高度h=1.755 m,则篮球需要运动的垂直距离 y=y1-h= 3.05-1.755=1.295 (m),则由式(4)、(5)可算得最佳出手角 γ = 5 3.549 1°和最小出手速度 vmin= 7 .473 7 m/s。以此类推可得在罚球点处的最佳出手角和最小出手速度见表1。
由表1可知最佳出手角随出手速度的增加而增加,随着出手高度的增加而减小。高个运动员在跳投时,要适当减小出手角度,或者适当减小出手速度,此时篮球的飞行弧线较短,不易受到风等外因的影响,可提高投篮命中率。当投篮高度在2.62~2.91 m时,最佳出手角变化1.963 6°,变化率为6.771 m/s,当投篮高度在1.72~2.23 m时,最佳出手角变化3.255 1°,变化率为6.382 5m/s,所以当投篮高度增加时,手指的灵敏性要提高,因为此时最佳出手角变化较大,运动员要加强跳投时手指拨球的训练。
利用式(4)、(5)也可算出不同运动员在不同距离上的最小出手速度和最佳出手角,并固化下来,以求提高投篮精度。表2列出相关数据,其中x指投篮平面距离,x=6.25 m是指三分线平面距离。
表2 不同距离上的最小出手速度和最佳出手角
由表2可知,当投篮距离增大时,最小出手速度需要增加,最佳出手角则减小。所以运动员在投远距离球时,应提高出手速度,减小出手角。与表1中相应x值进行比较,并将不同γ、vmin变化值取平均值后发现,当投篮距离从 4.21 m增加到5.32 m再至6.25 m时,γ的变化值由平均值1.38°,降至0.948°,vmin的平均变化值由0.538 3 m/s,增加至0.687 4 m/s。所以运动员在投远距离球时,应减少最佳出手角约1°,速度应增加约0.6 m/s。
2.3 与有空气阻力的情况比较
当考虑篮球飞行的空气阻力,从文献[10]可知,篮球的空气阻力:其中,k取0.014 28,空气阻力系数Cd=0.5,篮球的直径D=0.246 2 m,篮球的迎风面积=3.1416 × 0 .24622/4 =0.0476(m2),空气密度ρ= 1.20 kgm-3。当人站在罚球点上时,球离球框的水平距离x=4.21 m,文献[10]与表2中的数据比较见表3。
表3 有无空气阻力时的出手角度比较
由表3可知,当考虑空气阻力时,相应的最佳出手角度平均要减少11.7°。
2.4 与实验数据的比较
使用磁力跟踪设备跟踪手部位置时,因设备固有的缺陷造成位置的误差。主要原因有:①电磁场易受到周围磁场的影响,包括地磁、永磁体、电路板磁场。②磁场强度会因发射器与接收器之间距离的增加而减弱。需对实验获取的数据进行校正,本实验使用坐标变换校正法校正磁力设备获取的数据。以持球时手部位置为坐标原点,获取投球及弹跳后的手部位置。由表4可知,磁力设备获取的数据存在较大误差,使用坐标变换校正后相关的误差会明显降低。
表4 实验数据及校正后的数据
3.1 关卡优化
3.1.1 优化模型
根据系统要求一般仿真系统500~600个三角面比较好,比如半条命2游戏的角色约为2 500~5 000个三角面,达到AAA标准的次时代游戏如PS3或者XBOX360上的游戏角色通常为5 000~7 000个三角面。本系统中的运动员模型被优化为5 736个三角面、3 291个顶点,从而可在不影响美观的情况下提高渲染效率。采用的方法有面合并、删除隐藏面和重叠面、尽量用多边形面少用布尔曲面、减少物体分段数等方法。同时按材质合并模型,争取做到一个模型一个材质,此系统中的人物共使用了4种材质。同时将灯光附近的物体合并,并限制灯光数,以加快渲染。使用同样方法将场景模型降低到175个三角面、206个顶点。优化模型的工作是在建模软件3DMAX中实现的。
3.1.2 静态模型使用全局光照贴图
常用的静态模型贴图方式有光照贴图(light map)与顶点光照(vertex lighting)。其中,光照贴图的优点:可以减少CPU和GPU的占用;让CPU需要计算的光照和物体间的互动更少;不需要在GPU的多重通道中被渲染;光照贴图通道被整合进自发光(emissive)通道中,可以缩短渲染时间。因此,使用Illuminate Labs 的Beast对场景进行光照贴图。理论上,在渲染时各个多边形根据其所对应的纹理坐标来访问场景光照贴图就能得到正确的显示效果,但在实际中却由于浮点运算的精度误差而使得到的纹理坐标产生误差,特别是场景中多边形的边缘处会出现很不自然的裂痕,使渲染的质量降低。解决方法如下:
(1) 通过提高计算多边形纹理坐标的精度,如由float类型变为double类型。但在实现中此操作并没有什么实质的改善。
(2) 在进行多边形光照贴图到场景光照贴图的合并过程中,对多边形的光照贴图进行处理。在进行贴图扩展时,对原始单个多边形的光照贴图进行扩展,对原始贴图的边缘颜色值进行扩展,使其边缘范围变大,即使是在场景的光照图中出现访问的偏差,得到的依然是该贴图边界的颜色值,就可以使相邻的两个多边形的边缘融合得很好。在实际使用中该方法可以很好地解决各个多边形边界裂痕的问题。
3.1.3 主摄像机
对场景建立主摄像机,同时采用平截头体裁剪(frustum culling)对场景进行裁剪,超出平截头体的物体不显示。主摄像机参数有:视野为 60°,平截头体的近端剪切面为0.3,远端剪切面为1 000,采用透视投影,景深为-1,裁剪不在主摄像机视野内的所有物体。
3.2 物理模块
3.2.1 碰撞检测
本文利用基于坐标轴的包围盒 AABB来实现碰撞检测。对篮球建立球形碰撞体。对篮球场、篮板和篮筐建立基于网格的碰撞检测。在篮筐内建立一个小的立方体做为碰撞检测对象,使用OnTriggerEnter()来检测碰撞,当碰撞体 Trigger被击发时播放投中的声音。
3.2.2 篮球的物理材质
物理材质是物体的表面属性和碰撞属性,这些属性可以确定一个物体和另一个物体发生碰撞时,是如何在该物体上反弹、滑动、滚动。建立basketball bouncy、ground bouncy、hoop bouncy 3个物理材质分别表示篮球、地面、篮筐。可以实现篮球碰到篮筐、篮板、墙面后的反弹效果,而且篮球可在各种摩擦力的作用下越弹越低,最后变成滚动如图3所示。其中basketball bouncy的各参数如表5。
图3 网页版
表5 篮球的弹跳物理材质参数
篮球对象使用刚体表示,篮球的弹跳、滑动、滚动等性状用物理材质来表现,为提高系统运行速度,目前未对篮球在不同作用力下的形变进行表现,相关工作放到后续研究中实现。因为篮球需要反复出现,故将其设为prefab对象,从而新生成的篮球均只是这个对象的实例,同时将物理材质加到篮球的球状碰撞检测中,检测半径为 0.2。相关代码如下:
Nxmaterial* defaultMaterial=gscene →getMaterialFromIndex(0)
Default Material→setRestitution (0.9);
DefaultMaterial→setStaticFriction (0.3); //静态摩擦系数
DefaultMaterial→setDynamicFricfion (0.3); //动态摩擦系数
3.3 网络计分系统
界面见图4。为此建立GetMyScore、MyScore、PlayerRegister、Score 4个场景。将网页版运动仿真系统所在的文件夹设为网络共享文件夹。将网页MIME 类型设为 application/unity3d,扩展名为.unity3d,使网页能够打开这个运动仿真系统。
3.4 声音模块
首先在场景中的主摄像机上建立声音监听器,用来监听并播放篮球碰板、碰篮筐的声音。其次要建立声音源。其中声音的优先级为128,能听到声音的最小距离为 1,最远声音距离为 500。初始音量为 1,音高为 1,声音是衰减模式为对数衰减。主要代码如下:
本系统开发的硬件环境为:微软的 Kinect for Windows,Ascension公司的Flock of Birds跟踪器,5DT的Data Glove 5 Ultra数据手套,华硕F80C笔记本电脑,显卡为ATI Mobility Radeon HD 3470,CPU为Intel Celeron D,主频为1.2 GHz。软件开发使用Unity3D三维游戏引擎、C#、OpenGL、C++。为适合不同训练场合的需要,将系统移植为Windows单机版、网页版、MAC单机版、MAC Dashboard Widget 4个版本,如图3和图4所示。
图4 MAC Dashboard 版
在不同的平台下,系统运行都比较流畅。该系统可通过提示信息,对运动员的最佳出手角度和最小出手速度进行校正,通过科学训练,可有效提高投篮命中率。同时该系统具有占地少、不受天气影响、成本低等优势,具有一定的推广价值。
此系统使用数学模型模拟了在无空气阻力的情况下篮球的飞行状况,篮球运动员可用此方法精确算出在不同距离得到的最佳出手角和最小出手速度,并以此为基础进行固化训练。同时篮球真实飞行是在有空气阻力的情况下,而且有旋转,本项目组已在其他文章中对这些问题进行了探讨。同时因为磁力跟踪等设备存在相应的误差,实际使用过程中也会有小的误差,已经进行了相应的改进,后续还需进一步改进,减少误差。
[1] 许 博, 崔鲁祥, 柴 萍. 篮球运动员核心稳定性对跳投命中率的影响[J]. 沈阳体育学院学报, 2010, 29(6): 113-116.
[2] 洪 燕, 徐发荣. 篮球比赛中投篮命中率问题的探讨[J].景德镇高专学报, 2006, 21(2): 71-72.
[3] 冯大志. 篮球的最佳投篮路径[J]. 山西财经大学学报, 2011, 33(2): 85-86.
[4] 姚争为, 陈一民, 陈 明. 增强现实系统中抛体实时旋转的研究与实现[J]. 系统仿真学报, 2009, 21(23): 7503-7510.
[5] 姚争为, 潘志庚, 滕国栋. 基于深度相机的手腕识别与掌心估测[J]. 中国图象图形学报, 2014, 19(3): 463-470.
[6] 姚争为, 潘志庚. 基于体素的人手结构自动估测[J].中国图象图形学报, 2014, 19(1): 54-61.
[7] 李 芸. 基于增强现实的人机交互系统的技术研究[D].上海: 上海大学, 2013.
[8] 黄 晨. 运动环境下的增强现实系统技术研究[D]. 上海: 上海大学, 2012.
[9] 李启明, 陈一民, 黄诗华, 等. 增强现实系统中磁力跟踪注册的精确性研究[J]. 计算机工程与设计, 2009, 30(24): 5785-5789.
[10] 张典华, 陈一民. 多平台三维篮球运动仿真系统的设计与实现[J]. 计算机工程与设计, 2014, 35(10): 3568-3573.
Realization of Basketball Training Simulation System
Zhang Dianhua1,2, Chen Yimin1
(1. School of Computer Engineering and Science, Shanghai University, Shanghai 201800, China; 2. College of Digital Arts, Shanghai University, Shanghai 201800, China)
In view of the lack of quantitative calculation problems in the current basketball training, the basketball training simulation system was developed. The exact solution of the best shot angle and velocity of shots without air resistance is solved using the trajectory equation of basketball movement whose start and end point are not in the same level. The result shows that the best shot angle will increase with the increasement of the shot speed, decrease with the increasement of the shot height. With the increasement of the shot distance, the minimum shot speed need to be increased, and the best shot angle is decreased. At the same time, a visual simulation environment is created which includes the animation of athletes, the basketballs with physical material, sound, level design, the best shot angle calculation module and network scoring module. Players can use the visual environment to measure the best shot angle and shot speed for auxiliary training.
basketball; training; no resistance; simulation
TP 391.9
A
2095-302X(2015)05-0789-06
2015-03-30;定稿日期:2015-04-18
国家“863”计划资助项目(2007AA01Z319);国家科技支撑计划课题资助项目(2006BAK13B10);上海市科委资助项目(11511503400, 11511503302)
张典华(1975-),男,山东莱州人,讲师,博士研究生。主要研究方向为虚拟现实、增强现实。E-mail:bandit05@163.com