REMOTELY OPERATED AERIAL SURVEILLANCE SYSTEM TRIBHUVAN UNIVERSITY

Size: px
Start display at page:

Download "REMOTELY OPERATED AERIAL SURVEILLANCE SYSTEM TRIBHUVAN UNIVERSITY"

Transcription

1 A STUDY ON REMOTELY OPERATED AERIAL SURVEILLANCE SYSTEM BY HARI BHUSAL TRIBHUVAN UNIVERSITY INSTITUTE OF ENGINEERING PASCHIMANCHAL CAMPUS POKHARA, NEPAL

2 Abstract With the advancement in Science and Technology, a flexible and reliable monitoring system has always been a demanding issue for security concern. This proposal presents a realistic design of an effective surveillance system capable of performing its business on various military fields. Remotely Operated Aerial Surveillance System (ROASS) is a Quad-Copter based aerial monitoring and observation system. ROASS uses a quad-propeller driven stable platform as the foundation for video surveillance. Quad-Rotor uses a 700MHz minicomputer as its on-board controller, and relies upon the data from the webpage installed on ground PC to be controlled. The Communication, between PC and aerial platform is carried out through a highly secured wireless network (Wi-Fi). Design uses all the needy things organized in a proper format that even an inexperienced user can easily control the system. Together with the latest technological features as Accelerometer, Gyro meter, Ultrasonic and GPS, RPASS system stands as a causative monitoring system to be picked on military. Design of ROASS is completely military based and is not limited to single purpose only. ROASS can be used for aerial visual surveillance of places, human and disastrous scenario for rescue operations, protection from intrusion, and many more. With the implementation of ROASS, more throughputs can be earned with minimum of expenses. 2

3 CHAPTER 1: INTRODUCTION 1.1 Overview: Unmanned aerial vehicles (UAVs) are aircrafts capable of flight without an on-board operator. Such vehicles are operated from ground. UAVs are highly valued for their ability to remotely search wide areas without the risk of traditional manned aircraft and have high potential for use in remote sensing applications, surveillance and scientific research. The popularity of UAV Quadrotors has been only among military applications in early days. However, with the development of powerful and light weight electronics it is possible to build Quadrotors with variety of sizes for different applications. Quadrotors particularly have been getting quite a lot of attention lately due to several reasons. One of these reasons is the fact that a Quadrotor is relatively easy to build and assemble, having less mechanical complexities than other aircraft such as helicopters. Another reason is the fact that the design of a Quadrotor depends on four propellers instead of one big rotor, thereby making it to generate less kinetic energy, so in a case of crash the damage would be less catastrophic and easier to fix and maintain. Also the relative small size of a Quadrotor, which could also be big in several applications, makes it suitable for surveillance and other tasks where small size is critical. The ability to control and hover a 3

4 Quadrotor in low-speeds and its outstanding maneuverability makes it perform in an excellent manner in aerial photography, scientific exploration, and small-sized items transportation. Search & Rescue in places that are dangerous or unreachable for humans, Quadrotors can do the job in searching and stream live images of the scene. Remotely Operated Aerial Surveillance System (ROASS) in fact is a Quadrotor-UAV. Moreover, it is an aerial monitoring and observation system. It uses Raspberry-Pi and Arduino Uno as it s on board controllers along with a web cam to serve the purpose of surveillance. Raspberry Pi is a mini computer, which means it can perform the operation equivalent to a normal computer. Here, the basic idea is to make a Raspberry Pi as a server and communicate to the ground control through Wi-Fi connection. The overall system is controlled through a Web page. The main advantage of using such communication is the access to control through wide variety of web enabled devices, such as Mobile Phones. Another advantage is, user can get the continuous visual feedback in the web page while routing and controlling. ROASS uses an electronic control system and electronic sensors to stabilize the aircraft. The strong control mechanism on it makes it very attractive to different users. However, this proposal does not concern on developing a UAV platform, but concerns on using a UAV (made from assembling different mechanical components designed for Quad-rotor) for visual surveillance with our own control system. 1.2 Statement of problem: Use of large manned aircrafts, such as helicopters, for surveillance, news reporting and rescue operations have been common these days. These aircrafts are doing extremely well in military fields. Such aircrafts can deploy army troops at desired locations and have been playing major role in various military businesses. But, use of huge aircrafts has several disadvantages too. The problems can be summarized as: 4

