# MUSIC Lab learning guide **Repository Path**: music-lab/music-lab-learning-guide ## Basic Information - **Project Name**: MUSIC Lab learning guide - **Description**: MUSIC Lab 智能控制方向学习向导 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 6 - **Forks**: 0 - **Created**: 2021-10-04 - **Last Updated**: 2024-10-15 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # MUSIC Lab 智能控制方向基础培训 [toc] ## 1、前言 hello, 各位同学,欢迎来到MUSIC Lab。首先我想告诉大家,目前本实验室刚成立不久,在智能控制方向研究也是才开展不久。我想这即是即是挑战,也是机遇。挑战在于我们师兄弟都在这个领域都不尚熟悉,未来我们也许会面临不少困难与问题;机遇在于我们可以携手奠定实验室在这个方向的研究基础,这是一个十分磨练个人心智与能力的过程。 对于无人机而言,它包含了太多部分,是各种技术和学科的综合体现。所以要深入学习和开发,我们需要掌握的知识面具有相当的广度,才能很好的认知和把握。 此外,我需要给大家明确一下学习态度。进入研究生,我们绝对不是只学习课堂内容考高分就好啦(学好课堂知识,考个不错的成绩是你基础的基础,它依旧重要,但只是一小部分)。在研究生期间,我们的学习时间真的是很短暂的,只有2年半而已。所以,我希望各位还没入学同学,好好把握大四时间多学多想,尽量在自己的研究生学习中,建立起自己初步知识体系和培养自己不断获取知识的能力。 ## 2、培训总览 ![](https://gitee.com/tlkid/images_repository/raw/master/Selection_004.png) 如上图所示,这是以我目前的学习经验列出的培训大纲,想来其中应该有不少缺漏和谬误,之后将不断完善。不过我想基本不会影响总的学习方向和路线。 其实本次培训,虽然名为培训,但是本质上是各位同学的自我修行之旅。在这里,我们只是帮助大家认清任务的艰巨,并指出基本方向和优秀的一些学习资源,然后各位同学自己进行学习,并完成相应的练习和笔记。 ## 3、培训列表 本次培训内容主要围绕着**理论基础**、**编程基础**、**嵌入式基础**三部分组成。 ### 3.1 理论基础 * **自动控制原理**(这部分,应该大家都学过) * **计算机控制系统**(这部分,主要是离散系统的控制器设计)[参考课程链接](https://www.bilibili.com/video/BV1Rb4y197sM?spm_id_from=333.999.0.0) * **现代控制理论基础**(这部分,学习线性系统理论,最优控制理论即可)[参考课程链接](https://www.bilibili.com/video/BV1sQ4y167SH?from=search&seid=7235498912373380952&spm_id_from=333.337.0.0) 这一部分的内容,大家在B站自行学习即可,自己做好笔记,纸质笔记 or markdown皆可。 ### 3.2 编程基础 * **工具**: | 名称 | 描述 | | -------- | ------------------------------------------------------------ | | linux | 开发者一定要会使用的操作系统,掌握基本的命令即可,在使用中不断熟悉 | | git | 最优秀的代码版本管理工具,熟悉其使用,常用远程仓库gitee(国内),github(国外)[参考学习链接](https://www.liaoxuefeng.com/wiki/896043488029600) | | markdown | 一种轻量级标记语言,写README.md必备,要求熟悉使用(推荐编辑器typora,里面自带学习帮助文档) | | latex | 一种基于Tex的排版系统,帮助你写出漂亮文档。 | | VS code | 最流行的代码编辑器,插件功能强大,多用即可。[参考学习视频链接](https://www.bilibili.com/video/BV1fy4y1b7TC?from=search&seid=798964311531618954&spm_id_from=333.337.0.0) 推荐书籍《VS code权威指南》 | | cmake | 了解基本的编译原理与流程,学习使用cmake进行编译 ([参考学习视频链接](https://www.bilibili.com/video/BV1vR4y1u77h/?spm_id_from=333.337.search-card.all.click&vd_source=711ae961de863082506d3386c6e0761b) [官方 tutorail](https://gitee.com/mirrors/CMake/tree/master/Help/guide/tutorial)) | | Zotero | 文献管理工具,了解使用即可 | | socket | 了解基本的网络协议,学习使用socket和其它一些小工具进行TCP/IP通信 [网络协议](https://www.bilibili.com/video/BV1Fy4y1Y7n6?from=search&seid=3250696251355904667&spm_id_from=333.337.0.0) | | ROS | 机器人操作系统,进行概念的基本掌握和使用了解 [ROS入门21讲](https://www.bilibili.com/video/BV1zt411G7Vn?from=search&seid=4633778109782572489&spm_id_from=333.337.0.0) | | gazebo | 机器人仿真软件,也是先进行基本了解 | * **C++/python** 这两者都是面向对象编程,有相似之处。推荐书籍《C++ Primer Plus》,《python 基础教程》。有兴趣的同学建议把数据结构也学习一下。 * **matlab** matlab用起来还是很方便,很香的。 * **PX4/ardupilot** 两大开源飞控固件,对他们进行基本的了解和学习。我们在日常的开发中都采用PX4,ardupilot仅仅做粗略了解即可。官方的documentation可以帮你解决99%的问题![ardupilot](https://pixhawk.org/) [PX4](https://px4.io) ### 3.3 嵌入式基础 和真实的无人机打交道,我们不可避免的会与一些硬件设备打交道。作为一个开发者,就需要对这些东西特性和与原理有一定的基本了解,知道其如何使用以及如何排除硬件故障,这样才能够自己完成高效的开发。 * **STM32基础学习** 了解单片机的基本组成和原理,能够看懂基本的硬件原理图 [STM32入门100步](https://www.bilibili.com/video/BV1MW411q7Jn?from=search&seid=13839581803952254342&spm_id_from=333.337.0.0) [ARM微控制器与嵌入式系统](https://www.xuetangx.com/course/THU08091000246/7754632?channel=i.area.manual_search) * **pixhawk硬件** 作为目前生态最完整,最流行的开源飞控硬件。在之后的学习和开发中,我们也会常常和它打交道 https://pixhawk.org/ * **RTOS/HAL** 简单了解嵌入式实时操纵系统(RTOS)和 硬件抽象库(HAL)