Uploaded by 20021585

9.Reactive Paradigm done

advertisement
1
2
- Sự ra đời của mô hình phản ứng là do sự không hài lòng về mô hình thứ bậc
và từ ý tưởng đến từ sinh học. Mặc dù nhiều hệ thống phản ứng có thể hoặc
không thể tuân thủ nguyên lý thông minh của sinh học, nhưng chúng đều bắt
chước những vấn đề trong sinh học
- Nhược điểm chính của cấu trúc thứ bậc là: phụ thuộc vào mô hình toàn cục
(global frame), sự phân chia ,nhiệm vụ (tasks) trong mô hình thứ bậc đều liên
quan tới nhau, vì thế robotics mang tiếng là một thiết kế hơn là khoa học, vấn
đề tiếp là sự không chắc chắn (uncertainty), sự không chắc chắn này có thể
đến từ nhiều phía như: ngữ nghĩa, nhiễu cảm biến, lỗi của thiết bị truyền động,
hoàn thành nhiệm vụ (khi nào thì robot thực sự hoàn thành nhiệm vụ)
- Cách phân chia nhiệm vụ trong cấu trúc thứ bậc được gọi là phân chia theo
chiều ngang
3
- Những hạn chế của phân chia nhiệm vụ theo chiều ngang đã được khắc phục
bằng cách phân chia theo chiều dọc, đây là cách phân chia mang tính thông
minh hơn.
- Trong phân chia theo chiều dọc: mỗi một phần tử (agents) sẽ bắt đầu với các
hành vi ban đầu và phát triển các lớp hành vi mới hoặc là sử dụng các hành vi
cũ, hoặc ức chế các hành vi cũ, hoặc tạo ra các hành vi mới tốt hơn. Mỗi lớp
(layer) sẽ truy cập dữ liệu cảm biến và thiết bị truyền động một cách độc lập
của bất kỳ lớp nào. Nếu có bất kỳ vấn đề nào xảy ra với hành vi tốt hơn thì
các hành vi lớp dưới vẫn hoạt động
4
- Thuộc tính cơ bản của mô hình phản ứng là tất cả các hành động/tác động
đều được thực hiện thông qua các hành vi
- Định nghĩa hành vi: là sự ánh xạ trực tiêp lối vào của cảm biến tới các hành
động của động cơ để thưc hiện được nhiệm vụ yêu cầu
- Schema: sơ đồ
5
- Mô hình phản ứng: bao gồm các sense và act gắn kết chặt chẽ với nhau vào
trong các behavior
6
- Vấn đề cảm nhận: mỗi một hành vi sẽ có các dữ liệu cảm biến lối vào xác
định. Các dữ liệu cảm biến lối vào có thể sử dụng cho một hành vi riêng biệt
hoặc dùng chung cho các hành vi khác nhau. Một hành vi sẽ không biết một
hành vi khác đang cùng sử dụng chung dữ liệu cảm biến lối vào. Việc sử dụng
nhiều cảm biến lối vào cho phép tang độ chính xác của phép đo. Quá trình này
gọi là sensor fusion
- Chú ý mô hình này ngược với mô hình của thế giới toàn cục trong mô hình
thứ bậc ở chỗ: cảm nhận ngay lập tức có sẵn tới perceptual schema và đưa ra
hành động nhanh, giảm quá trình xử lý tính toán
- Đến đây mô hình phản ứng sẽ có 2 vấn đề chính cần quan tâm đó là sensor
fusion và cách thức kết hợp các acturators để tạo ra một lối ra điều khiển duy
nhất???
7
- Sensor fusion: là một khái niệm được sử dụng rộng rãi cho quá trình kết hợp
thông tin từ nhiều cảm biến thành một cảm nhận duy nhất
- Sensor fission: phân chia cảm biến, mỗi cảm biến đưa vào một behavior,
trường hợp sensor fusion này cho các robot sử dụng các loại cảm biến đơn
giản, cho các ứng dụng robot thời kỳ đầu.
8
- Sensor fusion định hướng hành động: bất kỳ cảm biến nào hoặc tất cả các
cảm biến đều có thể kích hoạt và tác động tới hành vi.
- Định hướng hành động để nhấn mạnh rằng dữ liệu cảm biến đang được biến
đổi vào trong một biểu diễn cho một hành vi đặc biệt cốt để trợ giúp hành động
cụ thể chứ không phải để xây dựng mô hình thế giới
- Sensor fashion: trong phương pháp định hướng hành động hành vi có thể sử
dụng một hoặc nhiều cảm biến, từ đó đưa ra sensor fashion có thêm phần lựa
chọn thứ tự của các cảm biến lối vào
9
- Triggering: kích hoạt các hành vi hay lựa chọn hành vi
- Có nhiều kỹ thuật để kết hợp các actions tạo thành một overall action hoặc
overall command. Trong đó có 2 kỹ thuật nổi tiếng và được sử dụng nhiều là
subsumption (xếp gộp) và potentital field (trường thế)
10
11
- Có 4 khía cạnh cần quan tâm trong cấu trúc xếp chồng theo cách tiếp cận về
phân tách và điều khiển:
+ các mô đun được nhóm thành các lớp khả năng: các lớp sẽ phản ánh thứ tự
thông minh hoặc khả năng thực hiện. Các lớp thấp hơn đóng gói các hàm cơ
bản như tránh va chạm trong khi các lớp cao hơn tạo ra các hành động định
hướng mục tiêu như lập bản đồ. Một trong các lớp có thể được xem như là một
hành vi của một nhiệm vụ cụ thể
+các mô đun ở lớp cao có thể bỏ qua hoặc xếp gộp các lối ra của các hành vi ở
lớp thấp hơn: do các lớp hành vi hoạt động đồng thời và độc lập nên cần có một
cơ chế để điểu khiển xung đột. Giải pháp trong cấu trúc xếp chồng là thực hiện
loại winner take all, trong đó winner luôn là ở lớp cao hơn (nói đến mức độ ưu
tiên)
+ tránh sử dụng các trạng thái nội bộ: trạng thái nội bộ trong trường hợp này là
những biểu diễn trạng thái của thế giới hoặc mô hình. Do robot là một đối tượng
cụ thể nên hầu hết các thông tin đến trực tiếp từ thế giới hoạt động thực tế. Nếu
robot phụ thuộc biểu diễn nội bộ thì nó sẽ tạo ra những thứ khác thực tế. Một số
trạng thái nội bộ là cần thiết cho việc phân tách các hành vi nhưng cần phải tối
thiểu việc sử dụng
+ một nhiệm vụ được gắn bằng cách kích hoạt lớp thích hợp, sau đó kích hoạt
các lớp thấp hơn và tiếp tục. Tuy nhiên trong thực tế mô hình xếp chông không
dễ để phân nhiệm vụ vì cần phải được lập trình thứ tự hoạt động.
12
- Cấu trúc xếp chồng sẽ thực hiện theo nguyên tắc sau: lối ra của lớp cao hơn
sẽ gộp với lối ra từ lớp thấp hơn theo một trong hai cách sau:
- Inhibition: cấm: lối ra của module xếp chồng sẽ nối tới lối ra của module
khác. Nếu lối ra của module xếp chồng là on hoặc có bất kì giá trị nào
thì lối ra của module bị xếp chồng sẽ khóa và off
- Suppression: chặn: lối ra của module xếp chồng được kết nối tới lối vào
của module khác. Nếu lối ra của modue xếp chồng là on và thay thế lối
vào của module bị xếp chồng
13
14
- Mục tiêu của lớp 0: robot có khả năng di chuyển thẳng và không có bất
kỳ va chạm nào
- Để thực hiện điều đó như sơ đồ của hình vẽ: robot sử dụng các cảm biến siêu
âm hoặc cảm biến đo khoảng cách theo các hướng khác nhau và hai cơ cấu
dẫn động: 1 đi theo hướng thẳng và và một rẽ.
- Hoạt động của sơ đồ trên như sau: module SONAR đọc dữ liệu từ các cảm
biến siêu âm, lọc nhiễu và tạo ra một bản đồ cực (polar plot – bản đồ vị trí
khoảng cách của các cảm biến tới vật) thể hiện giá trị trong tọa độ cực (r,
theta) xung quanh robot. Nếu giá trị của các cảm biến ở trong vùng chết, tức
là dưới một ngương nhất định thì module COLLIDE sẽ cảnh báo có một va
chạm và gửi tín hiệu tới “tạm ngừng (halt)” tới module FORWARD. Khi đó nếu
robot đang đi thẳng thì sẽ dừng lại. Cùng lúc đó, module FEEL FORCE cũng
nhận cùng giá trị cảm biến và coi như giá trị đọc của mỗi cảm biến là một lực
đẩy biểu thị qua véc tơ (vecto là một đại lượng bao gồm độ lớn và hướng), và
tính tổng của các vecto và ra được vecto tổng hay gọi là hợp lực. Giá trị của
vecto này sẽ biết được chuyển đến module TURN. Module TURN xác định
hướng quay và truyền tới động cơ. Đồng thời module TURN cũng truyền giá
trị vector tổng tới module FORWARD để module này xác định độ lớn (quay
bao xa hoặc nhanh bao nhiêu) của hướng chuyển động thẳng tiếp theo. Do đó
robot sẽ quay và tránh va chạm với vật.
- Hành vi trên có thể quan sát được nếu robot vẫn hoạt động trong không gian
không bị chiếm đống, cho tới tận khi có một chướng ngại vật khác đến gần.
Nếu vật ở bên cạnh robot thì robot có thể dễ dàng tránh được (ví dụ quay 180
15
độ). Nhưng nếu vật ở ngay trước mặt, ví dụ như đâm vào tường, thì robot sẽ
dừng, quay, và bắt đầu lại di chuyển thẳng. Hành động dừng sẽ làm cho robot
không bị va vào vật, nhưng hành động quay và đi thẳng có thể làm cho robot bị
va vào vật (trường hợp gần vật). Như vậy có thể dẫn đến tình huống nguy
hiểm.
15
- Mục tiêu của Lớp 1: Wander là lớp khả năng thứ 2 được đưa thêm vào để cho
robot để robot có thể đi xung quanh thay vì ngồi không di chuyển và vẫn đảm
bảo tránh được vật
- Module WANDER tính ngẫu nghiên hướng di chuyển (heading) trong khoảng n
giây, giá trị hướng sẽ là một vecto. Giá trị này không thể đưa trưc tiếp tới
module TURN vì TURN chỉ chấp nhận một giá trị lối vào. Vì thế module AVOID
được sinh ra để kết hợp vecto hợp lực của FEEL FORCE và WANDER. Việc
thêm AVOID này để tạo một đáp ứng phức tạp hơn cho vật. AVOID kết hợp
hướng của lực tránh với hướng di chuyển mong muốn, kết quả là hướng thực
sự của robot gần như đúng hướng mong muốn hơn là chỉ quay xung quanh.
- Lúc này tại lối vào của TURN có 2 giá trị : một là hướng di chuyển từ AVOID
(lớp 1) và hai là hướng quay từ RUN AWAY (lớp 0). Cấu trúc xếp chồng sẽ
thực hiện theo nguyên tắc sau: lối ra của lớp cao hơn sẽ gộp với lối ra từ lớp
thấp hơn theo một trong hai cách sau:
- Inhibition: cấm: lối ra của module xếp chồng sẽ nối tới lối ra của module
khác. Nếu lối ra của module xếp chồng là on hoặc có bất kì giá trị nào
thì lối ra của module bị xếp chồng sẽ khóa và off
- Suppression: chặn: lối ra của module xếp chồng được kết nối tới lối vào
của module khác. Nếu lối ra của modue xếp chồng là on và thay thế lối
vào của module bị xếp chồng
- Ví dụ trong mô hình trên thì module ADVOID sẽ chặn (đánh dấu bằng chữ S)
lối ra từ RUN AWAY, RUN AWAY vẫn hoạt động nhưng lối ra của nó không đi
tới đâu. Thay vì đó lối ra từ AVOID sẽ đi tới TURN
16
- Lớp 2: cho phép di chuyển xuống hành lang.
- Lớp 2 bao gồm module LOOK kiểm tra dữ liệu từ các cảm biến siêu âm và xác
định đâu là hành lang ( đây cũng là ví dụ các hành vi sử dụng chung dữ liệu
của cảm biến nhưng cho các mục đích khác nhau). Do quá trình xác định
hành lang cần nhiều tính toán hoăn nên LOOK có thể mất nhiều thời gian các
hành vi ở lớp dưới. LOOK sẽ trả lại vecto biểu thị hướng tới vị trí giữa của
hành lang tới module STAY IN MIDDLE. STAY IN MIDDLE sẽ xếp chồng với
WANDER và đưa tơi AVOID. Như vậy lối ra của AVOI là vừa tránh vật vừa đi
tới giữa hành lang
- Tuy nhiên trong trường hợp nếu LOOK không tính ra được hướng mới tới vị
trí giữa hành lang thì INTERGRATE sẽ quan sát chuyển động thực sự của
robot từ bộ lập mã quang và ước tính robot đã di chuyển bao xa kể từ khi
được cập nhật bởi LOOK. STAYIN MIDDLE có thể sử dụng dữ liệu này với
mong muốn chủ định để tính ra vecto mới, điều này sẽ lấp đầy khoảng trống
giữa tốc độ caapjnhaatj của các module khác
- INTERGRATE là ví dụ tạo ra một trạng thái nội bộ nguy hiểm bởi nó thay thế
phản hồi từ thế giới thực, vì lý do nào đó LOOK không bao giờ cập nhật thì sẽ
robot sẽ hoạt động mà không có dữ liệu từ cảm biến, vì thế chỉ hoạt động với
dữ liệu nội bộ từ robot. Khi đó STAYIN MIDDLE cần phải có một hằng số thời
gian trên Suppression hoặc Inhibition để kiểm soát việc cập nhật này, ví dụ lớn
hơn n giây mà không có cập nhật thì sẽ dừng suppression, robot chỉ còn lớp
wander
17
18
19
- Tác động của động cơ hay motion của một hành vi phải được biểu diễn như
một trường thế
- Một trường thế là một mảng hoặc một trường của các vecto
- Một vecto được biểu diễn bởi độ lớn và hướng, mỗi một vecto biểu diễn một
lực và được thể hiện như một mũi tên
20
- Mảng biểu diễn một vùng không gian. Trong hầu hết các ứng dụng của robo,
thì không gian hoạt động là 2D nên được biểu thị như bản đồ. Bản đồ có thể
được chia thành các ô vuông tạo nên lưới tọa độ (x,y). Mỗi thành phần của
mảng biểu diễn một ô vuông của không gian.
- Các đối tượng có thể cảm nhận hay có thể nhận biết được trong môi trường
gây ra một trường lực lên không gian xung quanh
- Robot được xem như là một chất điểm hoạt động trong trường sinh ra bởi đối
tượng hoặc môi trường hoạt động
21
- Ví dụ về một vật gây ra một trường thế đẩy trong vùng bán kính 1m và chia
thành các vùng mà robot có thể cảm nhận hoặc không cảm nhận được vật.
- Nếu robot ở trong vùng cảm nhận được vật, nó sẽ có hướng để thoát khỏi
vùng đó, ngược lại vẫn hoạt động trong vùng không có vật
- Chú ý rằng trường thể hiện rằng robot nên làm gì (motor schema) dựa trên nó
nhận được vật (perceptual schema)
22
- 5 loại trường thế chính:
- Đồng dạng: trường hợp này robot sẽ cảm thấy cùng lực tác dụng mà
không cần quan tâm nó ở đâu. Khi đó robot chỉ cảm thấy cần tự điều
chỉnh hướng theo hướng mũi tên và di chuyển theo hướng đó với vận
tốc tỷ lệ với chiều dài của mũi tên (tỷ lệ thuận với cường độ của trường
thế). Trường đồng dạng thường được sử dụng để thể hiện hành vi đi
theo hướng n độ.
- Trực giao: sử dụng khi robot được định hướng vuông góc với đối tượng
hoặc tường hoặc biên. Trường thế trên hình vẽ là tạo ra từ hướng
vuông góc với tường nhưng cũng có trường hợp trường thế trực giao
có thể hướng thẳng tới vật
- Hút: đường tròn tại tâm của trường thế là vật để tạo ra một lực hút trên
robot, robot sẽ cảm nhận được một lực liên quan tới vật. Các trường
hút được sử dụng để biểu diễn hướng tới mục tiêu hay hướng đích
- Đẩy: lực đẩy thường liên quan tới vật cản hoặc những tác tử cần phải
tránh. Khi robot càng gần đối tượng thì lực đẩy càng lớn
- Tiếp tuyến: trường thế tiếp tuyến xung quanh vật, có thể quay cùng
chiều hoặc ngược chiều kim đồng hồ. Thường sử dụng trong trường
hợp điều chỉnh hướng của robot đi xung quanh một vật cản hoặc đi
thực hiện nhiệm vụ điều tra
23
- Trong hình ví dụ trên ta thấy rằng chiều dài của mũi tên càng trở nên nhỏ hơn
khi càng gần đối tượng. Độ lớn của các vecto thay đổi được gọi là magnitude
profile (đặc trưng độ lớn hay hồ sơ độ lớn)
- Trường hợp 1: độ lớn là hằng số, khi đó hướng sẽ là góc phi âm nào đó. Độ
lớn là hằng số c cũng là chiều dài của các mũi tên là như nhau. Giá trị biên độ
thay đổi trong dải từ 0 đến 1. Đặc trưng này nói lên rằng robot sẽ chạy thoát
(theo hướng –phi) với cùng vận tốc. Ngay khi robot thoát ra khỏi phạm vi của
vật thì vận tốc sẽ giảm tới 0.0 và robot sẽ dừng lại. Trường này là giá trị nhị
phân cơ bản: robot hoặc là chạy thoát với một tốc độ cố định hoặc dừng. Đây
là một nhược điểm của trường hợp này trong thực tế, dẫn tới chuyển động
giật tại biên giới phạm vi của trường, ví dụ như robot đang di chuyển theo một
hướng đặc biệt, gặp vật, quay để thoát trường ngay lập tức, và quay trở lại
đường đi cũ, và lại gặp vật.
- Trường hơp 2: linear drop off: dừng tuyến tính. Nếu robot xa vật thì nó sẽ quay
và di chuyển nhanh chóng tới vật, sau đó giảm tốc để giữ không đâm vào vật.
Gọi là linear drop off vì tốc độ (độ lớn của các vector dừng) có thể vẽ như là
một đường thẳng, y= mx+b, x là khoảng cách, y là độ lớn. Đặc trưng tuyến
tính này phù hợp với hành vi: robot càng hành động nhiều thì càng gần vật
hơn. Tuy nhiên đặc trưng này cung gặp phải vấn đề của đặc trưng hằng số ở
điểm là sự chuyển đổi cứng tới giá trị vận tốc 0.0 vì thế có trường hợp 3
- Trường hợp 3: dừng mũ: việc dừng tỷ lệ với bình phương khoảng cách.
- Tất cả các đặc trưng độ lớn trên đều chấp nhận được. Động lực sử dụng đặc
trưng là để tinh chỉnh hành vi. Cần chú ý quan trọng đó là robot chỉ tính các
24
vecto tác động lên nó tại vị trí hiện tai. Trong khi hình vẽ lại thể hiện toàn bộ
trường cho mọi vị trí có thể của robot. Đó là vì muốn có một cái nhìn trực quan
toàn bộ hoạt động của robot chứ không chỉ ở tại một vị trí cụ thể tại thời điểm
xét, thứ 2 đó là các trường là biểu diễn liên tục nên trường là đúng và thực hiện
bất kỳ chuyển đổi đột ngột nào cũng dễ dàng thực hiện được
24
- Trong ví dụ trên ta đã thấy lực của trường thế tại bất kỳ một điểm nào là một
hàm của khoảng cách tương đối giữa robot và vật và đặc trưng độ lớn. Giá trị
của một trường thế có thể xem như là hàm của khoảng cách
25
26
27
28
- Ở phần trước thì kết hợp các hành vi theo xếp chồng
- Phần này thì mỗi hành vi sẽ tạo ra các lực tác động và đồng thời, vì vậy cần
phải kết hợp lại với nhau để xác định giá trị tác động của robot
- Thực hiện qua hai ví dụ để đánh giá hành vi hoạt động như thế nào và chúng
kết hợp với nhau ra sao
- Ví dụ 1: robot đang di chuyển theo hướng tới đích G và gặp vật O. Trên sơ đồ
motor thì hành vi MOVE2GOAL được biểu thị với lực hút (sử dụng encoder để
xác định vị trí đã tới đích hay chưa). Hành vi RUNAWAY biểu thị lực đẩy và sử
dụng cảm biến khoảng cách để xác định vật phía trước
29
- Hành vi RUNAWAY tạo ra trường lực đẩy trong vòng bán kính của vật. Về kỹ
thuật có thể tạo ra lực đẩy toàn không gian nhưng độ lớn ngoài bán kính bằng
0
- Hành vi MOVE2GOAL tạo ra trường lực hút của toàn không gian
- Hình c là lực kết hợp
30
- Robot đang di chuyển từ góc thấp phía trái của hình.
- Tại t0 đến t1 robot chưa cảm nhận được vật mà chỉ cảm nhận được lực hút từ
đích nên đi thẳng tới đích
- Đến t1 robot đã cảm nhận được cả vật và đích nên đi theo vecto tổng hợp để
tránh vật và tới đích
- Từ t3 đến t4 thì robot đã thoát ra khỏi vật và cảm nhận được đích nên đi thẳng
về đích, gần đích thì lực hút đã mạnh hơn
- Chú ý 1: thời gian cập nhật: giá trị vecto càng gần vật thì độ lớn càng nhỏ và
vận tốc di chuyển sẽ chậm vì thế thu được quãng đường đi ít hơn trong cùng
một khoảng thời gian lấy mẫu. Cũng trong khoảng thời gian đó nhưng từ t3 –
t4 robot đi nhanh hơn (theo độ lớn của vecto) và đi thẳng với vận tốc đã được
xác định trước đó tới đích nên đoạn bị sắc hơn (sharp), vì vậy nếu khoảng thời
gian cập nhật nhanh hơn thì đường đi sẽ smooth hơn
- Chú ý 2: trường thế coi robot là một chất điểm nên thay đổi về vận tốc và
hướng có thể xảy ra đồng thời nhưng trên thực tế các robot thực lại không
như vậy. Có thể có những robot quay được 360 độ theo các hướng nhưng
cần phải cập nhật giá trị lỗi do tiếp xúc giữa mặt sàn và bánh xe hay có robot
chỉ có thể quay theo các hướng nhất định
- Chú ý 3: trường hợp vecto chỉ có mũ mà không có thân tức là độ lớn của
vecto đó sẽ bằng 0, khi robot di chuyển tới vị trí gặp vecto như thế robot sẽ
dừng và không di chuyển lại nữa (mắc kẹt, thung lũng), trường hợp này gọi là
cực tiểu cục bộ và sẽ có các kỹ thuật để thoát khỏi vùng cực tiểu cục bộ
31
- Ví dụ 2: ứng dụng một hành vi sử dụng cho một cảm biến nhưng đối với robot
có nhiều cảm biến thì sao?
- Trên thực tế robot sử dụng nhiều cảm biến để phát hiện và tránh vật, có thể
sử dụng nhiều loại cảm biến như nhau
- Ví dụ nếu sử dụng một IR thì sẽ không thể nói được là vật nhỏ hay có thể
ngoài trục của cảm biến sẽ không phát hiện đươc vật, nếu chỉ có 1 IR thì
RUNAWAY sẽ đi theo đường thẳng.
- Một cách chung nhất là mỗi hành vi sử dụng cho 1 IR. Gọi là khởi tạo nhiều
lần cho cùng một hành vi. Giải pháp được thực hiện là tạo một vòng lặp hỏi
vòng cho mỗi một cảm biến, đây là ưu điểm.
- Ứng dụng cộng vecto cho phép robot thoát ra khỏi vùng cực tiểu cục bộ mà
không cần phải xay dựng mô hình của tường. Mỗi trường hợp tạo nên một
vecto, và vecto tổng sẽ chỉ hướng để robot thoát ra khỏi vùng bị kẹt
32
- Ví dụ 3
- Làm thế nào kết hợp các hành vi đơn giản tạo thành một hành vi nổi bật phức
tạp? Cách đơn giản nhất là xây dựng trường thế phức tạp từ các trường thế
cơ bản hay là kết hợp khởi tạo nhiều lần các hành vi đơn giản.
- Ví dụ trong level 0: đọc giá trị của cảm biến siêu âm. Đối với cơ cấu xếp chồng
thì các vecto được cộng trong module RUNAWAY. Còn trong trường thế , mỗi
cảm biến siêu âm sẽ tạo ra một lối ra của hành vi RUNAWAY. Các vecto lối ra
sau đó cũng được cộng vào và vecto tổng hợp sẽ hướng động cơ quay và
chuyển động thằng.
- Đối với hành vi COLLIDE với mục đích là nếu gặp vật thì robot sẽ dừng. Trong
xếp chồng thì robot sẽ dừng nhưng trong PF thì vẫn có giá trị nhưng độ lớn
bằng 0 và vecto lối ra của hành vi đó vẫn được cộng vào vecto tổng . Trường
hợp này đưa vào tình huống panic (hoảng loạn)
33
- Ví dụ 3
- Hành vi WANDERpf tạo ra trường đồng nhất để di chuyển robot theo hướng
xác định tùy thuộc vào vị trí hiện tại
- Tuy nhiên sự kết hợp giữa hành vi WANDER và RUNAWAY trong PF đã loại
bỏ đi hành vi AVOID trong xếp chồng. Do trong PF các vecto của WANDER
được cộng với các trường đẩy vì thế robot vừa di chuyển khỏi vật vừa tới
được hướng mong muốn. Sự khác nhau chính trong mức này là trường thế
rút gọn dứt khoát cảm biến và hành động vào trong các hành vi cơ bản và
không phả xếp chồng theo các mức hành vi.
34
- Ví dụ 3: hành vi đi theo hành lang được thực hiện trong PF phức tạp hơn do
yêu cầu trường thế phức tạp. Yêu cầu robot sẽ đi giữa hành lang.
- Việc này có thể thực hiện theo sử dụng 2 PF: PF đồng dạng vuông góc với
biên trái và phải và hướng tới hướng giữa. Chú ý cả hai trường này đều có
biên độ giảm tuyến tính khi đến gần tâm của hành lang.
- Tuy nhiên nếu chỉ sử dụng 2 trường đồng dạng này thì chưa đủ vì chúng
không cho phép robot di chuyển thẳng, hay không xác định được hướng di
chuyển của robot. Do đó phải sử dụng thêm một trường nữa đồng dạng song
song với hành lang. Các trường này kết hợp với nhau tạo thành trường mềm
mại (smooth) vừa đẩy ra ra giữa hành lang và đi thẳng
35
- Các hành vi hoạt động độc lập và được cộng vào tạo thành vector tổng chứ
không phải phân lớp như xếp chồng
- Một hành vi có thể thay đổi hệ số lên một hành vi khác do đó giảm hoặc tang
độ lớn của lối ra. Điều này có nghĩa là các hành vi có thể ngăn chặn hoặc kích
thích các hành vi khác mặc dù tình huống này hiếm khi gặp trong thực tế
- Khối cảm nhận có thể được chia sẻ bởi nhiều hành vi.
36
Download