5 Structures are quite huge and it is difficult to handle them. Beside this, they produce loud noise which makes them inconvenient to use for close and silent surveillance. They need regular maintenance, otherwise, can meet a disastrous crash. Huge aircrafts are expensive and maintenance cost is also too high. They need lots of fuel, which again increases the running cost. Such aircrafts need experienced pilots. There has always been a risk of life when they crash. It can cause losses of lives and huge amount of property. 1.3 Objectives and Goals: The main objective of this proposal is to provide a practical aerial surveillance system. The objectives are listed as: To provide a stable hover with active control system taking dynamic information from the sensors mounted on aircraft. To provide the visual information to the ground operator. To provide easy-to-drive Web application, so that even an inexperienced user can control the system. We have set following goals for our project: To understand the complex control system associated with aerial platform. To demonstrate a practical system with the implementation of closed loop control system. 5

6 CHAPTER 2: LITERATURE REVIEW 2.1 Aerial Vehicles: Aerial Vehicles can be broadly classified into Rotary wing and Fixed Wing aircrafts. A rotorcraft (rotary wing aircraft) is a heavier-than-air flying machine that uses lift generated by wings, called rotor blades, which revolve around a mast. Helicopters, gyro dynes and auto gyros are examples of rotorcrafts. A fixed-wing aircraft, typically called an aero plane, airplane or simply plane, is an aircraft capable of flight using forward motion that generates lift as the wing moves through the air. Fighter jets and gliders are examples of fixed wing aircrafts. 2.2 Unmanned Aerial Vehicles: A UAV is defined as a powered, aerial vehicle that does not carry a human operator, uses aerodynamic forces to provide vehicle lift, can fly autonomously or be piloted remotely, can be expendable or recoverable, and can carry a lethal or nonlethal payload. UAVs have far reaching applications. A few examples are:- 1. Target and decoy providing ground and aerial gunnery a target that simulates an enemy aircraft or missile 2. Reconnaissance providing battlefield intelligence 6

7 3. Combat providing attack capability for high-risk missions 4. Logistics UAVs specifically designed for cargo and logistics operation 5. Research and development used to further develop UAV technologies to be integrated into field deployed UAV aircraft 6. Civil and Commercial UAVs UAVs specifically designed for civil and commercial applications. 2.3 Quad Rotor UAVs: The quad rotor is an aerial vehicle whose motion is based on the speed of four motors. There are six degrees of freedom translational and rotational parameters. These are being controlled by 4 actuating signals. The x and y axis translational motion are coupled with the roll and pitch. Thus we need to constantly monitor the state of the system, and give appropriate control signals to the motors. The variation in speeds of the motors based on these signals will help stabilize the system. The thrust produced by the motors should lift the quad rotor structure, the motors themselves and the electronic components associated with quad rotor control. An optimum quad rotor design using light and strong materials can help reduce the weight of the quad rotor. This will be one of the challenges faced during the course of the project. The hardware assembly should also be as accurate as possible to avoid any vibrations which will affect the sensors. This will make the control system perform more effectively. The complexity in the control system of the quad rotor is accounted for by the minimal mechanical complexity of the system. Less maintenance is required as well. As 4 small rotors are being used instead of one big rotor, there is less kinetic energy and thus, less damage in case of accidents. There is also no need of rotor shaft tilting. 7

8 Due to these advantages, the quad rotor is considered as an optimum platform for unmanned aerial vehicles. 2.4 Literature: In 1907, the Breguet Brothers constructed the first quad-rotor named Gyroplane. The flight was a good work to show the principle of a quad rotor. In 1922, Georges de Bothezat built a quad rotor with a rotor located at each end of a truss structure of intersecting beams, placed in the shape of a cross. Experimental aircrafts X-19 and Bell X-22A are also designed as quad-tilt rotor aircrafts. In time due to the tremendous improvements in manufacturing techniques and innovations in metallurgical material knowledge more precise and smaller sensors can now be produced. The Microelectromechanical Systems (MEMs) technology now allows the production of machine components such as gears with sizes in 10-6 meter range. Using this MEMS technology very small accelerometers, gyros and magnetometers are also produced, which caused the production of smaller strap down inertial navigation systems. 8

