Robot Specifications
Dr. Ashish Dutta
Professor, Dept. of Mechanical Engineering
Dean, Digital Infrastructure and Automation
Indian Institute of Technology Kanpur,
Kanpur 208016, INDIA
Errors that are inherent in a robot – There is
nothing exact in the real world!
Control system – encoder least count, numerical
errors, noise, etc.
Memory size – 16 bit, 32 bit, 64 bit ?
Mechanical – Tolerance, gear backlash, stiffness,
friction, etc.
Temperature, operating conditions,
Wear and tear
Others ?
Memory ??
Errors!
Encoder
Gear
Shaft Flexibility
PD controller ???
Resolution, Accuracy and Repeatability
Control resolution: smallest incremental
change that the control system can distinguish.
Spatial resolution: considering mechanical
inaccuracies and sensor noise then it’s the
worst case distance between two adjacent
positions.
Accuracy : measure to approach an
arbitrary point in space , previously never
approached.
- Mechanical errors and control resolution.
- Accuracy is equal to half the control
resolution.
Repeatability: ability of a manipulator to
position it self at a position previously
taught.
- Wear and tear, temperature, stiffness,
direction of motion, speed of motion etc.
Evolution of human hand.
Small or long fingers ?
Robot Programming
Dr. Ashish Dutta
Professor, Dept. of Mechanical Engineering
Coordinator, Center for Mechatronics
IIT Kanpur, INDIA
General structure of robot
hardware
Mechanical hardware : arms, motion
transmission, gripper.
Robot Control unit: robot controller, motors,
sensors, power amplifiers, ADC/DAC.
Central controller for interfacing robot with
other machines etc.
Using a robot:
Teach pendent: used to manually teach
different points that are recorded in the robots
memory. These points can then be played
back. e.g. tasks requiring human skills e.g.
welding, etc.
Program based control:The desired task is
written as a sequence of motions in a
language such as VAL. These motions can
then be played back.
Three generations of programming
languages
First generation: Simple commands for pick and
place operations, with limited interaction with limit
switches (ON/OFF), stops etc.
Second generation: Interaction with the
environment using force, touch, ADC/DAC, etc.
Third generation: Intelligence capability to
understand general commands e.g. ‘tighten a nut’
Examples of a few programming
languages:
VAL : Victors Assembly Language (1960).
Developed by Unimation for the PUMA robot.
AML : Developed by IBM for manufacturing
automation systems (1960).
RPL : based on FORTRAN Language (1960).
Basic commands in VAL II
Constants, variables, data objects
Motion control commands.
Robot Hand control.
Program control and input/output control.
Variables, Motion Control
POINT P1 = 3, 4, 5, 30, 45, 50
(x, y, z, Ɵ, α, Ɣ)
MOVE P1
MOVES P1
DRAW 45, 56, 60
APPRO P1 50 (along z axis)
DEPART P1 50 (along z axis)
APPROS or DEPARTS APPRO or DEPART
MOVE and MOVES
Straight line motion between two points
requires more energy ?
• Energy required is
proportional to the number
of joints that move to take
the end effector from one
point to another.
Hand Control
OPEN and CLOSE
OPENI and CLOSEI
CLOSEI 75 in VAL
Why two commands OPEN and
OPENI?
Speed control, Pause
SPEED 60 IPS
DEFINE PATH1=PATH(A1,A2,A3)
PAUSE Time (milli secs)
In – line robot cell
Pick from conveyor and place on table
Table : Parts to be placed in each
square : INDEXING
Robot centered cell –
sequencing - dead lock
Communication with Simple ON/OFF
sensors
Proximity : ultrasonic, hall effect, conductive
sensors.
Limit switches.
ON +5 V
OFF 0 V
Program Control, Interlock Commands and
GOTO 20
GOSUB and RETURN
IF THEN ELSE
PAUSE
PROCEED
ON/OFF Type communication based on high (+5V) / low (0V)signals
SIGNAL 2,-3
IFSIG 2,-3 THEN
WAIT SIG (-1, 2)
RESET turns off all external signals
ON 2
OFF 3
RESET
What Is Data Acquisition?
What Is Data Acquisition?
The process by which phenomenon in the
real world can be translated and manipulated
by a computer-readable signals.
This physical phenomenon could be the force
applied to an object, temperature of a room,
the pressure inside a chamber and many
other things.
There are some components to be
considered when building a basic
DAQ system
• Transducers and sensors
• Signals
• Signal conditioning
• DAQ hardware
• Driver and application software
Sensors/Transducers
A sensor is a device that responds to a physical
stimulus (as pressure, temperature, light, sound, or
a particular motion) and transmits a resulting
impulse (a signal relating to the quantity being
measured). A sensor normally also has some
signal conditioning circuit.
A transducer is a device that is actuated by power
from one system and supplies power usually in
another form to a second system. For example a
loudspeaker.
Analog Signals
• An analog signal is a continuous signal that can
be at any value with respect to time.
e.g. analog signals include voltage,
temperature, pressure, sound, and load.
• The three primary characteristics of an analog
signal include level, shape, and frequency.
· level
· shape
· frequency
Digital Signals
• An analogue signal sampled at a particulate
frequency results in a digital signal.
• A digital signal has values only at certain
instants of time (at which it is being sampled).
ON/OFF type of digital signal
ADC / DAC
ADC : Analogue to digital converters.
Temperature, force signal converted to digital
signal for a computer to read.
DAC : Digital to analogue converters.
Digital voltage converted to analogue voltage.
Robots use ADC to convert forces, distance,
etc from analogue to digital value.
Input / output control
IOPUT and IOGET
SIGNAL
ADC / DAC
ADC1= SENSOR 1
DAC1= CONST
DAC1= 3 + CONST
VAR 1 = ADC (1)
Computation and operations
SIN(A)
COS(A)
SQRT(A)
EQ, NE, GT …
Using a robot:
Teach pendent: used to manually teach
different points that are recorded in the robots
memory. These points can then be played
back. e.g. tasks requiring human skills e.g.
welding, etc.
Program based control:The desired task is
written as a sequence of motions in a
language such as VAL. These motions can
then be played back.
Computer integrated
manufacturing
Lead through teaching
Program
example
PROGRAM DEPALLET 1
REMARK CORNER AND CHUTE LOCATIONS ARE TAUGHT
SETI MAXCOL=4
SETI MAXROW=3
SETI ROW =1
SETI COLUMN=1
SET PICK =CORNER
SHIFT PICK BY 20.00,-20.00, 60.00
OPENI
10 MOVE PICK
DRAW 0, 0, - 25.00
CLOSEI
DRAW 0, 0, 25.00
MOVE CHUTE
OPENI
GOSUB PALLET
IF ROW LE MAXROW THEN 10
END
Program Contd.
PROGRAM PALLET
SETI COLUMN = COLUMN + 1
IF COLUMN GT MAXCOL THEN 20 SETI COLUMN = 1
SHIFT PICK BY 50.00, 0.00, 0.00 30 RETURN
GO TO 10
20 SETI ROW = ROW + 1
IF ROW GT MAXROW THEN 30
SHIFT PICK BY – 150.00, -30.00, 0.00
In – line robot cell
Pick from conveyor and place on table
Table : Parts to be placed in each
square : INDEXING
Flexible manufacturing cell
Drop point
Sensor
to detect arrival of
part
Parts carousel
Simple Controller ?
Arduino is an open-source hardware which consists
of ATMEL microcontroller (ATmega 16/32) based
programmable circuit board and a easy to use
Software IDE (Integrated Development
Environment) that runs on a computer.
Arduino Pin
Diagram
Programing details: Port Pin Data Directionality
Input
When you want to take information from the external world
(sensors) into the MCU
Output
When you want to change the state of something outside
the MCU (turn a motor on or off, etc.)
Pins default to input direction on power-up
or reset
Your program can set or change the
directionality of a pin at any time
Pin Voltages
Microcontrollers are fundamentally digital
devices
Information is ‘coded’ in two discrete states:
HIGH or LOW (logic: 1 or 0)
Voltages
TTL
5 V (for HIGH)
0 V (for LOW)
3.3 V CMOS
3.3 V (for HIGH)
0 V (for LOW)
Digital I/0
Syntax
pinMode(pin, mode)
Sets pin to either INPUT or OUTPUT
digitalRead(pin)
Reads HIGH or LOW from a pin
digitalWrite(pin, value)
Writes HIGH or LOW to a pin (1 or 0)
analogRead(Pin)
analogWrite(Pin, Value), Value is between 0 to
255
Arduino Basic Coding Structure
<define global variables and include header files
here>
void setup()
{
< executed only once>
< define input/output mode for digital pins >
}
void loop()
{
<infinite loop>
<things like input from sensors, sending output etc.
>
}
LED blink Arduino Demo
Analog Out (PWM) Concept for motor
control
No facility exists on most microcontrollers to directly
output an analog voltage (i.e., a voltage that varies
continuously over the range of 0 to 5V)
Use Pulse Width Modulation (PWM) to approximate
Digital outputs are capable of 0V or 5V
Over a fraction (ton) of a time period tcycle, keep pin at 5V, the
rest of the time, at 0V
Average voltage is proportional to ton/tcycle, called the ‘Duty
Cycle’
Output voltage is averaged from
on vs. off time
DC Motor Interfacing (contd.)