Home

KIRC - University of Central Florida

image

Contents

1. Table 3 Flight Time Calculation Table 18 ce Mass Current Thrust Capacity Part Description Part 8 Qty A e Ah Fiber Glass Frame Quadcopter Q450 280 1 0 0 0 Propeller Prop Drive NTM2830S Motors Motor 900 66 4 10 6 750 0 Afro 20Amp 919200131 ESC ESC 0 23 4 0 0 0 Turnigy 4s Battery Lipo Battery N5000 4S 45 552 1 0 0 5 8x4 5 Propeller Propellers 17000055 15 4 0 0 0 Controls Processors Avionics Sensors Tiva Raspi 200 1 1 0 0 TOTALS N A 1448 43 4 3000 5 Throttle to keep level 0 482666667 Current Drain A 21 46506667 Flight Time Minutes 13 97619698 EEL 4915 Senior Design II Group 14 Final Document KIRC Project This calculation was done for all motors considered Three NTM Prop Drive motors were considered above all others an 800k V 300W a 900k V 270W and a 1000kV 235W The analysis outcomes are shown in table 4 800KV 300W 900KV 270W 1000KV 235W Motor Motor Motor Throttle to Keep Static in Air 0 343809524 0 482666667 0 373532551 Current Drain A 25 4792381 21 46506667 23 26254002 Flight Time Minutes 11 77429242 13 97619698 12 89627013 Price 15 29 14 99 15 99 Table 4 Comparison of Select Motors The 900kV 200W motor was the most cost efficient and allowed for the longest flight time For this project with the equipment so chosen the NTM Prop Drive Series 28 30S 900kv drew enough current and supplied enough thrust to give the qua
2. Figure 59 Manual Flight Test Plan Self stabilization is something that the quadcopter does regardless of whether or not the controller is transmitting movement instructions to it The system continuously makes fine adjustments to the motor speeds in order to stay level in one position at the current altitude not precisely since the altimeter and was not required based on the accelerometer s feedback when the controller was idle This was first tested indoors with provisions for crashing This was tested by turning on the quadcopter providing thrust in order to get the quadcopter to lift of the ground and then backing off the thrust to keep the quadcopter from gaining altitude The user with the controller did not have to stabilize the quadcopter he only had to move it in any desired direction including yaw When nothing was being operated on the controller the quadcopter stayed somewhat in its position in a controlled environment It was normal for the quadcopter to start drifting as long as it was gradual and not drastic 112 EEL 4915 Senior Design II Group 14 Final Document KIRC Project Movement was controlled with the two joysticks on the controller Each movement was tested This was first tested indoors with provisions for crashing The left joystick controlled altitude and yaw When it was pressed up the quadcopter would move up the z axis When was pressed down the quadcopter moved down the z axis This was mainly be
3. checksum GPRMC Recommended minimum specific transmit data UTC time data validity A valid V invalid latitude north or south longitude east or west ground speed course speed date magnetic variation mode A autonomous M manual D differential GPS S simulation E dead reckoning N data invalid checksum GPVTG Course over ground and ground speed course over ground degrees reference true course over ground degrees reference magnetic speed over ground unit in knots speed over ground unit in km hr mode A autonomous D differential GPS E dead reckoning checksum GPTXT Message from u blox This is ignored Figure 15 NMEA GPS Output Sentences It is important to know all seven sentences are sent from the GPS to the flight computer until it initializes After GPS initialization the GPS only sends the GPGGA string that contains all the necessary information This string along with the heading voltage and quadcopter state are sent to the Raspberry Pi navigation computer to be parsed and processed All of this data is sent to the ground station along with the Wi fi signal 52 EEL 4915 Senior Design II Group 14 Final Document KIRC Project strength and packet number The ground station performs more analysis on the data if necessary The receiver does not have a standard communication protocol like UART or I2C It has pins used for controlling individual servo
4. EEL 4915 Senior Design II Group 14 Final Document KIRC Project Booting up the quadcopter is a multi step process that must be done carefully The first thing to be done is to TURN ON THE TURNIGY CONTROLLER UNIT This is important because while the quadcopter is booting the user wants to make sure the quadcopter doesn t receive any errant signals that would cause the quadcopter to behave unpredictably There are built in functions to prevent this from happening but it is still good practice to always turn on the controller first The second thing to do is to place the quadcopter on a level surface and plug in the quadcopter battery to the ESCs and immediately remove all objects from the propeller area This is more of a precaution just in case anything were to happen The third thing that happens is a power LED and a user LED turns on the quadcopter is ready to fly after the second user LED starts blinking This signifies that the sensors are done initializing and calibrating It is important to note that the quadcopter must be perfectly still and on level ground when initializing or else this could ruin the sensor calibration and cause unpredictable results After all these steps have been completed and the LED is blinking the quadcopter is ready to be armed and flown The quadcopter has several safety features that are used to protect the quadcopter and more importantly the people using it or watching it The only way for the motors to be
5. PCB Desien and Assembly costes eiei heroit ananena aea eeta KEE Eaa o Paai Ae ee aa AEA 96 6 3 Parts Integration a ip ihar iaeaea rainier cadhcueceadicens codsavdessdecdosecsuadasesdisees Gisaiieesidesice aaia FES 100 T Prototype Testing and Evaluation iis ciscccscccscesiscetscesssassdsectestssecesseadacesscessaccsasdesscestdeatseed ocetectiaateesstes 104 7 1 Microcontroller RTOS and Peripheral Driver Testing ceeceeeeeeeeeeeeeeeeeeeeaeeeaeeeaeenaes 104 7 2 Filtering Algorithms amp Control Loops Testing cece eesceseceseceeeeeeeeeeeeeeeeeeeeeeaeeeaeeeaeeeaaeeaaes 109 8 Operation Manvial icici iieccalecisces obese cs este hdenide asda csi gatiees fasveg LERT taaan Seraka EAn PARAE PALASE PEATAS eetuses beatae 115 8S1 Man al PU SIG sisi siccalecalatscsctacete ccd aveelst faceta eed dete sidacvegestuduceyscecadsedhlduaessivesiseesninsesd seats eetuseassatie 115 8 2 Using the Ground Station fice cissces cscisccsi decide csigediees leases cdesavsesadecadoesdheducpsisased tokaio sanai iatha iioa ina 117 9 Administrative C OMEN isien iveessdecsssssahedieesiteads ccshssseva desde sdshseteted Gaccdacesasessed duvsdusideatteed dactdectiacteesdies 119 Ole Milestone Discussion sinisini iakevises ieeas cdhedseesdecastdsbsrcessducsisccahesaseaduiscsisaatees dousdecstnaticeatas 119 O 2 Buidget and Finance ria wivsscesslecstecdshevieesiteeds cdassbacss decssaesshesdessdaeedscasaesspsdussds arkni sideainet TES aei 123 9 3 Team Organi Za Onis o
6. 160 00 11 4 2013 To be acquired Props 12 4 00 48 00 11 4 2013 To be acquired Frame 2 15 00 30 00 11 4 2013 To be acquired Li Po Battery 4 5 A h 2 40 00 80 00 i ioe To be acquired RC Controller amp Reciever 1 50 00 50 00 114 2013 To be acquired Quad GuidSys Embedded Linux N A l Processor 2 N A Acquired Power Cable 2 N A N A Acquired SD Cards 2 N A N A Acquired 802 11G N A l Wireless Card 2 N A Acquired High Resolution Webcam 2 250 00 5100 00 G ai To be acquired Ground GndStat Laptop 1 N A N A Acquired Quad PCBHardW Microcontroller Standalone 2 10 00 920100 2 3 2014 To be acquired Accelerometer 2 5 00 10 00 2 3 2014 To be acquired Gyroscope 2 5 00 10 00 2 3 2014 Tobe acquired Magnetometer 2 5 00 10 00 2 3 2014 To be acquired Altimeter 2 5 00 10 00 2 3 2014 Tobe acquired Passive Components rreg N A Acquired Active Components Free N A Acquired TOTALS All 788 00 N A N A Figure 64 Generic Preliminary Budget Allocation 124 EEL 4915 Senior Design II Group 14 Final Document KIRC Project The parts will be ordered through a NASA contact and for some parts there is paperwork that needs to be filled out The team had to take into account the purchase request process at NASA and allot at least a month of time before expect to receive any part requested Parts arrived at NASA KSC in the shipping and receiving buildi
7. Administrative Content 9 1 Milestone Discussion As mentioned in the project description section the Knight s Intelligent Reconnaissance Copter KIRC project is split into three prototyping phases Each of the three phases represents a logical progression of how the team thought the project should be broken up Throughout all the phases there was research design construction and testing Each of the phases was evaluated based on the team s abilities to achieve the goals within each respective phase In this section the goals milestones and schedules are defined for each phase is covered in detail for both Senior Design 1 and Senior Design II The first phase was longest phase of the project as it ran the length of Senior Design 1 entirely In this phase one of the goals was to begin research into different quadcopter designs parts and software algorithms Once an adequate microcontroller inertial measurement unit IMU and a GPS were found we decided to do a first round parts order with these parts in late September of 2013 When the parts arrived the team began coding of the microcontroller software that controlled the motors and the stability algorithms that made the compensation During this research was also done for the physical quadcopter parts such as the frame motors props and batteries Once the software was written and the quadcopter parts came in the team began integration of the quadcopter After being fully inte
8. From this data the team generated countless graphs with the battery voltage on the dependent vertical axis and the amount of time elapsed on the independent horizontal axis An accurate picture of how long the battery lasts is important during reconnaissance missions because since the quadcopter is manually controlled the team must be prepared to land the quadcopter before the battery depletes If the battery s voltage was to completely deplete during flight the quadcopter s motors would not supply power to the propellers and the quadcopter would enter freefall and likely be destroyed upon crashing into the ground Fortunately the team receives real time updates concerning the battery s voltage in the PCB integrated design therefore giving the team an extra layer of information to avoid failure In the future if and when the team implements autonomous flight the team would program the quadcopter to land automatically when the battery level gets too low This feature was considered well in advance and was another reason this battery life circuit was implemented With a sound understanding of the power distribution system it seems logical to move on to the next segment of the hardware design the on board interconnections to and from each computer system The hardware operation is heavily dependent on the communication method to and from each component There are several different types of communication methods with specific connectors dependin
9. PCB The PCB was designed and tested with only a few issues After the PCB was made the navigation computers and new flight computers were mounted to the quadcopters The navigation computer software was developed along with the ground station software for the user interface The quadcopter was capable of taking images and displaying real time data on position battery life altitude and state During phase 3 of the project the primary objective was to replicate KIRC naming it SPOK and make them both autonomous There was considerable programming of the autonomous features of both quadcopters during this phase and unfortunately it wasn t able to get done The goal by the end of the project was to have the quadcopters working cooperatively towards a common task but that didn t happen Some of the objectives of this project were learning objectives For instance the microcontroller chosen was an ARM processor and there had to be a Real Time EEL 4915 Senior Design Il Group 14 Final Document KIRC Project Operating System on it Another example is that the flight control system had to be custom developed for this project This was one of the challenging deliverables that prevented the team from completing the autonomous portion of the project In summary the primary goals that the team wanted to achieve related to performance of the quadcopters were defined The team also had smaller goals and objectives during this project which w
10. Start DTN2 Open Peripherals e System Check Start System Script System Script Start Command Parser e Start Guidance Start Imagery e Start Telemetry Figure 27 Navigation Computer Startup Process Most of the software developed on the Navigation computer will be in the Linux native bash script The reason behind doing it that way is to make interfacing with the peripherals and the DTN2 application much easier The state machine however will have some parts that will be done using the C programming language C is still far more useful than the bash script when it comes to the computation and logic for the Navigation system The scripts developed will call on C programs to do computation or logic for certain tasks The Navigation computer will be communicating with the flight computer over a serial UART link at 115200 Baud The Navigation and flight computer will be sending data back and forth to each other on things like state battery life GPS coordinates and altitude Both computers will have the UART connection interrupt driven as the communication between the two needs to be able to be done at any time The strings between the two will have a specific format to be determined at a later date This will make parsing the data between the two relatively easy to do and should not require too much processing time The parser for the Navigation system communication from the ground station will be sent as commands for the
11. The Schedules for Senior Design I and Senior Design II were organized from the milestone outline above into the two Gantt charts given below in Figure 63 and Figure 64 below respectively In Figure 62 we have the Gantt chart for Senior Design I which has been modified from the milestone outline above with more updated dates from our schedule used In Figure 63 we have the projected schedule for Senior Design II The major points that the team wanted to achieve are the construction of a stable prototype by the start of Senior Design II a PCB with integrated sensors and processor by the end of February a working autonomous quadcopter by mid March and two working quadcopters by mid April This however proved over optimistic and the autonomous section was never finished P Weeks tt 2 fats fof 7 sto io 12 is ia is 16 Figure 62 Senior Design I Schedule Modified based on changes to schedule 121 EEL 4915 Senior Design II Group 14 Final Document KIRC Project Figure 63 Senior Design II Schedule The schedule has not gone completely as planned as expected One of the major events thus far that has slowed down the progress on the project was the government shutdown from October 1 through October 1
12. block diagram In this diagram it is implied that this power distribution system gives power to every electronic device on board in order to eliminate the need of drawing lines from the battery to the motor controllers and the voltage regulator circuit and from the voltage regulator circuit to the Raspberry Pi the flight computer the IMU and the GPS unit The SD card the wireless transmitter receiver to the ground station laptop and the Raspberry Pi camera module used all receive power directly from the Raspberry Pi TM thus these components do not require direct connections to the voltage regulator circuit The concepts visually portrayed in the hardware block diagram are to be expanded upon in the following block diagram called prototype block diagram 37 EEL 4915 Senior Design II Group 14 Final Document KIRC Project The prototype block diagram shown in figure 5 on the next page shows all of the connections to and from each of the electrical components in the prototype phase of the team s design Because the subsequent block diagrams are extremely detailed the team decided to use the individual system block diagram and the hardware block diagram as a prelude to the more meticulous block diagrams with arrows pointing each and every direction and even overlapping one another in some cases The lines from the battery to the 4 ESCs and the voltage regulator circuit were implemented using two wires with a voltage difference equal to
13. throttled is if the motors are armed There is a state machine that determines whether to arm the motors or not that serves as the primary safety function of the system The first requirement of the system is to make it through initialization properly Neither the user nor the flight control software is capable of arming the motors until after the sensors have been initialized properly After this point the user must deliberately use the safety switch on the controller in order to arm the motors The throttle must also be above a certain threshold to arm the motors too After these requirements have been met the quadcopter will be armed and the propellers can start spinning The quadcopter PCB displays an armed signal to the user by turning of the user LED one turns off The last safety function is a timeout function used to determine when the last set of good data from the receiver came in If the user hasn t received data in over 500 milliseconds the flight software automatically disarms the motors This can cause the quadcopter to crash in flight but rather than having an out of control quadcopter it is better to drop it and recover what is left Flying the quadcopter is not an easy task and some prior quadcopter flight experience is necessary When the motors are armed the user can throttle up the motors in order to gain some altitude and use the roll pitch and yaw sticks to maneuver that quadcopter In conclusion the quadcopter ca
14. x Ns ae Er 2 ale pdf O FAN v a a i n N Ea Fiilde a f Figure 55 Physical Printed Circuit Board 97 EEL 4915 Senior Design II Group 14 Final Document KIRC Project On this PCB design as with most all parts were organized in sections and oriented for an optimal use of space The organization strategy was based on purpose location of implementation and amount of power This organizational strategy assisted in keeping the trace lines more logical and would require less layers for the PCB assembly First in the organization was the location of the nets connected as compared to the component use There was no sense in running fifteen volts around circuitry that wasn t powered by it in order to cram as many components as possible onto the smallest board possible For this reason as the components moved farther from the power connector in the bottom left as seen in Table 7 the components were powered by lower voltages and manage less current For this reason the voltage regulator circuit and the battery monitoring components operational amplifier and higher power resistors took the lower left corner board and near as possible to their terminating locations The 5 volt regulator that was only implemented in UART connections was organized close near to the connectors the signals were transmitted from That same logic placed the 3 3 volt regulator close to the 5V input of the board due to the fact most components were power
15. 14 Final Document KIRC Project Figure 2 Quadcopter Orientation Diagram In a typical helicopter or a plane the front of the vehicle is obvious but due to the symmetrical nature of quadcopters the so called front of the vehicle is more ambiguous The team considered each of the orientations and made the following conclusions If the team designated the front to be on the axis of a single wing as indicated by I in figure 2 only two motors speeds are manipulated in changing the pitch or the roll If the team designated the front to be between two wings as indicated by II in figure 2 all four motors speeds are manipulated when changing the pitch or the roll An example is helpful in explaining how the pitch or roll is changed in the first orientation Imagine the pilot presses the right joystick on the RC controller forward to tilt the nose of the quadcopter downward In the first orientation the two side motors perpendicular to the front axis are unchanged and the front motor s speed is decreased with respect to the back motor thus only the front and the back motors are used to change the pitch in this instance Orientation II as labeled in figure 2 designates the front between two wings If this were the orientation used in the example the two front motors speeds are changed with respect to the two back motors speeds thus all four motors can be used to manipulate the pitch and the roll of the q
16. 778 and so far the bill of parts comes out to under 700 for everything The reason for the cost coming up much less than the initial budget is because the team found some vendors that have the parts they want for less than allocated for and they also found some parts for free if sampled with the manufacturing company The other cause is because the team also overestimated the budget on purpose in order to allow for any unforeseen cost So far though the project has gone as planned from a budget perspective 9 3 Team Organization The KIRC project team is a group of four UCF seniors in engineering with three electrical engineers and one computer engineer The project has been divided into four areas one for each group member The areas of this project have been split into Hardware Software Control Systems and Team Lead In this section each team member s job is explained and how the team has handled communication and collaborative file editing Member profiles and brief bios are provided in the appendices for reference Nathaniel Cain an electrical engineering senior is the team lead He is responsible for providing administrative leadership to the project as well as document tracking and editing He is also responsible for the integration of the systems and subsystems that make up the project Nathaniel is the NASA liaison for the project as is the NASA co op intern His mentor is providing the budget for this project as well as guid
17. AFRO 20A ESCs from Hobbyking com will be the ESCs for the quadcopters in this project These ESCs can source up to 20 amps which is more way more than the motors being used in the project Each motor needs its own ESC so each quadcopter must have four ESCs The PWM frequency of this particular ESC is 51Hz This means that the PWM signal coming out of the flight computer must have the same PWM frequency During autonomous navigation the control system will be taking input from itself essentially This means that there will have to be pre programmed flight maneuvers as well as altitude feedback control This will become taxing on the flight computer as many calculations will have to be done in a very short amount of time The guidance state machine which will be explained in the next section will handle which state the quadcopter is in so that the control system can be adjusted accordingly In summary there will be a feedback control loop for every axis and every parameter of attitude and movement The attitude feedback controller should be able to perform well when the input is the RC controller or the autonomous navigation The sensors on board the quadcopter will all have to filtered to get good data The Recursive Least Squares 62 EEL 4915 Senior Design II Group 14 Final Document KIRC Project 5 4 filter will be used for all the high noise sensors The compensator of the feedback controller will have to output PWM signals to the m
18. At this moment the accelerometer in the IMU lets the avionics computer know that the quadcopter s velocity is zero and the gyroscope in the IMU lets the avionics computer know that the quadcopter is perfectly level In this stable condition the avionics computer is communicating to all 4 motor controllers to individually send approximately the same speed to each of the 4 motors to exactly counteract the downward force of gravity thus keeping the quadcopter at a constant altitude Keep in mind that the team s avionics computer is running through velocity and position calculations several times per second in order to correct any deviations to perfectly level as soon as possible All of the sudden a gust of wind blows the team s quadcopter out of its perfectly stable condition For a split second after the gust occurs two of the motors are slightly higher in altitude compared to the other two motors and the team s quadcopter is now slightly tilted at an angle The microcontroller which is reading in information from the IMU several times per second quickly realizes this slight tilt from the gyroscope s sensor as well as a slight change in velocity from the accelerometer s sensor The avionics computer s microcontroller then quickly does calculations and sends appropriate amounts of speed to the 4 motor controllers to correct this tilt In this specific example the microcontroller could level out the quadcopter by providing slightly less s
19. Composer Studio version 5 is the best integrated development environment for this project Code Composer Studios is not only the most comfortable compiler for the team due to the fact that much of the programming done by the team has been through CCS but it also provides debugging support and JTAG based development The microcontroller has a JTAG programmable ARM processor in a reduced instruction set microprocessor powerful enough to perform all needs of the system An added bonus is that Code Composer includes a real time operating system or RTOS for short A real time operating system is used to implement real time requests and return data output from the system This in most cases is able to operate without lag or buffering delaying the data flow Through the implementation of this program the testing will be more thorough Due to the complexity of the sensor data that is used to maintain the entire flight system an ability to readily read the sensor responses is crucial as the project moves forward The ability to register real time data fed through the system allows for a better understanding of what will be the output to other components as well as the ability to maintain a stream of control data in order to diagnose any flight stability issues before test flight The system is implementing a navigation computer that handles the autonomous flight and imaging as well as transmission of these images to the ground station This system will be ma
20. EEL 4915 Senior Design Il Group 14 Final Document KIRC Project and GNDX Pin35 This allowed for all of the powering of the system to be powered by a single voltage source The TM4C123GH6PM is a 3 3 volt powered microcircuit that is connected at VDDA Pin 2 VDD Pin11 26 42 56 and VBAT Pin37 VDDC Pin25 and 56 was used for internal logic system and were connected to each other as well as across a capacitance equally 3 4 uF Along with most of the ADCs there were more signals and abilities that were not going to be taken advantage of Due to the fact that the microcontroller would be at work for the entire flight time it was unnecessary to prepare for this quad copter to go into hibernation mode For this reason the hibernation function involved with Pin32 37 would be voided HIB will be no contact because there is no need to show it was in hibernation when it will never happen Similarly the hibernation oscillation module input and output XOSCO and XOSC1 respectively which would usually contain a lower frequency crystal other than the system uses under normal operation conditions was no contact at XOSC1 and XOSCO will be tied to the hibernation oscillator ground GNDX VBAT signal would normally be a lower powered input due to the lightening of processing while hibernating will now be attached to 3 3 volts as the other power signals are and GNDX was connected to the same ground plane as all other GNDs in the system WAKE was a
21. Figure 1 The steps of the algorithm will be copied into the code for the quadcopter microcontroller The main purpose of each step is the same for both figures The important thing to point out is that the raw data is not something that can be directly used It has to be converted trough a series of calculations The altitude relies on 50 EEL 4915 Senior Design II Group 14 Final Document KIRC Project the pressure data which relies on the temperature data which is all calculated with the calibration data Step 1 Read calibration data from the EZ2PROM of the BMP085 Assign all 11 calibration values to their own variabl e Step 2 Read uncompensated termperature value Write 0x2E into register OxF4 Read register OxF6 to OxF7 Step 3 Read uncopensated pressure value Write 0x34 oss lt lt 6 into reg OxF4 Read register OxF6 to OxF8 Step 4 Calculate true temperature Calculations on Figure 1 Appendix D Step 5 Caculate true pressure he Calculations on Figure 1 Appendix D Repeat steps 2 though 5 for next measurment Figure 14 Temperature and Pressure Algorithm The GPS sensor communicates with the flight computer via UART to the microcontroller at 115200 bps 8 data bits 1 stop bit and no parity The cold start time for the GPS is 27 seconds so the quadcopter has to stay on the ground at least that long before the GPS is ready for flight It provides GPS NMEA strings at a rate of 5 Hz There are seven types of
22. For example the process of getting the altitude from the altimeter involves interaction delays and calculations When this is called in the application code it s a simple function call like float height getAltitude In summary the flight computer has the RTOS to keep all the tasks running coherently The flight computer has to read all the sensors filter the data relay information to the Raspberry Pi calculate control compensation for all axes and output information to the motors All these tasks are difficult to keep running in parallel without overlap so clever coding techniques and special care was taken during flight computer software development 53 EEL 4915 Senior Design II Group 14 Final Document KIRC Project 5 3 Flight Stability Control System In this section the design and analysis of the flight control and stability system along with the details of the sensor filtering algorithms are given In flight multi rotor copters are naturally unstable air vehicles that need to be dynamically stabilized in order to fly properly This conundrum can be fixed by using a compensation control algorithm which has various control parameters that minimize the error on the roll pitch and yaw axes in order to produce stable predictable motion When using a compensation control algorithm however the gain parameters must be deduced based on the dynamic response of the system Also when using a compensation algorithm ho
23. Group 14 Final Document KIRC Project DTN2 handles data in bundles where each bundle can vary in size from a few bytes to even gigabytes Each bundle to be sent is stored and forwarded to a destination where the destination will acknowledge receiving the bundle This exchange reaction is one of the features of DTN that makes it so durable in rough networking environments When the sending node does not receive an acknowledgement from the receiving node it keeps resending the bundles until an acknowledgment is received or the operation times out The time out period for DTN2 is set for 1 hour but it is adjustable depending on the situation For this reason also TCP must be used as the convergence layer as it has support for the send ack structure of DTN While DTN2 can be used with UDP its feature set is limited when using this protocol Figure 35 below shows a block diagram of the send ack logic Send Bundle Y Wait for Ack Y Ack y es received gt Done No Resend Figure 35 DTN Sending and Receiving Exchange Diagram Another feature of DTN2 is its ability to dynamically route bundles based on routing table and opportunistic links When configuring DTN2 a routing table must be established that has all the IP addresses domain names and convergence layer information of every node in the network After all this information is given DTN2 must be configured to work in a dynamic routing mode Once setup prop
24. National Marine Electronics Association NMEA sentences described in Figure 15 on the next page Each sentence is sent in the following format GPXXX X X X X checksum The figure table below provides a definition for each number that would be output separated by commas for each sentence type 51 EEL 4915 Senior Design II Group 14 Final Document KIRC Project Sentence Description GPGGA Global positioning UTC time latitude north or south longitude east or west position indicator 0 invalid 1 GPS SPS mode 2 differential GPS 6 dead reckoning mode number of satellites used horizontal dilution of precision mean sea level altitude unit geoidal separation unit age of differential GPS data in seconds differential reference station ID checksum GPGLL Geographic positioning latitude north or south longitude east or west UTC time data validity A valid V invalid and mode indicator A autonomous D differential GPS E dead reckoning checksum GPGSA Dilution of precision DOP and active satellites mode 1 M manual A automatic mode 2 1 no fix 2 2 dimensional mode 3 3 dimensional mode up to 12 channels displaying the number of satellites used position DOP horizontal DOP vertical DOP checksum GPGSV Satellites in view number of messages message number satellites in view ID number elevation azimuth signal to noise ratio repeat starting at ID number
25. Navigation computer will set several pit stops along the path where it will stop and take in image In order to scan a whole area the Navigation computer will begin to scan the area in a serpentine pattern Figure 28 on the next page shows how the flight path might look for a single quadcopter in image area mode 66 EEL 4915 Senior Design II Group 14 Final Document KIRC Project Coordinate 1 Coordinate 2 Start x E PEPEE BEE e _ x __ EEEE m Coordinate 3 TR 4 Figure 28 Example of Area Imaging Flight Path When both quadcopters are being used both will have the task of imaging an area Each quadcopter will have half of the area to image Cooperatively they will have to decide how to take the area and divide it up One of the quadcopters will have to be the master one that decides for both as this will resolve any conflict where both quadcopters try to fly in the same area During flight the quadcopters will relay information to the ground about their respective states Through the use of DTN the quadcopters can also route through each other in the case where the ground station is out of range The Navigation computer essentially acts as an abstraction barrier for the flight computer that will be handling the brunt of the work The flight computer after the stability algorithms have been established will be reprogrammed to include software support for reading GPS sending telemetry string
26. RTOS peripherals I O and software block diagrams The software for this project was designed to be used on top of a Real Time Operating System RTOS from Texas Instruments This RTOS was very useful when it came to the control system as it allowed the processor to be used more efficiently during delay times and allowed the control system to assume highest priority when running In order for a microcontroller to have any sensing of the outside world it needs to have peripherals These peripherals are the sensors that provide state feedback for the control system of the quadcopter for instance The processor has to make decisions based on the information received from its sensors and each data set needs to come in at a fixed rate Since procedural programs are capable of entering into states where the programs can freeze or crash the team decided to use a real time operating system provided at no charge from Texas Instruments called TI RTOS This RTOS provided several different facilities to prevent any task that crashed from crashing the whole system as well all as provided APIs that allowed for more efficient use of delay time and last but not least it provided task priorities to ensure that more critical tasks got executed on schedule The code for the RTOS from TI was designed to be modular such that certain features and segments could be added or removed by simply editing a configuration file This allowed for major scalability in the softw
27. When dealing with large currents it was not a bad idea to check on how warm or hot all of the components were getting Generally if something was wrong the component would be too hot to touch The battery would have been disconnected immediately and the problem would have been investigated Sometimes it s a faulty component other times it is the implementation 7 4 Manual Flight Tests A manual flight was conducted with a RF controller that transmits movement commands to the quadcopter This is how a typical remote control quadcopter that one could buy 111 EEL 4915 Senior Design II Group 14 Final Document KIRC Project from a hobby shop is controlled At this stage the quadcopter had all of the sensors it needed to stabilize itself This includes the accelerometer and gyroscope Other sensors such as the GPS magnetometer and altimeter were not required for self stabilization This test demonstrated that the quadcopter could self stabilize move in a desired direction on all three axes of motion function with an interrupted or weak signal from the controller and fly outdoors After that all of the peripherals were tested on the quadcopter during flight Figure 59 shows the hierarchical format of this test phase Self stabilize ae Interrupted Signal y Controlled Movement y Fly Outdoors F GPS Altitude Orientation Coordinate Calculation Calculation gt calculation
28. a noise filter capacitance on the VLOGIC signal set to 0 01 micro farads The last sensor to be implemented was an altimeter BMP085 in the middle of Figure 38 which was not associated with the sensor stick but was used in this system in order to maintain height readings for imaging definition This connector was the same 2C communication as the other three sensors and therefore had the same pull up resistors along the SCL and SDA lines This sensor would be powered by the 3 3 voltage line and connected to both VDD and VDDA with the addition of a 0 1 micro farad capacitor to ground As with the other sensors there was an NC contact that would be no contact along with XCLR which was a master clear signal no contact allowing conversation and EOC which was an end of conversion signal or interrupt that was going to be no contact as done with the other sensors 79 EEL 4915 Senior Design II Group 14 Final Document KIRC Project The real difficulty in circuit design came when doing the schematic for the interconnection of the TM4C123GXL microcontroller seen in the center of Figure 39 The first challenge when working with this component was the fact that it was so new that the version of schematic design software available for use didn t have it available in the library It just so happened that the very popular MSP430FW42IP was available with the same 64 pin dimensions capable of being used for setting of the footprint For this reason in
29. area autonomously They had some novel designs that intrigued our senior design team In order to maintain attitude control and steer the device they used small rudders under the rotor to deflect the air and EEL 4915 Senior Design II Group 14 Final Document KIRC Project create a small controllable force With the cage design holding in all the electronics and keeping the motors out of reach it made for a very safe design The project also proved to be very innovative with its rudder design While this project did have a few good points to draw from unfortunately it wouldn t fare well in a higher altitude application At higher altitudes wind would become a large issue and it could ve created a potential problem where the cage design would have tumbled in the wind and the rudder for the motor wouldn t be able to compensate enough This could ve caused a potential crash of the copter system and may have resulted in the total loss of the system Another drawback was the copter s limited cruising speed The rudder design while novel didn t provide the force necessary to push the copter to higher speeds For this project the cruising speed needed to be enough such that large areas could be covered with a limited battery life What could be drawn from this project was their use of control algorithms for flight navigation and specific parts used Their use of state machines for their navigation control routine was a very viable option f
30. be a 4 cell 19 EEL 4915 Senior Design II Final Document Group 14 KIRC Project In the decision of battery the power vs flight time table and calculations were implemented as when choosing the motor When deciding whether to have a stronger battery or multiple batteries the decision came down to price vs addition to flight time In addition this battery needed to be rechargeable so that it could be put in the package and not have the necessity of being removed and replaced with each use If a disposable battery was chosen the budget of the project became time dependent as the aircraft was used repetitively the cost of batteries added up quickly The calculation table used in the analysis for the motor selection was also implemented in this situation The power source was the last thing chosen due to the fact that its requirements were dependent on the needs of the system In this situation there were a couple of options when it comes to powering the system as a whole The implementation of two batteries could be used or having a single battery with higher output The initial thought was to keep the budget as low as possible without diminishing the ability of the quad copter s ability to complete its missions In order to accomplish this a range of rechargeable 3 cell LiPo batteries were considered centering on the range of 4500 mAh to 6000 mAh The analysis of operation ability can be seen in Table 5 below 4500m
31. charger power breakout cable Wi Fi on the Raspberry Pi and the laptop and the power distribution system In general throughout the hardware test plan one component was added at a time Each test was built upon another test and that tests the components in series like shown in Figure 58 Figure 58 End to end Power Testing Sequence The battery was a 3 cell lithium polymer 5000mAh battery The main plug fits into the power breakout cable The plugs on the end of the breakout cable all fit in the ESCs The battery also fits the plug of the charger This was needed in order to charge the battery Using a voltage meter a reading was obtained when the battery was drained and the voltage was less than 11V Next the team plugged the battery into the charger and allowed it to charge until it was complete After unplugging the battery from the charger it had a voltage of 12 6V The temperature was something that was monitored when first using the battery This was done while the battery was charging and discharging If the battery got above 50C when it is discharging then the load would be pulling too much current for this battery A higher rating battery was not necessary to obtain Charging was done at a slower rate than the rate at which the quadcopter discharged it so the battery did not get very hot If it did then it would have been due to overcharging Some cheap battery chargers are known to do this If it was overcharged too long the battery wo
32. communication networks DTN is a virtual networking protocol that excels in areas where communication networks can tend to have long delays or disruptions The goal is to test the protocol in an active field setting in order to gain more experience with it as well as provide two quadcopters for later missions Currently the quadcopters developed in this project might possibly be used during some upcoming NASA missions such as the Pavilion Lake Research Project in Canada The common goal of this project is to provide two quadcopters that can be reconfigurable on a mission by mission basis test and evaluate DTN as a practical protocol for future missions as well as develop a custom flight control system As shown in figure 1 below The two quadcopters as well as the ground station computer will form a three corner mesh network With this arrangement the goal is to illustrate DTN s ability to dynamically route messages and bundles of information to any member of the triangle either directly or indirectly as well as its ability to retransmit missing bundles aac 2 Wireless Network S Figure 1 System Overview Diagram 1 EEL 4915 Senior Design II Group 14 Final Document KIRC Project 2 Project Description 2 1 Motivation amp Sponsorship KIRC started as an idea during the summer of 2013 as a potential student project for a Co op student working for the Center Planning and Development Office at NASA s Kennedy S
33. could be seen on the plot as well as any inaccuracies with the data output even though there weren t many The other method was to represent the data that was coming out of the sensors as a three dimensional cube This method only worked for the gyroscope but it was good for determining if there was a drift in the sensor or jitter The ability to track movements was also well represented using this method Using these two methods the filter was shown to not improve the quality of the data while not increasing latency since the data was very clean to start with After the filters were decided to be unnecessary the PID control algorithms were tested This was done by using various steps to show that the control loops were providing the right compensation based on the input There are three parameters for each axis that were tuned in order to make the quadcopter stable The proportional gain the integral gain and the derivative gain for each axis was tuned Before assembling the quadcopters the control algorithm was tested by reading the controller s PWM outputs on an oscilloscope and verified that they were showing the right control action based on the input The full range of the PWM was tested To tune a quadcopter with a PID controller the team found the method that worked best was to set P I and D to zero and start with proportional with pitch The quadcopter was then tethered between two objects restraining one axis at a time Proporti
34. figure 3 The first and the second block diagrams discussed are primarily used to obtain a general idea of the constituents implemented in the quadcopter project while the following two block diagrams are to expose the fine details and contain boxes for each electrical component and the connections between them included in the project Specifically the prototype block diagram corresponds to the first phase in our quadcopter design and the PCB block diagram corresponds to the second and third phases in our quadcopter design which have integrated the microcontroller and IMU sensor components onto a printed circuit board The last block diagram the software block diagram provides insight into the programs which link the hardware components to each other Laptop Ground Station lt Other Copter Navigation gt Computer E Power Software System Algorithms 3 Avionics RC Computer Controller Motor Controllers Motors and Frame Figure 3 Individual System Block Diagram 34 EEL 4915 Senior Design II Group 14 Final Document KIRC Project The team s first block diagram shown above in 3 titled Individual System Block Diagram shows how each of the individual systems interact The individual systems included in this block diagram are as follows a ground station controlled by a laptop a navigation computer software algorithms a power distribution system a computer controlling the avionics a manual RC controlle
35. flying it was setup to log the orientation of the flight the whole time One of our team members then wrote down the time and orientation every 30 seconds This was also logged every 30 seconds by the microcontroller Once the flight was over the team then verified that all of the readings were correct The next step was to hardcode the orientation that the quadcopter should be at The team set the 113 EEL 4915 Senior Design II Group 14 Final Document KIRC Project orientation of the quadcopter to always face north Next the person with the controller then spun the quadcopter on the z axis to see that the green LED was only on when the quadcopter is facing north The GPS allowed the quadcopter to know where is on the earth This was tested by manually flying the quadcopter around and collecting GPS coordinates the entire time When the flight was over the team then verified that all of the data was correct The team then hardcoded in GPS coordinates for the quadcopter to be manually flown to This was done within range As long as the quadcopter was not at the correct coordinate the red LED did not turn on Once the quadcopter arrived at its destination a green LED turned on and the red LED turned off All of the tests that were performed demonstrate all of the necessary functionalities that the quadcopter needed for this project They were tested multiple times in different ways and areas Self stabilization was the basic function that had
36. followed by a split into two circuits a voltage regulator to drop the voltage down to 5 volts and a voltage divider into a unity gain operational amplifier for battery monitoring The desire was to have the voltage going in to the non inverting terminal to be less than 3 3 volts The operational amplifier was implemented in order to cut out the current and send this low current voltage signal to an available analog to digital converter on the microcontroller and measure the slope in output seen by the battery as the system was in flight This monitoring was done in order to force a landing of the quadcopter in the event of dangerously low power On the other line coming from the safety diode goes into a 5 volt regulator Just before this voltage regulator is a capacitor placed to maintain circuit in the case of a voltage drop and filter low frequency noise The 5 volts then flows into a 5VREG net that goes to connectors to choose either the ESCs as the power source or the battery itself for powering other system components as well as another voltage regulation circuit and verification light emitting diode LED In prototyping LEDs are important for signifying what stage of operation the system is in which is why one is implemented in order to verify proper powering of the system 77 EEL 4915 Senior Design II Group 14 Final Document KIRC Project This 5 volt jumper circuit was followed by a 3 3 volt regulator circuit Due to the fact that
37. for flight such as a frame four propellers four motor drivers called electronic speed controllers a battery the microcontroller and inertial measurement unit sensor components including an accelerometer gyroscope magnetometer and barometric pressure and temperature sensor used to determine altitude The first prototype phase consisted of the only the necessary components for stable manually controlled flight and used a manufactured over the counter Launchpad microcontroller and an external sensor stick The team used the first prototype phase to isolate any potential issues dealing with the stability algorithm and hardware issues related to flight After the team was confident that the quadcopter achieved manual controlled flight capabilities the team moved on to incorporating the PCB into phase two The third phase was obviously much more complicated compared to phases two and three and had additional features such as a separate navigational computer a camera to take pictures and fully autonomous flight capabilities The navigational computer was implemented using a Raspberry Pi and uses information from a GPS sensor to determine its location at any given moment in time Although the hardware of phases one two and three were somewhat different the fortunate fact of the matter remained that each phase had been built by adding features the design of the previous phase Although the components implemented in phases one and two were nearly id
38. individual s head makes up the so called level plane The action of leaning forward looking more toward the floor or leaning backward forcing the individual to look upward toward the sky corresponds to a change in pitch given the level frame of reference If this individual were to stand up straight again and either lean left or right he would change the so called roll of the level plane In this analogy changing the so called yaw could be accomplished not by leaning forward backward right or left but instead by turning this person s head either left or right This causes no tilt but changes the orientation of the plane to face a different direction To sum up the team s left joystick controls the thrust and the yaw and the team s right joystick controls the pitch and the roll of the team s quadcopter The team s first goal was to have a fully manual RC controlled quadcopter functioning perfectly then the team would move on to program the autonomous flight mode The RC controller would not be necessary after the team successfully programs both quadcopters to move autonomously but the team planned to keep an RC controlled override feature just in case the team wishes to leave autonomous mode This feature is accomplished with a switch on the RC controller to turn manual mode on or off The team has decided to include the manual override feature to protect the quadcopter from flying away or crash landing during the testing phase The t
39. is very similar to that of the first copter Both of the quadcopters will send information to and from each other s navigational computer and both of the quadcopters will send information to and from the ground station laptop The individual system block diagram visually embodies the information presented in the previous section section 4 design summary where one can identify the connection of the avionics computer to the navigational computer directly through the hardware as well as through 35 EEL 4915 Senior Design II Group 14 Final Document KIRC Project the software algorithms The individual system block diagram provides a solid foundation which can be expanded upon with the hardware block diagram The hardware block diagram shown below in figure 4 is similar to the individual system block diagram in that the team has chosen to use black arrows to show the relationship between elements in the diagram One main distinction is that in the hardware block diagram unlike the individual system block diagram there is a specification of the communication method used to transport data from box to box By looking at the diagram one may notice the indications USB UART PWM I2C and Wireless above or to the right of each black arrow All of these abbreviations represent different signal transmission protocols when communicating between devices For the most part each of the components considered in the research
40. most of the components on the board are powered by 3 3 volts if this portion of the system doesn t work properly then none of the system would be functioning properly For this reason the 3 3 volt regulator circuit was also given a power on LED In order to keep the other circuitry and this one from being altered by low to medium frequency noise capacitors were implemented on both sides of the 3 3 volt regulator As schematic design moved forward the best way of preparing for implementation was the use of any resources available A big resource was for some of this design was the suggested circuit design developed for the sensor stick used in testing as well as those design suggestions in the datasheet of many of the components In addition it made the system design more reasonable The design started with simplicity and moved forward to more complex network design from there The IMU sensor circuitry is shown below in figure 38 The circuits themselves were derived from some similar product from Sparkfun teses AM t gt f aS k Figure 38 IMU Sensors The next design to be implemented was the configuration of the sensor stick short the altimeter This circuit would be communicating through the use of I2C see section 6 3 and with this communication configuration the data and clock lines leading to the microcontroller needed pull up resistors for proper performance In addition when dealing with senso
41. of open source programs available to the public which can be found online As previously mentioned one of the team s end goals was to stitch together images from 40 EEL 4915 Senior Design II Group 14 Final Document KIRC Project the on board camera in order to create an aerial map of a specified area The team has taken advantage of previously existing programs to help accomplish this task Two other software components that were implemented on ground station laptop were the disruption tolerant networking 2 DTN2 daemon program and Telemetry Script both of were programed to directly communicate with the Ubuntu 12 04 OS on the laptop The Raspberry Pi used a different operating system called Raspbian Raspbian is an operating system specific to the Raspberry Pi hardware and uses the same Linux script language for communication the Raspberry Pi will have 3 software components namely DTN2 Daemon software Telemetry Relay software and software for the USB Camera Laptop x Pi gt Microcontroller w Ubuntu 12 04 u e w Raspbian w RTOS Linux Script Linux Script DTN2 Telemetry Image DTN2 Telemetry Peripheral Control Telemetry Daemon Script Stitching Daemon Relay aes Drivers amp Filtering amp Instructions Figure 7 Software Block Diagram The microcontroller will implement a real time operating software or an RTOS Its software was programmed in the C programming language Its software components included software for its peri
42. of the PCB microcontroller with no unforeseen difficulty The GPS communicated with the Tiva microcontroller through the implementation of UART serial transmission Due to the speed and desire for precision in the data received from the GPS unit this was a useful tool With the GPS being a unit that was to be purchased from a third party and not running off the same oscillators as the microcontroller the ability to configure transmission speed was necessary Also the use of a real time operating system RTOS which was based on a series of priorities made the ability to only allow data passage via a ready to receive bit prevented the loss of useful or skewed data UART was also implemented in communication between the Tiva Microcontroller and the Raspberry Pi model B UART is a form of serial communication to be implemented by way of the RS 232 standard commonly implemented by computers and integrated 100 EEL 4915 Senior Design II Group 14 Final Document KIRC Project circuits to peripherals devices The UART was a very useful tool due to the fact that data formats and transmission speeds were configurable The Raspberry Pi contained a powerful processor and was in control of designating to the microcontroller the location of the quad copter s next way point via a UART serial port The Raspberry Pi would additionally be communicating with the ground station that was used for the alignment and meshing of the grid images sent fro
43. of the design phase of prototyping the project They provided resources including Launchpad and expansion options a large technical support team and large level of production One of the benefits that was taken advantage of was the opportunity of having a Launchpad available for immediate implementation of testing and development This resource was valuable in that it provided an excess of ability that would not be needed in the final prototype but was of great use in the time between design and PCB fabrication This ability to continue forward in development instead of having down time while components were being placed and soldered was highly advantageous for a faster schedule with more time in the event of unforeseen issues arising Secondly TI was known for maintaining a very capable engineering staff filling the technical support department In the event of misunderstanding or confusion in the use of a product TI developed this department was available for extended office hours with a more in depth knowledge of TI s products than could be simply read from a user manual In addition to the assistance in the implementation of products these engineers were also an available resource for discussing troubleshooting options that may have been overlooked Due to the fact that Texas Instruments is such a largely used company they consistently produce a large amount of each popular product In the case of the TM4C123GH6PM microcontroller the lar
44. phase two and three s quadcopters more streamlined and significantly improved the performance of the system due to the proximity of the elements incorporated Comparing the prototype block diagram and the PCB block diagram illustrates the advantages of the latter design The remaining block diagram to be discussed regards the software implemented in the quadcopters 39 EEL 4915 Senior Design II Group 14 Final Document KIRC Project Raspberry Pi WiFi Bullet connector Soe a ras on UART Electronic Speed Electronic Speed Electronic Speed Electronic Speed Camere Controller 1 Controller 2 Controller 3 Controller 4 SMPixel Camera Board SV Power S00kV 270W Motor 1 5 Voltage regulator circuit 3 3 Voltage regulator circuit In Out Battery Monitor circuit ADXL345 Accelerometer HMCS883L Digital Compass TM 4C123G Microcontroller L3G4200D Gyroscope BMPO85 Digital Pressure PCB Figure 6 PCB Block Diagram In the software block diagram shown below in Error Reference source not found 7 on the ext page there are three different computer systems each of which have three components Notice that every block on the diagram has a black arrow to and from the subsystem with which it is communicating The laptop was equipped with a Linux Script operating system specifically the OS called Ubuntu 12 04 This particular OS was useful in the amount
45. quite common The software created for this project would have to include some NMEA parsing code in order to extract important information from the GPS Power management in quadcopter systems was critical to keeping flight time adequate enough Many quadcopters and indeed the ones evaluated in the previous section used lithium polymer Li Po batteries for their primary power source The batteries for the KIRC project would have to be as lightweight as possible and still able to hold enough charge and provide enough energy to power all the devices and motors This meant that the batteries would need to have a high energy density and low weight overhead Lithium polymer batteries provided this performance in a small size and weight package Compared to traditional alkaline batteries Li Po batteries had a much longer battery life and larger power capability while not being too much larger or heavier Li Po batteries usually came in configurations where multiple Li Po cells had been linked in series to provide more voltage Each cell for a Li Po provided about 3 7V nominally when charged and quadcopters usually required 12V sources to power the motors So for this 12 EEL 4915 Senior Design II Group 14 Final Document KIRC Project project a 3 cell Li Po battery was be ideal Another thing to keep in mind when purchasing the battery was the battery charger that came with it When the energy stored in the battery became depleted the battery
46. software iii Ground Station Software Design iv Navigation Computer Software Design b Software and Hardware Implementation II i Software Ground Station ii Software Navigation Computer iii Mount PCB and Navigation Computer c 2 Generation Copter Testing i Test Autonomous Flight If Phase 3 Senior Design 2 Replicate Copter and Testing a Copter Integration b Copter Testing i Test Joint Autonomous Flight c Buffer Time Aug 19 Jan 6 Aug 19 Oct 18 Aug 19 Sept 6 Sept Ist Oct 1 Sept 1 Oct 18 Sept 16 Oct 1 Oct 1 Oct 18 Oct 4 Nov 15 Oct 4 Oct 25 Oct 4 Oct 25 Oct 18 Nov 15 Oct 18 Nov 1 Oct 18 Nov 15 Oct 18 Nov 15 Oct 18 Nov 15 Nov 15 Dec 10th Nov 15 22 Nov 15 22 4 Nov 25 Dec 1 Dec 1 Dec 10 Dec 10 Jan 6 Jan 6 March 14 Jan 6 Feb 34 Jan 6 Feb 3 Jan 6 Feb 3 Jan 6 Feb 3 Jan 6 Feb 34 Feb 3 March 14 Feb 3 March 14 Feb 3 March 3 March 3 14 March 14 31 March 14 May 2 March 14 31 April 1 April 14 April 14 May 2 1 Round Parts Acquisition Includes Microcontroller IMU and GPS part 2 4 Round Parts Acquisition Includes Quadcopter Physical Parts This Milestone Outline Does Not Include Most Recent Dates and Scheduling 120 EEL 4915 Senior Design Il Group 14 Final Document KIRC Project
47. system to be interpreted These commands will be translated into instructions that the flight computer can understand in bite size pieces Some of the commands will be single step while others may be multiple steps Commands such as hover land change altitude return home or fly to a location will be sent almost directly to the flight computer without much alteration The single step commands are mostly setup as safety instructions that can change the state of the flight computer state machine in the case of an emergency The image an area command will be done using multiple 65 EEL 4915 Senior Design II Group 14 Final Document KIRC Project steps This will be done by making a bread crumb trail of coordinates to fly to that act as way points for the quadcopters When flying both quadcopters they may also communicate position and other information to each other while in flight so that each may optimize path dynamically One of the commands that will not be translated for the flight computer is the take a picture commands This command has no need to be routed through the flight computer as the camera system is connected directly to the Raspberry Pi While the Navigation computer is parsing the user commands the system will also be processing the data from the camera and the flight computer This data will be stored on the SD card as well as transmitted in real time during flight The imagery however will likely not be sent dur
48. the axes The magnetometer measures the heading of the quadcopter by using the earth s magnetic flux as a compass 58 EEL 4915 Senior Design II Group 14 Final Document KIRC Project The gyroscope being used for this project is a rate gyroscope which means that is measures angular rate For the control system however the roll pitch and yaw angles are used to stabilize the quadcopter not the angular rates This means that the rates coming from the gyroscope must be integrated with respect to time in order to get the attitude Unfortunately it isn t as easy as just integrating the angular rates because it isn t the same thing as the angular velocity The angular velocity must be normalized before it can be used to find the attitude For this project a quaternion state estimator was used in order to fuse the accelerometer the gyroscope and the magnetometer data into on estimate attitude This quaternion estimate was then converted to an Euler angle estimate for the control system to use A quaternion vector is essentially a four axis unit vector that accounts for rotation as the fourth parameter Essentially by converting each of the sensors data accel gyro magn into a unit vector simple vector algebra could be used to add the three together and a specific weight could be given to each After doing this the value can be converted to Euler angles for use in the control system later After these values are solved for a
49. the battery voltage The lines from each ESC to Motors one through four are composed on three wires due to the nature of the input power of each brushless outrunner motor The lines from the Tiva C launchpad to each of the four ESCs are known as the radio connections and have three lines The conventional nomenclature for these three lines are the positive the negative and the signal lines In many radio controlled applications the radio connections go directly into what is called a servo which communicates with an RC controller The team s quadcopter project is significantly more sophisticated than an average hobbyist s design and because the team has connected the radio connections directly to the microcontroller these servos were not utilized The design allowed for the quadcopter to have potential for autonomous flight controlled by the Raspberry Pi The arrow from the Tiva C launchpad to the sensor stick consisted of two lines required by the communication method called I2C These two lines are the clock line and the master slave line The arrow between the Raspberry Pi and the Tiva C Launchpad as well as the arrow between the Tiva C and the GPS sensor also had two lines but will use UART as the communication method The two lines utilized by UART are the clock and the transmission receive line 38 EEL 4915 Senior Design II Group 14 Final Document KIRC Project 5000 mA hr LiPo Battery 15V ir i
50. the image the gray internal names of the signals should be ignored when looking at the purpose of each signal pin Figure 39 Microcontroller Interconnect Diagram When doing the design for this circuit there were a lot of resources that could be taken advantage of The most useful of these resources was the Tiva C launchpad that would be implemented during testing of the system When moving from testing with the implementation of a manufactured board to a designed circuit without the excess capability given on the launchpad it was wise to keep the system as close as possible so as not to cause back tracking in development However this program would not be implementing two microcontrollers as done on the launchpad simply because the system should only have the processing power to perform its mission causing understanding of the datasheet Even with the single microcontroller there were many pins that were left as no contact Due to the fact that the entire system was digital there was only one analog to digital converter ADC used for battery monitoring For this reason pins 7 9 and 57 64 were not used PE3 was the net chosen to watch battery activity A second factor when dealing with an entirely digital system was that there was a single ground plane allowing for all grounds to be connected together this included GNDA Pin2 GND Pin12 27 39 55 80
51. they start transmitting data so it is recommended to wait until packets are being received on the GUI before flying which could take a few minutes It is also necessary to log into the Ad Hoc peer to peer 117 EEL 4915 Senior Design Il Group 14 Final Document KIRC Project network before turning on the quadcopter This ensures that the Raspberry Pi will always connect properly to the network As long as these steps are done first the user should be able to wait for a few minutes and the interface will automatically start updating It was intended to make the quadcopters in this project autonomous and the user interface was designed to allow for that in future developments The user interface can be reconfigured to add or rearrange some buttons that would allow the user to input a boundary to be mapped or a coordinate to fly to Safety functions can be easily added that can force the quadcopter to take off or land So it was left pretty open for future development to allow for more functions and features for autonomous flight In conclusion the user interface was intended to be easy to use and easy to reconfigure The interface allows users to view telemetry and current location which creates a fairly interactive experience It is functional in all its aspects as the user can actually send the quadcopter commands to take images and send them and they work 118 EEL 4915 Senior Design II Group 14 Final Document KIRC Project 9
52. to be mastered before anything else can be developed for the quadcopter 114 EEL 4915 Senior Design II Group 14 Final Document KIRC Project 8 Operation Manual 8 1 Manual Flight In this section the overview of how to fly the quadcopter manually is given along with an explanation of the safety features of the quadcopter Quadcopters especially ones of the size developed in this project can tend to be very dangerous if users aren t careful Special care must be taken around the propellers and motors to avoid getting cut When flying special care must also be taken to avoid crashing the quadcopter Any crashing may cause mechanical failure of the frame or the propellers Controlling the quadcopter manually is done using the RC controller unit for controlling various parameters Figure 60 shows how the RC controller was setup for this project Notice that the joystick knobs on the left are used for controlling throttle and yaw and the joystick knobs on the right are used for controlling pitch and roll Next to the joystick knobs are little switches that are used for trim of each of the control parameters This is built into the receiver unit as a function for fine tuning of the parameters The controller also has a few switches on top of the controller as well as potentiometer knobs These are used for some of the safety functions of the quadcopter as well as the tuning process Figure 60 Turnigy Controller Unit Diagram 115
53. to respond to movement of the two joysticks on the RC controller In this context it is to be understood the word respond entails sending signals to each of the 4 motors through the ESCs Manipulating the left joystick upward successfully corresponds to an increase in throttle by increasing the speed of all four propellers Manipulating the left joystick from left to right successfully correspond to a change in yaw In order to understand how this was be accomplished one must understand that two propellers spin clockwise and two propellers spin counterclockwise Propellers spinning in the different directions are directly adjacent to one another and propellers spinning in the same direction are on the same axis on opposite ends of the quadcopter A change in yaw was successfully accomplished by increasing or decreasing the speed of two propellers spinning in the same direction The complexities of programming these functions become apparent as more details are exposed however these complexities seem trivial compared to the programming of the autonomous mode a reach goal that was not accomplished throughout the project Varying the right joystick up or down successfully changes the pitch of the quadcopter tilting the front of the quadcopter downward or upward respectively The word front is placed in quotations because there was two ways of orienting the front of the quadcopter as shown in figure 2 below 30 EEL 4915 Senior Design II Group
54. to the UORX receiving port Pin17 on the microcontroller Similarly the microcontroller transmitted from Pin 18 the UOTX along the PAI net to the RXA pin J5 4 J5 6 was a power control signal that could be used to turn off the GPS if desired Due to the fact that all sensors would be sending and transmitting data throughout the entire flight time this pin was disconnected in order to leave the sensor powered on The other UART connection was going to connect to the Raspberry Pi this was a much simpler connection due to the signals needed to be sent are so few seen in Figure 42 It will need to be powered by this PWB via the output of the 5 volt regulator output through X1 3 and the ground through X1 1 The microcontroller is very useful in that it has an opportunity to transmit through a universal serial bus or a UART signal transmission In 82 EEL 4915 Senior Design Il Group 14 Final Document KIRC Project this case it is better to send simple receive and transmit signals via PDS and PD4 net U6TX and U6RX respectively Raspberry Pi gy E oop pa 4 1 3 to USB for power PAQ TT XA PAI CUR XA Figure 42 UART Connections isconnect power on The last signals that were sent from the microcontroller off of the PCB were pulse width modulated signals that were to be sent to the ESCs Due to the fact the ESCs were pulling power through to the motors directly from the battery the power signals were only received as a reference 5V for the
55. to travel which will be the basis of the control system that will be used to navigate the quadcopters between points The distance between the two points is the error that will be minimized as the quadcopter moves towards the destination this is shown in Figure 31 The quadcopters will use the magnetometer to find the heading and make sure that the quadcopter is moving in the proper direction The speed at which the quadcopter moves between the two points will be capped and that value will be determined at a later time The control action to get to each point determined by the attitude stability control portion discussed a few sections earlier While flying between two points the quadcopter will also be using feedback to maintain altitude as well in order to prevent the quadcopter from falling 1 Input FREE Output Logic Attitude Feedback GPS Feedback Figure 31 Navigation Feedback Diagram 70 EEL 4915 Senior Design II Group 14 Final Document KIRC Project Most GPS units have a low bandwidth and a very low resolution for most commercial application With feedback coming in at only at a few hertz and the data being off by up to several meters tolerances must be made in order to make it work Since the current position of an object as determined by a commercial GPS unit can be off by several meters it is assumed that the final destination is a range around a specific point rather than the specific point itself This means t
56. used for lifting off and landing When the joystick was pressed right the quadcopter would begin to spin clockwise and when it was pressed left it would spin counter clockwise The right joystick controlled leaning forward backward left and right Leaning in a certain direction caused the quadcopter to move in that direction Pressing the joystick in any direction on the x y plane caused the quadcopter to correspondingly move in that direction Once all of the directions were confirmed functional multiple movements at the same time were tested This means the quadcopter would be able to perform x y and z axis movement at the same time even with rotation This was possible but at times made the quadcopter seem a little unstable When all of the above tests were successfully performed and all of the revisions have been finalized the quadcopter was flown outside This was done to test the quadcopter s ability to fly in situations where wind or other environmental changes were present First the team flew the quadcopter outside with some wind The quadcopter was pushed around by the wind but did not become unstable since the stabilization system compensated for any involuntary movements Next the team confirmed that the quadcopter could fly at a decent altitude and distance from the starting location Range testing was done at ground level The quadcopter was at rest on the ground and the team member with the controller walked way After about ever
57. was observed when there was signal This checks if incorrect data was supplied when there was no signal The six main NMEA sentences were verified with each other to make sure the data the GPS was providing was consistent The frequency at which each one occurs also was noted This helped decide which sentences to read the most or to reference from more frequently The GPS was tested when it was stationary so the latitude and longitude stay static and the speed was zero It was then tested while moving This was done in a car so the testers can use the speedometer as a reference The things that were checked during these tests were the actual current location speed direction changes in dilution of precision and active satellites Based on all of the testing the team found the optimal sentences to use for each state the quadcopter was in during the mission The Raspberry Pi communicated through UART but was not a sensor The only thing that was tested for the microcontroller was sending and receiving messages with the Raspberry Pi This was easily done by sending a number to the Raspberry Pi and having it double the number and return it The camera was attached directly to the Raspberry Pi and accessed ground station It was tested by the Raspberry Pi taking a picture with it every five seconds The camera was facing a clock with a visible second hand The pictures were stored on the SD card The SD card was removed and read from
58. which the quadcopters would take pictures become more complex to program at more unfamiliar geometries The navigational computer would determine the appropriate distance between photos taken based on the altitude specified A higher altitude would permit more space between consecutive pictures due to a larger area covered per photograph The quadcopter would ideally maintain a specified altitude and fly horizontally from one location to the next It would be convenient if the quadcopters did not have to stop and hover to take pictures but unfortunately the quadcopter cannot take pictures while traveling along its path without stopping since the camera is mounted directly on the bottom plane of the quadcopter The team considered an alternate design in which the camera dangled directly below the quadcopter but in this alternate design the force of gravity on the camera would force the camera s vision to look directly downward at all 32 EEL 4915 Senior Design Il Group 14 Final Document KIRC Project times After much contemplation the team decided against this design reasoning one major goal of the project aimed to have resilience toward disruption A dangling camera would be subject of unsuspected outside forces such as wind or surprise collisions The last and arguably most complicated programming would be generating two quadcopters working in tandem This task was impractical due to the implications of both quadcopters communicatin
59. withstand dropping on the ground from a small height of about 3 to 4 feet While being able to withstand a large drop would be desirable it is not realistic within the design constraints of the project The quadcopter s climb rate and cruising speed needed to be adequate enough that the navigation of a large area could be done without too many charging waits The quadcopter had to be able to fly in light winds of 0 SMPH and still be stable enough for autonomous navigation The maximum flight altitude had to be around 100 feet from ground level in order to provide adequate imaging range All these requirements make up the performance characteristics for the quadcopters in our project While these characteristics are important some of these requirements are more important than others The main hard requirements are the flight time flight altitude and wind requirements All the other performance requirements are less critical as long as they appear to be adequate For this project the team had certain requirements on the parts used as a result of the NASA part of the project for a list of reasons for each part see Research and Preliminary Design in the next chapter The reason behind using some of these parts can be a requirement from NASA or the team s requirement in order to gain more experience for example NASA has the requirement that the team uses an embedded Linux platform as the navigation imagery computer This requirement is for two re
60. 2 4l Hardware Operatorii cess ae Eaa casey sete iA aa aaa Aa E ai ERSA 22 42 SOM Ware OPeraliOne irri eeaeee teniti AE EEE EEEE AEAEE EESE ET AEE ETA ERE AERE EE saecnaccieseers 30 5 Detailed System Design and Analysis ssseesseseesresrserssrrsrssrrrensrnsrrstrerintinsrntinstatnstustrstrntnntentnrensensteset 34 SA Det iled Block Diagrams acioni nei a eee e eea i aAa aaraa Wieraakerseonetesse 34 5 2 Flight Computer Software ccsssssssscsssssseesesssceecseesseesssesseeeeseessessesceoeassecesecasoesesseesseeseeeees 42 5 3 Flight Stability Control System cece eeeeseesceceaeceaeceaeceaeeeseeeeeeeeeeseneseaeeeaeesauecaaecsaeeeaeenaeees 54 5 4 Autonomous Navigation amp Navigation Computer Software ceceeeeseeseeeseeseecssessaeeeeeeeees 63 5 5 Imagery amp Network Architecture 0 0 cece csseessecssecseceseceaeceseeeeeeseeeeeeseaeseaeeeaeesaaecaaessaeenaeeeaeees 72 5 6 Electrice Design amp Schematic cc ccscsscscssocesssetsssescseesseesseeseesssessteesscssecocesssessscuseetesseesseenteeens 77 S272 Ground Station OVERVIEW 4 aves ses ep cailceesabas ever anena iatan edse hasedastegsceesdeguioonsts EKE AEAEE KSA EEEE Ean 84 5 8 Physical Design amp Layouts senan sect eved eaennes dace aiee AEE Naa Ea RENTE EE ua riae 89 6 Prototype Construction amp Coding ce eescescesscesecesseeseeeseeeseeseeeeeaeecaeecaeecaaecsaecaeseaeseaeeeeeeeeseseeeeneeegs 94 Gal gt Parts ACQUISITION E E E E E A E E EA 94 602
61. 5 Senior Design II Group 14 Final Document KIRC Project 5 5 Imagery amp Network Architecture In this section the design of the imagery system and the network architecture are given Although each of these topics is slightly different they are both going to be implemented on the same system The imagery system and the DTN2 application will both be running on the guidance computer the Raspberry Pi Both are low priority applications that run when the processor has time for them The DTN portion of this section includes the overview of how DTN2 works how implemented in the project and how it is called in a program One of the major bonuses of the Raspberry Pi is the never ending availability of extra hardware add ons The Raspberry Pi has a camera system available to it that plugs straight into one of its ports and works relatively well The five mega pixel camera module was specifically designed to work with the Raspberry Pi The Raspberry Pi can even address it using the operating system file system of attached devices There are built in APIs for accessing the camera and taking images and video which make interfacing to the camera module simple and easy When the camera is mounted images can be retrieved and stored on the SD card of the computer Overall the goal was to keep the imagery system as simple and cost effective as possible while still achieving the major goals of the KIRC project When setup properly th
62. 6 With NASA providing most of the budget for the team the government shutdown slowed down the acquisition of parts that was to occur from late September through late October Some of the critical parts the team ordered themselves as they did not wish to delay the project any further Parts such as the Tiva C microcontroller and the 10 Degree of Freedom Inertial Measurement Unit were critical to the start of the software development so they decided to get the specific parts with their own money The team planned for another possible government shutdown looming in late January by planning to have all the necessary parts acquired by then so that the schedule will not be hindered by the possible shutdown 122 EEL 4915 Senior Design II Group 14 Final Document KIRC Project In summary the first phase building a first generation quadcopter covers from researching quadcopters to coding and testing manual mode Phase two making the quadcopter autonomous begins during Senior Design II During this phase we would like for our quadcopter to have an embedded Linux computer on board and be able to autonomously fly to location s The last phase replicating the quadcopter begins midway through Senior Design II In this phase our goal is to completely replicate the first copter and have them cooperatively image an area Not everything went to plan as things caused delays such as the government shutdown in October and several setbacks such as the con
63. Ah 5000mAh 6000mAh Flight Time Minutes 12 57857729 13 97619698 16 77143638 Weight g 513 552 623 Cost 57 15 65 03 64 75 Operating Temperatures C 45 90 45 90 25 50 Table 5 Comparison of Battery Size vs Energy Capacity Table 6 on the next page could be used in combination with table 5 above to consider additional aspects in design The 6000 mAh batter lacked the range of operating temperatures that KIRC needed to be capable of performing in Additionally the weight of the battery didn t provide a large enough increase in flight time to encourage the loss in operating environments The 4500 mAh battery was in the right range of temperature operation but in terms of getting an additional minute and a half of flight time for the cost of 7 88 only during replacement of the battery made the 5000 mAh battery the best power source This extra time was useful during the longevity of some parts when cold starting When looking at the description in comparison with the rest of the system parts it can be seen that the weight of the battery was much more than that of the other parts For this reason when two batteries were implemented an increase in flight time could be seen but it wasn t a large enough increase in order to be worth the increase to 66 of the motor capabilities just to maintain static flight A six minute increase in flight time could be seen however this increase in weight made the drive on the motors too la
64. Bm GS407 S P K Electronics Co 3 3V 75mA 50 29 160 89 95 GP635T ADH Technology Co 5V 56mA 50 27 161 39 95 D2523T ADH Technology Co 3 3V 74mA 50 29 160 104 00 Table 2 Comparison of Select GPS Units The GP 635T produced by ADH Technology Co Ltd was not only slim and easily implementable it was also cost effective at 39 99 each half the price of other competitors The GPS receiver would work in coordination with the IMU in the process of flight while the IMU would be completely responsible for flight equilibrium This GPS receiver was accurate to 161dBm with a UART default baud rate of 38400 bps and the implementation of digital I O Environmentally this unit could maintain operational status between 40 and 85 degrees Celsius and less than 500 Hz of vibration less than the amount expected under the worst of conditions The accuracy and speed of communication with this receiver was crucial due to the nature of this project Each image and by extension movement needed to be precise in order to get a good mapping of the area and accurate autonomous navigation in the future routine The power needs were relatively small but we sacrificed a small bit of battery life for the precision of such a component with 4 75 to 5 25 power supply needs with max of 56 mA current which in comparison to the rest of the system would be close to nothing As packaging went this component only sat at 8x35x6 55 mm this assisted in keepin
65. Board 7757731 2 34 95 69 90 Ground TelStation Laptop N A 1 N A Quad PCB_HW Microcontroller Standalone 2 Accelerometer 2 Gyroscope 2 Magnetometer 2 125 EEL 4915 Senior Design Il Group 14 Final Document KIRC Project Altimeter 2 TOTALS All 671 22 Figure 65 Detailed Budget Bill of Parts In the course of the project there have been some unforeseen issues associated with the acquisition of some parts One as mentioned in the previous section was the government shutdown that delayed the procurement of the avionics parts Another issue was the federal ban on the government purchase of parts from China Unfortunately this really limits what technological parts the team can purchase One of the ways the team worked around this is that the ban is specifically related to computer parts manufactured in China but there is an approved list of manufacturers For the computer parts we used specifically from Texas Instruments and Sparkfun we filled out a request for investigation form for approval of parts from these companies These forms were approved right before the government shutdown and we were able to order these parts after the shutdown ended In summary the budget allotment of 1000 from NASA is more than enough to cover the cost of the project The goal to remain less than the allocated budget seems very realistic and attainable The initial estimate for the total cost of the project was
66. Bullet connectors J j Electronic Speed le Electronic Speed le Electronic Speed p Electronic Speed Pi Controller 1 Controller 2 Controller 3 Controller 4 Voltage regulator je kk kd si 5V 3 3V 900kV 270W 900kV 270W 900kV 270W 900kV 270W Motor 1 Motor 2 Motor 3 Motor 4 GP635T gt GPS Receiver UART Simple 10 for PWM y y TIVA C Launchpad Sensor Stick 12c Raspberry Pi Bjacks to motors ADXL345 HMCS883L WiFi Accelerometer Digital Compass Pulse width Gal modulator GPIO f P ART gt Data Camera 5MPixel a BMpORS wht Digital Pressure 13642000 Sensor Gyroscope 12c Clock m Figure 5 Prototype Block Diagram The next block diagram shown in figure 6 on the next page titled PCB block diagram is very similar to the prototype block diagram with the exception of a few key distinctions As one can see the PCB box in the diagram contains all of the components from the sensor stick in the previous figure figure 6 namely the accelerometer the digital compass also known as a magnetometer the gyroscope and the digital pressure and temperature sensor which was used as an altimeter and the voltage regulator circuit The GPS sensor is external in all three phases The use of a printed circuit board to embody all of the external components made the appearance of
67. Figure 41TARGETRST was connected to Pin38 of the microcontroller and resets it when the signal goes low The manual push button was spring loaded in order to consistently keep the signal charged with a capacitor to keep the noise from driving the signal low randomly The 3 3 volt was connected to a 10 kQ resistor This was done in order to keep constant feedback on the JTAG RST pin mm TE Figure 41 Microcontroller Reset Circuit The JTAG connector used ten pins to program the microcontroller seen on the center left of Figure 41 The JTAG test clock TCK at J2 3 and the JTAG test mode select TMS at J2 7 inputs signals were each connected to the 3 3V net though pull up resistors and connect to PCO and PC1 Pin52 51 respectively on the microcontroller The reference grounds for this connector were located at J2 5 9 8 The test data in signal at J2 6 and the test data out at J2 2 were shorted to PC2 and PC3 Pin50 49 respectively on the microcontroller The microcontroller received all the data sent by the GPS through UART as seen in figure 42 This connector was not only used for receiving and transmitting data but also for powering the sensor itself The reference was linked to the same ground plain in the circuit at J5 1 The GPS s main power was sent as a 5 volt signal via J5 2 and a 3 3 volt signal through J5 5 as a backup power source The transmit signal TXA coming from the GPS J5 3 was connected to the PAO net and connected
68. HG UNIVERSITY OF CENTRAL FLORIDA College of Engineering and Computer Science Knight s Intelligent Reconnaissance Copter KIRC EEL 4915 Senior Design II FINAL DOCUMENTATION Spring 2014 Group 14 Nathaniel Cain James Donegan James Gregory Wade Henderson EEL 4915 Senior Design II Group 14 Final Document KIRC Project Table of Contents 1 Introduction and Executive Summary cece cssecssecssecesecesseeeeeeeeeeeeeeeaeeeaeecaeecaaecsaecsaessaeeeaeeeeeeeeeeeeeeeeas 1 2 Project DESCHIUPU OM yc coe ennn n ai AE E EEEE gered EARE A E aa i i aR 2 2 1 Motivation amp Sponsorship cee ceeceeccesseeeceeeeeseeeeaeeeaeecaecaecsaecsaeceaeseseceaeeeeeeeeeeeeeeseaeseaeeeaeesaaeeaaes 2 2 2 GOALS amp ODECHVES nsei riisi iieo svee AAEE EEEE EEES EEEa CAE EN a Easan atakan 3 2 3 Requirements amp Specifications ee eeeeceeseeeseeeseesseecseecsaecsaecsaeceaeceseeeeeeeeeeeeeseeeseaeseaeeeaeeenaeeaaes 6 3 Research amp Preliminary Design horira i ia Aia aE EE AEEA A E Rae EEA CARR AE 8 Sel SimilatProjects amp PLOdUets sic aa e r A a ens a a nica A a a a ARa ie iaaea tt 8 3 2 Relevant Technology amp Strategic COMponents ee ee eee eeeeeseeeeeseeecaecsaeceaeceseceeeeeseeeeeeeeneeeas 10 3 3 Specific Components and Decision Factors eeeecseecsseseseseeeseeeseecsaecsaecsaecsaeeeaeeeeeeseeeeeeeeeeeeas 13 4 Design Summary calc eaea ean ERA Ee AAEE E AEEA O E Ae ER sie en e EOE dh Kana aaea E AE KEA E RA 2
69. HZ CRB 0xA0 Gain 5 MR 0x00 continuous Skip False 6 ms delay Read all data registers Send pointer back to first data register gain and 242 lt X Y Z lt 576 OR Exit lf gain 6 and 205 lt X Y Z lt 488 Passed OR lf gain 7 and 142 lt X Y Z lt 340 Gain True Skip True 67 ms delay Skip False Figure 57 Magnetometer Self test flow chart Once the self tests passed the digital compass was tested against a real compass The values sent to the computer would show the magnetic direction of the earth These would also change as the sensor was moved or rotated The sensor detects a magnetic field in three dimensions so the sensor was rotated in every possible direction North was consistent throughout the test The altimeter was tested the same way via I2C This required the team to use a tall building in order to see if the data provided from the device was accurate The first thing that was tested with the altimeter was to read the calibration data from the E2PROM In order to use the altimeter the algorithm discussed in Section 5 3 was implemented Once this was all working the pressure was compared to the actual pressure in the room with another device and by looking up the approximate pressure for the area the sensor was being tested in The pressure then was converted into height At ground level the pressure was read and set as a reference point of 0 The device was moved up a floor to se
70. KIRC Project 7 Prototype Testing and Evaluation 7 1 Microcontroller RTOS and Peripheral Driver Testing Making sure that the software for the Tiva C software was ready for flight required several phases of testing in order to show the predictability and accuracy of the software created and used There are several elements of the software that were tested individually before integrating them into a complete system The Real Time Operating System RTOS and peripheral drivers are the subjects of interest for this section The RTOS was running and tested before integrating the peripheral drivers The reason why an RTOS was used for this project was to prevent a single process from holding up the processor which would prevent other tasks from running Making sure that all of the real time events that occur when implementing a digital control system do not get interrupted or blocked is critical to its operation Before anything was done with any control algorithms or peripheral drivers the RTOS must be running and tested After installing the RTOS support software within Code Composer Studio the things that were tested was its ability to schedule tasks handle priorities and do preemption Each of these features was tested separately using programs that forced the operating system to do just these tasks Scheduling needs to be tested so that tasks can run at fixed intervals Testing this involved more than one task Initially one task was c
71. PCB during flight There were four ESCs being implemented as there were four sets of three pin output pins One signal was designated for receiving 5 volts a second for a ground reference and the third signal was the modulated signal see top left of Figure 42 The microcontroller had two motion control module with the ability to send 7 PWM signals each It was decided that two PWM signals would be sent from one module MOPWMO and MOPWM1 and two from the second module MIPWM2 and MIPWM3 These signals correlated to nets PDO PD1 PA6 and PA7 or pins 1 4 23 and 24 on the microcontroller respectively The other PWM signals that were used in this system came from the RC receiver In order to have the ability to user pilot the quadcopter the use of a RC controller was implemented and the microcontroller needed to receive the signals via a receiver unit In order to implement easier programming and testing of the system 6 receiver ports were implemented Each of these signal sets had three headers These signals included receiving PWM signal ground and a 5 volt power for the receiver itself These signals were linked to the microcontroller as follows RPWMI1 to PA2 RPWM2 to PA3 RPWM3 to PA4 RPWM4 to PAS RPWMS5 to PA7 and RPWM6 was only used for power with the option of later implementation or jumping of a signal as desired Due to this being the entire electrical design section it was necessary to explain a portion of the cable design that was
72. When the mission was over the laptop put all of the images together on the spot so everything needed to do a 88 EEL 4915 Senior Design II Group 14 Final Document KIRC Project 5 8 mission or even multiple missions was present The team also had the option to stitch all of the images together later and just get the photographs while out on the field The controller can optionally be located at the ground station during testing It only comes with one receiver so only one quadcopter can be overridden and manually controlled during the mission This is not essential to the functionality of the ground station or project Physical Design amp Layout The physical design and layout of each quadcopter consisted of integrating the mechanical components such as the frame the propellers and the motors with the electrical components This section will discuss the geometry of the parts as well as how they were physically pieced together The descriptions will be supplemented with pictures of models created using the Solidworks modeling program A brief narrative of the modeling process provides an initial platform to develop the physical design and layout Each of the components in the design was modeled individually on Solidworks TM The team decided to put forth great determination in creating a model that was completely to scale By modeling each component individually and combining all of the elements into an assembly a visual represent
73. a computer Each picture showed a time that was five seconds apart This test proved the Raspberry Pi can take pictures on command The receiver had individual wires connected to the microcontroller The handheld transmitter controller had to be used to test this part A program had to be written for the microcontroller to send information about what was being received from the receiver Each movement with the joy sticks on the controller were detected by the microcontroller and sent to the laptop All ranges of motion with the controller worked with any speed of movement There were no glitches This was important to test for reliability and accuracy since these movements were all mapped to what the microcontroller sends to the ESCs The final step in this section was to integrate the peripherals in the real time operating system Each peripheral had a different schedule and priority as discussed in Section 108 EEL 4915 Senior Design II Group 14 Final Document KIRC Project 5 3 Out of all the peripherals the accelerometer and gyroscope had the highest priority and scheduled rate The receiver was in second place followed by the altimeter The UART Raspberry Pi task had the second lowest priority but was still important since it tells the ground station where it is and what it s doing during the mission The actual frequency of each access to the peripherals was done experimentally The integration of all this was running through
74. ael Demmer am working on an engineering senior project with a team of students at the University of Central Florida We are using DTN2 in our project and need some background information on how DTN is implemented We stumbled on your paper from 2004 called Implementing Delay Tolerant Networking and was wondering if we could have permission to use some information and diagrams from it Specifically we would like to use the block diagram in figure 3 on page 6 in our report Thanks Nathaniel Actual Text Hello Michael Demmer I am working on an engineering senior project with a team of students at the University of Central Florida We are using DTN2 in our project and need some background information on how DTN is implemented We stumbled on your paper from 2004 called Implementing Delay Tolerant Networking and was wondering if we could have permission to use some information and diagrams from it Specifically we would like to use the block diagram in figure 3 on page 6 in our report Thanks Nathaniel Response demmer gmail com on behalf of Michael Demmer lt demmer cs ber Fri 11 22 2013 2 54 PM Sure no problem Actual Text Sure no problem 133 EEL 4915 Senior Design Il Group 14 Final Document KIRC Project Appendix C Datasheets Referenced 1 2 3 4 5 6 7 8 9 10 11 12 13 14 http www ti com tool ek tm4c123gxl1 http www ti com produc
75. ains of the PID and the sampling time Start l Init Params Kp Ki Kd T Assume x k 0 for k lt O Loop Get new Sensor Data 1 Calculate eIntegral e k 1 Ki e k T Deriv Kd e k e k 1 T Output Kp e k Integral Deriv Figure 24 PID Control Algorithm 61 EEL 4915 Senior Design Il Group 14 Final Document KIRC Project After the PID algorithm is done for each control input the compensator output has to be sent to the motors Unfortunately the most microcontrollers including the one used in this project don t have a port for interfacing directly to a motor Most microcontrollers do however have Pulse Width Modulation PWM which can be sent to an intermediate circuit which will translate the signal into a current that the DC motors can use The intermediate circuit called the electronic speed controller ESC sources a current to the motors that is proportional to the duty cycle of the PWM signal The PWM principle is shown below in Figure 25 V t Figure 25 PWM Signal The basic assumption is that the total time is always constant and never changes This means that the time on and time off the can vary but the addition of the two times must always stay the same This also means that the frequency is also held constant while the duty cycle changes ESCs can take this signal and use some transistors and passive filters to turn the signal into a proportional current for a motor The
76. ake their code or design documents freely available to the public which would ve made customization very difficult to do Another reason the team avoided going with a commercial quadcopter is that they tend to be quite expensive Most quality quadcopters that were able to perform under the requirements of this project were at least 500 or more With the budget around 1000 for everything buying two commercial quadcopters would have decimated the budget and not left any room for the other parts for imaging autonomous flight and the printed circuit board PCB Unfortunately these commercial quadcopters didn t really leave much in terms of technical ideas to draw from either With much of the technical details of the quadcopters not available to the public it made gathering information from these types of quadcopters impossible The only thing that was listed that helped was the performance characteristics Using this information the team was able to make realistic design constraints on the performance of the quadcopter under certain conditions In the website for previous electrical and computer engineering senior design projects at the University of Central Florida there were several teams of students who had made UAVs One in particular had a single rotor and was encased in a wire cage which made for a very interesting design Automatic Flying Security Drone or AFSD for short was intended to provide a UAV to security forces to patrol an
77. am could have bought a commercial quadcopter and called it their own but that wouldn t satisfy the UCF engineering requirements At the lowest level the team could also have built most of the sensors and computer hardware themselves but that would have been an unreasonable and unnecessary approach So in order to satisfy the requirements set forth by UCF and still remain a viable project the team decided to define on what level was the design to be done and what type of system to implement The project design level and system layout was determined by looking at what others have done and drawing ideas from their projects including successes as well as follies To get a good feel for what other ideas people had implemented on their quadcopter designs a formal market research needed to be done In this section similar products and projects were evaluated and a formal project design level was established One approach to the project was to buy a commercial off the shelf COTS quadcopter from the market and adapt it to the requirements of the project Indeed there were a lot of quadcopters available on the market from various sources such as Parallax DJI and Parrot Each of these companies produced quadcopters for commercial purchase but buying quadcopters from them would not have worked well in this project First of all when buying a commercial quad copter would make some parts of the project very difficult Most commercial enterprises do not m
78. ance when necessary James Donegan also an electrical engineering senior is the hardware and power systems lead He is responsible for quadcopter assembly power distribution wiring and PCB design James role is important in the assembly and integration of the quadcopter parts 126 EEL 4915 Senior Design II Group 14 Final Document KIRC Project James Gregory another electrical engineering senior is the control systems lead for the project His tasks include reading input from the RC controller setting up a feedback controller filtering the IMU sensors and providing PWM output to the motors This job is mostly software and will require much collaboration with the software lead James Gregory is also the backup hardware person behind James Donegan Wade Henderson the team s only computer engineering senior is the software lead for the project He is responsible for software version management and organization RTOS implementation and peripheral drivers Most of the other team members will have to coordinate their tasks with Wade because this project is mostly software Wade is also the team lead backup which means that he is team lead in the absence of Nathaniel During the first week the team formed and exchanged phone numbers and email addresses in order to ensure contact with each member in the group outside of class The team also formed a private Facebook group where they could post updates and links amongst the m
79. are design for the flight computer The sections that weren t necessary in the RTOS for the flight controller could be removed in order to save code space compile time and run time Figure 8 shown below and reprinted with permission from Texas Instruments provides some insight on how the software written for this project would run on top of the TI RTOS All the peripherals intended to be used in the flight computer software need to be declared in main before the TI RTOS BIOS Basic Input Output System is called The drivers that will be used for this application such as I2C PWM UART and interrupts will be declared in the main function before this call This allows the CCS IDE to only compile the drivers that are needed After the BIOS is called the RTOS the takes control of the software and all the tasks are initialized When the tasks are initialized any particular application that wants to use a driver it simply makes an API call to the RTOS which then queues the driver task to be executed TI provides peripheral drivers built into software packages called TivaWare so that users don t need to convert all the interfaces to low level binary themselves 42 EEL 4915 Senior Design II Group 14 Final Document KIRC Project amm APIs calls and callbacks Configuration data structures m Low level hardware register calls User Application and board speci gt TI RTOS User Application A RTOS sa
80. asons one being that the DTN2 software required software see next paragraph only runs on Linux and the other being that they want that part of the hardware to be interchangeable Other hardware requirements include the use of a digital camera on board the quadcopter that interfaces to the embedded Linux computer This piece of hardware was used for the imagery portion of the project and was connected to the embedded Linux platform directly One of the hardware requirements that came from an educational standpoint is the requirement to use a separate ARM processor for the flight stability and sensor processing The team wishes to learn more about how to program on an ARM processor in order to gain more educational experience The team also wishes to integrate the ARM processor sensors and support hardware onto a single printed circuit board PCB Hard requirements for the software have also been defined The team has certain software that they are required to use or that they wish to use NASA s software requirement is that the team uses DTN2 as the virtual network layer of our digital network This EEL 4915 Senior Design II Group 14 Final Document KIRC Project software will also be installed on the quadcopter s navigation computer as well as the ground station s laptop computer NASA also requires that we find or develop a software the stitches coordinate stamped images into a large composite image for the imagery part of the proje
81. ation of the prototype would assure that all of the parts chosen would fit together in a reasonable manner If there were any sizing issues in the model for example if the battery was too large for a chosen frame the team could take proper actions accordingly by either choosing a battery of different dimensions or choosing a different frame with a larger clearance Another option would be to rearrange the components in the assembly to fit a desired part After assembling all of the components and piecing them together in a functional Solidworks model the team made the decision to keep all of the components chosen in the design phase Figure 4848 below shows a diametric view of the assembled Solidworks model The orientations of the components in the assembly were chosen by the group in an effort to maximize performance Figure 48 Solidworks Model of Full Setup 89 EEL 4915 Senior Design II Group 14 Final Document KIRC Project The meticulous details of the assembly were difficult to see in the zoomed out picture seen in figure 48 above therefore more pictures were provided to reveal the assembly in further detail Figure 4949 below on the next page shows one of the wings and the parts attached to said wing Each of the 4 wings were nearly symmetric with the exception of the color Two adjacent wings were colored red and the remaining two adjacent wings were colored white The purpose of this color difference made the orientation o
82. autonomous For that section the team drew ideas from both the AQUALUNG and the AFSD project The flight path and control loops would be calculated in real time while obstacle avoidance would not be taken into account NASA desired the team to use a Raspberry Pi Model B an embedded Linux platform to test the DTN2 application as well as handle the image retrieval and telemetry relay The Raspberry Pi could also be used to set flight paths and communicate via UART with the microcontroller that was being used for stability Though the Raspberry Pi had more processing power than necessary for the project it was necessary for the testing that NASA had in mind for the DTN2 protocol The plan was to utilize the Raspberry Pi s extensive processing power to handle the option of future autonomous capabilities of the project In order to find the absolute position of the quadcopters the IMU was not enough The absolute position of the quadcopter was necessary for autonomous navigation To find absolute position was relatively easy through the use of a global positioning system GPS There were inexpensive light weight GPS units available on the market that could interface to a microcontroller using a UART serial port These units had a standard for communication called NMEA which was named after the National Marine Electronics Association This standard was almost always used in commercial GPS units which made the code for parsing NMEA strings
83. ave a call out of the processor relative time in micro seconds as well as schedule delays for finite intervals As mentioned before when one task is put to sleep the RTOS can switch to another task so that no processing time is wasted Some of the tasks shown in the figure below run at varying rates and intervals as the demands of the tasks require MAIN Entry Point INIT Peripherals z 12C Process Processor RTOS SysTick PWM Scheduler Idle Task SYS BIOS Timer Module Interrupts Update IMU Update Receiver Control System Update GPS Update Altimeter Update A D Task Task Task Task Task Voltage Task Get Raw IMU Pulse Interrupt Input amp PID GPS Input Read Temp Sample ADC Data Handler Calculation Buffer amp Pressure Raw Data Rx Pulse Motor Output Output Convert 2 Quaternion Processing And Safety Func Telemetry 2 Altitude GPIO UART Figure 9 Flight Computer Software Overview Diagram All of the tasks mentioned previously have a priority level assigned to them in the RTOS which allows the RTOS to make decisions as to what tasks to run first Each task has a priority based on the importance of that task in regards to stabilization Going off course not being at the correct altitude or having a communication error with the Raspberry Pi was deemed less important than stabilization Having an unsuccessful mission is much better than having the quadcopter crash due to a relatively unimportant task preventing an important s
84. be adjusted in order to make a controlled torque deviation This deviation will start the yawing the quadcopter in a controlled manner aa LS ig wf e J Figure 20 Quadcopter Spin Directions With the roll pitch and yaw conventions established the control system can now be explained There are several areas of interest to the control system that include Stability Overshoot Response Time and Disturbance Rejection The stability of a quadcopter is determined by its ability to cancel out any oscillation along any axis This prevents the quadcopter from spinning out of control and crashing The overshoot and response time of the control system is a fine balance between how fast the quadcopter will response to user input and the amount of time it takes to stabilize once it gets to a desired set point This is important for consideration because the control system must be responsive but not so sensitive that small changes will make large oscillations In order to control these parameters a feedback loop will be put in place to control them The feedback in the system will be done using the gyroscope and the accelerometer which read the angular rate and linear accelerations along three axes Figure 21 below shows the feedback control system for attitude stability 56 EEL 4915 Senior Design II Group 14 Final Document KIRC Project Digital Computer PI Motors Compensator Input 8 kT Output 4 t Quadcopte
85. black and red in color and correspond to the positive and negative terminals of the battery The team decided to use a standard convention and designated all ground wires to be black and all red wires to be red for all of the wires used connecting each of the components This convention was consistent with the red and the black 4mm bullet power and ground cables coming from the battery In phase one two and three the battery was connected directly to the electronic speed controllers the electronic speed controllers have a built in 5 volt regulator circuit In phase one the team decided to power the microcontroller directly from the output of one of the ESC s 5 volt regulator In phases 2 and 3 the team has integrated two separate voltage regulators a 5 volt regulator and a 3 3 volt regulator The team has decided to attach capacitors to the input and the output of the 5 volt and the 3 3 volt regulators in order to smooth out ripple and decrease noise The team also decided to add diodes from the output to the input of each voltage regulator The diodes protect each regulator in case the input power is cut off In a case where the input power cuts off the large capacitors at the output discharge their voltage and the diodes make sure the voltage regulator is not destroyed if the voltage is significantly higher at the output node compared to the input node This is accomplished because the diode provides a path flow from the output to the input bypas
86. booted up they connect via Wi Fi with DTN running on top to the laptop Next they fly to the area that is being mapped During the mission each quadcopter sends its status back to the laptop every second The information is stored on a text file in the Raspberry Pi that is sent DTN through the Peer to Peer network between the quadcopters and the ground station This includes its current GPS coordinates altitude battery voltage signal strength and the state the quadcopter is in The packets received and packet number will also be displayed from the ground station The interface only displays the latest packet A screen shot of the interface is shown in Figure 43 The file drop down menu provides another option to exit the program The edit drop down menu allows a team member to 84 EEL 4915 Senior Design II Group 14 Final Document KIRC Project select the computer he is using This switches between a Windows machine Linux on the same machine and Linux on a netbook The DTN parameters are different for each computer so this allows for one executable of the program to be used for all of the team member s computers that were used for the mission and testing The state that the quadcopter is in is the state machine used for the Tiva C microcontroller This is also the interface that is used to start the mission The user enters the four coordinates of the total area that quadcopters have to map The positions entered will display on th
87. both the RTOS and peripheral drivers test again with the peripheral drivers test within the RTOS test Preemption scheduling and priorities all worked with the peripherals This whole test section may seem inefficient since the RTOS and peripheral drivers could have been tested at the same time The reason for this method of testing was to avoid any uncertainty when something does not work right This alone saved time and prevented potential problems 7 2 Filtering Algorithms amp Control Loops Testing In this section the testing of the filtering algorithms and the control loop testing will be given These tests were performed after the RTOS and peripheral drivers were proven to work properly The least squares filter was shown to not have reduced noise from the sensors much and was not used to provide a proper estimate of position based on data since the data was already very clean The control algorithm was also tested as well as tuned For the least squares filter data coming out of the sensors was retrieved and plotted in order to show that the filter was working properly The sensors were read by the microcontroller where they were sent serially to a computer to be processed in real time as well as post processed As the data was coming in there are two methods that were employed to process the data In order to test for accuracy and response time MATLAB was used to plot the data in real time Using this method even small amounts of noise
88. ct As part of the team requirements a Real Time Operating System RTOS must be used on the ARM processor A digital control flight stability algorithm based on a discrete PID design was implemented and a filtering scheme to reduce the sensor noise In conclusion there were many requirements from both NASA and the team Some of the requirements were hard requirements while some were lighter ones that were less critical The requirements were basically split up into three categories performance hardware and software requirements Success again was determined by the ability to meet these requirements and specifications as well as the goal and objectives A summary of requirements and specifications is given below Requirements amp Specifications Summary 10 to 15 minutes of flight time per charge Stable flight in winds of up to SMPH Maximum altitude of about 150 feet from the ground Survive drops from 3 4 feet Integrate the ARM processor sensors and supporting hardware onto a single printed circuit board PCB e Must use DTN software EEL 4915 Senior Design Il Group 14 Final Document KIRC Project 3 Research amp Preliminary Design 3 1 Similar Projects amp Products There were many different ways to implement a quadcopter design and tough decisions on system design needed to be made For the KIRC project the team had to come up with a system and figure out how far down the design had to go At the top level the te
89. d copter the agility and mobility that was desired as well as optimized the flight time and cost Electronic speed controllers ESCs do the job of taking I2C PWM signal from the microcontroller and filtering the current to the motors in order to scale the thrust output of each motor e Needed to be easily integrated with the chosen motors e Needed to be capable of drawing at least 15 amps e Needed to implement I2C standard for communication For this component only two Afro ESCs were considered due to the fact that they were low cost and I2C standard These were both 20 amp ESCs one being slim and the other a box package shape Upon further search into the slim ESC it was found that the product was actually 30 amp capable only being toned down by the 20 gauge wire being used Do to this fact along with the higher price and more difficult package to implement the Afro ESC 20Amp Multi rotor Motor Speed Controller was chosen as the project moves forward When it came to a flight system it was only usable as long as the power source lasted For our project being powered by a battery the lifespan of this battery was the limiting factor on flight time The best batteries as far as lifespan that were within the budget of this project were lithium polymer LiPo for short Requirements for the battery were as follows e Needed to be rechargeable e Needed to have a rating of at least 4500 mAh e Needed to be rated for at least 200 W e Needed to
90. d into UTM Universal Transverse Mercator coordinates the two coordinates can be directly subtracted to find a vector between the two points in meters This method however only works for relatively short distances as it does not take into effect the roundness of the earth into consideration Assuming short distances it is possible to use this flat earth model in order to simplify calculations considerably 69 EEL 4915 Senior Design II Group 14 Final Document KIRC Project Each GPS coordinate comes with two parts the north and the east coordinates These two coordinates can each be stored as a floating point variable in RAM To find the distance north that the quadcopter must travel in order to arrive at the destination it must subtract the north coordinate of the current position from the north coordinate of the desired position as shown in the equation below Anorth in meters Ay Po north Pi north Similarly the distance east can be found by subtracting the east coordinate of the current position from the east coordinate of the desired position as shown in the equation below Aeast in meters Ax P gt east Pi east Using these two distances a vector can be formed that will guide the quadcopter to the proper location as shown in the equations below R in meters Ax X Ay Ria R Jx Ay Ax Ay Ax Ay i With this the vector can be used to find a heading and distance
91. dcopter into KIRC which used a PCB instead of a prototype board and was capable of wireless telemetry Phase three was to replicate KIRC naming it SPOK Secondary Partner of KIRC and get them both autonomous At the end of this project the goal was to have both KIRC and SPOK working cooperatively to image an area Unfortunately due to time constraints the autonomous portion of the project remains incomplete This project did however achieve stable manual flight telemetry transmission using DTN2 and two quadcopters with full flight computer PCBs were complete The project demonstrated full capability of the DTN protocol as an operable networking protocol in real time applications During phase 1 the plan was to achieve stable manual flight This was done using a microcontroller as a means of digitally controlling the stability of the quadcopter The microcontroller was using a Real Time Operating System RTOS in order to achieve a deterministic processing pattern In order to make the quadcopter dynamically stable the plan was to use a discrete time proportional integral derivative PID loop to control its roll pitch and yaw The inertial feedback of attitude data was achieved using a 10 degree of freedom 1ODoF IMU Once this part of the project was done a printed circuit board PCB was designed with all these previous parts integrated on one board During phase 2 of the project the goal was to make the quadcopter integrated onto one
92. design because the students would be able to use lab equipment for development before final design of the PCB was confirmed and fabricated Mr David Douglas is readily available for students to present their needs that he has in his stockroom at all times Another benefit was the renting of soldering irons without which the group would have been at a standstill at times 6 2 PCB Design and Assembly The printed circuit board PCB was the last stage in the development of design This was because the circuit needed to be proven to work properly before packaged for final prototype In order to avoid wasting funding and ruining the budget the circuit needed to be tested in as many small parts as possible For this project beginning with using the launchpad GPS IMU sensor stick Raspberry Pi Li Po battery and small regulation circuit Stepping away from the manufactured ICs save the Raspberry Pi and toward the completed design on a breadboard as the last step before sending the design for 96 EEL 4915 Senior Design II Group 14 Final Document KIRC Project fabrication In Figure 54 is the PCB as seen in EAGLE 6 2 0 designed up through Senior Design 2 Additionally Figure 54 shows the physical developed PCB used in the final design for presentation Note however that this design changed over time doing to problems found in the first version of the PCB T cafje m ha A ie fp I n fs I 5 El
93. document for our quadcopter project using a Tiva C series microcontroller We are using the TI RTOS to control it We wanted to request permission to use the RTOS figure User Application and board specifics on page 56 of the TI RTOS 1 10 user s guide Literature Number SPRUHD4C in our academic paper Best regards Wade Henderson Response 131 EEL 4915 Senior Design II Group 14 Final Document KIRC Project Permission to use figure from TI RTOS user s guide Bassuk Larry lt l bassuk ti com gt Tue 11 26 2013 5 19 PM To fotonphorces lt fotonphorces knights ucf edu gt Action Items Thank you for your interest in Texas Instruments We grant the permission you request in your email below On each copy please provide the following credit Courtesy Texas Instruments Regards Larry Bassuk Deputy General Patent Counsel amp Copyright Counsel Texas Instruments Incorporated 214 479 1152 Actual text Thank you for your interest in Texas Instruments We grant the permission you request in your email below On each copy please provide the following credit Courtesy Texas Instruments Regards Larry Bassuk Deputy General Patent Counsel amp Copyright Counsel Texas Instruments Incorporated 214 479 1152 132 EEL 4915 Senior Design II Group 14 Final Document KIRC Project DTN figure request cain n mark as unread Fri 11 22 2015 2 04 PM Sent Items To demmer cs berkeley edu Hello Mich
94. e PWM signals were going out to the ESCs therefore needed to be on the outskirts of the board and the UART connectors for the Raspberry Pi hence location of J2 and X1 However the GPS was on the opposite side of the board as the Pi hence the location of J5 When it came to the fabrication of the board itself there were a couple of options presented The most logical option was to have NASA develop the PCB internally The second option was to outsource the board to a low price fabrication company known as OSH Park Both of these were viable options that would have the ability to produce a product up to expectations that would work as designed in addition to the fact that both had great incentives to issue them this business 98 EEL 4915 Senior Design II Group 14 Final Document KIRC Project OSH Park is and has been a popular PCB fabrication center for UCF senior design students for many years This is mostly due to the fact that they implement fabrication of three boards allowing for option of ruining boards and still having extra at a lower price In many of these senior design projects a large amount of layers in the PCB were not necessary including the design for the PCB implemented on this quad copter and for this reason OSH Park offered a four layered board for 10 a square inch and a two layered board for 5 per square inch With space on the racks of the frame being small in size a four layered board will be used Another incenti
95. e Raspberry Pi and the GPS unit all take a supply voltage of 5 volts The team decided to create a custom connector for the connection between the PCB and the Raspberry Pi The custom connector was designed first in the schematic design The team added through four holes in the layout of the PCB which are have traces to the ground rail the 5 volt power rail and two through holes that connect from to the Tx and Rx UART pins on the microcontroller These through holes were designed in such a fashion that the holes were equally spaced apart to fit a standard header pin format After ordering the PCB the header pins were soldered into the four through holes on the PCB The team actually modified connectors taken from a rear projection TV these connectors were initially used to connect boards together in the TV The team used an X ACTO blade to make a 12 pin connector into a 4 pin by cutting and off the unnecessary plastic to precisely fit the four pin header array The team used a similar method to create custom connectors between the PCB and the ESCs and between the PCB and the RC controller receiver The IMU on the PCB obviously had traces to and from the 3 3 volt rail and the ground rail In the phase one prototype the IMU takes these two lines directly from pins on the Tiva C microcontroller launchpad Had the team tried to directly connect the battery directly to these devices they would be destroyed hence the need for a voltage regulator circ
96. e a significant difference This was compared to the actual altitude and repeated a few times to get a set of data to represent how precise the measurements were It showed a lower presser the higher the device was and vice versa This was good for general flight 107 EEL 4915 Senior Design II Group 14 Final Document KIRC Project but the most critical time that altimeter would be needed is during landing if the quadcopter was autonomous If the quadcopter descends too slowly it would take several minutes to land If it is too fast then the quadcopter would be damaged The ideal solution would have been for the quadcopter to slow down its decent as it gets closer The altitude that was tested the most was in the 5 to 0 foot range because that was when the quadcopter would be about to land Measurements were taken every inch from 0 to 5 feet to see how accurate the sensor was at such a low altitude The altimeter s datasheet claims that the altitude noise is 0 25m which this was verified inside and outside The microcontroller also forwarded the UART data from the altimeter to a laptop just like it did with the I2C testing The GPS was mainly tested outdoors so it had a line of sight signal to the satellites This was tested against the GPS in an Android phone and the data provided from Google Earth It was within ten feet of accuracy and tested in various locations The response time was tested on a clear day and a cloudy one The output also
97. e camera will be able to addressed in the dev directory on the Raspbian operating system The plan is to use this feature to take images remotely with the Raspberry Pi during flight The cameras will be facing down and attached to the bottom of each quadcopter in flight The mount will have to be done carefully as not to pose the risk of damaging the camera in flight Figure 33 shows how the mount might look while in flight The mount will be put under the battery which is underneath the frame of the quadcopter Electronics Battery Camera Figure 33 Quadcopter Imagery Mount Plan During flight the guidance computer software retrieves the images from the camera on demand stores them on the hard drive and if possible sends a sample set to the ground Images will be saved in JPEG form so that they may be easily be viewed by any 72 EEL 4915 Senior Design II Group 14 Final Document KIRC Project computer Image stitching is done on the ground computer by post processing the images Each of the images has a GPS coordinate stamped for processing later The ground station and the two quadcopters KIRC and SPOK will be connected on a digital wireless communication network The Raspberry Pi uses an IEEE standard 802 11g wireless card in an ad hoc configuration to form a mesh network The DTN2 application acts as the virtual network layer for the system Using this application gives the computers the ability to dynamically route lin
98. e daemon can now be run For this project the daemon must be running in the background so the DTN2 application is started up by typing in the command dtnd d o dtn log into the console The dtn log portion creates a log file for the daemon as it is running as a way of checking if there was an error This process must be done anytime the DTN2 application is restarted Once DTN2 is running there are several commands and applications that will be available to the user on the command prompt One of the most basic commands is the dtnping command This command requires a destination argument and when used it pings the destination repeatedly while waiting for responses This command is very useful during debugging and helps check for working links within a network Another command that is available is the dtnsend command This command sends messages files or timestamps to another node within a network The only downside to this command is that the other computer must be using the dtnrecv command before receiving any bundles The dtnrecv command is a blocking function that holds up the command prompt until the user decides to quit There are two application commands however that are more suited to this project than the normal sending and receiving 75 EEL 4915 Senior Design II Group 14 Final Document KIRC Project commands The commands dtncp and dtncpd are command console functions for sending and r
99. e final design 6 3 Parts Integration Through the use of this microcontroller gave an opportunity to control as many components as could be possibly need for system control and performance In any design the part integration is a big decision based on communication speeds and more often capability The Tiva TM4C123G H6PM microcontroller was capable of implementing Universal Asynchronous Receiver Transmitter UART Synchronous Serial Communication SSI Inter Integrated Circuit I2C and Joint Test Action Group JTAG communication with the pins specified in Table 7 below GPIO Pin Default State GPIOAFSEL Bit GPIOPCTL PMCx Bit Field PA 1 0 UARTO 0 0x1 PA 5 2 SSIO 0 0x1 PB 3 2 I2CO 0 0x1 PC 3 0 JTAG SWD 1 0x3 Table 7 Microcontroller Communication GPIO JTAG a common name for the IEEE 1149 1 standard test access port and boundary scan architecture would be the source of communication for programming the microcontroller JTAG was a fairly common choice for programming and communicating with specialized integrated circuits due to the fact that it was original implemented in boundary scanning for testing and troubleshooting PCBs With the Tiva microcontroller and the Launchpad that was being used for initial testing already JTAG integrated it assisted in an ease of integration as the project moved forward In the final programming implementation the Launchpad was actually used as the JTAG programmer
100. e fully tested with quality mission success it could turn out to be a waste of time to make the PCB With this in mind there was also the option that the developed design would have no issues or at most a couple vias could be implemented as a fix In addition to the waiting on availability of the fabrication center there was an additional lead time on the build Due to the fact that NASA commonly does very complicated boards compared to those involved in this program the average turnaround was five to six weeks This was not considering that with this project being a student design NASA would be more accommodating to deadlines After comparison of the two options for PCB fabrication centers as the project moved forward OSH Park was the chosen manufacturer This is in the case that NASA was unavailable to develop the PCB when prototyping has reached that stage If NASA had the availability to produce the board it would be unlikely that they would fund OSH Park doing the work After the manufacturing of the PCB it was found that certain aspects of the design were incomplete and needed to be routed using white wires These were issues that occurred due to net name labeling mistakes as well as misunderstandings of the powering of the 99 EEL 4915 Senior Design II Group 14 Final Document KIRC Project microcontroller After these simpler jumper wires were implemented there were no longer any issues seen in the implementation of the PCB into th
101. e highest priority Receiver Raspberry Pi GPS Figure 10 Peripheral Priorities The preemption feature of the RTOS allows the RTOS to remove a process while it is being processed This is useful when a process gets stuck a peripheral stops responding or when something more important needs to be processed immediately A process can get stuck for many reasons For example if the code being executed enters an infinite loop the processor would be held up processing the infinite loop and no other processes could run such as the gyroscope sensor and this could cause the quadcopter to crash 46 EEL 4915 Senior Design II Group 14 Final Document KIRC Project With preemption the RTOS allows the process to execute for a certain amount of time If the process is not complete when the time is up it will remove the process and allow the next scheduled task to execute This would prevent one task from stopping all of the other tasks that need to be executed on time Communication protocols such as I2C are being used to communicate to peripherals With I2C there is a START bit and a STOP bit If the peripheral device malfunctions during a read such as not providing a STOP bit then it could hold up the process Since the RTOS has preemption it is able to remove the process communicating with I2C and allow the next process to begin even if the peripheral device does not respond Safety features could be added here when this happens to let t
102. e image through an API call to Google Maps As seen in Figure 43 they are shown as markers in the image of the field being mapped This is useful for estimating what size areas at certain distances can be mapped When the enter key is pressed or the Update Map button the marker moves to the corresponding location The actual location of KIRC and SPOK are shown on the map with markers K and S respectively These are updated on the map every second with each packet automatically so the Update Map button does not have to be used The Map Center text field is used to enter the location to view on the map This is adjusted by using the four arrow keys on the right of the display Zoom In and Zoom Out allow the user to adjust the view of the map When the team is ready to start a mission they press the Log Time button which takes the time and date from the laptop and stores it KIRC and SPOK Take Picture buttons allow the user to take a picture on demand When the mission is over the team clicks the Save Log button which puts the time that was logged on the top of a text file and inserts all of the packets received into one file This also removes all of the individual files from the folder The Send Images button sends all of the pictures taken to the ground station This is optional since the team can also get them from the SD card in the Raspberry Pi The Clear Pi s button deletes all of the status files and pictures stored on the SD card
103. eam actually never accomplished this autonomous objective but the hardware of the quadcopter allows this function possible in future embodiments Now that a thorough understanding of the hardware of the avionics computer has been established a discussion of the intricacies regarding the navigational computer s hardware will provide insight into how the two interact The Raspberry Pi serving as the navigational computer has several connections to and from its peripherals The Raspberry Pi is connected to the avionics computer to a camera module to the wireless transmission adapter and to an SD card Although the quadcopter project does not utilize all of the external ports the chosen Model B Raspberry Pi is a powerful machine with two USB ports RCA video port HDMI out a 3 5mm audio jack a 10 100 Ethernet port 8 GPIO pins a UART i2c bus and SPI bus with two chip selects The SD card the wireless adapter and the camera module don t 28 EEL 4915 Senior Design II Group 14 Final Document KIRC Project require any hardware modification whatsoever however it should be mentioned that there was be a great amount of programming to incorporate all of these external devices The SD card connects directly to the underside of the Raspberry Pi similar to plugging an SD card into a digital camera or any other electronic device This SD card serves as extra data space and utilized when saving high definition images from the cam
104. eceiving respectively dtncpd is the listening function that can be set to run in the background while other tasks are performed After receiving a file it is put in a local directory dtncp is the complimentary function to the receiving one It sends files of any type to any of the nodes on the DTN2 network These two functions will be used extensively in this project as the standard communication functions From start to finish there are several steps that must be done to configure DTN before it is ready to use Figure 36 shows the summary of the initialization process of the DTN network for each computer This process will be streamlined by packaging it into a script for the computer to run that will be called on startup After running the script users should be able to start executing other programs such as the guidance system while the daemon will handle all the communications in the background Stop old instances of DTN Remove old databases Initialize new database Start new DTN2 instance Start dtncpd listening app Figure 36 DTN2 Startup Script Overview For the software on the guidance computers for the quadcopters as well as the ground station laptop there will be scripts that will handle all the functions of the DTN software as well as the other tasks that need to be performed A program on each of the guidance computers is used to periodically check if a file has been received or if one ne
105. ed by its output The net oriented organization was taken into consideration when placing the passive components Due to the size of these components being so small and so popular it could be seen how the crossing of so many of these lines would cause unnecessary need for additional layers For this reason the IMU sensors were set with those capacitors used for noise compensation and pull up resistors used The IMU sensors were also kept together due to the fact that by being implemented on the same sensor stick these sensors do not affect the performance of one another and they will all be using the same communication lines Additionally the accelerometer as well as the gyroscope need to be placed as close to center of the copter for best yaw and pitch roll stabilization The TM4C123GXL microcontroller was placed as close as possible to the center of the board with the orientation chosen to minimize cross lines and those traveling under the controller to reach the necessary pin i e the clock oscillator IMU sensors and connectors As for the purpose coordinating to the location this mostly referred to connectors with a few sets of other components When implementing this PCB in the final full system the connectors were as close as possible to the location of termination to prevent voltage drop It should also be clear that signals crossing over the board for any reason could have had effects on sensor data as well as desired outcomes in circuitry Th
106. eds to be sent and perform the appropriate action thereafter The ground station has a similar structure but it is actively reading the information from both quadcopters and displaying the information live in a terminal as well as a GUI In summary the imagery systems as well as the DTN2 network architecture overview is given Each of these systems are incorporated into the software of the guidance computers as well as the ground station The quadcopters use the network as a means to 76 EEL 4915 Senior Design Il Group 14 Final Document KIRC Project 5 6 relay telemetry and control the quadcopter remotely over a user interface The imagery is post processed by a third party application and is explained in a later section Electric Design amp Schematic In the initial schematic design for this project it was decided to begin with getting from the power supply to the test equipment including the Tiva C launchpad IMU sensor stick altimeter GPS Sensor and Raspberry Pi model B The easiest way to maintain drop voltage to an amount for powering microcircuits was through the use of voltage regulators The voltage regulator circuit is shown in figure 37 below Figure 37 Voltage Regulators and Battery Monitoring The 15 volt power came in through the JI power plug this came directly from the battery In order to protect the battery a safety diode was implemented This was
107. eeping the quadcopters stable in flight In researching quadcopter designs it was found that the majority of them used some form of microcontroller to control stability Finding the right microcontroller was difficult however with so many to choose from Usually the microcontrollers most commonly used had the ability to do floating point arithmetic support for interrupt driven software and lots of peripherals such as UART I2C SPI PWM and A D conversion In order to satisfy UCF requirements the team had to create a PCB which integrated a microcontroller This put another requirement on the microcontroller meaning that it needed to be available on a Launchpad for prototyping as well as a standalone chip for the final PCB prototype This also means that the microcontroller needed to have support for JTAG in circuit debugging Sometimes but not always projects would implement a real time operating system RTOS as part of the software on the microcontroller The advantage of this approach was that it prevented scheduling conflicts with the software and also ensured that the processing of the data occurred in real time Unfortunately RTOS software tended to be very large and required enough memory and processor speed in order to run The advantage however came in handy when implementing a digital control system Many of the quadcopter systems researched used a digital control system implemented on a microcontroller for stabilizing the quadc
108. eferencing figure 22 if all the motors on the left produced more torque than the ones of the right than the quadcopter would begin to roll right Conversely if the motors on the top half were producing more torque than the bottom half the quadcopter would begin to pitch up Changing the attitude of a quadcopter is critical to its motion as the angle at which the quadcopter is oriented will produce a force vector pointing out which will create momentum along that axis This principle illustrated in figure 19 is what creates motion for the quadcopter along a specific axis Figure 19 Quadcopter Free Body Diagram in 2 space 55 EEL 4915 Senior Design Il Group 14 Final Document KIRC Project The roll and pitch are relatively easy to control on a quadcopter but the yaw isn t The yaw in a quadcopter system is caused by the torques from the spinning motors One of the major things to take into consideration in the design of the quadcopter is that opposing motors should have the same spin shown below in figure 20 but the two different pairs of motors should have opposite spin The principle here is to counter the motor torques that can cause the quadcopter to spin out of control This method does not completely get rid of the rotation but it does reduce it enough so that the control system can eliminate the rest on the yaw axis In order to make a controlled yaw spin in any direction the speed of each motor pair can
109. elerometer This is 47 EEL 4915 Senior Design II Group 14 Final Document KIRC Project done by setting the data rate to 800 Hz 400 kHz transfer rate which requires the rate bits D3 through DO in the register BW_RATE to be 0x0D The accelerometer needs to be in normal power mode by clearing the LOW_POWER bit Bit D3 of the DATA_FORMAT register needs to be set to 1 so the accelerometer will output at full resolution and Bits D1 and DO need to be set to 0 in the DATA_FORMAT register so the range is in 2g Finally Bit D7 needs to be set to 1 in the DATA_FORMAT register to enable the self test When the self test has finished Bit D7 will be set back to zero The Accelerometer Block Diagram is shown below in Figure 11 Sensors Figure 11 Reading from Accelerometer The information that the accelerometer reads is temporarily stored in a memory management buffer called the FIFO The FIFO is set in stream mode by setting the FIFO_CTL register bits D7 to 1 and D6 to 0 This fills the latest 32 measurements and overwrites old information in the FIFO as new information comes in The reason why this mode was chosen is because the old data is obsolete as soon as new data is taken It does not benefit the quadcopter to know what the accelerometer history was because it is essentially streaming the new data into the microcontroller since the events will all happen in real time To read data from the accelerometer the microcontroller accesses reg
110. embers as an alternative form of communication Another online tool utilized was Google Drive a free online data storage service This tool enabled the team to share files from a central online point and keep file management more organized Despite all the technology making contacting and file sharing easier the team still needed a weekly time to meet and share project updates From the start the team decided to meet on the UCF campus every Tuesday and Thursday from 8 30 9 00AM during Senior Design I During Senior Design II the team met weekly during the weekends in the senior design lab in on weekends In order to help keep the software organized the group used a GitHub account This software allowed the group to keep track of revision management perform source control as well as merge code branches This software was instrumental to the flight computer software development It allowed the team to have multiple branches of code while still being able to keep track of each one and be able to commit changes and merge sections Since the code went through several revisions before being finalized having the old revisions easily tracked allowed the group to efficiently work through several coding phases Overall the team was well organized into task groups that are able to tackle the problems and challenges associated with the project The team s four members each with their own diverse skill sets have their own portions of the project that w
111. ensor read task such as the accelerometer from being read In 45 EEL 4915 Senior Design II Group 14 Final Document KIRC Project most cases if a quadcopter crashes it s due to stability assuming it s in a controlled environment In general it would seem intuitively appropriate to assign priority levels that match the frequency at which the task is scheduled since important sensors need to be read from more frequently This is something that had to be experimented with in order to get right The danger here is having an important task starve For example if the accelerometer was scheduled to be read from 20 times per second and each read takes 50 milliseconds then the processor would be infinitely busy and when the task of reading the GPS is sent the processor the operating system will suspend it since it has a lower priority than the accelerometer task The quadcopter would not be able to use the GPS in this case On the other hand if the GPS had a higher priority than the accelerometer and it came into the processor but took more than 500 milliseconds to perform then the accelerometer would not have been read in a long time and the quadcopter could become unstable and crash In the first example if there were only 10 reads per second then the situation would not occur In the second example the GPS would have to be quicker or scheduled differently Figure 10 shows the peripheral s priorities in order with the top of the pyramid having th
112. ent were tested and verified by rotating the gyroscope on each axis The range and magnitude of each movement was documented for fine tuning when it was on the quadcopter The sign was also verified When the gyroscope was rotated clockwise on an axis it was negative and it was positive when rotated counter clockwise The magnetometer has a self test option that was more involved than the accelerometer The magnetometer internally generates its own magnetic field by pulling 10mA through the offset straps The self test sends a pulse takes a single measurement sources 10mA to generate about 1 1 Gauss then takes a second measurement The two measurements are then subtracted and stored in the X Y and Z output registers The process of doing a positive self test is shown in Figure 57 CRA and CRB stand for Configuration Register A and B respectively The MR is the Mode Register During self test and flight register 2 MR was always in continuous measurement mode When self testing the gain would start at 5 and if the data registers were not within the required limits the gain was increased When the gain was increased the next measurement was skipped This is why there were two delays if the gain was increased If the gain exceeds 7 then one or more axes would not have passed the self test This test was done for both positive and negative biasing 106 EEL 4915 Senior Design II Group 14 Final Document KIRC Project CRA 0x71 8 ave 15
113. entical the team s integration of the microcontroller and the inertial measurement unit on the printed circuit board in phase two actually required less wire connectors but introduced some interesting hardware challenges which had to be resolved The hardware operation essentially consists of a description of the specific hardware used the connections between functioning hardware and a general explanation of how each component communicates with one another specific to each phase implemented As the design of the quadcopter project evolved the team had gone through a number of different configurations comparing and contrasting different ways to accomplish the same objectives One large obstacle to overcome had been deciding exactly what tasks the Raspberry Pi navigational computer was in charge of and what tasks the microcontroller avionics computer had been designed to handle This was important in the hardware design because the specific roles of both computer systems designated which components were connected to these computers Significant time had been discussed concerning how the GPS is to communicate with the ground station laptop and the Raspberry Pi There was some debate as to where and how the inertial measurement unit sensors were connected and also some discussion regarding how the system was to read the battery voltage The power distribution system of the hardware design had been pretty consistent throughout all of the three phases
114. era on board each quadcopter Ideally the Raspberry Pi would send the high definition pictures wirelessly to the ground station midflight This feature would have been useful for the scenario in which for whatever reason the quadcopter gets lost during a reconnaissance mission and cannot return home in which case the camera images taken during this flight would not be lost Unfortunately the team did not have be enough bandwidth to support this feature Instead the Raspberry Pi navigational computer receives pictures taken by the camera and stores them on the SD card attached directly to the SD port of the Raspberry Pi because the Raspberry Pi wireless communication the ground station did not have enough bandwidth to send these images The camera chosen is conveniently made specifically for the Raspberry Pi The camera module comes from the manufacturer with a 15 pin flexible ribbon cable connector attached to the board of the camera module The flex connector attaches directly to the MIPI Camera Serial Interface 2 CSI 2 interface connector without the need for purchasing any extra parts The flexible connector simply connects to the Raspberry Pi board by pulling on two tabs on the top of the connector and snapping into place Although the connections to the SD card and the camera module are relatively simple the connection from the Raspberry Pi to the microcontroller proved to be more complex In the quadcopter design the navigational co
115. ere integrated into the final project The team had multiple forms of communication file sharing and meeting options that are able to keep them organized and our information synchronized In the end it is the team organization diverse skills and the ability for the team to efficiently communicate and share information that helped them be successful 127 EEL 4915 Senior Design II Group 14 Final Document KIRC Project Appendices Appendix A References and Other Projects Researched 1 Hayes M H 9 4 Recursive Least Squares Statistical Digital Signal Processing and Modeling New York John Wiley amp Sons 1996 2 Ziegler J G and Nichols N B pages 759 768 Optimum settings for automatic controllers 1942 3 Franklin G F et al 3 3 PID Control Digital Control of Dynamic Systems California Addison Welsey Longman Inc 1998 4 http eecs ucf edu seniordesign fa2012sp2013 204 Final pdf 5 http eecs ucf edu seniordesign fa2012sp2013 g17 Senior 20Design 202 20Repo rt pdf 128 EEL 4915 Senior Design II Final Document Group 14 KIRC Project Appendix B Copyright Permissions We were not able to write Bosch an email we had to use this online form from http www bosch sensortec com en homepage contact_1 contact formedit contact form Country United States Telephone Number Requested Information V Data sheet Prices Distributors Other Pr
116. ere mainly driven by certain pieces of hardware or software that they wanted to implement for learning experience Success in this project was determined by the ability for the team to meet the goals and objectives of this project by the Spring 2014 Senior Design II deadlines A summary of the goals and objectives is listed below Goals amp Objectives Summary Lightweight and durable Ability to be manually controlled easily Dynamically stable in flight Flexibility of the software to be reconfigured on a mission by mission basis Consistent accurate and stable autonomous flight Two quadcopters that are identical to each other The user will also be able to address each copter individually for instructions to fly to image or hover at a coordinate Copters must individually and collectively be able to image a coordinate or area based on user input of four GPS coordinates representing a boundary to map Fail safe commands to send to the quadcopter to land on the ground or return home Ability to set home location easily The project should demonstrate the main features of DTN data hopping over a mesh network store and forward and bundle handling Use an imaging camera that is capable of reasonable clarity and is light and mobile enough to be mounted on a quadcopter Use an embedded Linux processor Off the Shelf not integrated as part of our PCB Use an ARM processor for the flight stability computer Use DTN2 software on the Navigat
117. erly DTN2 has the ability to route through each node dynamically to create a path to the destination when a direct route is not there This is especially ideal for situations when links between two nodes are cutoff or have intermittent connections While DTN2 is being used in this project it isn t the only DTN software available JPL has also developed a low overhead version of DTN called ION which is short for Interplanetary Overlay Network This name reflects NASA s future vision for DTN as a deep space telecommunications networking protocol ION is written almost entirely in C 74 EEL 4915 Senior Design II Group 14 Final Document KIRC Project and much like DTN2 is still very much in the development phase The reason behind using DTN2 instead of ION is because DTN2 is more developed and has more features that are useful to this project Before using DTN2 it must be installed on the host computer running Linux For the Raspberry Pis the process of installing DTN2 can take quite a long time but it can be shortened by cross compiling the software on a faster machine The software is available as mentioned from dtnrg com DTN2 comes with two separate packages that must be installed in order for the program to work One is the DTN2 application itself and the other is a support application called Oasys Oasys contains the support library for DTN2 that has the utility functions that the program needs While installing DTN2 there a
118. f the quadcopter more obvious and was especially advantageous when the quadcopter was flying at a high altitude As one can clearly see in Figure 4949 each wing had a motor and propeller pair mounted at the center of the circular section toward the outer end of the top face of the wing Also on the top face of the wing toward the inner end resided a purple electronic speed controller One may have noticed three small cylinders colored black yellow and red facing radially outward toward the motor These three cylinders represented the starting points of the three wires feeding power to the motor There were also three cylinders facing radially inward on the right hand side of the ESC in this figure The two cylinders colored red and black located on the top and the bottom in this figure corresponded to the wires going to the battery The middle cylinder with a larger diameter was a model of the polar capacitor on the ESC Although the three wires facing radially outward appeared to be cut off after a short distance it should be made clear that these wires in fact extended the entire length of the wing and connected to the three wires coming from the motor which were not shown Similarly the black and the red wires facing radially inward would not be cut off but in practice the wires would run to the positive and negative terminals of the battery It was common practice in mechanical engineering to leave out the wires when modeling The team decided i
119. fe APIs SYS BIOS APIs Driver RTOS Driver Interface a Se a Config structure definitions Driver Implementation Soa u Kernel lt lt 4 E Driver Library APIs TivaWare MWare lt A Low Level Register I O SYS BIOS Timers Boot modules Hwis PA Hardware Register Level Peripheral Specifics d Figure 8 TI RTOS Overview Diagram Courtesy of Texas Instruments The real time operating system is running on the Tiva C series ARM Cortex M4F microcontroller specifically the TM4C123GXL processor This particular microcontroller as mentioned before provided the necessary I O memory speed and support necessary for the project at a reasonable cost All the processing of the control system data and the sensor feedback needs to be done in real time meaning at a fixed rate This was another motivation behind using the RTOS in the project The flight computer system has several peripherals such as an accelerometer magnetometer GPS altimeter and gyroscope that need to be checked at regularly scheduled intervals Each sensor has a minimum time frame for the data to be sampled The reason the project needs an RTOS is so it can read all of the sensors in an efficient manor without tying up the processor and waiting for a response The most important features of the RTOS are scheduling priorities and preemption Since all of the sensors have to run on a predefined schedule some of them have to have to be dedicated tasks Each ti
120. for processing later The analog to digital A D pin on the microcontroller is used to measure the voltage of the battery after having passed through a voltage dividing circuit This is one of the lowest priority tasks of the RTOS in the flight computer software The reason for this is that this data is mostly used for telemetry and small passive control decisions The voltage of the battery is read whenever a GPS string is received which makes the bandwidth of this sensor about 5Hz This task was given a low priority in order to give the other tasks ample time for completion for the battery will be scheduled to run at the lowest frequency since the remaining battery life cannot be changed quickly The team is 44 EEL 4915 Senior Design II Group 14 Final Document KIRC Project expecting to have at least ten or more minutes of flight time so the battery only needs to be checked every so often to get a feel for how much flight time is left The flight computer software as shown as an overview diagram is shown in figure 9 As shown below all the major tasks of the processor are divided up for the RTOS to handle individually All the tasks go in and out of the RTOS as they are scheduled automatically The RTOS also handles situations where the processor would be idled although this situation rarely occurs Another thing to note is the SysTick module that provides timing services for the RTOS This module allows any task within the RTOS to h
121. g on the device of interest The team implemented be wireless transmission from the RC controller to the receiver on board and wireless transmission from the Raspberry Pi to the laptop ground station Although these two communication methods use the same radio frequency 2 4 GHz they use different channels in this frequency in order to prevent interference In phase one the RC controller receiver pins had female to female header pins to and from the microcontroller In phases two and three the connection between the RC controller receiver and the microcontroller was implemented with the custom connector The 26 EEL 4915 Senior Design II Group 14 Final Document KIRC Project custom connector fit perfectly into the header pins of the PCB on one side and on the other side the wires were stripped soldered and electrical taped onto female header pins which connected to the appropriate pins on the RC controller receiver Also on the PCB design the IMU and the microcontroller were connected through traces embedded on the board These copper traces on the board provide an ideal method of communication due to the minimal length of wire and low noise For the team s quadcopter project specifically there is a very high frequency of communication between the IMU and the microcontroller The short copper traces provide the least amount of room for error and aid in stabilizing the quadcopter during flight Having the hardware of the IMU and microcontro
122. g the payload of the quad copter compact At the price and precision of this component and its ease of implementation made it a clear choice for KIRC Electronically the frame was of little importance but it was a crucial piece part in the quad copter when it came to packaging and flight abilities When in actual flight the frame needed to withstand the environment and affects speed control and maneuverability based on rotor separation A frame that could be bought premade could come in a variety of dimensions materials and styles Below is a list of requirements for the frame 16 EEL 4915 Senior Design II Group 14 Final Document KIRC Project e Needed to be lightweight e Needed to be agile in motion e Needed to be rugged enough for most environments e Needed to not hinder system capabilities For this project it was between three different types of frames Due to the fact that finding a frame made of a lightweight material is not an issue part decision came down to agility precision and system integration The first option that was considered was a frame done by a previous UCF senior design group known as the Automatic Flying Security Drone In this project a cage in the shape of an orb was implemented Though this design was creative aesthetically pleasing and well designed for the previous group s requirements it didn t possess the agility and mobility that was expected for the missions KIRC will be involved in I
123. g with each other to avoid mid space collisions as well as coordinating the two copters paths to optimize surveillance paths In summary the software algorithms throughout the duration of the project progressively got more and more complex providing an difficult challenge for the team to tackle and all in all the team was able to have one stable manually controlled quadcopter which successfully communicates with the ground station laptop 33 EEL 4915 Senior Design II Group 14 Final Document KIRC Project 5 Detailed System Design and Analysis 5 1 Detailed Block Diagrams In designing the quadcopter project the team decided to begin with general concepts and move into more detailed system design In this section a few block diagrams are discussed Starting from basic block diagrams and moving on to more specific block diagrams paints a picture of exactly what subsystems were included in order to make the team s end goal of a quadcopter which images an area and sends real time updates to the ground station laptop a reality The team created three basic block diagrams titled individual system block diagram hardware block diagram and software block diagram After a thorough understanding of the basic hardware block diagrams this section delves into two detailed system block diagrams called prototype block diagram and PCB block diagram Lastly this section discusses a software block diagram The first block diagram is shown below in
124. ge or current but surprisingly it is controlled by the timing of these three phases with respect to one another In contrast to the motors the other electrical components on board are not powered by an AC signal from the ESCs but instead are powered by a DC voltage coming from the voltage regulator circuit The first portion of the power system established concerns powering the four motors Because the combination of the four total motors pull a relatively large amount of current compared to the other electronics on board the motors are the main cause of battery depletion The next portion of the power system is to implement a voltage divider circuit When designing the PCB the team decided to include two different sources for the 5 volt power line The first source comes from the ESC regulator as described above and the second source comes from the output of the 5 volt regulator Each of these two sources are mapped to two pins to the left and to the right of the main 5 volt pin A jumper is used for convenient switching back and forth between these two sources The logic behind having either source available is convenient for testing For example if the team wished to test the PCB the team could simply use a power supply set at 5 volts and a low amperage as opposed to using the battery which may have varying voltage thus causing some uncertainty if problems were to arise In fact when the team first received the PCB problems did arise however
125. ge quantity of supply allowed for lower cost to the consumer for both the microcontroller and the Tiva C Launchpad This allowed not only for low cost 94 EEL 4915 Senior Design II Group 14 Final Document KIRC Project reproduction of circuit design but also a hasty part replacement in the event of one being damaged In the case of many of the mechanical components being implemented in this design Hobby King was one of the best resources available Hobby King has a specialized inventory of parts solely for the development of multi rotor copters This offered the opportunity to compare prospective parts quickly and efficiently in terms of price and specification In addition there was also some additional suggestions for easily compatible parts that they also provided The frame motors electronic speed controllers propellers lithium polymer battery and controller were all procured from Hobby King One of the many benefits of Hobby King was the interface of the website The ease of navigation and the quick representation of important data with the option of additional information quickly narrowed the list of capable parts With the benefit of the initial search supplying not only an image name and short description it also rendered a price This allowed for a budget which is of great importance to this design as any engineering design for that matter to be maintained without a waste of time searching into overpriced piece parts D
126. grated the first prototype quadcopter will undergo rigorous stability maneuverability and durability testing under various conditions in manual mode only The details of the testing phase and the test plans associated with it are given in chapter 7 of this document The goal is to have the Tiva C microcontroller software completed and thoroughly tested before Senior Design II starts The second phase of the project started at the very beginning of Senior Design II With the quadcopter now capable of stable manual flight the team will shift its focus towards making the quadcopter integrated by creating a custom printed circuit board PCB and interfacing a camera to the quadcopter For this part the team will be split up into two separate task groups which will hopefully speed up the progress during this phase Two of the group members will be focused on creating a PCB while the other two will be focusing on creating software to make the quadcopter able to send data with the embedded Linux computer There was also significant work towards researching an image stitching software for use on the ground computer and also development of a ground station interface At the end of this phase there was doing more testing of the quadcopter but this time on perfecting flight controller The third and last phase of the project will be to replicate the first quadcopter and make them autonomous Starting midway through Senior Design II the team will repl
127. hat there is a bubble range where the quadcopter can say it has reached its destination In order to counter the low bandwidth of the GPS the maximum cruising velocity will be capped Capping the velocity will help prevent overshoot and inaccurate headings As the quadcopter approaches the target the quadcopter will also begin to slow down This will be accomplished by turning the quadcopter in the opposite direction of travel in order to counter the forward momentum This will slow down the quadcopter Figure 32 below shows the control logic for the point to point Navigation system This simplified logic diagram shows the continual looping to find the error vector and fly to that point The diagram does not depict however the complex speeding up and slowing down portions of the logic Start Navigation input desired Position 4 Get Current GPS Position v Find Error Vector l Within Yes Enc Nav Range Start Hover ps Keep Mov ng To Terget Figure 32 Control Logic for Navigation System The guidance and navigation portions of the project can be very tricky The plan is to use both the Tiva C and the Raspberry Pi to do these tasks respectively The Tiva C will have the guidance state machine that helps guide the quadcopter to specific points while the Raspberry Pi will have the task of navigating the quadcopter through all the coordinate way points and collect the data in the process 71 EEL 491
128. he default state during flight as it is the most stable when off the ground The next state can either be to fly to a coordinate or to land the quadcopter When flying to coordinates the default to return back to hover when the destination is reached After the quadcopter has completed its mission it will shift to a landing state where it will use an on board ultrasonic range finder in order to land the quadcopter on the ground The quadcopter will thereby enter the standby state and safe itself so that the battery can be removed and the flight data can be retrieved One of the most important features of the quadcopter guidance state machine is the emergency states that can be reached no matter what state it is in The quadcopters can either have a complete shutoff or enter manual mode when in flight as an emergency precaution in the case where a flight isn t going as planned The shutoff mode planned only for absolute emergencies will cut off signal to the motors and the quadcopter will drop to the ground from whatever height The problem with this state is that it will likely destroy the quadcopter if dropped from considerable distances which is why this mode is preferred not to be used It is however necessary in the case that the quadcopter starts 68 EEL 4915 Senior Design Il Group 14 Final Document KIRC Project taking a turn towards the wrong direction and starts going out of control The other state manual mode automaticall
129. he project challenging a custom flight control system was developed This deliverable ended up being the most challenging to accomplish but the team was able to get it done The team was provided unofficial sponsorship from NASA and an unofficial budget of about 1000 for certain parts With the unofficial budget provided the team was tasked with the construction of 2 quadcopters with potential for full autonomous capability a wireless DTN2 network a custom developed flight control system and the ability to send images to the ground for stitching Over the course of senior design the group researched designed built and tested a system that performed the tasks set forth by NASA This was difficult project at best and required application in the areas of control power software development operating systems and computer networking One of the important details in the project was that the team needed to make two custom built quadcopters capable of autonomous flight The reason behind making a custom built copter versus buying a commercial off the shelf COTS quadcopter was that the custom control would make the guidance portion of the project easier With COTS items many vendors will not make the software open source to the public This complicates the design of the guidance control algorithm significantly and also makes the software less predictable Another reason is that COTS quadcopters parts tended to be quite expensive With all this
130. he quadcopter descend gradually if it was not a critical sensor that failed If it was a critical sensor such as the accelerometer the microcontroller can try to restart the communication but in that case the quadcopter might be lost anyway Preemption is also useful to have in the RTOS for this project to stop a process if a time limit was exceeded or an error occurs in the process This can happen from time to time and it is very critical that the RTOS be able to handle this situation For example if the quadcopter is flying and gets hit by a bird or runs into an object just before it is about to communicate to the Raspberry Pi the microcontroller would have to stabilized itself as soon as possible in order to return back to a stable condition If the communication procedure with the Raspberry Pi normally takes one to two seconds that might be too long for the quadcopter to wait in order to regain flight control When a situation like this occurs the operating system will cancel all nonessential tasks preempt the current process and focus on stabilization before trying to communication with the Raspberry Pi again In order for this to happen code had to be written in the application layer for the essential drivers to take over based on the state the quadcopter is in The peripheral drivers were written with the help of the examples provided with the Tiva C microcontroller such as the I2C and UART examples Each device uses similar u
131. heading and the altimeter found the altitude Most IMU sensors tended to be noisy and biased when reading them directly so frequently people used digital filters to filter out the noise from the sensors The filters most commonly used to get rid of the noise from these sources were adaptive filters Adaptive filters actively changed based on optimization algorithms to most optimally get rid of noise There were two common filters of this type most commonly used in practice The Kalman Filter and the Least Squares Filter Each of these filters had advantages and disadvantages that came into consideration when implementing them First the Kalman Filter was a very accurate filter that provided excellent noise reduction for any application The downside of this algorithm is that it is very computation intensive and could bog down a computer system rather quickly when implementing it in an embedded application The other the Least Squares Filter used a computationally efficient algorithm that does a moderate job of getting rid of noise While this filter is not as accurate as the Kalman filter it was more ideal for computationally limited applications The input of the digital control system needed to come from somewhere Usually while holding still in flight the digital controller needed to just keep the error minimized while the input was zero In reality in order to move the quadcopter there needed to be an input from a controller For phase 1
132. however when additional components were added such as the GPS sensor and the Raspberry Pi in phase three 22 EEL 4915 Senior Design II Group 14 Final Document KIRC Project these electrical components required a ground and appropriate power line The hardware operation concerning the power distribution is the first topic discussed A physical description of each component is provided to aid in visualizing the system The battery chosen had 12 6 volts fully charged and 11 1 volts fully discharge and is a three cell lithium polymer nano tech in the shape of a rectangular prism with three cables coming out of the top edge One of the three protruding cables is a JST XH connector which is used to recharge the battery after depletion This recharge connector goes through an intermediate power adapter which is then plugged into a standard 110 to 120 volt wall outlet during charging events The team decided to purchase extra batteries in order to have spare batteries charged at any given time This strategy prevented the team from having to wait on charging batteries thus increasing the efficiency of the testing phase Additionally it was decided that having spare batteries during missions increases the potential area mapped out during the reconnaissance events It should be mentioned that the team must land the quadcopters and manually switch out the batteries before resuming their paths The other two protruding wires coming out of the battery are
133. icate the first quadcopter and begin simultaneous flight testing Also during this phase the team finalized the user interface attempted to thoroughly test the dual copter system and provided proof that DTN2 is working as NASA expected it to There was two weeks of buffer time during this phase to allow for scheduling delays 119 EEL 4915 Senior Design II Final Document Group 14 KIRC Project Below is a list of milestones and dates that was developed at the beginning of Senior Design II This list does not include lost time schedule delays or other disturbances I Phase 1 Senior Design 1 Build 1 Generation Copter a Research and Design I i Team Formation and Organization li Software Design iii Hardware Design iv 1 Round Parts Acquisition v 2 Round Parts Acquisition b Software and Hardware Implementation i Software RTOS Implementation ii Software Peripheral Drivers iii Software Sensor Filtering amp Control iv Hardware Assemble Frame amp Motors v Hardware Make electronics mount vi Use microcontroller to drive motors vii Use microcontroller to read RC controller c 1 Gen Copter Integration i Assemble the Copter ii Tethered Flight Testing iii THANKSGIVING WEEK OFF iv Buffer Time d 1 Generation Copter Testing i Test Manual Flight II Phase 2 Senior Design 2 Build 2 Generation Copter a Research and Design II i Design PCB and send for fabrication ii Research image stitching
134. imitations of the free software that was picked On the bottom of the screen is the command interfaces for sending and receiving information from the quadcopters The user can command any individual quadcopter to take an image and send it or send all the images or clear any databases When the quadcopter is done the quadcopter can save a log of all the telemetry packets received into a composite time stamped log file Other features of the GUI include the ability to switch between Windows and Linux easily under the edit tab This feature was built in during the development and debugging stage as a way to switch easily without having to recompile the code File Edit Data KIRC SPOK Latitude 28 606725 28 606192 Longitude 81 193321 81 192684 Altitude 108 94 Battery Signal State Packets Received Packet Enter Area to Map Latitude Longitude Map Center 28 606452 81 192981 Boundary 1 28 606984 81 193579 Boundary 2 28 606993 81 192281 Boundary 3 28 605858 81 193606 Log Time Save Log Send Images Boundary 4 28 605858 81 192276 Clear Pi s KIRC Take Picture SPOK Take Picture Figure 61 Ground Station User Interface Before the ground station starts receiving data the quadcopters must be initialized first It takes some time for the Raspberry Pis to boot up before
135. in mind it was in the team s best interest to design a custom quadcopters for this project EEL 4915 Senior Design II Group 14 Final Document KIRC Project While the Pavilion Lake Research Project is the potential initial application of this project for NASA it is also planned to be used in future projects as well For this reason the project system should be designed to be reconfigurable based on open ended mission needs There are some possible long term goals of the project that include possible modular payload design improved controller design and autonomous development This goal was not accomplished during the course of Senior Design but will be a future application of the project Overall this project was a fairly open ended one It had several goals which NASA and the team wanted achieve all within a single project The rest of this paper contains the design of the flight system developed and discuss the challenges associated with achieving NASA s goals Having discussed NASA s sponsorship and motivations behind this project the next sections will discuss the team s goals followed by the requirements 2 2 Goals amp Objectives NASA s primary goal in this project was to have two autonomous quadcopters that can image an area based on commands entered over a wireless network with DTN2 as the network architecture Based on these goals the team devised sub goals that were supposed to help them achieve these main goal
136. ind the values can be very lengthy and messy but it guarantees the most efficient control algorithm that works properly Finding the plant dynamics however would involve having to solve all the kinematic and kinetic equations of the system for all the parameters of interest and turning them into s domain equations The plant models can t neglect gravity and air resistance in the form of drag either These factors play a big role in the dynamics of the system The other method the Ziegler Nichols method is a well known method of finding the three parameters based on trial and error This method while much easier than the first still requires patience and time The trial and error process goes through several iterations before finally solving for all the parameters The end result of this method isn t guaranteed to be as efficient as the other method either This method also requires the use of a test setup where the system can be isolated to one axis at a time and be restrained from crashing Figure 23 shows the process that the Ziegler Nichols method uses to iteratively solve for each of the PID parameters Ziegler et al 759 Kp Ki Kd 1 step Ku 0 0 2 step 0 6Ku 2Kp Tu Tu 8Kp Figure 23 Ziegler Nichols Method Procedure for PID Tuning Note that the first step in the Ziegler Nichols method was to set the proportional and integral gains equal to zero The purpose of this step is to find the ultimate propo
137. ing flight and will likely be post processed after flight The user on the ground station will have access to GPS location altitude battery life velocity and state These will be processed in real time during flight on the ground station and be packaged in a graphical user interface GUD The flight path determination of the Navigation computer is perhaps the most difficult of the Navigation computer software The quadcopter will have to halt and hover during flight in order to take stable pictures So based on the altitude of the quadcopter and the horizon of the camera a reasonable assumption can be made as to how far apart the stops must be for imaging The determination of these stops will be shown in the next section In this section however it is important to note that stops must be made during autonomous flight navigation to allow for imaging With this in mind the flight path of the quadcopter will be determined based on what mode it is in In the fly to location mode the quadcopter will simply be instructed to take a straight path to its destination This path will not include any stops for imaging nor will it provide collision detection It is important to note that since the quadcopters in the KIRC project DO NOT have object avoidance software operators MUST NOT draw a path that has objects in the way This however can be avoided as the cruising altitude can be set above most objects during flight In the image an area mode the
138. intained on a Raspberry Pi model B This runs on a Linux Raspbian operating system a Debian variant operating system that is optimized for Raspberry Pi 102 EEL 4915 Senior Design II Group 14 Final Document KIRC Project hardware Through the use of this powerful system communication is be attainable with the microcontroller and the camera Programs for this system have the ability to run straight out of the command prompt and even upon boot up It falls upon this operating system to test out the DTN software during flight All code written on the quadcopter will be written in C This is a general purpose programming language that is one of the most popular programming languages used It is a mid level language above assembly that CCS can interpret and compile into hardware language before sending to the device With this language being the most dominant programming language as far as team understanding and implementation it was an obvious choice with which to move forward For the ground station GUI the software was written in Java There are several GUI builders available through the Eclipse developer IDE The software lead on the team is experienced most with this language and development environment so this was the most logical decision The user interface was designed using the interface tool but the background mechanics were programmed using the Java language itself 103 EEL 4915 Senior Design II Group 14 Final Document
139. ion The overlap of these pictures is noticeable if you look for distinctive objects Hugin looks for distinctive patterns in the picture that match 86 EEL 4915 Senior Design II Group 14 Final Document KIRC Project pre eves Le IF PY Tas N i d e f Figure 45 Individual Pictures Stitching Software Example It is essential to have the pictures overlap Figure 46 shows what image stitching would ideally be on the left This is the most efficient way to cover the largest area possible Theoretically this is possible if the pictures are all taken in order and there is no under or overlap Since this is not possible with the quadcopter at 100 plus feet the images will have to be overlapped The stitching software makes control points which represent the points on picture A that correspond to the same points on picture B The overlapping of the pictures can vary significantly based on focus angle and lighting Since the program uses an algorithm to try and find matching points this means the more overlap that exists between two pictures the more points can be found For this project the team uses around a 50 overlap on every picture in every direction like shown on the right side of figure 46 This reduces the amount of theoretical area that the quadcopters map but the quality is much better than pictures with gaps and misalignments Since the software is just using overlapping as the only method to determine where each
140. ion and Ground computers for our Network Layer Use an image stitching software that can stitch together a composite image from multiple coordinate stamped images Use a Real Time Operating System RTOS on our ARM processor for deterministic behavior Implement digital PID loops to provide compensation to motors for control Develop or use an existing algorithm for filtering the noise from the IMU sensors Use PWM as the control signal going from the ARM processor to an Electronic Speed Controller ESC for each motor EEL 4915 Senior Design II Group 14 Final Document KIRC Project 2 3 Requirements amp Specifications Now that the major and minor goals and objectives have been defined the requirements and specifications can also be defined These include particular performance criteria specific hardware and software schemes that the team wished to use A summary of all the parts software and performance requirements are given at the end of this section Performance of the quadcopter flight system is defined by the flight time per charge durability of the system maximum flight altitude rate of climb cruising speed and wind requirements The team wanted to aim for a reasonable flight time of 10 15 minute intervals before having to recharge NASA did not provide any specific performance requirement for this project but the team had some requirements that wanted to meet During flight the quadcopters had to be durable enough to
141. is ies seaies thaseases dacs coahediens decnossdsnsteessdacedscaaesasesduaicadisasieesi lesidecstnetiesates 126 Appendice Sii ep aristaa aval aie na ra A seats aaa ducsds ocongbessslecvanedslasuvvisechds classe saya desvdiecahareeeacacosaensusrersites 128 Appendix A References and Other Projects Researched 000 0 cesceseesecessceseeeseeeeeeeeeeeeaeeeaeeeaeeeaeeaaes 128 Appendix B Copyright Permissions esccesceeseeeseeeseeeseeceecaecsaecsaeceaeeeseseseeeeeeeeneseaeseaeeeaeeeaaeeaaes 129 Appendix C Datasheets Referenced cc scc cccsiscstsccshesscsstecnsssssessovtedacesscesuesesesdesscstseateessdostiassinetivetes 134 EEL 4915 Senior Design II Group 14 Final Document KIRC Project 1 Introduction and Executive Summary In this document the design analysis operation and testing results are detailed for the Knight s Intelligent Reconnaissance Copter KIRC project In the last section information about the team the sponsors and the budget are given in detail Copyright permissions references and the datasheets referenced are also included within this document in the appendices section KIRC is a UCF Senior Design project unofficially sponsored by the National Aeronautics and Space Administration NASA that includes two quadcopters that are able to provide imagery and telemetry to a ground station This project was intended to test and evaluate the up and coming Delay Tolerant Networking DTN protocol for digital
142. isters DATAX DATAY and DATAZ for the roll pitch and yaw types of motion respectively from the accelerometer This is shown in Figure 11 above Once the registers are read the FIFO automatically fills the registers with new data The microcontroller must wait at least 5 microseconds before reading the sensor again to ensure the new data has been fully transferred to the registers The gyroscope s I2C address is 0x68 if the logic level on pin 9 is low or 0x69 if it is high The slave address can be read from register zero in the gyroscope chip The three axis MEMS gyroscope has built in analog to digital converters for each axis that are 16 bits each The maximum internal sampling rate is 8 KHz To sample at this rate the DLPF_CFG digital low pass filter configuration portion of Register 22 has to be set to 0x00 and the FS_SEL full scale selection has to be set to 0x03 Now the SMPLRT_DIV sample rate divider Register 22 has to be set The formula below shows how to calculate the value needed between 0 and 255 48 EEL 4915 Senior Design II Group 14 Final Document KIRC Project Internal gyro sample rate sample RAE ou DERE DIV 1 Since a maximum sampling rate is desired setting register 21 to 0 will result in a sample rate of 8 KHz The table in Figure 12 shows the data output registers These half registers are all in 2 s complement format since the reading can be positive or negative Counterclockwise movement is positive in
143. ith a 32 bit 30MHz ARM Cortex M4 Processor It had plenty of flash ROM to hold the RTOS with 256KB It also had enough RAM to support any amount of data or variable necessary for the control algorithms with 32KB available The microcontroller also had support for multiple UART I2C SPI PWM A D and GPIO ports in hardware One very attractive feature of this microcontroller was its available RTOS from Texas Instruments The TI RTOS could be specifically optimized for this microcontroller The microcontroller was also low power drawing only 45mA in nominal mode according to the datasheet After a microcontroller was chosen the next step was to finalize on the IMU The IMU was critical to the flight stability control and without it the quadcopter would be flying blind The reason for obtaining this part early was to start reading from it developing filtering and control algorithms and getting an early start on the software development Choosing an IMU however could be very difficult They could be very expensive with prices being up to the thousands of dollars On the other hand going with an inexpensive unit could result in the compromise of quality accuracy and precision With all these compromises evident it was useful to provide a list of requirements specific to this project Below is the list of requirement that the IMU needed to meet in order to satisfy the requirements of the project e Needed to be less than 100 preferably les
144. ks and store forward bundles of data between any of nodes DTN or delay tolerant networking is made to excel in situations where links are intermittent or opportunistic The DTN2 protocol only works on the Linux operating system for now so this was the major reason behind using Raspberry Pis for the project DTN2 is a networking protocol that was developed recently and has been steadily growing popularity in the space industry It is an open source software freely available from dtnrg com and is written in C The software is still under heavy development but is Operational at this point as a viable networking option DTN2 is essentially an overlay virtual networking protocol that operates on the network layer as a virtual router The protocol holds support for convergence layer adapters such as TCP and UDP allowing it to be used with higher level applications It also comes with a daemon for use on the command prompt and several APIs written in C for use in custom programs For this project the plan is to use the daemon in the command prompt because interfacing with the APIs might prove to be too difficult for the team to manage The overview of the DTN2 software from an academic paper is shown in Figure 34 Tcl Console Management Interface Fragmentation Bundle Router Module Application IPC Registration Store Registration Manager Bundle Figure 34 DTN2 overview diagram 73 EEL 4915 Senior Design Il
145. l Saeed Senior Sales Manager NA Bosch Sensortec Email afzal saeed bosch sensortec com Cell 847 867 3795 Visit us at www bosch sensortec com Actual text Hi Wade Thank you for your interest in Bosch Sensortec products Please go ahead and use the flow chart example on pg 13 in your technical paper Also keep in mind that BMP085 is now EOL The replacement device is BMP180 for your designs moving forward Thanks Afzal Afzal Saeed Senior Sales Manager NA Bosch Sensortec Email afzal saeed bosch sensortec com Cell 847 867 3795 Visit us at www bosch sensortec com 130 EEL 4915 Senior Design II Group 14 Final Document KIRC Project TI RTOS figure request mark as unread fotonphorces Mon 11 4 2013 11 52 AM Sent Items Hello Texas Instruments am a senior majoring in computer engineering at the University of Central Florida My senior design team is currently writing our technical document for our quadcopter project using a Tiva C series microcontroller We are using the TI RTOS to control it We wanted to request permission to use the RTOS figure User Application and board specifics on page 56 of the TI RTOS 1 10 user s guide Literature Number SPRUHDA4C in our academic paper Best regards Wade Henderson Actual text Hello Texas Instruments l am a senior majoring in computer engineering at the University of Central Florida My senior design team is currently writing our technical
146. ller on the same chip mere millimeters apart permits the fastest possible communication making the quadcopter more responsive to unforeseen disturbances The first on board communication relationship discussed may be the most important because the avionics computer s role was to control flight and stabilization of the quadcopter It accomplished this task by taking in information from the IMU and sending signals to the input on the microcontroller The microcontroller processes these signals to determine the orientation of the quadcopter The IMU interacts with the microcontroller through a communication method called I2C This method requires two lines between the microcontroller and the IMU One of the two lines is referred to as the master slave line and the other line is the clock With information from the IMU the microcontroller sends a pulse width modulated square wave signal to each of the 4 motor controllers As mentioned above each of the 4 motor controllers takes their PWM signal and converts it to an AC voltage which goes to each of the 4 motors on the quadcopter Each of the 4 motor controllers have the capability of sending varying amounts of speed to manipulate each corresponding motor to first stabilize the quadcopter in flight then move the quadcopter in any direction in space One way to visualize this stabilization process is to picture one of the team s two quadcopters in midflight hovering perfectly in one location in space
147. ltage input cables to be obviously red and black in color and correspond to positive and negative inputs from the battery The single remaining input is a servo connector that would be attached to the microcontroller The servo connector does not supply power to the electronic speed controller but instead provides a pulse width modulated signal This pulse width modulation signal was designed to provide the electronic speed controller with a duty cycle which corresponds to the speed at which a motor should rotate Three wires colored black red and yellow serve as the output of the electronic speed controller One who does not have experience in robotics may be tempted to assume that the red and black wires connecting from the ESCs to the 3 phase brushless motors correspond to ground and high voltage lines similar to that of the DC input coming from the battery to the ESCs In actuality the 3 phase brushless motors chosen take in an AC current input This fact is important in understanding why the electronic speed controller is so vital in the team s quadcopter design The electronic speed controller takes a DC current input and a PWM signal and creates an AC current output Specifically each of the three output wires from the ESC to each motor carry an alternating trapezoidal wave at different phases compared to one another at any given time One may be inclined to believe the electronic speed controller controls the speed of the motor by varying volta
148. m the Quad copter Due to the fact that the mapping was not of great importance while in flight and was only represented as a whole the Raspberry Pi was communicating with the assistance of a WiFi card While in range all images were sent back to the ground station for image processing and when it should happen that the aerial vehicles fell out of this range the Raspberry Pi would store the image internally until a strong enough connection that could ensure no data loss occurred The implementation of Wi Fi was the best option for this means of communication not only because it was easily implemented on the Raspberry Pi but also because it had the ability to quickly send large files allow for higher quality imaging The Raspberry Pi would be taking these images using a specialized 5 megapixel camera that was made specifically for implementation with the Raspberry Pi itself Communication and data transfer between the camera PCB and Raspberry Pi was implemented by way of a 15 way ribbon cable This communication was done by way of camera serial interface CSI 3 which allowed for the higher resolution imaging I2C communication commonly referred to as I squared C was critical in the communication with all sensors save the GPS I2C has commonly been implemented in communication when managing low speed peripherals The fact that this interface is based on a master slave coordination between an open I O address on a microcontr
149. me a sensor needs to be read a flag is sent to the operating system to access the appropriate driver The most important sensors for the keeping the 43 EEL 4915 Senior Design II Group 14 Final Document KIRC Project quadcopter stable in flight are the accelerometer and the gyroscope sensors that make up the IMU system Using these sensors the orientation of the quadcopter can be estimated which is critical to the control system Each of the sensors must be polled at a fixed interval in order to base integral and derivative calculations on the control system as well as attitude determination based on rates from the gyroscope and accelerometer These sensors however have relatively high bandwidths which is why they need a dedicated task For this project the sample rate of the accelerometer and gyroscope were set to 100Hz which seemed to be adequate for the control system Another thing that is critical to the control system is the fusion of the IMU data which takes a large amount of computation time The RTOS has to allow for this computation time and make sure that the process doesn t get preempted prematurely Having only these two IMU sensors and the processed data associated with them is critical to keeping the control system satisfied which enables the quadcopter to fly level The magnetometer is not as important for stabilization as the other IMU sensors The magnetometer can be used to find the attitude just like the acceleromete
150. microcontroller could source The stick itself was also very small taking up only 1 37 by 0 42 of space Sparkfun provided a fair amount of documentation of this part for interfacing and troubleshooting The GPS was the most important part of the autonomous system With this part the quadcopters would know absolute position and be able to correct navigation This part just like the IMU could tend to be very expensive The GPS could come in varying sizes as well For this project a smaller GPS needed to be used that still had the signal strength to receive signal from even in the midst of the EMI caused by the motors Below is a list of requirements for the GPS unit Needed to have signal strength enough to overcome motor EMI Needed to be small enough to fit Needed to meet sensitivity requirements Needed to acquire fixed location within a short time Needed to be low cost A big requirement was both the speed to connect with usable satellites and the number of satellites desired to use Previously the standard was 16 channel but for this project a 50 channel was better for precision 50 channel was more precise due to the fact that the amount of channels correlates to the amount of satellites that could be used at one time Though there would not be 50 satellites designated to global positioning during the design of this project it would be able to use as many as were available The connection to a larger amount of satellites correlated
151. motors Since there was no useful datasheet for the receiver each pin was tested individually with an oscilloscope in order to determine the best way to receive the data The pins of the receiver output a pulse width modulated signal train where the falling edge of the current channel overlaps the rising edge of the next channel In order to process this all the pulses are setup on GPIO interrupt pins and the time is taken for each rising falling edge in the pulse train After the interrupts for each channel have been cycled they are disabled and the pulse input buffer is saved and a flag is set Every so often the receiver task will process the pulse input buffer and convert it into a control system input All of the peripheral drivers were made into functions that work with the RTOS and can easily be called upon anywhere in the application code for requesting data or sending commands Figure 16 is a quick summary of all the peripheral drivers Peripheral Interface Address Self test Accelerometer I2C Ox1D Yes Gyroscope I2C 0x68 0x69 No Magnetometer I2C Ox1E Yes Altimeter I2C OxEF OxEE No GPS UART N A No Raspberry Pi UART N A No Receiver Custom N A No Figure 16 Peripheral Driver Summary With the RTOS running and all of the peripheral drivers written the software foundation is complete Function and API calls are the primary interaction with the higher level flight stability and control code
152. mputer on the Raspberry Pi uses a UART to communicate with the avionics computer on the Tiva C Launchpad There are two lines for the UART communication which are known as a Clock line and a transmit receive line The team tied together input output UART pins from the avionics and navigational computer to accomplish this task Unlike standard USB cables HDMI cables or an Ethernet cables the team must put effort when tapping into the GPIO pins of the raspberry pi and the Tiva C microcontroller The team has decided to connect the UART pins of the microcontroller and the Raspberry Pi using single port female to female jumper wires This method is ideal in that the team only used a small number of pins on either GPIO ports on both computers The team decided against using a full ribbon cable for this very reason The only remaining component left to discuss regarding the hardware operation is the wireless USB adapter connected to the Raspberry Pi The wireless USB adapter connects directly to one of the two USB ports on the Raspberry Pi The ground station laptop has its own wireless adapter which communicates with the onboard Raspberry Pi on each quadcopter The team planned to use the wireless transmission to the ground station as somewhat of a status indicator for both quadcopters simultaneously The ground station is theoretically able to receive the following information from the both Raspberry Pis GPS coordinates of both quadcop
153. n addition this design would have issues in dealing with the environment at high altitudes due to the fact the aircraft would be blown off course in certain conditions The second option for a frame was a hex copter frame With this design we would have all of the agility speed and control needed for completion of any mission set before the aircraft This frame design was tossed however when system integration was considered Using a frame that would require not only four motors which were the main pull on the power source to begin with but six motors made this frame unrealistic with requirements set forth for flight time After these considerations it was decided that a lightweight quad copter frame would be the best for system integration into the KIRC project This frame gave agility and mobility enough to counteract any environmental issues seen and had as little pull on the battery as necessary for mission purposes The frame had reasonable size dimensions 450mm x 450mm x 55 mm with motor mount bolt holes preset for ease of implementation and lightweight 270g 1 04 Ibs Motors carried a lot of weight when deciding the aeronautical capabilities of this aircraft An analysis of flight and flight time capabilities with each of the motors available was the best way to narrow down the options After the motor was chosen then the ESC was decided by implementation abilities with selected motor e Needed to have thrust capabilities to h
154. n active low signal that signified for the microcontroller to come out of hibernation mode In order to keep the system from ever falling into hibernation mode the WAKE signal as connected to the ground plane The microcontroller didn t have an internal timing mechanism For that reason an external oscillator crystal was needed to be implemented in order to maintain synchronous timing The suggested oscillation frequency of the crystal was the 16 MHz For this reason a 20 pF crystal oscillator is connected to OSCO the main oscillator crystal input and OSC1 the main oscillator crystal output P40 41 respectively This was seen in center right of Figure 39 When powering the microcircuit it was important to filter as much noise as possible on the power source line For this reason there was a chain of capacitors seen in Figure 40 that range from 1 0 micro farad to 0 01 micro farads The larger of the capacitances were used to filter the low frequency noise and protect the source from a slow drop in voltage The lowest capacitances were used to assist in maintaining a consistent power while experiencing high frequency additive white noise Figure 40 Noise Filtering Capacitors 81 EEL 4915 Senior Design Il Group 14 Final Document KIRC Project Another small circuit deemed necessary for the system was a system that could reset the system in two ways both manually and via JTAG programmer For the manual switch circuit seen in
155. n be difficult to fly as a beginner but with some practice and experience it is possible to fly the quadcopter with proficiency There are several safety function built into the flight computer software in order to keep the user and others safe when flying the quadcopter It is important however to make sure that the pilot always is responsible when flying the quadcopter as to not endanger others or the quadcopter 116 EEL 4915 Senior Design II Group 14 Final Document KIRC Project 8 2 Using the Ground Station In this section the overview of how to use the ground station user interface is given The ground station interface was built to display the telemetry of each quadcopter show live quadcopter location on a Google maps overlay and be able to send commands to each quadcopter The ground station interface shown below in figure 61 is quite self explanatory for most parts On the left is the live telemetry display which shows the latest info on the position state altitude battery and packet information The packet number and packets received entries are important to have in order to gauge relative data latency and rate This can help to determine if packets are actually still coming in even if the GUI isn t updating On the right is the Google maps interface There are buttons available for zooming in and out and moving around in the map The map can t be dragged like a lot of Google map interfaces but that is due to the l
156. nals to the microcontroller and is interpreted as the input to the control system code A significant amount of software programming in the microcontroller was required to get the desired output at the motors from the input from the RC controller receiver 36 EEL 4915 Senior Design II Group 14 Final Document KIRC Project To Laptop ES os 802 11 g USB Adapter SDCard SPL Raspberry USB HighRes 32 GB Pi WebCam Navigation Computer Luvn Wireless Receiver PWM Avionics Computer RC Controller IMU 12C Flight ART GPS Sensors p i For Manual Flight Sensors gt Canter puin Unit For Manual Flight v Power Motor Regulator Controller amp Distribution 4 A Motors amp Props Battery Figure 4 Hardware Block Diagram The hardware block diagram shown in Figure 4 above is a visual representation of the information discussed in the previous section titled 4 1 hardware operation According to the diagram the navigational computer is connected to the flight computer the camera module the SD card and the 802 11g wireless adapter The navigational computer can be thought of as a separate mechanism not necessarily needed for stability and manual flight In practice this navigational computer was not implemented until phase three of the project The separation between the avionics computer and the navigational computer is visually represented by a horizontal dotted line through the center of the hardware
157. nd the input is filtered the flight computer can start performing the control algorithms The input of the control system of this project can come from two sources either the autonomous guidance system or the RC controller The input can be used to throttle the motors up tilt the quadcopter in any direction or spin the quadcopter Using these methods as mentioned before is the basis of how quadcopters can fly and maneuver The RC controller has a receiver on the quadcopter that has multiple channels that can each represents an input to the system Each of these channels can be used to control a flight parameter of the system Using this as the input the flight computer can subtract it from the feedback and obtain an error function that it can use as the compensator input This can be expressed in equation form shown below with r kT as the input y kT as the feedback and e kT as the error e kT r kT y kT This is the input to the compensator which is the heart of the control system The compensator design is one that can be very tricky and has many approaches The compensator has to take the error input magnify it in some way and create an output that the plant can understand The plant in this case is the quadcopter and the motors that are controlling the motion The compensation can be dynamic or it can be static depending on the needs of the project For this project however the compensation will have to be dynamic so
158. nderlying drivers to access the communication lines but has its own APIs for reading and processing Multiple devices are using I2C but each device has its own address and requires different processing techniques This is why a separate API will be written for each device The sensors used for this project are the ADXL345 Accelerometer ITG 3200 gyroscope HMC5883L magnetometer BMP085 altimeter and GP 635T GPS The receiver unit is used to provide user input to the controller The accelerometer gyroscope and magnetometer were all on the same sensor stick for prototyping but were integrated individually into the PCB The power saving features that some of these sensors provide were not needed because they needed to be fully active throughout the entire flight The power consumption of the sensors was negligible compared to the motors and the Raspberry Pi anyway All of the sensors that are using the I2C protocol communicate using a standard I2C bus speed of 400 KHz The microcontroller communicates with the accelerometer via I2C at the slave address Ox1D The accelerometer has four resolution ranges 2g 4g 8g and l6g Since the accelerations that the quadcopter experiences are relatively small the 2g range is appropriate This is done by setting the OFSX OFSY and OFSZ registers to Ox7F because the scale factor is 15 6 mg LSB in two s complement form When the whole system boots up the microcontroller initiates the self test on the acc
159. needed to be charged before using it again So after the right batteries were found for the project a battery charger to go with them needed also be found In summary all these technologies were ones that were likely going to be used in the KIRC project The goal was to use common technologies in the project so that everything was guaranteed to work properly and predictably In the next section specific parts were given based on the general technologies given in this section 3 3 Specific Components and Decision Factors In this section the specific components and software used in this project were given The driving decision factors for each product is also given along with comparison of selected other products of interest The first component chosen for this project was the microcontroller due to the fact that it had the most impact on the software portion of the project Based on the relevant technologies shown in the previous section some requirements were made on what peripherals the microcontroller needed to have and performance criteria it needed to meet A summary of the requirements is given below in a bulleted list e Needed to have a Floating Point Unit FPU to support control algorithm calculations e Needed to have multiple UART ports for serial communication with the GPS and the Raspberry Pi e Needed to have I2C ports for reading IMU e Needed to have multiple PWM channels for motor control output e Needed to have A D con
160. needed to be done for implementation The first issue was seen as the voltage comes from the battery jacks and went into a splitter The splitter went from two to eight banana jack connectors for the ESCs The PCB implemented header pins to the cell monitoring connector on the LiPo battery in order to receive the 83 EEL 4915 Senior Design II Group 14 Final Document KIRC Project 5 7 voltage reference not needing the large amount of current that would be going to the ESCs In actual flight mode the pcb connection straight to the battery will have to sole purpose of monitoring the battery voltage level Then came the connection from the PCB to the Raspberry Pi This was done by simple header connections These contained receive transmit ground and 5V power that plugged straight into the GPIO of the RPi The plugging into the RPi however needed a lot of care due to the fact that plugging the 5V power into any of the other GPIO caused the card to burn out which was a problem that arose during testing For the testing and development portion of the project it was decided that being able to pull power from either the battery itself short the ESCs would be useful so as not to burn out the speed controllers In order to accomplish this feet a jumper system was implemented as can be seen in the top left Figure 42 that either jumped the output of the on board 5 volt regulator to the 5V line or for flight jumped the ESC 5 volt power to the sy
161. nformation is in one direction and no information is sent back In this case the microcontroller sends a pulse width modulated signal to each of the four motor which corresponds to a percentage of full throttle for each of the four motors The diagram shows the other copter with an ability to communicate with the first quadcopter s navigational computer as well as the ground station laptop By the end of the project the team was able to use DTN protocol to communicate from one quadcopter to the ground station laptop but the team was not able to implement the desired three corner mesh network It is worthwhile to mention that within the box labeled other copter also has its own avionics software power system RC controller motor controllers motors and frame not shown on this block diagram One can think of the individual system block diagram as the block diagram for each of the two quadcopters A hypothetical block diagram for the other copter if it had been created would look identical to this individual system block diagram with one distinction being the text other copter would be changed to initial copter The rationale behind not including all of the components of the other copter in our block diagram of concern is to minimize complication The block diagram s purpose is to give a simple representation that can be understood upon first glance It is to be implied that the hardware and avionics software of the other copter
162. ng where they were picked up by the NASA contact and be put in the team s custody for the remainder of the project Parts bought by NASA needed to be handled with care not lose or destroy them as they are still technically government property The most recent bill of parts is listed below in Figure 65 with status of each part vendor website and exact cost Some of the parts were purchased directly from Texas Instruments while others were from third party vendors such as Sparkfun or Amazon Most of the quadcopter physical parts were acquired from Hobbyking an online hobbyist retail store The total cost so far is about 671 22 which was less than the initial estimate Price Category Item Part QTY Ea Total Quad FitContlSys Tiva C Launchpad TM4C123G 2 12 99 25 98 10 DoF IMU Sensor Misc 1 25 90 25 90 50 Channel GPS Reciever GP 635T 2 39 95 79 90 Quad FltSys Electronic Speed Controller 9192000131 0 8 12 49 99 92 oe 900kv 270W ner 14 99 119 92 8x4 5 Propellers 17000055 12 3 53 42 36 ison ia 297000028 0 S22 svi 4S 5000mAh Li Po Battery N5000 4S 45 2 65 03 130 06 pape og A TX 9X M1 1 54 00 54 00 HXT 4mm to 4 X 3 5mm bullet Multistar ESC Power 3 65 7 30 Breakout Cable 2 Quad GuidSys Embedded Linux Processor 2 N A Power Cable 2 N A SD Cards 2 N A 802 11G Wireless Card 2 N A RasPi 5MP Camera
163. occurrence of 5 no contact pins that were most likely used in programming the sensor or in manufacturer calibration as well as a data ready or interrupt pin that was connected but no used As suggested in the datasheet for this sensor when using a single power supply for the sensor the VDD VDDIO and S1 signals were tied together connected to the 3 3 volt power signal and connected through a 0 1 micro farad to ground The C1 value was set to 4 7 micro farads and connection between SETP and SETC was set to 0 22 micro farads in order to handle peak current pulses and low voltage drops seen between the control and the set reset strap driver in the sensor SETP was the set reset strap positive signal to noise ratio capacitor SETC the driver signal to noise ratio connector and C1 being the reservoir capacitor The gyroscope L3G4200D as seen in the upper right of Figure 38 also had a suggested configuration by the datasheet The 3 3 volt power supply of the system powered the system by connecting to VDD as well as VLOGIC for simplicity and due to the fact that an external clock wasn t desired and interrupts were unnecessary CLKIN was tied to ground and INT was no contact Pins 2 7 14 17 19 21 and 22 were no contact as specified within the datasheet as well as RESV G signal was a reserved signal needed to be connected to ground As suggest the regulator filter capacitor was set to 0 1 micro farads the charge pump capacitor to 0 0022 micro farads and
164. oduct 3 Axis Sensors 6 Axis Sensors 9 Axis Sensors v Environmental Sensors Software Your message to us Subject Permission to use figure from BMP085 Datasheet Message Hello Bosch Sensortec A am a senior majoring in computer engineering at the University of Central Florida My senior design team is currently writing our Y technical document for our quadcopter project using a BMP085 Verification Captcha Not readable The actual text was Hello Bosch Sensortec l am a senior majoring in computer engineering at the University of Central Florida My senior design team is currently writing our technical document for our quadcopter project using a BMP0835 altimeter We wanted to request permission to use the calculation of pressure and temperature figure on page 13 of the BMP0835 altimeter document number BST BMP085 DSO00 05 revision 1 2 our academic paper 129 EEL 4915 Senior Design II Group 14 Final Document KIRC Project Best regards Wade Henderson The response Saeed Afzal BST SNA lt Afzal Saeed us bosch com gt Mon 11 25 2013 8 54 AM To fotonphorces knights ucf edu Action Items Hi Wade Thank you for your interest in Bosch Sensortec products Please go ahead and use the flow chart example on pg 13 in your technical paper Also keep in mind that BMP085 is now EOL The replacement device is BMP180 for your designs moving forward Thanks Afzal Afza
165. of the project the controller was planned to be a user with a RC controller device The most commonly used type of RC controller for UAV applications was a hand held joystick operated controller device These devices usually had settings for trim offset and mode When looking for a RC controller it was important to note the number of channels available to the user because this affected how many different signals the controller could send to the quadcopter at any one time Each of the channels represented an input to the quadcopter control system that could change roll pitch yaw throttle etc Another thing to keep in mind when buying the RC controller was the price Unfortunately RC controllers could tend to be quite pricey The plan was to only buy one RC controller as it was not planned to fly both quadcopters manually at the same time Pulse Width Modulation PWM was common method for motor control in UAV projects PWM signals could be easily generated using a microcontroller and many microcontrollers included built in hardware for it This control signal was ideal for motor control because it provided a modulated signal that contained load voltage percentage information This meant that the PWM signal could change the output of a motor based on the duty cycle of its square wave Electric motors however don t usually take PWM directly as an input so there had to be an intermediate circuit that could translate the PWM signal into a DC v
166. oll similar to an input command from the RC controller receiver These instructions were to be used to send appropriate PWM signals to the electronic speed controllers just as the RC controller successfully does in order to move the quadcopter in space The end result is a quadcopter reaching a desired destination for which the quadcopter is to hover and snap a photograph For the unfulfilled reach goal of autonomous flight the navigational computer was to also be in charge of the paths of each quadcopter The team would specify an altitude as well as latitude and longitude coordinate for 4 distinct points on the earth in the shape of a rectangle or shape theoretically The rectangle created by connecting these 4 points was to serve as the area in which the quadcopters would survey The team would first perfect the reconnaissance with a simple rectangular geometry Once the quadcopters were able to accurately image and create a map of this rectangular shape the team would then move on to test other shapes The team planned to program the navigational computer to take any 3 or more input coordinates and map out a map of any geometric shape In the rectangular map the paths of both quadcopters are somewhat simple sweeping either from left to right or from top to bottom side by side The quadcopters would stop hover and take pictures during paths which are perpendicular and parallel to the outside lines of the rectangle The paths and the locations at
167. oller to a peripheral device and add in that the Tiva C microcontroller has designated I O that is unused elsewhere made 2C interfacing the most promising means of communication as this project moved forward The ESCs controlled the motor speeds and were controlled by pulse width modulated signals PWM Another great benefit of using the Tiva TM4C123G H6PM microcontroller was the built in PWM ability This made the ESCs easily controlled by surface mounted short form pins that were straight memory mapped I O from the microcontroller The chosen motors were three phase brush motors that were controlled by the ESCs The ESCs produce an analog signal in each of the three lines leading to the motor The motors took this signal and based on how out of phase these signals were produce a certain amount of thrust The power system was fairly simple for this project due to the fact that it was digital most components were low voltage and controlled from the PCB The power was distributed from the battery to the ESCs followed by the motors using simple banana jacks Though this was simple and basic way to distribute power it was effective The PCB took in 5 V from the ESC and distributed to the proper locations It also took in 12 6 volts by way of header jacks and was put through an amplifier to drop the voltage then 101 EEL 4915 Senior Design II Group 14 Final Document KIRC Project sent to the microcontroller for battery monitoring f
168. oltage for the motors Electronic Speed Controllers or ESCs were circuits that could take a PWM input and send proper voltage and current to the motors to provide predictable motor output ESCs needed to be chosen based on their current rating for motor support This meant that if a motor is drawing 20 Amps the ESC needed to be able to source 20 Amps without overheating distortion or causing an electrical failure 11 EEL 4915 Senior Design II Group 14 Final Document KIRC Project Finding the right electric motors for the project was also an important task The most commonly used type of electric motor in quadcopter projects was the brushless motor In the process of looking up brushless motors there were several specifications that came up The Kv rating the current rating the power rating the thrust the weight and the size were all things that were frequently listed among tech specs For this project motors had to be found that fit the frame of the quadcopter and had the capability to lift the whole system while not drawing too much current The motors were definitely the most responsible for the current draw of the system which directly affected the battery life and thus the flight time Because the motors had such a direct effect on the flight time of the quadcopters care needed to be taken in the decision of the motors for the project The closest future development for the KIRC project was the ability for the quadcopter to be
169. omponents such as the Launchpad was Amazon com Not only did this website have a large quantity of components readily available they also had a quick shipping time It could take as little as overnight to 3 5 business days This 3 5 business days shipping time was free of shipping and handling charges for students This was extremely useful as this project moved forward into testing and implementation During testing and troubleshooting it was common that a couple of small components or piece parts could be damaged here and there With this in mind ordering and shipping small and cheap parts became expensive relative to the budget when the cost of shipping is more than the cost of the actual component Another benefit in the use of Amazon com was their return policy When using components that were sensitive to electrostatic discharge packaging and handling were damaging when not done properly Before purchasing a product on Amazon the return policy of the seller was readily available saving the buyer from misrepresentation by a seller At the University of Central Florida senior design projects were done completely by the students but the university had readily available piece parts on hand for students to do testing with They provided many piece parts in order to prevent the students from needing to purchase small quantities while readily available in bulk to the university This was very useful when beginning implementation and testing of the
170. omputer must be done in real time which was the driving factor behind using the RTOS The digital sensors that will provide the feedback for the control system also need some filtering done before they can be used Unfortunately there is always noise within sensor system and the must be filtered to improve accuracy and precision In order to bring the noise down there are a few adaptive filters that perform well but the computation time required for them severely limited the flight computer As mentioned in section three the 57 EEL 4915 Senior Design II Group 14 Final Document KIRC Project Kalman and the Least Squares filters are commonly used filters to get rid of digital noise The first the Kalman filter is very accurate and greatly reduces noise but is computationally heavy and can hold up the processor for very lengthy periods of time The other the Least Squares filter doesn t perform as well as the Kalman but it can run somewhat more efficiently on a computer with limited processing power Another avenue for the project was to use a running average filter While the performance of a passive running average filter which is essentially a low pass filter isn t as good as one of the adaptive filters explained above it was found that the performance was adequate for the project The running average filter is a simple one where the last several variables are saved and when the newest sensor data is retrieved it is averaged
171. onal was 109 EEL 4915 Senior Design II Group 14 Final Document KIRC Project increased until the quadcopter started to over shoot its correct position The gain was then backed off until the overshooting stopped Next the derivative was increased until fast oscillations were seen and backed off a little bit until the fast oscillations stopped Proportional was then revisited the same was as before this time the team was able to raise it higher than last time The integral was the last gain to tune This was tuned similarly to derivative and ended up with a much smaller value Next roll was tested the same way and then yaw by tethering the quadcopter from above When the quadcopters were ready the control algorithms were first be tested while the each quadcopter was tethered The goal was to get the algorithm working first and then transfer the program to the other quadcopter for use later The quadcopter was tethered for the initial testing in order to make sure that the system wouldn t destroy itself when it flies for the first time When the algorithms were tuned enough so that the team felt comfortable enough to fly it without a tether un tethered flights began 7 3 Hardware Testing The hardware testing involves all of the components and systems that were not programmable like the microcontroller or semi programmable like the sensors This includes the motors propellers electronic speed controllers lithium polymer battery and
172. opter Quadcopters were naturally unstable in flight and need an active attitude control system to maintain stability at all times In researching flight control algorithms many control topologies came up Many people tended to use Proportional Integral Derivative PID loops to dynamically minimize the error from the roll pitch and yaw of their quadcopters By stabilizing the roll pitch and yaw of the quadcopter it became easier to control the quadcopter in flight and also made autonomous navigation possible Even though there were many ways to implement a digital control system one thing remained constant for all of them Digital control systems only work under the assumption that the feedback and controller output occur at discrete time intervals For this reason the RTOS came in handy because it created a predictable time interval where control processing could occur Using these windows of processing all of the discrete math associated with the digital control system could be accurately done in the proper time Feedback in digital control of UAVs was usually done using inertial measurement units IMU This sensor group contained an accelerometer rate gyroscope magnetometer 10 EEL 4915 Senior Design II Group 14 Final Document KIRC Project and altimeter and used I2C as a serial protocol over a common line The accelerometer and gyroscope were used to find an attitude state vector while the magnetometer was used to find absolute
173. or further information please see section 5 7 Due to the fact that this project would not only contain PCB design and interfacing but would also have a testing configuration that needed to be address As far as the interfacing off of the PCB nothing changed However the PCB would initially be a more powerful Tiva C Series TM4C123G Launchpad and a sensor stick containing the altimeter gyroscope digital compass and accelerometer that will later be implemented in the PCB The sensor stick was a useful tool for initial implementation due to the fact that its operational ability had been verified Secondly the sensor stick came with a present communication set up of I2C With this able to be worked on in the initial testing phase reaffirmed the decision made to move forward with the I2C interfacing The launchpad described was a Texas Instruments product that contained two microcontrollers on board in circuit debug interface and USB for computer interfacing On top of this it also provided preloaded RGB application forty on board I O switch selectable powering 2 user switches a reset switch and test LEDs that were useful in troubleshooting but most weren t implemented on the PCB 6 4 Coding Overview As this project was a big undertaking from a programming stand point the software used needed to be something that the team was comfortable with Due to the fact that the microcontroller being used is produced by Texas Instruments Code
174. or the KIRC project Using a GPS as a navigation feedback sensor they were able to fly the copter between two points while using simple geometry to determine a trajectory When taking off flying or landing there were states for each that were going to be integrated into the state machine These ideas were able to be implemented in the final KIRC design Another design of interest also came from a UCF electrical and computer engineering senior design project Autonomous Quadrotors Utilizing Attack Logic Under Navigational Guidance or A Q U A L U N G for short was another quadcopter project that utilized the use of autonomous flight The original idea behind their project was to create a game whereby competitive laser tag players could play a laser tag game against multiple autonomous quadcopter opponents There were many ideas from this project that were able to be implemented on the KIRC project Their use of motors batteries frames and computers were able to be potentially useful to draw ideas from Their autonomous flight algorithms also made for a good place to start on KIRC s own autonomous flight algorithms Their use of computer vision to provide obstacle avoidance however might prove too complex for this project though A Q U A L U N G did provide a good resource of information on quadcopter design that the team kept in mind for design purposes While buying a quadcopter would ve proved expensive and wouldn t have satisfied the
175. otors so that they can be controlled digitally Autonomous Navigation amp Navigation Computer Software In this section the plan for implementing the control system will be shown along with the navigation computer software For each quadcopter there will be a navigation computer which will be the Raspberry Pi embedded Linux platforms The Raspberry Pi runs Raspbian an ARM optimized variant of the Debian Linux distribution Since the Raspberry Pi runs a Linux operating system it is capable of running multiple processes simultaneously which is ideal for computationally heavy tasks These computers have more than enough memory RAM and processing power to do all the tasks required for the project The Raspberry Pi s will be responsible for autonomous navigation network communication and imagery The flight computer aka the Tiva C T will also be assisting in the autonomous navigation portions of the project Since the Raspberry Pi runs Linux as an operating system it is capable of multitasking The multithreading features and the powerful processor on board the Raspberry Pi will be very important to the outcome of the project These features are especially important because the navigation computer will be handling the autonomous functions imagery and the digital network all at the same time Each task will have a priority and will be running in parallel The highest priority job is to navigate the quadcopter Under
176. over payload at less than 50 thrust capacity e Needed to be powered by 15 V or less e Needed to be low priced less than 20 e Needed to adhere to the above requirements and maintain a flight time greater than 12 minutes with a 5 Amp hour battery After narrowing the search based on the price ceiling there were still many options readily available The implementation of flight time calculator was implemented based on weight and thrust capacity of the motors In order to do this add the mass of each piece part including a tolerance for lightweight parts to be implemented on the PCB later Then take the total thrust of the four motors assuming they were all four the same type 17 EEL 4915 Senior Design Il Final Document Group 14 KIRC Project of motor and divide the total mass by this maximum thrust capability Take this quotient is multiplied by the maximum total current drawn by the entire system Finally divide the life of the battery by this product giving the total static flight time aiming for a minimum of 12 minutes This analysis may be seen in the two equations and table 3 shown on the below for the chosen motor Thrust FlightTime m mass of the entire system in grams Max Thrust max thrust for each motor in grams Qpat lifespan of the battery in Ampere Hours m I5ys Current draw of motors and electrical circuits 4 x Max Thrust Qbat Thrust Isys
177. pace Center It evolved into a senior design project as it grew more and more complex and eventually a set of deliverables were developed While this project is being partially funded by NASA it remains an unofficial NASA project The ideas behind the project were created to achieve multiple NASA goals as well as provide future The main motivation behind this project was to test an experimental virtual communication protocol DTN2 developed by University of California Berkeley This Delay Tolerant Networking DTN2 architecture was designed for environments where communication is prone to delays and disruptions During deep space missions DTN2 is ideal for the long distances and the intermittent links between planets For this reason NASA is interested in implementing this software on much of its upcoming space missions which is why they are motivated to learn more about it Another main motivation parallel to the first behind this project is to provide two quadcopters for potential use in future NASA earth science missions NASA decided to combine the two goals into one project hence satisfying both goals in a single project These quadcopters are able to patch together an image of an area cooperatively while transmitting telemetry over a wireless network using the DTN2 protocol Control of these quadcopters is done manually but it was developed such that the quadcopters could possibly be autonomous eventually In order to keep the design of t
178. peed to the two motors residing at a higher altitude slightly more speed to the two motors residing at a lower altitude or 27 EEL 4915 Senior Design II Group 14 Final Document KIRC Project a combination in order to make the gyroscope s sensor read perfectly level once again thus stabilizing the quadcopter to perfectly level Just as the avionics computer sends signals to each of the 4 motor controllers to stabilize the quadcopter in the air the avionics computer can manipulate the signals to the motor controllers in order to move the quadcopter around in the air The RC controller sends data to a receiver connected to the avionics computer When a team member toggles a single joystick or both joysticks on the RC controller the avionics computer takes this information from the receiver and sends signals to the motor controllers depending on how the joysticks are oriented The RC controller has two joysticks The team decided to use a common convention for commercial quadcopter joysticks The left joystick on the controller controls thrust and rotation Thrust is the forward to backward motion of the joystick and rotation is the left to right motion of the joystick The right joystick controls the pitch and the roll of the quadcopter The pitch and the roll can be thought of as tilted deviations from a level plane A useful analogy would be to think of a person standing upright Hypothetically a perfectly level wood board balanced on this
179. phase used a specific standard communication method but the team did have some flexibility in choosing components which satisfied the desired communication protocol for reasons such as speed and compatibility The IMU sends data from its sensors to the flight computer using I2C and the GPS unit sends data from its sensors using UART I2C is an abbreviation for inter integrated circuit and is a type of bus called a multi master bus UART is an abbreviation for Universal asynchronous receiver transmitter and is used in this case for serial transmission or delivery PWM is an abbreviation for pulse width modulation and will be the type of signal sent from the avionics computer to the motor controllers Pulse width modulation turned out to be the ideal method of communication from the microcontroller to the ESCs because it is relatively easy to program a PWM signals to output pins of the microcontroller The PWM signal from the microcontroller is a digital square wave with a varying duty cycle The signal is programmed to be high and low for certain amount of times to each of the four motor controllers The amount of time the signal is high divided by the amount of time for a single period is a fraction called the duty cycle The duty cycle can vary from 0 percent to 100 percent and corresponds to the percentage of full speed each propeller spins The RC controller sends information wirelessly to an on board receiver The RC controller receiver sends PWM sig
180. pheral drivers control amp filtering and for telemetry amp instructions Programming the microcontroller during phase two proved to be a bit trickier compared to programming the quadcopter in phase one In phase one the team used a Tiva C launchpad with its peripherals connected to the sensors The Tiva C Launchpad has two 64 pin processors one in the very center of the board and the other centered near an edge on one side The first processor in the very center of the Launchpad has contains all of the stability algorithm code and was programmed using the second processor on the Launchpad Because the Launchpad was used to in phase one s prototype the team merely used a USB to micro USB connector cable which came with launchad and simply plugs from any computer directly into the Launchpad The program called code composer studio was used to debug and program the microcontroller with the control system which was written with the c programming language Phase two s custom PCB does not include the second processor and in this design the team programmed the processor with a program called JTAG This JTAG programming process required a separate device which programs the microcontroller through the JTAG pins created on the PCB 41 EEL 4915 Senior Design II Group 14 Final Document KIRC Project 5 2 Flight Computer Software In this section the details of the flight computer software are given This includes discussion about the
181. physically At this point the microcontroller was already tested during the RTOS test since the team used the evaluation board to test it Software had to be used to test the peripheral sensors since they provided feedback through digital communication The team used the microcontroller for all of the peripheral devices The accelerometer gyroscope magnetometer and altimeter all communicate via I2C Each slave device responded when a message was sent to it to retrieve data None of the other devices on the I2C line sent any data when their address was not called from the master The GPS and the Raspberry Pi communicated via UART The 2 4 GHz remote control receiver is proprietary and setup like described in Section 5 3 The accelerometer gyroscope and magnetometer are on the same board These were tested separately when communicating with them and had to be tested together physically The altimeter GPS and Raspberry Pi T were physically independent Each device was tested to make sure they match the needed specifications for this project The accelerometer was setup on the microcontroller to forward data to a laptop After connecting the accelerometer to the microcontroller the self test was initiated The accelerometer produces an electrostatic force that acts on the internal sensor in the same 105 EEL 4915 Senior Design II Group 14 Final Document KIRC Project way that acceleration would The self test output is scaled based on
182. picture belongs it is not necessary to keep track of the order that the pictures placed or taken The downside of this is the larger the area is the more pictures will need to be taken This is something that not only affects the total flight time but the stitching time as well Each picture that is added exponentially increases the amount of time for the program to place each picture This is because Hugin has to compare each picture with every other picture to look for control points 87 EEL 4915 Senior Design II Group 14 Final Document KIRC Project Figure 46 Example of Capturing an Area Overlap Figure 47 is an image preview in Hugin that shows all of the individual pictures together with the overlaps Each picture is approximately overlapping the neighboring pictures by 50 just like the example in Figure 47 shows the final render of all the pictures stitched together It is not entirely perfect since there are so many overlaps the program has to pick which picture takes priority in each overlap that matches the surrounding overlaps the best Overall it produces a decent uniform picture L Tonal l o a Placement b Final Figure 47 Pictures Stitched Together The ground station is where the mission starts and ends It is a convenient way to start a mission since no wires are needed to hook up The intuitive interface allowed the team to track the entire progress of the mission while it was happening
183. r motor controllers motors frame and a separate quadcopter The initial goal of the project was to create two autonomous quadcopters which work in tandem to image an area simultaneously Unfortunately the group had realized that this vision was quite ambitious given the amount of time allotted to create the project Because the team built the quadcopter from scratch including designing and coding the control system the team did not have enough time to accomplish the autonomous flight objective It should be mentioned that the team had this goal in mind throughout designing the quadcopter thus the quadcopter which the team created in phase three has all of the components required to achieve autonomous flight Given a longer time frame the team was confident that these two autonomous quadcopters working together is feasible In figure the black lines with arrows on one or both sides pointing from one box to another give specific direction showing how each individual subsystem interacts with one another For the black lines which have arrows pointing in both directions to and from each two boxes these two individual systems interact in a way that exchanges information If serial communication is used for these two sided arrow interactions the systems take turns sending data back and forth The black arrow which points in only one direction specifically between the avionics computer and the motor controllers as one may guess the transfer of i
184. r and gyroscope but for this project it was figured that it wasn t necessary The magnetometer is just used for finding the orientation of the quadcopter in reference to the earth This is important for finding the heading of the quadcopter which can be used for autonomous flight The RTOS doesn t need to read the magnetometer as much as the accelerometer and gyroscope so the bandwidth for this sensor was set lower in order to keep the processing time down The altimeter uses temperature and pressure to estimate the altitude of the quadcopter relative to ground or sea level This sensor is critical to keeping the quadcopter at a stable altitude during autonomous flight The bandwidth of this sensor is also lower than that of the other IMU sensors Since this one doesn t need to run as often the RTOS can focus on other tasks while waiting for this sensor to collect data This sensor is only important for stabilization of the altitude in flight The GPS receiver unit is set by default to take measurements once per second For the autonomous control however it is necessary to increase the bandwidth as much as possible for real time flight path corrections The unit chosen for this project has a maximum bandwidth of 5Hz so the unit is corrected to sample at that bandwidth upon startup Since the GPS data isn t as critical to the flight controller the data received from the GPS can be read into a buffer and sent out to the navigation computer
185. r i Dynamics Figure 21 Attitude Feedback Controller When the vehicle starts up it will have to find its orientation with respect to earth This orientation will be the initial state vector as well as the defined origin of the roll pitch and yaw This means that when the roll pitch and yaw are all zero the quadcopter is level with respect to the earth So in order to make the quadcopter stable in flight the feedback controller will have to force the output towards the input When keeping level as mentioned before the input will be zero Another thing to note is that the roll pitch and yaw each will have their own separate feedback control loop Since each is a separate parameter each will need its own loop There will also be a feedback loop for the altitude of the quadcopter This will not be done for the phase 1 prototype but will be done when the focus shifts to the autonomous navigation The feedback controllers will be digitally implemented on the Tiva C flight computers for this project There are several advantages and disadvantages of doing it this way versus analog The several advantages include robustness adaptability environmental stability and cost The disadvantage comes in the areas of delay and need for real time processing One assumption of most digital control algorithms is that the sample frequencies are always a fixed and never change This is why the processing of the data on the flight c
186. re several package dependencies so it is recommended to install GCC 3 3 or newer TCL 8 5 BerkeleyDB 4 8 and Xerces 2 6 before installation The install may also require some other packages depending on the machine it is running on After configuring and compiling Oasys and DTN2 with Oasys being the first the program is now ready to run Before running DTN2 there is a configuration file that must be edited In the configuration file the user must list his IP address domain name and connection information The user must also do this for any computer on the network that will be using DTN2 also This process creates a routing table for DTN2 that can be used to route bundles to the proper destinations If any changes are made to the configuration file after DTN2 startup the application must be restarted in order to incorporate the new changes DTN2 comes with a command prompt daemon that can be used on the Linux console The daemon can also be run in the background while other programs can have time to run The daemon can be opened by typing in dtnd in to the Linux console with the appropriate arguments The full list of appropriate arguments can be listed by typing in dntd help Before running the daemon new bundle database must be initialized This can be done by using the command dntd init db It is recommended to clear and remove any old databases before initializing a new one though After initializing the database th
187. reated and be set to run at a certain interval such as once every second The team did this by toggling an LED The interval in which the LED was on and off matched the specified schedule This was confirmed with an oscilloscope The next thing that was done was adding another task for the operating system to manage This was done with another LED set to toggle at a different rate Again the accuracy of the tasks were measured with an oscilloscope Different intervals were also tested and a scheduling conflict was tested as well The team tested certain intervals that overlap and cause conflicting schedules This is so the team could observe the behavior of the TI RTOS in order to understand what would happen in this situation Priorities are tested at every level The complete number of priority levels the RTOS supports was tested The highest priority task would always come before any other priority Priorities are important when multiple tasks come in at the same time and the RTOS has to decide which one will get executed Figure 56 shows a illustrative example of three processes GPS accelerometer and magnetometer being placed in the RTOS represented by a funnel at the same time The one with the highest priority comes out first This was tested by creating two or more tasks with different priorities Task one has the highest priority and turned on the red LED built into the evaluation board for one second Task two has a lower priority and turn
188. remotely File Edit Data KIRC SPOK Latitude 28 606725 28 606192 Longitude 81 193321 81 1926384 Altitude 108 94 Battery Signal State Packets Received Packet Enter Area to Map Latitude Longitude Map Center 28 606452 81 192981 Boundary 1 28 606984 81 193579 Boundary 2 28 606993 81 192281 Boundary 3 28 605858 81 193606 Update Map Log Time Save Log Send Images Boundary 4 28 605858 81 192276 j Clear Pi s KIRC Take Picture SPOK Take Picture Figure 43 Ground Station User Interface 85 EEL 4915 Senior Design II Group 14 Final Document KIRC Project When the quadcopters have landed after successfully completing their mission the images are removed from the SD card and placed onto the laptop s hard drive The pictures are stitched together using open source software called Hugin This creates a map with the pictures in a mosaic form since the quadcopters are translating in reference to the ground Most image stitching software is made for panoramic photography so it requires each image to be set as its own lens in order for Hugin to properly stitch the images in a 2 dimentional fashion The user enters advance or expert mode From there the user right clicks each image and select new lens This is shown in Figure 44 This is time consuming since each picture is indi
189. requirements of the project making everything from scratch would also be unnecessary So for the KIRC project it was decided that the design would be done with the assumption that certain technologies were available Microcontrollers IMU sensors Motors Speed controllers Frames Propellers Operating Systems and all associated support hardware and software In summary all the projects assessed in this section had portions that were implemented in KIRC In the next sections decisions and driving factors on KIRC parts and designs were given These decisions were made based on the research given in this section and other research into cost and viability EEL 4915 Senior Design II Group 14 Final Document KIRC Project 3 2 Relevant Technology amp Strategic Components In this section the general technologies that were likely to be used in the KIRC project were given based on the research effort made by the team Extensive research was done to find common parts processes and software used in other UAV projects specifically ones that had to do with quadcopters These technologies were integrated into the core of the KIRC design The goal behind using common technologies in this project was to provide a system based on proven technologies that was known to work properly and be predictable One of the most important items in the KIRC project was the use of microcontrollers for the flight computers The microcontrollers were critical to k
190. respect to each axis The microcontroller uses all of them at the same interval 8 bit Registers Description 29 GYRO_XOUT_H Upper half of the roll x axis 30 GYRO_XOUT_L Lower half of the roll x axis 31 GYRO_YOUT_H Upper half of the pitch y axis 32 GYRO_YOUT_L Lower half of the pitch y axis 33 GYRO_ZOUT_H_ Upper half of the yaw z axis 34 GYRO_ZOUT_L Lower half of the yaw z axis Figure 12 Gyroscope Data Registers The magnetometer s I2C slave address is Ox1E The microcontroller must send 0x3D to read from a register or 0x3C to write to a register The register pointer is automatically incremented by 1 after a register has been read This reduces the amount of communication the microcontroller has to do with the magnetometer since the microcontroller is always going to read all of the data registers in order The magnetometer samples data in Gauss which is the unit of measurement for measuring how strong a magnetic field is The magnetometer will only be used in continuous measurement mode so new data will always overwrite the old data as measurements are continuously made just like the accelerometer This is done by setting the Mode Register MR bits MD1 and MDO to 0 The first thing that will be done with the magnetometer when the quadcopter boots up is to initiate the self test This is accomplished by setting bits MS1 and MSO to 1 on Configuration Register A when testing positi
191. rge thereby taking away from its mobility and aerial agility In addition the battery was one of the 20 EEL 4915 Senior Design II Final Document Group 14 KIRC Project most costly components in the budget For all of these reasons it was decided that a single 3 cell 5000 mAh rechargeable battery was best suited for this project TER Mass Current Thrust Capacity Part Description Part s Qty A O Ah Fiber Glass Frame Quadcopter Frame Q450 280 1 0 0 0 Propeller 900K V 270W NTM2830S Motors Motor 900 66 4 10 6 750 0 ESC Afro 20Amp ESC 919200131 0 23 4 0 0 0 Turnigy 4s Lipo Battery Battery N5000 48 45 552 2 0 0 10 Propeller 8x4 5 Propellers 17000055 15 4 0 0 0 Controls Avionics Processors Sensors Tiva Raspi 200 1 1 0 0 TOTALS N A 2000 43 4 3000 10 Throttle to Keep Level 0 666666667 Current Drain A 29 26666667 Flight Time Minutes 20 50113895 Table 6 Flight Time Calculation Spreadsheet Example 21 EEL 4915 Senior Design II Group 14 Final Document KIRC Project 4 Design Summary 4 1 Hardware Operation Through the research and design phase of the project the team had decided to divide the project into three phases with distinct hardware structures as mentioned before As previously mentioned the three phases were as follows All three phases of the team s quadcopter obviously required the essential mechanical components
192. rs the output and power needed to be stable For this reason the VDD and any other powering signals were filtered for medium and high frequency noise in addition to those mentioned in the voltage regulator circuit previously In this system all of the sensors had different functions and for that reason had different pin out signals and 78 EEL 4915 Senior Design II Group 14 Final Document KIRC Project configurations In this system all signals were digital and for this reason all grounds were designated by the same node For many of these sensors there is a built in standby mode that was not going to be taken advantage of in this project due to the fact that data would be continuously pulled from all of them and the desire was for all sensors to be constantly taking in measurements The accelerometer ADXL345 as seen in lower left of Figure 38 had both VSS and VDD powered by the 3 3 volt signal This configuration powered the device and put it into standby mode waiting only for the command to enter measurement mode By connecting the CS signal to the VDD the sensor was put into I2C mode as desired but then the seven bit I2C address must be determined This was accomplished by connecting SDO to ground giving this sensor the address of 0x53 hex preventing it from conflicting with the other sensors The magnetometer HMC5883L as seen in the lower right of Figure 38 had a much different configuration than that of the accelerometer It had the
193. rtional gain at which the output of the system oscillates at a constant amplitude At this gain the period of oscillation of the system is used along with the value of the gain itself to 60 EEL 4915 Senior Design Il Group 14 Final Document KIRC Project calculate the values of the PID parameters This process has to be done for every feedback loop for everything that is being controlled by the flight computer The PID controller needs to be converted to a discrete time equation before it can be used on the flight computer The process of doing that is relatively simple First step is to assume that the discrete derivative of any arbitrary function used in the system This is defined in the equation shown below where T is the sample rate Franklin et al 66 x k x k 1 i k a Using this equation the PID control equation can be turned into the following discrete equation shown below which can be implemented digitally e k e k 1 u k e k 1 Kpe k K Te k Kg T This discrete equation can easily be implemented in software on the Tiva C flight computer The algorithm for realizing this transfer function is given below in Figure 24 The recursive PID function will be called for each control parameter and will repeat every time a new sample comes in There will be a PID function in the code memory that accepts parameter structures and each parameter structure will have at the most recent value the g
194. s In this section the goals and objectives of this project are outlined and how the team planned to meet these criteria At the end of the section a summary of these goals and objectives are provided in an outline form The primary goals and objectives of the project included the following being lightweight durable adequate flight time stable flight ease of manual flight control consistent autonomous flight must use DTN2 application two final quadcopters and flexible software that can be easily be reconfigured based on mission requirements These core objectives make up the description of how the quadcopters should perform as a polished product and they are hard goals This means that above all else these are the goals that the team had to meet more than the others At this point it also may be useful to define what autonomous flight means in the context of this project For this project autonomous flight means that the finished quadcopters can fly to a user defined coordinate without need for a human pilot It also means that the quadcopter can make changes to the flight plan return home or relay information without need for human intervention The quadcopters has several features that can be entered over the network via a user interface There are commands that tell the copter to take a snapshot or to clear its current database Some of the larger commands are to input four coordinates and image the bounded area inside those coordina
195. s on the green LED for one second They both were scheduled to launch at the same time This was easy to confirm just by seeing that the red LED came on first The same test was repeated with both tasks at a lower priority level The result was the same When both tasks have the same priority the RTOS had to pick one even though they were scheduled at the same time This was another behavior that was observed and documented 104 EEL 4915 Senior Design II Group 14 Final Document KIRC Project Magneto Accelero meter Process highest priority first accelerometer Figure 56 RTOS Priority Funnel Preemption was tested similarly to the priority testing above The difference was the lower priority task task two turned on the green LED for five seconds and the higher priority task task one turned on the red LED for one second Task two was scheduled first and task one was scheduled one second after task two Since the RTOS preemption worked right the green LED turned on for one second then switched to red for one second and finally back to green for the remaining 4 seconds This test was also ran again with task two at a higher priority than task one to make sure that preemption does not occur when the task with the higher priority is already running The last test was to have both tasks at the same priority level The operating system just ran the task that came first Peripheral driver testing was done through software and
196. s than 50 e Needed to be I2C compatible e Needed to have the following sensors Accelerometer Gyroscope and Magnetometer e Needed to work on 3 3V power and low current 14 EEL 4915 Senior Design II Group 14 Final Document KIRC Project e Needed to fit on through hole mounting shield of size less than the microcontroller e All on board sensors needed to be available individually from at least one vendor so that they could be incorporated into the PCB design Using these requirements the team searched for candidate IMUs for use in the project There were several available from Ebay or even Amazon for a good price but unfortunately getting approval from NASA for these items proved difficult There was also one from Sparkfun that fit perfectly but had an expensive price of 99 95 each While this price did reach the limit of the budget for the part it was an acceptable source to buy parts from So the 9 Degrees of Freedom Sensor Stick from Sparkfun was the part of choice for the team The 9DoF sensor stick from Sparkfun had three sensors on board the ADXL345 accelerometer from Analog Devices the HMC5883L magnetometer from Honeywell and the ITC 3200 gyroscope from InvenSense These sensors were all available for individual purchase from their respective companies All the sensors had support for I2C slave communication and had a breakout header available for prototyping The stick ran on a 3 3V source which the
197. s to the Navigation computer and processing a guidance state machine The state machine shown below in Figure 29 is the workhorse of the Navigation system The navigation computer can command the flight computer to change states for the system at any time The GPS strings will be sent from the flight computer directly to the Raspberry Pi The Raspberry Pi will be doing all the processing of the GPS strings 67 EEL 4915 Senior Design II Group 14 Final Document KIRC Project Takeoff lo N Start Standby Hover uae nN SS Land ee Emergency said Shutoff Figure 29 Navigation State Machine When the flight computer first boots up the quadcopter will be put into a standby mode while waiting for instructions from either a manual controller or the Navigation computer In standby mode the quadcopter rests on the ground with the motors throttled off This mode acts as a default safety mode when the quadcopter is idling After this mode the quadcopter is set into takeoff mode where the flight computer shifts its primary computing power towards getting to a set altitude while maintaining stability The taking off and landing states are the most difficult states because the quadcopter is experiencing instability Once the quadcopter has reached a desired altitude the quadcopter will shift its state to hovering In this state the quadcopter solely tries to maintain altitude and attitude in order to stay level The hover state is t
198. separation from the top of the battery to the bottom of the top frame nonetheless any separation would aid in keeping heat dissipating off the battery and away from the to the electrical components on the top frame The underside of the bottom plate had a white box connected to each of wing supports Figure 50 Solidworks Front View Figure 51 shown below is a zoomed in top view of the prototype version of the quadcopter It was worthwhile to mention the entire Solidworks model was for the phase one portion of the team s project Remember phase one corresponds to our design before implementing the PCB using the launchpad at the system of stabilized flight control For this reason one could see the IMU and the GPS separated from the microcontroller Again it was obvious that the connectors between components were not shown on the model In actuality there were a plethora of wires from the microcontroller to the sensors ESCs and Raspberry Pi 91 EEL 4915 Senior Design II Group 14 Final Document KIRC Project Figure 51 Solidworks Top Panel Also not included in figure 51 is the ribbon cable from one rectangular prism on the Raspberry Pi stretching downward around both the top and bottom plate of the frame to the camera mounted to the underside of the bottom frame This camera would be pointing directly downward and served as the camera used to take aerial photographs during the surveillance missions Figure 52 sho
199. sing the regulator for the current to flow The team has decided to designate a 5 volt rail and a 3 3 volt rail from the output of each regulator in addition to the existing ground rail With the PCB the battery connects directly to the input of the 5 volt regulator and the 5 volt rails and 3 3 volt rails were used to power all of the on board electronics with the exception of the electronic speed controllers require the full voltage from the battery to power the motors In order to distribute power to each of the four motor controllers the team purchased a splitter cable which splits the battery s single red wire into four red wires and the battery s single black wire into 4 black wires Each electronic speed controller takes an input of one red wire and one black wire from splitter or breakout cable The breakout cable s connectors are 4mm on the two wire side and 3 5 mm on the eight wire side This proved to be an extremely convenient design due to the dimensions of the electronic speed controller s input cables The breakout cable was a perfect liaison between the 4mm bullet connectors on the battery as well as the 3 5mm bullet connectors on the 23 EEL 4915 Senior Design Il Group 14 Final Document KIRC Project electronic speed controllers Each of the four electronic speed controllers have three input cables and three output cables The manufacturer considering the risks of reverse polarization designed the two of the ESC s vo
200. stem 5V line At this stage in design the schematic would take into account all of the circuitry necessary for a proper working system while stripping unnecessary components and circuitry After testing and development was completed the implementation of this altered circuit posed little issue Ground Station Overview The main purpose of this project was to have a map generated from an aerial view The ground station was the final step to creating this map As KIRC and SPOC fly within the specified bounds of the designated area to observe they both take pictures facing downward in reference to the quadcopter and store images on the SD card in the Raspberry Pi The ground station is a laptop with an 802 11 card to communicate to the Raspberry Pi with both quadcopters on the ground and during flight This is also where the quadcopter lifts off and lands During the flight each quadcopter sends information back to the ground station about its status The laptop has a custom interface used to track everything that the quadcopters are doing When the mission is complete the SD cards are removed from each Raspberry Pi and inserted into the laptop which then processes the picture data into a single image This is done using open source software The team can also send all of the pictures over the DTN at once by hitting a button on the ground station GUI Missions always start at the ground station with the laptop Once the quadcopters are
201. t impractical to model wires going to and from every element This task would prove especially difficult for wires going from each ESC to the battery in which each asymmetrically swoop from the top plane of the frame to one of the top edges of the battery Figure 49 Solidworks Wing Model The battery was difficult to see in the first two figures but its position became more obvious after viewing the quadcopter from a different angle Besides the four wings the 90 EEL 4915 Senior Design II Group 14 Final Document KIRC Project frame consisted of two parallel plates a top plate and a bottom plate These plates make up the center portion of the quadcopter where the avionics computer sensors and the navigational computer would be mounted The frame came with 24 identical screws Each wing will used 4 screws to mount to the top plate and two screws to mount to the bottom plate By inspecting Figure 50 shown on the below one could see the front face of the battery In the figure said face is the green with purple letters in between the vertical supports of the wings The battery is to be mounted to the bottom plate of the frame The group justified positioning the battery on the bottom plane in order to maintain a lower center of gravity This heavy base design as opposed to a more top heavy design had a much lower probability of flipping over during flight or during emergency landings As one could see from the figure there was little
202. t of the IMU sensor stick and is also accessed via I2C The microcontroller uses slave address OxEF to read from it and OxEE to write to it The mode used for this project is the ultra high resolution mode done by reading register address OxF4 which requires the over sampling setting to be 3 This collects 8 samples converts them in a maximum of time of 25 5 milliseconds and has the lowest noise variance Pressure is measured in steps of 1 Pa equivalent to 0 01 hPa The pressure data is 19 bits long In order to calculate what the actual pressure is from the raw sensor data the microcontroller needs to read all of the calibration data from the E2PROM The pressure is then calculated by using the algorithm shown below in figure 19 This is important to include because the device would not be usable without this flow diagram This has to be converted to a C program for the microcontroller to run it The altimeter data is used as an absolute altitude The quadcopter takes samples of the pressure when it is idle at the ground station This is the reference altitude for the entire mission After the pressure is calculated through the algorithm it can be converted to meters with the formula below The variable p represents standard pressure at sea level which is 1013 25 hPa The pressure calculated is p Altitude meters 44330 1 m Figure 14 is a summary of the actual figure in the BMP085 altimeter datasheet which is located in Appendix D
203. t tm4c123gh6pm http www raspberrypi org technical help and resource documents http www hobbyking com hobbyking store __43709__ Afro ESC _20Amp_ Mult i_rotor_Motor_Speed_Controller_SimonK_Firmware_ html http www hobbyking com hobbyking store __25081__ NTM_Prop_Drive_Series 28 30S 900kv_270w_ short shaft version html http www hobbyking com hobbyking store __46308__8045_SF_ Props 2pc_Sta ndard_Rotation_2_pc_RH_ Rotation _Red_USA_Warehouse_ html http www hobbyking com hobbyking store __24172 450 Glass _Fiber_Quad copter_Frame_450mm html http www hobbyking com hobbyking store __20791__Turnigy_nano_tech_5000 mah 4S _45_90C_Lipo_ Pack USA _Warehouse_ html http www hobbyking com hobbyking store __8991___Turnigy 9X _9Ch_ Transm itter w_ Module 8ch Receiver Mode 1 v2 Firmware html http www hobbyking com hobbyking store uh_viewitem asp idproduct 25483 amp aff 588847 http www amazon com Raspberry SMP Camera Board Module dp BOOE1GGE40 ref wl_it_ dp_o pd_S_nC ie UTF8 amp colid 3AHXZE FR7P8ZM amp coliid I2D9TFBOV615PM https www sparkfun com products 10724 https www sparkfun com products 11571 https www sparkfun com datasheets Components General BMP085_Flyer_Rev 0 2 March2008 pdf 134
204. tage is proportional to the total voltage on the battery and also below the voltage limitation on the A D pin on the microcontroller For this circuit the input voltage Vi would be taken from the battery and the output voltage Vout would be wired to the A D pin from the positive terminal of the unity gain buffer The first resistor R1 is between nodes Vi and Vo and the second resistor R2 is be between node Vo and ground The resistor values were chosen to be 100kQ resistor for R1 and 400kQ resistor for R2 The equation below gives insight as to the rationale behind the resistor values chosen Oe ae eee 100k vi m aa Io0oka 4000 N5 When the battery is at maximum power the input voltage Vi is equal to 12 6 volts The voltage divider circuit with the given resistor values forces the output voltage Vo to equal one fifth of 12 6 volts or 2 52 volts which is below the voltage threshold of the A D converter pin on the microcontroller which is 3 3 volts As the battery depletes the output voltage Vo decreases proportionally with respect to the input voltage Vi When the microcontroller receives this stepped down voltage Vo there exists code which multiplies the value by 5 before sending the actual voltage to the ground station laptop The team has go through extensive analysis in testing the battery life In this testing phase the team recorded the voltage at the ground station laptop while exhausting the battery until depletion
205. ted enough that the Raspberry Pi and supporting hardware will be able to be ported to any UAV application It should be able to make navigational decisions regardless of the vehicle it runs on DTN2 is the network layer of the communication network being used in the project While running DTN2 users can use APIs or user interface commands to send messages files or even stream data Essentially DTN2 is a virtual router that can be implemented on any computer This powerful application can prevent data from being lost from bad transmission or delays More about the DTN2 application will be explained in the next section The daemon for DTN2 will be running in the background while the computer handles the other navigation and imagery functions In Figure 27 the startup process for the Navigation computer is shown It is critical to make sure that all the applications being used are opened and assigned priorities The peripherals for the project also need to be opened as well so that they can be used by the Navigation applications After a quick system check the software then moves into a system script that opens and handles the command parser Navigation imagery and telemetry applications The Navigation computer will have the task of communicating with the flight computer as well as the ground station 64 EEL 4915 Senior Design II Group 14 Final Document KIRC Project Boot Up e Boot Linux Startup Script Startup Script
206. ted in both directions The Raspberry Pi was able to send statuses and other information periodically Next the range between the two devices was tested This test did not require DTN The Raspberry Pi remained at ground level One team member walked away with the Raspberry Pi connected to the laptop via Wi Fi and saw he could go about 50 feet before the connection was lost This was the approximate distance that the quadcopter can fly away from the ground station The Raspberry Pi required a 5V power source and the Tiva C microcontroller required a 3 3V power supply The only source of power on the quadcopter is the 12 6V Li Po battery The ESC s provided a 5V source up to 500 mA each totaling 2 amps These were tested in order to prevent a brown or blackout for the processors They were first tested by connecting them to a fully charged battery Next they had a test load that pulls a little more than what the maximum power consumption was on the microcontroller and the Raspberry Pi The voltage remained at 5V The battery was then discharged down to 11V This did not cause the voltage to dip on the output of the regulators This was important to test because having a low battery would cause the flight microcontroller to turn off and the quadcopter would crash All of these components were tested rigorously to ensure that there would be no problems during flight The power train was the main system in this section that was tested
207. ters current location both of their specific altitudes and the battery voltage on both quadcopters Although the avionics computer serves as the direct communicator to the global positioning sensor on board the avionics computer sends the information from the GPS sensor to the Raspberry Pi which relays these coordinates to the ground station 29 EEL 4915 Senior Design II Group 14 Final Document KIRC Project via the wireless network One may wonder why the GPS sensor is not directly connected to the Raspberry Pi An explanation to be discussed in the next section 4 2 software operation lies in the way the autonomous flight was planned to be implemented 4 2 Software Operation The software operation has gone through several changes as the design phase has progressed As mentioned in the previous section 4 1 hardware operation the team has gone through some debate as to exactly what tasks are to be handled by the Raspberry Pi navigational computer the microcontroller avionics computer and the ground station laptop This section presents an overview of what the team has decided upon for the software to be programmed on each of these three computer systems To begin the team first focused on the software to program the manual flight of the quadcopter The team accomplished manual flight using an RC controller on land which sends signals to a receiver connected to the avionics flight computer The team programed the flight computer
208. ters a description of the interfacing abilities were given In order to avoid wasting time on a component that only used USB communication instead of the desired I2C making reading through pages of datasheet while verifying other specification needs Sparkfun immediately stated that this altimeter interfaced with I2C as well as USB The sensor stick that would be implemented for initial testing and board development was to be acquired from Sparkfun In addition to providing the datasheets for all of the sensors that were implemented on the breakout board Sparkfun also provided a full schematic of the card As the project moved forward with the design and development of 95 EEL 4915 Senior Design II Group 14 Final Document KIRC Project the PCB having a basis for schematic design for most of the sensors fast tracked the process If supplying the schematic weren t enough Sparkfun also supplied an Eagle file Eagle being popular PCB design software of the breakout board itself By supplying this file to the customer Sparkfun allowed for an easy integration of parts not already included in the library If such a file were not provided and the parts used were not provided in the Eagle library i e the sensor chips the designer was forced to go through a painstaking process of adding the part to the library and in the case of the school provided libraries not additions to the library were saved overnight Another useful distributor of c
209. ters themselves In Figure 64 64 below is the preliminary budget for the entire project This budget does not include the exact parts and their costs but it was based on a preliminary web search of parts and costs based on things needed for the project Parts already acquired or freely available via free samples were not added parts into the total cost of the project Each price estimate for each thing on the budget was rounded up to the nearest 5 and a quantity of each was given Based on this estimate the team came up with a rough cost of about 800 for the whole project This included all the physical parts the batteries the avionics the computers and receivers Keep in mind however that this is not the actual budget provided later but a preliminary estimate and allocation table based on initial estimates and research Figure 65 on the next page shows the breakdown of the parts overall 123 EEL 4915 Senior Design II Final Document Group 14 KIRC Project Price Need By I TY Total Category tem Q Ea otal Date Status Quad ControlSys Microcontroller Launchpad 2 31500 320 00 eee To be acquired IMU Sensor Unit 2 25 00 50 00 9 30 2013 To be acquired GPS Unit 2 50 00 100 00 9 30 2013 To be acquired Quad FlightSys Speed Controller g 10 00 80 00 11 4 2013 To be acquired Motors g 20 00
210. tes or to cooperative image an area There are also safety commands such as return home hover or land quadcopter The home location should be set every flight All the commands are bound into a user interface program that is stored on the ground station computer The parsed commands are then be sent to the quadcopters where they are interpreted as instructions EEL 4915 Senior Design II Group 14 Final Document KIRC Project The imagery portion of the project was designed to be done using a simple bread crumb trail GPS coordinate system After the quadcopters computers boot up a user can input commands to autonomously image an area based on a four coordinate boundary In order to do this the plan was to have each quadcopter choose half of the boundary From this each quadcopter would make a flight path that would include locations to stop hover take a picture and move on The locations where the quadcopters would decide to stop depends on the horizon of the camera and the altitude of the quadcopter Each of these locations can be calculated real time based on these parameters The KIRC Project was split into three prototyping phases Ultimately the team planned to produce two completely autonomous reconnaissance quadcopters The first phase was to create a manually controlled prototype that would allow the team to refine the flight stability algorithms before moving to an autonomous flight system The second phase was to convert the qua
211. that the computer will have to keep taking images from the camera and storing them on the SD card The lowest priority job will be to send data over the network using DTN2 All of these processes will make up the software of the navigation control system Below in figure 26 is the navigation computer software overview diagram This shows how the operating system fits into the software for the navigation computer In fact the applications developed for the navigation computer will run on top of the operating system while the operating system handles all priorities resources and storage 63 EEL 4915 Senior Design II Group 14 Final Document KIRC Project Tasks Processes Navigation Imagery gt rat o To a Data Transmit DTN2 Daemon SIdV Linux Kernel Task Schedule Hardware Drivers eg UART USB Flash Figure 26 Navigation Computer Software Overview The main reason behind using the Raspberry Pi is NASA s requirement to use the DTN2 software The DTN2 application has only been developed to work on Linux so far This means that the DTN2 application would not run on the Tiva C without major modifications So it was decided that the Raspberry Pi would be used for this function Another goal behind using the Raspberry Pi is to make the Navigation computer interchangeable When the Navigation computer receives information from the flight computer the goal is to make the dynamics abstrac
212. that it can have a fast and accurate enough response time and damp any unwanted oscillations The compensator of choice for this project is the PID controller otherwise known as the Proportional Integral Derivative controller This controller gets its name from exactly what it does to the input That is this controller multiplies the error input by a 59 EEL 4915 Senior Design Il Group 14 Final Document KIRC Project proportional value integrates it derives it and sums them up The equation below shows an equation for the output de t dt t output u t Kpe t K e t dt Kp 0 Each term in the equation brings some form of value to the compensator For instance both the integral and the proportional terms tend to drive the error to zero but increases instability in terms of oscillations The derivative term damps oscillations and makes the system more stable but slows the response and creates steady state error The integral term by itself also gets rid of any steady state error With each term contributing as a whole to PID controller the brunt of the design is to determine the gains Kp K and Kg terms of the controller There are several methods to determine these terms and all of them are right but each has advantages and disadvantages The team narrowed the search to just two methods and eventually decided on one of them The first method finding the plant dynamics and using classical control theory to f
213. the supply voltage Using a 3 3V power source scaled the output by 1 77 on the X and Y axis and 1 47 on the Z axis Since the accelerometer was set in the 2 range and the power supply was 3 3V the output fell within the following scaled parameters e 88 5 lt Xaxis lt 955 8 e 955 8 lt Y axis lt 88 5 e 110 3 lt Z axis lt 1286 3 When all of the axes were within the boundaries testing was continued If they were not then the test would have been repeated When the self test continues the other three gravitational force ranges were checked to see if something may have been wrong with the initial parameters The accelerometer would have been replaced if the required ranges were not satisfied Next MATLAB was used to graph the data in real time All three axes were tested The magnitude of each motion was documented in order for the team to fine tune the sensor data into realistic values for the microcontroller to make determinations from This test was analyzed with movements in a similar magnitude that the accelerometer would feel on the quadcopter The new data that comes through the FIFO and placed in the registers was updated at a rate of 800 Hz The gyroscope does not have a self test feature It was tested similarly to the accelerometer by having the microcontroller forward the data to a laptop and viewing the results in MATLAB This data was read from the upper and lower half registers of the X Y and Z axes All directions of movem
214. the team was able to pinpoint the issues and this feature helped expedite this troubleshooting process Initially in phase one s design the microcontroller and the IMU sensor stick were connected using a perforated board This perforated board was mounted to the bottom of the Tiva C launchpad and both were zip tied to the top plate of the quadcopter frame This perforated board design turned out to be very effective in keeping the IMU sensor stick level necessary for initialization of control system algorithm The control system was coded in a way that every time the system powers on the IMU components read 24 EEL 4915 Senior Design II Group 14 Final Document KIRC Project their orientation at that moment and recognize this starting orientation the so called level plane to which the motors compensate to during flight One disadvantage of this method was the team needed to make sure the quadcopter was level every single time the team powered the quadcopter on The team also implemented a timer of about 2 seconds before any motors were enabled this allowed the team member powering on the quadcopter to move out of the way in the off chance the quadcopter s motors throttled on directly after powering the system thus minimizing injury to the team members The perforated board was not necessary after the implementation of the PBC because the IMU sensor components are surface mounted directly onto the board The Tiva C Launchpad th
215. to a faster speed at measuring changes in location When choosing a Global Positioning System especially with a small target like a quad copter and a need for precision sensitivity was crucial to the outcome of the system In order to maintain route and avoid missing images in the mapping process the sensitivity needed to be less than 160dBm during tracking and navigation 15 EEL 4915 Senior Design II Group 14 Final Document KIRC Project Table 2 shown below contains a list of the GPS units considered One of the concerns for the GPS was the startup time This was known as the TTFF or time to first fix The drain on the power source being the limiting factor on the flight time of this project brought the requirement that the TTFF be less than 30 seconds With a startup procedure that could enable a low power part with long start up time as this one before powering more high power components would assist in the longevity of flight This part would also need to have low powered but with these components power is usually not a real issue When it came to the budget of this project being cost efficient was important The budget set before this project was one of the major challenges due to the desire to replicate For this reason all of the components used needed to be efficiently chosen to be cheap and up to our specification needs Name vender PONET Number TTFF Sensitivity Price channels seconds d
216. trol system tuning This was not too detrimental to the progress of the project however and only proved to be a minor setback over the long run Even though not all the deliverables were achieved the concept of the project was shown as a viable one and there were enough deliverables completed to make both NASA and Dr Richie happy Overall though the team has tried to stick to the schedule as the guideline of where the team should be at what point and it has kept them on track to complete most of the deliverables 9 2 Budget and Finance Most of the budget for the KIRC project came from an unofficial NASA sponsorship The project has been given a rough budget of about 1000 to order parts necessary for outfitting the quadcopter but the team has to buy the quadcopter parts themselves These parts were eventually donated by Marc Seibert the team s advisor from NASA With the budget set by NASA and the donated parts from Marc Seibert the team has to allocate enough money for all parts In this section the budget allocation the most up to date bill of parts and any issues encountered so far with acquisition of parts With NASA s allocation of 1000 dollars the team decided to allocate about 200 for avionics and control parts 400 for quadcopter physical parts and the rest of the budget for other miscellaneous parts The goal was to make the cost of the quadcopters as little as possible while not limiting the functionality of the quadcop
217. uadcopter in flight AS one may imagine pressing the right joystick on the RC controller from right to left also depends on how the front of the quadcopter is oriented In orientation I the two side motors speeds are manipulated with to change the roll of the quadcopter In orientation II either the all four motors speeds can be changed to roll left or right The team has decided to choose orientation II because orientation II has the potential for greater torque during turns This larger torque is possible because the team can program the quadcopter to utilize all four motors during turns in orientation II In orientation I the maximum amount of motors utilized in turning is only two These concepts were taken into consideration during the programming of the manual flight mode To program the autonomous flight mode the team s avionics computer planned to use the Tiva C series ARM Cortex microcontroller running an RTOS or a real time operating system It should be mentioned that the team did indeed implement an RTOS for the manual flight for this reason An RTOS is necessary for the information from the IMU to be transmitted rather quickly in order to quickly stabilize the quadcopter during flight The avionics computer has a high frequency of checking altitude orientation and velocity to prevent the quadcopter from traveling off course or crashing By contrast the information coming from the GPS was not need to be checked as quickl
218. ue to the fact that this design included a lot of opportunity for mechanical design components it was a great resource to have the opportunity to use a supply such as Hobby King that made these specifications easy and straightforward for understanding Upon selection of a part the buyer was immediately met with multiple images on different angles of the part a brief description and an organized summary table of part specifications including but not limited to dimensions and weight When choosing the motors for this design there was no necessity of undergoing a study of dynamics in order to decide on propeller size Hobby King provided current pull associated with different propeller lengths In addition due to the fact that this was equipment specifically used for development of aeronautical systems the specifications on each part were isolated to only the data needed for implementation in such a system Sparkfun was another useful resource in the acquisition of electronic components and testing cards Both the four sensors used gyroscope altimeter digital compass and accelerometer and the testing sensor stick was found on Sparkfun When it came to design Sparkfun had many beneficial additions that simply ordering from some large part distributor would not have provided When inquiring into different parts Sparkfun had the additional benefit of giving a brief bit of background and critical choosing points When looking into different altime
219. uit The other remaining components would be powered by either the microcontroller or the Raspberry Pi There is in fact one more circuit that is included on the breadboard which is related to the power distribution system though not vital to the systems functionality The team decided to add a so called battery life feature to the quadcopter in phases two and three In order to measure the amount of battery life in the power source the team utilized one of the analog to digital converter pins on the microcontroller The idea is as follows the microcontroller periodically reads in a DC analog voltage from the battery The microcontroller takes this analog input and converts it to a digital signal The team sends this digital voltage from the microcontroller to the Raspberry Pi which then sends the battery voltage wirelessly to the ground station using the Wifi card At the ground station laptop the graphical user interface would display The GUI updates in real time upon receiving the packets from navigational computer Because the analog to digital converter pin on the microcontroller cannot exceed a specified voltage the team engineered a solution to step down the voltage from the battery to stay below the microcontroller s voltage limitations A voltage divider circuit 25 EEL 4915 Senior Design II Group 14 Final Document KIRC Project using two resistors and an operational amplifier was sufficient because the scaled down vol
220. uld have expanded which causes permanent damage 110 EEL 4915 Senior Design II Group 14 Final Document KIRC Project The motors and the electronic speed controllers ESCs were tested together The motor controllers were tested using pulse width modulation from the microcontroller The motors were tested the entire voltage speed range The ESC was able to drive the motor at full speed and completely stop the motor This tested the functionality of the ESCs and the motors since they should work at any speed in between the supported ranges The total current of one motor and ESC combined did not exceed 18 amps with or without the propellers attached The speed and torque was verified and nearly identical for each of the four motors with ESCs The current they pulled at each speed was observed through the entire voltage range with the blades on so the team has a current profile to calculate minimum and maximum current consumption and runtime The thrust was measured using a weight and a digital scale The motor and propeller were attached to the weight to hold it down Once everything was on the digital scale the total weight was subtracted by using the built in tare feature on the scale The thrust was negative Each motor was compared for consistency The USB Wi Fi dongle in the Raspberry Pi was connected to the laptop through its Wi Fi card This required the laptop to host a network and the Raspberry Pi joined it Communication was tes
221. ve bias and changing MSO to 0 when testing the negative bias The complete algorithm for the self test is covered in Section 7 The data registers shown in Figure 13 for the magnetometer are similar to the gyroscope because they are separated by two 8 bit registers high and low The difference is the order that roll pitch and yaw are in 49 EEL 4915 Senior Design II Group 14 Final Document KIRC Project 8 bit Registers Description 3 MSB Upper half of the roll x axis 4 LSB Lower half of the roll x axis 5 MSB Upper half of the yaw z axis 6 LSB Lower half of the yaw z axis 7 MSB Upper half of the pitch y axis 8 LSB Lower half of the pitch y axis Figure 13 Magnetometer Data Registers For flight Configuration Register A bits CRA5 to CRA6 are both set to zero so none of the samples are averaged per measurement output Bits CRA4 to CRA2 will be b110 for a maximum data output rate of 75 Hz The final two bits are both set to zero for normal measurement Putting this all together the CRA register is set to 0x18 Configuration Register B controls the device gain This will be set to OxA0O since only CRB7 to CRB5 set the gain which is 5 followed by zeros The output values range from OxF800 to OxO7FF This is be used in the default 1 3 Ga range since the earth s magnetic field does not exceed 1 Gauss This is done by setting bits CRB7 and CRB6 to 0 and CRBS to 1 The digital altimeter is par
222. ve for the use of OSH Park for fabrication was the haste with which they completed the board For a 2 layer board as basic as possible there was a maximum of 9 day turnaround time and for the 4 layer it was slightly greater than two weeks depending on the quantity of work placed before them In a situation where there will be test equipment available for continuation of testing while the PCB was being made and populated the lead time wasn t a great issue however any unnecessary time that wasn t taken advantage of to verify performance of the PCB was a hindrance on the program Doing a project for a company like NASA allowed for many benefits because of the strength of resources they could provide both personnel and material Due to the fact that NASA was mostly sponsoring this program the price wasn t really a large issue When taking into account the cost of fabrication for this board would be materials and the amount of time that it takes to fabricate hindering the development of other internal projects For this reason timing was an obstacle In order to avoid hindering other program development the PCB needed to be ready for fabrication early and on a moment s notice If it so happened that the schedule allowed for a break long enough for fabrication it would be critical to get the board developed before anything could alter it This presented another issue however If this plan of action was implemented and the PCB design was yet to b
223. verter e Needed to have Real Time Operating System RTOS support e 32 Bit Processor with fast enough clock rate to perform all control functions reasonably e Needed to have a Launchpad PCB available for prototyping e Needed to have individual microcontroller available for own PCB development With these factors in mind research was made into different microcontrollers from different vendors There were four options that stood out from a controller perspective that closely fit these requirements In table 1 on the next page the four microcontrollers were compared for the decision factors for this project 13 EEL 4915 Senior Design II Group 14 Final Document KIRC Project De est eae a Vendor Processor Support Availability Price Launchpad unose_ ovgtent eicszmnazorizs no standene 265 Piccolo Launchpad Launchpad Tl F28027F Yes Standalone 17 00 Stellaris Launchpad Tl EK LMF120XL Yes Launchpad only 13 49 Tiva C Launchpad Launchpad Tl TM4C123GH6PMI Yes Standalone 12 99 Table 1 Comparison of Select Microcontrollers The final decision was to go with the Tiva C Launchpad from Texas Instruments for the prototyping part of the project and then obtain the chip and embed it in its own PCB with all the peripherals already integrated While all the microcontrollers would have worked for the project the Tiva C was decided based on the price and performance The Tiva C is a very capable microcontroller w
224. vidually clicked on and set as a new lens The projection is set to rectilinear and positioning is done in mosaic mode Each image is optimized separately since it was taken independently from the other images The final image is stitched together and saved as a JPEG image file type File Edit View Interface Help DRAGl 4 e cme S a Photos Masks Control Points Stitcher Filename Width Height Anchor CtriP Lensno Stack no 0 20131122_144702 jpg 3264 2448 AC 56 0 0 1 20131122_144710 jpg 3264 2448 60 0 1 2 20131122_144714 jpg 3264 2448 64 0 2 3 20131122 144718 6 0 3 Edit image variables Add individual images Add time series of images Remove selected image s Anchor this image for position Anchor this image for exposure Lens New lens Load lens from Lensfun database gt Stacks Load lens from ini file Control points Reset Save lens to ini file Save lens parameters to lensfun database Save camera parameters to lensfun database Figure 44 New Lens Setting Figure 45 shows six individual pictures taken of a fence in a backyard Each picture was taken at a different location on the ground The angles are also different intentionally which was not the case with the quadcopter but it was done in this example to show that Hugin can adjust the pictures accordingly regardless of the different angles Also this object is much closer than the objects that were taken during the miss
225. wever some form of digital feedback is necessary in order to have an estimate of the orientation Unfortunately all digital sensors have inherent noise in the system which is unfortunately unavoidable This noise however can be reduced by using the proper filtering algorithm The control and filtering algorithms used in this project are analyzed in this section One of the first things to establish when designing the control system for the quadcopter is the orientation The quadcopter must have an established orientation in order to base all the control assumptions on Figure 17 II shows the assumed orientation of the quadcopter with respect to the direction of travel Figure 17 Quadcopter Movement Orientation In three dimensions the quadcopters attitude is a vector of its three Euler angles Roll Pitch and Yaw These angles will be denoted by the Greek letters 6 and w respectively Figure 18 on the next page shows the orientation of the quadcopter in three dimensional space These conventions will form the basis of the calculations for the control system 54 EEL 4915 Senior Design II Group 14 Final Document KIRC Project Direction of Travel Figure 18 Orientation of the Quadcopter in 3 space In order to move the quadcopter a differential force must be applied on either side of the frame using the motors This differential force creates a coupling moment that causes the quadcopter to spin along an axis For example r
226. with the last n variables After performing this action the last several variables are updated The principle behind this is to only keep the last n variables so that the earlier data doesn t weight the estimate too much but it does filter out significant noise The equation for this filter is given below where d is the last n measurements N is the filter order how many variables saved and n is an index variable 1 N dm dr n 0 A block diagram of the operation is given below in figure 22 for the running average filter This filter is relatively simple and can be implemented with minimal memory and processing power Essentially what happens is whenever new sensor data is ready the filter takes the last N samples averages them and pushes back the last N samples For this project a running average filter of order N 5 was sufficient Take Average Figure 22 Running Average Filter Block Diagram The sensors being used for the inertial measurement unit IMU include the altimeter accelerometer gyroscope and the magnetometer Each of these sensors measures specific quantities that are important to the feedback control system The altimeter measures the altitude of the quadcopter using the pressure and temperature of the surroundings The accelerometer measures the forces along all the axes using a piezoelectric resistance sensor The gyroscope works in a similar way but it measures angular rate over all
227. wn below is an underside view of the quadcopter The green rectangular prism represented the board on which the camera was mounted and the black cylinder was the camera itself The four white boxes mounted to the underside of the bottom plate of the frame were made of styro foam The team realized since the bottom plate of the quadcopter was almost level with the ground the camera s lens was actually protruding further than the legs on each wing The addition of styrofoam buffered to the bottom plate of the frame as well as on each support leg kept the bottom of the quadcopter frame elevated off the ground enough to protect the camera from getting damaged by the ground Figure 52 Solidworks Camera Model 92 EEL 4915 Senior Design II Group 14 Final Document KIRC Project To get a general idea of the dimensions of our quadcopter figure 53 below shows a side view of the frame from wing to wing The width of the quadcopter was 450 millimeters in length or approximately a foot and 5 7 inches The height including the buffers the frame the motors and the propellers was 90 millimeters or a little over 3 5 inches This was a relatively large quadcopter The large quadcopter design was beneficial for stability aiding in remaining steady when the camera took pictures at high altitudes 90mm _ _ 450mm Figure 53 Quadcopter Dimensions 93 EEL 4915 Senior Design II Group 14 Final Document KIRC Project 6 Protot
228. y 50 feet the user was able to spin the blades of the quadcopter to confirm that the connection was not broken Once a distance was reached where the controller would no longer communicate with the quadcopter the user would then walk 50 feet towards the quadcopter and see if he could fly the quadcopter to his location Now that the quadcopter could function as it should the team tested the other devices that were used on the quadcopter This included the altimeter magnetometer and GPS The altimeter allowed the microcontroller to know how high the quadcopter was flying With this integrated on the board with the microcontroller it was able to read and adjust to it The first test was to see if the quadcopter could hover more accurately when commands are not being sent by the controller Next the team hardcoded an altitude to reach such as 50 feet and see if the quadcopter could recognize that it reached that height by turning on a red LED when it was flown to that height The LED stayed on for visibility purposes The next test was to simulate a landing This will simply blink an LED at a fixed rate when the quadcopter is above 5 feet When the quadcopter descends the LED will blink faster the closer it gets to the ground When the altimeter detected that the quadcopter was within a foot off the ground the LED turned off The magnetometer was easy to test since it only involved the quadcopter s rotation on the Z axis yaw When the copter was
229. y because it s 31 EEL 4915 Senior Design II Group 14 Final Document KIRC Project coordinates in space are not nearly as important The team programmed so called priority tasks on the RTOS or in other words the RTOS ran the more important tasks in the avionics computer more frequently than the less important tasks The navigational computer and the avionics computer of each quadcopter were programmed to provide the potential for autonomous flight The avionics computer was inadvertently used to control the motors in flight and the navigational computer was used to keep track of where the quadcopter is located at any given point in time In the future the avionics computer was to use this location of the quadcopter along with the desired location to autonomously drive the motors to fly the quadcopter to a desired location The avionics computer successfully took in data from the GPS sensor and sent this information directly to the navigational computer When traveling the team planned for the navigational computer to constantly compare the GPS coordinates of where it was currently located in space with the location it was to travel to The navigational computer was to subtract the location of its current coordinate from the desired coordinate to generate a direction in which the quadcopter is to travel The avionics computer was to receive this directional vector and compute some computations to extrapolate a specific thrust yaw pitch and r
230. y shifts control of the quadcopter to a user with a RC controller This mode is the preferred way of dealing with emergencies over completely cutting the motors which is why there should always be a skilled pilot available to stop the quadcopter from crashing just in case In all the states of the quadcopter s guidance state machine the flight computer will still be constantly running the PID loop and stabilizing the quadcopter The only exceptions to this of course are the startup and standby states where the quadcopters won t be flying The other states will be running the loops and constantly be processing data while achieving the tasks of each state The most important part of the guidance system the ability to find a path from one location to another is critical to whether or not the quadcopter will be able to fly autonomously The quadcopter will have to be able to take in a GPS coordinate and compare it to its current location find a vector from its current location to the new one and fly itself to that point illustrated in Figure 30 The difference of distance between the two points will create a vector that will help guide the quadcopter to the proper location Coordinate 2 Coordinate 1 Figure 30 GPS Coordinate to Navigation Vector Transformation When using GPS the relative position between two objects can be found by subtracting the distances between the two points If the GPS coordinates are already translate
231. ype Construction amp Coding The following sections will proceed to explain part acquisition PCB design and assembly part integration and a brief coding overview Part acquisition includes any distributors and resources that will be used in order to gain access to needed passive and active components In part integration the off board interfacing is discussed for PCB communication see the PCB design section in the design analysis chapter and assembly will describe the layout size of board and optional manufacturers to fabricate the board Lastly the code overview describes the operating systems and compilers to be used as well as a description of the software to be tested 6 1 Parts Acquisition When keeping a project to a low budget not only was part selection an important factor the distributor became a resource to compare This project was unofficially sponsored by the National Aeronautics and Space Administration NASA and for that reason this organization would be supplying all funds for part acquisition with few exceptions An advantage of being involved with such a prestigious organization was the ability to have many passive and active components on hand for use as well as the ability for board development if necessary was a capability handled internally by NASA The first part chosen was the microcontroller a TM4C123GH6PM produced by Texas Instruments Texas Instruments Incorporated TI was a useful resource for many aspects

Download Pdf Manuals

image

Related Search

Related Contents

Wiko HIGHWAY Signs 8GB White  FHR-42800-DBH    InFocus SP-CWRS232 Network Card User Manual  取扱説明書  Access Care and Complications Management  ӕৢᛟଢ୿ᲠȑȸȄǫǿȭǰ  Targus Notebook Accessories Kit  Zones Humides - Le réseau documentaire sur l`environnement  Télécharger le pdf 2  

Copyright © All rights reserved.
Failed to retrieve file