9 CHAPTER 3: STRUCTURE AND DYNAMICS 3.1 Quad Rotor Structure: A Quad rotor is an aerial vehicle that generates lift with four rotors. The craft is controlled by varying the rpm and not by using any mechanical actuators like in a helicopter. This makes it particularly suitable for UAVs. The craft requires active control of six degrees of freedom to fly and is inherently unstable. Fig 3.1: Quadcoptor Design The Quad Rotor layout is shown Figure 3.1. There are two arms, each having motors at its ends. The motors 1 and 3, which are mounted on the same arm, rotate in the clockwise 9

10 direction while the motors 2 and 4, mounted on the second arm, rotate in the anti- clockwise arrangement. Both motors at opposite ends of the same arm should rotate in same direction to prevent torque imbalance during linear flight. 3.2 Quad-Rotor dynamics: Generally, the quad rotor can be modeled with four rotors in cross configuration. The whole model can be considered as a rigid body. Figure 3.2 illustrates the basic motion control of the quad rotor. In this section, the thrust produced is proportional to the thickness of the arrows in the figures. Fig 3.2: Quad-copter control mechanism Two of the motors rotate in the clockwise direction while the other two rotate in the anticlockwise direction. The reference axes are represented in the figure Altitude Motion: 10

11 The throttle movement is provided by increasing (or decreasing) the speed of all the rotors by the same amount. It leads a vertical force with respect to body-fixed frame which raises or lowers the quad rotor. Fig 3.3: Decreasing Altitude Fig 3.4: Hovering Condition Roll Motion: The roll movement is provided by increasing (or decreasing) the left rotor s speed and at the same time decreasing (or increasing) the right rotor s speed. It leads to a torque with 11

12 respect to the central axis as shown in Fig 3.5 which makes the quad rotor roll. The overall vertical thrust is the same as in hovering. Fig 3.5: Roll Motion Pitch Motion: The pitch movement is provided by increasing (or decreasing) the front rotor s speed and at the same time decreasing (or increasing) the back rotor s speed. It leads to a torque with respect to the central axis. The overall vertical thrust is the same as in hovering Yaw Motion: The yaw movement is provided by increasing (or decreasing) the front-rear rotors speed and at the same time decreasing (or increasing) the left-right couple. It leads to a torque which makes the quad rotor turn in horizon level. The overall vertical thrust is the same as in hovering. 12

13 Fig 3.6: Yaw Motion [9] Conclusion: All the above figures reveal the motion of a Quadrotor. With these Roll, Yaw and Pitch motion the flight can be controlled; by varying Roll, Pitch, and Yaw we can easily control the movement of ROASS in a desired way. 13

14 CHAPTER 4: HARDWARE DETAILS 4.1 Selected Frame (Frame Characteristics): The basic step is to begin with a proper skeleton of the Quadrotor, the frame. Selecting a frame to fulfill the required need is essential, critical and is not an easy task. The frame should be light-weight yet strong to tolerate possible accidents and crashes. Ultimately the goal is to reach the best possible flight time, and to do so the weight of the frame should be minimal. Beside these basic characteristics, there are some other aspects as well. Such as frame length (the distance between two opposite motor) and landing gear. Frame length is desired to be as small as possible. For ROASS, we have selected plus-frame with following specification. Specifications: (Built from quality aluminum alloy and polyamide nylon) Width: 360mm Height: 90mm Weight: 170g (w/out electronics) Figure 4.1: ROASS s Frame 14

15 4.2 Propeller: The mechanical lifting element of the Quadrotor is the propellers. They do come in different sizes, shapes, and materials; which makes the decision somehow flexible in choosing one. High quality propellers are made by different manufacturers to deliver great performance of lifting power at a very small weight; to minimize the torque needed for spinning them by the motor's rotor. Importantly it is required to have four propellers such that a pair is oriented for clockwise (CW) direction and the other pair for the counter-clockwise (CCW) direction. Figure 4.2: Propeller 4.3 Raspberry Pi: The main controller of ROASS is Raspberry-Pi. Raspberry-Pi is a small computer. It is a 700MHz minicomputer in a sixe equal to credit card. One main advantage of using Raspberry Pi in any system is that it consumes very little power to run (5-watts). However, being in small size it still offers good specifications. It runs Linux operating system, which makes it a powerful minicomputer for such projects and can even provide various features. Since Raspberry Pi make use of Linux optimized OS as main program. It can, therefore, offer good flexibility. It has general purpose input-output pins (GPIO) and with some programming these I/O pins can be used to interface various sensors. Currently, Raspberry-Pi of our system uses Raspbian Wheezy. Raspbian is a free operating system based on Debian optimized for the Raspberry Pi hardware. An operating system is the set of basic programs and utilities that make Raspberry Pi run. 15

