# class-CompletionofFCS **Repository Path**: mary-lee/class-completionof-fcs ## Basic Information - **Project Name**: class-CompletionofFCS - **Description**: 做中学课程(飞行器控制系统设计与实践) - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2023-10-12 - **Last Updated**: 2024-04-12 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 做中学(飞行器综合控制系统设计与实践) ### 介绍 本综合设计实践课将以创新型教学方式,结合课堂教学、课外自学、动手实践三个主要环节(时间分配1:2:3)来安排学生对飞行器综合控制相关理论的学习与应用。理论学习通过教师课堂讲解,学生在教师引导下利用在线视频、在线资料、课本、研讨等方式的自主学习来完成;实践学习中,学生以小组为单位,在成本、硬件约束下,自行设计最优方案改进飞机并设计飞行控制系统、图像识别系统以及任务控制系统使其完成某规定任务。通过上述环节,学生不仅将深度掌握飞机综合控制系统设计与实现方法,巩固飞行动力学、自动控制原理、C语言等相关知识,也能增强在有限条件下完成目标的规划能力、自主学习、合作交流、开拓创新、独立思辨以及将书本知识转化成实践等综合能力。 ### 项目目标 1. 让旋翼飞行器飞起来—————自行设计并实现飞行控制系统设计与实践 2. 利用arduino设计一个小型目标打击系统并实现控制 3. **初级**(利用视觉系统)识别色块并能抵近目标并实现打击;**高级**(利用视觉系统)跟踪动目标并能实现打击 ### 系统架构 ![image](structure.png) ### 飞行控制系统设计与实践 课堂PPT ### 火力控制系统设计与实践 1. 理论部分见课堂PPT 2. 实现部分有可能需要用到Arduino(其是一个开放源码电子原型平,拥有灵活、易用的硬件和软件。),Arduino部分学习资料见[这里](https://gitee.com/mary-lee/computer-control/blob/master/Arduino/README.md) ### 3. 目标识别系统设计与实践 在无人机上使用相机的作用: - 目标识别 - 避障 - 使定位更精确 - 建图(军方应用较多) ![视觉系统工作原理](视觉系统工作原理.png) #### 3.1 相机工作原理 * [相机工作原理](https://zhuanlan.zhihu.com/p/33408761):这个视频1分57秒, * [相机模型及其基础公式](https://zhuanlan.zhihu.com/p/540969207) * [相机模型中四个坐标系的关系及其数学表达](https://zhuanlan.zhihu.com/p/125006810):世界坐标系、相机坐标系、图像坐标系、像素坐标系 #### 3.1 ROS与可视化仿真(Gazebo) 1. 什么是ROS? - ROS是机器人操作系统(Robot Operating System)的简称。它是一个开源、灵活的软件框架,用于构建机器人应用程序。ROS提供了一系列库和工具,使开发者能够通过统一的通信机制在不同的硬件平台上编写、测试和部署机器人软件。它支持分布式计算,允许开发者将不同的组件(如感知、控制、规划等)独立开发和测试,并通过ROS的通信机制进行交互。通过封装硬件接口、提供常用功能、实现消息传递等 2. 什么是Gazebo? - Gazebo是一个多机器人物理仿真器,用于模拟机器人在真实世界中的行为。它提供了一个基于物理引擎的虚拟环境,可以模拟机器人的运动、传感器数据、碰撞检测等。Gazebo具有高度可定制性,可以根据用户的需求进行配置和扩展。它还提供了一个可视化界面,允许用户实时观察仿真结果,并进行调试和优化。 **实际应用中,ROS和Gazebo可以结合使用,通过ROS提供的接口,将开发的软件模块集成到Gazebo中进行仿真和测试。** 3. 学习Ros与Gazebo前需要学习什么编程语言? - C++:C++是ROS的主要编程语言。ROS的核心组件和库大部分都是用C++编写的; Gazebo的核心是基于C++开发的,并提供了C++ API供开发者使用。因此对C++的基本语法和面向对象编程有一定的了解是必要的。 **注意** **如果仅仅为了使用gazebo和Ros,C++只需要学习基础即可[网页](https://gitee.com/pi-lab/learn_programming/blob/master/1_c++/README.md)** **也可以参考C++比较好的[学习网站](https://www.runoob.com/cplusplus/cpp-tutorial.html)、[学习资源](https://blog.csdn.net/weixin_44949135/article/details/115025771)、[bilibili视频](https://www.bilibili.com/video/BV1et411b73Z?p=2)** - Python:Python是另一种常用的ROS编程语言。ROS提供了Python接口,使得开发者可以使用Python编写机器人应用程序。相比于C++,Python语法相对简单且易于学习,对于快速原型开发和快速迭代非常便利。 **注意** **如果仅仅为了使用gazebo和Ros,C++只需要学习基础即可[网页](https://gitee.com/pi-lab/learn_programming/blob/master/1_c++/README.md)** **也可以参考C++比较好的[学习网站](https://www.runoob.com/cplusplus/cpp-tutorial.html)、[学习资源](https://blog.csdn.net/weixin_44949135/article/details/115025771)、[bilibili视频](https://www.bilibili.com/video/BV1et411b73Z?p=2)** **Python比较好的[学习网站](https://www.runoob.com/python/python-tutorial.html)、[bilibili视频](https://www.bilibili.com/video/BV1qW4y1a7fU/)** 4. 如何学习Ros? - Ros的[安装]() - Ros教程的官方[中文网址](http://wiki.ros.org/cn/ROS/Tutorials) - Ros的[学习网站](http://www.autolabor.com.cn/book/ROSTutorials/chapter1.html) - Ros的[学习视频](https://www.bilibili.com/video/BV1zt411G7Vn/) 5. 如何学习Gazebo? - Gazebo[bilibili视频](https://www.bilibili.com/video/BV143411C75B?p=1) - Gazebo旋翼机搭建[参考阅读](ttps://blog.csdn.net/qq_37680545/article/details/123185002) - [ROS+Gazebo+PX4仿真步骤](https://blog.csdn.net/qq_19469271/article/details/119963938) #### 3.2 OpenCV 基础 - [bilibili视频](https://www.bilibili.com/video/BV1PV411774y?p=2) - [OpenCV tutorial](https://docs.opencv.org/3.4/d9/df8/tutorial_root.html) - [OpenCV school](https://www.w3cschool.cn/opencv/) #### 3.3 识别色块 * 颜色识别opencv+trackbar调节目标颜色hsv的阈值 - https://blog.csdn.net/qq_44873474/article/details/113062167 - https://blog.csdn.net/qq_34916678/article/details/105413220 * 其他方法 - https://blog.csdn.net/rosen_er/article/details/104021788 - https://blog.csdn.net/qq_53500523/article/details/123698272 #### 3.4 识别形状 * https://blog.csdn.net/m0_37579176/article/details/90207959 * https://blog.csdn.net/WjoKe/article/details/113205908 #### 3.5 估算目标位置 * https://blog.csdn.net/u010750137/article/details/98457477 #### 计算机控制reference 1. [在线讲义](https://gitee.com/mary-lee/computer-control) 2. [知识图谱资源待续] #### 由可能用到的链接 1. [虚拟机与Ubuntu安装](https://blog.csdn.net/qq_43015237/article/details/109234454)