热门标签 | HotTags
当前位置:  开发笔记 > 人工智能 > 正文

【第十五届全国大学生智能车竞赛回顾——华东赛区AI电磁组(华东赛区二等奖)】

一.简述这是我大学以来第一次接触到智能车比赛。同时由于我们学院也是第一次参加此项比赛,没有以往的车模和代码借鉴。我们作为学院智能车比赛的“开山鼻祖”,从
一.简述

在这里插入图片描述

这是我大学以来第一次接触到智能车比赛。同时由于我们学院也是第一次参加此项比赛,没有以往的车模和代码借鉴。我们作为学院智能车比赛的“开山鼻祖”,从头制作起来可谓是困难重重。好在学院老师对此次比赛格外重视,让我们完全没有资金上的顾虑。


二.小车制作过程

1. 组别选择(AI电磁组)

我们组选择的是本届比赛新加入AI电磁组。此项组别是先通过电磁杆巡线收集赛道数据后,通过蓝牙传输到电脑上。然后将数据经过一系列处理,并用神经网络进行训练。最后将训练好的模型再重新烧录到小车中,从而使小车可以依据训练好的模型在赛道上运动。
相关信息可查看卓大大的博客:AI电磁车模

★此组别的难点在于:比赛规定前瞻传感器(电磁传感器)距离前轮中心不得超过5cm。在这种极限距离下,小车的运行速度将受到极大的限制。因为距离短意味着小车只能知晓距离其很近的赛道情况,当速度很快后,小车前轮控制方向的舵机将来不及反应,从而很容易冲出赛道。

在这种苛刻的条件下,便可以用到学习的模型:即一开始用较长的前瞻控制小车运动,收集后方短瞻的数据,用此数据训练出来的模型便可反映出长前瞻跑时的状态。当把长前瞻去掉后,小车便可通过训练的模型和当前短瞻的数据进行匹配,从而还原出长前瞻时的运行状态。从而实现此条件下,小车的高速行驶。

2.困难重重

(1).电磁巡线设计
由于是第一届参加,没有往届代码的参考。我们想要实现AI电磁,首先便是要制作出一辆可以用前瞻正常跑起来的车。从头编写代码着实痛苦,需要对各种模块进行调试,并通过网络上别人的经验,参看许多往届的技术报告和论文,学习并尝试各种算法(例如电感值的处理方法、电机PID速度控制和舵机模糊PID转向控制等)。

最终,通过两周的努力,终于实现了小车的正常运动。其中在解决直道抖动的问题上耗时最长(最终通过加入模糊PID控制舵机才得以解决)。
在这里插入图片描述

(2).模型训练
其次便是小车的数据采集和训练。据了解,大部分参赛队伍都是采用逐飞科技的训练程序(毕竟自己写神经网络对本科生而言难度有点大)。依据逐飞的教程,将收集好数据一步步处理,经过一段时间的训练,即可得到一个模型,烧录进单片机中即可进行测试。

但是,在这个步骤上便会出现很大的问题。经过多次尝试,我们的小车始终只能朝一个方向转弯,同时极其容易冲出赛道。每收集训练一次就要耗费三四个小时的时间,这种重复性的工作以及不确定性的结果十分打击我们的信心。我们一度想用短瞻PID进行比赛。

最终,在与机电学院的交流中,我们发现了问题所在:电磁线的信号发生器有问题,导致左右两侧的磁场差异较大(更换成比赛指定的龙邱信号发生器)以及数据集采集的方式上需要改进(1.数据量无需太大;2.数据集包含的情况要多)。改进后的效果较为理想。
在这里插入图片描述
(3).电感值波动明显
通过将电感值发送到上位机并用波形显示,可以明显发现,后侧的两个电磁传感器受到的干扰很大,几乎无法使用。原本以为是电机转动时的磁场干扰,我们给电机包上锡纸,安装上电容进行电磁屏蔽,发现几乎没有任何改善。最终无意中发现,是由于电池和电源线在电机运转时,通过的电流较大,并且距离电感较近,从而产生的电磁干扰。最终我们对电池和电源线的位置进行了更改(尽可能远离电感),才得以解决这个问题。

三.总结

1.制作回顾

1.在小车的制作过程中,我们花费了不少时间在调试短瞻PID(因为当时训练效果很差,无法正常运行一圈)。采用外侧两个电感水平,内侧两个电感内八的排布。通过调试,发现小车也能达到很好的运行效果,不过对摩擦力和环境的要求更为严格,需要反复调节参数。

2.当时通过查找资料,尝试了各种提升车模硬件性能的方法:涂轮胎软化剂、上润滑油、轮胎用硅胶封边等。实际使用中,的确有一定的提升,但并不显著。

3.随着小车跑动次数的增加,车模的机械结构也会发生变化,需要及时进行检查和修正。例如:由于不断过弯,车模前轮会逐渐便为“内八”,后轮可能会左右松动。

4.调试车模的过程中最好添加上出赛道立即停转的程序或者在车模后方绑一条绳子牵着,以免车速过快撞坏电磁杆。

2.比赛总结

