金秋十月,又到了一年一度的上海市青少年人工智能创新赛季,我和高二(3)班王嘉玮同学组成小队,向智能救援项目下了战书。
顾名思义,这个项目的大概内容是在一场突发的紧急事件中使用人工智能手段陆空结合进行救援,具体步骤如下:①无人机巡查事故工厂,向无人车报告灾情;②无人车到事故工厂运送赈灾物资,救助伤员;③无人车到附近工厂回收燃料瓶,防止次生灾害;④无人车清除路面障碍并返回基地。这些任务乍听起来可能觉得很简单,其实不然。其难点就在于无人车和无人机都是设定程序自动操控的,不能有任何人为干预,而与传统编程不同,软硬件结合的编程模式需要考虑更多工程上的因素。
因为我有单片机开发的经验,又加上校内信息课学习的编程思想,整个程序的框架并不难考虑,而实践过程中出现的最大问题,在于程序实现到硬件上出现的工程误差,为了避免这些误差,我们不得不使用视觉模块对一些特征图像进行识别,任务中途多次校准,尽量减少误差。然而校准误差需要时间,而救援中哪有那么多时间可供浪费,我们又考虑调整小车的巡线函数,想让它更快速地在各个现场中行进,一番操作后才体会到“欲速则不达”:小车的速度虽然快了起来,但它的脾气也变得愈发暴躁,时而冲出道路,时而停驻不前,很不稳定。我们不得其解,只能求助老师。果然,光靠识别图像只能修正产生的误差,只是亡羊补牢而已。想要减少误差,还得依靠PID控制器中的比例、积分、微分调节系数,这一下就进入了我们的知识盲区,我们连高等数学都没有接触到,更别提尝试去理解调节系数与小车稳定性之间的关系。当然,实践总是检验真理的标准,通过在基准值附近左右摸索,进行大量实验,我们终于确定了较为稳定的调节系数。
紧急救援的项目在10月8日立项,而最晚月底就要进行最终评定,时间紧急,大部分的时间都随着一条条代码的修改后的实验而流逝,而最后一周的冲刺,常常是在中午就来到训练场地,披着月光离去。
10月27日傍晚,我们正式开始录制比赛视频,虽不能说已胸有成竹,但有多次的试错机会,我们还是信心十足,启动、解说,录制一气呵成,但还是圆满完成了比赛,台下观众掌声雷动。
高二7班 裘晨晨