16 However, Raspbian provides more than a pure OS; it comes with different packages, precompiled software bundled in a nice format for easy installation on Raspberry Pi. Technical Features: Broadcom BCM2835 SoC full HD multimedia applications processor 700 MHz Low Power ARM1176JZ-F Applications Processor Dual Core VideoCore IV, Multimedia Coprocessor 512MB SDRAM, Dual USB Connector, onboard 10/100 Ethernet RJ45 jack SD, MMC, SDIO card slot Figure 4.3: Raspberry-Pi (Model-B) 4.4 Arduino: Arduino is a tool for making computers that can sense and control more of the physical world than a desktop computer. It's an open-source physical computing platform based on a simple microcontroller board, and a development environment for writing software for the board. 16

17 Figure 4.4: Arduino Board Arduino in ROASS gets all the data from sensors and user data (through Raspberry-pi), processes all these data to generate required PWM. These PWM signals are processed by electronic speed controller before feeding into motors. Arduino computes all the closed loop processes through a strong PID control algorithm. This PID control algorithm is burned on Arduino through an official IDE provided by Ardunino.cc. 4.5 GPS: The Global Positioning System (GPS) is a space-based satellite navigation system that provides location and time information in all weather conditions, anywhere on or near the Earth where there is an unobstructed line of sight to four or more GPS satellites. The system provides critical capabilities to military, civil and commercial users around the world. It is maintained by the United States government and is freely accessible to anyone with a GPS receiver. 17

18 Figure 4.5: GPS Receiver (GSSM3R-M) 4.6 Accelerometer and Gyro-meter (IMU Sensor): An inertial measurement unit, or IMU, is an electronic device that measures and reports on a craft's velocity, orientation, and gravitational forces, using a combination of accelerometers and gyroscopes. Six Degree of Freedom (6-DOF) IMU sensor is accessible through I2C bus which is in fact a combination of two sensors: Accelerometer (ADXL-335) and Gyroscope (ITG-3200). An inertial measurement unit works by detecting the current rate of acceleration using one or more accelerometers, and detects changes in rotational attributes like pitch, roll and yaw using one or more gyroscopes. Figure 4.6: ITG-3200 Sensor Orientation 18

19 Figure 4.7: Inertial Measurement Unit (IMU sensor, 6 DOF) Angular accelerometers measure how the vehicle is rotating in space. Generally, there is at least one sensor for each of the three axes: pitch (nose up and down), yaw (nose left and right) and roll (clockwise or counter-clockwise from the cockpit).linear accelerometers measure non-gravitational accelerations of the vehicle. Since it can move in three axes (up & down, left & right, forward & back), there is a linear accelerometer for each axis. The controller continually calculates the vehicle's current position. First, for each of the six degrees of freedom(x,y,z and θ x, θ y and θ z ), it integrates over time the sensed acceleration, together with an estimate of gravity, to calculate the current velocity. Then it integrates the velocity to calculate the current position. 4.7 Camera For video feed back we have used a simple USB-PC camera with the maximum resolution of 640*480. This normal web-camera can be easily interfaced with Raspberry- Pi. Using such a camera has an advantage of low weight. Since it does not increase the load, it could be easily mounted on the system. For better performances, special camera could be installed. 19

20 Figure 4.8: Normal PC camera without casing 4.8 Battery If we are dealing with aerial platform then one of the first things that cross our mind is the power supply. It is very important to choose an appropriate battery that can deliver maximum flight time. One obvious way is to choose a battery with higher capacity but that would increase the weight. Here in our project we have used a lithium polymer battery with 3000mah capacity (3 cell Lithium-Polymer battery pack from Turnigy). Max Current Draw and Battery C-Rating It s important to note, batteries that we choose can supply enough current for the motors. Max current supplied by the battery can be calculated by this formula: Max current = Capacity * C-rating 20

21 We are also required to list the maximum current limit for our flying machine. Motor datasheet provide the current for full throttle. Multiplying the full-throttle current by 4 and some margin for other equipments, we can get the maximum current. The flight duration can be extended by increasing battery capacity, but at some point increasing the battery capacity does not significantly increase the flight duration. So it is a crucial part and tradeoff should be made. Flight duration Battery Capacity Figure 4.9: Relation between Flight duration and Battery capacity Figure 4.10: Li-Poly battery pack 21

