CSDN编程竞赛报名地址:https://edu.csdn.net/contest/detail/16
(请不要删掉此地址)
前言/背景
我是南京理工大学网络空间安全专业在读的一名研二学生,本科在北京工业大学计算机专业就读,参加编程比赛经验不算多,重要的包括大二暑假参加的全国机器人大赛以及研一参加的泰迪数据挖掘竞赛。
大赛简介
2018年全国机器人大赛在四川宜宾举办,我与隔壁班同学组队,两位老师指导,报名了其中的助老服务机器人-助老生活服务项目,最终获得二等奖(4/30,前三名是一等奖),如下图所示。
去年4月底,我和两位同学组团参与了第十届“泰迪杯”数据挖掘挑战赛,如下图所示,可惜未获得奖项。
参赛流程
在机器人大赛正式比赛的这几天(8.12-8.16)中,我们两个所做工作无非就是观看他人比赛、自己进行测试并进行参数微调,核心工作在比赛前的一个月内已完成。所用机器人实质上是两辆ros小车,比赛要求是使得机器人完成移动、避障、抓取以及主从车之间的通信与指示,从而模拟"助老服务"这一概念。
而在数据挖掘挑战赛中,比赛要求是在给出的A、B、C三题中选择一题作答,并上交代码、输出结果(excel)以及论文。A题是农田害虫图像识别,B题是电力系统负荷预测分析,C题是疫情背景下的周边游需求图谱分析,由于我们组队时间属实偏晚,且设备(GPU、服务器等)条件不足,因此选择了最简单的B题。
参赛经历
在机器人比赛的准备工作中,即在2018年7月以及8月初的几天,我主要负责ros机器人的轨迹测试以及主从车之间的通信,而我搭档主要负责机械臂的动作设置,所用语言都是c++。
而在数据挖掘比赛中,我主要负责编写代码进行测试,所用语言为Python。
解题思路
在ros小车的准备过程中,难点并不在编程本身,而在于精准测量。我参考了上一年比赛的场地,和搭档在办公室旁边搭建了一个模拟场地,但这毕竟有局限性,包括摩擦系数、实际比赛场地的尺寸等等。我用卷尺测量路线长度,与函数(比如forward)中的参数建立联系(二元一次的关系,很简单)。针对避障,我们使用超声波来进行探测。针对主从车的通信,我在淘宝上购买了一对蓝牙模块,分别放在主从车上,并编写了发送数据和接收数据的命令。此外还有寻迹,指的是主车需沿着地面上的轨迹进行移动,小车前端有扫描的8个孔,每个孔扫描下方颜色,若为深色,则为1,若为浅色则为0,根据这8位可判断直走还是以何种角度进行拐弯。
而在数据挖掘比赛中,主要涉及机器学习的内容,且电力系统负荷预测分析明显属于时间序列分析,我主要使用了不同种类的arima、lstm以及prophet完成各个小问。
经验心得
经验心得主要就是:多准备,早准备,切勿临时抱佛脚。这两个比赛的结果对比明显,实际上报名数据挖掘比赛后,我们本想着做图像识别,但时间推移、设备的稀缺使我们在提交选题前一天才改变主意,选择了电力系统预测分析,实际准备时间已所剩无几。再有,对数据挖掘感兴趣的朋友可将眼光放宽,像kaggle这样更高层次的比赛更有学习价值。