Tải bản đầy đủ (.docx) (81 trang)

khóa luận robot dò đường trong mê cung

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (3.64 MB, 81 trang )

NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN
...................................................................................................................................................................
...................................................................................................................................................................
...................................................................................................................................................................
...................................................................................................................................................................
...................................................................................................................................................................
...................................................................................................................................................................
...................................................................................................................................................................
...................................................................................................................................................................
...................................................................................................................................................................
...................................................................................................................................................................
...................................................................................................................................................................
...................................................................................................................................................................
...................................................................................................................................................................
...................................................................................................................................................................
...................................................................................................................................................................
...................................................................................................................................................................
...................................................................................................................................................................
...................................................................................................................................................................
...................................................................................................................................................................
...................................................................................................................................................................
...................................................................................................................................................................
...................................................................................................................................................................

1


NHẬN XÉT CỦA GIÁO VIÊN PHẢN BIỆN
...................................................................................................................................................................
...................................................................................................................................................................
...................................................................................................................................................................


...................................................................................................................................................................
...................................................................................................................................................................
...................................................................................................................................................................
...................................................................................................................................................................
...................................................................................................................................................................
...................................................................................................................................................................
...................................................................................................................................................................
...................................................................................................................................................................
...................................................................................................................................................................
...................................................................................................................................................................
...................................................................................................................................................................
...................................................................................................................................................................
...................................................................................................................................................................
...................................................................................................................................................................
...................................................................................................................................................................
...................................................................................................................................................................
...................................................................................................................................................................
...................................................................................................................................................................
...................................................................................................................................................................

2


TÓM TẮT ĐỀ TÀI
1. Đặt vấn đề
Robot tự hành hay robot di động (mobile robot hay được viết tắt là mobot) được
định nghĩa là một loại xe robot có khả năng tự dịch chuyển, tự vận động (có thể lập
trình lại được) dưới sự điều khiển tự động có khả năng hoàn thành công việc được
giao. Theo lý thuyết, môi trường hoạt động của Robot tự hành có thể là đất, nước,
không khí, không gian vũ trụ hay tổ hợp giữa chúng. Địa hình bề mặt mà robot di

chuyển trên đó có thể bằng phẳng hoặc thay đổi, lồi lõm. Đề tài nghiên cứu khoa học
này đi sâu nghiên cứu Robot tự hành dò đường trong mê cung.
2. Mục tiêu đề tài
Mục tiêu của đề tài là thiết kế, thi công, điều khiển robot tự hành. Mobile robot có
thể hoạt động ổn định, tự tìm đường đi đến vị trí đích đã xác định sẵn trong mê cung,
có thể học nhanh chóng cách tìm đường đi khi thay đổi hình dạng mê cung sử dụng
thuật toán tìm kiếm theo chiều sâu trong trí tuệ nhân tạo.
3. Nội dung nghiên cứu
Dựa vào nguyên lý hoạt động của Mobile robot tôi đã thiết kế mô hình bằng các
phương pháp cụ thể như sau:
-

Khảo sát phân tích tổng hợp: Phân tích cách thức hoạt động của Mobile robot
để thiết kế bộ phận dò tìm có độ chính xác cao nhất, bộ phận xử lí tín hiệu có
tốc độ cao nhất đồng thời có giá thành thấp và tuổi thọ cao…

-

Khảo sát tính khả thi của từng thuật toán nhỏ trong trí tuệ nhân tạo.

-

Từ thuật toán sử dụng, hình thành nên mô hình robot phục vụ cho những yêu
cầu từ thuật toán đưa ra.

-

Thực nghiệm: dùng phương pháp thực nghiệm để kiểm tra tính khả thi của từng
thuật toán.


-

Đánh giá kết quả dựa trên quá trình thực nghiệm.

4. Nội dung từng chương của đề tài
3


Chương 1: Tổng quan
Chương này kể về sự hình thành robot từ sơ khai đến sự phát triển rộng lớn như
ngày nay, cũng như tương lai, xu hướng phát triển của robot. Định nghĩa, phân loại
Mobile robot, định nghĩa mê cung là gì.
Chương 2: Cơ sở lý thuyết.
Nội dung của chương này là trình bày lý thuyết về trí tuệ nhân tạo và các thuật toán
tìm kiếm trong trí tuệ nhân tạo.
Chương 3: Cấu tạo Robot di động
Chương này chủ yếu trình bày sơ lược về cấu trúc hoạt động của ATMEGA 328,
chi tiết cảm biến, thiết kế mạch cảm biến cũng như mạch điều khiển động cơ, thiết kế
về phần cơ khí và phần điện cho mô hình robot di động và mô hình robot hoàn chỉnh.
Chương 4: Thuật toán điều kiển và chương trình nạp
Chương này trình bày lưu đồ thuật toán tìm kiếm của đề tài.
Chương 5: Kết luận và hướng phát triển.
Chương này trình bày những kết quả đạt được trong luận văn, các mặt hạn chế và
hướng phát triển của đề tài.

LỜI CẢM ƠN
Để thực hiện khóa luận tốt nghiệp, tôi đã nhận được rất nhiều sự chỉ dẫn, giúp đỡ và
động viên quý báu từ quý thầy, cô và bạn bè.
4



