2021-08-23 10:22:44 索煒達(dá)電子 850
項(xiàng)目編號(hào):E477
文件大?。?4M
源碼說(shuō)明:帶中文注釋
開(kāi)發(fā)環(huán)境:C編譯器
簡(jiǎn)要概述:
本項(xiàng)目為對(duì)ETHZ全向無(wú)人機(jī)項(xiàng)目的復(fù)現(xiàn)
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.
本項(xiàng)目采用Arduino Mega2560單片機(jī)和JY901慣導(dǎo)模塊實(shí)現(xiàn)姿態(tài)與位置控制。
應(yīng)用層(APP)
OmniCopter.ino 項(xiàng)目應(yīng)用主文件,利用API構(gòu)件飛控應(yīng)用
事務(wù)處理層(TPS)
OmniCopter.h負(fù)責(zé)正確初始化和處理各種組件,完成飛控功能模塊的處理事務(wù),提供API接口給應(yīng)用
Log.h 作為調(diào)試輔助類(lèi),輸出各種調(diào)試參數(shù),可以統(tǒng)一全部關(guān)閉輸出,設(shè)置輸出頻率等。
FailSafe.h 安全機(jī)制,提供一個(gè)阻塞函數(shù),檢測(cè)是否失控以及遙控通道7是否解鎖
數(shù)據(jù)處理層(DPS)
Input.h 遙控器接收機(jī)信號(hào)輸入,保存輸入的控制指令
Output.h 電調(diào)驅(qū)動(dòng),解析八個(gè)螺旋槳指令并輸出PWM波
Sensor.h 初始化并驅(qū)動(dòng)JY901模塊讀取姿態(tài)數(shù)據(jù),轉(zhuǎn)換數(shù)據(jù)格式
JY901.h JY901慣導(dǎo)平臺(tái)驅(qū)動(dòng)
Controller.h 飛控核心算法部分,包括AttitudeController,BodyRateController,PositionController和ControlAllocator
配置以及數(shù)學(xué)擴(kuò)展庫(kù)
Config.h 保存飛控各種狀態(tài)參數(shù)
MathExtend.h 拓展數(shù)學(xué)結(jié)構(gòu)體,包括四元數(shù)相關(guān)運(yùn)算,姿態(tài)角和姿態(tài)角速度等
目錄│文件列表:
└ 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
│ └ 論文重點(diǎn)
└ 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