22 4.9 ESC (Electronic Speed Controller) Electronic Speed Controllers are needed to run the brushless motor. The required ESC to run the motor is 20 Ampere, which is safe and enough. Turnigy multistar 20A ESC weighs about 25 gram and support 480Hz update frequency. In fact four ESC are required for four motors. Figure 4.11: Electronic Speed Controller [Turnigy multistar 20A ESC] 22

23 CHAPTER 5: METHODOLOGY 5.1 BLOCK DIAGRAM: The overall system is represented in block diagram. Fig5.1: Overall Block Diagram of the System The above figure reveals the implementation model of the system. Flight controller and ground controller are connected through Wi-Fi. In addition to this, a more detailed block diagram depicting the idea of control mechanism is provided below. 23

24 Ground Control Wi-Fi Brushless Motor Battery Raspberry PI ESC GPS USB Connection Brushless Motor ESC Arduino Controller ESC Brushless Motor Accelerometer ESC Camera Brushless Motor Gyroscope 5.2 Hardware Implementation: Figure 5.2: System overview of the Quad rotor. The first thing in making this system was to assemble all the hardware. Assembling and wiring all the components of Quad rotor is a process that needs extra attention. Starting with the frame which consists of four arms all screwed and tightened up with the center aluminum plate; motors were fitted to the arms. After that comes the wiring and soldering part. When connecting the Motors and ESC s together, the direction of rotation of each 24

25 motor should be considered. All connections were made to the components and the controller. After all those wiring and soldering, ESC were properly calibrated through Arduino program. The components were properly fitted and tested according to their respective datasheets. 5.3 Software Implementation: After assembling all the hardware, it was then time for coding and observing the behavior of code. Quad rotor s main controllers are Raspberry Pi and Arduino, so there is a need of effective communication between Arduino and Raspberry Pi. Communication between these controllers was made through USB port. Raspberry Pi runs an apache Server. We have managed to let these two controllers Arduino and Raspberry Pi talk through USB port via PHP. For this we also developed a simple but effective and user friendly web page. Every time a user sends a certain command through the web page, Apache process it and take certain action. In this way Arduino gets the command from the Raspberry Pi. Raspberry Pi also runs a freely available Motion, a video server. This video server takes the continuous images from web cam connected to the USB port of Raspberry Pi and sends to the main page. It is not only required to send command to Arduino, but it is also required to receive some information from the Arduino as well like GPS data. For this we managed to write a code which runs in Raspberry Pi which in fact collects the data into a certain file. This information also needs to get published in the main page so that a user can continuously observe this information. For this, we felt the need of continuously updating database along with the appropriate software to display it in the page. For this we used MySQL and PHP. After establishing the connection (to write and listen) between Arduino and Raspberry Pi, it was then time to program the Arduino for controlling the speed of motors. All the motors were connected to the Arduino through ESC. Arduino should provide varying PWM signal to each ESC. 25

26 5.4 Control Implementation: The following schematic depicts our controls system. The diagram represents how the control system interacts with the physical system for controlled quad-rotor flight. ROASS is controlled with closed loop-pid control mechanism. Sensors: Gyro and accelerometer combo User inputs: Thrust, pitch, roll, yaw GPS Controller PWM Output Motor Driver MOTOR Fig 5.3: Implementation of control system Controller, upon receiving the data from users and sensors mounted on craft, generates PWM signals for varying the speed of four motors. Accelerometer and Gyro meter senses tilt of the aerial structure, and informs the controller, controller then combines this information from user (roll, pitch and yaw) for balancing the structure. GPS data are processed to gather information about position of ROASS (latitude, longitude, time and date). User gets all the status information such as battery level, distance from the base station, Wi-Fi signal strength, GPS data and all the real time needy information within the Web page. 5.5 PID implementation: A proportional-integral-derivative controller (PID controller) is a generic control loop feedback mechanism (controller). A PID controller calculates an "error" value as the difference between a measured process variable and a desired set point. The controller attempts to minimize the error by adjusting the process control outputs. 26