Trước hết, tôi xin bày tỏ lòng biết ơn đối với thầy Đoàn Xuân Nam, người thầy
hướng dẫn đã tận tình chỉ cho tôi phương hướng thực hiện đồ án tốt nghiệp, thầy cũng
đã cung cấp cho tôi rất nhiều kiến thức chuyên sâu để thực hiện đề tài.
Bên cạnh đó, sự hợp tác và giúp đỡ của bạn bè và các thế hệ sinh viên đi trước cũng
giúp tôi rất nhiều trong việc thực hiện đề tài này.
Tôi cũng xin cảm ơn gia đình đã luôn chăm sóc và quan tâm đến việc học của tôi,
luôn tự hào vì có gia đình luôn động viên tôi trong quá trình học tập.
Và cuối cùng, tôi xin gửi lời cảm ơn tới những người đã tham gia giúp đỡ tôi trong
quá trình thực hiện mà tôi chưa nêu lên ở đây, sự giúp đỡ của họ dù ít hay nhiều cũng
đóng góp một phần vào kết quả thực hiện đề tài đồ án tốt nghiệp này.

Tp. Hồ Chí Minh, ngày…. tháng …năm….
Sinh Viên Thực Hiện

MỤC LỤ

5


NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN.................................................1
NHẬN XÉT CỦA GIÁO VIÊN PHẢN BIỆN...................................................2
TÓM TẮT ĐỀ TÀI..............................................................................................3
LỜI CẢM ƠN......................................................................................................5
MỤC LỤC HÌNH ẢNH......................................................................................8
LỜI MỞ ĐẦU......................................................................................................1
CHƯƠNG 1. GIỚI THIỆU CHUNG.................................................................2
1.1 Giới thiệu sơ lược về robot..........................................................................2
1.1.1 Sự tác động của Robot lên xã hội....................................................................2
1.1.2 Tương lai, xu hướng phát triển của Robot......................................................3


1.2 Phương pháp thiết kế robot di động............................................................4
1.3 Định nghĩa và phân loại Robot....................................................................4
1.4 Mê cung đường (Maze line)........................................................................5
CHƯƠNG 2. CƠ SỞ LÝ THUYẾT...................................................................7
2.1 Không gian bài toán....................................................................................7
2.2 Chiến lược tìm kiếm....................................................................................7
2.2.1 Tìm kiếm suy diễn tiến....................................................................................7
2.2.2 Chiến lược tìm kiếm suy diễn lùi....................................................................8

2.3 Giải thuật tìm kiếm.....................................................................................8
2.3.1 Giải thuật tìm kiếm theo chiều rộng (Breadth_First_Search).........................9
2.3.2 Giải thuật tìm kiếm theo chiều sâu (Depth First Search)..............................10
2.3.3 Giải thuật tìm kiếm truyền lùi ( Back Tracking search )...............................12

2.4 Tìm Kiếm Heuristic...................................................................................13
2.4.1 Giải thuật tìm kiếm Best_First_Search.........................................................14
2.4.2 Hàm đánh giá heuristic..................................................................................16

CHƯƠNG 3. CẤU TẠO ROBOT DI ĐỘNG..................................................17
3.1 Khái quát về cấu tạo của Robot di động....................................................17
3.2 Cảm biến hồng ngoại................................................................................17
3.2.1 Thiết kế mạch cảm biến................................................................................19
3.2.2 LM358 loại dán.............................................................................................20
6


3.3 Atmega328P..............................................................................................22
3.3.1 Thông số ATMEGA328P..............................................................................22


3.4 Mạch điều khiển động cơ..........................................................................23
3.4.1 Mạch cầu H...................................................................................................23
3.4.2 IC L298.........................................................................................................24
3.4.3 Thiết kế mạch điều khiển động cơ................................................................26
3.4.4 LED 0805......................................................................................................27
3.4.5 Biến trở 10k...................................................................................................27
3.4.6 Điện trở dùng trong mạch.............................................................................28
3.4.7 Transitor........................................................................................................28
3.4.8 Diode 1N4007 M7 1A SMD.........................................................................29

3.5 Động cơ DC..............................................................................................29
3.6 Nguồn cấp.................................................................................................31
3.7 Sơ đồ nguyên lý Mobile Robot.................................................................31
3.8 Mô hình robot di động sau khi hoàn thành................................................35
CHƯƠNG 4. THUẬT TOÁN ĐIỀU KHIỂN..................................................37
4.1 Các phương pháp giải quyết vấn đề cơ bản...............................................37
4.1.1 Các chiến lược tìm kiếm...............................................................................37
4.1.2 Tìm kiếm theo chiều sâu...............................................................................37

4.2 Lưu đồ giải thuật tìm đường đi cho Robot................................................39
4.3 Thuật toán LSRB.......................................................................................39
4.4 Tối ưu hóa đường đi..................................................................................45
4.5 Ví dụ minh họa..........................................................................................46
4.6 Chương trình nạp cho AT MEGA328........................................................54
4.6.1 Phần khai báo................................................................................................54
4.6.2 Phần động cơ.................................................................................................55
4.6.3 Phần cảm biến...............................................................................................66

CHƯƠNG 5. KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN.................................70
5.1 Kết luận.....................................................................................................70

5.2 Hướng phát triển.......................................................................................70
TÀI LIỆU THAM KHẢO.................................................................................71

7


