SlideShare a Scribd company logo
1
INTELLIGENT GIMBAL
ECE 4895 ELECTRICAL & COMPUTER ENGINEERING DESIGN
Lisa Linna
Anthony Lucente
SUMMER 2008
Approved
__________________
Project Coordinator
__________________
Faculty Advisor
__________________
Chair, ECE Department
2
ABSTRACT................................................................................................... 4
ACKNOWLEDGEMENTS ......................................................................... 5
1.0 INTRODUCTION .................................................................................. 6
2.0 PROBLEM STATEMENT.................................................................... 8
2.1 TASKS ASSIGNED TO EACH TEAM MEMBER ................................................ 9
3.0 DESIGN CHOICES AND PERFORMANCE CRITERIA.............. 10
4.0 DETAILS OF DESIGN........................................................................ 12
4.1 CONTROL SYSTEM............................................................................................. 12
4.2 NETWORKING ..................................................................................................... 16
4.3 DESIGN TASKS DETAILS – LISA LINNA ........................................................ 16
4.3.1 Protecting Digital Inputs and Outputs.............................................................. 16
4.3.2 Linear Actuator ................................................................................................ 17
4.3.3 Power Distribution........................................................................................... 19
4.3.4 Accelerometer Tilt ........................................................................................... 20
4.4 DESIGN TASKS DETAILS – ANTHONY LUCENTE........................................ 21
4.4.1 Project Design.................................................................................................. 21
4.4.2 TS-7200 Embedded ARM Setup ..................................................................... 22
4.4.3 Setting Up Embedded-Arm Peripherals........................................................... 23
4.4.4 Noise Reduction............................................................................................... 25
4.5 FINAL SYSTEM.................................................................................................... 26
4.6 SOCIO-ECONOMIC ISSUES................................................................................ 27
4.6.1 Detailed Cost Analysis..................................................................................... 27
4.6.2 Economic Benefits and Societal Imact ............................................................ 30
4.7 SAFETY ISSUES ................................................................................................... 31
5.0 TEST RESULTS AND DISCUSSION................................................ 33
6.0 CONCLUSIONS ................................................................................... 39
6.1 EXECUTIVE SUMMARY – LISA LINNA.......................................................... 40
6.2 EXECUTIVE SUMMARY – ANTHONY LUCENTE ......................................... 41
7.0 REFERENCES...................................................................................... 42
8.0 LIFELONG EDUCATION.................................................................. 44
8.1 LIFELONG EDUCATION – LISA LINNA .......................................................... 44
8.2 LIFELONG EDUCATION – ANTHONY LUCENTE.......................................... 45
9.0 CONTEMPORARY ISSUES .............................................................. 47
9.1 CONTEMPORARY ISSUES – LISA LINNA....................................................... 47
9.2 CONTEMPORARY ISSUES – ANTHONY LUCENTE...................................... 48
10.0 APPENDICES..................................................................................... 51
10.1 VITA AUCTORIS – LISA LINNA..................................................................... 52
10.2 VITA AUCTORIS – ANTHONY LUCENTE.................................................... 53
10.3 ANALOG TO DIGITAL CALCULATIONS ..................................................... 54
10.3.1 Accelerometer Scaling................................................................................... 54
10.3.2 Gyroscope Scaling ......................................................................................... 54
10.4 3-DIMENSION DIAGRAMS ............................................................................. 55
10.5 ELECTRICAL SCHEMATICS........................................................................... 57
10.6 INTELLIGENT GIMBAL PHOTOGRAPHS..................................................... 65
3
10.7 SETTING UP THE EMBEDDED-ARM BOARD ............................................. 69
10.7.1 Installing Cygwin........................................................................................... 69
10.7.2 Downloading and Installing TS-72XX Cross Compiler Under Cygwin ....... 72
10.7.3 Writing and Compiling Your Own Code....................................................... 73
10.7.4 Sending Your Output File Onto The Board................................................... 74
10.7.5 Sending, Compiling and Command Line Prompts ........................................ 76
10.7.6 Make Your Program Run After Rebooting.................................................... 77
10.8 PROJECT CODE................................................................................................. 81
10.8.1 GIMBAL.C.................................................................................................... 81
10.8.2 GIMBALFUNC.C ......................................................................................... 95
10.8.3 GIMBALNETWORK.C.............................................................................. 107
10.8.4 LOGICFUNC.C........................................................................................... 109
10.8.5 KALMAN.C ................................................................................................ 112
10.8.6 GIMBAL.H.................................................................................................. 117
10.8.7 GIMBALNETWORK.H.............................................................................. 118
10.8.8 KALMAN.H ................................................................................................ 119
10.8.9 LOGICFUNC.H........................................................................................... 119
10.9 ORIGINAL PROPOSAL................................................................................... 123
10.10 END OF FIRST TERM PROGRESS REPORT............................................... 129
10.10.1 ORIGINAL PROPOSAL........................................................................... 130
10.10.1.1 Project Goals and Aims ...................................................................... 130
10.10.1.2 Relevant Prior Work ........................................................................... 130
10.10.1.3 Preliminary Ideas and Methods .......................................................... 131
10.10.1.4 Cost Analysis ...................................................................................... 132
10.10.1.5 Time Schedule .................................................................................... 135
10.10.2 REVISIONS............................................................................................... 137
10.10.3 PROBLEM STATEMENT........................................................................ 137
10.10.4 PROGRESS ............................................................................................... 139
10.10.4.1 Hardware............................................................................................. 139
10.10.4.1.1 Hardware Components................................................................. 139
10.10.4.1.2 Hardware Organization................................................................ 142
10.10.4.2 Software.............................................................................................. 144
10.10.4.2.1 Initial Setup and Communication ................................................ 144
10.10.4.2.2 Project Code................................................................................. 145
10.10.4.2.3 Noise Reduction........................................................................... 148
10.10.4.2.4 Single Axis Control System......................................................... 149
10.10.5 TASKS TO BE COMPLETED ................................................................. 149
10.10.5.1 Implement 3-Axis Control System ..................................................... 149
10.10.5.2 Encoder for Yaw Axis ........................................................................ 150
10.10.5.3 Perform Tests with Moving Robot ..................................................... 150
10.10.5.4 Implement Actuator ............................................................................ 150
10.10.5.5 Safety Features & Circuit Protection .................................................. 150
10.10.6 REFERENCES .......................................................................................... 152
10.11 WEEKLY PROGRESS REPORTS.................................................................. 154
4
ABSTRACT
The scope of this project is to design an intelligent gimbal system to aid in the accuracy
and performance of University of Michigan – Dearborn’s Intelligent Systems Club’s
autonomous robot. The gimbal is an innovative addition to the autonomous robot by
stabilizing the camera used for its navigation. With the robot relying mainly on its
vision, stabilizing its “eyes” will allow it to stay at a specified angle regardless of hills or
rough terrain.
A multi-axes gimbal is a device designed to keep an object level as its surroundings
change by rotating the object about multiple axes. In this case, our gimbal will consist of
a three ring axis mount that will stabilize an enclosure containing the camera, controllers
and sensors required for this design. The pitch and roll axes are controlled by a
proportional-derivative system to modify servo motors based on a 3-axes accelerometer
and a 3-axes gyroscope feedback sensor. The yaw axis has a proportional system that
uses a 10-turn potentiometer to determine angular position and modify the servo motor
accordingly. Additionally, an actuator is used to support the gimbal and allow the height
to be modified based on a linear potentiometer that monitors its position.
5
ACKNOWLEDGEMENTS
We would like to thank the following people for their expert advice, patience and time.
Without their thoughtful input, this project may not have been a success.
• Larry Sieh whose experienced feedback gave our project a focused direction.
• Dr. Narasimhamurthi Natarajan maintained a sense of humor while he supported
us with many late “robotic” nights and responded to numerous questions. There is
no way to express fully our gratitude.
• Dr. Malayappan Shridhar who was always dedicated to the success of our
project.
• Dr. John Miller provided us with tremendous support and understanding.
• Greg Czerniak’s expertise in programming contributed greatly to the project’s
success.
• Allen Akroush’s welding and mechanical expertise contributed significantly to
the durability of our project.
• We would also like to thank the following suppliers who made donations for our
project:
o Mean Well (5VDC and 12VDC power supplies)
o Acopian (5VDC power supply)
o Memsense (Trirate 3-axis gyroscope)
o Copterworks (50% student discount on 3-axis camera mount)
• Last but not least we would like to thank our family and friends for their unending
support of all of our professional and academic pursuits.
6
1.0 INTRODUCTION
A gimbal is a device designed to support an object while maintaining the object’s
position about a single axis point, regardless of its surroundings. Gimbals were originally
designed as mechanical devices using two or more rings set at 90 degrees to each other.
The idea of a gimbal has been around for hundreds of years, though it has adapted and
become much more complex in the last century. Possibly the most simple gimbal
invented dates back to the 1500’s when sailors would float objects such as lamps in
bowls filled with water to keep them from tipping over when ships tossed on the seas.
One of the basic and necessary parts of a gimbal is a gyroscope. A gyroscope is a
device used to maintain orientation with respect to a specific reference point. One of the
first examples of a gyroscope was a 16th
century children’s toy usually called a spinning
top. This “toy” was essentially a disk with a shaft mounted halfway through the center.
What makes this object into an interesting toy is the fact that it appears to defy gravity;
when torque is applied, the object’s axis will maintain its respective angle as long as the
disk continues to spin. When this is combined with a two or three ring mount, it makes a
gimbal. The gimbal will keep the gyroscope stable on a horizontal plane while the
circular mount changes. A three ring mount represents each of the three dimensional
axes to allow for roll (X-axis), pitch (horizontal Y-axis) and yaw (vertical Z-axis).
With the advancements in technology, we can now create a gimbal using
electronics. Instead of relying on the gyroscope to rotate simply due to gravitational
forces, we now have electronic gyroscopes. There are a couple different types of
electronic gyroscopes including Microelectromechanical (MEMS) and optical
gyroscopes, commonly referred to as gyros. MEMS technology can be implemented
using silicon, polymer or metal material.
While the gyro is thought to be the basic sensor in a gimbal, accelerometers are
also an important requirement when creating an electronic gimbal. Various testing of
gyroscopes has demonstrated that gyroscopes acquire errors over time, developing an
offset from the required set point. To compensate for this error, we added the
accelerometer, which detects the angular position with reference to the direction of
gravity. Although any sensor has the possibility of acquiring error, accelerometers have
proved to be very reliable.
7
In today’s world, gimbals have proved valuable for a variety of uses ranging from
camera stabilization for television and movie production to aiding autonomous vehicles
for military purposes, navigation of ships, submarines and aircrafts as well as to assisting
in aerospace navigation. One of the most recent uses has been for camera stabilization
with autonomous vehicles designed to compete in competitions such as the DARPA
(Defense Advanced Research Projects Agency) Grand Challenge.
8
2.0 PROBLEM STATEMENT
The goal of this project is to design an intelligent gimbal system to aid in the accuracy
and performance of the University of Michigan – Dearborn’s Intelligent Systems Club’s
(ISC) autonomous robot. A multi-axes gimbal is a device designed to keep an object
level as its surroundings change by rotating the object about multiple axes. In this case,
our gimbal will consist of a three ring axis mount in order to keep a camera level. The
Intelligent Systems Club participates in the annual International Intelligent Ground
Vehicle Competition and is always looking for new/innovative ways to improve its
design. Since the robot relies significantly on its vision control, stabilizing its eyes will
have a positive impact on its ability to navigate rough terrain.
The Intelligent Ground Vehicle Competition is at the cutting edge of technology
which gives students the opportunity to learn about autonomous control while getting
experience in electrical, computer and mechanical engineering. The goal of the
competition is for college students from various universities around the world to design,
build, test and compete with their robots for both recognition and cash prizes. While the
students gain a great deal of experience and knowledge from this challenge, the basis for
this competition is to develop new designs and ideas to aid in the United States
Department of Defense. This competition is a smaller version of the DARPA Grand
Challenge or the new DARPA Urban Challenge, which has a grand prize of two million
dollars. While the competitions differ in magnitude, both share the same goal, to develop
autonomous vehicles which allow for unmanned military vehicles and, as a result, save
lives in the battlefields. With roadside bombs, ambush attacks and other dangers, the
ability to use autonomous or remote operation vehicles would give our country an
enormous advantage in times of war.
The gimbal was a key aspect of the Intelligent Systems Clubs 2008 innovation
and design portion of robot entry Raptor which competed in the Intelligent Ground
Vehicle Competition. Each year, the competition includes new challenges such as harder
tarps, sand, hills, rough terrain and more; all aimed at testing the robots full potential.
Stabilizing the camera will assist in the robot’s ability to navigate through rough or hilly
areas. Along with keeping the camera steady, the gimbal allows us to specify the optimal
angle to get the best possible image. Depending on the position of the sun during
9
competition, the camera can be angled to try to minimize glare, which can greatly
diminish the picture quality and confuse the robot. Glare can be interpreted by the robot
as white spaces when the goal is to follow a course of white lines.
Requirements for this project are to allow the robot’s camera to maintain its
position by adjusting for roll, pitch and yaw via three servo motors. An additional goal
was to allow the camera’s height to be modified using a linear actuator. The system
allows for two modes, automatic and manual through remote teleoperation. In automatic
mode, the gimbal has specific set points for which it works to maintain position. In
teleoperation, a remote user can modify the height of the gimbal and rotate the camera
using pitch, roll and yaw to see around obstacles or obtain a better view. These
techniques allow the user to override the built in set points by sending new data.
2.1 TASKS ASSIGNED TO EACH TEAM MEMBER
Overall, the design, build and testing was done as a joint effort; however, the project was
divided into several smaller tasks (as there are no defined sub-systems). The task
distribution is shown in table 2.1.1 below:
Anthony Lisa
Initial research and project design
System camera enclosure set up
Wiring, Mounting, and Building components
Design/program PD control system
Networking code to interface with Teleoperation system
3-D CAD design for initial robot and gimbal
hardware and microcontroller setup
2-D CAD design, electrical schematics
Serial communication for servo controller to
micro-controller
Power distribution including 7V regulator circuit
Collect and process gyroscope and
accelerometer data (convert A/D to usable
values)
Analyze accelerometer and gyroscope data in
Matlab to determine control system
requirements such as proportional and
derivative gains
Digital output code Digital input code
A/D code (micro-controller and daughterboard) Actuator drive circuit
LCD/Indication Box Servo stop circuit
File I/O to write data to text files Actuator mode/control box
Low pass average filter Linear potentiometer
Time Delay Code Sensor board layouts
Integral code for gyroscope Accelerometer tilt calculations
Table 2.1.1: Task Assignment
10
3.0 DESIGN CHOICES AND PERFORMANCE CRITERIA
For this project, the initial design phase required us to determine how gimbals work and
the types of sensors required for it to perform as needed. After much research, we
determined the best design would include using a gyroscope and an accelerometer sensor.
The original plan was to have a proportional-integral system; to do this we would
integrate the gyroscope data to determine tilt with respect to its center point while
correcting for any error using an accelerometer. However, after testing this, we found
that, by integrating the data, we were magnifying the gyroscope’s error, making it
unusable. Though a little error is typical with most gyroscopes, the gyroscope we used,
which was donated from a well known sensor company, ended up being a custom test
component running at a much higher (than normal) frequency. This, in effect,caused the
error ratio to increase. To fix this problem, we decided to use the gyroscope data as is in
degrees/second with its zero speed as our reference. This approach worked very well,
allowing us to control the system using a proportional-derivative system for pitch and
roll.
The accelerometer chosen is a Dimension Engineering 3-axis DE-ACCM3D
sensor that allows for three dimensional +/-3g detection through three analog outputs.
The gyroscope is a Memsense Trirate MEMS 3-axis sensor. The Trirate has analog
outputs for X, Y & Z indicating angular rate and temperature for compensation. With its
surface mount package type, it can be ordered with an analog interface board. This
simplifies development and avoids damaging the sensor by soldering it manually. The
standard Trirate operates at 50Hz with a rate noise density of Hz
s /
/
 ; however, the