27 There are 3 algorithms in a PID controller; they are P, I, and D respectively. P depends on the present error, I on the accumulation of past errors, and D is a prediction of future errors, based on current rate of change. To have any kind of control over the Quadcoptor, we need to be able to measure the Quadcoptor sensor output; for example the pitch angle (reading from accelerometer and gyro meter), so we can estimate the error (how far we are from the desired pitch angle, e.g. horizontal, 0 degree). We can then apply the control algorithms to the error, to get the next outputs for the motors aiming to correct the error. Proportional-Integral-Differential (PID) model of ROASS is as provided on fig 5.4. Fig 5.4: PID implementation model For a fine PID implementation, we need to determine the P, I and D values. The variable P controls how much the Quadrotor will alter motor speeds to correct for an offset from the desired tilt. This coefficient determines which is more important, human control or the values measured by the gyroscopes. The higher the coefficient, the higher the Quadcoptor seems more sensitive and reactive to angular change. If it is too low, the Quadcoptor will appear sluggish and will be harder to keep steady. Quadcoptor starts to oscillate with a high frequency when P gain is too high. The I value in turn, can increase the precision of the angular position. For example when the Quadcoptor is disturbed and its angle changes 10 degrees, in theory it remembers how much the angle 27

28 has changed and will return 10 degrees. In practice if we make Quadcoptor go forward and force it to stop, the Quadcoptor will continue for some time to counteract the action. Without this term, the opposition does not last as long. This term is especially useful with irregular wind, and ground effect (turbulence from motors). However, when the I value gets too high, Quadcoptor might begin to have slow reaction and a decrease effect of the Proportional gain as consequence, it will also start to oscillate like having high P gain, but with a lower frequency. The variable D controls how much the Quadrotor will resist sudden rotation. An incorrect ratio of P to D could cause the Quadrotor to be unstable either by being less responsive than desired or by causing oscillations of increasing magnitude. 5.6 Complementary Filter: For efficient control of the Quadcoptor, there is a need to combine the data from the Gyroscope and Accelerometer. A complementary filter solves this problem. It's computationally efficient and it directly addresses both transient horizontal acceleration and long-term gyro drift. The sensor signals, converted to degrees and degrees per second, are the inputs to the filter. The accelerometer angle is low-pass filtered, reducing the influence of short-duration signals but maintaining a long-term average (from gravity). The gyro angular rate is first integrated, to get an estimate of angle, and then high-pass filtered, to remove any long-term drift. The two filtered signals are summed together to create a single angle estimate that combines the best parts of both sensor signals. The basic concept of this filter is to enhance advantages of each sensor. For example, the angular estimation using a gyroscope has a good accuracy in the sense of angular direction at high frequencies and the angular estimation using an accelerometer has a good accuracy at low frequencies. A problem of designing the complementary filter is to determine its coefficients such that it has the properties of low pass filter for the accelerometer and high pass filter for the gyroscope. 28

29 CHAPTER 6: CONCLUSION AND FUTURE SCOPE ROASS is a safe, reliable, energy efficient and user friendly system. While designing ROASS, a lot of design related issues has been given care of. It is almost impossible to include all the design related issues and make a perfect system at the very first time. Some points could escape from mind and some could be used in a different way. However we have managed to cover most of the design related issues, and make it under a budget of fifty thousand rupees. ROASS is a prototype for remote observation which uses the Wi-Fi as the communication link. Wi-Fi communication can be replaced with special RF channel for better range. This system contains a mini computer which can be used to its fullest extend to add multiple features and make it more dynamic. It can be made more advanced monitoring system with image processing capability. Moreover, ROASS can be enhanced in operating mode i.e it can be made autonomous system that can automatically fly and land the craft. Another aspect is the size of the structure which could be considered for increasing the payload. So that additional system could be attached on the craft. One important aspect is the control algorithm; in future this algorithm can be made much more effective through advanced control techniques. Detail work on these aspects helps in making an advanced Spybot for remote observation and control system 29

30 References 1. Quadcoptor. In Wikipedia, Retrieved April 2014, from [ 2. Oscar Liang (2013). Quadcoptor PID Explained and Tuning. Retrieved May, 2014 from 3. Jinghua Z. (2006). PID Controller Tuning: A Short Tutorial. Retrieved May 2014 from 4. Pieter J. (2013). Reading an IMU without Kalman: The Complementary Filter. Retrieved May 2014 from 5. Handling Keyboard Shortcuts in JavaScript [ 30