MỤC LỤC HÌNH ẢN
Hình 1. 1 Wheel Robot..............................................................................................5
Hình 1. 2 Một số hình dạng của mê cung..................................................................6
Hình 1. 3 Mê cung đường đơn giản........................................................................6Y
Hình 2. 1 Không gian trạng thái của bài toán tìm kiếm theo chiều rộng....................9
Hình 2. 2 Không gian trạng thái của phương pháp tìm kiếm theo chiều sâu...............
Hình 3. 1 Sơ đồ khối cấu tạo robot di động.............................................................17
Hình 3. 2 Led phát và thu hồng ngoại......................................................................18
Hình 3. 3 Photodiode...............................................................................................18
Hình 3. 4 Cách cảm biến hoạt động.........................................................................19
Hình 3. 5 Sơ đồ nguyên lý mạch cảm biến hồng ngoại............................................20
Hình 3. 6 LM358 loại dán.......................................................................................20
Hình 3. 7 Sơ đồ chân LM358..................................................................................21
Hình 3. 8 ATMEGA328P.........................................................................................22
Hình 3. 9 Sơ đồ nguyên lý động cơ quay theo chiều thuận......................................23
Hình 3. 10 Sơ đồ nguyên ly động cơ DC quay theo chiều nghịch...........................23
Hình 3. 11 PowerSO-20...........................................................................................24
Hình 3. 12 L298.......................................................................................................25
Hình 3. 13 Sơ đồ nguyên lý mạch điều khiển động cơ sử dụng L298.....................27
Hình 3. 14 led0805..................................................................................................27
Hình 3. 15 biến trở 10k............................................................................................28
Hình 3. 16 trở 330...................................................................................................28
Hình 3. 17 transitor 3904.........................................................................................29
Hình 3. 18 Diode 1N4007 M7.................................................................................29

Hình 3. 19 Động cơ quay thuận...............................................................................30
Hình 3. 20 Động cơ quay nghịch.............................................................................30
Hình 3. 21 Động cơ DC giảm tốc GA12..................................................................31
Hình 3. 22 Pin 18650...............................................................................................31
Hình 3. 23 Sơ đồ nguyên lý.....................................................................................34
Hình 3. 24 Mạch in..................................................................................................35
Hình 3. 25 Phía bên phải của Robot.....................................................................36Y
Hình 4. 1 Tìm kiếm theo chiều sâu..........................................................................38
Hình 4. 2 Cách Mobile tìm đường đến đích............................................................39
Hình 4. 3 Cách Mobile robot tìm đường đi ngắn nhất.............................................39
Hình 4. 4 Đặt tên cảm biến......................................................................................40
Hình 4. 5 Những kết quả cảm biến khi đi theo đường thẳng...................................40
Hình 4. 6 Trường hợp cảm biến đặt gần nhau..........................................................41
Hình 4. 7 Các khả năng robot gặp phải....................................................................41
Hình 4. 8Chỉ rẽ trái, thẳng hoặc rẽ trái....................................................................42
8


Hình 4. 9 Chỉ rẽ phải, thẳng hoặc rẽ phải................................................................42
Hình 4. 10 Ngã 3, ngã 4 và đích đến........................................................................42
Hình 4. 11 Chỉ rẽ Trái..............................................................................................43
Hình 4. 12 Chỉ rẽ phải.............................................................................................43
Hình 4. 13 Chữ T.....................................................................................................43
Hình 4. 14 Ngã tư....................................................................................................44
Hình 4. 15 Thẳng hoặc rẽ trái..................................................................................44
Hình 4. 16 Thẳng hoặc rẽ phải.................................................................................44
Hình 4. 17 Đích.......................................................................................................45
Hình 4. 18 Đường cụt..............................................................................................45
Hình 4. 19 Điểm xuất phát.......................................................................................47
Hình 4. 20 Điểm đi thẳng hoặc rẽ phải....................................................................47

Hình 4. 21 Robot đi thẳng.......................................................................................47
Hình 4. 22 Robot tiếp tục đi thẳng...........................................................................48
Hình 4. 23 Robot quay đầu......................................................................................48
Hình 4. 24 Sau quay đầu robot tiếp tục chạy thẳng.................................................48
Hình 4. 25 Robot rẽ trái...........................................................................................49
Hình 4. 26 Robot ghi nhớ ký tự “R”........................................................................49
Hình 4. 27 Robot ghi nhớ ký tự “RL”......................................................................49
Hình 4. 28 Robot ghi nhớ ký tự “RLR”...................................................................50
Hình 4. 29 Robot ghi nhớ ký tự “RLRB”................................................................50
Hình 4. 30 Robot ghi nhớ ký tự “RLRBL”..............................................................50
Hình 4. 31 Robot ghi nhớ ký tự “RLB”...................................................................51
Hình 4. 32 Robot ghi nhớ ký tự “RLBL”................................................................51
Hình 4. 33 Robot ghi nhớ ký tự “RS”......................................................................51
Hình 4. 34 Robot ghi nhớ ký tự “RSB”...................................................................52
Hình 4. 35 Robot ghi nhớ ký tự “RSBL”.................................................................52
Hình 4. 36 Robot ghi nhớ ký tự “RR”.....................................................................52
Hình 4. 37 Robot ghi nhớ ký tự “RRL”...................................................................53
Hình 4. 38 Robot ghi nhớ ký tự “RRLL”................................................................53
Hình 4. 39 Robot ghi nhớ ký tự “RRLLD”..............................................................53
Hình 4. 40 Robot tối ưu đường đi............................................................................54

9


LỜI MỞ ĐẦU
Cùng với sự phát triển nhanh chóng của các ngành khoa học kỹ thuật, công nghệ
chế tạo robot cũng phát triển theo. Robot ngày càng gia tăng về số lượng, lẫn chất
lượng nhằm đáp ứng cho nhu cầu tự động hoá các quy trình sản xuất, các nhu cầu
trong thám hiểm... cũng như phục vụ cho đời sống con người.
Trong xu thế sử dụng robot ngày càng nhiều trong sản xuất và sinh hoạt, ở Việt

