Sistem Kontrol Manual dan Otomatis Robot
Endra Pitowarno
PENS ©2007
Low-level & High Level Control
Sensor Internal:
sensor posisi,
sensor kecepatan, dan sensor percepatan,
Sensor Eksternal:
sensor taktil (tactile), berbasis sentuhan: misalnya limit switch pada bemper robot, sensor force dan sensor torsi (torque sensor), sensor proksimiti, sensor jarak (sonar, PSD, dll), sensor vision (kamera), gyro, kompas digital, detektor api, dan
sebagainya.
Low-level & High Level Control
Perintah
Gerak Aktuator Lingkungan
Robot
Sensor Internal
Sensor Eksternal
Low-level Control
High-level Control
Kontroler
Kontrol Posisi
Perintah
Gerak Aktuator Lingkungan
Robot
Sensor Internal
Sensor Eksternal
Low-level Control
High-level Control
Referensi posisi yg selalu
berubah Posisi aktual tiap derajat
aktuator
Kontroler
Kontrol Posisi
Algoritma program (ex:
IF-THEN- ELSE)
Kontroler PID + Aktuator
Lingkungan Robot
Sensor posisi (rotary encoder)
Proximity sensor (ex: line
sensor)
Low-level Control
High-level Control
Referensi posisi yg selalu
berubah Posisi aktual tiap derajat
aktuator
Kontroler
Kontrol Posisi & Kecepatan
Perintah Gerak (posisi) &
Kecepatan
Lingkungan Robot
Sensor Internal (posisi &
kecepatan)
Sensor Eksternal
Low-level Control
High-level Control Kontroler
PID Aktuator
Referensi posisi &
kecepatan yg selalu berubah Posisi & kecepatan aktual tiap derajat aktuator
Kontroler
Kontrol ON/OFF
Kontrol ON/OFF
Driver Kontrol ON/OFF
Rangkaian Sistem Kontrol ON/OFF
Program Kontrol ON/OFF: PIC16F87
// Nama Program : RR_16F84A1.c - Author: epit - Date : 2002/04/24
#pragma PROC_CODE_WORD_VAL 0x3ff2
#pragma PROC_ID_VAL 0x01 0x02 0x03 0x04
#pragma PCLATH_LOC 0xa
#include "16F84.h"
# define TRUE 1
# define FALSE 0
// Definisi alamat I/O Port A & B int porta @ 0x5;
int portb @ 0x6;
int trisa @ 0x85;
int trisb @ 0x86;
int dataIN;
int count;
Program Kontrol ON/OFF: PIC16F87
pause(t) long t;
{
unsigned int d;
while( t ) {
for(d = 0 ; d < 255 ; d++ );
t--;
}
} // end pause main()
{
trisa = 0;
trisb = 0;
start_position();
pause(10);
run();
for(;;){portb = 0x00;}
}
Program Kontrol ON/OFF: PIC16F87
void start_position() {
portb = 0xcf;
for(;;)
{ dataIN = porta & 0x03; if (dataIN != 0x03) return; } }
void run() {
count = 0;
for(;;) {
dataIN = porta & 0x80; // cek untuk bumper limit swtich if (dataIN == 0x00) {portb = 0x00; pause(100); return;}
dataIN = porta & 0x83; // cek untuk x---xxB Port A if (dataIN == 0x80) portb = 0x00;
if (dataIN == 0x81) portb = 0x02;
if (dataIN == 0x82) portb = 0x01;
if (dataIN == 0x83) portb = 0x03;
} }
Kontrol Linier: Kecepatan
(kontrol Proportional)
Kontrol Linier: Kecepatan
(kontrol Proportional-Integral)
Kontrol Linier: Kecepatan
(kontrol Proportional-Integral-Derivative)
Skema ekivalen Motor DC Servo
dengan kontrol kecepatan
Motor DC Servo dengan kontrol
kecepatan
Studi Kasus: kontrol posisi &
kecepatan
Fungsi Aktuator
• Penghasil gerakan (torsi)
• Gerakan rotasi (motor based) dan
translasi (solenoid, hidrolik & pneumatik)
• Mayoritas aktuator > (DC) motor based
• Aktuator dalam simulasi cenderung dibuat linier
• Aktuator riil cenderung non-linier
Aktuator dalam perspektif Kontrol
• Aktuator: pintu kendali ke sistem
• Aktuator: pengubah sinyal listrik (arus, I) menjadi besaran mekanik (torsi) >> Torsi
= I x Ktn; Ktn = konstanta motor/aktuator
• Batasan aktuator riil: sinyal kemudi terkecil
(mulai bergerak), saturasi (arus membesar
namun torsi tetap)
Berbagai macam Aktuator:
VEXTA MOTOR
Berbagai macam Aktuator:
Geared DC Motor
Berbagai macam
Aktuator: Servo Motor
Artificial Muscle
Aplikasi (RC) Servo Motor
Sistem Kontroler
Sistem Aktuator
Mekanik Robot
Sistem
Roda Sistem
Kaki Sistem Tangan
Untuk Navigasi
(gerak berpindah) Untuk Manipulasi (gerak penanganan)
• Mengikuti jalur
• Berdasarkan obyek statik atau bergerak (menuju obyek, menghindari obyek/halangan) berbasis vision, proximity, dll.
• Berdasarkan urutan perintah (referensi trajektori)
Ujung tangan (posisi TIP):
• Mengikuti referensi trajektori
• Mengikuti obyek (berbasis vision, proximity, dll.)
• Memegang, mengambil, mengangkat, memindah atau mengolah obyek
Sensor Aktuator
Real world
Mata Kamera Mata
Kamera
Sistem Robot
Sistem Robot
dan orientasi
fungsi
Sistem Robot dengan kontroler berbasis prosesor
Rangkaian prosesor
(CPU)
Robot Sensor
Aktuator Analog dan atau Digital
Analog dan
atau Digital
Kontroler berbasis prosesor dengan user interface
Rangkaian prosesor
(CPU) 1/0
analog
sistem bus (shaft encoder,
vision)
1/0
analog Keypad/
keyboard
Monitor (LCD, CRT, etc.)
Wireless communications (blue tooth, Wi-Fi, etc.)
Sistem Kontrol Robotik
(kontrol robot loop terbuka/tertutup)
Kontroler Robot
Referensi Gerak
Robot
Referensi Gerak
Kontroler
Hasil Gerak sesungguhnya
(dibaca oleh sensor)
Gerak aktual +
-
Error = Gerak referensi – Gerak aktual
Teori Dasar:
Penggunaan Transformasi Laplace
∫
∞ −=
0( ) )}
(
{ f t f t e dt
L
stjika L
{
x(
t)} =
X(
s)
maka L{x&(t)}= sX(s) L{x&&(t)}= s(sX(s))
percepatan/akselerasi
s 1 s
1
kecepatan posisi
) (t
x && x & (t ) x (t )
s(s X(s)) s X(s) X(s)
Contoh: Robot Tangan Satu Sendi
Robot (lengan tunggal)
Aktuator (Motor DC)
Sensor posisi (potensiometer)
θ
X Y
+ -
Error = θref – θact
Amplifier
s 1 s
Sendi 1 Robot
Motor DC θ&&act θ&act θact
θref
Sistem Robot
τ
I
Ktn Kontrol
Sistem Kontroler
act
∆ t
= ∆ θ θ &
act
∆ t
= ∆ θ
θ && &
Metoda Kontrol Klasik (P)
H(s)
r + Kp y
-
e u
e Kp
u = ⋅
Metoda Kontrol Klasik (I)
H(s) r
s
Ki
y+
-
e u
Ki dT
T e t
u
t⎥⎦ ⎤
⎢⎣ ⎡
= ∫ 0 ( )
)
(
Metoda Kontrol Klasik (P-I)
H(s) r
s Ki
+ y
-
e u
Kp
+
+
s Kp Ki
s
G ( ) = +
Metoda Kontrol Klasik (D)
H(s)
r + s ⋅Kd y
-
e u
e Kd
u = ⋅ &
t Kd e
u ∆
⋅ ∆
=
Metoda Kontrol Klasik (P-I-D)
H(s) r
Kd s ⋅
+ y
-
e + u
+
Kp
s
Ki +
Penggunaan Kontrol Cerdas
Sistem Robot
r Kontroler
berbasis AI
+ y
-
e u
• AI & Terminologi:orang pertama > Alan Turing (1937)
• Neural Network: Warren McCulloch (1943)
• Teori Fuzzy: Lukacewick (1930an)
• Fuzzy Sets: Lotfi Zadeh (1965)
• Genetic Algorithm: Teori Darwin
• Konsep GA dalam Evolutionary Computation (EC): Holland (1975)
Motor DC magnet permanen
R L
V
aI
aV
bθ ω τ , ,
bω
a a
a RI K
dt L dI
V = + +
] [
) (
) (
b tn eff
eff
tn a
L
K K f
R J
sR s
nK s
V s
+
= +
θ
Fungsi transfer open loop Motor DC magnet permanen
Va(s)
+
- sL+R
1
eff
eff f
sJ + Ktn 1
s 1
Kb
θ(s) sθ(s)
(s)
] [
) (
) (
b tn eff
eff
tn a
L
K K
f R J
sR s
nK s
V
s
+
= + θ
Ia(s) 1
) (s − Ktn H
s
1 θ(s) sθ(s)
(s)
Motor DC Servo
Motor DC-MP Kecepatan
Referensi, θ&ref
Kontrol PID +
-
Kecepatan aktual, θ&act Motor DC Servo dengan kontrol kecepatan
Skema ekivalen Motor DC Servo dengan kontrol kecepatan
Motor DC Servo dengan kontrol kecepatan
Tegangan Supply DC (misal 0÷24V)
θ &
refRangkaian Driver
θ &
act+ -
- +
Vref(+) Vref(-)
RC Servo
Arah piringan
Servo -120º s/d +120º 0º
RC Servo Sinyal Tegangan Input PWM
Prinsip kerja RC Servo
Teknik Pulse Width Modulation
Tegangan PWM Tegangan ekivalen linier
V
t t
=
=
=
0V Vsat
Prinsip kerja PWM
Sebuah rangkaian pembangkit PWM lengkap dengan driver H-bridge untuk motor DC-MP/DC-SV
+5V
1K2
74HCT245
.01 Gnd
Trg Out Rst Ctl
Thr Dis Vcc
20K
+
-
+
-
+
-
+
- +
- 74HCT245
74HCT245
74HCT04
¼ LM324
¼ LM324
¼ LM324 ¼ LM324
¼ LM324
¼ LM324
+12V +12V +12V
+12V +12V
1K2 1K2
1K2 1K2
1K2
2K2
2SD1314 BD643 BD643
BD643 BD643
BD643
BD643
2SD1314 2SD1314
2SD1314 2SD1314
1K2
LM555
.01
+(12÷24)V
M
1K2
+12V 20K
(0÷5)V
θ&ref
CW/CCW
1 2 3 4
8 7 6 5 1/0
M
Arah (1/0)
Kecepatan (0÷5)V
Driver Motor DC Berbasis
PWM (ep)
H-bridge
74HCT04