当前位置:网站首页>花了6个月时间完成本科优秀毕业设计,我做了什么?
花了6个月时间完成本科优秀毕业设计,我做了什么?
2022-06-27 18:26:00 【Mr.Winter`】
1 前言
从去年12月开题到今年6月结束,整整半年时间都在处理毕业设计的项目。好在取得了一个比较好的结果,遗憾的是没能推荐为校级优秀。本文记录一下毕业设计和答辩完成的过程。考虑到论文的保密性,隐去部分技术细节,但不影响理解。
2 选题
我的毕业设计选题是《某环境下多机协同系统设计》,为什么选择这个题目呢?我出于以下考虑:
- 可以锻炼全技术栈能力
系统涉及底层硬件控制,也是我所在的控制系的老本行;算法设计,主要包含任务调度和路径规划算法;软件设计,包含可视化界面(Web)、控制服务器、算法工程化等内容。总之,这是一个包含前后端、软硬件的综合性项目,既然本科阶段做不到深入,那就把面铺开。 - 涉及大量通识技术
什么叫通识技术?就是那些课上一般不教(默认会),且将来一定用得到的技术。举例而言,ROS对于从事机器人控制、自动驾驶等方向的来说就是一种通识技术。既然早晚都得会,不如用毕业设计的时间来学。 - 多机协同是复杂任务处理的趋势
随着智能化水平的提高,越来越多的复杂任务都期望实现自动化,大多数情况下,这类复杂任务交付多机协作的效率会远远超过单机,所以了解和学习多机协作有必要性。 - 其他题目没啥意思
因为疫情影响没能部署到实体,最后就在下图所示的Gazebo环境里实现了一下多机协同,文末放演示动图。
3 技术选型
- 硬件
工业界用的比较多的是AGV——一种轮式机器人,所以毕设里我就采用通用轮式移动机器人,建立运动学模型即可。机器人上包含激光雷达、RGB摄像头、里程计等传感器,这部分内容我都写在《ROS从入门到精通》 - 控制服务器
为了更好协调多个机器人,设计了一个主控平台,也是系统的后端,负责调用智能算法、发布任务包、作为中继协调底层和前端的数据流动等。本设计采用Flask做服务端,用蓝图管理API。其实做服务器还是得用java,flask显得比较轻量 - GUI
用VUE+ElementUI设计前端Web界面,因为重点不在前端,所以简单设计了登录注册、机器人管理、地图预览、用户管理这些最基本的功能 - 插件
选择PostgreSQL作为数据库、ROS3d.js实现前端三维渲染、ROS-Bridge作为前端和ROS服务器的通信插件 - 算法
改善了传统A*路径规划算法并增加局部协作;改善了传统任务调度算法。
4 研究过程
以我目前的眼界来看待研究过程:
- 查阅文献,了解某个问题在领域内的主流解决方案
- 复现别人的算法,控制领域主要用Matlab
- 发现别人算法的不足,改进它,设计自己的算法(哪怕是很小的改进)
- 比较算法的性能,并进行多次测试
- 确认算法设计无误后,进行工程化,简单说就是将Matlab脚本转换为C++代码
- 将多个工程化代码集成为若干个模块
- 将若干个模块集成为一个系统
举个例子,我毕设中用到了路径规划,最简单的算法就是A*算法,它部署到ROS上是下面这个样子,紫色的区域是搜索空间
改进后算法的如下所示,简单说就是计算出相同最优路径的前提下,改进后算法搜索空间远远小于传统A*算法,改善了算法效率。这个改进就是“查阅+复现+对比”的结果,大概仿真了5种算法进行优势互补。
Mark一下,等研究生毕业回来看看这套方法论有没有需要完善的地方。
5 毕业答辩
经过指导老师和评阅老师同意后,可以进行毕业答辩。在答辩前对着PPT练了二十遍左右,练的时候不是单纯背稿,而是看看阐述过程中有没什么Bug,我大概列举了18个可能会问的问题,虽然最后一个也没问到,但是思考的过程会改善答辩的效果。
真正答辩的时候,对于本科生来讲,只要论文是自己写的、答辩老师和指导老师没仇,一般不会为难你,问的也都是论文本身的问题,可能是技术问题,也可能是那种主观性很强的问题,结合我所听到的,列举一些主流问题在下面,有需要可以收藏:
- 为什么选择这个题目? / 选题的意义是什么?
- 你的方案和现有方案比,有什么优势?
- 论文的创新点是什么?
- 设计过程中遇到最大的难点是什么?(这个问题要注意,老师会顺着你说的难点考察你的解决过程,务必仔细思考)
- 算法为什么这么设计?
- 原理性问题
- 做出的假设是否合理?对实际应用有什么要求?
- 为什么不考虑xxx的影响?
- 你的主要工作是什么?
对论文写作有问题的同学可以参考我的这两篇文章
6 效果展示
最后是结果的简单展示,欢迎从事相关领域的同行来交流~
前端展示:
标注好任务点后点击发布任务,任务包就会传到后端进行调度,然后分发到底层机器人。
Matlab仿真:
Gazebo仿真(动图太大上传不上来,放一张图片):
抽奖送书
本期图书推荐:《人机物融合群智计算》
【书籍简介】
- 今天的信息世界已经与一人一机组成的、分工明确的人机共生系统不同,而是一个多人、多机、多物组成的动态开放的网络社会,即物理世界、信息世界、人类社会组成的三元世界。人工智能与物联网、边缘计算和数字孪生等技术的快速发展及深度融合,可为智慧城市、智慧社区、智能制造等领域提供高度集成的智慧空间环境,人、机、物等要素在其中彼此交互与激发,将构建更加组织灵活、行为自适、自主演化的空间。
- 《人机物融合群智计算》作为全球首本人机物融合著作,既可以为物联网、人工智能、工业互联网、智慧城市、智能制造等领域的科研人员和IT从业者提供创新的发展视角及相关理论、方法与技术支撑,也可以作为高年级本科生或研究生的参考教材。
【抽奖方式】
- 关注博主,点赞收藏文章,并做出有效评论
- 根据评论记录随机抽取2位用户赠送实体图书
- 截止日期:7.3日晚8点,届时通过blink公布获奖信息,请中奖用户及时私信
更多精彩专栏:
私信进入AI技术交流群,白嫖30G电子书和教学资源,定期发布AI知识干货、免费科技实体书等福利!
边栏推荐
猜你喜欢
UOS prompts for password to unlock your login key ring solution
[debug] platform engineering interface debugging
可观测,才可靠:云上自动化运维CloudOps系列沙龙 第一弹
MySQL beginner benefits
Oracle 架构汇总
探秘GaussDB,听听客户和伙伴怎么说
Doctoral Dissertation of the University of Toronto - training efficiency and robustness in deep learning
Database log
Data intelligence enters the "deep water area", and data governance is the key
DBeaver恢复和备份数据库的方式
随机推荐
谈谈我写作生涯的画图技巧
Type the URL to the web page display. What happened during this period?
刷题记录:Easy 数组(持续更新)
Redis data structure
redis数据结构
Hanoi塔问题
SQL reported an unusual error, which confused the new interns
Enumeration and control flow operation in rust
Adding, deleting, modifying and querying MySQL tables (basic)
MongoDB简介及典型应用场景
Summary of redis big key problem handling
Bit. Store: long bear market, stable stacking products may become the main theme
CSDN 技能树使用体验与产品分析(1)
探秘GaussDB,听听客户和伙伴怎么说
UE4-Actor基础知识
Pointers and structs
散列表(Hash)-复习
UE4:Build Configuration和Config的解释
# Leetcode 821. 字符的最短距离(简单)
#yyds干货盘点#SQL 子查询