Nam, ngành công nghiệp robot cũng đang từng bước phát triển. Tuy nhiên các robot
này chỉ sản xuất dưới dạng người máy công nghiệp, các tay máy hoặc như các máy
phục vụ cho nhu cầu giải trí. Trong khi đó, loại robot di động vẫn chưa được chú ý
nhiều, mặc dù đây là loại robot có tiềm năng rất lớn, có thể dùng trong nhiều mục đích
khác nhau như: giải trí trong gia đình, phục vụ trong các công sở, trong các mục đích
quân sự, và dùng nhiều trong thám hiểm hành tinh. Tiêu biểu trong họ robot này có thể
kể đến như: chó robot Aibo, xe tự hành Sojourner thám hiểm sao hỏa và các loại robot
dò mìn ...
Robot di động là một lĩnh vực có nhiều tiềm năng, nên dù hạn chế về kiến thức và ít
ỏi về tài liệu nhưng tôi cố gắng thực hiện đồ án tốt nghiệp về đề tài này ở mức độ đơn
giản. Dù đã cố gắng nhưng cũng còn rất nhiều sai sót, khuyết điểm. Tôi rất mong được
sự chỉ bảo thêm nơi quý thầy cô và bạn bè.
Tôi xin chân thành cảm ơn sự quan tâm của quý thầy cô và bạn bè.

CHƯƠNG 1. GIỚI THIỆU CHUNG
1.1 Giới thiệu sơ lược về robot
Trên 1921, trên sân khấu kịch nói ở Tiệp Khắc, trong tác phẩm nhan đề “R.U.R”
hay “Rossuum’s Universal Robot’s” của Karel Capek, xuất hiện nhân vật “Robotnik”
có nghĩa là công nhân. Nhân vật trong vở diễn mô tả một khối cơ khí rập khuôn hình
dáng con người. Sau đó những cỗ máy này được dùng trong chiến tranh và cuối cùng
đã quay lại chống loài người đã sáng tạo ra chúng.

10


Tuy nhiên trước đó người Hi Lạp đã chế tạo những tượng đá có thể chuyển động
được, đó chính là sự bắt đầu của những gì chúng ta gọi là Robot. Trong phần lớn
trường hợp danh từ Robot hiện nay hàm ý những cỗ máy nhân tạo có thể thực hiện
những công việc hay những hành động khác thường, được thực hiện bởi con người.
Đa số các Robot ngày nay được sử dụng trong các nhà máy để chế tạo những sản

phẩm như xe hơi và điện tử, máy móc công nghiệp. Những loại khác được dùng trong
các công việc nghiên cứu, thám hiểm mặt đất, đại dương và trên các hành tinh khác.
Robot thường có 3 phần chính:
-

Bộ não (Brain): Thường là một máy tính, vi xử lý hoặc vi điều khiển.

-

Các bộ phận cơ khí và chấp hành (Actuator): Động cơ, piston, cơ câu kẹp, bánh
răng, bánh xe.

-

Cảm biến (Sensor): Thị giác, âm thanh, nhiệt độ, chuyển động, ánh sáng, xúc
giác...

Với 3 thành phần này, Robot có thể tương tác và tác động đến môi trường của
chúng ta trở nên hữu dụng.
1.1.1 Sự tác động của Robot lên xã hội
Vì Robot được dùng chủ yếu trong sản xuất, nên chúng ta có thể thấy được sự tác
động của chúng lên những sản phẩm chúng ta dùng hằng ngày. Thường thì sự tác động
này mang tính tích cực, làm cho sản phẩm trở nên tốt hơn, giá rẻ hơn. Robot cũng
được dùng trong những trường hợp mà nó có thể làm tốt hơn con người như giải phẫu,
ở đó sự chính xác cao rất cần thiết. Robot còn được dùng trong thám hiểm những nơi
nguy hiểm như núi lửa hoặc trong việc dò mìn, điều này cho phép chúng ta hoàn thành
công việc mà không gây nguy hiểm cho ta.
Tuy nhiên vẫn có những vấn đề với Robot. Như bất cứ loại máy nào, Robot có thể
ngưng hoạt động và ngay cả gây tai nạn. Chúng là những cỗ máy mạnh mẽ, con người
để cho nó tự điều khiển một vài công việc. Khi có một hành động nào đó đi sai hướng

thì những điều nguy hiểm nhất có thể xảy ra. May mắn là điều này ít khi xảy ra vì hệ
thống Robot được thiết kế với nhiều đặc tính an toàn, sẽ giới hạn những thiệt hại có
thể.
11


Ngoài ra, vấn đề sẽ trở nên rất nghiêm trọng nếu Robot được sử dụng vào những
mục đích xấu, chống lại con người. Ngày nay điều này đã trở thành hiện thực, với
những hình thức khác nhau của kỹ thuật như chế tạo vũ khí và vật liệu sinh học.
1.1.2 Tương lai, xu hướng phát triển của Robot
Robot đã có những bước tiến đáng kể trong hơn nửa thế kỷ qua. Robot đầu tiên
được ứng dụng trong công nghiệp vào những năm 60 để thay thế con người làm những
công việc nặng nhọc, nguy hiểm trong môi trường độc hại. Do nhu cầu sử dụng ngày
càng nhiều trong quá trình sản xuất phức tạp nên robot công nghiệp cần có những khả
năng thích ứng linh hoạt và thông minh hơn. Ngày nay, ngoài ứng dụng sơ khai ban
đầu của robot trong chế tạo máy thì các ứng dụng khác như trong y tế, chăm sóc sức
khỏe, nông nghiệp, đóng tàu, xây dựng, an ninh quốc phòng đang là động lực cho sự
phát triển của ngành công nghiệp robot.
Có thể kể đến những loại robot được quan tâm nhiều trong thời gian qua là: tay máy
robot, robot di động (Mobile Robots), robot phỏng sinh học (Bio Inspired Robots) và
robot cá nhân (Personal Robots). Robot di động được nghiên cứu nhiều như xe tự hành
trên mặt đất AGV (Autonomous Guided Vehicles), robot tự hành dưới nước AUV
(Autonomous Underwater Vehicles), robot tự hành trên không UAV (Unmanned Arial
Vehicles) và robot vũ trụ (Space robots). Với robot phỏng sinh học, các nghiên cứu
trong thời gian qua tập trung vào hai loại chính là robot đi bộ (Walking robot) và robot
dáng người (Humanoid robot). Bên cạnh đó các loại robot phỏng sinh học như cá dưới
nước, các cấu trúc chuyển động phỏng theo sinh vật biển cũng được nhiều nhóm
nghiên cứu, phát triển.
1.2 Phương pháp thiết kế robot di động
Cấu trúc của một Robot chuyển động thường gồm hai phần: phần cứng và phần

