Professional Documents
Culture Documents
Important For Graduation
Important For Graduation
net/publication/252629271
CITATIONS READS
0 6,213
3 authors, including:
Some of the authors of this publication are also working on these related projects:
All content following this page was uploaded by Mahmoud Khaled on 31 May 2014.
Faculty of Engin
neering
Com
mputers & Systeems Dept.
Dessign
D n,
I plem
Imp men ntation
a d Diggitaal
and
C ntro
Con ol off a
R botic Arrm
Rob
CS
SE – B.S
Sc. Pro
oject 2
2009
Projject Membrs Fromm scratch and d with low co
ost, a multipurpose 4 DOF
• Ayat Salah El‐
A Din Ahmed robotic arm is deesigned and im mplemented.. With the
• Mona Khalaf A
M Abel‐Lateef helpp of a DAQ caard and MATLLAB, a digital PID
• Mahmood Kh
M aled controller is desiigned and imp plemented to o control the
M
Mohammed anggles of the join
nts of the arm
m. Using a diggital camera
andd Image Proceessing toolboxx in MATLAB, a simple
GUI application iis developed to demonstraate how the
robotic arm works. The robottic arm identiffies certain
Sup
pervised by objeects within itss workspace bbased on their shape and
colo
or, moves tow wards them, p picks them up p and places
Prof. M.
M Mone
ess themm to a certainn position.
Design, Implementation and Digital Control of a Robotic Arm
Acknowledgment
The work on this project has been an inspiring, often exciting, sometimes challenging,
but always interesting experience. It has been made possible by many other people, who
have supported us. So we would like to take this opportunity to express our sincere
gratitude to all those who have contributed in completing this project.
First of all, we Thank ALLAH who gave us the strength, power and health for finishing
this project.
We are grateful to our supervisor prof. M.Moness for his continuous support for the
project, from initial advice and contacts in the early stages of conceptual inception, and
through ongoing advice and encouragement to this day.
We would also like to thank Eng. Mohammed Abdel-Hady for his help and advice
throughout the project, and also our colleges from the other departments for providing
us with the necessary information and advice in their fields.
We thank all department technicians who helped us during our work times and
supported us with all possible tools and labs
Finally, We wish to thank our parents for their undivided support and interest, who has
inspired us and encouraged us to go our own way, without whom we would unable to
complete this project.
[1]
Design, Implementation and Digital Control of a Robotic Arm
Table of Contents
Acknowledgment ............................................................................................................................ 1
Preface ............................................................................................................................................ 4
[2]
Design, Implementation and Digital Control of a Robotic Arm
[3]
Design, Implementation and Digital Control of a Robotic Arm
Preface
The project is a Robotic Arm that can identify different objects located in its workspace
according to their shape and color and places the objects in a certain location with the help
of a video camera as a visual feedback. The arm has 4 Degrees of Freedom (DOF) with a DC-
Motor at each joint. The DC-Motor is position-controlled using a PID controller to position
the link at the required angle; the feedback of the angle is measured using rotary-encoders.
This project introduces intelligence to industries to reduce human errors and increase the
quality and mass production of industries. It can operate under hazardous circumstances
(high pressure, high temperature and locations that can be unstable for human operation) so
it reduces that risk for human injures. It can be updated and controlled easily to achieve a
larger number of applications. It has a simple graphic user interface (GUI) that can easily be
used by any worker or operator not precisely an engineer. It reduces the costs as it can
perform a task that is done by many workers using only one operator.
Goal of work the goal of this project is to control the angles of a robotic arm joints using a
PID controller with a DAQ card and a computer system as a digital controller.
Computational tools :
MATLAB is a numerical computing environment and fourth generation programming
language. Developed by The MathWorks, MATLAB allows matrix manipulation, plotting of
functions and data, implementation of algorithms, creation of user interfaces, and interfacing
with programs in other languages. Although it is numeric only, an optional toolbox uses the
MuPAD symbolic engine, allowing access to computer algebra capabilities. An additional
package, Simulink, adds graphical multidomain simulation and Model-Based Design for
dynamic and embedded systems.
Proteus PCB design combines the ISIS schematic capture and ARES PCB layout programs to
provide a powerful, integrated and easy to use suite of tools for professional PCB Design.All
Proteus PCB design products include an integrated shape based autorouter and a basic SPICE
simulation capability as standard. This tool was very helpful when designing and
implementing electric circuits.
[4]
Design, Implementation and Digital Control of a Robotic Arm
Chapter 1 : Introduction
1.1. System overview
System components
1) Robotic arm: A 4-DOF Manipulator with DC-Motor Joints.
2) Driver Circuit: An electronic circuit that is used for sending Commands to Motors
and Reading Encoder's outputs.
3) Computer Control: A computer Equipped with a PCI DAQ card.
4) Camera System: A digital camera that is used for acquiring an image of the
workspace for providing feedback to the controller.
[5]
Design, Implementation and Digital Control of a Robotic Arm
The following block diagram describes the main parts of the Robotic Arm
System:
Digital
Camera
(webcam)
Computer
Control
system
Motor
Diver
Circuit
Robotic
Arm
[6]
Design, Implementation and Digital Control of a Robotic Arm
1.3. Applications
The robotic arm system has many applications in many
aspects not only in the industrial field. Here we list some of
the application.
2. Sorting objects.
3. Collecting objects.
b) Nuclear accident cleanup
c) Planetary exploration
d) Automatic Guided Vehicles in factories
Fig 1.3
KUKA KR C1
This is a famous industrial robotic arm with 6 DOF and used to carry
heavy weights. Its main applications: Arc welding, Machining,
Polishing, grinding, Assembly and Cutting
[7]
Design, Implementation and Digital Control of a Robotic Arm
[8]
Design, Implementation and Digital Control of a Robotic Arm
Model Design
Model
Implementation
Kinematics
Calculations
Model
Simulation
[9]
Design, Implementation and Digital Control of a Robotic Arm
[10]
Design, Implementation and Digital Control of a Robotic Arm
It is a 4-DOF robotic arm, two main links (L1, L2) connected to a link that holds the
end-effector (L3). The end-effector is a gripper that opens and closes as required
which makes the arm capable of holding the required objects. The Base Moves around
the Real Z-Axis causing an angel of . The first joint is placed on the base and moves
[11]
Design, Implementation and Digital Control of a Robotic Arm
the First Link around X-Axis causing an angle of . The second joint is directly
connected to the First Link and Second Link and makes an angle of . The last joint
connects the second link with the gripper directly and makes an angle of . The
gripper has no DOF and it just opens and closes.
To analyze the motion of robot manipulators, reference frames ; a frame is 3-axis
group[X Y Z], the frames are attached to each link starting at frame Fo, attached to the
fixed link (the base), all the way to frame Fn, attached to the robot end-
effector (assuming the robot has n joints). The process followed in assigning frames to
links is based on the Denavit- Hartenberg parameters.
Given two consecutive link frames on a robot manipulator, frames F i-1 and Fi,
frame Fi will be uniquely determined from frame Fi-1 by use of the parameters di, ai, i,
and i illustrated in figure 2.4
As shown, any link connects two joints together (except last link), from the previous
figure we conclude the following results,
[12]
Design, Implementation and Digital Control of a Robotic Arm
The Z vector of any link frame is always on a joint axis. The only exception to this
rule is the end-effector of the robot which does not have a joint axis.
is the algebraic distance along axis to the point where the common
perpendicular intersects axis
is the length of the common perpendicular to axes and .
is the angle, about , that the common perpendicular makes with
vector
is the angle, about , that vector makes with vector
[13]
Design, Implementation and Digital Control of a Robotic Arm
Figure 2.5 shows the real parts of the robot before they are collected to form the
links:
Each link consists of two identical pieces of wood placed in parallel and held in that
position using small stems of wood to support the link and keep the pieces in parallel,
Figure 2.6 shows the firs link attached to the base and the link parts are glued
together.
[14]
Design, Implementation and Digital Control of a Robotic Arm
Fig. 2.6
Figure 2.7 shows the two main links connected together with the joint's DC motors
mounted inside the joints:
Fig. 2.7
[15]
Design, Implementation and Digital Control of a Robotic Arm
The following table 2.2 shows the mechanical specification of each part:
Part Weight (gm) Length (cm)
Link-1 40 for the two pieces, 20 for connecting stems (60 total) 25
Link-2 45 for the two pieces, 20 for connecting stems (65 total) 28
Link-3 16 for the two pecies, 8 for the stems (22 total) 14
Table 2.2
The End-Effector
The end-effector can be designed to perform any desired task such as welding,
gripping, spinning etc., depending on the application.
Fig. 2.8
Forward Kinematics
Forward kinematics means that we have the angles of each joint and need to calculate
the position of the end-effector and its orientation in the space. The previous figure
shows only the last three angles. The first angle rotates the arm around the base. This
[16]
Design, Implementation and Digital Control of a Robotic Arm
shown configuration is called planar configuration as the robot angles makes it move
inside a single plane.
The following matrices describe the position and orientation of each joint: the
notation describes the translation and orientation matrix from joint x to joint y:
[ ]
[ ]
[ ]
[ ]
The upper left 3x3 Matrix of the A matrix represents the rotation; the upper right 3x1
vector represents the position translation. When a point that is represented with a
position and orientation is multiplied by the A matrix, it will get translated and rotated
by the translation and rotation matrix in the 3D space. The notation means the
sine of while means the cosine of
The Final transform that represent the total forward kinematics:
(2.1)
It is also possible to use MATLAB Robotics toolbox for the simulation and kinematics
calculation of robotic arms. The ROBOTICS toolbox enables designing, simulation
forward and inverse kinematics many types of manipulators.
The following MATLAB code simulates our previously designed robotic arm, the DH-
Table is directly given to MATLAB that simulates it,
[17]
Design, Implementation and Digital Control of a Robotic Arm
function manip=Create4DOFManipulator(L1,L2,L3,t1,t2,t3,t4)
% manip is a ROBOT object :: refer to robot toolbox
% Ls = Link Lengths
% ts = Theta (angles)
% alpha A theta D
% ------------------------------------------------------
L{1} = link([-pi/2 0 t1 0]);
L{2} = link([0 L1 t2 0]);
L{3} = link([0 L2 t3 0]);
L{4} = link([0 L3 t4 0]);
Where, L1, L2 and L3 are lengths of links. t1, t2, t3 and t3 are initial angles of each
joint.
In MATLAB workspace we execute this function,
>> manip=Create4DOFManipulator(1,1.5,0.5,0,0,0,0)
manip =
Manipulator-4DOF (5 axis, RRRRR)
grav = [0.00 0.00 9.81] standard D&H parameters
alpha A theta D R/P
0.000000 0.000000 0.000000 0.000000 R (std)
-1.570796 0.000000 0.000000 0.000000 R (std)
0.000000 1.000000 0.000000 0.000000 R (std)
0.000000 1.500000 0.000000 0.000000 R (std)
0.000000 0.500000 0.000000 0.000000 R (std)
[18]
Design, Implementation and Digital Control of a Robotic Arm
Inverse Kinematics
We had used the previously mentioned tool (ROBOTICS Toolbox) inside Matlab to
calculate the inverse kinematics.
[19]
Design, Implementation and Digital Control of a Robotic Arm
Where,
W1, W2, W3 are the weights of each link, the effecting point of those weights
are at the center of each link.
J2, J3 are the weights if each joint (motor at each joint was also taken into
account).
G is the weight of the End-Effector.
M is the weight of the object that the arm will lift.
[20]
Design, Implementation and Digital Control of a Robotic Arm
( ) ( ) ( )
( ) ( ) ( )
( ) ( )
[21]
Design, Implementation and Digital Control of a Robotic Arm
The L298N
The L298N consist of four inputs lines (IN1-IN2-IN3-IN4) each pair control one motor,
also contain fours outputs (OUT1- OUT2- OUT3- OUT4) each pair connected to the
motors terminals and also to enables lines (ENA-ENB) that can switch on/off the
motors. Addition to the Vcc line the IC power supply and finally the Vs line the motors
power supply.
[22]
Design, Implementation and Digital Control of a Robotic Arm
Control of a DC Motor
To control the motor speed, we apply a train of pulses (high & low) to the enable lines
using a PWM module inside the DAQ card. To control the motor direction, we apply a
TTL logic power (5V for high – 0V for low) to the inputs lines.
Computer
[23]
Design, Implementation and Digital Control of a Robotic Arm
The next figure shows the schematic of a motor driver circuit ready to accept signals
to control a DC motor:
To choose the right motor for our robot we should choose it according to specific
measured parameters that specify the torque of each motor.
MOTOR RESISTANCE,
For a dc motor we measure the resistance between the 2 armature wires.
MOTOR VOLTAGE CONSTANT,
To measure the voltage constant of the motor, we put the motor shaft in a lathe
and rotate the shaft at some speed [rpm] such as 1000rpm. With a dc motor, use a dc
[24]
Design, Implementation and Digital Control of a Robotic Arm
voltmeter to measure the armature voltage. is then the voltage you read divided
by the speed in rad/sec.
Convert rpm to rad/sec as:
3.1
MOTOR INDUCTANCE,
To measure the motor inductance, use a low voltage ac source to the motor winding.
For a dc motor, apply the ac voltage to the armature winding, nd measure the voltage
and the current.
Remember that the BLDC motor is usually connected in WYE. Thus the readings will be
line-to-line. You want the phase values for the voltage, so divide the voltage by 2. The
impedance of the BLDC motor phase winding is then:
( )
√ (3.3)
R √ ( )
Solve for the reactance from this equation. Note that the phase resistance was
measured previously. The inductance can then be calculated from:
The reactance = 2π x frequency x inductance (3.5)
The frequency is probably going to be from the ac source at 60 Hz. Thus
(3.6)
[25]
Design, Implementation and Digital Control of a Robotic Arm
MOTOR INERTIA,
Cylindrical object(solid) of diameter D ( radius R=D/2) and mass M
The total inertia is then summed for the motor and the link.
Table 3.1
[26]
Design, Implementation and Digital Control of a Robotic Arm
System Equations
The motor torque, T, is related to the armature current, i, by a constant factor, . The
back emf, e, is related to the rotational velocity by the following equations:
(3.9)
(3.10)
̈ ̇ (3.11)
̇ (3.12)
[27]
Design, Implementation and Digital Control of a Robotic Arm
By eliminating ( ) we can get the following transfer function, where the rotating
speed is the output and the voltage is the input
̇
( )( )
(3.15)
)( )
(3.16)
(( )
[ ̇] [ ] [ ̇] [ ] (3.17)
[ ̇] (3.18)
[28]
Design, Implementation and Digital Control of a Robotic Arm
Pulse Width Modulation is a technique for reducing the amount of power delivered to a
DC motor. This is typically used in mechanical systems that will not need to be operated
at full power all of the time. Here we use this technique to provide an open loop speed
control on a DC motor.
Instead of reducing the voltage operating the motor (which would reduce its power),
the motor’s power supply is rapidly switched on and off. The percentage of time that
the power is on determines the percentage of full operating power that is accomplished.
Figure 3.5 illustrates this concept, showing pulse width modulation signals to operate a
motor at 75%, 50%, and 25% of the full power potential.
A wide range of frequencies can be used for the PWM signal. A PWM waveform
consisting of eight bits, each of which maybe on or off, the waveform is repetitiously
used to control the motor. Every 1/1000 of a second, a control bit determines whether
the motor is enabled or disabled. Every 1/25 of second the waveform is repeated,
because one to eight bits may be set in the PWM waveform, the motors may be
adjusted to eight power levels between off and full on.
[29]
Design, Implementation and Digital Control of a Robotic Arm
[30]
Design, Implementation and Digital Control of a Robotic Arm
The purpose of shaft encoders is shown in figure 3.6c, where a U- shaped photo-
couple made of an Infra-Red sender and a matching receiver is positioned in a certain
way so that the beam of infrared light passes through one of the small openings in the
encoder disk.
In reality, photo-couple come in many shapes and sizes, but most of them are more or
less similar to the one shown in figure 3.7. Any photo couple has 4 leads, two for the
sender, which is usually an Infra-Red LED and, and the two others are for the receiver,
which is usually a photo transistor. You can see the schematic representation of that
photo couple at the lower corner of figure 3.7, where is clear that the photo-couple is
composed of a LED and a photo transistor.
The encoder disk is firmly connected to the back-shaft of the motor, so that both the
shaft and the encoder disk rotate at the same r.p.m. (the back-shaft is an extension of
the output shaft of the motor at its back, usually present for the sole purpose of
adding a shaft encoder). When this encoder disk is inserted in the configuration
shown in figure 3.6c, the rotation of the motor
causes the beam of light to be periodically
intercepted by the solid parts of the encoder
disk creating a sequence of pulses of light,
which will be translated by the photo couple's
receiver into pulses of electricity.
Those pulses of electricity contain all the
information we need to implement a closed
loop control.
Fig. 3.7: Optical Encoder
The frequency of those pulses is directly proportional to the speed of rotation of the
shaft (RPM) and the numbers of these pulses correspond to the angular displacement
of the shaft.
[31]
Design, Implementation and Digital Control of a Robotic Arm
The more the number of holes in an encoder disk, the higher will be the resolution
(the slightest angular displacement that can be detected). One important factor that
affects the performance of shaft encoder and thus the overall performance of a closed
loop control system is the position of the encoder disk.
Most of the motors are used with a gearbox designed to reduce the r.p.m. while
increasing the output torque (figure 3.6b shows a motor +gearbox assembly). Thus,
the motor itself can be turning at 4400 r.p.m. for example, driving a 40:1 gear box,
dividing the rpm by 40, giving a final output speed of 110 r.p.m. You can take a great
advantage of this to reach very high degrees of accuracy, by connecting the encoder
disk at the back shaft of the motor (which is turning at 4400 rpm in our example).
This way, each turn of the final output shaft from the gearbox will correspond to 40
turns of the shaft encoder, and if the encoder disk has 30 holes on its circumference, a
single turn on the final output shaft will correspond to 1200 pulses, reaching a
theoretical precision of 0.3 degrees (i.e. each pulse correspond to 0.3 degrees of
rotation of the final output shaft).
Depending on the type of motor and gearbox, it may be difficult to reach exactly that
theoretical precision.
[32]
Design, Implementation and Digital Control of a Robotic Arm
Fig. 3.8.a
Fig. 3.8.b
[33]
Design, Implementation and Digital Control of a Robotic Arm
Fig. 3.9a
Fig. 3.9b
[34]
Design, Implementation and Digital Control of a Robotic Arm
Fig. 3.10a
Fig. 3.10b
[35]
Design, Implementation and Digital Control of a Robotic Arm
Fig. 3.11a
Fig. 3.11b
[36]
Design, Implementation and Digital Control of a Robotic Arm
The PID controller calculation (algorithm) involves three separate parameters; the
proportional, integral, and derivative values. The proportional value determines the
reaction to the current error, the integral value determines the reaction based on the
sum of recent errors, and the derivative value determines the reaction based on the
rate at which the error has been changing. The weighted sum of these three actions is
used to adjust the process via a control element such as the position of a control valve
or the power supply of a heating element.
By tuning the three constants in the PID controller algorithm, the controller can
provide control action designed for specific process requirements. The response of
the controller can be described in terms of the responsiveness of the controller to an
error, the degree to which the controller overshoots the set-point and the degree of
system oscillation. Note that the use of the PID algorithm for control does not
guarantee optimal control of the system or system stability.
Some applications may require using only one or two modes to provide the
appropriate system control. This is achieved by setting the gain of undesired control
[37]
Design, Implementation and Digital Control of a Robotic Arm
outputs to zero. A PID controller will be called a PI, PD, P or I controller in the absence
of the respective control actions. PI controllers are particularly common, since
derivative action is very sensitive to measurement noise, and the absence of an
integral value may prevent the system from reaching its target value due to the
control action.
( )
Set-point Output
∑ ∫ ( ) ∑ Process
( )
[38]
Design, Implementation and Digital Control of a Robotic Arm
Proportional term
Plot 4.1 of PV vs. time, for three values of ( and held constant)
The proportional term (sometimes called gain) makes a change to the output that is
proportional to the current error value. The proportional response can be adjusted by
multiplying the error by a constant , called the proportional gain.
The proportional term is given by:
( ) ( )
Where,
: Proportional term of output
: Proportional gain, a tuning parameter
: Error = SP - PV
: Time or instantaneous time (the present)
A high proportional gain results in a large change in the output for a given change in
the error. If the proportional gain is too high, the system can become unstable. In
contrast, a small gain results in a small output response to a large input error, and a
less responsive (or sensitive) controller. If the proportional gain is too low, the control
action may be too small when responding to system disturbances.
[39]
Design, Implementation and Digital Control of a Robotic Arm
In the absence of disturbances, pure proportional control will not settle at its target
value, but will retain a steady state error that is a function of the proportional gain
and the process gain. Despite the steady-state offset, both tuning theory and
industrial practice indicate that it is the proportional term that should contribute the
bulk of the output change.
Integral term
Plot 4.2 of PV vs. time, for three values of ( and held constant)
The contribution from the integral term (sometimes called reset) is proportional to
both the magnitude of the error and the duration of the error. Summing the
instantaneous error over time (integrating the error) gives the accumulated offset
that should have been corrected previously. The accumulated error is then multiplied
by the integral gain and added to the controller output. The magnitude of the
contribution of the integral term to the overall control action is determined by the
integral gain, .
[40]
Design, Implementation and Digital Control of a Robotic Arm
∫ ( ) ( )
Where,
: Integral term of output
: Integral gain, a tuning parameter
: Error = SP - PV
: Time or instantaneous time (the present)
: Dummy integration variable
The integral term (when added to the proportional term) accelerates the movement
of the process towards set-point and eliminates the residual steady-state error that
occurs with a proportional only controller. However, since the integral term is
responding to accumulated errors from the past, it can cause the present value to
overshoot the set-point value (cross over the set-point and then create a deviation in
the other direction).
Derivative term
Plot 4.3 of PV vs. time, for three values of ( and held constant)
[41]
Design, Implementation and Digital Control of a Robotic Arm
The rate of change of the process error is calculated by determining the slope of the
error over time (i.e., its first derivative with respect to time) and multiplying this rate
of change by the derivative gain, . The magnitude of the contribution of the
derivative term (sometimes called rate) to the overall control action is termed the
derivative gain, .
The derivative term is given by:
( )
( )
Where,
: Derivative term of output
: Derivative gain, a tuning parameter
: Error = SP - PV
: Time or instantaneous time (the present)
The derivative term slows the rate of change of the controller output and this effect is
most noticeable close to the controller set-point. Hence, derivative control is used to
reduce the magnitude of the overshoot produced by the integral component and
improve the combined controller-process stability. However, differentiation of a signal
amplifies noise and thus this term in the controller is highly sensitive to noise in the
error term, and can cause a process to become unstable if the noise and the
derivative gain are sufficiently large.
Summary
The proportional, integral, and derivative terms are summed to calculate the output
of the PID controller. Defining ( ) as the controller output, the final form of the PID
algorithm is:
( )
( ) ( ) ( ) ∫ ( ) ( )
[42]
Design, Implementation and Digital Control of a Robotic Arm
Larger values typically mean faster response since the larger the error, the larger the
Proportional term compensation. An excessively large proportional gain will lead to
process instability and oscillation.
Integral gain,
Larger values imply steady state errors are eliminated more quickly. The trade-off is
larger overshoot: any negative error integrated during transient response must be
integrated away by positive error before we reach steady state.
Derivative gain,
Larger values decrease overshoot, but slows down transient response and may lead to
instability due to signal noise amplification in the differentiation of the error
Loop Tuning
If the PID controller parameters (the gains of the proportional, integral and derivative
terms) are chosen incorrectly, the controlled process input can be unstable, i.e. its
output diverges, with or without oscillation, and is limited only by saturation or
mechanical breakage. Tuning a control loop is the adjustment of its control
parameters (gain/proportional band, integral gain/reset, derivative gain/rate) to the
optimum values for the desired control response.
The optimum behavior on a process change or set-point change varies depending on
the application. Some processes must not allow an overshoot of the process variable
beyond the set-point if, for example, this would be unsafe. Other processes must
minimize the energy expended in reaching a new set-point. Generally, stability of
response (the reverse of instability) is required and the process must not oscillate for
any combination of process conditions and set-points. Some processes have a degree
of non-linearity and so parameters that work well at full-load conditions don't work
[43]
Design, Implementation and Digital Control of a Robotic Arm
when the process is starting up from no-load. This section describes some traditional
manual methods for loop tuning.
There are several methods for tuning a PID loop. The most effective methods
generally involve the development of some form of process model, and then choosing
P, I, and D based on the dynamic model parameters. Manual tuning methods can be
relatively inefficient.
The choice of method will depend largely on whether or not the loop can be taken
"offline" for tuning, and the response time of the system. If the system can be taken
offline, the best tuning method often involves subjecting the system to a step change
in input, measuring the output as a function of time, and using this response to
determine the control parameters.
[44]
Design, Implementation and Digital Control of a Robotic Arm
1. Manual tuning
If the system must remain online, one tuning method is to first set and values to
zero. Increase the until the output of the loop oscillates, then the should be left
set to be approximately half of that value for a "quarter amplitude decay" type
response. Then increase until any offset is correct in sufficient time for the process.
However, too much will cause instability. Finally, increase , if required, until the
loop is acceptably quick to reach its reference after a load disturbance. However, too
much will cause excessive response and overshoot. A fast PID loop tuning usually
overshoots slightly to reach the set-point more quickly; however, some systems
cannot accept overshoot, in which case an "over-damped" closed-loop system is
required, which will require a setting significantly less than half that of the
setting causing oscillation.
[45]
Design, Implementation and Digital Control of a Robotic Arm
Control Type
P - -
PI ⁄ -
PID ⁄ ⁄
Table 4.3
Limitations of PID
While PID controllers are applicable to many control problems, they can perform
poorly in some applications. PID controllers, when used alone, can give poor
performance when the PID loop gains must be reduced so that the control system
does not overshoot, oscillate or hunt about the control set-point value. The control
system performance can be improved by combining the feedback (or closed-loop)
control of a PID controller with feed-forward (or open-loop) control. Knowledge about
the system (such as the desired acceleration and inertia) can be fed forward and
[46]
Design, Implementation and Digital Control of a Robotic Arm
combined with the PID output to improve the overall system performance. The feed-
forward value alone can often provide the major portion of the controller output. The
PID controller can then be used primarily to respond to whatever difference or error
remains between the set-point (SP) and the actual value of the process variable (PV).
Since the feed-forward output is not affected by the process feedback, it can never
cause the control system to oscillate, thus improving the system response and
stability.
For example, in most motion control systems, in order to accelerate a mechanical load
under control, more force or torque is required from the prime mover, motor, or
actuator. If a velocity loop PID controller is being used to control the speed of the load
and command the force or torque being applied by the prime mover, then it is
beneficial to take the instantaneous acceleration desired for the load, scale that value
appropriately and add it to the output of the PID velocity loop controller. This means
that whenever the load is being accelerated or decelerated, a proportional amount of
force is commanded from the prime mover regardless of the feedback value. The PID
loop in this situation uses the feedback information to affect any increase or decrease
of the combined output in order to reduce the remaining difference between the
process set-point and the feedback value. Working together, the combined open-loop
feed-forward controller and closed-loop PID controller can provide a more responsive,
stable and reliable control system.
Another problem faced with PID controllers is that they are linear. Thus, performance
of PID controllers in non-linear systems (such as HVAC systems) is variable. Often PID
controllers are enhanced through methods such as PID gain scheduling or fuzzy logic.
Further practical application issues can arise from instrumentation connected to the
controller. A high enough sampling rate, measurement precision, and measurement
accuracy are required to achieve adequate control performance.
[47]
Design, Implementation and Digital Control of a Robotic Arm
A problem with the Derivative term is that small amounts of measurement or process
noise can cause large amounts of change in the output. It is often helpful to filter the
measurements with a low-pass filter in order to remove higher-frequency noise
components. However, low-pass filtering and derivative control can cancel each other
out, so reducing noise by instrumentation means is a much better choice.
Alternatively, the differential band can be turned off in many systems with little loss
of control. This is equivalent to using the PID controller as a PI controller.
Cascade Control
One distinctive advantage of PID controllers is that two PID controllers can be used
together to yield better dynamic performance. This is called cascaded PID control. In
cascade control there are two PIDs arranged with one PID controlling the set point of
another. A PID controller acts as outer loop controller, which controls the primary
physical parameter, such as fluid level or velocity. The other controller acts as inner
loop controller, which reads the output of outer loop controller as set point, usually
controlling a more rapid changing parameter, flow rate or acceleration. It can be
mathematically proven that the working frequency of the controller is increased and
the time constant of the object is reduced by using cascaded PID controller.
[48]
Design, Implementation and Digital Control of a Robotic Arm
[49]
Design, Implementation and Digital Control of a Robotic Arm
Table 4.4
Digital I/O
Number of Channels 10 DIO
Timing Hardware, Software
Maximum Clock Rate 1 MHz
Logic Levels TTL
Input Current Flow Sinking, Sourcing
Programmable Input Filters Yes
Output Current Flow Sinking, Sourcing
Current Drive (Channel/Total) 24 mA/176 mA
Table 4.5
Software Compatibility
MATLAB
ANSI C
LabVIEW
Visual Studio .NET
Measurement Studio
Visual Basic
LabWindows/CVI
[50]
Design, Implementation and Digital Control of a Robotic Arm
For test, you can use 16-bit, 250 kS/s analog inputs and 1 MHz digital lines with NI signal
conditioning for applications including data logging and sensor measurements.
Low-cost M Series digital lines can drive 24 mA for relay and actuator control. With up
to four analog outputs, two 80 MHz counter/timers, and six DMA channels, M Series
devices can execute multiple control loops simultaneously. Low-cost M Series devices
also have direct support for encoder measurements, protected digital lines, and digital
debounce filters for control applications. With up to 80 analog inputs, 32 clocked digital
lines at rates of 1 MHz, and four analog outputs, you can execute multiple control loops
with a single device. For higher-count control loops, you can use M Series devices in
conjunction and tightly synchronized with National Instruments analog output devices
for 64 or more loops.
[51]
Design, Implementation and Digital Control of a Robotic Arm
[52]
Design, Implementation and Digital Control of a Robotic Arm
[53]
Design, Implementation and Digital Control of a Robotic Arm
A State-Space Model
[ ̇] [ ̇] [ ] ( )
[ ]
[ ̇] ( )
We can put the state space equations into MATLAB command window by defining the
system’s matrices as follows
⁄ ⁄ ⁄ ⁄
⁄
To obtain the step response, enter the following command in the command window
Step(A,B,C,D)
[54]
Design, Implementation and Digital Control of a Robotic Arm
Continuous PID
Open the Matlab simulink and place the block as the following:
[55]
Design, Implementation and Digital Control of a Robotic Arm
[56]
Design, Implementation and Digital Control of a Robotic Arm
[57]
Design, Implementation and Digital Control of a Robotic Arm
Then enter ( , , )
[58]
Design, Implementation and Digital Control of a Robotic Arm
System Response
[59]
Design, Implementation and Digital Control of a Robotic Arm
We control the motor position by using Matlab’s Data Acquisition toolbox and
PID Controller inside a simulink model shown below:
We set the required angle as step input with final value of required angle:
We set the step final value to 90 degree to move the motor 90 degrees
[60]
Design, Implementation and Digital Control of a Robotic Arm
The subsystem of M_signals is responsible for the conversion of PID signal into a
digital signals that will be delivered to the motor driver circuit to control the
motor direction and speed. As shown in the block, a digital logic is implemented
to convert the PID signal into motor direction signals (IN_1 and IN_2) needed by
the driver circuit. The PID signal again gets converted to PWM pulse train using
the sub_system ‘Voltage_to_PWM’ this signal is placed on the (EN) pin of the
driver circuit. Detailed description this block is presented below:
[61]
Design, Implementation and Digital Control of a Robotic Arm
0 0 1 1 1
1 0 0 1 0
0 1 0 1 0
Table 4.6
Motor_in1 = Not (PID < 0).Not (PID > 0). (PID == 0) + (PID < 0).Not(PID >
0).Not(PID == 0)
Motor_in1= (Not (PID < 0) AND Not (PID > 0) AND (PID == 0)) OR((PID < 0) AND
Not(PID > 0) AND Not(PID == 0))
[62]
Design, Implementation and Digital Control of a Robotic Arm
Motor_in2 = Not (PID < 0).Not (PID > 0). (PID == 0) + Not (PID < 0). (PID >
0).Not(PID == 0)
Motor_in2= (Not (PID < 0) AND Not (PID > 0) AND (PID == 0)) OR(NOT(PID < 0)
AND (PID > 0) AND Not(PID == 0))
Then we adjust the enable signal to be PWM of the PID signal
The input to the enable is the absolute pulse-width modulated PID signal
The subsystem of voltage to PWM is as follows
The difference between a triangle signal and the input voltage, Vin is compared
to zero to represent the PWM
We set the frequency of the triangle signal to 25 HZ, the amplitude to 2.5 and
the offset to 2.5.
The outputs of the subsystem are then converted to Boolean by Data Type
Conversion block
The digital M_signals are then entered to the DAQ card using the Digital output
block from the Data-Acquisition toolbox with the pinout set as listed previously:
[63]
Design, Implementation and Digital Control of a Robotic Arm
Now we come to the part responsible for the feed-back of the system
Digital-Input block from the Data-Acquisition toolbox is used to read the
encoder’s signal, also pinout is set inside the block as listed previously:
The digital input from the DAQ card is then entered to the encoder reader
subsystem, the encoder reader block diagram is just an up-down counter:
[64]
Design, Implementation and Digital Control of a Robotic Arm
The counter subsystem counts the maximum count for the encoder
The gain block is responsible for the conversion of the count of the encoder disc
holes into the right angular displacement and outputs it in degrees. The block is
capable of up and down counting using a selection signal (updown). This is done
using two up counter blocks but only one of them works at a time. The final
result of counting is the difference between the two counters. The following
figure shows the configuration of the counter for the first motor (4 slots for
encoder disc and 100:1 gearbox ratio)
[65]
Design, Implementation and Digital Control of a Robotic Arm
the following model is ‘MOTOR_CONTROLLER’, this model is used for the direct
signaling to the driver circuit for the purpose of testing, the following
configuration shows a break order passed to the driver circuit.
0 0 0 Stop
0 1 1 Stop
1 1 0 Rotate CW
1 0 1 Rotate CCW
1 1 1 Break
1 0 0 Break
Table 4.7
[66]
Design, Implementation and Digital Control of a Robotic Arm
Grippers are the part of the robot that interacts with the environment. The structure of
an end effector and the nature of the programming and hardware that drives it depend
on the task the robot will perform. They are end used to grasp or manipulate objects
during the work cycle. The objects are usually work parts that are moved from one
location to another in the cell. Owing to the variety of parts, shapes, sizes, and weights,
most grippers must custom designed. Types of industrial robot applications can be
mechanical, vacuum, magnetized, adhesive, or just simple mechanical devices such as
hooks.
In our robotic system we designed a gripper that opens and closes as requested to
hold a required object, it is controlled using a programmable IC (PIC) that determines
the time the gripper need to open or close to hold an object. Figure 5.1 shows the
system's gripper. The gripper is actuated using a bipolar stepper motor controlled
using the L923D motor driver
[67]
Design, Implementation and Digital Control of a Robotic Arm
[68]
Design, Implementation and Digital Control of a Robotic Arm
Using the PROUTUS software we minimized the size of the circuit and obtain the best
routing configuration for the connection and then we implemented it on a printed
circuit board (PCB) as shown in figure 5.3
The input is entered from MATLAB work space by calling the functions
“Close_Grip” or “Open_Grip”,
function Open_Grip()
sim('Grip', [0 0.1], [],[0 true true]);
% This command calls the model ‘Grip’
% the start time of the inputs must be determined first when
% multiple
[69]
Design, Implementation and Digital Control of a Robotic Arm
function Close_Grip()
sim('Grip', [0 0.1], [],[0 true false]);
% This command calls the model ‘Grip’
% the start time of the inputs must be determined first when
% multiple
% inputs are specified
end
The zero-order hold block is used to sample the input and convert it to digital
signal.
Then we used data type conversion block to specify the Boolean data type for
the signal that will enter to the DAQ card.
[70]
Design, Implementation and Digital Control of a Robotic Arm
void main()
{
int banned1,banned2,i1,i2;;
banned1=0;
banned2=0;
i1=0;
i2=0;
setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1);
SET_TRIS_B(0b00000000);
SET_TRIS_A(0b11111111);
OUTPUT_B(0b10000000);
delay_ms(1000);
OUTPUT_B(0b00000000);
delay_ms(1000);
OUTPUT_B(0b10000000);
delay_ms(1000);
OUTPUT_B(0b00000000);
delay_ms(1000);
while(true)
{
if(input(PIN_A1))
{
[71]
Design, Implementation and Digital Control of a Robotic Arm
if(input(PIN_A0))
{
if(banned1==0)
{
i1++;
if(i1==COUNT)
{
i1=0;
banned1=1;
banned2=0;
}
OUTPUT_B(0b00001100);
delay_ms(30);
OUTPUT_B(0b00000110);
delay_ms(30);
OUTPUT_B(0b10000011);
delay_ms(30);
OUTPUT_B(0b00001001);
delay_ms(30);
}
}
else
{
if(banned2==0)
{
i2++;
if(i2==COUNT)
{
i2=0;
banned1=0;
banned2=1;
}
OUTPUT_B(0b00001001);
delay_ms(30);
[72]
Design, Implementation and Digital Control of a Robotic Arm
OUTPUT_B(0b00000011);
delay_ms(30);
OUTPUT_B(0b10000110);
delay_ms(30);
OUTPUT_B(0b00001100);
delay_ms(30);
}
}
}
else
{
banned1=0;
banned2=0;
i1=0;
i2=0;
}
}
}
[73]
Design, Implementation and Digital Control of a Robotic Arm
The digital camera is connected to the computer through a USB connection; the
computer receives the acquired image from the camera as an input for specified
software which identifies the objects according to their shape and color, the program
also outputs the center of the required objects which is taken as an input for the rest
of the control program.
The arm's position control program takes the location of the objects and converts it to
specific angles that each link in the arm should move so that it can be able to hold the
object to move it to another position or location. In this system we use the MATLAB
image processing toolbox to process the acquired image.
[74]
Design, Implementation and Digital Control of a Robotic Arm
Image
Acquisition
Image
Thresholding
Noise
Cleaning
Object counting
and recognition
Locating the
object's center
Color
Recognition
[75]
Design, Implementation and Digital Control of a Robotic Arm
The image can be an image that is already saved on the computer, and it can
be acquired by using the matlab command:
F=imread(‘image.jpg’)
• From camera
The image can be acquired from reality by using a web digital camera
connected to the computer and is managed by commands from the MATLAB
program; the image can be just a snapshot or a video that is divided into
frames where each frame is treated as a single image.
In our system we use the second method for acquiring the required image, by
using the getsnapshot MATLAB command the camera captures an image of
the arm's workspace and sends it to the rest of the software for the rest of the
processing. Figure 6.1 show an example of the image that can be acquired by
the camera.
[76]
Design, Implementation and Digital Control of a Robotic Arm
• Thresholding
Image thresholding converts the colored RGB image to a black and white image
in order to prepare it for boundary tracing using bwboundaries MATLAB
command. Figure 6.2(a,b) shows an example of the gray and binary image.
[77]
Design, Implementation and Digital Control of a Robotic Arm
Noise cleaning
Using morphology functions, remove pixels which do not belong to the objects of
interest. It remove all object containing fewer than 20 pixels, fill any holes, so
that regionprops can be used to estimate the area enclosed by each of the
boundaries.
Training method
This is done by entering the required patterns in a database so that the program
can compare it with the objects in the image and identify the required objects,
the objects in the image should be of the same shape and size if the specified
shaped so it can be identified.
• Decision theoretic method
It deals with patterns that are described using quantitative descriptors, such as,
area, length, and texture.
• Structural method
It deals with patterns that are best represented by symbolic information, such
as strings, and described by the properties and relationships between those
symbols.
• Some customized equations or function.
[78]
Design, Implementation and Digital Control of a Robotic Arm
For displaying the label matrix and drawing each boundary we use the following
command
imshow(label2rgb(L, @jet, [.5 .5 .5]))
[79]
Design, Implementation and Digital Control of a Robotic Arm
The term connected components (objects) is defined in terms of a path and the
definition of a path in turn depends on adjacency. This implies that the nature of
connected components depends on the form of adjacency we choose.
By using the MATLAB function bwlabel we can define all connected components
(objects) in a binary image, it returns the number of objects present in the image and
gives a numerical label for each object, as shown in figure 6.4
[l,n]=bwlabel(f,conn)
[80]
Design, Implementation and Digital Control of a Robotic Arm
[r,c]=find(L=3)
Computing the average value (mean) of the rows and columns allows us to find the
center of the objects
Rbar=mean(r)
cbar=mean(c)
By estimate each object's area and perimeter we can form a simple metric that
identifies the roundness of an object:
metric = 4*pi*area/perimeter^2.
This metric is equal to one only for a circle and it is less than one for any other shape.
The discrimination process can be controlled by setting an appropriate threshold. In this
example use a threshold of 0.70 so that only the pills will be classified as round.
By using regionprops command we estimate the area for all of the objects.
[81]
Design, Implementation and Digital Control of a Robotic Arm
Fig. 6.5
close all;
% Image Aquisition
vidobj = videoinput('winvideo');
f=getsnapshot(vidobj);
subplot(3,3,1),subimage(f)
title('Org. Image')
[82]
Design, Implementation and Digital Control of a Robotic Arm
% Gray Image
I = rgb2gray(f);
subplot(3,3,2),subimage(I)
title('Gray. Image')
% Binary Image
%threshold=graythresh(I);
bw=im2bw(I,0.5);
% remove all object containing fewer than 30 pixels
bw = bwareaopen(bw,20);
subplot(3,3,3),subimage(bw)
title('Binary Image')
[c,n] = center(bw);
count=1;
for k=1:n
row = c(k,1);
col = c(k,2);
if(m>=210)
Red_crcls_centers(count,1)=row;
Red_crcls_centers(count,2)=col;
count=count+1;
end
end
[83]
Design, Implementation and Digital Control of a Robotic Arm
for k=1:n
%computing the center of the object
[r,c]=find(L==k);
rbar=mean(r);
cbar=mean(c);
Centers(k,1)=round(rbar);
Centers(k,2)=round(cbar);
end
[B,L] = bwboundaries(bw,'noholes');
threshold = 0.94;
[84]
Design, Implementation and Digital Control of a Robotic Arm
text(boundary(1,2)-35,boundary(1,1)+13,metric_string,'Color','y',...
'FontSize',14,'FontWeight','bold');
end
[85]
Design, Implementation and Digital Control of a Robotic Arm
The following image shows the workspace of the robotic arm. Small red ball is placed
inside a yellow rectangle. The yellow rectangle represents the area that is visible to
the webcam. The image processing procedure is applied to this area only. Any other
place outside this area is not visible to the vision system.
[86]
Design, Implementation and Digital Control of a Robotic Arm
Fig. 7.4
The red ball is detected by our circle recognition algorithm and the marked in the
image by a black rectangle.
[87]
Design, Implementation and Digital Control of a Robotic Arm
And the following image shows the pinout board connected to our driver circuit:
[88]
Design, Implementation and Digital Control of a Robotic Arm
Fig. 7. 5
[89]
Design, Implementation and Digital Control of a Robotic Arm
[90]
Design, Implementation and Digital Control of a Robotic Arm
gui_Singleton = 1;
gui_State = struct('gui_Name', mfilename, ...
'gui_Singleton', gui_Singleton, ...
'gui_OpeningFcn', @RA_GUI_OpeningFcn, ...
'gui_OutputFcn', @RA_GUI_OutputFcn, ...
'gui_LayoutFcn', [] , ...
'gui_Callback', []);
if nargin && ischar(varargin{1})
gui_State.gui_Callback = str2func(varargin{1});
end
if nargout
[varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});
else
gui_mainfcn(gui_State, varargin{:});
end
% End initialization code - DO NOT EDIT
% --- Outputs from this function are returned to the command line.
function varargout = RA_GUI_OutputFcn(hObject, eventdata, handles)
% varargout cell array for returning output args (see VARARGOUT);
% hObject handle to figure
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
[91]
Design, Implementation and Digital Control of a Robotic Arm
r=create4DOFManipulator(L1,L2,L3,0,0,0,0);
axes(handles.axes_robot)
plot(r,[0 0 0 0 0])
x=str2num(get(handles.edit_x,'String'))*30/240;
y=str2num(get(handles.edit_y,'String'))*40/320;
z=str2num(get(handles.edit_z,'String'));
L1=str2num(get(handles.edit_l1,'String'));
L2=str2num(get(handles.edit_l2,'String'));
L3=str2num(get(handles.edit_l3,'String'));
r=create4DOFManipulator(L1,L2,L3,0,0,0,0);
[92]
Design, Implementation and Digital Control of a Robotic Arm
T=transl(x_real,y_real,z_real);
set(handles.edit_th1,'String',num2str(rad2deg(angles(1))));
set(handles.edit_th2,'String',num2str(rad2deg(angles(2))));
set(handles.edit_th3,'String',num2str(rad2deg(angles(3))));
set(handles.edit_th4,'String',num2str(rad2deg(angles(4))));
axes(handles.axes_robot)
plot(r,angles)
[93]
Design, Implementation and Digital Control of a Robotic Arm
r=create4DOFManipulator(L1,L2,L3,0,0,0,0);
figure, plot(r,[0 0 0 0 0])
function Move_M2_PID(angle)
sim('M2_PID', [0 100], [],num2str(angle));
sim('m2', [0 0.1], [],'0');
end
function Move_M3_PID(angle)
sim('M3_PID', [0 100], [],num2str(angle));
sim('m3', [0 0.1], [],'0');
end
function Move_M4(angle)
sim('M4', [0 100], [],num2str(angle));
end
[94]
Design, Implementation and Digital Control of a Robotic Arm
Achieved goals
The following points are the project goals the we were able to achieve successfully,
[95]
Design, Implementation and Digital Control of a Robotic Arm
Problems
The following points are the problems that faced us during the design and
implementation the project,
We build the entire project prototype ourselves from light wood so it can be
easily handled but this lead to some problems due to its weakness and instability
in its motion.
In controlling the system there was a problem in the second joint as the motor
torque barely enough to hold the rest of the arm causing this joint to be weak
when it moves.
In the image acquisition part there was a problem due to difference in the light
above the workspace.
Applying mobility
Model identification
On-line tuning
Real time operation
Image processing
[96]
Design, Implementation and Digital Control of a Robotic Arm
Applying mobility
Applying mobility to the system changes it from being a position fixed robotic arm to a
mobile arm, the mobility increases the arm's workspace from a fixed limited workspace
to an unlimited workspace. Mobility provides the arm with the ability to move freely in
the place where it should operate. For the system to be converted from a fixed robotic
arm to a mobile robotic arm some changes and updates should be made, these changes
are as follows:
[97]
Design, Implementation and Digital Control of a Robotic Arm
System weight
For a mobile arm to be used in areas such as offices and houses, it is desirable that
the mobile platform be small sized. In the case of a small-sized platform, the mobile
manipulator may tip over when moving at high speed or executing tasks in the
presence of disturbances. Therefore, it is necessary to simultaneously consider both
stabilization and manipulation while coordinating vehicle motion and manipulator
motion.
Batteries
The mobile arm should be powered using batteries instead of power supplies so it
can move freely in its workspace.
Model identification
For better performance and increased accuracy the motors' modeling parameters can
be obtained through the computer instead of being measured by hand, this gives more
accurate values of the parameters so that the model kinematics can be calculated and
designed correctly.
Image processing
• Using live video image acquisition
Using video image acquisition instead of acquiring only one image provides a better
method for monitoring the workspace; it makes the system capable of tracing
moving objects and also capable of noticing any changes in the workspace.
[98]
Design, Implementation and Digital Control of a Robotic Arm
[99]
Design, Implementation and Digital Control of a Robotic Arm
REFRENCES
Books and E-Books
[1] Sellers, David. "An Overview of Proportional plus Integral plus Derivative
Control and Suggestions for Its Successful Application and Implementation",
1998.
[2] MOTORS.pdf, “Measuring DC Motors Parameters”, METU ROBOT SOCIETY
[3] PID Tutorial, http://saba.kntu.ac.ir/eecd/pcl/download/PIDtutorial.pdf
[4] http://www.toshiba.com/ind/data/tag_files/Q9_Process_PID_Application_Note_4
125.pdf
[5] NI PCI DAQ Manual
[1] http://www.societyofrobots.com/
[2] http://www.engin.umich.edu
[3] Giandomenico De Sanctis, [http://gidesa.altervista.org/roboticarm.php]
[4] http://www.controleng.com/article/CA307745.html.
[5] http://web.archive.org/web/20050206113949/www.tcnj.edu/~rgraham/PID-
tuning.html. Retrieved on 2009-01-05.
[6] Video Tutorials:
http://www.youtube.com/view_play_list?p=65CC0384A1798ADF
[100]
Design, Implementation and Digital Control of a Robotic Arm
[101]
Design, Implementation and Digital Control of a Robotic Arm
[102]
Design, Implementation and Digital Control of a Robotic Arm
Graphs
Plot 4.1 << PV vs. time, for >> << page 39 >>
Plot 4.2 << PV vs. time, for >> << page 40 >>
Plot 4.3 << PV vs. time, for >> << page 42 >>
Plot 4.4 <<step response>> << page 55 >>
Plot 4.5 << continuous PID optimization>> << page 56 >>
Plot 4.6 << continuous PID system respons>> << page 57 >>
Plot 4.7 << discrete PID optimization>> << page 59 >>
Plot 4.8 << discrete PID system response >> << page 59 >>
[103]
Design, Implementation and Digital Control of a Robotic Arm
Nomenclature
Chapter.2
L Link
θ Angle of a Link
F Frame
W Weight of the Link
J Weight of Joint
G Weight of the End-Effector
M Weight of the Object That the Arm Will Lift
Chapter.3
Motor voltage constant
Motor torque constant
Motor resistance
Motor inductance
Motor inertia
Chapter.4
Motor torque
Back EMF voltage
Armature current
Proportional term of output
Integral term of output
Derivative term of output
proportional gain
Error
instantaneous time
integral term
derivative gain
critical gain
oscillation period
[104]
Design, Implementation and Digital Control of a Robotic Arm
Abbreviations
PWM Pulse Width Modulation
PID Proportional-Integral-Derivative
MV Manipulated variable
SP Set-Point
PV Process Variable
DAQ Data Acquisition
RGB Red Green Blue
DOF Degree of Freedom
[105]
Design, Implementation and Digital Control of a Robotic Arm
Total: 691
[106]
Design, Implementation and Digital Control of a Robotic Arm
Appendix-B: [Datasheets]
[107]