2021-08-23 10:22:44 索炜达电子 852
项目编号:E477
文件大小:54M
源码说明:带中文注释
开发环境:C编译器
简要概述:
本项目为对ETHZ全向无人机项目的复现
D. Brescianini and R. D'Andrea, "Design, modeling and control of an omni-directional aerial vehicle," 2016 IEEE International Conference on Robotics and Automation (ICRA), Stockholm, 2016, pp. 3261-3266.
本项目采用Arduino Mega2560单片机和JY901惯导模块实现姿态与位置控制。
应用层(APP)
OmniCopter.ino 项目应用主文件,利用API构件飞控应用
事务处理层(TPS)
OmniCopter.h负责正确初始化和处理各种组件,完成飞控功能模块的处理事务,提供API接口给应用
Log.h 作为调试辅助类,输出各种调试参数,可以统一全部关闭输出,设置输出频率等。
FailSafe.h 安全机制,提供一个阻塞函数,检测是否失控以及遥控通道7是否解锁
数据处理层(DPS)
Input.h 遥控器接收机信号输入,保存输入的控制指令
Output.h 电调驱动,解析八个螺旋桨指令并输出PWM波
Sensor.h 初始化并驱动JY901模块读取姿态数据,转换数据格式
JY901.h JY901惯导平台驱动
Controller.h 飞控核心算法部分,包括AttitudeController,BodyRateController,PositionController和ControlAllocator
配置以及数学扩展库
Config.h 保存飞控各种状态参数
MathExtend.h 拓展数学结构体,包括四元数相关运算,姿态角和姿态角速度等
目录│文件列表:
└ OmniCopter
└ OmniCopter
│ OmniCopter.ino
├ GCS
│ │ Install.txt
│ │ RunOmniCopterGCS.jar
│ │ rxtxParallel.dll
│ │ rxtxSerial.dll
│ └ OmniCopterGCS_SourceCode
│ │ .classpath
│ │ .project
│ │ RXTXcomm.jar
│ ├ .settings
│ │ └ org.eclipse.jdt.core.prefs
│ ├ bin
│ │ ├ com
│ │ │ └ OmniCopterGCS
│ │ │ ├ GUI
│ │ │ │ │ MainFrame$1.class
│ │ │ │ │ MainFrame$2.class
│ │ │ │ │ MainFrame$3.class
│ │ │ │ │ MainFrame$4$1.class
│ │ │ │ │ MainFrame$4.class
│ │ │ │ │ MainFrame$5$1.class
│ │ │ │ │ MainFrame$5.class
│ │ │ │ │ MainFrame.class
│ │ │ │ │ readThread.class
│ │ │ │ └ SerialPortsModel.class
│ │ │ └ SerialPort
│ │ │ └ SerialTool.class
│ │ └ serialException
│ │ │ ExceptionWriter.class
│ │ │ NoSuchPort.class
│ │ │ NotASerialPort.class
│ │ │ PortInUse.class
│ │ │ ReadDataFromSerialPortFailure.class
│ │ │ SendDataToSerialPortFailure.class
│ │ │ SerialPortInputStreamCloseFailure.class
│ │ │ SerialPortOutputStreamCloseFailure.class
│ │ │ SerialPortParameterFailure.class
│ │ └ TooManyListeners.class
│ └ src
│ ├ com
│ │ └ OmniCopterGCS
│ │ ├ GUI
│ │ │ └ MainFrame.java
│ │ └ SerialPort
│ │ └ SerialTool.java
│ └ serialException
│ │ ExceptionWriter.java
│ │ NoSuchPort.java
│ │ NotASerialPort.java
│ │ PortInUse.java
│ │ ReadDataFromSerialPortFailure.java
│ │ SendDataToSerialPortFailure.java
│ │ SerialPortInputStreamCloseFailure.java
│ │ SerialPortOutputStreamCloseFailure.java
│ │ SerialPortParameterFailure.java
│ └ TooManyListeners.java
├ references
│ │ brescianini_dandrea_omnidirectional_aerial_vehicle.pdf
│ │ PX4 DevGuide.pdf
│ │ px4-wiki.pdf
│ └ 论文重点
└ src
│ Config.h
│ Controller.cpp
│ Controller.h
│ FailSafe.cpp
│ FailSafe.h
│ Input.cpp
│ Input.h
│ JY901.cpp
│ JY901.h
│ Log.cpp
│ Log.h
│ MathExtend.cpp
│ MathExtend.h
│ OmniCopter.cpp
│ OmniCopter.h
│ Output.cpp
│ Output.h
│ Sensor.cpp
└ Sensor.h