mềm, ngoài ra còn có hệ thống cơ khí làm bộ phận chuyển động và khung để chứa các
thành phần bên trong của Robot. Phần cứng của Robot là thuật ngữ chỉ các mạch điện
tử trong Robot, quyết định tiềm năng của Robot. Nhưng để khai thác các tiềm năng
này, Robot cần phải có phần mềm là các chương trình điều khiển Robot, giao tiếp bộ
vi xử lý với các phần tử ngoại vi như cảm biến, các bộ phận chấp hành... Phần cứng và
phần mềm quan hệ chặt chẽ với nhau để tạo nên một Robot hữu dụng.
12


Thành phần chính trong phần cứng của Robot là bộ xử lý mà thông dụng là vi xử lí.
Tuy nhiên các bộ vi xử lý đa phần có các tập lệnh tập trung vào việc xử lý dữ liệu, rất
ít các lệnh vào, ra nên khả năng tương tác với các ngoại vi là rất thấp. Để giao tiếp với
ngoại vi cần có thêm các mạch điện phụ, làm cho phần cứng trở nên cồng kềnh hơn và
hoàn toàn không thích hợp cho các Robot chuyển động nhỏ luôn phải mang máy tính
trên mình. Do đó sự ra đời của các họ vi điều khiển tích hợp cao đã đem lại rất nhiều
tiện dụng.
1.3 Định nghĩa và phân loại Robot
Mobile robot hay robot di động (thường được gọi tắt là mobots) được định nghĩa là
một loại xe robot có khả năng tự dịch chuyển, tự vận động (có thể lập trình lại được)
dưới sự điền khiển tự động để thực hiện thành công công việc được giao. Theo lý
thuyết, môi trường hoạt động của Mobile robot có thể là đất, nước, không khí, không
gian vũ trụ hay sự tổ hợp giữa chúng. Địa hình bề mặt mà robot di chuyển trên đó có
thể bằng phẳng hoặc thay đổi, lồi lõm.
Mobile robot được chia làm 2 loại chính đó là Mobile robot chuyển động bằng chân
(Legged Robot) và Mobile robot chuyển động bằng bánh (Wheel Robot). Ngoài ra một
số loại robot hoạt động trong các môi trường đặc biệt như dưới nước hay trên không
trung thì chúng được trang bị cơ cấu di chuyển đặc trưng.
Ưu điểm lớn nhất của Mobile robot chuyển động bằng chân là có thể thích nghi và
di chuyển trên các địa hình gồ ghề. Hơn nữa chúng còn có thể đi qua những vật cản
như hố, vết nứt sâu. Nhược điểm chính của robot loại này chính là chế tạo quá phức

tạp. Chân robot là kết cấu nhiều bậc tự do, đây là nguyên nhân làm tăng trọng lượng
của robot đồng thời giảm tốc độ di chuyển. Các kĩ năng như cầm, nắm hay nâng tải
cũng là nguyên nhân làm giảm độ cứng vững của robot. Robot loại này càng linh hoạt
thì chi phí chế tạo càng cao.
Bánh xe là cơ cấu chuyển động được sử dụng rộng rãi nhất trong công nghệ Mobile
robot. Vấn đề cân bằng thường không phải là vấn đề được chú ý nhiều trong robot di
chuyển bằng bánh. Ba bánh là kết cấu có khả năng duy trì cân bằng nhất, tuy nhiên kết
cấu 2 bánh cũng có thể cân bằng được. Khi robot có số bánh nhiều

13


hơn 3 thì thông thường người ta phải thiết kế hệ thống treo để duy trì sự tiếp xúc
của tất cả các bánh xe với mặt đất. Vấn đề của robot loại này là về lực kéo, độ ổn định
và khả năng điều khiển chuyển động ... Những loại bánh xe cơ bản được sử dụng trong
Mobile robot chuyển động bằng bánh:
- Bánh xe tiêu chuẩn: 2 bậc tự do, có thể quay quanh trục bánh xe và điểm tiếp xúc.
- Bánh lái: 2 bậc tự do, có thể quay xung quanh khớp lái.
- Bánh Swedish: 3 bậc tự do, có thể quay đông thời xung quanh trục bánh xe, trục
lăn và điểm tiếp xúc.

Hình 1. 1 Wheel Robot
1.4 Mê cung đường (Maze line)
Mê cung hay còn gọi là mê lộ, mê đạo thường được hiểu là một hệ thống gồm nhiều
nhánh ngang dọc nối chằng chịt với nhau. Mê cung được dùng để chỉ hệ thống gồm rất
nhiều lối đi được bao bọc xung quanh với vô vàn ngã ba, ngã tư, ngõ cụt. Mỗi mê cung
có thể có 1 hoặc nhiều điểm xuất phát nhưng thường chỉ có một lối ra.

Hình 1. 2 Một số hình dạng của mê cung
14