1.在华东赛区比赛中,裁判居然在上场后告知,比赛规则更改小车需在停车线后1米内停车(原先规则为3米),否则加时1秒。这让我们措手不及,因为我们并未添加急停,很容易便超过1米。尽管最后临时添加上了短暂倒转实现急停,但由于没有经过测试,导致程序有bug,小车倒转后居然无法停止。没有办法,只能每次加1秒了。

2.赛场的赛道比我们实验室赛道的摩擦力大,但是电磁线似乎有一些区别。小车放上去后,电感读数很大,只能通过降低信号发生器的电流,勉强达到所需的读数。

四.未解决的问题

1.无法转弯

在车模调试的过程中,偶尔会出现车模始终无法转弯的情况(PID控制模式下),但是不久又会莫名其妙地恢复正常。这个问题出现过两三次,但一直没有找到问题的原因。初步推测是电池或者主板到电机驱动板的两段电源线造成的。


推荐阅读
  • 探索电路与系统的起源与发展
    本文回顾了电路与系统的发展历程,从电的早期发现到现代电子器件的应用。文章不仅涵盖了基础理论和关键发明,还探讨了这一学科对计算机、人工智能及物联网等领域的深远影响。 ... [详细]
  • 机器学习核心概念与技术
    本文系统梳理了机器学习的关键知识点,涵盖模型评估、正则化、线性模型、支持向量机、决策树及集成学习等内容,并深入探讨了各算法的原理和应用场景。 ... [详细]
  • 2017年人工智能领域的十大里程碑事件回顾
    随着2018年的临近,我们一同回顾过去一年中人工智能领域的重要进展。这一年,无论是政策层面的支持,还是技术上的突破,都显示了人工智能发展的迅猛势头。以下是精选的2017年人工智能领域最具影响力的事件。 ... [详细]
  • 本文档旨在帮助开发者回顾游戏开发中的人工智能技术,涵盖移动算法、群聚行为、路径规划、脚本AI、有限状态机、模糊逻辑、规则式AI、概率论与贝叶斯技术、神经网络及遗传算法等内容。 ... [详细]
  • 基于2-channelnetwork的图片相似度判别一、相关理论本篇博文主要讲解2015年CVPR的一篇关于图像相似度计算的文章:《LearningtoCompar ... [详细]
  • 在上一篇文章中,我们初步探讨了神经网络的基础概念,并通过一个简单的例子——将摄氏度转换为华氏度——介绍了单个神经元的工作原理。本文将继续探索神经网络的应用,特别是如何构建一个基本的分类器。 ... [详细]
  • 在Ubuntu 16.04中使用Anaconda安装TensorFlow
    本文详细介绍了如何在Ubuntu 16.04系统上通过Anaconda环境管理工具安装TensorFlow。首先,需要下载并安装Anaconda,然后配置环境变量以确保系统能够识别Anaconda命令。接着,创建一个特定的Python环境用于安装TensorFlow,并通过指定的镜像源加速安装过程。最后,通过一个简单的线性回归示例验证TensorFlow的安装是否成功。 ... [详细]
  • 李宏毅机器学习笔记:无监督学习之线性方法
    无监督学习主要涵盖两大类别:一是聚类与降维,旨在简化数据结构;二是生成模型,用于从编码生成新的数据样本。本文深入探讨了这些技术的具体应用和理论基础。 ... [详细]
  • 吴恩达推出TensorFlow实践课程,Python基础即可入门,四个月掌握核心技能
    量子位报道,deeplearning.ai最新发布了TensorFlow实践课程,适合希望使用TensorFlow开发AI应用的学习者。该课程涵盖机器学习模型构建、图像识别、自然语言处理及时间序列预测等多个方面。 ... [详细]
  • 强人工智能时代,区块链的角色与前景
    随着强人工智能的崛起,区块链技术在新的技术生态中扮演着怎样的角色?本文探讨了区块链与强人工智能之间的互补关系及其在未来技术发展中的重要性。 ... [详细]
  • 本文探讨了图像标签的多种分类场景及其在以图搜图技术中的应用,涵盖了从基础理论到实际项目实施的全面解析。 ... [详细]
  • 本文详细介绍了 Flink 和 YARN 的交互机制。YARN 是 Hadoop 生态系统中的资源管理组件,类似于 Spark on YARN 的配置方式。我们将基于官方文档,深入探讨如何在 YARN 上部署和运行 Flink 任务。 ... [详细]
  • 2018年3月31日,CSDN、火星财经联合中关村区块链产业联盟等机构举办的2018区块链技术及应用峰会(BTA)核心分会场圆满举行。多位业内顶尖专家深入探讨了区块链的核心技术原理及其在实际业务中的应用。 ... [详细]
  • 本文介绍了如何利用Python编程语言实现类似Photoshop的图像对比度调整功能。通过详细的算法解析和代码示例,帮助读者理解和应用这一技术。 ... [详细]
  • 本文详细探讨了对回溯算法的理解,分析了其在解决“子集和”问题中的应用,并分享了学习过程中遇到的挑战及合作编程的经验。文章通过具体实例和代码片段,深入解析了回溯法的核心思想及其优化策略。 ... [详细]
author-avatar
天和网-嫣然
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有