sensor that was donated to us operates at 400Hz causing the noise to be higher.
For yaw we needed a different type of system. We could not use the
accelerometer due to the ability of not being able to measure gravity on this axis. Our
original ideas involved adding an encoder to the servo. Eventually we decided a good
approach would be using a 10-turn geared potentiometer to determine the position of the
yaw axis.
For our controller we chose the TS-7200 embedded arm board for its out-of-the-
box Linux operating system along with its various features required for our project such
as:
11
• Ethernet communication to interface with the robots main controller.
• Serial communication (RS-232) to interface with the servo controller.
• Fast 12uS A/D 12-bit inputs for sensor data and the option to expand the A/D
with accompany daughter boards, since we needed more A/D then what was
provided with just the main board.
• Plenty of digital input/output to control things such as our actuator and LCD text
outputs
• PC104 form factor and interface for its rugged small construction and
expandability through the addition of daughter boards to add more peripherals.
• Fast processor speed (200MHz) in order to go through filters and calculations
without any lag before reading the next values from the sensors.
• The ability to calculate floating point numbers, so that calculations are more
accurate and precise.
• Low power consumption and wide voltage input range so that it could be used on
most robot platforms.
Power distribution is always an important part of electrical systems. This must be
determined early on so to ensure that the proper supplies are in place to run the system
components. The robot itself runs off two 12V batteries in series to provide 24V;
however, we needed 12V, 6-9V, and 5V to power all our components. Since charging
batteries can be time consuming and cause delays during competition, we decided to use
the main 24V batteries to supply the rest of the power supplies. For the 12V supply, we
needed to power the actuator, embedded arm board and relays which could draw close to
4A while the 5V supply needed to power the servo motors which can draw up to 2A each.
Because of this, we decided to use switching power converters supplied by the main 24V
due to their low power dissipation. For the servo controller logic, gyroscope and
accelerometer we needed to supply 6-9V to satisfy the requirement for all three. Since
these sensors are sensitive to noise and only require less than 0.6A, making a linear
regulator was the best option.
12
4.0 DETAILS OF DESIGN
The body of the gimbal is a circular camera mount able to rotate for roll, pitch and yaw
via three modified continuous servo motors. Modified hobby servos allow unlimited
range which is needed for this system, especially with the 10:1 gear ratio for servo to
turning gear. The servos are controlled by a servo motor controller that communicates
with the system’s microcontroller via RS232 connection. The serial communication
operates at 115.2k baud rate with no parity, one stop bit and eight data bits. Each of the
servo motors will rotate based on A/D input from feedback sensors including a 3-axis
gyroscope, 3-axis accelerometer, 1-axis gyroscope and a 10-turn potentiometer. Both of
the 3-axis sensors are mounted inside of the camera enclosure in order to monitor pitch
and roll axes.
The gyroscope is used to sense rotational speed for each of the three axes in
degrees/second. A 3-axis accelerometer is used to work with the gyroscope and correct
any error that it may accumulate. The accelerometer works by giving a reference to the
direction of gravity from which tilt can be determined. For the yaw axis, the
accelerometer can’t be used to determine position since the changes in yaw do not change
the axis’ acceleration with respect to gravity; therefore we use a 10-turn potentiometer to
determine its angular position. A 1-axis gyroscope is mounted on the body of the robot
in order to monitor turning speed which can affect the sensor’s accuracy. Additionally, a
linear actuator will be used to support the camera mount and when the robot is in manual
or remote control, allow the gimbal to rise and fall in order to see over obstacles when
necessary. The program is written in embedded C and developed as a hard, real time
system which depends upon the response of the servo motors from data received to occur
within a given time frame in order for the system to work as required.
4.1 CONTROL SYSTEM
The gimbal is initially calibrated in order to give each axis a reference speed of
0°/second; from this reference, it detects a change in the X, Y or Z coordinates. Ideally
this reference value would always be the same for the three servos but, depending on the
exact position the enclosure is mounted, it may weigh down one side, putting force on the
servo causing it to drift in that direction. Therefore, we must force the motor in the other
13
direction to compensate for this and keep it steady. We then had to calibrate the center
point for the yaw and the minimum and maximum height of the actuator potentiometers
in order to have an exact reference point.
The gyroscope feedback sensor, used as the derivative aspect of the control
system, monitors the angular rate of change in degrees/second and through an algorithm
directs the servo motors (outputs) to accommodate unwanted changes. The
accelerometer feedback sensor, used as the proportional, monitors tilt position and
corrects for any errors between the angles set point and the actual angle (process variable)
of the camera mount. The control system used for the pitch and roll axis is as follows:
dt
de
K
t
e
K
t
O d
p *
)
(
*
)
( +
=
O(t) is the output sent to the servo motor where p
K (for proportional) and d
K (for
derivative) are specific gains for each axis. The error which is determined using the
accelerometer is represented as e(t) which is the difference between the set point and
process variable, while de/dt represents the change in degrees over time determined from
the gyroscope.
The data for the three axis accelerometer, gyroscope and 10-turn potentiometers
are all initially put through a software low pass filter to reduce noise. Once we have the
filtered data, we analyze it for each sensor and can react accordingly. Control for the
pitch and roll axes is very similar; these both use the accelerometer and gyroscope
together in order to control the servos. From the accelerometer, tilt is determined using
trigonometry with the following calculations:








+
= −
2
2
tan
Yaw
Roll
Pitch
n
PitchRadia & 







+
= −
2
2
tan
Yaw
Pitch
Roll
RollRadian
Even though the accelerometer is not used for control of the z-axis (yaw), the data is still
required to determine tilt of the other two axes. Based on the degree we find, the
accelerometer speed to send to the servos is determined using the following equation:
( )
int
*
)
(
)
( CenterPo
Gain
SP
PV
t
e +
−
=
(PV-SP) is the error found by taking the difference between the process variable
(current angle) and the set point; when we multiply this by a gain, we can change how
fast the position is corrected. When increasing the speed, we also increase the overshoot,
14
so determining a good median is important. To discover the gain, we tried two very
different values, 2 and 50 to get a feel for the reactions. From these values, we tested roll
and pitch control systems separately, tuning the gains until we found values that proved
to have desirable results. The gain for roll was determined to be 100/3=33.3 while the
gain for pitch was chosen as 100/6=16.67
For the gyroscope, we simply monitor the change in degrees/second for each axis
and try to give an equal opposing speed to correct for it. The same equation used for the
accelerometer speed is used for gyroscope speed except instead of scaling the output
based on tilt, we scale it based on the speed with reference to its zero speed. The gain
determined for both the pitch and roll were chosen to be 100/270 = 0.37.
( )
ZeroSpeed
Gain
SP
PV
dt
de
+
−
= *
)
(
Once the servo speed had been calibrated and proven separately for the
accelerometer and gyroscope, these values were joined together to complete the control
system for each axis. With pitch, the control was found to work best when using the
sensors as 50/50 making the gains p
K = d
K = 0.5.
Figure 4.0.1: Pitch Control System
With roll, turning forces have shown to have a large impact, causing immense overshoot;
therefore control depends on the turning speed of the robot determined using a separate 1-
axis gyroscope mounted on the robots body. We set a 50/50 confidence between the
gyroscope and the accelerometer when the robot is not turning, but when the turning
speed exceeds a given limit, indicating turning is at a “normal” speed, the accelerometer
15
confidence value is greatly limited. After a second limit is reached, indicating erratic
turning speeds, the roll axis servo is stopped completely.
Figure 4.0.2: Roll Control System
Yaw is controlled without the use of the accelerometer or gyroscope and instead uses just
a 10-turn potentiometer to determine position. The potentiometer is a sufficient device to
use on the yaw since we do not have to worry about keeping it at an angle with respect to
ground. We simply use its center point as a reference of 0° with the equation
( )
int
*
)
(
)
(
)
( CenterPo
Gain
SP
PV
t
e
t
O +
−
=
= in which the gain = 100/15.
Figure 4.0.3: Pitch Control System
An additional part of the system is a heavy-duty linear actuator which supports
the gimbal while allowing the height to change and go up to 17.75” higher than its base
position. The actuator is set up for two modes, remote teleoperation or manual which is
selectable via an “on-off” switch located on the robot. When in remote mode the actuator
height is determined based on information sent from a remote location using a joystick
for operation. When in manual, the height is modified using an “on-off-on” switch
located under the mode switch on the robot. The height, with respect to the robot, is
printed on an LCD screen located on the gimbal.
16
The control loop operates at 125Hz, which is the best achievable frequency
without diminishing the system. The faster the system response time, the less time there
is to filter noisy data or calibrate set points. Therefore, there needs to be a middle ground
that allows fast response with enough time to filter and perform necessary operations.
This operating frequency is displayed on the LCD along with pitch, roll, yaw and
displacement of the actuator.
4.2 NETWORKING
In order for the gimbal to be controlled via teleoperation we need to send and receive data
from a separate system. The data is transferred as five 32-bit packets with the first packet
being used as a flag to indicate the start of the data stream. The data sent indicates
current position for pitch, roll, yaw and actuator height while the data received indicates
new set points for these. The flag is set up as a 32-bit long word while the data packets
are 32-bit floats.
4.3 DESIGN TASKS DETAILS – LISA LINNA
4.3.1 Protecting Digital Inputs and Outputs
As a general rule for the digital I/O on the embedded arm board, you shouldn’t
source more than 4mA or sink more than 8mA. In this application, we are using
four digital outputs and three digital inputs; therefore the sum of the output
currents must be less than or equal to 4mA and the sum of the inputs less than or
equal to 8mA. With this in mind, the circuits included current limiting resistors to
protect the inputs and outputs. The actuator and servo shut-off circuits use a total
of (3) relays with a coil that requires 33.3mA to energize. Therefore, using a
Q2N3904 general purpose NPN bipolar junction transistor with a collector-base
current of approximately 100, the base current requirement was at least 0.33mA.
In order to satisfy this requirement, a 5K Ohm resistor was used at the base of the
transistor to limit the current to 0.66mA. The fourth output is used to supply
power to actuator control switches which feed the (3) digital inputs. In order to
limit this current, we used another 5KOhm resistor; therefore the outputs will
source no more than 2.64mA altogether. Since the supply for the actuator
17
switches is limited to 0.66mA, that also limits the input current to the board. This
output supplies 3.3V to these switches.
4.3.2 Linear Actuator
The actuator driver circuit consists of a 12V supply, two 2-pole relays, two relay
drivers and diodes for circuit protection. The actuator is wired across the
commons of the relays with one set up to drive the actuator up and the other to
drive the actuator down, labeled respectively as “Up” and “Down” as shown in
figure 4.3.1. When both relays are either on or off, they cause a short across the
motor which essentially puts brakes on it causing it to stop. This braking effect is
very useful at start up when the embedded arm board used to control the motor
sets all the digital outputs high for 11 seconds causing all the relays to turn on.
This start up setting cannot be changed through software and is an unfortunate
bug in the TS-7200 board; therefore, the problem was fixed by designing the
circuit so that it shorts the motor when both relays are energized instead of
shorting the battery.
The relays are energized using relay drivers controlled through digital
outputs from the controller. One digital output commands the actuator to go up
while another commands it to go down. The outputs are used to drive relay coils
which make the necessary contacts to give the actuator +12V or -12V to drive it
up or down (respectively). The relay driver simply consists of a NPN bipolar
junction transistor and a current limiting resistor at its base, used as a switch in
saturation mode (on) and cut-off mode (off). The BJT was chosen for ability to
be controlled by a low base current while it can drive relatively high currents. In
order to prevent back emf, which is a common problem in circuits such as this, a
reverse bias diode is placed across the coil of each relay in order to protect the
circuit from transients, which occur when the switch is closed. This works by
allowing current to dissipate slowly as heat by freewheeling through the diode.
Additional circuit protection was added to protect the relays themselves
from being damaged when the actuator is switched off. Diodes are wired in a
bridge type format that allows any current stored on the actuator to be fed back
18
into the battery. Whether the actuator is being driven up or down, when turned
off, this set up allows a path to the positive side of the battery, which essentially
charges it by allowing the built up charge on the inductor to flow back into the
battery.
Figure 4.3.1: Actuator Drive Circuit
The actuator can be controlled either remotely via teleoperation or
manually. In order to select its mode, a control box located on the robot has an
“on-off” switch being fed into digital inputs. If the mode is set to manual, a
separate “on-off-on” switch located on the same box is fed into a digital input to
allow the user to modify the height. Due to a weak internal pull up resistor on the
19
digital inputs, a pull down resistor is required to force it ‘low’ when floating or
else the input will always appear as ‘high’.
4.3.3 Power Distribution
The gimbal uses many electrical components that have different power
requirements as shown in table 2. The robot itself is powered off a 24V battery
supply (using two 12V batteries) which is our main feed to power everything on
the gimbal. This avoids adding other batteries that would require separate
charging. After determining the voltage and current requirements, the first thing
to consider when selecting power supplies is if we should use linear regulators or
switching power supplies. These both have their advantages and disadvantages.
The switching power supply has very low power dissipation through heat, but is
also expensive and can cause electromechanical interference due to high
switching frequency noise. Linear regulators typically have higher power
dissipation, but are generally less expensive. The motors have higher current
requirements and are powered using DC/DC converters; while the more sensitive
low current sensors use a linear regulator.
Table 4.3.1: Power Distribution Requirements
For the 7V linear regulator the LM317T chip was chosen because it can supply
1.2-25V and has a guaranteed 1.5A output current. A benefit of using this device
is that no additional protection (such as a fuse) is required because it has built in
20
current limiting protection making it blow-out proof. The output voltage is
selected using two resistors R1 and R2 based on the equation Vout = 1.25V*(1 +
R2/R1). For a voltage regulator circuit using this, you can choose either resistor
value first; however, it worked well when choosing R1 to be in the low hundreds
of ohms and then selecting R2 based on the desired output voltage. To determine
what values to use, we came up with a list of combinations that would suffice for
7V output with a 12V input. R1 was chosen to be 220ohm because it was readily
available and once the actual resistance was measured and determined to be
217ohm, then R2 was chosen as a 1k resistor.
Figure 4.3.2: 7VDC Regulator
4.3.4 Accelerometer Tilt
In order to determine tilt of each axis, trigonometry was used. Working in 3-
dimensions can seem more difficult than it is. In order to simplify the math, it is
easier initially to get an equation in terms of two vectors instead of three. To do
this, the first step is finding the summation vector of two of the axes using the
Pythagorean Theorem. Then once there are only two vectors, the inverse tangent
function can be used to determine the specific angle. The following example
shows how to find the tilt of the y-axis for pitch:
21
2
2
Z
X
C +
= => 





= −
C
Y
Radian
Y tan
_ => 







+
= −
2
2
tan
_
Z
X
Y
Radian
Y
Therefore, the tilt of each axis is
180
*
_

= Radian
Y

4.4 DESIGN TASKS DETAILS – ANTHONY LUCENTE
4.4.1 Project Design
After being a member of the Intelligent Systems Club (Robotics Club) of the
University of Michigan-Dearborn for the past four years, I was able to acquire
experence and knowledge that prepared me for senior design and this type of
project. Since the club participates in the International Intelligent ground Vehicle
(IGVC) Competition every year, we wanted to pick a project that would be
innovative and unique at the competition. After deciding on creating a camera
stabilization gimbal, I was then able to use 3-D CAD software to help in the
visualization of our gimbal and the robot that would compete in the 2008 IGVC
competition. This greatly helped in the overall design process, buying parts with
vital measurements, and knowing what the final product will look like before it is
created. Pictures of the three dimensional CAD drawings can be found in section
10.4.
22
4.4.2 TS-7200 Embedded ARM Setup
One of the first and sometimes most frustrating steps when using a new
microcontroller is setting up communication and determining the process for
taking those first movements. Setup for this project included installing and
configuring our PC with a compiler and creating an efficient transfer method for
downloading programs to the board. A cross compiler is available for the TS-
7200 which utilizes GNU programs; however, since we are writing our software
on a Windows based PC we need to use Cygwin in order to give us a Linux like
environment, thus providing us the ability to compile our program.
Using Cygwin provides the files and libraries necessary to use this
compiler as well as an API emulation layer providing Linux application
programming interface (API) functionality. Cygwin consists of two things, a
DLL to provide Linux API (application programming interface) and a collection
of tools to provide a Linux look and feel. This was downloaded from Cygwins
website and setup on our designated PC. Even though Cygwin comes with its
own compiler, it would not be able to recognize any of the hardware related code
defined for the arm board. Therefore, we will be using the cross compiler
specifically for this board called crosstool-cygwin-gcc-3.3.4-glibc-2.3.2.tar.bz2.
This was downloaded from the arm boards website and setup on the PC we will
be using for compiling our code.
In order to download the compiled programs to the board, communication
was set up via Ethernet using FTP. This was done by creating a batch file with
specific command prompts and using the boards’ initial IP address to send a
folder (containing the program) across Ethernet to the board. After the system
setup was complete, I was able to write and test the following functions found in
table 4.4.1. Once we decided the system was stable enough to be turned on with
the robot, a script was written and installed into the startup folder on the board, so
that when the robot is turned on so would the gimbal. A tutorial for setting up the
board, creating the FTP batch file, startup script and some time saving tricks can
be found in the Appendix 10.7.
23
4.4.3 Setting Up Embedded-Arm Peripherals
Setting up the Embedded-Arm on board peripherals was one of the most
important parts of this project to complete correctly. Without the correct values
from the analog to digital converters, wrong values sent to the digital I/O, bad
serial port data sent to the servo controller or wrong delay signals would result in
an inaccurate output, thus causing the gimbal to behave incorrectly. The TS-7200
manual was very vital to this part as it provided all the address locations of the
peripherals on the board. Table 4.4.1 indicates the software functions used to
communicate with the various peripherals.
In order to explain the initialization of the hardware, I will discuss how to
initialize the analog to digital converter. Since the other hardware interfaces are
similar, understanding the remaining interfaces with the code that is provided in
the Appendix 10.7 should not be difficult. The first step in setting up the hardware
is configuring the memory map of the apparatus to which you are trying to
interface. The memory map of the least significant bit and control for the analog
to digital converter can be found at address 0x10c00000. These next three lines
of code lets the board know where to read from in the memory:
The next line of code increments the address of the least significant bit by
one to get the most significant bit from the A/D converter. These addresses can
be found in the manual:
In order to determine if an analog to digital conversion is complete, a flag
at address 0x10800000 has to be read to see if it has been set to zero. If it has, the
conversion is complete and you can go on to act on that data. The code to set up
the address of the A/D complete flag is as follows:
24
After all the memory map locations were constructed, the final step was to
use the variables that were declared for the memory locations. Since there are
eight A/D channels on the TS-7200 board, a line of code needs to be written in
order to read each one of the channels and start the voltage conversions. The next
line of code lets you do this:
Because the conversion has started on the channel that you specify, you
have to wait approximately 12uS to get the value. This is done by waiting in a
“while loop” for bit seven of the ADC_COMPLETE flag to be set to zero:
The final step is to obtain the actual 12-bit number from the analog to
digital converter. This is done by getting the least and most significant bit:
Purpose Function Description
Serial
communication with
servo controller
Init_Serial
Opens COM2 serial port on the Arm board to
communicate at a rate of 115k baud rate and sets
the options to no parity, one stop bit and 8 data bits
Serial_Write
Sets up the communication command in order to
control the servos
Serial_Close Closes the serial port when the user types ctrl-C
Mother board
analog to digital
inputs
Init_ADC
Initializes al the variables for the analog to digital
converter
Close_ADC
Closes the memory that was being accessed for all
the analog to digital variables
Read_ADC
Opens the A/D channel to start the conversion on
that channel and convert the analog voltage to a
digital 12-bit value
Daughter board
analog to digital
inputs
Init_ADC
Initializes all the variables for the analog to digital
converter
Close_ADC
Closes the memory that was being accessed for all
the analog to digital variables
Read_ADC
Opens the A/D channel to start the conversion on
that channel
Digital inputs and
outputs
Init_DIO
Sets up the memory map for the bi-directional
digital I/O pins
Clear_DIO
Sets all pins to low clearing the digital inputs and
outputs
25
Set_DIO
Sets each pin on the digital I/O high or low
depending on the number received.
DIO_State
Sets the specified pin high or low depending on the
requirements
Timer used to
determine operating
frequency of the
control loop
Ticks_ms
Returns a counter which increments at
approximately 1ms rate
Ticks_Raw
Returns a counter that increments at full speed
which is approximately 980kHz
Start_Timer
Opens the timer memory map location to start the
counting sequence
Timer_Reset Clears the timer to start back at zero
Program delays Timer_Delay Delays for a specified amount of time
Write to files
Init_FileOpen Opens up text files which are used to write data to
File_Write Writes sensor data to text files
File_Close
Closes text files after the data is finished being
written to them
Close peripherals Trap_Signal
Provides the ability to close all the files, serial
ports, memory locations and stop the servos when
the ctrl-c command is pressed on the keyboard
Stop all servo
motors Kill_Servos Sets all the speeds of the servos to zero
Display data and
text on LCD
lcdInit Initialize LCD Port
lcdwait Waits until it is ok to write to the LCD
command
Allow certain commands to be sent to the LCD to
control its outputs
writechars Writes a string of characters to the LCD
Table 4.4.1: Software Functions for Setting up Peripherals
4.4.4 Noise Reduction
After collecting data from the gyroscopes, accelerometers, and potentiometers it
was found that they all had high amounts of noise, specifically the gyro which had
extreme noise. To reduce this unwanted data, I put all of our analog inputs
through a low pass filter. Though this helped with providing more accurate data,
it limited the time that it takes to complete a full control loops. Through testing, I
found that the averaging filters did not hinder the system reaction time
significantly.
26
4.5 FINAL SYSTEM
Packaging is one area that is much too often overlooked. It not only adds aesthetic value
and demonstrates the designer’s attention to detail, but can cause many difficulties if not
systematically considered. If wires/cables are not organized, they can become entangled
and damage equipment. When components are not laid out or sized properly, it can
require additional time later to fix. If things are not securely fastened or soldered to
prototype boards, they can come loose, requiring endless hours of troubleshooting or
even destroy devices if a wire is shorted to ground somehow. To prevent this, after
selecting all our components, we created an enclosure layout schematic to ensure
everything could fit in the enclosure we purchased, especially since the enclosure size
was limited by 8lb weight and size restrictions of the camera mount. In addition, we
ensured all power wires were twisted to try to limit noise and used spiral wire wrap and
wire ties for routing and securing wires. While the prototype was packaged well, there are
some things that could be modified or improved for the final marketed product.
The camera enclosure used was able to fit all the components we required and
securely hold them in place; however, it ended up being a tight fit without much room for
additional hardware. In order to fix this, we would design our own specific watertight
enclosure with separate wire runs for power and control signals going to both the top of
the enclosure and the bottom. Although the size could not be much bigger, there is room
to increase the width and height without incurring any issues. The current enclosure also
only had two openings for wires and cables which also became tight. To fix this, we
would add an additional opening so that we could separate power, control signals and
communication (Firewire for the camera and Ethernet for the embedded arm board).
In order to run the gimbal, the program has to be flashed to the embedded arm
board so that the system can start each time the controller is powered up. This is already
something we have done for our prototype and is ready for our final product. Another
thing that should be done for a final product is having PCB boards created for all the
circuits and the sensor board to reduce manufacturing costs and also eliminate the need
for the custom gyroscope analog board. Additionally, in order for the user to understand
how it works and operate it correctly, we would need to write a user manual and product
specifications document.
27
4.6 SOCIO-ECONOMIC ISSUES
4.6.1 Detailed Cost Analysis
Costs are typically one of the biggest issues for a design project and an important
consideration of the initial design phases. While there are many reasons gimbals
tend to be expensive, in this specific design, the mechanical design of the camera
mount, sensors required, and amount of items required to complete the design
(weatherproof enclosure, heavy-duty linear actuator, power supplies, camera,
microcontroller, etc.) were major factors in the overall expense. Ideally, it is
beneficial, academically as well as financially, to build as many components as
possible in an effort to economize. With the timeline, limited team members and
amount of work required, designing most of these items individually would not be
realistic.
Since this project was used as a subsystem for the Intelligent System’s
Club’s autonomous robot, a large amount of its funding came from this
organization. Fortunately, many suppliers will provide a significant discount for
students or even donate products for advertisement purposes. However, not all of
our funding was available through the Intelligent System Club and, even though
we were able to receive donations, some of the needed capital was out of pocket
expenses. In addition, a (reasonable) portion of the required cost was requested
from the University’s Department of Electrical and Computer Engineering. The
following details the costs of this project:
• Engineering Costs - $11,200.00
Assuming we were paid $10/hr to work on this project, the total cost of our time
is shown in table 4.6.1. Fringe Benefits
Table 4.6.1: Bill of Equipment
• Facilities Rental - $457.00
As a part of our tuition, a technology and lab fee is included for use of the
university labs and euipment as detailed in table 4.6.2.
28
Table 4.6.2: Bill of Equipment
29
• Components Cost – $4,085.73
Table 4.6.3: Bill of Equipment
30
• Lab Space, Equipment, Instructors Cost and Fringe Benefits - $14,793.33
The cost for renting lab space is determined using the total wages plus the cost of
fringe benefits. Fringe benefits equals 30% of our wages which is $11,200 * 0.3
= $3,360. Therefore, lab space/equipement cost can be estimated at $14,560. In
developing the product, we received assistance from our advisor (as well as other
professors and students). The cost for this can be estimated by assuming their
cost at $100/hour for 5 hours/week over a course of 28 weeks (two semesters
minus four weeks for recess). Therefore, the total instructor cost is calculated as:
33
.
233
$
_
60
2
*
2
28
*
1
5
*
100
$
=
Average
Students
Semesters
Semesters
weeks
week
hours
hour
The overall cost analysis for the Intelligent Gimbal is $30,536.06. If we
sell a predicted 20 gimbals in the first year, we will have a recovery cost of
$30,536.06/20 = $1,526.81. With component cost at $4,085.73 and a profit
margin of twice the recovery cost at $3,053.61 and additional expenses for
advertising and miscellaneous items, we must sell the gimbal at no less than
$7,500.00. While this may appear to be an exorbitant amount to the average
consumer, the least expensive gimbals on the market currently sell for twice that
amount and rent for at least $800.00 a day.
4.6.2 Economic Benefits and Societal Imact
The Intelligent Gimbal System used with the autonomous robot will have a
tremendous impact on the industrial complex of society by aiding in the research
and advancement in unmanned vehicles and machines in general. They have been
used for safety purposes with Police Departments, e.g. inspecting a potential
bomb. Unmanned vehicles are currently a prime area of research for the United
States Department of Defense. These not only include land vehicles, but also
systems for the air and sea. In times of war, autonomous vehicles could save
counltess lives and greatly reduce deaths from roadside bombs.
31
4.7 SAFETY ISSUES
One of most important aspects of product design is safety. It is imperative that designers
keep the welfare of the manufacturer, consumer and society in mind and include all
necessary safety features, even though these items may increase cost without otherwise
improving the product. Prevention of injury or death should be an integral aspect of any
design. With this respective Intelligent gimbal, all actions were taken to ensure safety of
the user and others, while also protecting the various electronics. Keeping in mind that
countless future students would have access to this project in the years to come, the safe
implementation of this Intelligent gimbal was first and foremost in our project outline.
There are red and blue flashing lights located on both sides of the robot which
indicate that the robot and gimbal are activated. These lights alert people that the robot
could start at any moment. The lights continue flashing while operating. With a moving
object as large as the autonomous robot, having the ability to stop it in case of a
malfunction is imperative. On the robot, there is a red emergency stop button in the
shape of a mushroom that kills power to all parts of the robot, including the gimbal.
Since the local emergency stop on the robot cannot always be reached, there is an
additional remote stop that can be used to disable the robot and gimbal. In addition to
these emergency stops, there is a separate circuit for the gimbal which allows the servos
to be remotely shut off in case the gimbal malfunctions.
With respect to protecting the gimbal, software limits are designed to allow a
large range of view, but prevent it from rotating beyond specific degrees. If these were
not set up, the gimbal could destroy itself by damaging the servos, breaking the camera
support structure or entangling and pulling wires/cables beyond their given length. For
pitch, the limit is set at +/- 60 degrees in order to prevent the enclosure from hitting the
top of the gimbal, yaw limits are set to +/- 150 degrees to stop it from turning into the
actuator and roll is limited to +/- 40 degrees so the enclosure components don’t get
thrown around (even though they are secured inside). Despite these limits, the device can
provide more than enough visibility and usability when the robot is in autonomous or
teleoperation modes.
Circuit safety is integral to user safety. For example, if a fuse is not sized
properly, the user may remove it entirely and, in effect, cause something to blow up and
32
potentially injure him/her. In order to protect the gimbal, we used diodes to protect
circuits and increase relay life from the effects of reverse emf. Another safety feature
monitors the 7VDC power supply which was built. The voltage is verified and, if not
correct, shuts off all power to the servos, so that we don't damage the sensors relying on
this power supply. Additionally, we display system data and indicate the 5 volt, 7 volt
and 12 volt power with LEDs while we monitor the main 24 volt battery supply with a
digital indicator.
33
5.0 TEST RESULTS AND DISCUSSION
For the Intelligent gimbal, the main goal was to create a 3-axis control system in order to
stabilize it for yaw, pitch and roll. Each axis has a similar, yet different, control system
that was designed and tested separately before being integrated into one system. For
pitch, the position was based 50% on the accelerometer and 50% on the gyroscope data
which made it possible to achieve its setpoint within +/-1° as shown in figure 5.0.1. It
may appear that the pitch axis is drifting from the graph, but with the setpoint at 45°,
starting angle at 45.34° and ending position at 44.53°, this is just a coincidence. The
accelerometer is used as the process variable to indicate the actual angle since it is quite
accurate when the robot is not moving or at a constant speed. To show the necessity of
the accelerometer to correct for errors, figure 5.0.2 shows the system response when
based solely on the gyroscope feedback. The accelerometer uses this data to show how
the position drifts with a starting position of 45.22° and ending up at 43.52 degrees.
Figure 5.0.1: Pitch Response with Accelerometer and Gyroscope Feedback
34
Figure 5.0.2: Pitch Response with Gyroscope Feedback Only
For the roll axis, the turning speed of the robot greatly affects its overshoot and
settling time. In order to correct for this, a 1-axis gyroscope was added to the body of the
robot to indicate its turning rate and data was collected in order to set limits based on the
robot’s actions. Figure 5.0.3 shows the effects on the 1-axis gyro when at stand still,
forward/reverse acceleration and when turning, along with peak values for these
situations. With the response based equally on both sensors, but with different gains
based on these limits, the result can be seen in figure 5.0.4 with an accuracy of +/-1°.
The test data with both sensors has a set point of 0° with a starting position of -0.7595°
ending at 0.8644°. When the robot is at stand still, noise causes the analog values (which
range from 0-5V as 0-4096 A/D points) to vary +/- 3 points approximately. If
accelerating forward/reverse (930-975 points), the servo speed is based 50/50 on both
sensors but, when turning at a normal speed (875-1045 points), the servo speed is limited
by a gain of 0.021 which was determined from testing using the tuning method. If the
turning speed becomes erratic (greater than 1115 or less than 800 points), the servo speed
35
is set at 0°/second. The drift that occurs without the use of the accelerometer can also be
seen in figure 5.0.5. The data collected shows the position drifting from -0.4312° to -
3.665°.
Figure 5.0.3: Robot Turning Speed Response
36
Figure 5.0.4: Roll Response with Accelerometer and Gyroscope Feedback
Figure 5.0.5: Roll Response with Gyroscope Feedback Only
37
The yaw axis is controlled using only 10-turn potentiometer as feedback to adjust the
servo. Although this sensor is not as accurate and is noisier than the gyroscope used for
the other axes, it does not develop an error as the gyroscope does. The accuracy of this
axis once it reaches a steady state is +/-2° yet it still works quite efficiently as can be seen
in figure 5.0.6. The set point in this test was 0° where the position was approximately at -
0.4° during its steady state.
Figure 5.0.6: Yaw Response with 10-Turn Potentiometer Feedback
In the June 1, 2008 Intelligent Ground Vehicle Competition, Raptor was one of
two autonomous robots entered by the Intelligent Systems Club. As a new robot in 2008,
it did not place in the top 3, yet it performed well and the gimbal proved a valuable
addition. In the competition, we used the gimbal in autonomous mode which aided it
over man made hills, added as one of the obstacles. The pictures in figure 5.0.7 are from
the robot’s camera when going over one of the obstacles; this displays the gimbal’s
ability to keep the camera pointed at the ground in order to stay on course.
38
Figure 5.0.7: Gimbal Going Over a Hill As Seen From The Camera
For the 2009 competition, the Intelligent Systems Club will propose a new
competition using remote teleloperation with limited band width that could be used in the
battlefield. This involves using the gimbal in manual/remote teleleoperation mode,
through which the user can control the gimbal and rotate the camera for yaw, pitch and
roll as well as modify the height of the camera in order to see around obstacles and make
its way through the required path.
39
6.0 CONCLUSIONS
• Gimbals are used for a variety of reasons ranging from camera stabilization for
television and movie production to aiding autonomous vehicles, which was the
purpose of this project.
• The gimbal keeps a camera steady by controlling modified continuous servo
motors for yaw, pitch and roll on a 3-ring axis mount. The gimbal is mounted
using a linear actuator that can raise or lower the entire system.
• The system has two modes, remote teleoperation and automatic. In automatic
mode each of the axes and the actuator have specified set points which the system
works to maintain and in teleoperation, a remote user can modify the height and
move the camera using each axis in order to see around obstacles or obtain a
better view.
• Pitch and roll axes both required a proportional-derivative system using the 3-axis
accelerometer and 3-axis gyroscope, while the yaw axis uses a 10-turn
potentiometer as feedback for a proportional system.
• Gyroscopes drift over time requiring an additional sensor, in this case an
accelerometer, to correct for any error.
• When integrating the gyroscope data to find position we were accumulating the
error from the sensor making it unusable; therefore, we decided to use the speed
in s
/
 to control the servo. This sensor had a high error rate due to its operating
frequency being at 400Hz, the rate noise density is given as Hz
s /
/
 .
• We were able to achieve and operating frequency of 125Hz by optimizing our
code and decreasing the amount of data that is averaged in our low pass filters.
• Port B on the TS-7200 Embedded Arm Board, which was used for the digital
inputs and outputs, has weak internal pull up resistors on the pins causing
floating inputs to be seen as a logic ‘1’. In order to correct for this, the inputs
must be pulled low to get a logic ‘0’.
• When using sensitive sensors, noise can be a huge issue; therefore, we chose to
filter the data using software.
40
6.1 EXECUTIVE SUMMARY – LISA LINNA
The Intelligent Gimbal System was designed to aid in the accuracy and performance of
the Intelligent Systems Club’s autonomous robot by stabilizing its vision system. This 3-
axis gimbal is designed to keep the robot’s camera at a specified angle by rotating it
about three axes for roll, pitch and yaw via continuous servo motors. Additionally, the
gimbal can be raised or lowered to modify the camera’s view. The program is written in
embedded C and developed as a hard, real time system in which the response of the
servos based on feedback sensors needs to occur in a timely manner for the system to
operate successfully.
There are two modes for the gimbal, autonomous and remote (manual)
teleoperation. In autonomous mode, the gimbal adjusts and the height is set based on
pre-defined set points; while, in remote mode, the set points can be modified using a
joystick controller. The actuator has an additional control box allowing the user to
choose to set it in automatic/remote mode in which the height will adjust based on
software set points, or local manual mode in which the height can be modified by the user
at the robot itself without requiring remote teleoperation.
Pitch and roll axes are controlled based on feedback from a 3-axis gyroscope and
3-axis accelerometer. This system works as a proportional-derivative controller with the
accelerometer (proportional) monitoring tilt in degrees with respect to its setpoint and the
gyroscope (derivative) monitoring rate of change in degrees/second with respect to its
zero speed. This system is basically the same for pitch and roll axes except for the gains
used. Yaw axis works as a proportional system using a 10-turn potentiometer to
determine position in degrees with respect to its center point since it cannot use the
accelerometer to correct for error. The actuator height is monitored using a string
potentiometer to determine its position in inches.
The Intelligent Gimbal System was integrated on robot Raptor using autonomous
control and entered into the 2008 Intelligent Ground Vehicle Competition. In the
competition, it proved to be a valuable factor in the robot’s ability to navigate the course.
Due to the intrigue created with the introduction of the gimbal in the 2008 competition, it
is expected that the 2009 competition will include an additional component which uses
the remote teleoperation and gimbal as a demonstration.
41
6.2 EXECUTIVE SUMMARY – ANTHONY LUCENTE
The creation of a successful robotics design is a complex and challenging task, ever
changing as new technology interfaces with historical inventions. The gimbal has been
around for hundreds of years helping various technological marvels create more accurate
measurements. These range from things in the marine industry such as the compass stay
level over rough seas to the aerospace industry’s inertial measurement units (IMU) stay
level while the aircraft is doing its aerobatics. A gimbal is a device that allows an object
to rotate around a single axis, moving to various orientations on that axis. Adding more
gimbals on different axes allows the object to rotate in more than one dimension.
Furthermore, adding sensors such as a gyroscope and an accelerometer to an electronic
gimbal allows that gimbal to stabilize and move about a certain reference point.
The intelligent gimbal was created for the Intelligent Systems Club of the
University of Michigan-Dearborn’s autonomous robots for the Intelligent Ground
Vehicle Competition (IGVC) of 2008. Our gimbal consisted of three rings, creating a 3-
axis gimbal to control yaw, pitch, and roll, a 3-axis and 1-axis gyroscope, a 3-axis
accelerometer, and two potentiometers all used to stabilize the club’s autonomous robot’s
optical system while moving over rough and un-even terrain. Without the gimbal, the un-
even or rough terrain of the obstacle course can blur images that are used to follow white
lines along the robot’s path. With the 3-axis gimbal we also incorporated a linear
actuator which can change the height of the camera to look over obstacles and also
prevent glare from the sun at various times of the day. The gimbal can not only be
controlled by the system autonomously, but by a remote user teleoperating the robot. The
user has the ability to change the angles of the camera in three dimensions as well as the
height of the camera, while it is stabilizing at those different angles.
The gimbal is controlled with an embeddedARM microcontroller written in
embedded C, controlling the servos and the relays for the actuator. It does this by using a
proportional-derivative controller from the gyroscope and the accelerometer to control
each of the axis of the gimbal. Using this system the gimbal has proved to be very
accurate and a valuable asset to the Intelligent Systems Club’s autonomous robot. It will
be used by future students to help in the advancement of autonomous robots, potentially
creating a new teleoperation competition in the Intelligent Ground Competition.
42
7.0 REFERENCES
"Accelerometer." Wikipedia, The Free Encyclopedia. 17 Apr 2008, 13:16 UTC. Wikimedia
Foundation, Inc. 04 Jan 2008 <http://en.wikipedia.org/w/index.php?title=Accelerometer&
oldid=206235876>.
"Accelerometer Limitations ." Motus. Motus Bioengineering Inc. . 07 March 2008
<http://www.motusbioengineering.com/accelerometer-limitations.htm>.
Clifford, Michelle. "Measuring Tilt with Low-g Accelerometers." Freescale Semiconductor. May 2005.
Freescale Semiconductor. 10 Jan 2008 <www.compel.ru/images/catalog/120/AN3107.pdf >.
"Cygwin." Robot Projects. 2008 . 04 Jan 2008 <http://www.cygwin.com/>.
"DE-ACCM3D Buffered ±3g Tri-axis Accelerometer.". Dimension Engineering . 10 Jan 2008
<http://www.dimensionengineering.com/DE-ACCM3D.htm>.
"GETTING STARTED WITH TS-LINUX." Embedde-Arm. July 2007. Technologic Systems. 03 Jan 2008
<http://www.embeddedarm.com/products/board-detail.php?product=TS-7200#>.
"Gimbal." Wikipedia, The Free Encyclopedia. 7 Apr 2008, 18:58 UTC. Wikimedia Foundation, Inc. 04 Jan
2008 <http://en.wikipedia.org/w/index.php?title=Gimbal&oldid=204044856>.
"Gyrobot - a balancing robotic platform." Robot Projects. 28 Oct 2002. 07 March 2008
<http://www.barello.net/robots/gyrobot/>.
"Gyroscope." Wikipedia, The Free Encyclopedia. 11 Apr 2008, 21:56 UTC. Wikimedia Foundation, Inc. 04
Jan 2008 <http://en.wikipedia.org/w/index.php?title=Gyroscope&oldid=205011189>.
"Gyroscope." Wikipedia, The Free Encyclopedia. 12 Aug 2008, 18:03 UTC. Wikimedia
Foundation, Inc. 12 Aug 2008 <http://en.wikipedia.org/w/index.php?title=Gyroscope&oldid=
231496576>.
"Inertial measurement unit." Wikipedia, The Free Encyclopedia. 10 Feb 2008, 11:04 UTC. Wikimedi
Foundation, Inc.10 Jan 2008 <http://en.wikipedia.org/w/index.php ?title=Inertial_measurem
ent_unit&oldid =190367883>.
"Interface Board." MEMSENSE. Rev A. 10 Jan 2008
<http://www.memsense.com/products/product/moredetails/display.php?product_id=9>.
"Kalman filtering of IMU data ." Tompyckebe. 15 March 2008. 10 Apr 2008
<http://tom.pycke.be/mav/71/kalmanfiltering-of-imu-data>.
43
"Linux for ARM on TS-72XX User's Guide." Embedde-Arm. July 2007. Technologic Systems. 21 Apr
2008 <http://www.embeddedarm.com/products/board-detail.php?product=TS-7200#>.
"Measurement of a Vehicle’s Dynamic Motion." Crossbow. 07 March 2008
<www.xbow.com/Support/Support_pdf_files/IMUAppNote.pdf >.
"Microelectromechanical systems." Wikipedia, The Free Encyclopedia. 10 Aug 2008, 19:06
UTC. Wikimedia Foundation, Inc. 12 Aug 2008 <http://en.wikipedia.org/w/index.php?title
=Microelectromechanical_systems&oldid=231070558>.
"Navigation." Encyclopædia Britannica. 2008. Encyclopædia Britannica Online.
12 Aug. 2008 <http://www.britannica.com/EBchecked/topic/407011/navigation>.
"Sensors: General Description of the tilt sensor and gyroscope." Segbot. Spring 2004. 09 March 2008
<http://coecsl.ece.uiuc.edu/ge423/spring04/group9/objectives_sensors.htm>.
Tong, Terence. "Kalman Filter Made Easy." October 12, 2005. Berkeley . 10 Apr 2008
<www.ocf.berkeley.edu/~tmtong/howto/kalman/writeup.pdf>.
"TriRate: Triaxial MEMS Gyroscope." MEMSENSE. Rev G. 10 Jan 2008
<http://www.memsense.com/products/product/moredetails/display.php?product_id=6>.
"TS-7200 Hardware Manual." Embedded-Arm. July 2007. Technologic Systems. 04 Jan 2008
<http://www.embeddedarm.com/products/board-detail.php?product=TS-7200#>.
"TS-9700 Manual." Embedded-Arm. Oct 13 2003. Technologic Systems . 04 Jan 2008
<http://www.embeddedarm.com/products/board-detail.php?product=TS-9700#>.
"Uses for gyroscopes." gyroscopes.org 10 Aug 2008 <http://www.gyroscopes.org/uses.asp>.
Welch, Greg. "The Kalman Filter." March 24, 1997. 02 Apr 2008
<http://www.cs.unc.edu/~welch/kalman/>.
"Where's the Wiimote? Using Kalman Filtering To Extract Accelerometer Data." Gamasutra. March 24,
1997. 10Apr 2008 <http://www.gamasutra.com/view/feature/1494/wheres_the_wiimote_using_
kalman_.php?page=2>.
44
8.0 LIFELONG EDUCATION
The pursuit of education is important part of life for almost everyone, but it is essential
for those individuals in technical fields which have ever changing technology and
increasingly rigorous competition. This endeavor requires a commitment to remaining
constantly informed about the latest and most effective instruments available as well as
sharing communication about the most recent successes as well as “setbacks” in the field
of interest. The magnitude of this may differ from person to person depending on his/her
own personal goals, but, in order to secure a future in technology, it is essential to stay
“up to speed” with the everchanging hi-tech world.
8.1 LIFELONG EDUCATION – LISA LINNA
As technology expands so must we; everyday the world advances, giving us more to
learn and understand while pushing us to excel. With every new discovery or invention
the bar is set higher and the challenge to advance ourselves is increased. Such as
Moore’s Law which predicts the rate of transistors doubling on integrated circuits, we can
predict the advancement in all areas to amplify. The only way to keep up with new
advancements is to commit ourselves to a lifelong education. While a bachelor’s degree
was once enough for a career in engineering or science, it’s now just the basic
requirement for acceptance into a masters program. In technical fields, many employers
will not even consider hiring an employee without a graduate degree. It’s not only
important to pursue a graduate degree in order to expand your knowledge, but it
demonstrates your ability and commitment to learning. This is particularly important to
employers when they need to find workers capable of adapting to the ever-changing
technical world whether it is new software, changes in codes, etc.
With the internet becoming commercially and publicly available in the late
1900’s, so started the exponentially increasing world globalization. For new graduates,
finding a job used to mean completing against fellow classmates when pursuing a job;
now however, we have to compete against the rest of the world. In areas such as
software engineering, where much of the work can be done from a far using the internet
as a tool, we are seeing much more competition making further education even more
critical. Many jobs in the US are being sent oversees in order to reduce immediate costs;
45
which in the long run have a negative effect on the economy. We are finding new
competition every day making it harder to find a career and requiring us to be better than
the rest if we want to stay in the field we have chosen.
Even though there’s global competition among countries, as a race we must
advance in order to protect the world. When considering the automotive industry,
developing new, eco-friendly vehicles is an immediate concern for everyone. In the
medical field, there are always ways to advance whether it is developing cures for disease
or new prosthetic devices which can save or improve the quality of life for countless
people. The question should not be should you continue your education but how and in
what discipline should.
8.2 LIFELONG EDUCATION – ANTHONY LUCENTE
Lifelong education is extremely essential for engineers as they continue their journeys
from universities and academics to practical experience in their career paths. Moore’s
Law tells us, “The complexity for minimum component costs has increased at a rate of
roughly a factor of two per year.” Though this is not quite true today, the doubling factor
appears closer to about every 18 months. These numbers are just profound when you
consider all of the electronic devices in the world and how much they could potentially
change in just 18 months. If the engineer who just earned his/her bachelor’s degree does
not remain informed and/or is out of the field for five years, technological advances
would have doubled twice. He/She may find it not only very difficult to work in his
chosen field, but may not even recognize that area of former “expertise.”
After graduating from the University of Michigan-Dearborn in the summer of
2008, I plan to take a semester away from academics. After 17 straight years of school, I
want to allow myself the opportunity to pursuit my next direction in a more leisurely and
contemplative fashion. For the next few months, I will research the robotics industry for
employment that will be rewarding, utilize my strengths, and that would potentially help
pay for a master’s degree. I am hopeful that a master’s program would allow me to
continue my education with robotics, taking classes such as intelligent systems,
embedded systems, control systems, neural networks, etc, while of course fulfilling my
master’s degree requirements. It is my intention to remain in the forefront of the robotics
46
field. I am hopeful that furthering my education will also allow me a wider variety of
choices for the type and the location of my work.
In the spirit of the professors who have so generously assisted me in my
educational pursuits, I feel confident that my experience and academic accomplishments
will help me to work with and lead groups of engineers to new discoveries and
advancements in the field of robotics. While I am particularly focused on improving the
safety of our soldiers with the use of robots, I am also hopeful that the work of
individuals who are faced with repetitive tasks or labor intensive responsibilities will find
the robotics industry of assistance. With my engineering background, I find that there are
many possibilities, including becoming an entrepreneur and/or inventor and creating and
marketing innovative and useful products. There is no question that a constant pursuit of
education and experience will be essential for any level of success, let alone expertise, in
these areas.
As engineers create new ways to advance technology for society, those
innovations will stimulate future creativity and discovery. The developing of new
technologies is a major component in the survival and evolution of a society. Future
generations have always depended upon the accomplishments of past generations.
Without education, discovery and advancements, society as we know it would become
stagnant and, potentially, wither away. While many great minds have proposed similar
notions, I have found these words from Louis L’Amour to ring true to me, “The best of
all things is to learn. Money can be lost or stolen, health and strength may fail, but what
you have committed to your mind is yours forever."
47
9.0 CONTEMPORARY ISSUES
There are countless issues affecting our society that can be aided or affected by
innovation and advancements in technology. Here we will explain some specific
problems we’re facing and how certain technical fields show promise in improving or
solving these issues.
9.1 CONTEMPORARY ISSUES – LISA LINNA
One of the biggest issues affecting the U.S. economy today is globalization. In most
parts of the world, globalization has become a necessary part of everyday lives. The
automotive industry in the U.S. has had to make major changes in their everyday
operations due to the outsourcing of jobs and importing of parts and cars. Local
automakers have been confronted with a decline in sales, have had to close factories and
reduce the number of employees. Ultimately, with the ripple effect, this has had a
negative effect on the economy as a whole. Although this is a problem for many already
in, or considering a career in engineering, there are ways in which to expand your
horizons and still remain within your profession.
Today, those graduating with degrees in engineering have to be concerned about
finding and maintaining employment. One of the fields most at risk is computer science.
Programming languages are generally universal and can be easily formulated in one
country and transmitted over the internet to another without translation. However, due to
the automotive industry’s current financial difficulties, all fields of engineering have
suffered a decrease in demand. Those with jobs are concerned about downsizing. Those
fresh out of college will encounter many obstacles in obtaining employment.
Consequently, many people will need unemployment financial assistance, have to take
jobs which are less fulfilling or for which they are overqualified or will have to relocate
to find a job in their field. This decline also affects many other people and professions
besides engineers as depicted in the diagram below:
48
With the increase in global competition and high gas prices, advancements and
innovation in automotive technology is a must. Hybrid vehicles prove to be a step in the
right direction, but remain somewhat problematic. Even the Ford Escape depends on
foreign manufacturers. Due to patent issues, the hybrid transmission used in this vehicle
is supplied by a company belonging to the Toyota group. Not surprisingly, this company
limits the supply of hybrid parts for Ford vehicles. This in turn limits the supplies of the
Ford hybrid vehicle, forcing customers to seek out other suppliers of hybrids. The race is
on world wide to develop an environmentally friendly, gas free vehicle at a reasonable
cost. Although there has been success in developing electric and hydrogen powered
vehicles, they are still not available for mass production.
9.2 CONTEMPORARY ISSUES – ANTHONY LUCENTE
The fields of robotics, nanotechnology and artificial intelligence have advanced seven
fold in the last decade and display tremendous promise in changing the face of
technology. While the rapid pace of technological advancements in the robotics industry
have demonstrated an important impact on the war front challenging the U.S., artificial
.
.
Less U.S. engineered
automobiles sold
Dealerships lose money,
jobs, even close
LOSSES
Stamping plant (line
workers, engineers, etc.)
Paint System (line workers,
engineers, etc.)
Assembly plant (line
workers, engineers, etc.)
Plant Mfg. Co.
Part suppliers
(plastic, metal, etc.)
Plant Mfg. Co.
(Durr Systems, etc.)
Part suppliers (paint,
filters, etc.)
Plant Mfg. Co.
Part suppliers (part
manufacturing
plants,
transmissions,
engines, tires, fluids,
etc.)
Decline in
“wants”/luxury items
being purchased; for
example, new homes,
clothing, vacations,
dining out,
entertainment,
electronics, etc.
.
.
.
.
49
intelligence and nanotechnology have great potential in affecting the everyday lives of
society as a whole. These innovations in the field of robotics have stimulated many
complex questions about the future of society as we know it.
Currently, there are over 2000 robots in active service in Iraq and Afghanistan.
These robots such as the iRobot PackBots, or the Foster-Miller Talon are used not only
for surveillance and as the first line of defense, but can be mounted with various guns and
ammunition to help protect our soldiers. Besides robots that travel on the ground, they
have developed robots that fly, providing surveillance from the air. Recently, robots have
been created which can contain a variety of missiles that can attack specific targets that
may put a human in harms way. These robots, though semi-autonomous, can potentially
become fully autonomous machines. Are we ready for a robot to make the decision about
when to shoot? Society will need to decide whether it wants robots which are
programmed for making the decision of life or death. Will society allow a robot to decide
who is the enemy, who is bad or good?
Another issue that we need to decide now is whether we want robots that think
and act on their own. Artificial intelligence is advancing every day. We currently have
cars that drive themselves and robots that are able to recognized faces, walk and talk, e.g.
Honda’s Asimo. Robots are able to discern an emergency and act on it. It will not be too
long before robots start to become self-aware and start to be able to learn about their
surroundings. This is an area of research and design that has garnered a great deal of
attention. Is this society ready to coexist with robots who/which have the ability to think?
Will we make robots that have the ability to become so intelligent that they will one day
think they do not need us? The decisions we make today will determine the future
direction of robot technology.
An extremely new field of study is the field of nanotechnology, specifically
nanorobotics. Nanobots have great potential in the race to find a cure for cancer or AIDS
or to repair broken bones without surgery, etc. They also can potentially fit into places
that are too small for other electronic devices, to make the current electronic devices even
smaller. We also have to think about the problems that come with nanobots, which could
potentially outweigh the benefits. Terrorism is a big problem today and an everyday
occurrence around the world. If the technology to make these nanobots becomes cheap
50
and readily available to people who wish to harm others, they could potentially kill
millions of people. One scenario could be nanobots injected into our food that are
programmed to attack our organs. Anti-nanobots would then need to be created to
combat the nanobots that are now in your body, thus creating a little robot war. Although
these nanobots have an abundance of benefits, they could potentially kill a lot of people if
they end up in the wrong hands. Society needs to decide if these benefits offset the risks.
As robots become more advanced and artificial intelligence increases in
sophistication, it is only a matter of time before robots start to hold jobs once completed
by humans. It was only thirty years ago when my father saw robots taking jobs from
workers on the automotive assembly lines. As more unskilled workers and, in the near
future, skilled workers lose their jobs to robots, society will face a major challenge about
how to provide needed jobs for these individuals. Will the government take an active
role in helping these workers return to college and develop new skills? What will be the
descriptions of the human jobs of the future? What will become of those individuals who
are unable to adapt?
Society still has many questions, challenges and issues to confront when faced
with robotics technology, artificial intelligence and nanotechnology. It is imperative that
we examine the handwriting on the wall, determine the most optimal directions for this
technology and consider the possible outcomes. These decisions have the potential to
advance the survival and comfort of the human race—or to cause tremendous upheaval
and disturbance.
51
10.0 APPENDICES
This appendix includes Vita Auctoris for each team member and all derivations,
intermediate results, detailed circuit diagrams, the computer program, and photographs
which were not immediately significant to the project.
52
10.1 VITA AUCTORIS – LISA LINNA
THE UNIVERSITY OF MICHIGAN-DEARBORN
Department of Electrical & Computer Engineering
1. Name and Academic Rank: Lisa Linna, Senior Engineering Student
2. Degrees:
Diploma 2003 Churchill High School, Livonia Michigan
B.S.E. 2008 University of Michigan-Dearborn (EE & CE)
3. Number of years attended at this University: 5 years
4. Work Experience:
2002 Intern, Ford Advanced Vehicle Technology Group – Dearborn, MI
2003-2008 Engineering Technician, Dürr Systems, Inc. – Plymouth, MI
5. Organizations and Honors:
2004-2008 Secretary, Intelligent Systems Club
2004-2008 Member, Institute of Electrical and Electronic Engineers, Inc.
2007 University Honors – Winter & Fall Semesters
2007-2008 Member, Eta Kappa Nu – Electrical and Computer Engineering
Honor Society
2007-2008 Member, Society of Women Engineers
6. Design Projects:
2008 Intelligent Three Axis Camera Stabilization Gimbal
2008 32-bit MIPS Processor
2006 Autonomous Sprinkler system
7. Research Interests
• Embedded Systems
• Control Systems – PID Controllers
53
10.2 VITA AUCTORIS – ANTHONY LUCENTE
THE UNIVERSITY OF MICHIGAN-DEARBORN
Department of Electrical & Computer Engineering
1. Name and Academic Rank: Anthony Lucente, College Senior
2. Degrees, with fields, institutions and dates:
University of Michigan-Dearborn, Dearborn, MI
Bachelor of Science in Electrical and Computer Engineering
Expected Graduation: August 2008
Schoolcraft Community College, Livonia, MI
Computer and Information Systems
Dual Enrollment Student from Churchill High School, Livonia, MI
Transferred 25 College credits to University of Michigan-Dearborn
Date Transferred: June 10, 2004
Churchill High School, Livonia, MI
Graduation Date: June 10, 2004
3. Number of years as an undergrad: 4 years
4. Other related experience:
2005-2008 President, Intelligent Systems Club (Robotics Club), University of
Michigan-Dearborn, MI
2000-2008 Manager/Stock/Bagger, Larry’s Foodland, Livonia, Michigan
5. Research Projects:
2004-2008 Autonomous Robot Navigation
2008 Intelligent Three Axis Camera Stabilization Gimbal
2008 32-bit MIPS Processor
2007 Robot Obstacle Avoidance Sensor Array
2006 Autonomous Sprinkler system
6. Honors, Awards and Professional Memberships
• Member of Intelligent Systems Club
• Member of IEEE Robotics and Automation Society
• Member of IEEE University of Michigan-Dearborn Chapter
• Member of Institute of Electrical and Electronics Engineers, Inc (IEEE)
• Member of Association for Unmanned Vehicle Systems International (AUVSI)
• Dean’s List-Electrical and Computer Engineering, University of Michigan
• Dean’s List-Computer and Information Systems-Schoolcraft Community College
• 13th
-16th
International Intelligent Ground Vehicle Competition Winning 2nd
Place
54
10.3 ANALOG TO DIGITAL CALCULATIONS
When using analog to digital inputs it is necessary to scaling the inputs in order to attain
usable data.
10.3.1 Accelerometer Scaling
Device Specifications:
Range: +/-3g
Rate: 333mV/g
The accelerometer outputs go to the daughter boards’ 12bit analog to digital
inputs which range from 0-10V for 0-4096 A/D points (2^12=4096) resulting in
409.6 points/volt. With the specific orientation chosen for the sensor, the axes
have the following outputs at 0°: Roll X-axis = 1.66V = 679.367 points, Pitch Y-
axis =1.66V = 679.367 points, and Yaw Z-axis = 1.99V = 815.104 points.
10.3.2 Gyroscope Scaling
Device Specifications:
Rate = +/- 150°/s
Sensitivity = 12.5mV/°/s
Zero Rate = 2.50V at 25°C (77°F)
Temperature Drift = 8.4 mV/°C
The gyroscope outputs go to the main boards’ 12bit analog to digital inputs. The
inputs range from 0-5V for 0-4096 A/D points (2^12=4069) resulting in 819.2
points/volt. With the zero rate at 2.5V it can be measured as 2048 points.
C
s
po
V
s
po
V
C
mV
eDrift
Temperatur 
−
=

= /
int
88
.
6
/
int
2
.
819
*
0084
.
0
/
4
.
8
s
s
po
V
s
po
V
s
mV
y
Sensitivit /
/
int
24
.
10
/
int
2
.
819
*
0125
.
0
/
/
5
.
12 
=
=

=
55
10.4 3-DIMENSION DIAGRAMS
In original design phases we developed a 3-dimensional layout in order to
determine the gimbals structure with respect to the robot.
Figure 10.4.1: 3-Dimensional Drawing – Gimbal with Robot
56
Figure 10.4.2: 3-Dimensional Drawing – Gimbal with Robot
57
10.5 ELECTRICAL SCHEMATICS
58
59
60
61
62
63
64
- 65 -
10.6 INTELLIGENT GIMBAL PHOTOGRAPHS
Figure 10.6.1: Robot and Gimbal – Right Side
- 66 -
Figure 10.6.2: Robot and Gimbal – Left Side
- 67 -
Figure 10.6.3: Actuator Control Box and String Potentiometer
- 68 -
Figure 10.6.4: Robot Front Access - Power Supplies and Actuator Circuit Location
Figure 10.6.5: Gimbal Camera Enclosure
- 69 -
10.7 SETTING UP THE EMBEDDED-ARM BOARD
If you are reading this document you’re probably wondering how to start developing
code on your TS-72xx. This document will give a tutorial on how to set up your board
and start developing code as soon as possible:
10.7.1 Installing Cygwin
Cygwin is a Linux-like environment for Windows. It will be used to run
the Embedded-Arm board cross-compiler that is needed to compile your code.
The setup.exe can be found at http://cygwin.com/ . Download and run the
setup.exe file.
Step 1: Select “Install from Internet”:
- 70 -
Step 2: Install to default location:
Step 3: Use default local package directory- C:cygwin (click next)
Step 4: Use whatever internet connection settings (click next)
Step 5: Select a mirror (click next)
Step 6 (a): In the “Select Packages” expand “Devel”:
Step 6 (b): Select any of the development compilers you are going to need,
mostly: gcc, gdb, and make. These compilers will not be used to compile your
code for your TS-72xx board, but may be useful in developing Linux based
applications. The “Make” package will be used to compile your TS-72xx code
and will be explained later in this document.
- 71 -
Step 7: click next and follow the rest of the installation instructions.
Clicking on the “cygwin” icon placed upon your desktop gets you to a
“bash” shell with the current working directory of C:cygwinhome<username>.
You are able to run setup.exe any time you want to update or install a
Cygwin package. Note that, when installing packages for the first time, setup.exe
does not install every package. Only the minimal base packages from the
Cygwin distribution are installed by default. Clicking on categories and packages
in the setup.exe package installation screen will provide you with the ability to
control what is installed or updated. Clicking on the "Default" field next to the
"All" category will provide you with the opportunity to install every Cygwin
package. Be advised that this will download and install hundreds of megabytes to
your computer. The best plan is probably to click on individual categories and
install either entire categories or packages from the categories themselves.
Once you have installed your desired subset of the Cygwin distribution,
setup.exe will remember what you selected so rerunning the program will update
your system with any new package releases.
- 72 -
10.7.2 Downloading and Installing TS-72XX Cross Compiler
Under Cygwin
The cross-compiler is used to compile your TS-72xx code, since the compiler that
came with cygwin would not know about any of the hardware related code
defines that you are going to have to write for your embedded-arm board.
Download the latest cross-compiler at:
http://www.embeddedarm.com/software/software-arm-linux.php under Cross
toolchains for Cygwin OR from ftp://ftp.embeddedarm.com/ts-arm-sbc/ts-7200-
linux/cross-toolchains . Currently the latest version is: crosstool-cygwin-gcc-
3.3.4-glibc-2.3.2.tar.bz2
Once you have downloaded the zip file, copy it to
C:cygwinhome<username>. Note: If the home folder does not exist in
C:cygwin, this means that you have not yet run cygwin, please double click the
shortcut on your desktop, you should now see the home folder in C:cygwin.
Once you have copied the zip file into the directory there should be four files in
the folder.
The next step is going to extract the contents of the cross-compiler into
cygwin. Open up cygwin, in which there should be a shortcut on your desktop, if
you chose to make one. Cygwin will open in your home directory, to where you
copied the zip file of the cross-compiler to. You must then type the next statement
on the command line exactly: tar -xvf crosstool-cygwin-gcc-3.3.4-glibc-
2.3.2.tar.bz2
Cygwin will then extract the cross-compiler contents into a separate folder
called opt. Cut the folder named opt and past it into C:cygwin. You then can
delete the cross-compiler zip file in C:cygwinhome<username>, since you are
finished extracting it.
The next step is to go into your C:cygwinhome<username> again and
open up the .bash_profile inside of notepad. Note: The file will look un-
formatted, DO NOT try to format it by the Enter key or open it up in Word Pad,
as these two things will put unwanted return characters. Copy and paste the next
- 73 -
line into the .bash_profile at the end of it. This will probably be on the second
line all the way to the right:
PATH="/opt/crosstool/gcc-3.3.4-glibc-2.3.2/arm-unknown-linux-
gnu/bin:$PATH"
Save the .bash_profile file and go back and open cygwin. If no error
messages appear at the top of the command window, then everything worked.
Note: if an error arises, it means that you have done something wrong and you
must go to C:Cygwinetcdefaultsetc/skel and copy over the new .bas_profile
from that folder to your C:cygwinhome<username> folder and replace it. You
will then be able to again attempt to copy and paste the path statement above into
the new .bash_profile file in your C:cygwinhome<username> folder.
10.7.3 Writing and Compiling Your Own Code
Now with cygwin installed and your ARM cross-compiler installed in it, you are
now ready to start compiling code for your board. You are going to want to
create a test program such as a C or C++ “Hello World” program. This will give
you a very fast and easy program to test to see if you did everything correctly.
This program can be written in notepad, or any C or C++ text editor. You just
have to make sure, when saving in notepad, that you save them with a .c or .cpp
suffix, for C or C++ respectively. Note: you can only use C++ if the libraries
have been loaded on the board.
The Program that I will be using is as follows, and will be saved as test.c.
Note: do not copy and paste this code out of a word document or PDF as this may
give unwanted formatting issues when you try to compile:
#include <stdio.h>
int main(void)
{
printf(“Hello Worldn”);
return 0;
}
Intelligent Gimbal FINAL PAPER Engineering.pdf
Intelligent Gimbal FINAL PAPER Engineering.pdf
Intelligent Gimbal FINAL PAPER Engineering.pdf
Intelligent Gimbal FINAL PAPER Engineering.pdf
Intelligent Gimbal FINAL PAPER Engineering.pdf
Intelligent Gimbal FINAL PAPER Engineering.pdf
Intelligent Gimbal FINAL PAPER Engineering.pdf
Intelligent Gimbal FINAL PAPER Engineering.pdf
Intelligent Gimbal FINAL PAPER Engineering.pdf
Intelligent Gimbal FINAL PAPER Engineering.pdf
Intelligent Gimbal FINAL PAPER Engineering.pdf
Intelligent Gimbal FINAL PAPER Engineering.pdf
Intelligent Gimbal FINAL PAPER Engineering.pdf
Intelligent Gimbal FINAL PAPER Engineering.pdf
Intelligent Gimbal FINAL PAPER Engineering.pdf
Intelligent Gimbal FINAL PAPER Engineering.pdf
Intelligent Gimbal FINAL PAPER Engineering.pdf
Intelligent Gimbal FINAL PAPER Engineering.pdf
Intelligent Gimbal FINAL PAPER Engineering.pdf
Intelligent Gimbal FINAL PAPER Engineering.pdf
Intelligent Gimbal FINAL PAPER Engineering.pdf
Intelligent Gimbal FINAL PAPER Engineering.pdf
Intelligent Gimbal FINAL PAPER Engineering.pdf
Intelligent Gimbal FINAL PAPER Engineering.pdf
Intelligent Gimbal FINAL PAPER Engineering.pdf
Intelligent Gimbal FINAL PAPER Engineering.pdf
Intelligent Gimbal FINAL PAPER Engineering.pdf
Intelligent Gimbal FINAL PAPER Engineering.pdf
Intelligent Gimbal FINAL PAPER Engineering.pdf
Intelligent Gimbal FINAL PAPER Engineering.pdf
Intelligent Gimbal FINAL PAPER Engineering.pdf
Intelligent Gimbal FINAL PAPER Engineering.pdf
Intelligent Gimbal FINAL PAPER Engineering.pdf
Intelligent Gimbal FINAL PAPER Engineering.pdf
Intelligent Gimbal FINAL PAPER Engineering.pdf
Intelligent Gimbal FINAL PAPER Engineering.pdf
Intelligent Gimbal FINAL PAPER Engineering.pdf
Intelligent Gimbal FINAL PAPER Engineering.pdf
Intelligent Gimbal FINAL PAPER Engineering.pdf
Intelligent Gimbal FINAL PAPER Engineering.pdf
Intelligent Gimbal FINAL PAPER Engineering.pdf
Intelligent Gimbal FINAL PAPER Engineering.pdf
Intelligent Gimbal FINAL PAPER Engineering.pdf
Intelligent Gimbal FINAL PAPER Engineering.pdf
Intelligent Gimbal FINAL PAPER Engineering.pdf
Intelligent Gimbal FINAL PAPER Engineering.pdf
Intelligent Gimbal FINAL PAPER Engineering.pdf
Intelligent Gimbal FINAL PAPER Engineering.pdf
Intelligent Gimbal FINAL PAPER Engineering.pdf
Intelligent Gimbal FINAL PAPER Engineering.pdf
Intelligent Gimbal FINAL PAPER Engineering.pdf
Intelligent Gimbal FINAL PAPER Engineering.pdf
Intelligent Gimbal FINAL PAPER Engineering.pdf
Intelligent Gimbal FINAL PAPER Engineering.pdf
Intelligent Gimbal FINAL PAPER Engineering.pdf
Intelligent Gimbal FINAL PAPER Engineering.pdf
Intelligent Gimbal FINAL PAPER Engineering.pdf
Intelligent Gimbal FINAL PAPER Engineering.pdf
Intelligent Gimbal FINAL PAPER Engineering.pdf
Intelligent Gimbal FINAL PAPER Engineering.pdf
Intelligent Gimbal FINAL PAPER Engineering.pdf
Intelligent Gimbal FINAL PAPER Engineering.pdf
Intelligent Gimbal FINAL PAPER Engineering.pdf
Intelligent Gimbal FINAL PAPER Engineering.pdf
Intelligent Gimbal FINAL PAPER Engineering.pdf
Intelligent Gimbal FINAL PAPER Engineering.pdf
Intelligent Gimbal FINAL PAPER Engineering.pdf
Intelligent Gimbal FINAL PAPER Engineering.pdf
Intelligent Gimbal FINAL PAPER Engineering.pdf
Intelligent Gimbal FINAL PAPER Engineering.pdf
Intelligent Gimbal FINAL PAPER Engineering.pdf
Intelligent Gimbal FINAL PAPER Engineering.pdf
Intelligent Gimbal FINAL PAPER Engineering.pdf
Intelligent Gimbal FINAL PAPER Engineering.pdf
Intelligent Gimbal FINAL PAPER Engineering.pdf
Intelligent Gimbal FINAL PAPER Engineering.pdf
Intelligent Gimbal FINAL PAPER Engineering.pdf
Intelligent Gimbal FINAL PAPER Engineering.pdf
Intelligent Gimbal FINAL PAPER Engineering.pdf
Intelligent Gimbal FINAL PAPER Engineering.pdf
Intelligent Gimbal FINAL PAPER Engineering.pdf

More Related Content

Similar to Intelligent Gimbal FINAL PAPER Engineering.pdf

Deployment guide series ibm tivoli access manager for e business v6.0 sg247207
Deployment guide series ibm tivoli access manager for e business v6.0 sg247207Deployment guide series ibm tivoli access manager for e business v6.0 sg247207
Deployment guide series ibm tivoli access manager for e business v6.0 sg247207Banking at Ho Chi Minh city
 
orcad-tutorial.pdf
orcad-tutorial.pdforcad-tutorial.pdf
orcad-tutorial.pdf
PrathapBollineni1
 
Embeded microcontroler
Embeded microcontrolerEmbeded microcontroler
Embeded microcontrolerYugo Sulistyo
 
Protective Device Coordination
Protective Device CoordinationProtective Device Coordination
Protective Device Coordinationjoeengi
 
Solmanfocusedbuild
SolmanfocusedbuildSolmanfocusedbuild
Solmanfocusedbuild
Ghassen B
 
Senior Project: Methanol Injection Progressive Controller
Senior Project: Methanol Injection Progressive Controller Senior Project: Methanol Injection Progressive Controller
Senior Project: Methanol Injection Progressive Controller
QuyenVu47
 
test6
test6test6
Peachpit mastering xcode 4 develop and design sep 2011
Peachpit mastering xcode 4 develop and design sep 2011Peachpit mastering xcode 4 develop and design sep 2011
Peachpit mastering xcode 4 develop and design sep 2011
Jose Erickson
 
architectureplaybook-readthedocs-io-en-latest.pdf
architectureplaybook-readthedocs-io-en-latest.pdfarchitectureplaybook-readthedocs-io-en-latest.pdf
architectureplaybook-readthedocs-io-en-latest.pdf
momirlan
 
Implementing ibm tivoli service request manager v7.1 service catalog sg247613
Implementing ibm tivoli service request manager v7.1 service catalog sg247613Implementing ibm tivoli service request manager v7.1 service catalog sg247613
Implementing ibm tivoli service request manager v7.1 service catalog sg247613Banking at Ho Chi Minh city
 
Using Open Source Tools For STR7XX Cross Development
Using Open Source Tools For STR7XX Cross DevelopmentUsing Open Source Tools For STR7XX Cross Development
Using Open Source Tools For STR7XX Cross Development
Giacomo Antonino Fazio
 
Master Arbeit_Chand _Piyush
Master Arbeit_Chand _PiyushMaster Arbeit_Chand _Piyush
Master Arbeit_Chand _Piyush
Piyush Chand
 
001 itil v3_service_strategy
001 itil v3_service_strategy001 itil v3_service_strategy
001 itil v3_service_strategy
dcoolwarrior27
 
Graduation Report
Graduation ReportGraduation Report
Graduation Report
zied khayechi
 
Ibm tivoli intelligent think dynamic orchestrator pre proof of-concept cookbo...
Ibm tivoli intelligent think dynamic orchestrator pre proof of-concept cookbo...Ibm tivoli intelligent think dynamic orchestrator pre proof of-concept cookbo...
Ibm tivoli intelligent think dynamic orchestrator pre proof of-concept cookbo...Banking at Ho Chi Minh city
 
Water Treatment Unit Selection, Sizing and Troubleshooting
Water Treatment Unit Selection, Sizing and Troubleshooting Water Treatment Unit Selection, Sizing and Troubleshooting
Water Treatment Unit Selection, Sizing and Troubleshooting
Karl Kolmetz
 

Similar to Intelligent Gimbal FINAL PAPER Engineering.pdf (20)

Deployment guide series ibm tivoli access manager for e business v6.0 sg247207
Deployment guide series ibm tivoli access manager for e business v6.0 sg247207Deployment guide series ibm tivoli access manager for e business v6.0 sg247207
Deployment guide series ibm tivoli access manager for e business v6.0 sg247207
 
Icp
IcpIcp
Icp
 
orcad-tutorial.pdf
orcad-tutorial.pdforcad-tutorial.pdf
orcad-tutorial.pdf
 
Embeded microcontroler
Embeded microcontrolerEmbeded microcontroler
Embeded microcontroler
 
Protective Device Coordination
Protective Device CoordinationProtective Device Coordination
Protective Device Coordination
 
Solmanfocusedbuild
SolmanfocusedbuildSolmanfocusedbuild
Solmanfocusedbuild
 
Senior Project: Methanol Injection Progressive Controller
Senior Project: Methanol Injection Progressive Controller Senior Project: Methanol Injection Progressive Controller
Senior Project: Methanol Injection Progressive Controller
 
Montero Dea Camera Ready
Montero Dea Camera ReadyMontero Dea Camera Ready
Montero Dea Camera Ready
 
test6
test6test6
test6
 
Fraser_William
Fraser_WilliamFraser_William
Fraser_William
 
Peachpit mastering xcode 4 develop and design sep 2011
Peachpit mastering xcode 4 develop and design sep 2011Peachpit mastering xcode 4 develop and design sep 2011
Peachpit mastering xcode 4 develop and design sep 2011
 
document
documentdocument
document
 
architectureplaybook-readthedocs-io-en-latest.pdf
architectureplaybook-readthedocs-io-en-latest.pdfarchitectureplaybook-readthedocs-io-en-latest.pdf
architectureplaybook-readthedocs-io-en-latest.pdf
 
Implementing ibm tivoli service request manager v7.1 service catalog sg247613
Implementing ibm tivoli service request manager v7.1 service catalog sg247613Implementing ibm tivoli service request manager v7.1 service catalog sg247613
Implementing ibm tivoli service request manager v7.1 service catalog sg247613
 
Using Open Source Tools For STR7XX Cross Development
Using Open Source Tools For STR7XX Cross DevelopmentUsing Open Source Tools For STR7XX Cross Development
Using Open Source Tools For STR7XX Cross Development
 
Master Arbeit_Chand _Piyush
Master Arbeit_Chand _PiyushMaster Arbeit_Chand _Piyush
Master Arbeit_Chand _Piyush
 
001 itil v3_service_strategy
001 itil v3_service_strategy001 itil v3_service_strategy
001 itil v3_service_strategy
 
Graduation Report
Graduation ReportGraduation Report
Graduation Report
 
Ibm tivoli intelligent think dynamic orchestrator pre proof of-concept cookbo...
Ibm tivoli intelligent think dynamic orchestrator pre proof of-concept cookbo...Ibm tivoli intelligent think dynamic orchestrator pre proof of-concept cookbo...
Ibm tivoli intelligent think dynamic orchestrator pre proof of-concept cookbo...
 
Water Treatment Unit Selection, Sizing and Troubleshooting
Water Treatment Unit Selection, Sizing and Troubleshooting Water Treatment Unit Selection, Sizing and Troubleshooting
Water Treatment Unit Selection, Sizing and Troubleshooting
 

Recently uploaded

GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
Neo4j
 
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
SOFTTECHHUB
 
Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1
DianaGray10
 
Essentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FMEEssentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FME
Safe Software
 
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdfObservability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Paige Cruz
 
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Albert Hoitingh
 
National Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practicesNational Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practices
Quotidiano Piemontese
 
By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024
Pierluigi Pugliese
 
Full-RAG: A modern architecture for hyper-personalization
Full-RAG: A modern architecture for hyper-personalizationFull-RAG: A modern architecture for hyper-personalization
Full-RAG: A modern architecture for hyper-personalization
Zilliz
 
Introduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - CybersecurityIntroduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - Cybersecurity
mikeeftimakis1
 
Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !
KatiaHIMEUR1
 
Removing Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software FuzzingRemoving Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software Fuzzing
Aftab Hussain
 
GridMate - End to end testing is a critical piece to ensure quality and avoid...
GridMate - End to end testing is a critical piece to ensure quality and avoid...GridMate - End to end testing is a critical piece to ensure quality and avoid...
GridMate - End to end testing is a critical piece to ensure quality and avoid...
ThomasParaiso2
 
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
SOFTTECHHUB
 
A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...
sonjaschweigert1
 
UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5
DianaGray10
 
Microsoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdfMicrosoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdf
Uni Systems S.M.S.A.
 
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
Neo4j
 
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
名前 です男
 
20240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 202420240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 2024
Matthew Sinclair
 

Recently uploaded (20)

GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
 
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
 
Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1
 
Essentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FMEEssentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FME
 
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdfObservability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
 
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
 
National Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practicesNational Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practices
 
By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024
 
Full-RAG: A modern architecture for hyper-personalization
Full-RAG: A modern architecture for hyper-personalizationFull-RAG: A modern architecture for hyper-personalization
Full-RAG: A modern architecture for hyper-personalization
 
Introduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - CybersecurityIntroduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - Cybersecurity
 
Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !
 
Removing Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software FuzzingRemoving Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software Fuzzing
 
GridMate - End to end testing is a critical piece to ensure quality and avoid...
GridMate - End to end testing is a critical piece to ensure quality and avoid...GridMate - End to end testing is a critical piece to ensure quality and avoid...
GridMate - End to end testing is a critical piece to ensure quality and avoid...
 
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
 
A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...
 
UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5
 
Microsoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdfMicrosoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdf
 
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
 
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
 
20240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 202420240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 2024
 

Intelligent Gimbal FINAL PAPER Engineering.pdf

  • 1. 1 INTELLIGENT GIMBAL ECE 4895 ELECTRICAL & COMPUTER ENGINEERING DESIGN Lisa Linna Anthony Lucente SUMMER 2008 Approved __________________ Project Coordinator __________________ Faculty Advisor __________________ Chair, ECE Department
  • 2. 2 ABSTRACT................................................................................................... 4 ACKNOWLEDGEMENTS ......................................................................... 5 1.0 INTRODUCTION .................................................................................. 6 2.0 PROBLEM STATEMENT.................................................................... 8 2.1 TASKS ASSIGNED TO EACH TEAM MEMBER ................................................ 9 3.0 DESIGN CHOICES AND PERFORMANCE CRITERIA.............. 10 4.0 DETAILS OF DESIGN........................................................................ 12 4.1 CONTROL SYSTEM............................................................................................. 12 4.2 NETWORKING ..................................................................................................... 16 4.3 DESIGN TASKS DETAILS – LISA LINNA ........................................................ 16 4.3.1 Protecting Digital Inputs and Outputs.............................................................. 16 4.3.2 Linear Actuator ................................................................................................ 17 4.3.3 Power Distribution........................................................................................... 19 4.3.4 Accelerometer Tilt ........................................................................................... 20 4.4 DESIGN TASKS DETAILS – ANTHONY LUCENTE........................................ 21 4.4.1 Project Design.................................................................................................. 21 4.4.2 TS-7200 Embedded ARM Setup ..................................................................... 22 4.4.3 Setting Up Embedded-Arm Peripherals........................................................... 23 4.4.4 Noise Reduction............................................................................................... 25 4.5 FINAL SYSTEM.................................................................................................... 26 4.6 SOCIO-ECONOMIC ISSUES................................................................................ 27 4.6.1 Detailed Cost Analysis..................................................................................... 27 4.6.2 Economic Benefits and Societal Imact ............................................................ 30 4.7 SAFETY ISSUES ................................................................................................... 31 5.0 TEST RESULTS AND DISCUSSION................................................ 33 6.0 CONCLUSIONS ................................................................................... 39 6.1 EXECUTIVE SUMMARY – LISA LINNA.......................................................... 40 6.2 EXECUTIVE SUMMARY – ANTHONY LUCENTE ......................................... 41 7.0 REFERENCES...................................................................................... 42 8.0 LIFELONG EDUCATION.................................................................. 44 8.1 LIFELONG EDUCATION – LISA LINNA .......................................................... 44 8.2 LIFELONG EDUCATION – ANTHONY LUCENTE.......................................... 45 9.0 CONTEMPORARY ISSUES .............................................................. 47 9.1 CONTEMPORARY ISSUES – LISA LINNA....................................................... 47 9.2 CONTEMPORARY ISSUES – ANTHONY LUCENTE...................................... 48 10.0 APPENDICES..................................................................................... 51 10.1 VITA AUCTORIS – LISA LINNA..................................................................... 52 10.2 VITA AUCTORIS – ANTHONY LUCENTE.................................................... 53 10.3 ANALOG TO DIGITAL CALCULATIONS ..................................................... 54 10.3.1 Accelerometer Scaling................................................................................... 54 10.3.2 Gyroscope Scaling ......................................................................................... 54 10.4 3-DIMENSION DIAGRAMS ............................................................................. 55 10.5 ELECTRICAL SCHEMATICS........................................................................... 57 10.6 INTELLIGENT GIMBAL PHOTOGRAPHS..................................................... 65
  • 3. 3 10.7 SETTING UP THE EMBEDDED-ARM BOARD ............................................. 69 10.7.1 Installing Cygwin........................................................................................... 69 10.7.2 Downloading and Installing TS-72XX Cross Compiler Under Cygwin ....... 72 10.7.3 Writing and Compiling Your Own Code....................................................... 73 10.7.4 Sending Your Output File Onto The Board................................................... 74 10.7.5 Sending, Compiling and Command Line Prompts ........................................ 76 10.7.6 Make Your Program Run After Rebooting.................................................... 77 10.8 PROJECT CODE................................................................................................. 81 10.8.1 GIMBAL.C.................................................................................................... 81 10.8.2 GIMBALFUNC.C ......................................................................................... 95 10.8.3 GIMBALNETWORK.C.............................................................................. 107 10.8.4 LOGICFUNC.C........................................................................................... 109 10.8.5 KALMAN.C ................................................................................................ 112 10.8.6 GIMBAL.H.................................................................................................. 117 10.8.7 GIMBALNETWORK.H.............................................................................. 118 10.8.8 KALMAN.H ................................................................................................ 119 10.8.9 LOGICFUNC.H........................................................................................... 119 10.9 ORIGINAL PROPOSAL................................................................................... 123 10.10 END OF FIRST TERM PROGRESS REPORT............................................... 129 10.10.1 ORIGINAL PROPOSAL........................................................................... 130 10.10.1.1 Project Goals and Aims ...................................................................... 130 10.10.1.2 Relevant Prior Work ........................................................................... 130 10.10.1.3 Preliminary Ideas and Methods .......................................................... 131 10.10.1.4 Cost Analysis ...................................................................................... 132 10.10.1.5 Time Schedule .................................................................................... 135 10.10.2 REVISIONS............................................................................................... 137 10.10.3 PROBLEM STATEMENT........................................................................ 137 10.10.4 PROGRESS ............................................................................................... 139 10.10.4.1 Hardware............................................................................................. 139 10.10.4.1.1 Hardware Components................................................................. 139 10.10.4.1.2 Hardware Organization................................................................ 142 10.10.4.2 Software.............................................................................................. 144 10.10.4.2.1 Initial Setup and Communication ................................................ 144 10.10.4.2.2 Project Code................................................................................. 145 10.10.4.2.3 Noise Reduction........................................................................... 148 10.10.4.2.4 Single Axis Control System......................................................... 149 10.10.5 TASKS TO BE COMPLETED ................................................................. 149 10.10.5.1 Implement 3-Axis Control System ..................................................... 149 10.10.5.2 Encoder for Yaw Axis ........................................................................ 150 10.10.5.3 Perform Tests with Moving Robot ..................................................... 150 10.10.5.4 Implement Actuator ............................................................................ 150 10.10.5.5 Safety Features & Circuit Protection .................................................. 150 10.10.6 REFERENCES .......................................................................................... 152 10.11 WEEKLY PROGRESS REPORTS.................................................................. 154
  • 4. 4 ABSTRACT The scope of this project is to design an intelligent gimbal system to aid in the accuracy and performance of University of Michigan – Dearborn’s Intelligent Systems Club’s autonomous robot. The gimbal is an innovative addition to the autonomous robot by stabilizing the camera used for its navigation. With the robot relying mainly on its vision, stabilizing its “eyes” will allow it to stay at a specified angle regardless of hills or rough terrain. A multi-axes gimbal is a device designed to keep an object level as its surroundings change by rotating the object about multiple axes. In this case, our gimbal will consist of a three ring axis mount that will stabilize an enclosure containing the camera, controllers and sensors required for this design. The pitch and roll axes are controlled by a proportional-derivative system to modify servo motors based on a 3-axes accelerometer and a 3-axes gyroscope feedback sensor. The yaw axis has a proportional system that uses a 10-turn potentiometer to determine angular position and modify the servo motor accordingly. Additionally, an actuator is used to support the gimbal and allow the height to be modified based on a linear potentiometer that monitors its position.
  • 5. 5 ACKNOWLEDGEMENTS We would like to thank the following people for their expert advice, patience and time. Without their thoughtful input, this project may not have been a success. • Larry Sieh whose experienced feedback gave our project a focused direction. • Dr. Narasimhamurthi Natarajan maintained a sense of humor while he supported us with many late “robotic” nights and responded to numerous questions. There is no way to express fully our gratitude. • Dr. Malayappan Shridhar who was always dedicated to the success of our project. • Dr. John Miller provided us with tremendous support and understanding. • Greg Czerniak’s expertise in programming contributed greatly to the project’s success. • Allen Akroush’s welding and mechanical expertise contributed significantly to the durability of our project. • We would also like to thank the following suppliers who made donations for our project: o Mean Well (5VDC and 12VDC power supplies) o Acopian (5VDC power supply) o Memsense (Trirate 3-axis gyroscope) o Copterworks (50% student discount on 3-axis camera mount) • Last but not least we would like to thank our family and friends for their unending support of all of our professional and academic pursuits.
  • 6. 6 1.0 INTRODUCTION A gimbal is a device designed to support an object while maintaining the object’s position about a single axis point, regardless of its surroundings. Gimbals were originally designed as mechanical devices using two or more rings set at 90 degrees to each other. The idea of a gimbal has been around for hundreds of years, though it has adapted and become much more complex in the last century. Possibly the most simple gimbal invented dates back to the 1500’s when sailors would float objects such as lamps in bowls filled with water to keep them from tipping over when ships tossed on the seas. One of the basic and necessary parts of a gimbal is a gyroscope. A gyroscope is a device used to maintain orientation with respect to a specific reference point. One of the first examples of a gyroscope was a 16th century children’s toy usually called a spinning top. This “toy” was essentially a disk with a shaft mounted halfway through the center. What makes this object into an interesting toy is the fact that it appears to defy gravity; when torque is applied, the object’s axis will maintain its respective angle as long as the disk continues to spin. When this is combined with a two or three ring mount, it makes a gimbal. The gimbal will keep the gyroscope stable on a horizontal plane while the circular mount changes. A three ring mount represents each of the three dimensional axes to allow for roll (X-axis), pitch (horizontal Y-axis) and yaw (vertical Z-axis). With the advancements in technology, we can now create a gimbal using electronics. Instead of relying on the gyroscope to rotate simply due to gravitational forces, we now have electronic gyroscopes. There are a couple different types of electronic gyroscopes including Microelectromechanical (MEMS) and optical gyroscopes, commonly referred to as gyros. MEMS technology can be implemented using silicon, polymer or metal material. While the gyro is thought to be the basic sensor in a gimbal, accelerometers are also an important requirement when creating an electronic gimbal. Various testing of gyroscopes has demonstrated that gyroscopes acquire errors over time, developing an offset from the required set point. To compensate for this error, we added the accelerometer, which detects the angular position with reference to the direction of gravity. Although any sensor has the possibility of acquiring error, accelerometers have proved to be very reliable.
  • 7. 7 In today’s world, gimbals have proved valuable for a variety of uses ranging from camera stabilization for television and movie production to aiding autonomous vehicles for military purposes, navigation of ships, submarines and aircrafts as well as to assisting in aerospace navigation. One of the most recent uses has been for camera stabilization with autonomous vehicles designed to compete in competitions such as the DARPA (Defense Advanced Research Projects Agency) Grand Challenge.
  • 8. 8 2.0 PROBLEM STATEMENT The goal of this project is to design an intelligent gimbal system to aid in the accuracy and performance of the University of Michigan – Dearborn’s Intelligent Systems Club’s (ISC) autonomous robot. A multi-axes gimbal is a device designed to keep an object level as its surroundings change by rotating the object about multiple axes. In this case, our gimbal will consist of a three ring axis mount in order to keep a camera level. The Intelligent Systems Club participates in the annual International Intelligent Ground Vehicle Competition and is always looking for new/innovative ways to improve its design. Since the robot relies significantly on its vision control, stabilizing its eyes will have a positive impact on its ability to navigate rough terrain. The Intelligent Ground Vehicle Competition is at the cutting edge of technology which gives students the opportunity to learn about autonomous control while getting experience in electrical, computer and mechanical engineering. The goal of the competition is for college students from various universities around the world to design, build, test and compete with their robots for both recognition and cash prizes. While the students gain a great deal of experience and knowledge from this challenge, the basis for this competition is to develop new designs and ideas to aid in the United States Department of Defense. This competition is a smaller version of the DARPA Grand Challenge or the new DARPA Urban Challenge, which has a grand prize of two million dollars. While the competitions differ in magnitude, both share the same goal, to develop autonomous vehicles which allow for unmanned military vehicles and, as a result, save lives in the battlefields. With roadside bombs, ambush attacks and other dangers, the ability to use autonomous or remote operation vehicles would give our country an enormous advantage in times of war. The gimbal was a key aspect of the Intelligent Systems Clubs 2008 innovation and design portion of robot entry Raptor which competed in the Intelligent Ground Vehicle Competition. Each year, the competition includes new challenges such as harder tarps, sand, hills, rough terrain and more; all aimed at testing the robots full potential. Stabilizing the camera will assist in the robot’s ability to navigate through rough or hilly areas. Along with keeping the camera steady, the gimbal allows us to specify the optimal angle to get the best possible image. Depending on the position of the sun during
  • 9. 9 competition, the camera can be angled to try to minimize glare, which can greatly diminish the picture quality and confuse the robot. Glare can be interpreted by the robot as white spaces when the goal is to follow a course of white lines. Requirements for this project are to allow the robot’s camera to maintain its position by adjusting for roll, pitch and yaw via three servo motors. An additional goal was to allow the camera’s height to be modified using a linear actuator. The system allows for two modes, automatic and manual through remote teleoperation. In automatic mode, the gimbal has specific set points for which it works to maintain position. In teleoperation, a remote user can modify the height of the gimbal and rotate the camera using pitch, roll and yaw to see around obstacles or obtain a better view. These techniques allow the user to override the built in set points by sending new data. 2.1 TASKS ASSIGNED TO EACH TEAM MEMBER Overall, the design, build and testing was done as a joint effort; however, the project was divided into several smaller tasks (as there are no defined sub-systems). The task distribution is shown in table 2.1.1 below: Anthony Lisa Initial research and project design System camera enclosure set up Wiring, Mounting, and Building components Design/program PD control system Networking code to interface with Teleoperation system 3-D CAD design for initial robot and gimbal hardware and microcontroller setup 2-D CAD design, electrical schematics Serial communication for servo controller to micro-controller Power distribution including 7V regulator circuit Collect and process gyroscope and accelerometer data (convert A/D to usable values) Analyze accelerometer and gyroscope data in Matlab to determine control system requirements such as proportional and derivative gains Digital output code Digital input code A/D code (micro-controller and daughterboard) Actuator drive circuit LCD/Indication Box Servo stop circuit File I/O to write data to text files Actuator mode/control box Low pass average filter Linear potentiometer Time Delay Code Sensor board layouts Integral code for gyroscope Accelerometer tilt calculations Table 2.1.1: Task Assignment
  • 10. 10 3.0 DESIGN CHOICES AND PERFORMANCE CRITERIA For this project, the initial design phase required us to determine how gimbals work and the types of sensors required for it to perform as needed. After much research, we determined the best design would include using a gyroscope and an accelerometer sensor. The original plan was to have a proportional-integral system; to do this we would integrate the gyroscope data to determine tilt with respect to its center point while correcting for any error using an accelerometer. However, after testing this, we found that, by integrating the data, we were magnifying the gyroscope’s error, making it unusable. Though a little error is typical with most gyroscopes, the gyroscope we used, which was donated from a well known sensor company, ended up being a custom test component running at a much higher (than normal) frequency. This, in effect,caused the error ratio to increase. To fix this problem, we decided to use the gyroscope data as is in degrees/second with its zero speed as our reference. This approach worked very well, allowing us to control the system using a proportional-derivative system for pitch and roll. The accelerometer chosen is a Dimension Engineering 3-axis DE-ACCM3D sensor that allows for three dimensional +/-3g detection through three analog outputs. The gyroscope is a Memsense Trirate MEMS 3-axis sensor. The Trirate has analog outputs for X, Y & Z indicating angular rate and temperature for compensation. With its surface mount package type, it can be ordered with an analog interface board. This simplifies development and avoids damaging the sensor by soldering it manually. The standard Trirate operates at 50Hz with a rate noise density of Hz s / /  ; however, the sensor that was donated to us operates at 400Hz causing the noise to be higher. For yaw we needed a different type of system. We could not use the accelerometer due to the ability of not being able to measure gravity on this axis. Our original ideas involved adding an encoder to the servo. Eventually we decided a good approach would be using a 10-turn geared potentiometer to determine the position of the yaw axis. For our controller we chose the TS-7200 embedded arm board for its out-of-the- box Linux operating system along with its various features required for our project such as:
  • 11. 11 • Ethernet communication to interface with the robots main controller. • Serial communication (RS-232) to interface with the servo controller. • Fast 12uS A/D 12-bit inputs for sensor data and the option to expand the A/D with accompany daughter boards, since we needed more A/D then what was provided with just the main board. • Plenty of digital input/output to control things such as our actuator and LCD text outputs • PC104 form factor and interface for its rugged small construction and expandability through the addition of daughter boards to add more peripherals. • Fast processor speed (200MHz) in order to go through filters and calculations without any lag before reading the next values from the sensors. • The ability to calculate floating point numbers, so that calculations are more accurate and precise. • Low power consumption and wide voltage input range so that it could be used on most robot platforms. Power distribution is always an important part of electrical systems. This must be determined early on so to ensure that the proper supplies are in place to run the system components. The robot itself runs off two 12V batteries in series to provide 24V; however, we needed 12V, 6-9V, and 5V to power all our components. Since charging batteries can be time consuming and cause delays during competition, we decided to use the main 24V batteries to supply the rest of the power supplies. For the 12V supply, we needed to power the actuator, embedded arm board and relays which could draw close to 4A while the 5V supply needed to power the servo motors which can draw up to 2A each. Because of this, we decided to use switching power converters supplied by the main 24V due to their low power dissipation. For the servo controller logic, gyroscope and accelerometer we needed to supply 6-9V to satisfy the requirement for all three. Since these sensors are sensitive to noise and only require less than 0.6A, making a linear regulator was the best option.
  • 12. 12 4.0 DETAILS OF DESIGN The body of the gimbal is a circular camera mount able to rotate for roll, pitch and yaw via three modified continuous servo motors. Modified hobby servos allow unlimited range which is needed for this system, especially with the 10:1 gear ratio for servo to turning gear. The servos are controlled by a servo motor controller that communicates with the system’s microcontroller via RS232 connection. The serial communication operates at 115.2k baud rate with no parity, one stop bit and eight data bits. Each of the servo motors will rotate based on A/D input from feedback sensors including a 3-axis gyroscope, 3-axis accelerometer, 1-axis gyroscope and a 10-turn potentiometer. Both of the 3-axis sensors are mounted inside of the camera enclosure in order to monitor pitch and roll axes. The gyroscope is used to sense rotational speed for each of the three axes in degrees/second. A 3-axis accelerometer is used to work with the gyroscope and correct any error that it may accumulate. The accelerometer works by giving a reference to the direction of gravity from which tilt can be determined. For the yaw axis, the accelerometer can’t be used to determine position since the changes in yaw do not change the axis’ acceleration with respect to gravity; therefore we use a 10-turn potentiometer to determine its angular position. A 1-axis gyroscope is mounted on the body of the robot in order to monitor turning speed which can affect the sensor’s accuracy. Additionally, a linear actuator will be used to support the camera mount and when the robot is in manual or remote control, allow the gimbal to rise and fall in order to see over obstacles when necessary. The program is written in embedded C and developed as a hard, real time system which depends upon the response of the servo motors from data received to occur within a given time frame in order for the system to work as required. 4.1 CONTROL SYSTEM The gimbal is initially calibrated in order to give each axis a reference speed of 0°/second; from this reference, it detects a change in the X, Y or Z coordinates. Ideally this reference value would always be the same for the three servos but, depending on the exact position the enclosure is mounted, it may weigh down one side, putting force on the servo causing it to drift in that direction. Therefore, we must force the motor in the other
  • 13. 13 direction to compensate for this and keep it steady. We then had to calibrate the center point for the yaw and the minimum and maximum height of the actuator potentiometers in order to have an exact reference point. The gyroscope feedback sensor, used as the derivative aspect of the control system, monitors the angular rate of change in degrees/second and through an algorithm directs the servo motors (outputs) to accommodate unwanted changes. The accelerometer feedback sensor, used as the proportional, monitors tilt position and corrects for any errors between the angles set point and the actual angle (process variable) of the camera mount. The control system used for the pitch and roll axis is as follows: dt de K t e K t O d p * ) ( * ) ( + = O(t) is the output sent to the servo motor where p K (for proportional) and d K (for derivative) are specific gains for each axis. The error which is determined using the accelerometer is represented as e(t) which is the difference between the set point and process variable, while de/dt represents the change in degrees over time determined from the gyroscope. The data for the three axis accelerometer, gyroscope and 10-turn potentiometers are all initially put through a software low pass filter to reduce noise. Once we have the filtered data, we analyze it for each sensor and can react accordingly. Control for the pitch and roll axes is very similar; these both use the accelerometer and gyroscope together in order to control the servos. From the accelerometer, tilt is determined using trigonometry with the following calculations:         + = − 2 2 tan Yaw Roll Pitch n PitchRadia &         + = − 2 2 tan Yaw Pitch Roll RollRadian Even though the accelerometer is not used for control of the z-axis (yaw), the data is still required to determine tilt of the other two axes. Based on the degree we find, the accelerometer speed to send to the servos is determined using the following equation: ( ) int * ) ( ) ( CenterPo Gain SP PV t e + − = (PV-SP) is the error found by taking the difference between the process variable (current angle) and the set point; when we multiply this by a gain, we can change how fast the position is corrected. When increasing the speed, we also increase the overshoot,
  • 14. 14 so determining a good median is important. To discover the gain, we tried two very different values, 2 and 50 to get a feel for the reactions. From these values, we tested roll and pitch control systems separately, tuning the gains until we found values that proved to have desirable results. The gain for roll was determined to be 100/3=33.3 while the gain for pitch was chosen as 100/6=16.67 For the gyroscope, we simply monitor the change in degrees/second for each axis and try to give an equal opposing speed to correct for it. The same equation used for the accelerometer speed is used for gyroscope speed except instead of scaling the output based on tilt, we scale it based on the speed with reference to its zero speed. The gain determined for both the pitch and roll were chosen to be 100/270 = 0.37. ( ) ZeroSpeed Gain SP PV dt de + − = * ) ( Once the servo speed had been calibrated and proven separately for the accelerometer and gyroscope, these values were joined together to complete the control system for each axis. With pitch, the control was found to work best when using the sensors as 50/50 making the gains p K = d K = 0.5. Figure 4.0.1: Pitch Control System With roll, turning forces have shown to have a large impact, causing immense overshoot; therefore control depends on the turning speed of the robot determined using a separate 1- axis gyroscope mounted on the robots body. We set a 50/50 confidence between the gyroscope and the accelerometer when the robot is not turning, but when the turning speed exceeds a given limit, indicating turning is at a “normal” speed, the accelerometer
  • 15. 15 confidence value is greatly limited. After a second limit is reached, indicating erratic turning speeds, the roll axis servo is stopped completely. Figure 4.0.2: Roll Control System Yaw is controlled without the use of the accelerometer or gyroscope and instead uses just a 10-turn potentiometer to determine position. The potentiometer is a sufficient device to use on the yaw since we do not have to worry about keeping it at an angle with respect to ground. We simply use its center point as a reference of 0° with the equation ( ) int * ) ( ) ( ) ( CenterPo Gain SP PV t e t O + − = = in which the gain = 100/15. Figure 4.0.3: Pitch Control System An additional part of the system is a heavy-duty linear actuator which supports the gimbal while allowing the height to change and go up to 17.75” higher than its base position. The actuator is set up for two modes, remote teleoperation or manual which is selectable via an “on-off” switch located on the robot. When in remote mode the actuator height is determined based on information sent from a remote location using a joystick for operation. When in manual, the height is modified using an “on-off-on” switch located under the mode switch on the robot. The height, with respect to the robot, is printed on an LCD screen located on the gimbal.
  • 16. 16 The control loop operates at 125Hz, which is the best achievable frequency without diminishing the system. The faster the system response time, the less time there is to filter noisy data or calibrate set points. Therefore, there needs to be a middle ground that allows fast response with enough time to filter and perform necessary operations. This operating frequency is displayed on the LCD along with pitch, roll, yaw and displacement of the actuator. 4.2 NETWORKING In order for the gimbal to be controlled via teleoperation we need to send and receive data from a separate system. The data is transferred as five 32-bit packets with the first packet being used as a flag to indicate the start of the data stream. The data sent indicates current position for pitch, roll, yaw and actuator height while the data received indicates new set points for these. The flag is set up as a 32-bit long word while the data packets are 32-bit floats. 4.3 DESIGN TASKS DETAILS – LISA LINNA 4.3.1 Protecting Digital Inputs and Outputs As a general rule for the digital I/O on the embedded arm board, you shouldn’t source more than 4mA or sink more than 8mA. In this application, we are using four digital outputs and three digital inputs; therefore the sum of the output currents must be less than or equal to 4mA and the sum of the inputs less than or equal to 8mA. With this in mind, the circuits included current limiting resistors to protect the inputs and outputs. The actuator and servo shut-off circuits use a total of (3) relays with a coil that requires 33.3mA to energize. Therefore, using a Q2N3904 general purpose NPN bipolar junction transistor with a collector-base current of approximately 100, the base current requirement was at least 0.33mA. In order to satisfy this requirement, a 5K Ohm resistor was used at the base of the transistor to limit the current to 0.66mA. The fourth output is used to supply power to actuator control switches which feed the (3) digital inputs. In order to limit this current, we used another 5KOhm resistor; therefore the outputs will source no more than 2.64mA altogether. Since the supply for the actuator
  • 17. 17 switches is limited to 0.66mA, that also limits the input current to the board. This output supplies 3.3V to these switches. 4.3.2 Linear Actuator The actuator driver circuit consists of a 12V supply, two 2-pole relays, two relay drivers and diodes for circuit protection. The actuator is wired across the commons of the relays with one set up to drive the actuator up and the other to drive the actuator down, labeled respectively as “Up” and “Down” as shown in figure 4.3.1. When both relays are either on or off, they cause a short across the motor which essentially puts brakes on it causing it to stop. This braking effect is very useful at start up when the embedded arm board used to control the motor sets all the digital outputs high for 11 seconds causing all the relays to turn on. This start up setting cannot be changed through software and is an unfortunate bug in the TS-7200 board; therefore, the problem was fixed by designing the circuit so that it shorts the motor when both relays are energized instead of shorting the battery. The relays are energized using relay drivers controlled through digital outputs from the controller. One digital output commands the actuator to go up while another commands it to go down. The outputs are used to drive relay coils which make the necessary contacts to give the actuator +12V or -12V to drive it up or down (respectively). The relay driver simply consists of a NPN bipolar junction transistor and a current limiting resistor at its base, used as a switch in saturation mode (on) and cut-off mode (off). The BJT was chosen for ability to be controlled by a low base current while it can drive relatively high currents. In order to prevent back emf, which is a common problem in circuits such as this, a reverse bias diode is placed across the coil of each relay in order to protect the circuit from transients, which occur when the switch is closed. This works by allowing current to dissipate slowly as heat by freewheeling through the diode. Additional circuit protection was added to protect the relays themselves from being damaged when the actuator is switched off. Diodes are wired in a bridge type format that allows any current stored on the actuator to be fed back
  • 18. 18 into the battery. Whether the actuator is being driven up or down, when turned off, this set up allows a path to the positive side of the battery, which essentially charges it by allowing the built up charge on the inductor to flow back into the battery. Figure 4.3.1: Actuator Drive Circuit The actuator can be controlled either remotely via teleoperation or manually. In order to select its mode, a control box located on the robot has an “on-off” switch being fed into digital inputs. If the mode is set to manual, a separate “on-off-on” switch located on the same box is fed into a digital input to allow the user to modify the height. Due to a weak internal pull up resistor on the
  • 19. 19 digital inputs, a pull down resistor is required to force it ‘low’ when floating or else the input will always appear as ‘high’. 4.3.3 Power Distribution The gimbal uses many electrical components that have different power requirements as shown in table 2. The robot itself is powered off a 24V battery supply (using two 12V batteries) which is our main feed to power everything on the gimbal. This avoids adding other batteries that would require separate charging. After determining the voltage and current requirements, the first thing to consider when selecting power supplies is if we should use linear regulators or switching power supplies. These both have their advantages and disadvantages. The switching power supply has very low power dissipation through heat, but is also expensive and can cause electromechanical interference due to high switching frequency noise. Linear regulators typically have higher power dissipation, but are generally less expensive. The motors have higher current requirements and are powered using DC/DC converters; while the more sensitive low current sensors use a linear regulator. Table 4.3.1: Power Distribution Requirements For the 7V linear regulator the LM317T chip was chosen because it can supply 1.2-25V and has a guaranteed 1.5A output current. A benefit of using this device is that no additional protection (such as a fuse) is required because it has built in
  • 20. 20 current limiting protection making it blow-out proof. The output voltage is selected using two resistors R1 and R2 based on the equation Vout = 1.25V*(1 + R2/R1). For a voltage regulator circuit using this, you can choose either resistor value first; however, it worked well when choosing R1 to be in the low hundreds of ohms and then selecting R2 based on the desired output voltage. To determine what values to use, we came up with a list of combinations that would suffice for 7V output with a 12V input. R1 was chosen to be 220ohm because it was readily available and once the actual resistance was measured and determined to be 217ohm, then R2 was chosen as a 1k resistor. Figure 4.3.2: 7VDC Regulator 4.3.4 Accelerometer Tilt In order to determine tilt of each axis, trigonometry was used. Working in 3- dimensions can seem more difficult than it is. In order to simplify the math, it is easier initially to get an equation in terms of two vectors instead of three. To do this, the first step is finding the summation vector of two of the axes using the Pythagorean Theorem. Then once there are only two vectors, the inverse tangent function can be used to determine the specific angle. The following example shows how to find the tilt of the y-axis for pitch:
  • 21. 21 2 2 Z X C + = =>       = − C Y Radian Y tan _ =>         + = − 2 2 tan _ Z X Y Radian Y Therefore, the tilt of each axis is 180 * _  = Radian Y  4.4 DESIGN TASKS DETAILS – ANTHONY LUCENTE 4.4.1 Project Design After being a member of the Intelligent Systems Club (Robotics Club) of the University of Michigan-Dearborn for the past four years, I was able to acquire experence and knowledge that prepared me for senior design and this type of project. Since the club participates in the International Intelligent ground Vehicle (IGVC) Competition every year, we wanted to pick a project that would be innovative and unique at the competition. After deciding on creating a camera stabilization gimbal, I was then able to use 3-D CAD software to help in the visualization of our gimbal and the robot that would compete in the 2008 IGVC competition. This greatly helped in the overall design process, buying parts with vital measurements, and knowing what the final product will look like before it is created. Pictures of the three dimensional CAD drawings can be found in section 10.4.
  • 22. 22 4.4.2 TS-7200 Embedded ARM Setup One of the first and sometimes most frustrating steps when using a new microcontroller is setting up communication and determining the process for taking those first movements. Setup for this project included installing and configuring our PC with a compiler and creating an efficient transfer method for downloading programs to the board. A cross compiler is available for the TS- 7200 which utilizes GNU programs; however, since we are writing our software on a Windows based PC we need to use Cygwin in order to give us a Linux like environment, thus providing us the ability to compile our program. Using Cygwin provides the files and libraries necessary to use this compiler as well as an API emulation layer providing Linux application programming interface (API) functionality. Cygwin consists of two things, a DLL to provide Linux API (application programming interface) and a collection of tools to provide a Linux look and feel. This was downloaded from Cygwins website and setup on our designated PC. Even though Cygwin comes with its own compiler, it would not be able to recognize any of the hardware related code defined for the arm board. Therefore, we will be using the cross compiler specifically for this board called crosstool-cygwin-gcc-3.3.4-glibc-2.3.2.tar.bz2. This was downloaded from the arm boards website and setup on the PC we will be using for compiling our code. In order to download the compiled programs to the board, communication was set up via Ethernet using FTP. This was done by creating a batch file with specific command prompts and using the boards’ initial IP address to send a folder (containing the program) across Ethernet to the board. After the system setup was complete, I was able to write and test the following functions found in table 4.4.1. Once we decided the system was stable enough to be turned on with the robot, a script was written and installed into the startup folder on the board, so that when the robot is turned on so would the gimbal. A tutorial for setting up the board, creating the FTP batch file, startup script and some time saving tricks can be found in the Appendix 10.7.
  • 23. 23 4.4.3 Setting Up Embedded-Arm Peripherals Setting up the Embedded-Arm on board peripherals was one of the most important parts of this project to complete correctly. Without the correct values from the analog to digital converters, wrong values sent to the digital I/O, bad serial port data sent to the servo controller or wrong delay signals would result in an inaccurate output, thus causing the gimbal to behave incorrectly. The TS-7200 manual was very vital to this part as it provided all the address locations of the peripherals on the board. Table 4.4.1 indicates the software functions used to communicate with the various peripherals. In order to explain the initialization of the hardware, I will discuss how to initialize the analog to digital converter. Since the other hardware interfaces are similar, understanding the remaining interfaces with the code that is provided in the Appendix 10.7 should not be difficult. The first step in setting up the hardware is configuring the memory map of the apparatus to which you are trying to interface. The memory map of the least significant bit and control for the analog to digital converter can be found at address 0x10c00000. These next three lines of code lets the board know where to read from in the memory: The next line of code increments the address of the least significant bit by one to get the most significant bit from the A/D converter. These addresses can be found in the manual: In order to determine if an analog to digital conversion is complete, a flag at address 0x10800000 has to be read to see if it has been set to zero. If it has, the conversion is complete and you can go on to act on that data. The code to set up the address of the A/D complete flag is as follows:
  • 24. 24 After all the memory map locations were constructed, the final step was to use the variables that were declared for the memory locations. Since there are eight A/D channels on the TS-7200 board, a line of code needs to be written in order to read each one of the channels and start the voltage conversions. The next line of code lets you do this: Because the conversion has started on the channel that you specify, you have to wait approximately 12uS to get the value. This is done by waiting in a “while loop” for bit seven of the ADC_COMPLETE flag to be set to zero: The final step is to obtain the actual 12-bit number from the analog to digital converter. This is done by getting the least and most significant bit: Purpose Function Description Serial communication with servo controller Init_Serial Opens COM2 serial port on the Arm board to communicate at a rate of 115k baud rate and sets the options to no parity, one stop bit and 8 data bits Serial_Write Sets up the communication command in order to control the servos Serial_Close Closes the serial port when the user types ctrl-C Mother board analog to digital inputs Init_ADC Initializes al the variables for the analog to digital converter Close_ADC Closes the memory that was being accessed for all the analog to digital variables Read_ADC Opens the A/D channel to start the conversion on that channel and convert the analog voltage to a digital 12-bit value Daughter board analog to digital inputs Init_ADC Initializes all the variables for the analog to digital converter Close_ADC Closes the memory that was being accessed for all the analog to digital variables Read_ADC Opens the A/D channel to start the conversion on that channel Digital inputs and outputs Init_DIO Sets up the memory map for the bi-directional digital I/O pins Clear_DIO Sets all pins to low clearing the digital inputs and outputs
  • 25. 25 Set_DIO Sets each pin on the digital I/O high or low depending on the number received. DIO_State Sets the specified pin high or low depending on the requirements Timer used to determine operating frequency of the control loop Ticks_ms Returns a counter which increments at approximately 1ms rate Ticks_Raw Returns a counter that increments at full speed which is approximately 980kHz Start_Timer Opens the timer memory map location to start the counting sequence Timer_Reset Clears the timer to start back at zero Program delays Timer_Delay Delays for a specified amount of time Write to files Init_FileOpen Opens up text files which are used to write data to File_Write Writes sensor data to text files File_Close Closes text files after the data is finished being written to them Close peripherals Trap_Signal Provides the ability to close all the files, serial ports, memory locations and stop the servos when the ctrl-c command is pressed on the keyboard Stop all servo motors Kill_Servos Sets all the speeds of the servos to zero Display data and text on LCD lcdInit Initialize LCD Port lcdwait Waits until it is ok to write to the LCD command Allow certain commands to be sent to the LCD to control its outputs writechars Writes a string of characters to the LCD Table 4.4.1: Software Functions for Setting up Peripherals 4.4.4 Noise Reduction After collecting data from the gyroscopes, accelerometers, and potentiometers it was found that they all had high amounts of noise, specifically the gyro which had extreme noise. To reduce this unwanted data, I put all of our analog inputs through a low pass filter. Though this helped with providing more accurate data, it limited the time that it takes to complete a full control loops. Through testing, I found that the averaging filters did not hinder the system reaction time significantly.
  • 26. 26 4.5 FINAL SYSTEM Packaging is one area that is much too often overlooked. It not only adds aesthetic value and demonstrates the designer’s attention to detail, but can cause many difficulties if not systematically considered. If wires/cables are not organized, they can become entangled and damage equipment. When components are not laid out or sized properly, it can require additional time later to fix. If things are not securely fastened or soldered to prototype boards, they can come loose, requiring endless hours of troubleshooting or even destroy devices if a wire is shorted to ground somehow. To prevent this, after selecting all our components, we created an enclosure layout schematic to ensure everything could fit in the enclosure we purchased, especially since the enclosure size was limited by 8lb weight and size restrictions of the camera mount. In addition, we ensured all power wires were twisted to try to limit noise and used spiral wire wrap and wire ties for routing and securing wires. While the prototype was packaged well, there are some things that could be modified or improved for the final marketed product. The camera enclosure used was able to fit all the components we required and securely hold them in place; however, it ended up being a tight fit without much room for additional hardware. In order to fix this, we would design our own specific watertight enclosure with separate wire runs for power and control signals going to both the top of the enclosure and the bottom. Although the size could not be much bigger, there is room to increase the width and height without incurring any issues. The current enclosure also only had two openings for wires and cables which also became tight. To fix this, we would add an additional opening so that we could separate power, control signals and communication (Firewire for the camera and Ethernet for the embedded arm board). In order to run the gimbal, the program has to be flashed to the embedded arm board so that the system can start each time the controller is powered up. This is already something we have done for our prototype and is ready for our final product. Another thing that should be done for a final product is having PCB boards created for all the circuits and the sensor board to reduce manufacturing costs and also eliminate the need for the custom gyroscope analog board. Additionally, in order for the user to understand how it works and operate it correctly, we would need to write a user manual and product specifications document.
  • 27. 27 4.6 SOCIO-ECONOMIC ISSUES 4.6.1 Detailed Cost Analysis Costs are typically one of the biggest issues for a design project and an important consideration of the initial design phases. While there are many reasons gimbals tend to be expensive, in this specific design, the mechanical design of the camera mount, sensors required, and amount of items required to complete the design (weatherproof enclosure, heavy-duty linear actuator, power supplies, camera, microcontroller, etc.) were major factors in the overall expense. Ideally, it is beneficial, academically as well as financially, to build as many components as possible in an effort to economize. With the timeline, limited team members and amount of work required, designing most of these items individually would not be realistic. Since this project was used as a subsystem for the Intelligent System’s Club’s autonomous robot, a large amount of its funding came from this organization. Fortunately, many suppliers will provide a significant discount for students or even donate products for advertisement purposes. However, not all of our funding was available through the Intelligent System Club and, even though we were able to receive donations, some of the needed capital was out of pocket expenses. In addition, a (reasonable) portion of the required cost was requested from the University’s Department of Electrical and Computer Engineering. The following details the costs of this project: • Engineering Costs - $11,200.00 Assuming we were paid $10/hr to work on this project, the total cost of our time is shown in table 4.6.1. Fringe Benefits Table 4.6.1: Bill of Equipment • Facilities Rental - $457.00 As a part of our tuition, a technology and lab fee is included for use of the university labs and euipment as detailed in table 4.6.2.
  • 28. 28 Table 4.6.2: Bill of Equipment
  • 29. 29 • Components Cost – $4,085.73 Table 4.6.3: Bill of Equipment
  • 30. 30 • Lab Space, Equipment, Instructors Cost and Fringe Benefits - $14,793.33 The cost for renting lab space is determined using the total wages plus the cost of fringe benefits. Fringe benefits equals 30% of our wages which is $11,200 * 0.3 = $3,360. Therefore, lab space/equipement cost can be estimated at $14,560. In developing the product, we received assistance from our advisor (as well as other professors and students). The cost for this can be estimated by assuming their cost at $100/hour for 5 hours/week over a course of 28 weeks (two semesters minus four weeks for recess). Therefore, the total instructor cost is calculated as: 33 . 233 $ _ 60 2 * 2 28 * 1 5 * 100 $ = Average Students Semesters Semesters weeks week hours hour The overall cost analysis for the Intelligent Gimbal is $30,536.06. If we sell a predicted 20 gimbals in the first year, we will have a recovery cost of $30,536.06/20 = $1,526.81. With component cost at $4,085.73 and a profit margin of twice the recovery cost at $3,053.61 and additional expenses for advertising and miscellaneous items, we must sell the gimbal at no less than $7,500.00. While this may appear to be an exorbitant amount to the average consumer, the least expensive gimbals on the market currently sell for twice that amount and rent for at least $800.00 a day. 4.6.2 Economic Benefits and Societal Imact The Intelligent Gimbal System used with the autonomous robot will have a tremendous impact on the industrial complex of society by aiding in the research and advancement in unmanned vehicles and machines in general. They have been used for safety purposes with Police Departments, e.g. inspecting a potential bomb. Unmanned vehicles are currently a prime area of research for the United States Department of Defense. These not only include land vehicles, but also systems for the air and sea. In times of war, autonomous vehicles could save counltess lives and greatly reduce deaths from roadside bombs.
  • 31. 31 4.7 SAFETY ISSUES One of most important aspects of product design is safety. It is imperative that designers keep the welfare of the manufacturer, consumer and society in mind and include all necessary safety features, even though these items may increase cost without otherwise improving the product. Prevention of injury or death should be an integral aspect of any design. With this respective Intelligent gimbal, all actions were taken to ensure safety of the user and others, while also protecting the various electronics. Keeping in mind that countless future students would have access to this project in the years to come, the safe implementation of this Intelligent gimbal was first and foremost in our project outline. There are red and blue flashing lights located on both sides of the robot which indicate that the robot and gimbal are activated. These lights alert people that the robot could start at any moment. The lights continue flashing while operating. With a moving object as large as the autonomous robot, having the ability to stop it in case of a malfunction is imperative. On the robot, there is a red emergency stop button in the shape of a mushroom that kills power to all parts of the robot, including the gimbal. Since the local emergency stop on the robot cannot always be reached, there is an additional remote stop that can be used to disable the robot and gimbal. In addition to these emergency stops, there is a separate circuit for the gimbal which allows the servos to be remotely shut off in case the gimbal malfunctions. With respect to protecting the gimbal, software limits are designed to allow a large range of view, but prevent it from rotating beyond specific degrees. If these were not set up, the gimbal could destroy itself by damaging the servos, breaking the camera support structure or entangling and pulling wires/cables beyond their given length. For pitch, the limit is set at +/- 60 degrees in order to prevent the enclosure from hitting the top of the gimbal, yaw limits are set to +/- 150 degrees to stop it from turning into the actuator and roll is limited to +/- 40 degrees so the enclosure components don’t get thrown around (even though they are secured inside). Despite these limits, the device can provide more than enough visibility and usability when the robot is in autonomous or teleoperation modes. Circuit safety is integral to user safety. For example, if a fuse is not sized properly, the user may remove it entirely and, in effect, cause something to blow up and
  • 32. 32 potentially injure him/her. In order to protect the gimbal, we used diodes to protect circuits and increase relay life from the effects of reverse emf. Another safety feature monitors the 7VDC power supply which was built. The voltage is verified and, if not correct, shuts off all power to the servos, so that we don't damage the sensors relying on this power supply. Additionally, we display system data and indicate the 5 volt, 7 volt and 12 volt power with LEDs while we monitor the main 24 volt battery supply with a digital indicator.
  • 33. 33 5.0 TEST RESULTS AND DISCUSSION For the Intelligent gimbal, the main goal was to create a 3-axis control system in order to stabilize it for yaw, pitch and roll. Each axis has a similar, yet different, control system that was designed and tested separately before being integrated into one system. For pitch, the position was based 50% on the accelerometer and 50% on the gyroscope data which made it possible to achieve its setpoint within +/-1° as shown in figure 5.0.1. It may appear that the pitch axis is drifting from the graph, but with the setpoint at 45°, starting angle at 45.34° and ending position at 44.53°, this is just a coincidence. The accelerometer is used as the process variable to indicate the actual angle since it is quite accurate when the robot is not moving or at a constant speed. To show the necessity of the accelerometer to correct for errors, figure 5.0.2 shows the system response when based solely on the gyroscope feedback. The accelerometer uses this data to show how the position drifts with a starting position of 45.22° and ending up at 43.52 degrees. Figure 5.0.1: Pitch Response with Accelerometer and Gyroscope Feedback
  • 34. 34 Figure 5.0.2: Pitch Response with Gyroscope Feedback Only For the roll axis, the turning speed of the robot greatly affects its overshoot and settling time. In order to correct for this, a 1-axis gyroscope was added to the body of the robot to indicate its turning rate and data was collected in order to set limits based on the robot’s actions. Figure 5.0.3 shows the effects on the 1-axis gyro when at stand still, forward/reverse acceleration and when turning, along with peak values for these situations. With the response based equally on both sensors, but with different gains based on these limits, the result can be seen in figure 5.0.4 with an accuracy of +/-1°. The test data with both sensors has a set point of 0° with a starting position of -0.7595° ending at 0.8644°. When the robot is at stand still, noise causes the analog values (which range from 0-5V as 0-4096 A/D points) to vary +/- 3 points approximately. If accelerating forward/reverse (930-975 points), the servo speed is based 50/50 on both sensors but, when turning at a normal speed (875-1045 points), the servo speed is limited by a gain of 0.021 which was determined from testing using the tuning method. If the turning speed becomes erratic (greater than 1115 or less than 800 points), the servo speed
  • 35. 35 is set at 0°/second. The drift that occurs without the use of the accelerometer can also be seen in figure 5.0.5. The data collected shows the position drifting from -0.4312° to - 3.665°. Figure 5.0.3: Robot Turning Speed Response
  • 36. 36 Figure 5.0.4: Roll Response with Accelerometer and Gyroscope Feedback Figure 5.0.5: Roll Response with Gyroscope Feedback Only
  • 37. 37 The yaw axis is controlled using only 10-turn potentiometer as feedback to adjust the servo. Although this sensor is not as accurate and is noisier than the gyroscope used for the other axes, it does not develop an error as the gyroscope does. The accuracy of this axis once it reaches a steady state is +/-2° yet it still works quite efficiently as can be seen in figure 5.0.6. The set point in this test was 0° where the position was approximately at - 0.4° during its steady state. Figure 5.0.6: Yaw Response with 10-Turn Potentiometer Feedback In the June 1, 2008 Intelligent Ground Vehicle Competition, Raptor was one of two autonomous robots entered by the Intelligent Systems Club. As a new robot in 2008, it did not place in the top 3, yet it performed well and the gimbal proved a valuable addition. In the competition, we used the gimbal in autonomous mode which aided it over man made hills, added as one of the obstacles. The pictures in figure 5.0.7 are from the robot’s camera when going over one of the obstacles; this displays the gimbal’s ability to keep the camera pointed at the ground in order to stay on course.
  • 38. 38 Figure 5.0.7: Gimbal Going Over a Hill As Seen From The Camera For the 2009 competition, the Intelligent Systems Club will propose a new competition using remote teleloperation with limited band width that could be used in the battlefield. This involves using the gimbal in manual/remote teleleoperation mode, through which the user can control the gimbal and rotate the camera for yaw, pitch and roll as well as modify the height of the camera in order to see around obstacles and make its way through the required path.
  • 39. 39 6.0 CONCLUSIONS • Gimbals are used for a variety of reasons ranging from camera stabilization for television and movie production to aiding autonomous vehicles, which was the purpose of this project. • The gimbal keeps a camera steady by controlling modified continuous servo motors for yaw, pitch and roll on a 3-ring axis mount. The gimbal is mounted using a linear actuator that can raise or lower the entire system. • The system has two modes, remote teleoperation and automatic. In automatic mode each of the axes and the actuator have specified set points which the system works to maintain and in teleoperation, a remote user can modify the height and move the camera using each axis in order to see around obstacles or obtain a better view. • Pitch and roll axes both required a proportional-derivative system using the 3-axis accelerometer and 3-axis gyroscope, while the yaw axis uses a 10-turn potentiometer as feedback for a proportional system. • Gyroscopes drift over time requiring an additional sensor, in this case an accelerometer, to correct for any error. • When integrating the gyroscope data to find position we were accumulating the error from the sensor making it unusable; therefore, we decided to use the speed in s /  to control the servo. This sensor had a high error rate due to its operating frequency being at 400Hz, the rate noise density is given as Hz s / /  . • We were able to achieve and operating frequency of 125Hz by optimizing our code and decreasing the amount of data that is averaged in our low pass filters. • Port B on the TS-7200 Embedded Arm Board, which was used for the digital inputs and outputs, has weak internal pull up resistors on the pins causing floating inputs to be seen as a logic ‘1’. In order to correct for this, the inputs must be pulled low to get a logic ‘0’. • When using sensitive sensors, noise can be a huge issue; therefore, we chose to filter the data using software.
  • 40. 40 6.1 EXECUTIVE SUMMARY – LISA LINNA The Intelligent Gimbal System was designed to aid in the accuracy and performance of the Intelligent Systems Club’s autonomous robot by stabilizing its vision system. This 3- axis gimbal is designed to keep the robot’s camera at a specified angle by rotating it about three axes for roll, pitch and yaw via continuous servo motors. Additionally, the gimbal can be raised or lowered to modify the camera’s view. The program is written in embedded C and developed as a hard, real time system in which the response of the servos based on feedback sensors needs to occur in a timely manner for the system to operate successfully. There are two modes for the gimbal, autonomous and remote (manual) teleoperation. In autonomous mode, the gimbal adjusts and the height is set based on pre-defined set points; while, in remote mode, the set points can be modified using a joystick controller. The actuator has an additional control box allowing the user to choose to set it in automatic/remote mode in which the height will adjust based on software set points, or local manual mode in which the height can be modified by the user at the robot itself without requiring remote teleoperation. Pitch and roll axes are controlled based on feedback from a 3-axis gyroscope and 3-axis accelerometer. This system works as a proportional-derivative controller with the accelerometer (proportional) monitoring tilt in degrees with respect to its setpoint and the gyroscope (derivative) monitoring rate of change in degrees/second with respect to its zero speed. This system is basically the same for pitch and roll axes except for the gains used. Yaw axis works as a proportional system using a 10-turn potentiometer to determine position in degrees with respect to its center point since it cannot use the accelerometer to correct for error. The actuator height is monitored using a string potentiometer to determine its position in inches. The Intelligent Gimbal System was integrated on robot Raptor using autonomous control and entered into the 2008 Intelligent Ground Vehicle Competition. In the competition, it proved to be a valuable factor in the robot’s ability to navigate the course. Due to the intrigue created with the introduction of the gimbal in the 2008 competition, it is expected that the 2009 competition will include an additional component which uses the remote teleoperation and gimbal as a demonstration.
  • 41. 41 6.2 EXECUTIVE SUMMARY – ANTHONY LUCENTE The creation of a successful robotics design is a complex and challenging task, ever changing as new technology interfaces with historical inventions. The gimbal has been around for hundreds of years helping various technological marvels create more accurate measurements. These range from things in the marine industry such as the compass stay level over rough seas to the aerospace industry’s inertial measurement units (IMU) stay level while the aircraft is doing its aerobatics. A gimbal is a device that allows an object to rotate around a single axis, moving to various orientations on that axis. Adding more gimbals on different axes allows the object to rotate in more than one dimension. Furthermore, adding sensors such as a gyroscope and an accelerometer to an electronic gimbal allows that gimbal to stabilize and move about a certain reference point. The intelligent gimbal was created for the Intelligent Systems Club of the University of Michigan-Dearborn’s autonomous robots for the Intelligent Ground Vehicle Competition (IGVC) of 2008. Our gimbal consisted of three rings, creating a 3- axis gimbal to control yaw, pitch, and roll, a 3-axis and 1-axis gyroscope, a 3-axis accelerometer, and two potentiometers all used to stabilize the club’s autonomous robot’s optical system while moving over rough and un-even terrain. Without the gimbal, the un- even or rough terrain of the obstacle course can blur images that are used to follow white lines along the robot’s path. With the 3-axis gimbal we also incorporated a linear actuator which can change the height of the camera to look over obstacles and also prevent glare from the sun at various times of the day. The gimbal can not only be controlled by the system autonomously, but by a remote user teleoperating the robot. The user has the ability to change the angles of the camera in three dimensions as well as the height of the camera, while it is stabilizing at those different angles. The gimbal is controlled with an embeddedARM microcontroller written in embedded C, controlling the servos and the relays for the actuator. It does this by using a proportional-derivative controller from the gyroscope and the accelerometer to control each of the axis of the gimbal. Using this system the gimbal has proved to be very accurate and a valuable asset to the Intelligent Systems Club’s autonomous robot. It will be used by future students to help in the advancement of autonomous robots, potentially creating a new teleoperation competition in the Intelligent Ground Competition.
  • 42. 42 7.0 REFERENCES "Accelerometer." Wikipedia, The Free Encyclopedia. 17 Apr 2008, 13:16 UTC. Wikimedia Foundation, Inc. 04 Jan 2008 <http://en.wikipedia.org/w/index.php?title=Accelerometer& oldid=206235876>. "Accelerometer Limitations ." Motus. Motus Bioengineering Inc. . 07 March 2008 <http://www.motusbioengineering.com/accelerometer-limitations.htm>. Clifford, Michelle. "Measuring Tilt with Low-g Accelerometers." Freescale Semiconductor. May 2005. Freescale Semiconductor. 10 Jan 2008 <www.compel.ru/images/catalog/120/AN3107.pdf >. "Cygwin." Robot Projects. 2008 . 04 Jan 2008 <http://www.cygwin.com/>. "DE-ACCM3D Buffered ±3g Tri-axis Accelerometer.". Dimension Engineering . 10 Jan 2008 <http://www.dimensionengineering.com/DE-ACCM3D.htm>. "GETTING STARTED WITH TS-LINUX." Embedde-Arm. July 2007. Technologic Systems. 03 Jan 2008 <http://www.embeddedarm.com/products/board-detail.php?product=TS-7200#>. "Gimbal." Wikipedia, The Free Encyclopedia. 7 Apr 2008, 18:58 UTC. Wikimedia Foundation, Inc. 04 Jan 2008 <http://en.wikipedia.org/w/index.php?title=Gimbal&oldid=204044856>. "Gyrobot - a balancing robotic platform." Robot Projects. 28 Oct 2002. 07 March 2008 <http://www.barello.net/robots/gyrobot/>. "Gyroscope." Wikipedia, The Free Encyclopedia. 11 Apr 2008, 21:56 UTC. Wikimedia Foundation, Inc. 04 Jan 2008 <http://en.wikipedia.org/w/index.php?title=Gyroscope&oldid=205011189>. "Gyroscope." Wikipedia, The Free Encyclopedia. 12 Aug 2008, 18:03 UTC. Wikimedia Foundation, Inc. 12 Aug 2008 <http://en.wikipedia.org/w/index.php?title=Gyroscope&oldid= 231496576>. "Inertial measurement unit." Wikipedia, The Free Encyclopedia. 10 Feb 2008, 11:04 UTC. Wikimedi Foundation, Inc.10 Jan 2008 <http://en.wikipedia.org/w/index.php ?title=Inertial_measurem ent_unit&oldid =190367883>. "Interface Board." MEMSENSE. Rev A. 10 Jan 2008 <http://www.memsense.com/products/product/moredetails/display.php?product_id=9>. "Kalman filtering of IMU data ." Tompyckebe. 15 March 2008. 10 Apr 2008 <http://tom.pycke.be/mav/71/kalmanfiltering-of-imu-data>.
  • 43. 43 "Linux for ARM on TS-72XX User's Guide." Embedde-Arm. July 2007. Technologic Systems. 21 Apr 2008 <http://www.embeddedarm.com/products/board-detail.php?product=TS-7200#>. "Measurement of a Vehicle’s Dynamic Motion." Crossbow. 07 March 2008 <www.xbow.com/Support/Support_pdf_files/IMUAppNote.pdf >. "Microelectromechanical systems." Wikipedia, The Free Encyclopedia. 10 Aug 2008, 19:06 UTC. Wikimedia Foundation, Inc. 12 Aug 2008 <http://en.wikipedia.org/w/index.php?title =Microelectromechanical_systems&oldid=231070558>. "Navigation." Encyclopædia Britannica. 2008. Encyclopædia Britannica Online. 12 Aug. 2008 <http://www.britannica.com/EBchecked/topic/407011/navigation>. "Sensors: General Description of the tilt sensor and gyroscope." Segbot. Spring 2004. 09 March 2008 <http://coecsl.ece.uiuc.edu/ge423/spring04/group9/objectives_sensors.htm>. Tong, Terence. "Kalman Filter Made Easy." October 12, 2005. Berkeley . 10 Apr 2008 <www.ocf.berkeley.edu/~tmtong/howto/kalman/writeup.pdf>. "TriRate: Triaxial MEMS Gyroscope." MEMSENSE. Rev G. 10 Jan 2008 <http://www.memsense.com/products/product/moredetails/display.php?product_id=6>. "TS-7200 Hardware Manual." Embedded-Arm. July 2007. Technologic Systems. 04 Jan 2008 <http://www.embeddedarm.com/products/board-detail.php?product=TS-7200#>. "TS-9700 Manual." Embedded-Arm. Oct 13 2003. Technologic Systems . 04 Jan 2008 <http://www.embeddedarm.com/products/board-detail.php?product=TS-9700#>. "Uses for gyroscopes." gyroscopes.org 10 Aug 2008 <http://www.gyroscopes.org/uses.asp>. Welch, Greg. "The Kalman Filter." March 24, 1997. 02 Apr 2008 <http://www.cs.unc.edu/~welch/kalman/>. "Where's the Wiimote? Using Kalman Filtering To Extract Accelerometer Data." Gamasutra. March 24, 1997. 10Apr 2008 <http://www.gamasutra.com/view/feature/1494/wheres_the_wiimote_using_ kalman_.php?page=2>.
  • 44. 44 8.0 LIFELONG EDUCATION The pursuit of education is important part of life for almost everyone, but it is essential for those individuals in technical fields which have ever changing technology and increasingly rigorous competition. This endeavor requires a commitment to remaining constantly informed about the latest and most effective instruments available as well as sharing communication about the most recent successes as well as “setbacks” in the field of interest. The magnitude of this may differ from person to person depending on his/her own personal goals, but, in order to secure a future in technology, it is essential to stay “up to speed” with the everchanging hi-tech world. 8.1 LIFELONG EDUCATION – LISA LINNA As technology expands so must we; everyday the world advances, giving us more to learn and understand while pushing us to excel. With every new discovery or invention the bar is set higher and the challenge to advance ourselves is increased. Such as Moore’s Law which predicts the rate of transistors doubling on integrated circuits, we can predict the advancement in all areas to amplify. The only way to keep up with new advancements is to commit ourselves to a lifelong education. While a bachelor’s degree was once enough for a career in engineering or science, it’s now just the basic requirement for acceptance into a masters program. In technical fields, many employers will not even consider hiring an employee without a graduate degree. It’s not only important to pursue a graduate degree in order to expand your knowledge, but it demonstrates your ability and commitment to learning. This is particularly important to employers when they need to find workers capable of adapting to the ever-changing technical world whether it is new software, changes in codes, etc. With the internet becoming commercially and publicly available in the late 1900’s, so started the exponentially increasing world globalization. For new graduates, finding a job used to mean completing against fellow classmates when pursuing a job; now however, we have to compete against the rest of the world. In areas such as software engineering, where much of the work can be done from a far using the internet as a tool, we are seeing much more competition making further education even more critical. Many jobs in the US are being sent oversees in order to reduce immediate costs;
  • 45. 45 which in the long run have a negative effect on the economy. We are finding new competition every day making it harder to find a career and requiring us to be better than the rest if we want to stay in the field we have chosen. Even though there’s global competition among countries, as a race we must advance in order to protect the world. When considering the automotive industry, developing new, eco-friendly vehicles is an immediate concern for everyone. In the medical field, there are always ways to advance whether it is developing cures for disease or new prosthetic devices which can save or improve the quality of life for countless people. The question should not be should you continue your education but how and in what discipline should. 8.2 LIFELONG EDUCATION – ANTHONY LUCENTE Lifelong education is extremely essential for engineers as they continue their journeys from universities and academics to practical experience in their career paths. Moore’s Law tells us, “The complexity for minimum component costs has increased at a rate of roughly a factor of two per year.” Though this is not quite true today, the doubling factor appears closer to about every 18 months. These numbers are just profound when you consider all of the electronic devices in the world and how much they could potentially change in just 18 months. If the engineer who just earned his/her bachelor’s degree does not remain informed and/or is out of the field for five years, technological advances would have doubled twice. He/She may find it not only very difficult to work in his chosen field, but may not even recognize that area of former “expertise.” After graduating from the University of Michigan-Dearborn in the summer of 2008, I plan to take a semester away from academics. After 17 straight years of school, I want to allow myself the opportunity to pursuit my next direction in a more leisurely and contemplative fashion. For the next few months, I will research the robotics industry for employment that will be rewarding, utilize my strengths, and that would potentially help pay for a master’s degree. I am hopeful that a master’s program would allow me to continue my education with robotics, taking classes such as intelligent systems, embedded systems, control systems, neural networks, etc, while of course fulfilling my master’s degree requirements. It is my intention to remain in the forefront of the robotics
  • 46. 46 field. I am hopeful that furthering my education will also allow me a wider variety of choices for the type and the location of my work. In the spirit of the professors who have so generously assisted me in my educational pursuits, I feel confident that my experience and academic accomplishments will help me to work with and lead groups of engineers to new discoveries and advancements in the field of robotics. While I am particularly focused on improving the safety of our soldiers with the use of robots, I am also hopeful that the work of individuals who are faced with repetitive tasks or labor intensive responsibilities will find the robotics industry of assistance. With my engineering background, I find that there are many possibilities, including becoming an entrepreneur and/or inventor and creating and marketing innovative and useful products. There is no question that a constant pursuit of education and experience will be essential for any level of success, let alone expertise, in these areas. As engineers create new ways to advance technology for society, those innovations will stimulate future creativity and discovery. The developing of new technologies is a major component in the survival and evolution of a society. Future generations have always depended upon the accomplishments of past generations. Without education, discovery and advancements, society as we know it would become stagnant and, potentially, wither away. While many great minds have proposed similar notions, I have found these words from Louis L’Amour to ring true to me, “The best of all things is to learn. Money can be lost or stolen, health and strength may fail, but what you have committed to your mind is yours forever."
  • 47. 47 9.0 CONTEMPORARY ISSUES There are countless issues affecting our society that can be aided or affected by innovation and advancements in technology. Here we will explain some specific problems we’re facing and how certain technical fields show promise in improving or solving these issues. 9.1 CONTEMPORARY ISSUES – LISA LINNA One of the biggest issues affecting the U.S. economy today is globalization. In most parts of the world, globalization has become a necessary part of everyday lives. The automotive industry in the U.S. has had to make major changes in their everyday operations due to the outsourcing of jobs and importing of parts and cars. Local automakers have been confronted with a decline in sales, have had to close factories and reduce the number of employees. Ultimately, with the ripple effect, this has had a negative effect on the economy as a whole. Although this is a problem for many already in, or considering a career in engineering, there are ways in which to expand your horizons and still remain within your profession. Today, those graduating with degrees in engineering have to be concerned about finding and maintaining employment. One of the fields most at risk is computer science. Programming languages are generally universal and can be easily formulated in one country and transmitted over the internet to another without translation. However, due to the automotive industry’s current financial difficulties, all fields of engineering have suffered a decrease in demand. Those with jobs are concerned about downsizing. Those fresh out of college will encounter many obstacles in obtaining employment. Consequently, many people will need unemployment financial assistance, have to take jobs which are less fulfilling or for which they are overqualified or will have to relocate to find a job in their field. This decline also affects many other people and professions besides engineers as depicted in the diagram below:
  • 48. 48 With the increase in global competition and high gas prices, advancements and innovation in automotive technology is a must. Hybrid vehicles prove to be a step in the right direction, but remain somewhat problematic. Even the Ford Escape depends on foreign manufacturers. Due to patent issues, the hybrid transmission used in this vehicle is supplied by a company belonging to the Toyota group. Not surprisingly, this company limits the supply of hybrid parts for Ford vehicles. This in turn limits the supplies of the Ford hybrid vehicle, forcing customers to seek out other suppliers of hybrids. The race is on world wide to develop an environmentally friendly, gas free vehicle at a reasonable cost. Although there has been success in developing electric and hydrogen powered vehicles, they are still not available for mass production. 9.2 CONTEMPORARY ISSUES – ANTHONY LUCENTE The fields of robotics, nanotechnology and artificial intelligence have advanced seven fold in the last decade and display tremendous promise in changing the face of technology. While the rapid pace of technological advancements in the robotics industry have demonstrated an important impact on the war front challenging the U.S., artificial . . Less U.S. engineered automobiles sold Dealerships lose money, jobs, even close LOSSES Stamping plant (line workers, engineers, etc.) Paint System (line workers, engineers, etc.) Assembly plant (line workers, engineers, etc.) Plant Mfg. Co. Part suppliers (plastic, metal, etc.) Plant Mfg. Co. (Durr Systems, etc.) Part suppliers (paint, filters, etc.) Plant Mfg. Co. Part suppliers (part manufacturing plants, transmissions, engines, tires, fluids, etc.) Decline in “wants”/luxury items being purchased; for example, new homes, clothing, vacations, dining out, entertainment, electronics, etc. . . . .
  • 49. 49 intelligence and nanotechnology have great potential in affecting the everyday lives of society as a whole. These innovations in the field of robotics have stimulated many complex questions about the future of society as we know it. Currently, there are over 2000 robots in active service in Iraq and Afghanistan. These robots such as the iRobot PackBots, or the Foster-Miller Talon are used not only for surveillance and as the first line of defense, but can be mounted with various guns and ammunition to help protect our soldiers. Besides robots that travel on the ground, they have developed robots that fly, providing surveillance from the air. Recently, robots have been created which can contain a variety of missiles that can attack specific targets that may put a human in harms way. These robots, though semi-autonomous, can potentially become fully autonomous machines. Are we ready for a robot to make the decision about when to shoot? Society will need to decide whether it wants robots which are programmed for making the decision of life or death. Will society allow a robot to decide who is the enemy, who is bad or good? Another issue that we need to decide now is whether we want robots that think and act on their own. Artificial intelligence is advancing every day. We currently have cars that drive themselves and robots that are able to recognized faces, walk and talk, e.g. Honda’s Asimo. Robots are able to discern an emergency and act on it. It will not be too long before robots start to become self-aware and start to be able to learn about their surroundings. This is an area of research and design that has garnered a great deal of attention. Is this society ready to coexist with robots who/which have the ability to think? Will we make robots that have the ability to become so intelligent that they will one day think they do not need us? The decisions we make today will determine the future direction of robot technology. An extremely new field of study is the field of nanotechnology, specifically nanorobotics. Nanobots have great potential in the race to find a cure for cancer or AIDS or to repair broken bones without surgery, etc. They also can potentially fit into places that are too small for other electronic devices, to make the current electronic devices even smaller. We also have to think about the problems that come with nanobots, which could potentially outweigh the benefits. Terrorism is a big problem today and an everyday occurrence around the world. If the technology to make these nanobots becomes cheap
  • 50. 50 and readily available to people who wish to harm others, they could potentially kill millions of people. One scenario could be nanobots injected into our food that are programmed to attack our organs. Anti-nanobots would then need to be created to combat the nanobots that are now in your body, thus creating a little robot war. Although these nanobots have an abundance of benefits, they could potentially kill a lot of people if they end up in the wrong hands. Society needs to decide if these benefits offset the risks. As robots become more advanced and artificial intelligence increases in sophistication, it is only a matter of time before robots start to hold jobs once completed by humans. It was only thirty years ago when my father saw robots taking jobs from workers on the automotive assembly lines. As more unskilled workers and, in the near future, skilled workers lose their jobs to robots, society will face a major challenge about how to provide needed jobs for these individuals. Will the government take an active role in helping these workers return to college and develop new skills? What will be the descriptions of the human jobs of the future? What will become of those individuals who are unable to adapt? Society still has many questions, challenges and issues to confront when faced with robotics technology, artificial intelligence and nanotechnology. It is imperative that we examine the handwriting on the wall, determine the most optimal directions for this technology and consider the possible outcomes. These decisions have the potential to advance the survival and comfort of the human race—or to cause tremendous upheaval and disturbance.
  • 51. 51 10.0 APPENDICES This appendix includes Vita Auctoris for each team member and all derivations, intermediate results, detailed circuit diagrams, the computer program, and photographs which were not immediately significant to the project.
  • 52. 52 10.1 VITA AUCTORIS – LISA LINNA THE UNIVERSITY OF MICHIGAN-DEARBORN Department of Electrical & Computer Engineering 1. Name and Academic Rank: Lisa Linna, Senior Engineering Student 2. Degrees: Diploma 2003 Churchill High School, Livonia Michigan B.S.E. 2008 University of Michigan-Dearborn (EE & CE) 3. Number of years attended at this University: 5 years 4. Work Experience: 2002 Intern, Ford Advanced Vehicle Technology Group – Dearborn, MI 2003-2008 Engineering Technician, Dürr Systems, Inc. – Plymouth, MI 5. Organizations and Honors: 2004-2008 Secretary, Intelligent Systems Club 2004-2008 Member, Institute of Electrical and Electronic Engineers, Inc. 2007 University Honors – Winter & Fall Semesters 2007-2008 Member, Eta Kappa Nu – Electrical and Computer Engineering Honor Society 2007-2008 Member, Society of Women Engineers 6. Design Projects: 2008 Intelligent Three Axis Camera Stabilization Gimbal 2008 32-bit MIPS Processor 2006 Autonomous Sprinkler system 7. Research Interests • Embedded Systems • Control Systems – PID Controllers
  • 53. 53 10.2 VITA AUCTORIS – ANTHONY LUCENTE THE UNIVERSITY OF MICHIGAN-DEARBORN Department of Electrical & Computer Engineering 1. Name and Academic Rank: Anthony Lucente, College Senior 2. Degrees, with fields, institutions and dates: University of Michigan-Dearborn, Dearborn, MI Bachelor of Science in Electrical and Computer Engineering Expected Graduation: August 2008 Schoolcraft Community College, Livonia, MI Computer and Information Systems Dual Enrollment Student from Churchill High School, Livonia, MI Transferred 25 College credits to University of Michigan-Dearborn Date Transferred: June 10, 2004 Churchill High School, Livonia, MI Graduation Date: June 10, 2004 3. Number of years as an undergrad: 4 years 4. Other related experience: 2005-2008 President, Intelligent Systems Club (Robotics Club), University of Michigan-Dearborn, MI 2000-2008 Manager/Stock/Bagger, Larry’s Foodland, Livonia, Michigan 5. Research Projects: 2004-2008 Autonomous Robot Navigation 2008 Intelligent Three Axis Camera Stabilization Gimbal 2008 32-bit MIPS Processor 2007 Robot Obstacle Avoidance Sensor Array 2006 Autonomous Sprinkler system 6. Honors, Awards and Professional Memberships • Member of Intelligent Systems Club • Member of IEEE Robotics and Automation Society • Member of IEEE University of Michigan-Dearborn Chapter • Member of Institute of Electrical and Electronics Engineers, Inc (IEEE) • Member of Association for Unmanned Vehicle Systems International (AUVSI) • Dean’s List-Electrical and Computer Engineering, University of Michigan • Dean’s List-Computer and Information Systems-Schoolcraft Community College • 13th -16th International Intelligent Ground Vehicle Competition Winning 2nd Place
  • 54. 54 10.3 ANALOG TO DIGITAL CALCULATIONS When using analog to digital inputs it is necessary to scaling the inputs in order to attain usable data. 10.3.1 Accelerometer Scaling Device Specifications: Range: +/-3g Rate: 333mV/g The accelerometer outputs go to the daughter boards’ 12bit analog to digital inputs which range from 0-10V for 0-4096 A/D points (2^12=4096) resulting in 409.6 points/volt. With the specific orientation chosen for the sensor, the axes have the following outputs at 0°: Roll X-axis = 1.66V = 679.367 points, Pitch Y- axis =1.66V = 679.367 points, and Yaw Z-axis = 1.99V = 815.104 points. 10.3.2 Gyroscope Scaling Device Specifications: Rate = +/- 150°/s Sensitivity = 12.5mV/°/s Zero Rate = 2.50V at 25°C (77°F) Temperature Drift = 8.4 mV/°C The gyroscope outputs go to the main boards’ 12bit analog to digital inputs. The inputs range from 0-5V for 0-4096 A/D points (2^12=4069) resulting in 819.2 points/volt. With the zero rate at 2.5V it can be measured as 2048 points. C s po V s po V C mV eDrift Temperatur  − =  = / int 88 . 6 / int 2 . 819 * 0084 . 0 / 4 . 8 s s po V s po V s mV y Sensitivit / / int 24 . 10 / int 2 . 819 * 0125 . 0 / / 5 . 12  = =  =
  • 55. 55 10.4 3-DIMENSION DIAGRAMS In original design phases we developed a 3-dimensional layout in order to determine the gimbals structure with respect to the robot. Figure 10.4.1: 3-Dimensional Drawing – Gimbal with Robot
  • 56. 56 Figure 10.4.2: 3-Dimensional Drawing – Gimbal with Robot
  • 58. 58
  • 59. 59
  • 60. 60
  • 61. 61
  • 62. 62
  • 63. 63
  • 64. 64
  • 65. - 65 - 10.6 INTELLIGENT GIMBAL PHOTOGRAPHS Figure 10.6.1: Robot and Gimbal – Right Side
  • 66. - 66 - Figure 10.6.2: Robot and Gimbal – Left Side
  • 67. - 67 - Figure 10.6.3: Actuator Control Box and String Potentiometer
  • 68. - 68 - Figure 10.6.4: Robot Front Access - Power Supplies and Actuator Circuit Location Figure 10.6.5: Gimbal Camera Enclosure
  • 69. - 69 - 10.7 SETTING UP THE EMBEDDED-ARM BOARD If you are reading this document you’re probably wondering how to start developing code on your TS-72xx. This document will give a tutorial on how to set up your board and start developing code as soon as possible: 10.7.1 Installing Cygwin Cygwin is a Linux-like environment for Windows. It will be used to run the Embedded-Arm board cross-compiler that is needed to compile your code. The setup.exe can be found at http://cygwin.com/ . Download and run the setup.exe file. Step 1: Select “Install from Internet”:
  • 70. - 70 - Step 2: Install to default location: Step 3: Use default local package directory- C:cygwin (click next) Step 4: Use whatever internet connection settings (click next) Step 5: Select a mirror (click next) Step 6 (a): In the “Select Packages” expand “Devel”: Step 6 (b): Select any of the development compilers you are going to need, mostly: gcc, gdb, and make. These compilers will not be used to compile your code for your TS-72xx board, but may be useful in developing Linux based applications. The “Make” package will be used to compile your TS-72xx code and will be explained later in this document.
  • 71. - 71 - Step 7: click next and follow the rest of the installation instructions. Clicking on the “cygwin” icon placed upon your desktop gets you to a “bash” shell with the current working directory of C:cygwinhome<username>. You are able to run setup.exe any time you want to update or install a Cygwin package. Note that, when installing packages for the first time, setup.exe does not install every package. Only the minimal base packages from the Cygwin distribution are installed by default. Clicking on categories and packages in the setup.exe package installation screen will provide you with the ability to control what is installed or updated. Clicking on the "Default" field next to the "All" category will provide you with the opportunity to install every Cygwin package. Be advised that this will download and install hundreds of megabytes to your computer. The best plan is probably to click on individual categories and install either entire categories or packages from the categories themselves. Once you have installed your desired subset of the Cygwin distribution, setup.exe will remember what you selected so rerunning the program will update your system with any new package releases.
  • 72. - 72 - 10.7.2 Downloading and Installing TS-72XX Cross Compiler Under Cygwin The cross-compiler is used to compile your TS-72xx code, since the compiler that came with cygwin would not know about any of the hardware related code defines that you are going to have to write for your embedded-arm board. Download the latest cross-compiler at: http://www.embeddedarm.com/software/software-arm-linux.php under Cross toolchains for Cygwin OR from ftp://ftp.embeddedarm.com/ts-arm-sbc/ts-7200- linux/cross-toolchains . Currently the latest version is: crosstool-cygwin-gcc- 3.3.4-glibc-2.3.2.tar.bz2 Once you have downloaded the zip file, copy it to C:cygwinhome<username>. Note: If the home folder does not exist in C:cygwin, this means that you have not yet run cygwin, please double click the shortcut on your desktop, you should now see the home folder in C:cygwin. Once you have copied the zip file into the directory there should be four files in the folder. The next step is going to extract the contents of the cross-compiler into cygwin. Open up cygwin, in which there should be a shortcut on your desktop, if you chose to make one. Cygwin will open in your home directory, to where you copied the zip file of the cross-compiler to. You must then type the next statement on the command line exactly: tar -xvf crosstool-cygwin-gcc-3.3.4-glibc- 2.3.2.tar.bz2 Cygwin will then extract the cross-compiler contents into a separate folder called opt. Cut the folder named opt and past it into C:cygwin. You then can delete the cross-compiler zip file in C:cygwinhome<username>, since you are finished extracting it. The next step is to go into your C:cygwinhome<username> again and open up the .bash_profile inside of notepad. Note: The file will look un- formatted, DO NOT try to format it by the Enter key or open it up in Word Pad, as these two things will put unwanted return characters. Copy and paste the next
  • 73. - 73 - line into the .bash_profile at the end of it. This will probably be on the second line all the way to the right: PATH="/opt/crosstool/gcc-3.3.4-glibc-2.3.2/arm-unknown-linux- gnu/bin:$PATH" Save the .bash_profile file and go back and open cygwin. If no error messages appear at the top of the command window, then everything worked. Note: if an error arises, it means that you have done something wrong and you must go to C:Cygwinetcdefaultsetc/skel and copy over the new .bas_profile from that folder to your C:cygwinhome<username> folder and replace it. You will then be able to again attempt to copy and paste the path statement above into the new .bash_profile file in your C:cygwinhome<username> folder. 10.7.3 Writing and Compiling Your Own Code Now with cygwin installed and your ARM cross-compiler installed in it, you are now ready to start compiling code for your board. You are going to want to create a test program such as a C or C++ “Hello World” program. This will give you a very fast and easy program to test to see if you did everything correctly. This program can be written in notepad, or any C or C++ text editor. You just have to make sure, when saving in notepad, that you save them with a .c or .cpp suffix, for C or C++ respectively. Note: you can only use C++ if the libraries have been loaded on the board. The Program that I will be using is as follows, and will be saved as test.c. Note: do not copy and paste this code out of a word document or PDF as this may give unwanted formatting issues when you try to compile: #include <stdio.h> int main(void) { printf(“Hello Worldn”); return 0; }