Mê cung đường (Maze line) thường là một đường màu đen trên nền trắng. Nó cũng
có thể là một đường trắng trên nền đen, nhưng đối với bài trình bày, các đường màu
đen trên nền trắng sẽ được sử dụng. Mỗi mê cung đường có điểm bắt đầu và điểm kết
thúc và nhiều ngã ba, ngã tư, ngõ cụt (hình 1.8, 1.9). Robot sẽ dò theo các đường đen
và tìm thấy đích từ điểm bắt đầu trong thời gian nhanh nhất có thể. Mê cung đường có
nhiều loại từ đơn giản đến phức tạp, không vòng lặp hoặc có vòng lặp.
Ở đề tài này ta sẽ dùng mê cung loại đơn giản và không có vòng lặp. Thuật toán sử
dụng không thể giải quyết khi trong mê cung đường có vòng lặp, điều này sẽ giải thích
kĩ hơn ở chương 4.

Hình 1. 3 Mê cung đường đơn giản

15


CHƯƠNG 2. CƠ SỞ LÝ THUYẾT
2.1 Không gian bài toán
Tri thức của bài toán được chia ra làm ba lọai tri thức cơ bản đó là tri thức mô tả, tri
thức thủ tục và tri thức điều khiển, trong đó tri thức thủ tục định nghĩa không gian bài
toán. Không gian bài toán có thể được biểu diễn bằng không gian trạng thái đó là một
biểu diễn bằng đồ thị định hướng gồm bốn thành phần như sau:
-

S: Trạng thái ban đầu của bài toán (dữ liệu ban đầu).

-

G: Tập các trạng thái đích của bài toán (dữ liệu đích).


-

N: Tập các trạng thái khác được phát sinh từ trạng thái ban đầu đạt đến trạng
thái đích đó là các nút của đồ thị.

-

A: Tập các trạng thái chuyển tiếp đó là các cung liên kết giữa các nút của đồ thị
nhờ thông qua các luật áp dụng của bài toán.

Luật áp dụng là luật mà vế điều kiện của nó hợp với trạng thái hiện có để vế kết
luận của nó phát sinh ra các trạng thái mới.
Đường lời giải của bài toán là đường bắt đầu từ trạng thái ban đầu thông qua các
trạng thái khác được phát sinh đến một trạng thái nào đó trong tập các trạng thái đích.
2.2 Chiến lược tìm kiếm
Có hai chiến lược tìm kiếm trên không gian trạng thái bài toán đó là tìm kiếm bắt
đầu từ dữ liệu ban đầu về đích và tìm kiếm từ dữ liệu đích lùi về dữ liệu ban đầu.
Tìm kiếm bắt đầu từ dữ liệu ban đầu về đích được gọi là chiến lược tìm kiếm suy
diễn tiến và tìm kiếm bắt đầu từ đích lùi về dữ liệu được gọi là chiến lược tìm kiếm
suy diễn lùi.
2.2.1 Tìm kiếm suy diễn tiến
Thủ tục tìm kiếm suy diễn tiến trên không gian trạng thái bài toán được mô tả như
sau:
-

Bắt đầu tìm kiếm từ dữ liệu ban đầu của bài toán.


-


Chọn tất các các luật ứng dụng với vế điều kiện hợp với dữ liệu ban đầu của bài
toán để vế kết luận phát sinh ra các dữ liệu mới.

-

Tại mỗi điểm dữ liệu mới, chọn tất cả các luật ứng dụng với vế điều kiện hợp
với dữ liệu mới để vế kết luận phát sinh ra các dữ liệu mới hơn.

-

Thủ tục này được lặp lại cho tất cả các dữ liệu mới cho đến khi dữ liệu đích
được tìm thấy.

2.2.2 Chiến lược tìm kiếm suy diễn lùi
Thủ tục tìm kiếm suy diễn lùi trên không gian trạng thái bài toán được mô tả như
sau:
-

Thủ tục bắt đầu tìm kiếm từ dữ liệu đích của bài toán.

-

Chọn tất cả các luật ứng dụng với vế kết luận hợp với dữ liệu đích, thiết lập dữ
liệu ở vế điều kiện phát sinh ra đích làm dữ liệu đích mới.

-

Tại mỗi điểm dữ liệu đích mới, chọn tất cả các luật ứng dụng với vế kết luận
hợp với đích mới, thiết lập dữ liệu ở điều kiện làm dữ liệu đích mới hơn.


-

Thủ tục này lặp lại cho tất cả các đích mới cho đến khi nào dữ liệu ban đầu của
bài toán được tìm thấy.

2.3 Giải thuật tìm kiếm
Để giải bài toán sử dụng chiến lược tìm kiếm suy diễn tiến hoặc chiến lược tìm
kiếm suy diễn lùi, công việc tìm kiếm là phải tìm một đường từ trạng thái bắt đầu đến
trạng thái đích thông qua không gian trạng thái của bài toán. Công cụ thực hiện việc
tìm kiếm này đó là giải thuật. Quá trình tìm kiếm được xem như cây tìm kiếm thông
qua không gian trạng thái của bài toán. Giải thuật bắt đầu từ nút gốc của cây tìm kiếm
thăm dò qua các nút khác của cây trong không gian trạng thái của bài toán. Nếu giải
thuật tìm thấy đích thì giải thuật thiết lập đường lời giải bắt đầu từ nút gốc thông qua
các nút liên kết đến nút đích của cây. Cấu trúc dữ liệu cho cây tìm kiếm ở đây là ta giả
sử nút là một cấu trúc dữ liệu với năm thành phần như sau:
-

Trạng thái trong không gian trạng thái tương ứng với nút của cây.


-

Nút trong cây tìm kiếm mà đã phát sinh ra nút mới thì nút này được gọi là nút
cha và nút mới được gọi là nút con.

-

Luật hay lệnh hợp lệ được áp dụng để phát sinh ra nút.


-

Số lượng của các nút trên đường từ nút gốc của cây đến một nút, được gọi là độ
sâu của nút đó.

