1.游戏软件设计要求:
- 冰球桌仿真环境:包含一个冰球桌面(及四周的挡板球洞),一个冰球,一个或两个击球器的模型, 类似下图所示。基于物理引擎模拟冰球与击球器和挡板的碰撞产生的实际运动。仿真可支持练习模式和对战模式。练习模式下只有一个半区有击球器,由仿真环境随机发球给击球器;对战模式下两个半区各有一个击球器。仿真环境要实时对外提供冰球和击球器的当前状态(位置和速度)。
- 机械手控制平台:一个两轴平面直角机械手,控制击球器在桌面的半区运动,打击从对面半区发来的冰球,通过运动规划控制击球器运动,使冰球进入对方球洞得分。机械手的控制软件包括但不限于如下功能:
1) 根据仿真环境提供的冰球当前的运动状态,制定运动策略,确定击球点。
2)发送运动控制指令给机械手控制器,使其能在给定时间点,在预期的位置以预期的速度击打到冰球。
3)机械手控制器解析并执行运动控制指令,并通过轨迹插补和加减速控制使运动平滑。
2.游戏系统设计思路:
- 仿真环境搭建:
1)显示游戏的环境:可以采用qt图形用户界面应用程序开发框架来实现。
2)碰撞运动模拟:可以用ODE开源物理引擎模拟冰球与击球器和挡板的碰撞产生的实际运动,并实时输出冰球和击球器的状态。- 机械手控制平台:
1)实时输入冰球的运动状态及位置,预测冰球的运动轨迹。
2)根据预测的轨迹计算冰球将要到达的位置,然后确定击预期球点和击球速度。
3)在起始点和击球点之间进行轨迹插补和加减速控制是运动更加平滑。
4)制定运动策略:运动策略包括两种即直接瞄准对方球门击球和通过挡板碰撞反弹进入对方球门。- 关键算法:
1)使轨迹平滑的插补算法
2)预计冰球位置的插值算法