BALANCED ROBOTICS BALLBOT Prototype Design Review Brian Kosoris, Jeroen Waning, Yuriy Psarev, and Bahati Gitego 10/11/2011 Table of Contents EXECUTIVE SUMMARY .......................................................................................................................2 INTRODUCTION .................................................................................................................................3 SYSTEM OVERVIEW ................................................................................................................................... 3 MAJOR DEVELOPMENTS ........................................................................................................................... 3 MECHANICAL DESIGN.........................................................................................................................5 CONCEPTUAL DESIGN AND MODEL .......................................................................................................... 5 SPECIFICATIONS, DIMENSIONS, AND FABRICATION ................................................................................. 6 ELECTRICAL DESIGN ...........................................................................................................................8 COMPONENT INTEGRATION ..................................................................................................................... 8 TRADE STUDY .......................................................................................................................................... 10 CONTROL SYTEM AND MATHEMATICAL MODEL ............................................................................... 13 CONTROL SYSTEM THEORY ..................................................................................................................... 15 MATLAB UTILIZATION ................................................................................ Error! Bookmark not defined. ROBOTICS SYNTHESIS.............................................................................................................................. 13 DESIGN REQUIREMENTS................................................................................................................... 24 PROJECT SCHEDULE ................................................................................................................................ 24 BUDGET AND RESOURCES....................................................................................................................... 25 MINIMUM SUCCESS CRITERIA ................................................................................................................ 24 CONCLUSION ................................................................................................................................... 27 REFERENCES .................................................................................................................................... 28 1 EXECUTIVE SUMMARY The fundamental principles underlying the concept of the BallBot are similar to that of an inverted spherical pendulum. The BallBot will consist of a vertical structure mounted to a wheel base that rests on a ball. The sensors relay information to the motors to drive the wheels in the corresponding direction with the appropriate amount of acceleration to counterbalance any movement of the robot’s center of mass. The concept of the ball-balancing robot is not unique in its general principles. However, once the minimum success criteria of stability, with minimal external kinematic influence, have been met, the concept will be extended to a variety of tasks. Possibilities for challenges in improving the function of the BallBot may include the BallBot’s extended planar motion so that it may drive to a designated area and navigate certain obstacles. The design and construction of the BallBot will require a holistic approach of Mechatronics Engineering. The BallBot is simple and elegant, yet challenging, in its mechanical and electrical design, and highly sophisticated in its autonomy. The mathematical approach to the problem solving aspect of the design requires a moderate amount of intricate control systems theory, programming, and general physics. In the Prototype Design Review (PDR) phase, many of the practical hurdles, not recognized in the System Concept Review (SCR) phase, have led to innovative solutions and a cohesive and unified effort. 2 INTRODUCTION SYSTEM OVERVIEW The BallBot design consists of three major aspects of Mechatronics Engineering. The design and fabrication of the overall structure does not require the highest precision and mathematical application, but the design of the wheel base and axels requires computer aided design (CAD), geometry, trigonometry, precise measurements, and mechanical engineering innovation. The manner in which the wheels control the ball heavily relies on the rigid, well-defined mechanical assembly. The electronic components are relatively few and simple. The general concept involves actuators influenced by inertial and orientation sensors through a sophisticated control system. An onboard computer communicates with a microcontroller to receive sensory input and translate that into a forced output to sustain balance in the opposition to the force of gravity. The most complex and theoretical component of the BallBot involves the control system and computational algorithm to interpret the sensory input and calculate an accurate forced response. The mathematical approach to the control system design is derived from the technique known as Statespace Variable Modeling (SVM). An alternate mathematical representation of the robots orientation in 3D space is robotics synthesis and analysis. Both revolve around matrix manipulation. MAJOR DEVELOPMENTS The PDR phase has involved the acquisition of new components and innovative problem solving techniques. The utilization of an onboard computer, that does the high-level mathematical processing, is a new idea that emerged in the PDR phase. 3 The idea of an alternate mathematical representation of the robot with rotational matrices is an innovative solution that also occurred during the PDR phase. Certain electrical components have been integrated with much success, while others produced new concerns, such as the motor performance in relation to the response time. The mechanical design of the wheel base also required more resources than initially assumed. As a result, new resources were discovered to manage the requirements for precision and small tolerances. A trade study on one of the key electrical components was conducted in order to become more familiar with its performance and how it could be manipulated for optimal integration with the BallBot. 4 MECHANICAL DESIGN CONCEPTUAL DESIGN AND MODEL Fig. 1 – (a) Wheel Base, (b) compound wheel position, and (c) wheel housing and motor configuration The mechanical design involved two pairs of perpendicular motors that drive omni-directional wheels. The wheels are required to be at a 45° angle to the vertical axis of the ball for the control algorithm to function properly. As seen in Fig. 1, the movement of a coordinated pair of compound wheels will determine the direction and acceleration of the ball to oppose any imbalance. Fig. 2 – Vertical structure As seen in Fig. 2, the vertical aluminum structure will consist of a modular design. The five octagonal plateaus will be adjustable for testing of the sensory integration. The electronic components 5 will be housed in this vertical aluminum structure, and the accurate placement of them will be critical. Hence, the design incorporates modularity. Fig. 1 also displays four arm-like mechanisms that vertically run down the side of the wheelbase. This represents the possible addition of landing gear, which will serve as a fail-safe design. It will be automatically engaged with a worm-screw actuator that is triggered when the BallBot has tiled past a certain angle (point of no return) where the center of mass has shifted so much that the system response can never be adequate to regain stability. SPECIFICATIONS, DIMENSIONS, AND FABRICATION The structure of the BallBot will be 9x9x24” and will be supported by the wheelbase. The diameter of the ball is approximately 9.3” and thus puts the robot at approximately 28.65” tall. The span of the motors will also not be much greater than the 9.3” ball (+ 1.5”), thus the BallBot will have a compact profile. The selection of the materials was based off of the required specifications as follows: • Fasteners – • Aluminum Alloy ¼” D, 3/8” L, Dome head, Mil-spec Rivets Structural 6061 T6 Aluminum – Available Locally – Very strong for its weight – Easy to work with and machine-able – Available in beams, channels, angles, square and rectangular beams, pipes, etc – Ultimate tensile strength of at least 42,000 psi (290 MPa) – yield strength of at least 35,000 psi (241 MPa) 6 The fabrication process is moving along quite well, and the mechanical build is right on schedule. The jig-saw of individual pieces of aluminum for the structure have been cut to specifications, as seen in Fig. 3, and the majority of them have been riveted together with an aircraft grade riveting tool for strength, rigidity, precision, and aesthetics. Fig. 3 – Fabrication progress The assembly of all the mechanical pieces will be finished soon and represents an important milestone of the BallBot construction. Once the mechanical structure is finished, it will be ready to accept the electronic components, and preliminary testing can be conducted. The preliminary testing phase is vital to streamlining the remainder of the assembly and optimization of the BallBot because then many of the problems/revisions will be realized. The earlier the testing phase can begin, the higher chance of success and time for optimization and improvements. 7 ELECTRICAL DESIGN COMPONENT INTEGRATION During the PDR phase, some new electrical components have been acquired and assembled to make the BallBot more efficient and 100% self-sufficient: • • • Micro ITX gigabyte board • High-level CPU to run MatLab • Processes integer data from IMU board • Runs control algorithm to digest sensor data • Provides output to motor controllers A321 batteries x 30 for onboard power supply • Provides 12-16.5V (3-5A) to motors • Provides 5V for digital logic (IMU board and CPU) Inertial Measurement Unit (IMU) • Arduino ATmega2560 • IDG500 Gyro • ADXL345 Accelerometer Fig. 4 – (a) Onboard computer (CPU) and (b) Inertial Measurement Unit (IMU) 8 The next critical task is to enable communication between the CPU and the IMU. The IMU will work on a low level to receive sensory input data and transmit the pulse-width modulation (PWM) signal to the motor controllers. The IMU data will be relayed to the CPU, which will process the data in a control system algorithm in MatLab, and then the CPU will relay the output data back to the IMU board to control the motor controllers. The motor controllers will be directly coupled to the A321 battery pack for power and also the IMU board for the PWM signal. Fig. 5 illustrates the signal/power-management hierarchy. Fig. 5 – Data/power-management hierarchy One concern that arose during the PDR phase was the performance of the motors. The motors obtained are high-quality geared motors and are very powerful. The fact that they are geared down may present a problem during the preliminary testing phase. The datasheet of the motor specifies a max 9 5500 RPM (no load), but the internal gears have scaled this angular velocity down to a measured 86 RPM (consuming the recommended 12V). The gear ratio provides an extremely high torque, and thus the motors are more designed for robotic manipulator arms and not for rapid acceleration and highspeed. The perfect balance between torque and angular velocity can be calculated when the mass of the robot is determined, but only the preliminary testing phase will truly tell. Another component of the electrical design that required more research was the ADXL345 accelerometer. The BallBot will require a fast rate of data processing for it to balance vertically without restraint like the inverted spherical pendulum model (discussed in the section ‘Control System and Mathematical Model’). This concern thus leads to the following trade study. TRADE STUDY Fig. 6 – IMU schematic Fig. 6 depicts the composition of the sensory components of the IMU board, and it can be seen that the accelerometer is a crucial component. The ADXL345 accelerometer will provide inertial data as the BallBot sways like a 3D pendulum in regards to the Earth’s gravity. The acceleration of Earth’s gravity is approximately 9.81 N/m2 and the BallBot must process its orientation many times very second to avoid toppling over. 10 The datasheet of the ADXL345 indicated a method of varying the bandwidth (and data resolution) by introducing a capacitive band-limiting filter. The filter will reduce noise (anomalous data readings) and decide the amount of data readings taken every second by the ADXL345. The ADXL345 has a variety of pins where three are the X, Y, and Z axis. When a capacitor is added to each of these output pins, the output signal bandwidth is altered. The maximum bandwidth for the X and Y output pins is 1650 Hz (or 1650 data readings/second), and 550 Hz for the Z pin. The equation for determining the appropriate capacitive element is as follows: • 𝐹3dB = 1 (2π(32 kΩ)(Cx OR Cy OR Cz ) Eq. 1 • 𝐹3dB = 5 𝜇𝐹 (Cx OR Cy OR Cz ) Eq. 2 Eq. 1 can be approximated to: As a result of the calculations for each capacitor to yield the desired 1650 Hz and 550 Hz, the values for the capacitors will need to be: • Cx = Cy = 0.00303 μF • Cz = 0.0091 μF They will be soldered to the ADXL345 to resemble the schematic in Fig. 7 (which is Fig. 10 in the ADXL345 datasheet). Fig. 7 – ADXL345 capacitor band-limiting filter arrangement 11 Another critical aspect of the IMU that was determined from the trade study is how it will need to be oriented in the BallBot. The Z-pin on the ADXL345 will yield the lowest bandwidth (data reading frequency). The axis of the BallBot that will be least affected by fluctuations in gravity and experience the least amount of angular momentum/velocity is the axis that runs vertically from the ball to the top of the BallBot (which has been defined to be the Z-axis of the BallBot). The datasheet of the ADXL345 has provided a large amount of critical information to prevent many problems that may have occurred in the future. For example, the sensitivity of the ADXL345 is proportionally related to the supply voltage: • VS = 3.6 V - output sensitivity = 360 mV/g • VS = 2 V - output sensitivity =195 mV/g With the Arduino ATmega2560’s 3v3 pin supplying 3.3V, it is estimated that the output sensitivity will be somewhere within the range of 320 mV/g and 340 mV/g (most likely 330 mV/g). The ADXL345 can withstand up to 10,000g before being damaged, and hopefully it will not be of any concern! Fig. 8 – Output sensitivity of each axis (V/g vs. % population) 12 CONTROL SYTEM AND MATHEMATICAL MODEL ROBOTICS SYNTHESIS The method used to control the BallBot’s orientation in 3D space will most likely be derived from controlled system theory; more specifically, we will use State-space Variable Modeling (SVM – discussed in the next section), but an alternate approach to modeling the system mathematically and manipulate the sensor data is to throw it into a rotational matrix. The rotational matrix corresponds to the dot products of the position vectors of the robot. The position of the BallBot in equilibrium is represented as [0, 0, 1]T which indicates that the Z axis runs from the center of the ball (axes of rotation) to the top of the BallBot. The position vector that will be compared to this equilibrium position can be derived by the following 3x1 matrix: [ 𝑡 ∫0 ωψ (𝑡)𝑑𝑡 𝑡 ∫0 ωϕ (𝑡)𝑑𝑡 𝑡 ∫0 ωθ (𝑡)𝑑𝑡 ] Eq. 3 The angular velocities ωψ, ωϕ, ωθ of the BallBot are derived from the Euler angles θ, ψ, ϕ and represent the angles of rotation about the respective X, Y, and Z axes. In order to visualize this concept, Fig. 9 illustrates the possible orientation changes of the BallBot in 3D. The Euler angles represent the orientation difference between the reference frame (frame 0) 00X0Y0Z0 and the frame that is constantly changing due to the BallBot’s swaying motion (frame 1) 01X1Y1Z1. 13 Fig. 9 – Relationship between Frame 0 and Frame 1 with respect to their corresponding Euler angles The position vectors are input into a rotational matrix and the dot products of the vectors’ components make up the elements of the matrix. The rotational matrix will be composed of these dot products as follows: X1 · 𝑋0 𝑅10 = X1 · 𝑌0 X1 · 𝑍0 Y1 · 𝑋0 Y1 · 𝑌0 Y1 · 𝑍0 Z1 · 𝑋0 Z1 · 𝑌0 Z1 · 𝑍0 Eq. 4 14 CONTROL SYSTEM THEORY Fig 10 - Projection of an inverted spherical wheel pendulum into a single plane In the following section, a mathematical model of a spherical inverted pendulum will be modeled. The modeling process will rely on the Euler-Langrange method. The Lagrange method model the motion of the inverted spherical pendulum by relying on the energy property of mechanical systems. Before describing the energy equation, the reference position is defined as well as the reference velocity with respect to a generalized coordinate system, as depicted in Fig. 11. The initial assumption is that the angle the spherical inverted pendulum model makes with the z-axis is small and the inverted pendulum is closer to the stability condition. With this assumption, the inverted pendulum can be decoupled into two single degree of freedom spherical inverted pendulums. With the aforementioned approach, two identical mathematical models for the inverted pendulum motion are designed in the XZ, and ZY plane respectively. The mathematical model will also take into account the interaction between the driving motor and the spherical ball to achieve stability of the whole model Fig. 12. Now for the derivation of our mathematical model, it is assumed that the angle θ between the spherical ball and the define z axis is zero at time t = 0s. (Fig. 11) With the assumption that the angle θ= 0, position vector is defined as follows: 15 ( X sw , Zsw ) = ((R sw )( θ), Zb ) Eq. 5 (Ẋ sw , Żsw ) = ((R sw )(θ̇ ) , 0) Eq. 6 (X b , Zb ) = (x + Lsin(φ), z + Lcos(φ) ) Eq. 7 (Ẋ b , Żb ) = (R sw θ̇ + Lφ cos(φ), − Lφsin(φ) ) Eq. 8 x = position on the z axis at any given time. z = position on the z axis at any given time. Xsw = x position of the center of the spherical wheel with respect to the XZ axis. Zsw = z position of the center of the spherical wheel with respect to the XZ axis . Zb = verticle distantace from the X referance coordinate to the mass of the body. Rsw = Radius of the spherical Wheel. L = length of the body from spherical mass center to body mass center. θ = angle between a plane parallel to the Z-axis and a define position on the spherical ball. ϕ = angle between the inclination of the body at center mass Mb with the z axis. With the position and velocity vector defined; the next step will be deriving and defining the kinetic and potential energy of the system. To define the energy equation, the energy will be divided into three components, translational kinetic energy T1, rotational kinetic energy T2, and potential energy U. The translational, rotational and potential energy of the system are defined as follow: 16 2 1 2 1 2 2 T1 = (2) Msw ((Ẋ sw + Żsw ) + (2) Mb (Ẋ b + Żb )) Eq. 9 2 2 2 2 1 1 1 1 T2 = ( ) Jsw θ̇ sw + ( ) Jφ φ̇ + ( ) Jw θ̇ m + ( ) Jm θ̇ m Eq. 10 2 1 2 2 1 2 2 2 1 R 2 2 2 = (2) Jsw θ̇ sw + (2) Jφ φ̇ + (2) (Jm + Jw ) ( Rsw2 ) (θ̇ − φ̇ ) w U = Msw gZsw + Mb gZb Eq. 11 Eq. 12 From Eq. 9-12: Msw = mass of the spherical wheel. Mb = mass of the body Jsw = Inertial moment of the spherical wheel Jφ = inertial moment of the body (pitch) with respect to the body center of mass JW = inertial moment of the wheels. Eq. 9 describes the translational kinetic energy of the spherical inverted pendulum system. In the equation, the translational kinetic energy of the ball and the body are given with this equation. Eq. 10-11 describe the rotational kinetic energy of the spherical ball, the body pitch angle, and finally the rotational kinetic energy of the wheel connected to the motors is also provided into the model. 17 Fig. 11 - Projection of Inverted Spherical Pendulum into respective Plane Knowing that the wheel and the spherical ball shares the same velocity at the point of contact leads to the following simple relationship R sw θ̇ sw = R w θ̇ w . From this simple equation, it can be shown that θ̇ w = (R sw /R w ) θ̇ sw . Further substitution could be applied to Eq. 11 by replacing θ̇ sw = (θ̇ − φ̇ w ), and applying the described substitution in the Eq. 10 result in Eq. 11. Now that the Energy equation has been derived, the LaGrange function L will be defined. The Lagrangian L is defined as follow: L = T1 + T2 − U The radial angle θ and ϕ are the generalized coordinates. The Lagrange equation can be expressed as follow: d dt ∂L ∂θ ∂L dθ ( ̇) − ( ) = F θ Eq. 13 18 d dt ∂L ∂φ ∂L dφ ( ̇) − ( ) = Fφ Eq. 14 By computing Lagrange equation depicted in Eq. 13 and Eq. 14, the following results are obtained. 2 [(Mb + Ms )R2s + Js + K 2 (Jm + Jw )]θ̈ + [Mb LR s cosφ − k 2(Jm +Jw ) ]φ̈ − Mb LR s φ̇ sinφ = Fθ Eq. 15 [Mb LR s cosφ − k 2(Jm +Jw ) ]θ̈ + [Mb L2 + Jφ + K 2(Jm +Jw ) ]φ̈ − Mb gLsinφ = Fφ With k being equals too k = Eq. 16 Rs . Rw Considering the dc motor torque and viscous friction, the following force equation can be derived: K t i − fm θ̇ m − fs θ̇ = Fθ Eq. 17 −K t i + fm θ̇ m = Fφ Eq. 18 Eq. 17 and Eq. 18 states that the force in the generalized coordinate systems is equal to the induced torque in the dc motor minus the frictional forces. Fig. 12 - Spherical Wheel and DC Motor 19 K t = represent torque constant θ̇ m = the angular velocity of the dc motor. Can also be expressed as follows: θ̇ m = k(θ̇ − φ̇ ) i = dc motor current fm = internal friction of a dc motor fs = frictional force between the ball and the motor. Eq. 17 and Eq. 18 express torques as a function of current. This cannot be applied to motor control directly because this motor is control by pulse-width modulation (PWM). To account for this, an attempt is made to represent the torque as a function of voltage by drawing upon the dc motor equivalent circuit. The dc motor can be expressed as follows: Lm i = v − K b θ̇ m − R m i Lm = dc motor internal inductance k b = dc motor back emf constant Assuming the motor inductance to be negligible and approximately zero, the current could be approximated as follows: i= v−kb k(θ̇ −φ̇ ) Eq. 19 Rm The generalized forces in Equation 13 and Equation 14 can be express directly with voltage components by substituting Equation 15 for each current component in both equations. The final equation takes on the following form: 20 αv − (B + fs )θ̇ + Bφ̇ = Fθ Eq. 20 −αv + Bθ̇ − Bφ̇ = Fφ Eq. 21 α= Kt K tKb ,β = k( + fm ) Rm Rm Now that most of the factors have been accounted for in the mathematical model, the next step will be expressing the forces equation in state space notation. To accomplish this feat, motion equation is linearized at a balance position. First, the limit as φ → 0 (sinφ → 0, costφ → 1) is considered. Also the 2 second order terms like φ̇ are neglected. Applying the stated method to Eq. 15 and Eq. 16 the following is obtained: [(Mb + Ms )R2s + Js + k 2 Jm ]θ̈ + [Mb LR s − k 2 Jm ]φ̈ = Fθ Eq. 24 [Mb LR s − k 2 Jm ]θ̈ + [Mb L2 + Jφ + k 2 Jm ]φ̈ = Fφ Eq. 25 Equation 20 and Equation 21 can further be expressed in the following notation: θ θ̈ θ̇ E [ ̈ ] + F [ ̇ ] + G [ ] = Hv φ φ φ (Mb + Ms )R2s + Js + k 2 Jm E = [ Mb LR s − k 2 Jm F =[ β + fs −β Eq. 26 Mb LR s − k 2 Jm ] Mb L2 + Jφ + k 2 Jm −β ] β 0 0 G =[ ] 0 Mb gL H=[ α ] −α 21 Next step in the state space modeling process will be defining X as a state, and U as the input. Next, X and U are expressed as follows: θ φ 𝐱 = [ ̇], 𝐮 = v θ φ̇ Eq. 27 Using Eq. 26, state equations are derived as follows: 𝐱̇ = A𝐱 + B𝐮 Eq. 28 0 0 1 0 0 0 0 0 1 0 A = [ 0 A(3,2) A(3,3) A(3,4)], B = [B(3)], 𝑪 = [1 0 A(4,2) A(4,3) A(4,4) B(4) A(3,2) = Mb gLE(1,2) det(E) A(4,2) = Mb gLE(2,2) det(E) A(3,3) = [(β + fs )E(2,2) + βE(1,2)] det(E) 22 0 0 0] Eq. 29 A(4,3) = [(β + fs )E(1,2) + βE(1,1)] det(E) A(3,4) = β[E(2,2) + E(1,2)] det(E) A(4,4) = β[E(1,1) + E(1,2)] det(E) B(3) = α[E(2,2) + E(1,2)] det(E) B(4) = α[E(1,1) + E(1,2)] det(E) det(E) = E(1,1)E(2,2) − E(1,2)2 23 DESIGN REQUIREMENTS PROJECT SCHEDULE The major milestones that will be required during the next phase of the design are as follows: • The mechanical structure must be completed by October 20th, 2011 • Electronics can then be integrated into assembly (October 27th) • Arduino and MatLab communication algorithm (November 2nd) • Begin preliminary testing (October 27th – November 10th) • Finalize complete algorithm (November 16th) • Optimization, aesthetics, minor revisions (November 27th) MINIMUM SUCCESS CRITERIA To start, the minimum success criteria will be for the BallBot to maintain equilibrium. What is meant by this is that the BallBot must remain in a balanced, stable, and vertical position by acquiring inertial input and providing the required forced response to the motors. If these minimum success criteria are met, there are limitless avenues for improvements and optimization. The BallBot may be able to eventually navigate obstacles and head for a certain area. The BallBot may perhaps drive over bumps and ramps to demonstrate stability in the Z-axis. There are unlimited task possibilities for the BallBot as long as the minimum success criteria are met first. 24 BUDGET AND RESOURCES Table 1 breaks down the components and materials required by the build. Table 1 – Bill of Materials Item Quantity ADXL345 Digital Accel Johnson DC Motors 1660 Tip Point Solderless Board IDG 500 Logic Level Converter A123 18650 1AH LiFePO4 battery Gigabyte motherboard WD 250 GB HD DDR3 4GB Memory 20" monitor for testing 500w AC power supply 160w DC-DC ATX PSU Arduino ATmega2560 Omni wheels Aluminum stock Riveting Tool mITX Enclosure Item Price/Item SubTotal 2 6 $12.11 $30.00 $24.22 $180.00 1 1 4 $17.95 $29.99 $10.60 $17.95 $29.99 $42.40 30 1 1 1 1 1 1 1 4 1 1 1 $2.60 $119.99 $39.99 $19.99 $79.99 $25.58 $58.91 $36.84 $17.22 $70.00 $75.00 $51.77 $78.00 $119.99 $39.99 $19.99 $79.99 $25.58 $58.91 $36.84 $68.88 $70.00 $75.00 $51.77 Total: $1,019.50 Fig. 13 shows some extraneous facilities to be used for a variety of machining tasks. One example of parts that will be required to be machined there are the wheel axles. They require the precision of a computerized lathe, which was available in this workshop. 25 Fig. 13 – Additional facilities 26 CONCLUSION The PDR phase has yielded significant productivity. Many problems arose during the fabrication and extensive design process, but through innovation and collaboration, creative solutions were formulated. Many new items were acquired during the PDR phase as well and will improve the performance of the BallBot. The trade study that was conducted yielded useful information that lead to the discovery of how to optimize a certain aspect of the design. The mechanical design is well on its way but needs to be finished within the next two weeks. When the mechanical design is finished, the electrical components can be integrated, and the BallBot can begin to be fully assembled. When the BallBot assembly is complete, the preliminary testing phase can begin and many problems with the control system and balancing algorithm can be detected early. With the significant productivity during the PDR phase, the project is so far on schedule and ready to go into the CDR phase. 27 REFERENCES • Arduino – microcontroller (libraries/tutorials) • • SparkFun – sensors/electronics (datasheets) • • www.sparkfun.com MatLab resource (control system toolbox, etc.) • • www.arduino.cc http://www.mathworks.com/matlabcentral/fileexchange/23931 SolidWorks helpfile • http://help.solidworks.com/2012/English/SolidWorks/sldworks/r_welcome_sw _online_help.htm • Robot Modeling and Control (textbook) • Control Systems Engineering (textbook) 28