-

Giá chi phí của đường là tính từ nút gốc của cây đến nút đó.

Có hai loại giải thuật tìm kiếm cơ bản đó là giải thuật tìm kiếm theo chiều rộng và
giải thuật tìm kiếm theo chiều sâu.
2.3.1 Giải thuật tìm kiếm theo chiều rộng (Breadth_First_Search)

Hình 2. 1 Không gian trạng thái của bài toán tìm kiếm theo chiều rộng
Giải thuật tìm kiếm theo chiều rộng là giải thuật tìm kiếm mức theo mức của cây.
Giải thuật bắt đầu từ nút gốc của cây tìm kiếm qua tất cả các nút ở mức kế theo, nếu nó
chưa tìm thấy đích thì nó tiếp tục tìm kiếm qua tất cả các nút ở mức sâu hơn, cứ như
thế cho đến khi nó tìm thấy nút đích thì nó dừng thủ tục tìm kiếm và thiết lập đường
lời giải bắt đầu từ nút gốc thông qua các nút liên kết đến nút đích.
Giả sử cho không gian trạng thái của bài toán với các trạng thái được đánh nhãn
bằng các chữ cái A, B, C… được mô tả như hình 2.1.
Thứ tự của các trạng thái tìm kiếm với giải thuật tìm kiếm theo chiều rộng là: A, B,
C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U.
Giải thuật tìm kiếm theo chiều rộng được trang bị bằng hai danh sách mở Open và
đóng Closed, trong đó danh sách Open chứa các trạng thái đang chờ được duyệt và


danh sách Closed chứa các trạng thái đã được duyệt qua. Giải thuật được mô tả như
sau:
Procedure breadth_first_search

Begin
Open = [Start];
Closed = [ ];
While Open ≠ [ ]
Begin
- Lọai bỏ nút đầu tiên từ danh sách Open và gọi nút này là X. If X = đích Then
trả về thành công
Else begin
- Phát sinh các con của X dùng các luật áp dụng hợp với X;
- Đặt X vào danh sách Closed;
- Lọai bỏ các con của X đã có mặt trên Open hoặc Closed;
- Đặt các on của X chưa có mặt trên Open hoặc Closed vào cuối danh
sách Open;
end;
end;
end.
2.3.2 Giải thuật tìm kiếm theo chiều sâu (Depth First Search)
Giải thuật tìm kiếm theo chiều sâu là giải thuật tìm kiếm nhánh theo nhánh của cây.
Giải thuật bắt đầu từ nút gốc tìm kiếm đến con, cháu, chắc của gốc, nếu giải thuật tìm
thấy đích thì dừng thủ tục tìm kiếm và thiết lập đường lời giải từ nút gốc thông qua các
nút liên kết đến nút đích; mặt khác nếu giải thuật tìm thấy đường cụt thì nó lùi về tìm
kiếm nút anh em. Không gian trạng thái của phương pháp tìm kiếm theo chiều sâu
được mô tả như hình 2.2:


Hình 2. 2 Không gian trạng thái của phương pháp tìm kiếm theo chiều sâu.
Cho không trạng thái của bài toán như hình trên, thứ tự của các trạng thái tìm kiếm
với giải thuật tìm kiếm theo chiều sâu là A, B, E, K, S, L, T, F, M, C, G, N, H, O, P, U,
D, I, Q, J, R.
Giải thuật cũng được trang bị bằng hai danh sách mở Open và đóng Closed giống

như giải thuật tìm kiếm theo chiều rộng. Giải thuật được mô tả như sau:
Procedure depth_first_search
Begin
Open = [Start];
Closed = [ ];
While Open ≠ [ ]
Begin
- Lọai bỏ nút đầu tiên từ danh sách Open và gọi nút này là X. If X = đích Then
trả về thành công
Else begin
- Phát sinh các con của X dùng các luật áp dụng hợp với X;
- Đặt X vào danh sách Closed;
- Lọai bỏ các con của X đã có mặt trên Open hoặc Closed;


- Đặt các on của X chưa có mặt trên Open hoặc Closed vào đầu danh sách
Open;
end;
end;
end.
2.3.3 Giải thuật tìm kiếm truyền lùi ( Back Tracking search )
Một giải thuật tìm kiếm khác được gọi là giải thuật tìm kiếm truyền lùi, cách tìm
kiếm đích của giải thuật này cũng giống như cách tìm kiếm đích của giải thuật tìm
kiếm theo chiều sâu. Giải thuật được trang bị bằng ba danh sách N, S và D, trong đó
danh sách N chứa các trạng thái đang chờ sẽ được duyệt qua, danh sách S chứa các
trạng thái đã được duyệt qua trên đường tìm kiếm và D là danh sách chứa các trạng
thái của các đường cụt. Khi giải thuật tìm thấy đích, danh sách S được thiết lập với các
trạng thái liên kết nhau từ nút gốc đến nút đích đó là đường lời giải của bài toán. Giải
thuật được mô tả như sau:
Function backtracking

Begin
N = [Start];
S = [Start];
D = [ ];
C = Start;
While N ≠ [ ]
Begin
If C = đích then return (S)
Elseif C không có thừa kế
( Không kể các thừa kế đã có mặt trên N, S hoặc D)
begin


while S ≠ [ ] và C là phần tử đầu tiên của S
begin
- Đặt C vào đầu danh sách D.
- Lọai bỏ nút đầu tiên của S.
- Lọai bỏ nút đầu tiên của N.
- Đặt C = phần tử đầu tiên của N.
end
Đặt C vào đầu danh sách S.
end
Else
begin
- Khai triển các thừa kế của C dùng các luật ứng hợp với C.
- Lọai bỏ tất cả các thừa kế của C đã có mặt trên N, S, hoặc D.
- Đặt các thừa kế của C chưa có mặt trên N, S, hoặc D vào đầu
danh sách N.
- Đặt C = phần tử đầu tiên của N.
- Đặt C vào đầu danh sách S.

