Giải bài toán cục bộ tránh vật cản cho robot tự hành
Một phương pháp tránh vật cản mới cho robot tự hành đã và đang được phát triển và ngày càng hoàn thiện, gọi là kỹ thuật dẫn hướng thích nghi. Với phương pháp này cho phép đơn giản hóa bài toán cục bộ.
Bài báo này tập trung vào việc ứng dụng phương pháp dẫn hướng thích nghi để điều khiển mô hình robot tự hành tránh vật cản. Các cảm biến gắn trên robot sẽ phát hiện vật cản để điều khiển hệ thống dẫn hướng đưa robot đi từ điểm xuất phát tới điểm đích mà không chạm vào các vật cản.
8 trang |
Chia sẻ: lvcdongnoi | Lượt xem: 2871 | Lượt tải: 1
Bạn đang xem nội dung tài liệu Giải bài toán cục bộ tránh vật cản cho robot tự hành, để tải tài liệu về máy bạn click vào nút DOWNLOAD ở trên
Gi¶I bµI to¸n côc bé tr¸nh vËt c¶n cho
robot tù hµnh
TS. NguyÔn V¨n Gi¸p
KS. Tõ DiÖp C«ng Thµnh, KS. §oµn ThÕ Th¶o, KS. NguyÔn V¨n Trung
Bé M«n C¬ §iÖn Tö, Khoa C¬ KhÝ, Tr−êng §¹i Häc B¸ch Khoa Tp Hå ChÝ Minh
Email: nvgiap@dme.hcmut.edu.vn, tdcthanh@dme.hcmut.edu.vn
Tãm t¾t
Mét ph−¬ng ph¸p tr¸nh vËt c¶n míi cho robot tù hµnh ®· vµ ®ang ®−îc ph¸t triÓn vµ ngµy cµng hoµn thiÖn, gäi
lµ kü thuËt dÉn h−íng thÝch nghi (Adaptive navigation). Víi ph−¬ng ph¸p nµy cho phÐp ®¬n gi¶n hãa bµi to¸n
côc bé. Bµi b¸o nµy tËp trung vµo viÖc øng dông ph−¬ng ph¸p dÉn h−íng thÝch nghi ®Ó ®iÒu khiÓn m« h×nh
robot tù hµnh tr¸nh vËt c¶n. C¸c c¶m biÕn g¾n trªn robot sÏ ph¸t hiÖn vËt c¶n ®Ó ®iÒu khiÓn hÖ thèng dÉn
h−íng ®−a robot ®i tõ ®iÓm xuÊt ph¸t tíi ®iÓm ®Ých mµ kh«ng ch¹m vµo c¸c vËt c¶n.
Abstract
A local navigation technique with obstacle avoidance, called adaptive navigation, had been developed and
perfected. This technique allows to simplify the local problem. This paper focuses on the application of
adaptive navigation technique to control a mobile robot. Sensors have to be used to detect obstacles and
navigation system must be incorporated into the robot to navigate robot from start point reaching to the goal
with obstacle avoidance.
1. GIíI THIÖU
Bµi to¸n dÉn h−íng cho robot cã thÓ chia lµm hai lo¹i: bµi to¸n toµn côc (global) vµ bµi to¸n
côc bé (local), tïy theo m«i tr−êng lµm viÖc cña robot. ë bµi to¸n toµn côc, m«i tr−êng lµm
viÖc cña robot ®· biÕt tr−íc vµ tõ ®ã ®−êng ®i tr¸nh vËt c¶n ®−îc x¸c ®Þnh [5]. Trong bµi to¸n
côc bé, m«i tr−êng lµm viÖc cña robot hoµn toµn ch−a biÕt tr−íc, hay chØ biÕt mét phÇn. §èi
víi bµi to¸n nµy c¸c lo¹i c¶m biÕn g¾n trªn robot sÏ ph¸t hiÖn vËt c¶n ®Ó ®iÒu khiÓn hÖ thèng
dÉn h−íng ®−a robot ®i tõ ®iÓm xuÊt ph¸t tíi ®iÓm ®Ých mµ kh«ng ch¹m vµo c¸c vËt c¶n. Néi
dung bµi b¸o nµy chØ tËp trung gi¶i quyÕt bµi to¸n côc bé.
Mét ph−¬ng ph¸p dÉn h−íng ®−îc ph¸t triÓn rÊt sím ®ã lµ ph−¬ng ph¸p ®i theo ®−êng biªn
vËt c¶n (The wall-following method) [2]. ë ph−¬ng ph¸p nµy, robot di chuyÓn däc theo vËt
c¶n víi mét kho¶ng c¸ch ®−îc ®Þnh tr−íc. KiÓu dÉn h−íng nµy th−êng ®−îc sö dông cho
nh÷ng robot lµm nh÷ng c«ng viÖc nh−: robot lµm viÖc trªn c¸c ®−êng èng, robot lau nhµ, hót
bôi. Víi ph−¬ng ph¸p ph¸t hiÖn biªn cña vËt c¶n (Edge detection method) [3,8], robot sö
dông thuËt to¸n ®Ó t×m vÞ trÝ biªn cña vËt c¶n vµ t¹o ra c¸c ®iÓm ®Ých phô (subgoal) råi thùc
hiÖn gi¶i thuËt t×m ®−êng ®i tèi −u ®Õn c¸c ®iÓm ®Ých phô ®ã. §Ó cã thÓ x©y dùng ®−îc b¶n
®å vÞ trÝ vËt c¶n, ng−êi ta sö dông ph−¬ng ph¸p chia l−íi (Certainty Grid method) [4], khi ®ã
kh«ng gian lµm viÖc cña robot ®−îc chia thµnh nhiÒu m¶ng trong kh«ng gian hai chiÒu, c¸c
phÇn tö (square elements) chøa mét gi¸ trÞ nhÊt ®Þnh ®Ó chØ cã hay kh«ng vËt c¶n ë vÞ trÝ ®ã.
§èi víi nh÷ng robot cã tèc ®é di chuyÓn cao, ng−êi ta sö dông ph−¬ng ph¸p Potetial Field
Methods [6,7].
Bµi b¸o nµy tËp trung vµo ph−¬ng ph¸p dÉn h−íng thÝch nghi [1]. ë ®©y ®iÓm ®Çu, ®iÓm ®Ých
vµ kÝch th−íc h×nh häc cña robot ®· biÕt tr−íc, cßn h×nh d¸ng h×nh häc vµ täa ®é cña vËt c¶n
ch−a ®−îc biÕt. H−íng di chuyÓn cña robot ®−îc x¸c ®Þnh dùa vµo gãc h−íng tíi ®iÓm ®Ých
vµ tÝn hiÖu tõ c¶m biÕn. −u ®iÓm cña ph−¬ng ph¸p nµy lµ sö dông Ýt c¶m biÕn vµ luËt dÉn
h−íng ®¬n gi¶n h¬n so víi c¸c ph−¬ng ph¸p kh¸c.
∆−∆
∆+∆=
12
12
2 ss
ssTRD T
ss 12 ∆−∆=∆Ψ (1)
( )
( )
Ψ
Ψ
∆∆
∆−∆=
∆
∆
sin
cos
xy
yx
Y
X (2)
( )
( )
( )
( )
( )
( )
( )
( )
( )
∆
∆
∆Ψ
+
Ψ
=
Ψ
−
−
−
iD
iD
iD
iD
iD
iD
iD
iD
iD
Y
X
Y
X
Y
X
1
1
1
(3)
2. M« H×NH HãA Vµ §éNG HäC ROBOT
Hai b¸nh xe phÝa tr−íc cña robot (xem h×nh 1 a) ®−îc dÉn ®éng ®éc lËp b»ng hai ®éng c¬
b−íc th«ng qua bé truyÒn ®ai, cßn b¸nh sau ®Ó ch¹y kh«ng.
H×nh 1 : M« h×nh vµ ®éng häc robot.
Gäi ∆s1, ∆s2 lÇn l−ît lµ ®o¹n dÞch chuyÓn cña hai b¸nh tr−íc, T lµ kho¶ng c¸ch gi÷a hai b¸nh
xe (h×nh 1 b). Tõ ®ã ta tÝnh ®−îc b¸n kÝnh gãc quay RD vµ gãc dÞch chuyÓn ∆ψ.
Khi ∆s1 = - ∆s2 th× robot quay quanh ®iÓm gi÷a hai b¸nh xe D.
Khi ∆s1 = ∆s2 th× robot ®i theo quÜ ®¹o lµ ®−êng th¼ng.
DÞch chuyÓn theo hai ph−¬ng trong hÖ täa ®é tham chiÕu viÕt d−íi d¹ng ma trËn :
VÞ trÝ cña robot t¹i thêi ®iÓm thø i ®−îc tÝnh nh− sau :
3 PH−¬NG PH¸P DÉN H−íNG THÝCH NGHI
Ký hiÖu sö dông:
x(t), y(t): vÞ trÝ cña robot t¹i thêi ®iÓm t.
(a) (b)
−−= (t)*θθ(t)η(t).θ (4)
>−
≤+= θ(t)φ(t)π;φ(t)
θ(t)φ(t)π;φ(t)
(t)θ *t (5)
( )πφφ 2(t)0;
x(t)
y(t)tan(t) 1 <≤= − (6)
v(t): vËn tèc cña robot ë thêi ®iÓm t.
θ(t): gãc chØ h−íng cña robot t¹i thêi ®iÓm t (0 ≤ θ(t) < 2π) so víi trôc x.
θo: gãc chØ h−íng cña robot t¹i thêi ®iÓm ban ®Çu so víi trôc x.
(xo,yo) , (0,0): vÞ trÝ ®Çu vµ vÞ trÝ cuèi cña robot.
ϕ(t): gãc h−íng ®Ých hîp bëi ®o¹n th¼ng qua hai ®iÓm (x(t), y(t)) vµ (0,0) so víi trôc x.
θ*(t): gãc dÉn h−íng tÝnh to¸n cho robot tíi ®Ých hay tr¸nh vËt c¶n.
θ*t(t): gãc dÉn h−íng tÝnh to¸n cho robot tíi ®Ých.
θa(t): gãc dÉn h−íng tÝnh to¸n cho robot tr¸nh vËt c¶n.
Trªn c¬ së lý thuyÕt vµ theo tµi liÖu [1], cã luËt dÉn h−íng nh− sau :
Kh«ng gian lµm viÖc lý thuyÕt cña robot nh− h×nh 2. Khi robot kh«ng ph¸t hiÖn vËt c¶n th×
θ*(t) = θ*t(t).
Víi :
H×nh 2: Kh«ng gian lµm viÖc cña robot trong mÆt ph¼ng 2-D
C¸ch øng xö cña robot khi ph¸t hiÖn vËt c¶n.
Robot sö dông 3 c¶m biÕn kho¶ng c¸ch ®Ó x¸c ®Þnh kho¶ng c¸ch tõ robot tíi vËt c¶n. Gäi dc,
dl, dr lµ kho¶ng c¸ch theo 3 ph−¬ng, dl, dr ®Æt lÖch so víi dc mét gãc α. Khi c¶m biÕn kh«ng
ph¸t hiÖn ®−îc vËt c¶n hay kho¶ng c¸ch d > dmax, ngâ ra cña sensor b»ng -1.
• Ph¸t hiÖn ba vÞ trÝ : h×nh 3(a)
Gãc dÉn h−íng tr¸nh vËt c¶n θa(t):
Víi : ε = tan-1((dcosα - dc)/dsinα) ( ε < π/2 )
d = max(dl,dr)
<−
≥+=
0:1
0:1
)sgn(
x
x
x
H×nh 3: C¸c tr−êng hîp tr¸nh vËt c¶n cho robot tù hµnh
( )
−−+= ε
2
π
ddsgnθ(t)(t)θ rl*a (7)
• Ph¸t hiÖn hai vÞ trÝ :
Ta cã : (xem h×nh 3b) dc > drcosα vµ dl < 0. KÕt luËn : bªn tr¸i kh«ng cã vËt c¶n.
Trªn h×nh 3c th× dc < dlcosα vµ dr < 0, suy ra bªn ph¶i kh«ng cã vËt c¶n. Tuy nhiªn, cã thÓ
cã vËt c¶n ë bªn ph¶i nh−ng t¹i thêi ®iÓm tøc thêi c¶m biÕn kh«ng ph¸t hiÖn ®−îc. §Ó ®¶m
b¶o tr¸nh ®−îc vËt c¶n, robot nªn quay sang tr¸i mét gãc ( π/2 - ε ).
Khi dc <0 (xem h×nh 3d) robot kh«ng cÇn quay (gi¶ thuyÕt kho¶ng c¸ch gi÷a hai vËt c¶n lín
h¬n ®−êng kÝnh cña robot).
• Ph¸t hiÖn mét vÞ trÝ :
Ta cã : (xem h×nh 3e) dc < 0. T−¬ng tù nh− tr−êng hîp ë h×nh 3d, robot kh«ng cÇn quay.
Khi dc > 0 (h×nh 3f) robot cÇn ph¶i quay. Tuy nhiªn, dl, dr < 0 tøc lµ bªn tr¸i vµ bªn ph¶i ®Òu
kh«ng cã vËt c¶n, tr−êng hîp nµy cho robot quay sang tr¸i mét gãc π/2.
4. §IÒU KHIÓN
S¬ ®å khèi m¹ch ®iÒu khiÓn robot b»ng m¸y tÝnh nh− h×nh 4a.
V× lµ m« h×nh thÝ nghiÖm nªn ta chän ®iÒu khiÓn b»ng m¸y tÝnh ®Ó thuËn tiÖn cho viÖc
nghiªn cøu ®¸p øng cña hÖ thèng. Nh− ®· biÕt cæng m¸y in cña m¸y tÝnh cã thÓ giao tiÕp víi
thiÕt bÞ ngo¹i vi qua 12 ®−êng tÝn hiÖu (8 ®−êng xuÊt vµ 5 ®−êng nhËp). §Ó t¨ng sè ®−êng
xuÊt nhËp ta cã thÓ sö dông thªm mét sè lo¹i IC chuyªn dïng. Ngoµi ra ta cã thÓ sö dông c¸c
kit vi xö lý, ch−¬ng tr×nh n¹p trùc tiÕp lªn ROM.
Gi¶i thuËt ®iÒu khiÓn (h×nh 4b) t−¬ng ®èi ®¬n gi¶n nh−ng ®¶m b¶o robot tr¸nh ®−îc vËt c¶n
vµ vÒ ®óng ®iÓm ®Ých. Ch−¬ng tr×nh ®iÒu khiÓn ph¶i tháa m·n nh÷ng yªu cÇu sau :
- Lu«n cËp nhËt th«ng tin vÒ vÞ trÝ vµ gãc cña robot trong mÆt ph¼ng.
- Xö lý tÝn hiÖu c¶m biÕn vµ tÝnh gãc tr¸nh vËt c¶n cho robot θ*a(t).
- So s¸nh c¸c gi¸ trÞ gãc lÖch, gãc h−íng ®Ých vµ gãc tr¸nh vËt c¶n ®Ó x¸c ®Þnh gãc
dÉn h−íng thÝch hîp θ*(t).
( )
−−+= ε
2
π
ddsgnθ(t)(t)θ rc*a (8)
−+= ε
2
πθ(t)(t)θ *a (9)
θ(t)(t)θ *a = (10)
θ(t)(t)θ *a = (11)
2
πθ(t)(t)θ *a += (12)
Tãm t¾t thuËt to¸n x¸c ®Þnh gãc dÉn h−íng θ*(t) cho robot :
Begin
If dc 0
Then θ*(t) = θ*a(t)
Else if dc > 0
Then if θ*t(t) ≥ θ*a(t) ≥ θ(t), or θ*t(t) ≤ θ*a(t) ≤ θ(t)
Then θ*(t) = θ*t(t)
Else θ*(t) = θ*a(t)
End if
Else if dl < 0 and θ*t(t) ≥ θ(t), or dr < 0 and θ*t(t) ≤ θ(t)
Then θ*(t) = θ*t(t)
Else θ*(t) = θ*a(t)
End if
End.
M« h×nh robot ®−îc chÕ t¹o t¹i Bé m«n C¬ §iÖn Tö, Khoa C¬ KhÝ tr−êng §¹i Häc B¸ch
Khoa TP. Hå ChÝ Minh ®Ó kiÓm chøng gi¶i thuËt ®iÒu khiÓn cã h×nh d¹ng nh− trªn h×nh 5.
Qua nhiÒu lÇn thÝ nghiÖm, robot ®· ®i ®Õn ®iÓm ®Ých mµ kh«ng ch¹m vµo c¸c vËt c¶n.
H×nh 4: a) s¬ ®å khèi m¹ch ®iÒu khiÓn
b) s¬ ®å gi¶i thuËt ®iÒu khiÓn
Kh«ng
START
®i th¼ng
STOP
Quay Robot
h−íng ®Õn ®Ých
KiÓm
tra ®iÓm
®Ých
Sai
ii
®óng
Cã vËt c¶n
BÎ l¸i chuyÓn h−íng robot
®äc
c¶m biÕn
(b)
M¸y tÝnh
M¹ch xö lý
tÝn hiÖu C¶m biÕn
M¹ch c«ng suÊt ®iÒu khiÓn
®éng c¬ b−íc
(a)
5. KÕT LUËN
ViÖc øng dông kü thuËt dÉn h−íng thÝch nghi nµy gióp ta ®¬n gi¶n hãa bµi to¸n dÉn h−íng
tr¸nh vËt c¶n cho robot tù hµnh trong bµi to¸n ®iÒu khiÓn côc bé. Ph−¬ng ph¸p nµy kh«ng
cÇn sö dông nhiÒu c¶m biÕn vµ luËt dÉn h−íng d−íi d¹ng ph−¬ng tr×nh vi ph©n bËc nhÊt. Tuy
nhiªn, víi ph−¬ng ph¸p nµy ta kh«ng thÓ x¸c ®Þnh mét c¸ch ®Çy ®ñ biªn d¹ng cña vËt c¶n, ®Ó
lµm ®−îc ®iÒu nµy ta ph¶i xö lý ®ång thêi nhiÒu c¶m biÕn h¬n hoÆc sö dông camera. MÆc dï
cßn mét sè h¹n chÕ nh−ng trªn thùc tÕ nh÷ng robot lo¹i nµy ®−îc sö dông trong nhiÒu lÜnh
vùc nh− robot hµn, s¬n, vËn chuyÓn trong c¸c nhµ m¸y hay nh÷ng robot phôc vô trong sinh
ho¹t.
H×nh 5 : M« h×nh robot tù hµnh tr¸nh vËt c¶n.
TµI LIÖU THAM KH¶O
[1] ATSUSHI FUJIMORI, PETER N. NIKIFORUK, Adaptive Navigation of Mobile Robot
with Obstacle Advoidance, IEEE Transactions on Robotics and Automation, Vol-13, August
1997.
[2] BAUZIL, G., BRIOT, M. AND RIBES, P., "A Navigation Sub-System Using Ultrasonic
Sensors for the Mobile Robot HILARE." 1st In.. Conf. on Robot Vision and Sensory
[3] CROWLEY, J. L., "Dynamic World Modeling for an Intelligent Mobile Robot." IEEE
Seventh International Conference on Pattern Recognition, Proceedings July 30-August 2,
Montreal Canada, 1984, pp. 207-210.
[4] ELFES, A., "A Sonar-Based Mapping and Navigation System." Carnegie-Mellon
University The Robotics Institute, Technical Report, 1985, pp. 25-30.
[5] J. C. LATOMBE, Robot Motion Planning, Kluwer Academic Press, Norwell, MA, 1991.
[6] KHATIB, O., Real-Time Obstacle Avoidance for Manipulators and Mobile Robots, 1985
IEEE International Conference on Robotics and Automation, March 25-28, 1985.
[7] KROGH, B. H., A Generalized Potential Field Approach to Obstacle Avoidance Control
International Robotics Research Conference, Bethlehem, PA, August, 1984.
[8] R.S. AHLUWALLA, E.Y. HSU, Sensor-Based Obstruction Avoidance Technique for a
Mobile Robot, Journal of Robotic Systems, 1984.
Các file đính kèm theo tài liệu này:
- Giải bài toán cục bộ tránh vật cản cho robot tự hành.pdf