Professional Documents
Culture Documents
Trong d l con s nguyn biu din di dng 11 bit, tc khong thay i t
02047. Vi kt qu o c thc nghim trn th vin OpenNI, gi tr z bin thin
trong khong 0.56.0 mt v bn su n nh trong khong 0.55.0 mt. Do ,
gi tr d thc s bin thin trong khong t 4341030. Nh vy, trong khng gian t
00.5 mt pha trc Kinect, Kinect khng th a v bn su, y l mt
nhc im s c khc phc v cp n trong chng 7.
2.4 Mt s c tnh khc
Mt s c tnh khc ca Kinect ng quan tm: tiu c v gc m camera (field
of view), ngun cung cp v cng sut tiu th, mi trng hot ng. Kinect l sn
Chng 2: Tm hiu v Kinect
Trang 13
phm thng mi ca Microsoft nn cc thng s k thut chi tit khng c cng
b. Cc thng s c trnh by di y l kt qu o c thc nghim:
Tiu c, gc m IR camera v RGB camera:
Hai camera RGB v IR c t cch nhau 2.5 cm nn c cht khc nhau
khung hnh thu v t hai camera. m bo khung hnh RGB c th cha c
khung hnh IR, ngi ta thit k gc m ca RGB camera ln hn. iu ny cng dn
n tiu c ca RGB camera nh hn. Cc thng s trong bng 2.1 c o c bng
thc nghim:
Feature
RGB
camera
IR
camera
Field of View
(degrees)
Horizontal ~62
o
~58
o
Vertical ~48
o
~44
o
Diagonal ~72
o
~69
o
Focal length (pixels) 525 580
Bng 2.1: Gc m v tiu c ca RGB v IR camera [3]
Ngun cung cp v cng sut tiu th:
V Kinect cn nhiu in nng hot ng nn cng USB ca Xbox-360 khng
th p ng m phi qua mt cng chia chia thnh 2 kt ni ring l USB v kt ni
ngun, gip cho thit b kt ni vi Xbox-360 bng cng USB trong khi ngun in
cn cho Kinect l 12VDC c ly t adapter. Phin bn Xbox-360 mi s khng cn
adapter v n c cc AUX port c bit cung cp cho cng kt ni. Vi kt ni USB
ta hon ton c th cho Kinect giao tip vi my tnh. Cch thay adapter bng ngun
pin 12V dng trn mobile robot c ni thm phn ph lc 2.
Chng 2: Tm hiu v Kinect
Trang 14
Hnh 2.8: Kinect adapter
Cng sut tiu th o bng thc nghim:
Power consumption (idle) ~3.3W
Power consumption (active) ~4.7W
Bng 2.2: Cng sut tiu th trn Kinect [3]
Mi trng hot ng:
Kinect l thit b c thit k cho vic s dng mi trng trong nh (indoor).
mi trng ngoi tri, kt qu th nghim cho bn su khng chnh xc vo
thi im nh sng mnh, nhng cho kt qu chp nhn c khi nh sng yu (vo
thi im bui chiu ti).
Trang 15
Chng 3: Th vin x l nh
Ni dung chnh
3.1 Th vin h tr Kinect
3.2 So snh Kinect SDK beta v OpenNI
3.3 Point Cloud Library
Chng 3: Th vin x l nh
Trang 16
3.1 Th vin h tr Kinect
Ngay khi mi ra i, Kinect c quan tm bi rt nhiu nh pht trin phn
mm, khng ch trn mng pht trin game cho Xbox m cn trn mng x l nh ng
dng trong y hc, robot, mapping Do m nhiu th vin c vit cho Kinect ra
i. Cho n thi im hin ti, cc th vin ng ch l Libfreenect, Code
Laboratories Kinect, OpenNI v Kinect SDK beta.
Libfreenect:
Libfreenect [7] l th vin c pht trin bi OpenKinect, do mt cng ng
nhng ngi quan tm n phn cng Kinect vit ra v chia s. Cng ng
OpenKinect lm vic hon ton t nguyn v khng v mc ch li nhun, h pht
trin Libfreenect thnh mt m ngun m cho cc h iu hnh khc nhau Windows,
Linux v OS X. Hin ti, Libfreenect c ng gi cho vic s dng trn Python, C,
C++, C#, Java JNI, Java JNA, Javascript.
Code Laboratories Kinect:
Code Laboratories (CL) [8] l mt cng ty v phn mm chuyn h tr cc nh
pht trin, lp trnh vin khai thc cc tnh nng ca cc thit b x l nh. Trong s
Kinect khng phi l ngoi l, CL cung cp cho ngi s dng nhng tnh nng c bn
nht ca Kinect v camera, audio v motor.
OpenNI:
Th vin OpenNI [9] c xem l th vin mnh nht trc s c mt ca Kinect
SDK beta, th vin ny h tr a ngn ng trn nhiu platform khc nhau, gip cho
cc lp trnh vin c th vit cc ng dng trn Kinect rt d dng vi tng tc t
nhin Natural Interaction (NI). Mc ch chnh ca OpenNI l xy dng cc hm API
chun, cho php th vin c kh nng kt hp vi cc middleware nhm lm tng sc
mnh cho Kinect.
Kinect SDK beta:
Kinect SDK [10] beta c Microsoft a ra vo ngy 16 thng 6 nm 2011, l
mt cng c lp trnh mnh cho cc nh pht trin. N cho php lp trnh vin truy
xut ton b tnh nng ca thit b Kinect. Mt iu bt tin l th vin ny ch h tr
Chng 3: Th vin x l nh
Trang 17
trn cng c lp trnh ca Microsoft l Visual Studio 2010 vi cc ngn ng l C++,
C# v Visual Basic. Cc tnh nng ni bt nh: thu nh t cc sensor, skeleton tracking
v iu khin bng ging ni thng qua cng c nhn bit ging ni, Windows Speech
Recognition API. Phin bn beta hin ti ch cho php s dng vo nhng mc ch
phi li nhun, phin bn thng mi ha hn s sm ra mt trong nm 2012. Phin bn
beta mi nht c cp nht vo ngy 1 thng 11 nm 2011 vi nhiu li c sa v
chy tt trn Windows 8 Developer Preview.
Ti thi im hin ti, hai th vin OpenNI v Kinect SDK beta l la chn sng
sut cho vic lp trnh trn Kinect bi tnh nng h tr mnh m ca hai th vin ny.
Mc 3.2 s phn tch v so snh hai th vin ny v chn la th vin ph hp cho
ti lun vn.
3.2 So snh Kinect SDK beta v OpenNI
Sau y l nhn nh v u, khuyt im ca hai th vin trn [11] (lu l
Kinect SDK ang trong giai on beta nn s c vi im thay i ti bn chnh thc
cui cng)
Kinect SDK beta:
u im:
+ H tr x l m thanh.
+ H tr ng c iu khin gc ngng.
+ Skeleton tracking (bm c tnh c th ngi): khng cn hiu chnh trc
khi bm, vn bm tt trong trng hp c th ngi quay theo nhiu
hng.
+ H tr truy xut cc sensor ca Kinect ng thi.
+ Vic ci t n gin.
Khuyt im:
+ Ch dng cho mc ch phi thng mi.
+ Ch h tr bm ton th c tnh c th ngi (khng c ch hand
tracking hay bm tng phn c th nh trn OpenNI).
Chng 3: Th vin x l nh
Trang 18
+ Khng h tr nhn bit c ch.
+ Ch h tr trn Win7 (x86 v x64) vi i hi kh cao:
My tnh dual-core, tc 2.66 GHz hoc nhanh hn.
Windows 7 vi h tr ca DirectX 9.0 tr ln.
Ram ti thiu 2 GB.
Lp trnh trn Visual Studio 2010.
+ Khng h tr vic thu nh trc tip t IR camera.
+ Vng Kinect khng nhn thy trong khong 00.8 mt trc Kinect.
OpenNI:
u im:
+ Cho php xy dng cc ng dng thng mi ha.
+ H tr pht hin c ch.
+ Skeleton tracking: h tr bm tng phn c th ngi v hand tracking
thng qua lin kt vi cc middleware. Hn na, tiu th cng sut ca
CPU t hn so vi khi s dng Kinect SDK.
+ H tr truy xut cc sensor ca Kinect ng thi.
+ H tr cho Windows, Linux v Mac OSX.
+ Cho php truy xut hnh nh thu v t IR camera.
+ Vng Kinect khng nhn thy trong khong chp nhn c l 0.5 mt
trc Kinect.
Khuyt im:
+ Khng h tr phn x l m thanh cho dy microphone.
+ Skeleton tracking: bm c tnh c th cn nhiu li v cha c n nh
nh trn Kinect SDK.
+ Khng h tr ng c iu khin gc ngng (x l vn ny bng cht
th thut kt hp vi Code Laboratories Kinect, xem thm phn ph lc
1).
+ Vic ci t c phn ri rm hn Kinect SDK.
Chng 3: Th vin x l nh
Trang 19
Kt lun: Sinh vin cng c thi gian lm vic trn c hai th vin, nn c
nhng kt lun sau:
Kinect SDK beta mnh hn OpenNI c tnh bm c th ngi n nh hn, do
s p ng chnh xc vi cc c ch c th ngi; tuy nhin pht hin c ch ta
phi t vit gii thut trong khi trn OpenNI h tr sn. Ngoi ra, Kinect SDK hn
OpenNI phn h tr cho x l m thanh, cho php xy dng cc ng dng iu
khin bng ging ni d dng hn.
Hnh 3.1: Th vin OpenNI phi hp gia phn cng v ng dng u cui
OpenNI cho php thu bn su trong gii hn t 0.5 mt tr v pha trc
Kinect trong khi Kinect SDK th gii hn ny l 0.8 mt v pha trc, cht lng bn
su thu v trn hai th vin l nh nhau. Kinect SDK l th vin mi ra i ang
trong giai on beta v cng cha c s h tr ca cc th vin x l nh khc nh
Point Cloud. Trong khi OpenNI ra i trc v gn nh c tch hp vi th vin
x l nh Point Cloud. Do , vi ng dng Kinect trong ti robot t hnh trnh vt
Chng 3: Th vin x l nh
Trang 20
cn th OpenNI l la chn ti u hn. cng chnh l l do sinh vin chn th vin
OpenNI kt hp vi Point Cloud cho ti lun vn ny.
Ni n tm nhn xa hn th ta thy: v tnh ph bin, OpenNI c th pht trin
trn cc nn tng h iu hnh khc nhau v nhn c s ng gp ca cng ng
xy dng m ngun m rng ln; v chuyn kinh doanh, ta c th pht trin thnh cc
sn phm thng mi ha trn th trng trong rt nhiu lnh vc nh robot, y t, gio
dc, gii tr
Th vin h tr Kinect gip ta ly v chiu su nh v mt s c tnh c bit
khc (nh skeleton tracking, hand tracking, gesture recognition trn OpenNI); tn
dng ti u sc mnh ca n ta kt hp cng th vin x l nh trong khng gian 3D
l Point Cloud m s c cp trong mc 3.3.
3.3 Point Cloud Library
Hnh 3.2: Point cloud library logo
PCL [12] l th vin h tr cho n-D Point Cloud v cho vic x l nh trong
khng gian 3D. Th vin c xy dng vi nhiu gii thut nh lc (filtering), khi
phc b mt (surface reconstruction), phn vng (segmentation), c lng c tnh
vt (feature estimation), ... PCL c th dng trn nhiu platform nh Linux, MacOS,
Windows v Android. n gin cho vic pht trin, PCL c chia ra thnh nhiu
th vin nh v c th bin dch mt cch ring l. Phin bn mi nht l PCL 1.3 a
ra vo ngy 31 thng 10 nm 2011. PCL hon ton min ph cho vic nghin cu hay
pht trin cc sn phm thng mi ha.
Chng 3: Th vin x l nh
Trang 21
C th ni PCL l s kt hp ca nhiu module nh. Nhng module ny thc
cht cng l cc th vin thc hin cc chc nng ring l trc khi c PCL ng
gi. Cc th vin c bn ny l:
Eigen: mt th vin m h tr cho cc php ton tuyn tnh, c dng trong hu
ht cc tnh ton ton hc ca PCL.
FLANN: (Fast Library for Approximate Nearest Neighbors) h tr cho vic tm
kim nhanh cc im ln cn trong khng gian 3D.
Boost: gip cho vic chia s con tr trn tt c cc module v thut ton trong
PCL trnh vic sao chp trng lp d liu c ly v trong h thng.
VTK: (Visualization Toolkit) h tr cho nhiu platform trong vic thu v d liu
3D, h tr vic hin th, c lng th tch vt th.
CMinPack: mt th vin m gip cho vic gii quyt cc php ton tuyn tnh v
khng tuyn tnh.
Trang 22
Chng 4: Pht hin vt cn
Ni dung chnh
4.1 Cc phng php pht hin vt cn khng s dng camera
4.1.1 Dng cng tc hnh trnh
4.1.2 Dng cm bin siu m
4.2 Cc phng php pht hin vt cn s dng camera
4.2.1 X l nh vi mt camera (Monocular vision)
4.2.2 X l nh vi hai camera (Stereo vision)
4.3 Pht hin vt cn s dng Kinect
Chng 4: Pht hin vt cn
Trang 23
Vn pht hin v trnh vt cn l iu lun c cp ti cho robot t hnh.
Cng vi s pht trin ca cng ngh, ngy cng c nhiu cm bin tch hp gip
robot lm c iu ny n gin v chnh xc hn. Trc y, cc loi cm bin siu
m c dng rng ri; gn y, ngi ta quan tm n p dng cng ngh x l nh
nhiu hn. Sau y, ta im qua mt s phng php pht hin v trnh vt cn; nhn
nh u, khuyt im v la chn phng php ti u nht.
4.1 Cc phng php pht hin vt cn khng s dng camera
4.1.1 Dng cng tc hnh trnh
y l phng php n gin nht v t tn km.
Hot ng: cng tc hnh trnh c gn cho robot nh hnh 4.1, khi robot di
chuyn, nu chm chng ngi vt, tc ng cng tc, robot s nhn ra v r
hng khc.
Hnh 4.1: M hnh robot dng cng tc hnh trnh
u im: n gin, d thc hin, chi ph thp.
Khuyt im: robot phi va chm mi pht hin c chng ngi vt. Va chm
nhiu ln s d gy h hng v nh hng n nhng g robot ang ti.
4.1.2 Dng cm bin siu m [13]
y l mt phng php kh hiu qu v thng dng.
Hot ng: Cm bin s pht ra sng siu m vi gc m nht nh. Khi , nu
trong tm qut ca n pht hin chng ngi vt th sng siu m s phn hi li.
Ta c th o khong cch bng cch tnh thi gian t lc sng siu m pht ra n
Chng 4: Pht hin vt cn
Trang 24
lc thu sng v, sau kt hp vi vn tc sng siu m (khong 343 m/s) bit
c qung ng m sng i.
Hnh 4.2: Cm bin siu m
Cc cm bin c t lch mt gc , khong cch ln nht (tnh t D) m cc
cm bin c th nhn din c l dmax; dmax v phi m bo sao cho cm
bin c vng kim tra rng khi tin thng robot c th nhn din c vt
cn.
u im: x l nhanh, kt qu tng i chnh xc.
Khuyt im:
+ Cm bin siu m ch nhn bit c vt cn khi mt phng qut ca cm bin
ct ngang vt cn, do n s khng pht hin ra nhng vt cn nh, thp v
nm st mt t.
+ Do s dng sng siu m v s phn x ca n tnh khong cch v pht
hin vt cn nn gii thut iu khin kh phc tp v pht sinh mt s trng
hp sai s kh khc phc: sai s lp, hin tng Forecasting, hin tng c
cho (Crosstalk).
Sai s lp: sai s lp l sai s lun xy ra vi tt c cc thit b o lng,
trong c c cm bin siu m.
Hin tng forecasting: hin tng Forecasting l hin tng phn x gc
sai lch ca cm bin. Theo nguyn l TOF, c khong cch ng, cm
bin siu m phi hng vung gc vi b mt chng ngi vt cn o.
Tuy nhin, cc chng ngi vt khng bao gi l phng, mn nn tia phn
Chng 4: Pht hin vt cn
Trang 25
x c th khng tng ng vi gc ti. Cc chm tia phn x ny c nng
lng phn x thp hn. Tuy vy, mt khong cch no , cm bin
siu m vn c th ghi nhn c nhng tn hiu phn x ny. Kt qu l
thng s c v t cm bin siu m b lch do gc m ca cm bin siu
m ln.
Hnh 4.3: Hin tng Forecasting
Ngoi ra, v gc m rng nn khng ch sai v nhn dng v tr chng
ngi vt m khong cch ghi nhn cng b sai lch. Tuy nhin sai s ny
khng ng k nh sai s do hin tng c cho gy ra.
Hin tng crosstalk: hin tng c cho (Crosstalk) l hin tng m
cm bin siu m ny ghi nhn tn hiu phn x hoc trc tip t cm bin
siu m khc; hoc sau qu trnh sng siu m truyn i v phn x qua
cc b mt n quay li cm bin theo mt cch khng mong mun.
Hnh 4.4: Hin tng Crosstalk
Chng 4: Pht hin vt cn
Trang 26
4.2 Cc phng php pht hin vt cn s dng camera
4.2.1 X l nh vi mt camera (Monocular vision)
Phng php ny ch yu da trn cc phn tch mu sc hay s thay i do
chuyn ng ca cc khung hnh lin tip nhau; k thut x l nh n gin nhng ch
hiu qu trong mt s mi trng nht nh. Sau y l mt s phng php thng
c s dng: optical flow, edge detection, floor finder technique.
Optical Flow:
+ Phng php: l phng php trnh chng ngi vt nh vo quan st s di
chuyn ca phn t nh. Gii thut s tm nhng phn t nh c bit trong nh
ti mt frame no v quan st dch chuyn ca n frame tip theo. Vt
cng gn, dch chuyn cng ln.
Phng php ny chia th trng ca robot ra lm 2 phn tri, phi. Da vo gi
tr optical flow tnh c t 2 vng, ta s bit c chng ngi vt ang pha
no ca robot v ra lnh iu khin robot r trnh v hng lm gim gi tr
optical flow.
Hnh 4.5: Th trng ca robot vi optical flow
+ u im: Pht hin chng ngi vt khng ph thuc nhiu vo hnh dng vt.
+ Khuyt im:
Chng 4: Pht hin vt cn
Trang 27
Ch ti u i vi nhng vt c gc cnh, c nhiu im c bit. Gi s
nu gp mt bc tng trng, robot khng th phn bit c phn t no
l phn t tng ng khi xt t frame ny sang frame khc.
D b nhiu: nu nn c hoa vn hay ng vin s gy nhiu do camera
s bm theo cc phn t c bit trn nn. Ngoi ra, nhng vt trong th
trng ca robot phi ng yn, nu c vt chuyn ng xa nhng vn
trong th trng ca robot s lm tng optical flow khin robot nhm ln
ang c vt cn trc mt.
Tc x l chm do yu cu tnh ton nng.
Edge Detection [14]:
+ Phng php: phng php ny dng nhng k thut tch bin (nh Canny)
cho ta nh ch hin th ng bin ca vt th nh hnh 4.6. T gip ta phn
bit c nn v cc vt cn. Vt cn s l nhng vt c vin bao quanh, cn
nn l vng khng gian cn li.
Hnh 4.6: nh gc v nh sau khi tch bin
+ u im: x l nhanh, d tm ra vt cn tt, chnh xc.
+ Khuyt im: ch hot ng tt trong iu kin nn n sc v khng c hoa vn
hay ha tit.
Chng 4: Pht hin vt cn
Trang 28
Hnh 4.7: Hn ch ca phng php d bin
Floor Finder Technique [14]:
+ Phng php: phng php ny da trn mu sc ca cc im nh, nhng
im nh khng trng mu vi mu nn th c xem l vt cn. Ta gi nh
vng khng gian nh trc mt robot l khng c vt cn. Bng cch ly gi tr
mu sc cc im nh trong vng ny, ta c mt tp mu mu sc ca nn.
So snh gi tr mu ca tng im nh cn li trong hnh vi tp mu ny ta s
xc nh c im nh no thuc v nn, im nh no thuc v vt cn.
Hnh 4.8: Phng php d nn
+ u im: n gin, hiu qu, pht hin vt cn chnh xc, khng ph thuc vo
hnh dng v kch thc ca vt cn. ng thi, tc x l nhanh do yu cu
tnh ton khng nhiu.
Chng 4: Pht hin vt cn
Trang 29
+ Khuyt im: nh cc phng php dng x l nh khc, do s dng mu sc
nhn bit nn d nhm ln gia bng trn sn v vt cn do bng c mu
sc khc vi nn. Bn cnh , nu vt c cng mu vi nn th phng php
ny khng t hiu qu cao.
4.2.2 X l nh vi hai camera (Stereo vision)
Hn ch ca phng php s dng mt camera n t s nh hng ca mu sc
hay ha tit mi trng phc tp. cng l hn ch chung ca x l nh trong khng
gian 2D cho robot t hnh trnh vt cn. Bng vic s dng t hai camera tr ln ta thu
c y hn thng tin t mi trng, nh vy m nhng hn ch trn c khc
phc. Thng tin thm y l gi tr khong cch ti vt, lc ny cng vic x l nh
phc tp hn do phi lm vic trong khng gian 3D.
Hnh 4.9: Phng php Stereo Vision
+ Phng php: nh t th gii thc c thu v thng qua hai camera, sau
qua khu hiu chnh, khc phc mo trc khi cho ra bn su. Cng vic
ny c thc hin bng cc gii thut c bit vi s h tr ca th vin
OpenCV. Ta thu c y thng tin ca vt cn trong mi trng nh chiu
cao, b rng hay khong cch t camera ti vt sau khu khi phc 3D (3D
reconstruction).
+ u im : pht hin vt cn chnh xc, hiu qu, khng ph thuc hnh dng,
kch thc hay mu sc vt, c th pht hin cc vt th trong khng trung.
+ Khuyt im: x l phc tp, i hi s chnh xc cao trong khu hiu chnh.
Tnh ton kh nng nn yu cu b vi x l cao.
Chng 4: Pht hin vt cn
Trang 30
Nhn xt:
Vi s pht trin ca cng ngh hin nay th tc x l khng cn l vn kh
khn na; vi mc ch trnh vt cn mt cch tt nht th phng php cui cng,
Stereo Vision ni tri hn c.
Sinh vin c thi gian thc hin v hon thnh vic pht hin vt cn bng
phng php stereo vision trn hai camera. Kt qu ph thuc khu hiu chnh ban
u rt nhiu. V th, sinh vin tm n thit b c kh nng h tr vic ly bn
su trc tip, m khng bn tm nhiu n vic hiu chnh cho camera, l thit b
chi game Kinect.
Kinect cng mc ch vi phng php stereo vision l thu v bn su
nhng cch thc hin li c cht khc bit, d s dng gii thut tnh ton tng t
nhau. iu ny c trnh by mc 2.3. Cng ngh m Kinect s dng c xem
nh s giao thoa gia stereo vision v range finder (phng php o c khong cch
bng sng nh laser, hng ngoi hay sng siu m). Kt qu thu v trn Kinect chnh
xc hn, n nh hn, tiu tn ti nguyn my tnh t hn nhiu so vi vic s dng hai
camera trong phng php stereo vision. Do y l mt cng ngh mi nn sinh vin
gi l phng php x l nh trn Kinect v c trnh by chi tit trong mc 4.3.
Chng 4: Pht hin vt cn
Trang 31
4.3 Pht hin vt cn s dng Kinect
Hnh 4.10: S x l: pht hin v tch vt cn
Hnh 4.10 lit k tt c cc khi chnh trong s pht hin v tch vt cn s
dng Kinect. Khi s 1 lm nhim v thu v bn su, cng vic ny cn n th
vin OpenNI. Cc khi cn li t 27 lm nhim v x l bn su v cho ta y
thng tin v vt cn, cng vic ny cn n th vin Point Cloud (PCL). OpenNI v
PCL c cng ng m ngun m xy dng mi lin h kh mt thit vi nhau, nn
hn ch c cc xung t c th xy ra nh lm vic PCL cng vi cc th vin khc.
By gi ta tm hiu cch thc hot ng tng khi trong s trn.
Chng 4: Pht hin vt cn
Trang 32
Depth map:
Hnh 4.11: nh RGB v bn su
Depth map hay bn su cha thng tin v tr vt trong khng gian pha
trc Kinect. Bn su c OpenNI h tr cc phn gii v tc thu nh
sau:
SXGA_15Hz: phn gii 12801024, tc 15 fps.
VGA_30Hz: phn gii 640x480, tc 30 fps.
QVGA_30Hz: phn gii 320x240, tc 30 fps.
Vic la chn phn gii cng nh th tc x l khi qua th vin Point Cloud
cng c tng ln.
Chng 4: Pht hin vt cn
Trang 33
Point cloud:
Hnh 4.12: RGB point cloud
Point cloud P l mt tp hp cc phn t p
i
, mi phn t ny s cha tp cc gi
tr biu din khng gian nD (thng th n = 3) [15]:
Bn cnh thng tin d liu l XYZ, mi im p
i
cn c th cha thm cc thng
tin khc nh: RGB colors, intensity values,
Mi gi tr x
i
, y
i
, z
i
c lu tr bng kiu float32. Nu ta chn phn gii
VGA th ta c: n = 640x480 = 307200 phn t p, y l mt con s kh ln. V vy:
X l chm (d liu ln dn n vic tnh ton s lu hn).
D liu kiu float 32 bit nn cn khng gian lu tr ln (cn RAM v HDD
ln).
My tnh sinh vin s dng c cu hnh nh sau:
{ } { }
1 2
, ,..., ,..., , , ,
i n i i i i
p p p p p x y z P = =
Chng 4: Pht hin vt cn
Trang 34
CPU: Core i5-2430, 2.4 GHz
RAM: 4 GB
VGA: GeForce GT540 1GB
Tc thu v point cloud o c bc ny vo khong 1315 fps.
Chnh v hn ch ny m ta cn phi thc hin cc bc lc tin x l p ng
c yu cu x l thi gian thc. Cng vic ny c PCL nh ngha l
downsampling v removing points. Hai bc downsampling v removing points
c s dng l Voxel Grid v Pass Through.
Voxel grid:
Hnh 4.13: Voxel grid
Voxel grid lm gim mt s im xung; tp hp cc im qu gn nhau s
ch cn mt im i din. Ta chn gi tr mt ph hp m vn m bo quan st r
hnh dng vt th. Mt ta chn y l 3 centimet theo ba chiu X, Y v Z.
Hm h tr: setLeafSize(0.03f, 0.03f, 0.03f);
Chng 4: Pht hin vt cn
Trang 35
Pass through:
Hnh 4.14: Pass through khng c (tri) v c voxel grid (phi)
Pass through s gii hn khng gian ca point cloud theo cc chiu X, Y v Z.
y ta ch gii hn theo chiu Z. Nh phn tch trong mc 2.3, gi tr khong cch
theo chiu Z m Kinect c th nhn thy khong 0.55.0 mt, y l tm nhn khng
cn thit cho mobile robot, vic gii hn li s gip cho PCL x l nhanh hn. V th,
ta ch cn cho Kinect nhn trong khong 0.51.4 mt, l tm quan st cho ng dng
robot trnh vt cn. Tc thu hnh sau khi kt hp pass through v voxel grid (Hnh
4.14 (phi)) t gi tr 30 fps, tc t tc ti a.
Hm h tr: setFilterFieldName ("z");
setFilterLimits(0.5, 1.4);
Plannar segmentation:
Plannar segmentation s tch cc point cloud c cu trc phng, sau tch ra
point cloud c tng s im ln nht, bng gii thut RANSAC (RANdom SAmple
Consensus). y l gii thut c lng mt m hnh ton hc t mt tp hp cc
im c cha nhiu (outliers). Gii thut ny ln u c cng b vo nm 1981 bi
Fischler v Bolles [16].
Hnh 4.15 cho ta thy ng dng thut ton RANSAC tm m hnh ng thng
(c dng ax + by + c = 0) trong mt tp hp cc im c cha nhiu.
Chng 4: Pht hin vt cn
Trang 36
Hnh 4.15: Tm m hnh ng thng bng thut ton RANSAC
Gii thut tm ng thng bng thut ton RANSAC c m t nh sau:
u vo:
data - tp hp cc im
k - s ln lp
t - ngng (threshold) sai s xc nh im no c khp m hnh khng
u ra:
best_model - m hnh tt nht
best_consensus_set - tp hp cc im khp vi best_model
best_model = null
best_consensus_set = null
best_num_points = 0
Lp k ln:
consensus_set = tp hp 2 im ngu nhin thuc data
model = m hnh ng thng suy ra t 2 im trn
Vi mi im thuc data nhng khng thuc consensus_set, ta xt:
distance = khong cch t im n ng thng;
if distance < t (im thuc m hnh nu sai s nh hn mc ngng t trc)
thm im vo consensus_set
num_points = s lng phn t trong consensus_set
if num_points > best_num_points
best_model = model
best_consensus_set = consensus_set
best_num_points = num_points
Tr v gi tr: best_model v best_consensus_set
Chng 4: Pht hin vt cn
Trang 37
Vi m hnh mt phng c dng ax + by + cz + d =0, thut ton RANSAC
cng lm c iu tng t nh i vi m hnh ng thng, thay v chn hai im
bt k tm m hnh th mt phng cn ba im. Quan st hnh 4.16, point cloud c
mu xanh dng l mt phng nn nh, c tm ra nh thut ton RANSAC.
Hm h tr: setModelType(pcl::SACMODEL_PLANE);
setMethodType(pcl::SAC_RANSAC);
setDistanceThreshold(0.02);//threshold = 2cm
Euclidean cluster extraction:
Hnh 4.16: Point cloud sau khi thc hin xong bc
lc (filtering) v phn on (segmentation)
Euclidean cluster extraction lm cng vic tch cc point cloud c mt trn nn
nh, tp hp cc im gn nhau s c nhm li thnh mt point cloud hay cluster,
mi cluster i din mt vt th. Hnh 4.16 cho ta hai cluster: cluster mu (cluster
gn Kinect) v cluster mu xanh l (cluster xa Kinect) trn mt phng nn nh (point
cloud mu xanh dng).
Chng 4: Pht hin vt cn
Trang 38
Hm h tr: setInputCloud(cloud_filtered);
setIndices(inliers);
filter(*cloud_cluster);
Object clusters:
Hnh 4.17: Object cluster
Object clusters l cc vt cn m ta c c sau bc Euclidean cluster
extraction. Bc ny lm nhim v phn tch c tnh vt cn v kch thc cng nh
v tr vt trong khng gian pha trc Kinect. y l nhng thng tin cn thit cho k
hoch trnh vt cn ca mobile robot. Cng vic ny c thc hin trn tng cluster,
v c h tr hm cn thit bi PCL.
Hm h tr: getMinMax3D(&cloud_cluster, min_point, max_point);
Trang 39
Chng 5: Module iu khin ng c
Ni dung chnh
5.1 PIC 18F4550
5.1.1 Gii thiu chung
5.1.2 Nhng module chnh s dng trong lun vn
5.2 Mch cng sut (mch cu H)
Chng 5: Module iu khin ng c
Trang 40
Module iu khin ng c bao gm: board mch pht trin PIC microcontroller
PICLAB-V2 [17] ca Thin Minh v board mch cu H ko ng thi hai ng c ca
HLAB. Vi iu khin chnh c chn l PIC18F4550.
Hnh 5.1: PICLAB-V2 (tri) v board mch cu H (phi)
5.1 PIC 18F4550
5.1.1 Gii thiu chung
PIC18F4550 l mt vi x l c bn a chc nng v r. N l sn phm ca h vi
x l PIC thng dng ca cng ty Microchip ca M c tr s t ti Chandler,
Arizona (M).
Hnh 5.2: PIC 18F4550
Chng 5: Module iu khin ng c
Trang 41
PIC 18F4550 dng b nh Flash, c th ghi nhiu ln, dung lng ln p ng
c hu ht cc ng dng trong thc t:
in p hot ng rng t 2V n 5.5V.
B nh chng trnh Flash 32K nh cho php ghi 100,000 ln. B nh
d liu RAM c 2048 Bytes gm cc thanh ghi chc nng c bit v cc
thanh ghi a mc ch. Ngoi ra, PIC18F4550 cn c tch hp 256
Bytes EEPROM cho php ghi n 1,000,000 ln.
C 5 Port I/O vi 34 chn (Port A, Port B, Port C, Port D, Port E).
C 13 knh c ADC 10 bit.
C 1 knh CCP (Capture/Compare/PWM) v 1 knh ECCP (Enhanced
Capture/Compare/PWM).
Giao tip SSP (Synchronous Serial Port) v MSSP (Master Synchronous
Serial Port).
Module Enhanced USART h tr RS-485, RS-232.
C 1 timer 8 bit, 3 timer 16 bit.
C 3 ngt ngoi.
Sau y l s chn ca PIC18F4550 trong hp DIP-40:
Hnh 5.3: S chn PIC18F4550
Sau y l bng h thng chc nng cc chn v s khi ca PIC18F4550:
Chng 5: Module iu khin ng c
Trang 42
Chn Hng
M t chc nng v cc c tnh
AN0-AN12 I 13 knh Input c tc dng l cng bin i ADC
Avdd
Ngun dng cho module ADC
Avss
GND cho module ADC
CLKI I Li vo ca xung Clock ngoi, lun kt hp vi chn OSC1
CLKO O
Li ra ca b dao ng tinh th, ni vi tinh th hoc b cng
hng trong ch dao ng thch anh. Lun kt hp vi
chn chc nng OSC2
CN0 - CN7
I Khai bo thay i li vo
CN17 - CN18
COFS I/O Cng giao tip chuyn i d liu ng b khung
CSCK I/O Cng giao tip chuyn i d liu Clock vo ra ni tip
CSDI I Li vo d liu ni tip
CSDO O Li ra d liu ni tip
C1RX I Cng nhn bus CAN1
C1TX O Cng pht bus CAN1
EMUD I/O Cng vo ra d liu knh truyn thng s cp ca ICD
EMUC I/O Vo ra xung nhp knh s cp
EMUD1 I/O Vo ra d liu knh th cp
EMUC1 I/O Vo ra d liu knh th cp
EMUD2 I/O Vo ra d liu knh th cp
EMUC2 I/O Vo ra d liu knh th cp
EMUD3 I/O Vo ra d liu knh th cp
EMUC3 I/O Vo ra d liu knh th cp
IC1 - IC8 I Cc cng vo ca module Capture
INT0 - INT2 I Cc ngt ngoi
LVDIN I Cng vo pht hin st th
/MCLR I Chn Reset, mc tch cc thp
Chng 5: Module iu khin ng c
Trang 43
OSC1 I
Li vo b giao ng tinh th. B m Trigger Schmitt c
s dng khi cu hnh trong ch RC
OSC2 O Li ra b dao ng tinh th
PGD I/O Vo ra d liu ca ICSP
PGC I Li vo Clock ca ICSP
RA0 - RA6 I/O Port A
RB0 - RB7 I/O Port B
RC0 - RC7 I/O Port C
RD0 - RD7 I/O Port D
RE0 - RE3 I/O Port E
SCK1 I/O Vo ra Clock ng b ca khi SPI1
SDI1 I Li vo d liu ca khi SPI1
SDO1 O Li ra d liu ca SPI1
SS1 I Slaver ng b
SCL I/O Vo ra Clock ni tip ca I2C
SDA I/O Vo ra Data ni tip ng b ca I2C
SOSCO O Li ra b dao ng tinh th cng sut thp 32Khz
SOSCI I Li vo b dao ng 32Khz
T1CK I Li vo xung Clock ngoi ca Timer1
T2CK I Li vo xung Clock ngoi ca Timer2
U1RX I Cng nhn khi UART1
U1TX O Cng pht khi UART1
U1ARX I Cng nhn m rng khi UART1
U1ATX O Cng pht m rng khi UART1
VDD
Chn ngun dng ca PIC
VSS
Chn GND
Vref+ I Li vo Vref+ (cao) chun ca ADC
Vref- I Li vo Vref- (thp) chun ca ADC
Bng 5.1: Bng m t cc chc nng tng chn ca PIC18F4550
Chng 5: Module iu khin ng c
Trang 44
Hnh 5.4: S khi ca PIC 18F4550
Chng 5: Module iu khin ng c
Trang 45
5.1.2 Nhng module chnh s dng trong lun vn
Vi yu cu iu khin ng c c giao tip vi my tnh, nhng module chnh
ca PIC18F4550 c s dng l: b dao ng, cc port I/O, ngt ngoi, cc b
Timer, khi iu xung PWM v khi giao tip EUSART.
B dao ng ca PIC 18F4550:
Hnh 5.5: S khi b dao ng ca PIC 18F4550
Chng 5: Module iu khin ng c
Trang 46
Hot ng ca b dao ng trong PIC 18F4550 c iu khin thng qua hai
thanh ghi Configuration v hai thanh ghi control. Cc thanh ghi CONFIG1L v
CONFIG1H la chn ch dao ng v cc options cho prescaler/postcaler ca
USB. V l cc bits Configuration nn chng c set khi thit b c lp trnh v gi
nguyn cu hnh ny cho n khi thit b c lp trnh mi li. Thanh ghi OSCCON
la chn ch Active Clock, n c dng ch yu trong vic iu khin clock
switching trong ch qun l nng lng. Thanh ghi OSCTUNE dng cho vic loi
b ngun tn s INTRC, cng nh la chn ngun clock tn s thp.
PIC 18F4550 c th thc hin 12 ch dao ng khc nhau. Ngi lp trnh c
th iu chnh cc bit Configuration FOSC3:FOSC0 la chn ch dao ng thch
hp:
XT: Crystal/Resonator
XTPLL: Crystal/Resonator with PLL enabled
HS: High-Speed Crystal/Resonator
HSPLL: High-Speed Crystal/Resonator with PLL enabled
EC: External Clock with FOSC/4 output
ECIO: External Clock with I/O on RA6
ECPLL: External Clock with PLL enabled and FOSC/4 output on RA6
ECPIO: External Clock with PLL enabled, I/O on RA6
INTHS: Internal Oscillator used as microcontroller clock source, HS
Oscillator used as USB clock source
INTXT: Internal Oscillator used as microcontroller clock source, XT
Oscillator used as USB clock source
INTIO: Internal Oscillator used as microcontroller clock source, EC
Oscillator used as USB clock source, digital I/O on RA6
INTCKO: Internal Oscillator used as microcontroller clock source, EC
Oscillator used as USB clock source, FOSC/4 output on RA6
Clock h thng ca PIC18F4550 c th c chn t hai ngun dao ng ni
(Internal Oscillator) hoc dao ng ngoi (Primary Oscillator v Secondary Oscillator)
Chng 5: Module iu khin ng c
Trang 47
nh b chn knh MUX. B MUX c iu khin bi cc bit FOSC<3:0> (bit 3, bit
2, bit 1, bit 0 ca thanh ghi CONFIG1 16-bit nh v ti a ch 2007H v 2008H trong
b nh chng trnh) v cc bit SCS<1:0> (bit 1, bit 0 ca thanh ghi OSCCON).Cc
bits SCS dng la chn ch Primary Clock, T1OSC hay Internal Oscillator. Cc
bit FOSC<3:0> c s dng cu hnh b dao ng Primary Clock.
B dao ng ni gm 2 b dao ng HFINTOSC 8MHz v LFINTOSC 31kHz.
Clock 8MHz ca b HFINTOSC c chia thnh cc tn s 8MHz, 4MHz, 2MHz,
1MHz, 500kHz, 250kHz, 125kHz nh b chia tn s postscaler. Tn s ngun clock
(INTOSC direct, INTRC direct hoc INTOSC postscaler) c la chn bng vic
iu chnh cc bits IRCF trong thanh ghi OSCCON.
B dao ng ngoi (c tch hp bn trong PIC) cn c kt ni vi cc b lc
ti cc chn OSC1, OSC2. Trong ti ny, ta s dng thch anh 12MHz to thnh
xung clock 12MHz cung cp cho clock h thng.
Cc port I/O:
PIC18F4550 tt c 34 chn I/O mc ch thng thng (GPIO: General Purpose
Input Ouput) c th c s dng. Ty theo nhng thit b ngoi vi c chn m mt
vi chn c th khng c s dng chc nng GPIO. Thng thng, khi mt thit
b ngoi vi c chn, nhng chn lin quan ca thit b ngoi vi c th khng c s
dng chc nng GPIO. 34 chn GPIO c chia cho 5 Port: Port A gm 7 chn, Port
B gm 8 chn, Port C gm 8 chn, Port D gm 8 chn v Port E gm 3 chn.
Mi port c iu khin bi 2 thanh ghi 8-bit, thanh ghi Port v thanh ghi Tris.
Thanh ghi Tris c s dng iu khin port l nhp hay xut. Mi bit ca Tris s
iu khin mi chn ca port , nu gi tr ca bit l 1 th chn lin quan l nhp,
ngc li nu gi tr ca bit l 0 th chn lin quan l xut. Thanh ghi Port c s
dng cha gi tr ca port lin quan. Mi bit ca thanh ghi Port s cha gi tr ca
chn lin quan.
Chng 5: Module iu khin ng c
Trang 48
Hnh 5.6: Cu to ca chn GPIO
Ngt ngoi trn cc chn RB:
Chng 5: Module iu khin ng c
Trang 49
Hnh 5.7: S khi logic ca h thng ngt trong PIC18F4550
Cc ngt ngoi INT0 ng vi chn RB0, INT1 ng vi chn RB1, INT2 ng vi
chn RB2.
Cc ngt ngoi trn cc chn RB c kch khi theo sn. Sn ln nu nh bit
INTEDG = 1 (bit 6 ca thanh ghi OPTION_REG), sn xung nu INTEDG = 0. Khi
mt sn thch hp xut hin trn chn RB, c INTF c bt ln 1. Ngt ny c th
c cho php nu bit INTE=1, khng cho php nu INTE=0. C INTF cn c xa
bng phn mm trong trnh phc v ngt trc khi cho php ngt tr li.
Trong ti ny, ta dng ngt ngoi INT1 (trn chn RB1) v INT2 (trn chn
RB2) c encoder v phc v cho vic tnh ton PID.
Chng 5: Module iu khin ng c
Trang 50
Cu to v hot ng ca b Timer 1 v Timer 2:
B Timer 1 l b nh thi 16-bit c cu to nh hnh sau:
Hnh 5.8: S khi ca b Timer 1
B Timer 1 l b m ln 16-bit c truy xut gin tip thng qua cp thanh ghi
TMR1H, TMR1L. Khi c c hoc ghi cc thanh ghi ny s cp nht trc tip gi
tr cho b Timer. Khi c s dng vi ngun clock ni, b Timer 1 s c vai tr l b
nh thi. Khi c s dng vi ngun clock ngoi, n s c vai tr l nh thi hoc
b m. S dng bit TMR1CS chn ngun clock.
Cc bit T1CKPS<1:0> nh gi tr cho b chia tn s Prescaler. Khi b TMR1
trn (t FFFFh n 0000h) c ngt TMR1IF s c thit lp ln 1. Nu lc ny c
TMR1IE =1, c PEIE=1 v GIE=1 th ngt Timer1 s xy ra. C TMR1IF cn c
xa trong trnh phc v ngt Timer 1. Trong ti ny, ta dng Timer 1 cho vic ly
mu ca b PID s.
Sau y l s khi b Timer 2:
Chng 5: Module iu khin ng c
Trang 51
Hnh 5.9: S khi ca b Timer 2
TMR2 tng t 00H vi mi clock (FOSC/4), hai bit counter/prescaler trn ng
vo clock cho ng vo trc tip vi la chn divide-by-4 hoc divide-by-16 prescale.
Chng c la chn bng bit prescaler control, T2CKPS1:T2CKPS0 (T2CON<1:0>).
Gi tr ca TMR2 c so snh vi gi tr ca thanh ghi chu k, PR2, trong mi chu k
clock. Khi hai gi tr ny tng ng nhau, b so snh to ra mt tn hiu iu khin
ng ra ca b Timer, tn hiu ny cng reset li gi tr ca TMR2 v 00H chu k k
tip v li ng ra b counter/postscaler. Cc thanh ghi TMR2 v PR2 u c th c v
ghi. Thanh ghi TMR2 b xa khi c mt thit b no reset, trong khi thanh ghi
PR2 khi to FFH. Ng ra khng chia t l ca TMR2 ch yu c dng cho
module CCP, c s thi gian cho cc php ton trong ch PWM.
Trong ti ny, ta dng Timer 2 cho vic iu xung PWM.
Cu to v hot ng ca khi iu xung PWM:
PIC18F4550 c hai b iu xung, hai b ny s to ra cc tn hiu iu xung trn
cc chn CCP1 v CCP2. rng, chu k v phn gii ca hai b iu xung c
xc nh bi cc thanh ghi PR2, T2CON, CCPR1L, CCPR2L, CCP1CON, CCP2CON.
ch iu xung (PWM), chn CCPx c th to ra u ra PWM vi phn gii ln
n 10 bit.
V chn CCPx c nhp chung vi ng d liu port B hoc port C nn
cc chn CCPx (CCP1 v CCP2) hot ng ch PWM, cn xa bit TRIS tng
ng ca cc chn . S khi ca cc b iu xung c m t trong hnh di y:
Chng 5: Module iu khin ng c
Trang 52
Hnh 5.10: S khi b PWM
Ch thch (Note 1) trong hnh trn biu th rng thanh ghi 8-bit TMR2 c kt
hp vi 2-bit prescaler ca b dao ng ni to ra b nh thi 10-bit. Cc thanh ghi
CCPRxH l cc thanh ghi ch c, kt hp vi 2 bit 5 v 4 ca cc thanh ghi
CCPxCON c vai tr nh rng ca xung; cc thanh ghi ny c ghi gin tip
thng qua cc thanh ghi CCPRxL. Thanh ghi 8-bit PR2 nh chu k cho xung ra.
Sng iu xung ti cc chn CCPx c gin thi gian nh sau:
Hnh 5.11: Gin thi gian ca sng iu xung ti chn CCPx
Chng 5: Module iu khin ng c
Trang 53
Thanh ghi TMR2 kt hp vi 2 bit prescaler s m ln nh xung clock ca h
thng. Khi gi tr ca TMR2 nh hn gi tr ca CCPRxL:CCPxCON<5:4>, chn
CCPx mc cao. Khi gi tr ca TMR2 bng vi gi tr ny, b so snh s o chn
CCPx xung mc 0. Khi gi tr ca TMR2 bng vi PR2, TMR2 s c xa v 0
ng thi kt thc chu k xung, chn CCPx li c thit lp mc cao.
Chu k ca xung c tnh theo cng thc sau:
Trong :
T
OSC
l chu k ca clock h thng. T
OSC
= 1/F
OSC.
Trong ti, ta ci t: setup_timer_2(T2_DIV_BY_4, 255, 1), do
T
PWM
= (PR2+1) 4 T
OSC
Pre-scale = 256 4 (12 10
6
)
-1
4.
f
PWM
= 1/ T
PWM
2,93 (kHz).
Hot ng ca khi giao tip EUSART:
Khi giao tip ni tip EUSART (Enhanced Universal Synchronous
Asynchronous Receiver Transmitter) cho php cu hnh hot ng ch giao tip
ni tip ng b v khng ng b. Trong ti ny, ch giao tip khng ng b
c s dng. Do y ta s tp trung m t hot ng ca module EUSART ch
khng ng b.
Hot ng truyn:
S khi b truyn c th hin trong hnh di:
Chu k PWM = [(PR2)+1] 4 T
OSC
(gi tr Pre-scale ca TMR2)
Chng 5: Module iu khin ng c
Trang 54
Hnh 5.12: S khi b truyn ca module EUSART
B phn chnh ca khi truyn l thanh ghi truyn TSR. Thanh ghi ny khng th
truy cp bng phn mm m phi truy cp gin tip qua thanh ghi m truyn TXREG.
Qu trnh truyn c khi to bng cch ghi d liu truyn vo thanh ghi TXREG.
Nu y l d liu truyn ln u tin hoc d liu truyn trc truyn hon tt th
d liu trong TXREG ngay lp tc s c truyn vo thanh ghi TSR. Nu thanh ghi
TSR vn cn cha d liu ca k t truyn trc th d liu mi trong TXREG s
c gi cho n khi bit Stop ca k t ang truyn hon tt. Sau , d liu ch trong
TXREG s c truyn vo TSR.
Hot ng nhn:
S khi b nhn c th hin trong hnh di:
Chng 5: Module iu khin ng c
Trang 55
Hnh 5.13: S khi b nhn ca module EUSART
D liu c nhn trn chn RX/DT v y vo khi Data Recovery. Khi tt c 8
hoc 9 bit ca k t nhn c dch vo, chng s ngay lp tc c chuyn vo b
m 2 k t FIFO. B m FIFO v thanh ghi RSR khng th truy cp trc tip bng
phn mm m phi truy cp gin tip thng qua thanh ghi RCREG. D liu trong b
m nhn c c bng cch c thanh ghi RCREG.
5.2 Mch cng sut (mch cu H)
Dng Module Dual H-Bridge ca HLAB (xem thm hnh 5.1), c mt s c
im sau:
Module iu khin hai ng c.
in p 12V 24V, dng ti ti a 5A.
in p iu khin 5V TTL.
H tr chn PWM tch cc mc cao hoc thp bng jumper.
Diode bo v cu H.
Led ch th chiu quay ca ng c.
Trang 56
Chng 6: ng c v gii thut PID v tr
Ni dung chnh
6.1 ng c Servo DC
6.1.1 ng c DC
6.1.2 Encoder
6.2 Gii thut PID v tr
Chng 6: ng c v gii thut PID v tr
Trang 57
6.1 ng c Servo DC
ng c Servo DC [18] l ng c khng ng b. ng c Servo DC bao gm
hai thnh phn chnh: ng c DC v encoder. Ngoi ra, ng c c th c gn thm
hp s (Gear box) c tc dng tng momen quay v gim tc ng c. ng c
Servo DC c ng dng cho vic iu khin chnh xc: gc quay, tc , momen.
Trong ti, cp ng c c chn l ng c Servo DC hiu DS48DE25 ca Nht
vi cng sut 60W, s dng ngun DC 24V, encoder 60 xung v c trang b hp s
1:5.
Hnh 6.1: Cp ng c Servo DC
6.1.1 ng c DC
ng c DC l ng c in hot ng vi dng in mt chiu. ng c in
mt chiu ng dng rng ri trong cc ng dng dn dng cng nh cng nghip. Cu
to ca ng c gm c hai phn: stato ng yn v roto quay so vi stato. Phn cm
Chng 6: ng c v gii thut PID v tr
Trang 58
(phn kch t thng t trn stato) to ra t trng i trong mch t, xuyn qua cc
vng dy qun ca phn ng (thng t trn roto). Khi c dng in chy trong mch
phn ng, cc thanh dn phn ng s chu tc ng bi cc lc in t theo phng
tip tuyn vi mt tr roto, lm cho roto quay.
Ty theo cch mc cun dy roto v stato m ngi ta c cc loi ng c sau:
ng c kch t c lp: Cun dy kch t (cun dy stato) v cun dy phn
ng (roto) mc ring r nhau, c th cp ngun ring bit.
ng c kch t ni tip: Cun dy kch t mc ni tip vi cun dy phn ng.
i vi loi ng c kch t c lp, ngi ta c th thay th cun dy kch t
bi nam chm vnh cu, khi ta c loi ng c in mt chiu dng nam chm vnh
cu.
i vi loi ng c kch t c lp dng nam chm vnh cu, thay i tc ,
ta thay i in p cung cp cho roto. Vic cp p mt chiu thay i thng kh
khn, do vy ngi ta dng phng php iu xung (PWM):
Hnh 6.2: iu chnh rng xung PWM
Mch iu khin ng c bng phng php PWM hot ng da theo nguyn
tc cp ngun cho ng c bng chui xung ng m vi tc nhanh. Ngun DC
c chuyn i thnh tn hiu xung vung (ch gm hai mc 0 volt v xp x in p
hot ng). Tn hiu xung vung ny c cp cho ng c. Nu tn s chuyn mch
ln ng c s chy vi mt tc u n ph thuc vo momen ca trc quay.
Chng 6: ng c v gii thut PID v tr
Trang 59
Vi phng php PWM ny, ta iu chnh tc ca ng c thng qua vic
iu ch rng ca xung, tc l thi gian mc cao ca chui xung vung cp cho
ng c. Vic iu chnh ny s tc ng n cng sut trung bnh cp cho ng c v
do s lm thay i tc ca ng c cn iu khin. Nh trn hnh 6.2, vi dy
xung iu khin trn cng, xung c rng nh nn ng c chy chm. Nu rng
xung cng ln (nh dy xung th 2 v th 3) ng c DC chy cng nhanh.
Do c tnh cm khng ca ng c, dng qua ng c l dng lin tc, gn sng
nh sau:
Hnh 6.3: Dng sng p v dng trn ng c
6.1.2 Encoder
Encoder l dng c dng xc nh v tr gc ca a quay hoc xc nh qung
ng di chuyn cho bnh xe, trc ng c hay bt k thit b no c c cu quay v
cn xc nh dch chuyn.
C hai loi encoder l encoder tuyt i (absolute encoder) v encoder tng i
(incremental encoder). Encoder tuyt i cung cp cho ta chnh xc v tr encoder m
khng cn qua x l, trong khi encoder tng i th i hi thm khu x l t tn
hiu encoder trc khi xc nh c v tr quay ca ng c. Vi gi thnh r hn v
vic x l cng khng qu phc tp nn encoder tng i c chn trong ti ny.
y, ta tp trung ni v incremental optical encoder l loi encoder tng i
s dng cm bin quang. H thng optical encoder bao gm mt ngun pht quang
(thng l hng ngoi infrared), mt cm bin quang v mt a c chia rnh.
Chng 6: ng c v gii thut PID v tr
Trang 60
Hnh 6.4: Optical Encoder
Encoder thng c ba knh (ba ng ra) bao gm knh A, knh B v knh Z
(Index). Trn hnh 6.4, ta thy mt l nh trn a quay v mt cp pht thu dnh
ring cho l nh ny. l knh Z ca encoder. C mi ln ng c quay c mt
vng, hng ngoi t ngun pht s xuyn qua l nh n cm bin quang v cm bin
li thu c mt tn hiu. Nh th c mi vng quay ca ng c, li xut hin mt
xung knh Z. Bn ngoi a quay c chia thnh cc rnh nh v c mt cp thu
pht khc dnh cho cc rnh ny. y chnh l knh A ca encoder, hot ng ca
knh A cng tng t knh Z, im khc nhau l trong mt vng quay ca ng c, s
c N xung xut hin trn knh A. N l s rnh trn a v cn c gi l phn gii
(resolution) ca encoder. Mi loi encoder c mt phn gii khc nhau, c khi trn
mi a ch c vi rnh nhng cng c trng hp c n hng nghn rnh c chia.
iu khin ng c, ta phi bit c phn gii ca encoder ang dng. phn
gii nh hng n chnh xc iu khin v c phng php iu khin. Ngoi ra,
trn encoder cn c mt cp thu pht khc c t trn cng ng trn vi knh A
nhng lch mt cht (lch M+0.5 rnh), y l knh B ca encoder. Tn hiu xung t
knh B c cng tn s vi knh A nhng lch pha 90
o
. Bng cch phi hp knh A v
knh B ta c th bit chiu quay ca ng c.
Chng 6: ng c v gii thut PID v tr
Trang 61
Hnh 6.5: Hai knh A v B lch pha trong encoder
Khi cm bin A bt u b che th cm bin B vn nhn c hng ngoi xuyn
qua v ngc li. Hnh trn l dng xung ng ra trn 2 knh. Xt trng hp ng c
quay cng chiu kim ng h, tn hiu di chuyn t tri sang phi. Lc tn hiu knh A
chuyn t mc cao xung thp (cnh xung) th knh B ang mc thp. Ngc li,
nu ng c quay ngc chiu kim ng h, tn hiu di chuyn t phi qua tri. Lc
ny, ti cnh xung ca knh A th knh B ang mc cao. Nh vy, bng cch phi
hp hai knh A v B, ta khng nhng xc nh c gc quay (thng qua s xung) m
cn bit c chiu quay ca ng c (thng qua mc ca knh B cnh xung ca
knh A).
Encoder c s dng trong ti l loi 60 xung trn mt vng quay vi ba
knh A, B v Z, tuy nhin ch cn s dng 2 knh A, B l cho ng dng iu khin
v tr.
Chng 6: ng c v gii thut PID v tr
Trang 62
Hnh 6.6: Encoder i km ng c Servo DC
Cch c encoder bng PIC:
Ta s dng ngt ngoi ca PIC 18F4550 c encoder v, y l phng php
n gin nhng chnh xc. tng ca phng php ny rt n gin, ta ni knh A
ca encoder ca ng c bn phi vi ngt ngoi (chn RB1) v knh B vi mt chn
no bt k ( y ta dng chn RD1). C mi ln ngt ngoi xy ra, tc c 1 xung
xut hin knh A th trnh phc v ngt ngoi t ng c gi. Trong trnh phc v
ngt ny ta kim tra mc ca knh B, ty theo mc ca knh B ta s tng bin m
xung ln 1 hoc gim i 1. Lm tng t vi encoder ca ng c bn tri, ni knh A
ca encoder vi ngt ngoi (chn RB2) v knh B vi mt chn no bt k (chn
RD2).
Chng 6: ng c v gii thut PID v tr
Trang 63
6.2 Gii thut PID v tr [19]
Trong cc lnh vc iu khin m ta cn iu khin u ra theo mong mun
hoc cn s n nh, chng ta cn mt thut ton iu khin v d nh iu khin ng
c, nhit , p sut, tc hay cc bin khc trong cc ng dng khc nhau. Thut
ton PID l mt trong nhng thut ton kinh in c gii thiu gii quyt cc bi
ton v iu khin. B iu khin PID c th s dng iu khin bt k bin no
min sao gi tr ca chng b tc ng thng qua thut ton PID.
Thut ton PID c th m t nh hnh 6.7. B iu khin PID s gim st u ra
ca h thng, sau so snh vi gi tr mong mun. Nu h thng cha t c gi
tr mong mun, ngha l sai s e khc khng, b PID s tnh ton ra gi tr tc ng u
mi (tc ng vo h thng) hiu chnh h thng. Qu trnh ny s c thc hin
lin tc cho n khi no e = 0, lc h thng s t trng thi n nh. H thng nh
th cn c gi l h thng iu khin vng kn (Closed Loop Control) v n c hi
tip trng thi ca h thng v b iu khin.
Hnh 6.7: PID vng kn
PID l ch vit tt ca t l - tch phn - vi phn. Hm rng b iu khin s
tnh gi tr t l, tnh tch phn v vi phn ca sai s hiu chnh h thng v trng
thi cn bng ng.
c tnh b iu khin P,I,D:
Thnh phn t l (K
P
) c tc dng lm tng tc p ng ca h v lm gim
(ch khng trit tiu) sai s xc lp ca h (steady state error).
Thnh phn tch phn (K
I
) c tc dng trit tiu sai s xc lp nhng c th lm
gim tc p ng ca h.
Chng 6: ng c v gii thut PID v tr
Trang 64
Thnh phn vi phn (K
D
) lm tng n nh ca h thng, gim vt l v
ci thin tc p ng ca h.
nh hng ca cc thnh phn K
P
, K
I
, K
D
i vi h kn c tm tt trong bng
sau:
Bng 6.1: nh hng ca cc thnh phn Kp, Ki, Kd i vi h kn
H PID c th s dng ch P, PI, PD ty vo c tnh ca h thng.
Hiu chnh t l P: K
P
cng ln th sai s xc lp cng nh, vt l cao, tuy
nhin ta khng th tng K
P
n v cng khi e
xl
khng bng khng, K
P
K
gh
.
Hiu chnh t l PD: Hiu chnh PD lm nhanh p ng ca h thng, gim
thi gian qu nhng li nhy vi nhiu tn s cao.
Hiu chnh t l PI: Hiu chnh t l PI lm chm p ng qu , tng
vt l, gim sai s xc lp.
Hiu chnh t l PID: Ci thin p ng qu (gim vt l, gim thi gian
qu ), gim sai s xc lp.
Kt qu ca b iu khin thng c nh gi thng qua vic o c p ng
ca b iu khin trong mt h thng nht nh nh hnh sau:
Chng 6: ng c v gii thut PID v tr
Trang 65
Hnh 6.8 p ng ca cc h thng iu khin
Hnh 6.8 m t p ng ca h thng iu khin theo s thay i v p ng ca
ba phng php iu khin P, PI, PID. Trong p ng ca b PID l tt nht vi
vt l t v thi gian n nh nhanh.
B PID c th lm vic trn d liu lin tc hoc dng ri rc. Hin nay, PID ri
rc c ng dng rng ri trong cc h iu khin do hu ht cc h thng hin nay
u l h thng s. Cng thc b PID c th c m t nh sau:
( ) ( ) ( ) ( ) ( )
0
( 1 )
n
p i d
k
u n K e n K e k K y n y n
=
= + +
Chng 6: ng c v gii thut PID v tr
Trang 66
Qu trnh tnh ton ca b PID:
Hnh 6.9: Qu trnh tnh ton PID
B iu khin PID c hm truyn dng lin tc nh sau:
( )
I
p D
K
G s K K s
s
= + +
Bin i Z ca n nh sau:
1 1
( ) ( ) ( )
2 1
I D
P
K T K z z
G z K
z T z
+
= + +
Vit li G(z) nh sau:
1 2
1
( ) ( 2 )
2 2
( )
1
D D D
P I P I
K K K T T
K K K K z z
T T T
G z
z
+ + + + +
=
t:
0
1
2
2
2
2
D
P I
D
P I
D
K T
a K K
T
K T
a K K
T
K
a
T
= + +
= +
=
Suy ra:
Chng 6: ng c v gii thut PID v tr
Trang 67
1 2
0 1 2
1
( )
1
a a z a z
G z
z
+ +
=
T , ta tnh c tn hiu iu khin u(k) khi tn hiu vo e(k) nh sau:
1 2
0 1 2
1
( ) ( ) ( ) ( )
1
a a z a z
u k G z e k e k
z
+ +
= =
Suy ra:
0 1 2
( ) ( 1) ( ) ( 1) ( 2) u k u k a e k a e k a e k = + + +
Trong : T l thi gian ly mu
e(k) l sai s hin ti: e(k) = gi tr t gi ng ra
e(k-1) v e(k-2) l cc sai s tch ly
u(k) l ng ra b iu khin
K
P
, K
I
, K
D
l cc thng s P, I, D ca b iu khin
Cch iu chnh cc h s K
P
, K
I
, K
D
:
u tin, ta chnh cho K
P
= 1 v K
D
, K
I
= 0 ngha l ch iu khin P. Sau ,
tng K
P
ln dn dn v quan st ng c. Khi thy ng c dao ng (ngha l n lc
nhanh lc chm), ta ly K
P
ti nhn vi 0.6 tnh ton: K
P_t
= 0.6 K
P_dao_ng
. Sau
, ta tng K
D
ln dn dn (gi nguyn K
P
), nu K
D
qu ln s lm cho ng c b dao
ng mnh. Gim K
D
li cho n khi ng c ht dao ng. iu chnh K
I
l kh nht,
bt u t gi tr rt nh (v d ly K
I
= 1/K
D
chng hn). H s K
I
khng cn ln v
ng c t n cha thnh phn K
I
, th hin moment qun tn hay sc ca ng
c. Do , thng vi i tng iu khin l nhit hay ng c (cc i tng c
qun tnh) th ch cn b iu khin PD l .
Trang 68
Chng 7: Tnh ton ta Robot v Kinect
Ni dung chnh
7.1 Cc php chuyn i h trc ta c bn
7.2 Tnh ton ta robot
7.3 Tnh ton ta Kinect
Chng 7: Tnh ton ta Robot v Kinect
Trang 69
7.1 Cc php chuyn i h trc ta c bn
Trc khi i vo cc php bin i, ta lm quen vi khi nim h ta thun
nht. Trong h ta thun nht, mi im (x, y, z) trong h ta Descartes c
biu din bi mt b bn gi tr trong khng gian bn chiu thu gn (h
x
, h
y
, h
z
, h).
tin li cho tnh ton, ngi ta thng chn h = 1. Nh vy, mt im (x, y, z) trong h
ta Descartes s bin thnh im (x, y, z, 1) trong h ta thun nht; cn im
(x, y, z, w) trong h ta thun nht (vi w 0) s tng ng vi im (x/w, y/w,
z/w) trong h ta Descartes [20].
Php bin i ba chiu bin im P thnh im Q c dng: Q = P.M. Trong :
Q = (x, y, z, 1), P = (x, y, z, 1), d = (dx, dy, dz) l vector tnh tin v M l ma trn
bin i 4x4 trong h ta thun nht:
0
0
0
1
a b c
d e f
M
g h i
dx dy dz
(
(
(
=
(
(
Php tnh tin:
Hnh 7.1: Php tnh tin
Chng 7: Tnh ton ta Robot v Kinect
Trang 70
Vector tnh tin trong php bin i ba chiu c mt tc ng rt trc quan: mi
im c dch i mt khong l dx, dy, dz theo ba trc. Ma trn M cho php tnh tin
c dng nh sau:
1 0 0 0
0 1 0 0
0 0 1 0
1
M
dx dy dz
(
(
(
=
(
(
, Q = [x y z 1] = P.M = [x+dx y+dy z+dz 1].
Php quay:
Ta kho st php quay quanh mt trc ta . Khc vi php quay trong hai chiu
quanh mt im bt k, trong ba chiu ta c php quay quanh mt trc ta . Ta c
cc ma trn biu din cc php quay quanh trc x, y, z ngc chiu kim ng h vi
gc tng ng , , ln lt l R
x
(), R
y
(), R
z
():
Hnh 7.2: Php quay
1 0 0
( ) 0 cos sin
0 sin cos
x
R | | |
| |
(
(
=
(
(
(
(
(
cos 0 sin
0 1 0
sin 0 cos
) (
y
R
(
(
(
=
1 0 0
0 cos sin
0 sin cos
) ( u u
u u
u
z
R
7.2 Tnh ton ta robot
d hnh dung, ta quan st m hnh robot c v trn Autodesk Inventor 2012.
Vi thit k vi bn bnh gip robot gi thng bng tt, hai bnh sau lm nhim v
Chng 7: Tnh ton ta Robot v Kinect
Trang 71
truyn ng, ta t gc ta robot ti v tr chnh gia hai tm cc bnh ny (gi l
tm robot).
Hnh 7.3: M hnh robot
Quan st hnh chiu bng ca m hnh robot hnh 7.4, ta gc ca robot
c chn l tm O(0, 0). V tr tng ng ca tm hai bnh xe tri v phi l
R(20.5, 0), L(-20.5, 0) (n v l centimet). Trong qu trnh di chuyn, ta ca
robot s c cp nht so vi v tr lc khi ng khi robot n mt v tr mi. Cc gi
tr cp nht bao gm: ta x hin ti (x_cur), ta y hin ti (y_cur) v gc hin
ti (trc OY so vi trc OX, angle_cur ). Nh vy, ti thi im bt u khi ng:
x_cur = 0, y_cur = 0 v angle_cur = 90
o
.
Chng 7: Tnh ton ta Robot v Kinect
Trang 72
Hnh 7.4: Ta robot (quan st t trn xung)
Khi di chuyn robot s c hai ng tc chnh: i thng (tin hoc li) mt on L
v xoay mt gc anpha quanh tm robot. Bi ton ch n thun p dng cc php
tnh tin v xoay c bn trong khng gian 2D. Phng trnh tnh ton ta mi ca
robot cho tng ng tc:
i thng mt on L:
Du + cho trng hp tin v - cho trng hp li.
Xoay mt gc anpha:
x_new = x_cur
y_new = y_cur
angle_new = angle_cur + anpha
x _new = x_cur L.cos(angle_cur)
y _new = y_cur L.sin(angle_cur)
angle_new = angle_cur
Chng 7: Tnh ton ta Robot v Kinect
Trang 73
anpha m khi robot xoay sang phi (thun chiu kim ng h) v dng khi
xoay sang tri (ngc chiu kim ng h). Gi tr angle_cur nm trong khong
02*PI nn lu khi gc ny nm ngoi khong ny th:
7.3 Tnh ton ta Kinect
Hnh 7.5: H trc ta Kinect
Thng tin v mi trng trong qu trnh di chuyn ca robot c Kinect a
v x l dng 3D nhm a ra nhng lnh truyn cho robot mt cch chnh xc nht.
Vi s h tr mnh m ca th vin Point Cloud, Kinect cho ta nhng thng tin chnh
xc v ta cc im hay vt th trong mi trng thc t so vi ta gc ti
Kinect. Mt nhc im ln ca Kinect l vng m (Kinect khng th nhn thy)
nm trong khong 00.50 mt, l mt khong cch ln i vi chc nng trnh vt
angle_cur < 0 : angle_cur = angle_cur + 2*PI
angle_cur > 2*PI : angle_cur = angle_cur - 2*PI
Chng 7: Tnh ton ta Robot v Kinect
Trang 74
cn ca robot. Chnh v l do m ta b tr Kinect c t trn cao v hng xung
vi mt gc nghing nht nh, ng thi c t li pha sau robot nhn c mt
cch tng quan nht mi trng pha trc robot.
Chnh iu ny t ra bi ton chuyn di h trc ta ca Kinect v h trc
ta ca robot ng b ha. C cht khc bit gia hai h trc: i vi h trc ta
Kinect, phng Z i din cho khong cch ti vt th, phng Y i din cho
chiu cao vt th ln lt tng ng vi phng Y v Z ca h trc ta robot.
Phng X cn li khng c g thay i.
Mc ch ca ta l a mt phng OXZ ca Kinect v trng vi mt phng OXY
ca robot. Quan st hnh 7.6, ta thy ngoi vic nghing mt gc 30
o
, Kinect cn lch
theo chiu Z mt on 9 cm v chiu Y mt on 60 cm.
Hnh 7.6: ng nht h trc ta Kinect v robot
Ta ln lt thc hin cc cng vic sau i vi h trc Kinect:
Xoay mt phng OYZ quanh trc X ngc chiu kim ng h mt gc 30
o
.
| |
1
1
1
1 0 0
0 cos sin cos sin
0 sin cos sin cos
X X
Y X Y Z Y Z
Z Y Z
| | | |
| | | |
( ( (
( ( (
= =
( ( (
( ( ( +
Chng 7: Tnh ton ta Robot v Kinect
Trang 75
Tnh tin trc Y xung mt on 60 cm v tnh tin trc Z v sau mt on 9
cm.
2 1
2 1
2 1
0
60 cos sin 60
9 sin cos 9
X X X
Y Y Y Z
Z Z Y Z
| |
| |
( ( ( (
( ( ( (
= + =
( ( ( (
( ( ( ( + +
o chiu Y.
3 2
3 2
3 2
cos sin 60
sin cos 9
X X X
Y Y Y Z
Z Z Y Z
| |
| |
( ( (
( ( (
= = + +
( ( (
( ( ( + +
Hnh 7.7 cho ta thy h trc Kinect sau khi thc hin cc php chuyn i. H
trc c cc chiu X, Y, Z tng ng vi cc mu , xanh l, xanh dng.
Hnh 7.7: Ta Kinect trc (tri) v sau (phi) khi chuyn trc
Trang 76
Chng 8: Chng trnh iu khin
Ni dung chnh
8.1 Ni dung chng trnh iu khin
8.2 Gii thut chng trnh do my tnh x l
8.3 Gii thut chng trnh do vi iu khin x l
Chng 8: Chng trnh iu khin
Trang 77
8.1 Ni dung chng trnh iu khin
Hnh 8.1: Ni dung chng trnh iu khin
Hnh 8.1 khi qut cho ta cc khi chnh v nhim v ca cc khi. My tnh kt
hp Kinect cng cc cng c lp trnh to nn khi s 1, mch vi iu khin v mch
cng sut to nn khi s 2, khi s 3 l m hnh c kh ca mobile robot.
Khi 1 ng vai tr nh cp mt v b no ca robot, gip robot phn tch khng
gian pha trc v truyn lnh thch hp xung khi s 2. Khi 2 s thc hin iu
khin robot (khi 3) theo ng yu cu ca khi 1, cc ng tc nh quay tri, phi
hay chy tin, li vi mt gi tr xc nh. Sau khi tnh ton ta t tn hiu phn hi
encoder trn robot, gi tr v tr hin ti s c khi 2 truyn li cho khi 1 cp nht
v hin th.
8.2 Gii thut chng trnh do my tnh x l
My tnh thc hin cng vic iu khin bng ba lung x l song song: x l
Kinect, x l k hoch di chuyn ca robot v x l giao tip vi vi iu khin.
Chng 8: Chng trnh iu khin
Trang 78
Hnh 8.2: X l a tin trnh
Lung Kinect (s 1) lm nhim v phn tch mi trng, a ra cc thng tin v
kch thc, v tr vt cn nu xut hin trc robot, c trnh by mc 4.3.
Lung giao tip vi vi iu khin (s 3) theo chun RS232 lm nhim v truyn
lnh xung v nhn thng tin v tr ln t vi iu khin.
Lung x l k hoch di chuyn ca robot s dng thng tin t lung s 1 v
lung s 3, iu khin robot di chuyn hp l v ch.
Hnh 8.3: Giao din chng trnh iu khin
Hnh 8.3 l giao din iu khin vit bng MFC trong b Visual Studio 2010 ca
Microsoft. V tr ch cn di chuyn n s c nhp vo khi Target Coordinate;
ta hin ti ca robot s t ng hin th trong khi Current Coordinate; ty chn
Chng 8: Chng trnh iu khin
Trang 79
cc thng s cho giao tip RS232, trng thi cng giao tip c t trong khi Serial
Control; trong khi Robot Status hin th cc thng tin v c pht hin vt cn, c
pht hin ng trng, s lng vt cn v trng thi robot v tr ch hay cha.
Tilt Control iu khin gc ngng Kinect.
nh dng iu khin qua giao tip RS232
Lnh iu khin truyn xung qua giao tip ni tip c nh dng theo mu
sau: *[k t iu khin][gi tr iu khin]#, trong :
k t iu khin: R(quay phi), L(quay tri), F(i thng), T(i thng v
ch).
gi tr iu khin: l gi tr gc quay hay qung ng di chuyn, nh
dng kiu d liu double, ly ba ch s thp phn, n v l centimet.
*, #: l cc k t c bit cho bit k t bt u v kt thc chui.
Lnh nhn ln t vi iu khin c dng: X[gi tr 1]Y[gi tr 2]A[gi tr 3]N,
trong :
X, Y, A: ln lt l k t bt u cho cc gi tr i din ta X, Y, gc
hin ti ca robot. N l k t kt thc chui.
gi tr 13: tng ng l gi tr ta , gc hin ti ca robot.
Gii thut iu khin robot ng x vi vt cn trn ng i n ch:
Chng 8: Chng trnh iu khin
Trang 80
Start
Khi to cc gi tr
u
- Tnh gc quay
v ch
- Gi lnh quay
Robot thc
hin xong?
Gi lnh di chuyn
v ch
D < 1.3 mt &
ng trng?
C vt cn?
Robot thc
hin xong?
End
No
No
Yes
Tnh khong cch
ti ch D
No
Yes
No
- Tnh gc quay
ti u trnh vt
- Gi lnh quay
Robot thc
hin xong?
Yes
No
ng trng?
i mt on an ton
Robot thc
hin xong?
No Yes
Yes
Yes
khng
gian cho robot
lch qua?
Yes
- Tnh gc quay
ngc li trnh vt
- Gi lnh quay
Robot thc
hin xong? No
ng trng?
Yes
No
Yes
- Tnh khong cch di chuyn
sao cho cch vt 55 cm
- Gi lnh di chuyn
No
Robot thc
hin xong? No
No
- Tnh gc quay trnh vt
theo hng c
- Gi lnh quay
Yes
Robot thc
hin xong?
No
Yes
i mt on an ton
Robot thc
hin xong?
No
Yes
- Tnh gc quay song song
vi hng ban u
- Gi lnh quay
Robot thc
hin xong?
No
Yes
ng trng?
Yes
No
i mt on an ton
Robot thc
hin xong?
No
Yes
Yes
Hnh 8.4: S gii thut iu khin robot do my tnh x l
Chng 8: Chng trnh iu khin
Trang 81
Mt s hm ch :
Tnh gc quay v ch:
Hnh 8.5: Tnh gc quay v ch
Hnh 8.5 m t mt trng hp ch nm bn phi robot, lc ny robot s quay
mt gc anpha v bn phi hng v ch. Ta c cch tnh cho cc trng hp nh
sau (ta gi s y_cur lun dng, robot lun di chuyn v pha trc):
y_target - y_cur
gamma = arctan( )
x_target - x_cur
gamma < 0 (ch nm bn tri robot):
0 angle_cur < PI + gamma:
+ anpha = PI angle_cur + gamma
+ Quay v bn TRI robot
PI + gamma angle_cur < 2*PI + gamma:
+ anpha = angle_cur (PI + gamma)
Chng 8: Chng trnh iu khin
Trang 82
+ Quay v bn PHI robot
2*PI + gamma angle_cur 2*PI:
+ anpha = 3*PI - angle_cur + gamma
+ Quay v bn TRI robot
gamma 0 (ch nm bn phi robot):
0 angle_cur < gamma:
+ anpha = gamma - angle_cur
+ Quay v bn TRI robot
gamma angle_cur < PI + gamma:
+ anpha = angle_cur - gamma
+ Quay v bn PHI robot
PI + gamma angle_cur 2* PI:
+ anpha = 2*PI - angle_cur + gamma
+ Quay v bn TRI robot
Tnh gc quay ti u trnh vt:
Mc ch l iu khin robot theo hng c gc quay nh hn khi trnh vt cn.
Cc trng hp c th xy ra l:
Chng 8: Chng trnh iu khin
Trang 83
Vt cn nm bn tri robot
Hnh 8.6: Vt cn bn tri robot
Quan st hnh 8.6, gc quay cn thit thot khi vt cn l anpha(o )
khi robot v tr cch vt cn mt on. Gc anpha hon ton tnh c
khi ta bit c ta max_point, gc | v ln OL.
_ ax
1
os ( )
'
x m
c
O L
o | | |
' = + = +
Quay phi:
1
_ ax
sin ( )
'
x m
O L
o | | |
' = + = +
Chng 8: Chng trnh iu khin
Trang 86
Tnh gc quay ngc li trnh vt:
Nh cc trng hp quay mt gc xc nh n vt cn, nhng thay v quay theo
hng c gc quay nh hn th robot s quay theo hng ngc li. Cng thc tnh
hon ton tng t.
i mt on an ton:
Sau khi quay mt gc trnh vt, robot s di chuyn tip mt on thot hon
ton khi vt.
Hnh 8.9: i mt on an ton v pha phi vt cn
Qung ng di chuyn an ton thot khi vt cn bng on OH cng thm
mt gi tr c nh va deltaMove( y chn deltaMove = 15 cm da trn thc
nghim ).
Chng 8: Chng trnh iu khin
Trang 87
i bn phi vt cn:
' cos( )
1
_ ax
2 2 1
( _ ax _ ur) ( _ ax _ ur) os( tan ( ))
_ ax
OH OM
x m
x m x c y m y c c
y m
o u
o
=
= +
i bn tri vt cn:
' cos( )
1
_ in
2 2 1
( _ in _ ur) ( _ ax _ ur) os( tan ( ))
_ ax
OH OM
x m
x m x c y m y c c
y m
o u
o
=
= +
C bo c vt cn (Obstacle_flag) v ng trng (freePath_flag):
Hnh 8.10: C bo c vt cn v ng trng
Hnh 8.10 biu din khng gian xut hin vt cn pha trc robot, lc cc c
tng ng s bt ln trong cc vng xc nh. Tm nhn xa ca robot gii hn
khong cch 140 cm.
Chng 8: Chng trnh iu khin
Trang 88
C bo khng gian cho robot lch qua:
Hnh 8.11: Khng gian cho robot lch qua
C bo khng gian cho robot lch qua s bt ln 1 khi khong cch H
1
H
2
(hnh
8.11) ln cho robot lt qua (khng gian cho robot lt qua khi H
1
H
2
>50 cm).
Trong OH
1
c tnh nh trong hm i mt on an ton, OH
2
tng t, ta c:
2 4
4 2 2 1
4 4
4
' ' cos( )
( _ ur) ( _ ur) cos(tan ( ))
O H O M
x
x x c y y c
y
_
=
= +
' '
1 2 2 1
H H O H O H =
8.3 Gii thut chng trnh do vi iu khin x l
Cng vic iu khin ng c v tnh ton ta , thc hin giao tip vi my
tnh s c PIC 18F4550 x l. thc hin cc cng vic ny, PIC18F4550 kt hp
thng tin lnh t my tnh v tn hiu hi tip v t encoder thng qua cc ngt ngoi.
Sau y l s khi m t hot ng ca chng trnh chnh x l bi PIC18F4550:
Chng 8: Chng trnh iu khin
Trang 89
Start
Khi to cc module
Timer1_flag = 1
InitPID_flag = 1
- Khi to cc gi tr u
cho PID
- InitPID_flag = 0
- donePID_flag = 0
Target_flag = 1
- Tnh ton ta robot
- Gi thng tin ln my tnh
- Target_flag = 0
donePID_flag = 1
- Tnh ton ta robot
- Gi thng tin ln my tnh
- donePID_flag = 0
- Thc hin PID cho 2 bnh
xe (khi PID thc hin xong,
donePID_flag = 1)
- Timer1_flag = 0
Yes
No
Yes
No
No
Yes
Yes
No
Hnh 8.12: S gii thut trn
vi iu khin
Khi to cc module:
Khi to cc module s dng trn PIC: cc
port I/O, timer, ngt ngoi, PWM v giao
tip RS232.
Timer1_flag:
C bo bng 1 khi timer1 trn sau 5 ms,
phc v cho vic ly mu, tnh ton PID.
InitPID_flag:
C bo khi to PID, bng 1 khi nhn
c lnh t my tnh.
Khi to cc gi tr u cho PID:
Khi to cc gi tr ban u cho tnh ton
PID: cc thng s k
p
, k
i
, k
d
; gi tr t.
Target_flag:
C bo ln 1 khi robot ang di chuyn v
ch v gp vt cn.
Tnh ton ta robot:
Tnh ton ta robot, c trnh by
ti mc 7.2.
Gi thng tin ln my tnh:
Thng tin v ta v gc hin ti ca
robot: (x_cur, y_cur, angle_cur).
Thc hin PID trn hai bnh xe:
Da trn gii thut PID v tr c trnh
by mc 6.2. PID c thc hin xong
khi sai s nm trong khong cho php (xp
x bng khng), lc donePID_flag bng
1.
Kt lun v hng pht trin
Trang 90
KT LUN V HNG PHT TRIN
Vi mc ch xy dng m hnh robot c kh nng di chuyn n im ch xc
nh trc, trnh chng ngi vt v n ch an ton. Nhm p dng cng ngh x
l nh 3D cho phn th gic ca robot vi thit b chi game Kinect, p ng c
tin cy cao hn so vi cc cm bin truyn thng. Qu trnh thc hin hon thnh
nhng nhim v sau:
- Thit k v thi cng m hnh mobile robot hon chnh.
- Chng trnh x l nh khi phc c khng gian pha trc robot di dng
3D, cung cp y thng tin v mi trng cho robot.
- Tc x l nh trn my tnh khong 13-15 fps, p ng thi gian thc cho
robot.
- Hon thnh k hoch di chuyn n ch c vt cn vi sai s chp nhn c
mi trng trong nh.
Mt s im cn khc phc:
- Phn c kh ca mobile robot khng c hon ho nn nh hng n sai s
khi di chuyn. im ny, mt con robot omi s p ng y cho ng dng
robot di chuyn trong nh vi s linh hot, kt cu gn nh v s chnh xc cao.
Kt lun v hng pht trin
Trang 91
Mt con robot rt ng quan tm l iRobot vi cc la chn khc nhau, gi dao
ng t 130$ 300$, chi tit xem ti: http://store.irobot.com
- Phn th gic robot ch quan st c khng gian pha trc robot nn robot c
th s ng vt cn bn hng hay pha sau khi di chuyn li. Vn ny c th
c gii quyt bng bic trang b thm cc cm bin pht hin vt cn xung
quanh robot; hoc thit k thm h thng xoay cho phn th gic, th gic s xoay
mt gc xc nh trc khi quyt nh di chuyn.
- Tch hp thm cc cm bin nh v cn thit tng s chnh xc.
- Chng trnh c vit trn mi trng Windows vi s h tr t th vin Point
Cloud cn nhiu hn ch, nht l tc x l. S ti u nht nu vit trn mi
trng Linux v nu pht trin thnh sn phm thng mi s h c gi thnh
phn mm xung, tng tnh cnh tranh.
Hng pht trin:
- Mc ch ca ti to ra nn tng cho vic xy dng mt m hnh robot dch
v hon chnh: mt robot c kh nng lm cc cng vic thay cho con ngi
nh: bng b n, lau nh, hng dn khch hng,
- Bn cnh , vi sc mnh ca thit b Kinect c th gip ta xy dng c bn
(mapping) dng 3D. V vic tch hp ln robot s gip ta xy dng c bn
nhng khu vc m con ngi khng th vo c.
Ti liu tham kho
Trang 92
TI LIU THAM KHO
[1] http://en.wikipedia.org/wiki/Kinect
[2] http://www.ros.org/wiki/kinect_calibration/technical
[3] Mikkel Viager, Analysis of Kinect for Mobile Robots, Technical University of
Denmark, p. 11
[4] http://www.primesense.com/en/technology
[5] Jacob Kjr. A Qualitative Analysis of Two Automated Registration Algorithms In
a Real World Scenario Using Point Clouds from the Kinect. June 27, 2011.
[6] http://nicolas.burrus.name/index.php/Research/KinectCalibration
[7] http://openkinect.org/wiki/Main_Page
[8] http://codelaboratories.com/nui
[9] http://openni.org/Documentation
[10] http://kinectforwindows.org
[11] http://www.brekel.com/?page_id=671
[12] http://pointclouds.org/documentation
[13] http://www.dientuvietnam.net/forums. Hin tng crosstalk.
[14] http://www.roborealm.com/tutorial/Obstacle_Avoidance
[15] Radu Bogdan RUSU. PointCloud(2) processing in ROS. May 2, 2010
[16] http://en.wikipedia.org/wiki/RANSAC
[17] http://tme.com.vn/Product.aspx?id=826&CateId=114#page=pro_info
[18] http://www.hocavr.com/index.php/app/dcservo
[19] John A. Shaw, The PID Control Algorithm , 2003
[20] http://www.uit.edu.vn/data/gtrinh/TH109/Htm/Chuong6.htm
[21] Erick Ball, Greg Taschuk. Reverse Engineering the Kinect Stereo Algorithm
[22] Michael YingYang, Wolfgang Forstner. Plane Detection in Point Cloud Data.
January 25, 2010.
Ph lc 1
Trang 93
PH LC 1: Kt hp th vin OpenNI v Code Laboratories Kinect (CL)
s dng chc nng iu khin ng c Kinect.
Nh trnh by trong mc 3.2, th vin OpenNI khng h tr cho vic iu
khin ng c ca Kinect. Sau y l th thut bng vic ci t thm CL. C OpenNI
v CL u ng vai tr nh driver truy xut phn cng Kinect nn s xung t nu ci
t ng thi hai th vin ny.
Bc 1:
Ci t CL bnh thng v m bo cha ci OpenNI v cc chng trnh i km
trc (nu c th phi g b).
CL c th ti v ti: http://codelaboratories.com/nui
Bc 2:
M ca s Computer Management, v chn Uninstall cc mc di CL devices:
NUI audio, NUI camera, NUI Motor.
Ph lc 1
Trang 94
Bc 3:
Ci t OpenNI v cc chng trnh km theo.
Bc 4:
Vo li ca s nh bc 1, lc ny Kinect c nhn bi PrimeSense. Ta nhp
phi chut trn Kinect Motor v chn Update Driver Software
V duyt ti th mc driver ca CL:
Ph lc 1
Trang 95
Lc ny ta c th s dng chc nng iu khin ng c Kinect trn th vin
OpenNI kt hp vi CL.
Ph lc 2
Trang 96
PH LC 2: Cch u dy dng pin 12V thay adapter v to gn ln
robot cho Kinect
Cch u dy dng pin 12V thay adapter cho Kinect
to s linh ng cho robot, ta khng dng ngun adapter m thay bng ngun
pin. u tin ct dy adapter ra:
Sau dng u cm DC cho pin v on dy trn:
Ph lc 2
Trang 97
To cho Kinect gn ln robot
y l bc quan trng nhm gi s an ton cho Kinect v trnh b rung khi di
chuyn (s nh hng ti kt qu x l nh trn my tnh).
u tin tho phn gn trn Kinect:
Ph lc 2
Trang 98
Sau khi tho:
Khoan bn l v gn bn c t trong ra:
V kt qu cui cng:
Ph lc 3
Trang 99
PH LC 3: Kch thc robot
Gm cc kch thc c bn cc chiu trn cc hnh chiu ng, bng v cnh. n v
l milimet.