end
end;
end.
2.4 Tìm Kiếm Heuristic
Tri thức điều khiển của bài toán còn được gọi là heuristic. Heuristic là luật chủ chốt
điều khiển thuật toán tìm kiếm bám theo đường có các trạng thái tốt nhất để đạt đến
đích. Heuristic có thể được thể hiện dưới dạng luật hoặc dưới dạng hàm số. Nếu nó
được thể hiện dưới dạng luật thì nó được gọi là luật heuristic và nếu nó được thể hiện
dưới dạng hàm thì nó được gọi là hàm heuristic.


Heuristic còn được gọi là tri thức nông cạn của bài toán vì nó chỉ đoán bắt trạng thái
tốt nhất ở bước kế theo trong quá trình giải quyết vấn đề. Do đó heuristic đôi lúc
không thể đảm bảo tìm thấy lời giải tốt nhất nhưng hầu hết nó đảm bảo tìm thấy lời
giải tương đối tốt nhất.
Nếu ta định nghĩa h(n) là hàm heuristic tại trạng thái n thì h(n) là một ước lượng
tính từ trạng thái n đến trạng thái đích của bài toán. Trạng thái nào có heuristic nhỏ
nhất đó là trạng thái tốt nhất được chọn để tiếp diễn quá trình tìm kiếm.
-

Nếu trạng thái n không dẫn đến đường cụt thì heuristic của nó là h(n) >= 0 .

-

Nếu trạng thái n dẫn đến đường cụt thì heuristic của nó là h(n) = ∞.

-

Nếu trạng thái n dẫn đến trạng thái đích của bài toán thì heuristic của nó là
h(n) = 0.


2.4.1 Giải thuật tìm kiếm Best_First_Search
Một trong các giải thuật tìm kiếm sử dụng heuristic đó là giải thuật
Best_first_search. Giải thuật được trang bị bằng hai danh sách mở Open và đóng
Closed cũng giống như giải thuật tìm kiếm theo chiều rộng và chiều sâu. Giải thuật bắt
đầu tìm kiếm với nút gốc của cây, khai triển các thừa kế của gốc nhờ thông qua các
luật ứng dụng, ước lượng heuristic cho tất cả các nút con của gốc, chọn nút có
heuristic nhỏ nhất để đến viếng thăm và tháo bỏ tất cả các nút còn lại. Thủ tục này
được lặp lại cho tất cả các nút viếng thăm cho đến khi nào trạng thái đích của bài toán
được tìm thấy. Cách tìm kiếm này tạo ra một đường liên kết bám theo các trạng thái có
thông tin heuristic nhỏ nhất đó là các trạng thái được đánh giá là tốt nhất để đạt đến
đích.
Giải thuật được mô tả như sau:
Procedure best_first_search
Begin
Open = [Start];
Closed = [ ];
While Open ≠ [ ]


Begin
-

Lấy nút đầu tiên của danh sách Open , gọi nút này là X và lọai bỏ X khỏi danh
sách Open.

-

If X = đích Then return(success)
Else

Begin
- Khai triển các thừa kế của X nhờ thông qua các luật ứng dụng.
Cho mỗi thừa kế của X thực hiện một trong các trường hợp như sau :
Case : Thừa kế chưa xuất hiện trên danh sách Open hoặc Closed.
-

Ước lượng heuristic cho thừa kế.

-

Đặt thừa kế vào danh sách Open.

Case : Thừa kế đã có mặt trên danh sách Open.
-

Ước lượng heuristic cho thừa kế.

-

Nếu trạng thái mới xuất hiện là tốt hơn trạng thái cũ đã xuất hiện trên
Open thì lọai bỏ cũ khỏi danh sách Open và đặt mới vào danh sách
Open; mặt khác giữ lại trạng thái cũ ở danh sách Open và loại bỏ trạng
thái mới xuất hiện.

Case : Thừa kế đã có mặt trên danh sách Closed.
-

Ước lượng heuristic cho thừa kế.

-


Nếu trạng thái mới xuất hiện là tốt hơn trạng thái cũ đã có mặt sẵn trên
Closed thì lọai bỏ cũ khỏi danh sách Closed và đặt mới vào danh sách
Open; mặt khác giữ lại trạng thái cũ ở danh sách Closed và loại bỏ
trạng thái mới xuất hiện.

End
-

Đặt X vào danh sách Closed.


-

Sắp xếp lại các trạng thái trong danh sách Open theo thứ tự từ đầu danh
sách đến cuối danh sách tương ứng với trạng thái tốt nhất đến trạng thái
xấu nhất.

End;
End.
2.4.2 Hàm đánh giá heuristic
Giả sử quá trình tìm kiếm với thông tin heuristic trên không gian bài toán có hai
hoặc nhiều trạng thái xuất hiện có cùng heuristic, trong trường hợp này, trạng thái nào
là gần gốc nhất của cây đó là trạng thái tốt nhất. Để đánh giá đầy đủ thông tin heuris
cho các trường hợp như vậy, một hàm đánh giá heuristic được thiết lập gồm hai thành
phần đó là:
f(n) = h(n) + g(n) Ttrong đó, h(n) là hàm heuristic tại mỗi trạng thái n và g(n) là
hàm chi phí đo từ trạng thái gốc của cây đến nút trạng thái n.
Vì vậy, quá trình tìm kiếm, trạng thái nào có f(n) là nhỏ nhất đó là trạng thái tốt nhất
được chọn để tiếp diễn tìm kiếm.



×