Nhờphương pháp quét đèn ta “tiết kiệm được sốchân sửdụng của vi điều khiển
đểthực hiện nhiệm vụquét đèn, nhờ đó mà ta có khảnăng thực hiện nhiều nhiệm
vụkhác.
Minh hoạcho điều này ta xét trường hợp khi không sửdụng phương pháp quét đèn.
Mỗi một đèn led 7 thanh nếu dùng giải mã led 7 thanh thì chúng ta cần 4 tín hiệu
điều khiển đểquản lý giá trịtrên các đèn. Nhưvậy trong bài toán của chúng ta có 4
đèn thì sẽphải mất ít nhất 16 chân của vi điều khiển. Khi chúng ta tăng số đèn sử
dụng lên thỉsốchân ta sửdụng cũng tăng. Đây là nhược điểm lớn nhất của phương
pháp không quét đèn. Trong khí đó, nếu sửdụng phương pháp quét đèn thì chỉvới
8 chân vi điều khiển ta có thể điều khiển với sốlượng đèn không hạn chế. Khi tăng
đèn ta chi việc tăng thêm một giá trịcho biến quét đèn t.
37 trang |
Chia sẻ: lylyngoc | Lượt xem: 5301 | Lượt tải: 1
Bạn đang xem trước 20 trang tài liệu Giải bài toán tìm đường tránh vật cản cho robot tự hành, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
Robot tự hành
Nguyễn Vũ Quang - Đoàn Nam Thái 1
Lời nói đầu
Robot tự hành (Mobile Robot) là một thành phần có vai trò quan trọng trong ngành
Robot học. Cũng với sự phát triển mạnh mẽ của các hệ thống Cơ - Điện tử, robot tự hành
ngày một được hoàn thiện và càng cho thấy lợi ích của nó trong công nghiệp và sinh hoạt.
Một vấn đề rất được quan tâm khi nghiên cứu về robot tự hành là làm thế nào để robot
có thể di chuyển tới một vị trí xác định mà có thể tự động tránh được các chướng ngại
vật trên đường đi. Tiểu luận này có mục đích đưa ra các phương pháp để giải quyết vấn
đề trên. Trong phần một, chúng tôi xét 2 cách giải bài toán tìm đường cục bộ và toàn cục
đối với một robot có mô hình động học cho trước, sau đó tiến hành mô phỏng thử nghiệm
trên máy tính. Phần hai của tiểu luận tập trung vào giới thiệu các cảm biến, các mạch
phần cứng điều khiển một robot tự hành cụ thể đã cho chạy thử.
Chúng em xin chân thành cảm ơn những gợi ý, chỉ dẫn rất quan trọng cho đề tài này
của PGS.TS Tạ Duy Liêm. Thầy cũng đã cũng cấp cho chúng em những kiến thức và tài
liệu Robotics cần thiết trong học kỳ vừa qua. Chúng em hy vọng đây sẽ là một tiểu luận
có ích cho những ai yêu thích đề tài này.
Hà Nội, ngày 30/10/2005
Sinh viên:
Nguyễn Vũ Quang
Đoàn Nam Thái
Robot tự hành
Nguyễn Vũ Quang - Đoàn Nam Thái 2
MỤC LỤC
PHẦN 1
GIẢI BÀI TOÁN TÌM ĐƯỜNG TRÁNH VẬT CẢN CHO ROBOT TỰ HÀNH ... 3
I. Giới thiệu về robot tự hành......................................................................................... 4
II. Mô hình động học robot tự hành............................................................................... 6
III. Giải bài toán tìm đường cho robot tự hành .............................................................. 7
1. Đặt vấn đề .............................................................................................................. 7
2. Bài toán tìm đường cục bộ ..................................................................................... 8
3. Bài toán tìm đường toàn cục ................................................................................ 13
PHẦN 2
CẤU TẠO PHẦN CỨNG VÀ CÁC PHƯƠNG PHÁP ĐIỀU KHIỂN TRONG
ROBOT TỰ HÀNH ........................................................................................................ 19
I. Các loại cảm biến ..................................................................................................... 20
1. Sensor quang (Optical Sensor)............................................................................ 20
2. Đĩa encoder ......................................................................................................... 20
3. Công tắc hành trình............................................................................................. 21
II. Mạch điều khiển Robot ........................................................................................... 21
1. Khối nguồn........................................................................................................... 21
2. Khối điều khiển.................................................................................................... 22
3. Khối sensor .......................................................................................................... 24
4. Khối hiển thị ........................................................................................................ 25
5. Khối công suất điều khiển động cơ....................................................................... 27
III. Các phương pháp điều khiển trong Robot tự hành ................................................ 28
1. Phương pháp tạo encoder từ chuột máy tính ....................................................... 28
2. Phương pháp quét đèn led 7 thanh....................................................................... 30
3. Phương pháp tạo xung PWM để điều khiển tốc độ cho robot ............................. 33
IV. Xây dựng một bài toán cho Robot tự hành........................................................... 34
V. Hạn chế Robot và phương pháp khắc phục .......................................................... 36
Robot tự hành
Nguyễn Vũ Quang - Đoàn Nam Thái 3
PHẦN 1
GIẢI BÀI TOÁN TÌM ĐƯỜNG
TRÁNH VẬT CẢN CHO ROBOT
TỰ HÀNH
¾ Giới thiệu về robot tự hành
¾ Mô hình động học của robot tự hành
¾ Giải bài toán tìm đường cho robot tự hành
9 Đặt vấn đề
9 Bài toán tìm đường cục bộ (local navigation)
9 Bài toán tìm đường toàn cục (global
navigation)
Robot tự hành
Nguyễn Vũ Quang - Đoàn Nam Thái 4
I. Giới thiệu về robot tự hành
Robot tự hành hay robot di động (mobile robots, 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 robot tự hành 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.
Theo bộ phận thực hiện chuyển động, ta có thể chia robot tự hành làm 2 lớp: chuyển
động bằng chân (legged) và bằng bánh (wheeled). Trong lớp đầu tiên, chuyển động có
được nhờ các chân cơ khí bắt chước chuyển động của con người và động vật (hình 1.1g,
h). Robot loại này có thể di chuyển rất tốt trên các định hình lồi lõm, phức tạp. Tuy nhiên,
cách phối hợp các chân cũng như vấn đề giữ vững tư thế là công việc cực kỳ khó khăn.
Lớp còn lại (di chuyển bằng bánh) tỏ ra thực tế hơn, chúng có thể làm việc tốt trên hầu
hết các địa hình do con người tạo ra. Điều khiển robot di chuyển bằng bánh cũng đơn
giản hơn nhiều, gần như luôn đảm bảo tính ổn định cho robot. Lớp này có thể chia làm 3
loại robot: Loại chuyển động bằng bánh xe (phổ biến) (hình 1.1a, b, c, f, i), loại chuyển
động bằng vòng xích (khi cần mô men phát động lớn hay khi cần di chuyển trên vùng
đầm lầy, cát và băng tuyết) (hình 1.1d, e), và loại hỗn hợp bánh xe và xích (ít gặp).
Tiềm năng ứng dụng của robot tự hành hết sức rộng lớn. Có thể kể đến robot vận
chuyển vật liệu, hàng hóa trong các tòa nhà, nhà máy, cửa hàng, sân bay và thư viện;
robot phục vụ quét dọn đường phố, khoang chân không; robot kiểm tra trong môi trường
nguy hiểm; robot canh gác, do thám; robot khám phá không gian, di chuyển trên hành
tinh; robot hàn, sơn trong nhà máy; robot xe lăn phục vụ người khuyết tật; robot phục vụ
sinh hoạt gia đình v.v...
Mặc dù nhu cầu ứng dụng cao, nhưng những hạn chế chưa giải quyết được của robot tự
hành, như chi phí chế tạo cao, đã không cho phép chúng được sử dụng rộng rãi. Một
nhược điểm khác của robot tự hành phải kể đến là còn thiếu tính linh hoạt và thích ứng
khi làm việc ở những vị trí khác nhau. Bài toán tìm đường (navigation problem) của robot
tự hành cũng không phải là loại bài toán đơn giản như nhiều người nghĩ lúc ban đầu.
Trong tiểu luận này, bài toán tìm đường sẽ được giải quyết ở mức độ không quá phức tạp.
Robot tự hành
Nguyễn Vũ Quang - Đoàn Nam Thái 5
a) b) c)
d) e)
f) g)
h) i)
Hình 1.1. Một số hình ảnh về robot tự hành
a) Robot Nomad 150. b) Sự kết hợp giữa robot tự hành Nomadic XR4000 và cánh tay
robot PUMA 560. c) Robot “con rùa”. d) Robot Houdini di chuyển bằng bánh xích
e) Robot bán tự động nghiên cứu ở vùng cực bắc. f) Robot SRR và FIDO của NASA
g) Robot tự hành bằng chân Spiderbot di chuyển trên sao Hỏa. h)Robot sáu chân Genghis
i) Robot Meet Timbot dùng test các phần mềm hệ thống nhúng trong phòng thí nghiệm
Robot tự hành
Nguyễn Vũ Quang - Đoàn Nam Thái 6
II. Mô hình động học robot tự hành
Mô hình kết cấu
Hình 1.2. Mô hình kết cấu của robot
Kết cấu robot lựa chọn gồm 4 bánh trong đó có 2 bánh chủ động (phía sau) và 2 bánh
tùy động có khả năng quay tuỳ ý. Với kết cấu cơ khí này robot có khả năng di chuyển rất
linh hoạt: tiến, lùi và quay một góc bất kỳ.
Động học của robot
Gọi 1s∆ , 2s∆ là
đoạn dịch chuyển
của 2 bánh chủ
động. Ta có
rs
rs
.
.
22
11
ϕ
ϕ
∆=∆
∆=∆
với 1ϕ∆ , 2ϕ∆ , r
lần lượt là lượng
dịch chuyển quay
và bán kính của 2
bánh chủ động.
Hình 1.3. Động học của robot
T là khoảng cách giữa 2 bánh. RD , ∆Ψ là bán kính quay và góc dịch chuyển của robot
trong mặt phẳng nằm ngang. Khi đó:
)(
2 12
12
ss
ssTRD ∆−∆
∆+∆= ,
T
ss 12 ∆−∆=∆Ψ
Trong tiểu luận này, ta chỉ xét 2 trường hợp đặc biệt của chuyển động:
Khi 12 ss ∆=∆ : ∞=DR , 0=∆Ψ , robot đi theo quỹ đạo là đường thẳng (tiến hoặc lùi)
Khi 12 ss ∆−=∆ : 0=DR , Ts /2 2∆=∆Ψ , robot quay quanh điểm giữa 2 bánh xe D.
Robot tự hành
Nguyễn Vũ Quang - Đoàn Nam Thái 7
x∆ , y∆ : lượng dịch chuyển theo 2 phương của hệ tọa độ gắn với robot:
)sin(∆Ψ=∆ DRx , ))cos(1( ∆Ψ−=∆ DRy
X∆ , Y∆ : lượng dịch chuyển của robot theo 2 phương gắn với hệ tọa độ gốc:
Vị trí của robot được xác định bởi tọa độ gốc của D (XD và YD) + góc định hướng DΨ , tọa
độ tại thời điểm thứ (i) được xác định như sau:
⎥⎥
⎥
⎦
⎤
⎢⎢
⎢
⎣
⎡
∆
∆
∆Ψ
+
⎥⎥
⎥
⎦
⎤
⎢⎢
⎢
⎣
⎡Ψ
=
⎥⎥
⎥
⎦
⎤
⎢⎢
⎢
⎣
⎡Ψ
−
−
−
)(
)(
)(
)1(
)1(
)1(
)(
)(
)(
iD
iD
iD
iD
iD
iD
iD
iD
iD
Y
X
Y
X
Y
X
III. Giải bài toán tìm đường cho robot tự hành
1. Đặt vấn đề
Dò đường (navigation) là một khoa học (hay nghệ thuật) dẫn hướng robot tự hành di
chuyển trong không gian làm việc của nó (đất, nước, không khí...). Trong vấn đề dò
đường, bài toán được quan tâm nhiều nhất có lẽ là tìm đường về đích mà không chạm vật
cản trên đường đi. Có hai loại bài toán tìm đường cho robot: bài toán cục bộ (local) và bài
toán toàn cục (global). Trong bài toán toàn cục, bản đồ môi trường làm việc của robot
hoàn toàn được biết trước, vấn đề chính phải giải quyết là tìm được đường đi cho robot
trước khi nó xuất phát. Ở bài toán cục bộ, môi trường làm việc của robot hoàn toàn không
được biết trước hoặc chỉ biết được một phần, robot hoàn toàn phải nhờ vào sự cảm nhận
môi trường thông qua cảm biến gắn trên nó để dò đường.
Bài toán toàn cục tỏ rõ lợi thế là ta đã biết trước có đường đi (tối ưu) tới đích hay không
trước khi cho robot khởi hành. Tuy vậy nó có hạn chế là đòi hỏi nhiều lệnh tính toán và
bộ nhớ, và đặc biệt tình huống xấu có thể xảy ra nếu bản đồ môi trường làm việc không
được khai báo chính xác, yêu cầu biết trước hoàn toàn môi trường hoạt động cũng là một
nhược điểm của nó. Trong khi đó, robot tìm đường cục bộ chỉ biết được thông tin xung
quanh qua sensor cảm nhận môi trường gắn cùng. Vì thế, robot tìm đường cục bộ có thể
không hoàn thành việc tới đích (mặc dù thực tế có đường đi tới đích), khái niệm tối ưu
không có ý nghĩa trong bài toán này. Tuy nhiên, yêu cầu tính toán, dung lượng nhớ thấp
cùng tính linh hoạt cao (như tránh được vật cản ngay cả khi vật đó di động) khiến tìm
đường cục bộ trở thành một công cụ mạnh của robot tự hành. Hiện nay, cách tiếp cận kết
hợp giữa cục bộ và toàn cục đang ở ngày càng phổ biến, giúp robot tự hành tăng tính linh
hoạt và hiệu quả.
Trong tiểu luận, chúng tôi tập trung vào giải quyết cả hai bài toán nhưng ở mức độ đơn
giản. Môi trường hoạt động của robot là một mặt phẳng, được giới hạn bởi các bức tường.
Các vật cản được xem là vật cản hai chiều, tĩnh hoàn toàn. Trong bài toán cục bộ, robot
được trang bị 3 sensor xác định khoảng cách vật cản, đã biết trước vị trí đích (đích có thể
phát sóng để robot hướng theo). Trong bài toán toàn cục, từ đầu vào là vị trí xuất phát, vị
trí đích, kích thước robot, bản đồ hoạt động, ta tìm ra đường đi để robot tự hành. Mục
⎥⎦
⎤⎢⎣
⎡
∆Ψ
∆Ψ
⎥⎦
⎤⎢⎣
⎡
∆∆
∆−∆=⎥⎦
⎤⎢⎣
⎡
∆
∆
)sin(
)cos(
xy
yx
Y
X
Robot tự hành
Nguyễn Vũ Quang - Đoàn Nam Thái 8
đích cuối cùng là robot tự về được tới đích không chạm vật cản mà không cần bất cứ sự
trợ giúp nào từ bên ngoài.
2. Bài toán tìm đường cục bộ
Giải quyết hoàn toàn bài toán này khó khăn hơn nhiều so với giải quyết bài toàn toàn
cục. Một cách tìm đường cục bộ khá hoàn hảo là phương pháp bản đồ nơron cực (Polar
Neurol Map) của Michail G. Lagoudakis (1998) dùng 16-32 cảm biến gắn trên con robot
Normad (hình 1.1a, b) tạo trường cảm biến bao phủ vùng xung quanh robot, thuật toán sử
dụng là thuật toán ánh xạ nơron tương đối phức tạp. Do giới hạn của tiểu luận, phương
pháp này không được đề cập đến.
Phương pháp được đề cập đến ở đây sử dụng 3 cảm biến dò đường xác định khoảng cách
từ trung điểm hai bánh xe tới vật cản. Tùy vào khoảng cách tới vật cản ứng với từng cảm
biến, ta xác định được phương hướng di chuyển robot phù hợp.
Ý tưởng của phương pháp xuất phát từ một bài báo Cơ điện tử
[1]. Tuy nhiên luật dẫn hướng robot trong bài báo còn khá
đơn giản, điều kiện yêu cầu hơi thô (như khoảng cách các vật
cản phải lớn hơn kích thước robot), kết quả mô phỏng cho
thấy thuật toán của bài báo tỏ ra nhiều bất cập: robot nhiều lúc
chạm vật cản, lặp đi lặp lại một đoạn đường và khó thoát ra
được. Dựa theo nguyên lý của thuật toán đó, chúng tôi đã có
những thay đổi và bổ sung để đem lại kết quả tìm đường hiệu
quả hơn.
Hình 1.4. Ba cảm biến của robot
Các cảm biến được đặt lệch một góc α (trong phần mô phỏng, chọn °= 25α ). Khoảng
cách lớn nhất (tính từ D) mà các cảm biến có thể nhận diện được vật cản là dmax; dmax
và α phải đảm bảo sao cho cảm biến có vùng kiểm tra đủ rộng để khi tiến thẳng, robot có
thể nhận diện được vật cản.
Y
Đích )(tϕ
X
Hình 1.5. Không gian làm việc của robot trong mặt phẳng 2 chiều
Gọi:
Robot tự hành
Nguyễn Vũ Quang - Đoàn Nam Thái 9
)(tθ : góc chỉ hướng của robot ở thời điểm t.
)(tϕ : góc hướng về đích tính từ tâm robot (điểm D).
)(taθ : góc dẫn hướng cho robot tránh vật cản.
)(t∗θ : góc dẫn hướng điều khiển chuyển động cho robot.
Khi sensor không phát hiện vật cản thì )()( tt ϕθ =∗ , ngược lại thì )()( tt aθθ =∗ .
Cách ứng xử của robot khi sensor phát hiện vật cản:
Có 7 tình huống khác nhau khi sensor phát hiện vật cản, mỗi tình huống cần có cách ứng
xử riêng.
Hình 1.6. Các tình huống phát hiện vật cản
9 Tình huống 1 (TH1): cả 3 cảm biến đều phát hiện vật cản (Hình 1.6a)
+ Nếu dl>dr thì robot quay sang trái: ),( OxBAa =θ
+ Nếu dl<=dr thì robot quay sang phải: ),( OxBCa =θ
9 TH2: Chỉ có cảm biến bên trái không phát hiện vật cản (Hình 1.6b)
Robot quay sang trái: ),( OxCBa =θ
9 TH3: Chỉ có cảm biến bên phải không phát hiện vật cản (Hình 1.6c)
Robot quay sang phải: ),( OxABa =θ
Robot tự hành
Nguyễn Vũ Quang - Đoàn Nam Thái 10
9 TH4: Chỉ có cảm biến ở giữa không phát hiện vật cản (Hình 1.6d)
Robot quay sang phải một góc °90 (gán aθ = °− 90aθ , sau đó hiệu chỉnh
)360,0[ °∈aθ )
9 TH5: Chỉ có cảm biến bên trái phát hiện vật cản (Hình 1.6e)
Robot quay sang phải một góc °25 (gán aθ = °− 25aθ , sau đó hiệu chỉnh
)360,0[ °∈aθ )
9 TH6: Chỉ có cảm biến bên phải phát hiện vật cản
Robot quay sang trái một góc °25 (gán aθ = °+ 25aθ , sau đó hiệu chỉnh
)360,0[ °∈aθ )
9 TH7: Chỉ có cảm biến ở giữa phát hiện vật cản (Hình 1.6f)
Robot quay sang trái một góc °90 (gán aθ = °− 90aθ , sau đó hiệu chỉnh
)360,0[ °∈aθ )
Khi robot đang quay hướng về đích, nếu phát hiện vật cản nó sẽ tiến hành chuyển hướng
quay luôn. Để đảm bảo điều này, trong quá trính quay hướng về đích, mỗi lần robot quay
một góc đơn vị (đv) nhỏ, ta phải cập nhật cảm biến.
Sau khi robot chuyển hướng rồi tiến thẳng một đoạn, vẫn có khả năng robot chạm vật cản
(nhất là ở những ngõ cụt), vì vậy khi robot quá gần vật ta tiến hành lùi lại 1 đoạn, quay
một góc °45 sang phải (gán aθ = °− 45aθ , hiệu chỉnh )360,0[ °∈aθ ), sau đó
cập nhật cảm biến.
Hình 1.7. Khi khoảng cách nhỏ hơn hoặc bằng DI, DJ,
DK tức là robot quá gần vật
Robot tự hành
Nguyễn Vũ Quang - Đoàn Nam Thái 11
đ
S
đ
đ
S
đ
Về tới
đích?
Quay một góc đv
hướng tới đích
Có vật
cản?
Đã hướng
tới đích?
Bẻ lái chuyển hướng
robot Có vật
cản?
Tiến thẳng một đoạn
đv
Quá gần
vật cản?
Đã
tiến đủ
Lùi một đoạn Quay một góc °45
sang phải
Dừng robot
đ
S
S
đ
S
S
Hình 1.8. Sơ đồ quá trình tìm đường của robot dùng 3 cảm biến
Robot tự hành
Nguyễn Vũ Quang - Đoàn Nam Thái 12
Kết quả mô phỏng cho thấy >90% các trường hợp robot có thể về đến đích mà không
chạm vật cản.
Hình 1.9. Một quá trình tránh vật cản của robot (mô phỏng)
Hỏi: Robot 3 cảm biến có khả năng chạm vật cản không?
Trả lời: Robot 3 cảm biến vẫn có khả năng chạm vật cản. Tuy nhiên khả năng
đó ít xảy ra do robot có thêm thủ tục lùi lại khi cảm biến phát hiện vật cản quá
gần robot. Muốn robot hoàn toàn không chạm vật , ta cần có một hệ cảm biến
bao phủ toàn bộ một vùng xung quanh robot cùng một thuật toán phức tạp hơn.
Hỏi: Robot có thể về tới đích không?
Trả lời: Không phải lúc nào robot cũng về được tới đích, dù trên lý thuyết có
đường đi tới đích, đó là một nhược điểm của các thuật toán đơn giản khi giải bài
toán cục bộ.
Hỏi: Ưu, nhược điểm của phương pháp này là gì?
Trả lời: Ưu điểm chính của phương pháp là robot chỉ phải sử dụng 3 cảm biến
đo khoảng cách cùng một thuật toán đơn giản, mà hiệu quả quá trình tìm đường
của robot khá cao.
Nhược điểm chính là robot không thể xác định đầy đủ biên của vật cản do chỉ có
3 cảm biến, vì vậy dẫn đến chuyện robot vẫn có thể chạm vật hoặc không về tới
được đích.
Robot tự hành
Nguyễn Vũ Quang - Đoàn Nam Thái 13
3. Bài toán tìm đường toàn cục
Khác với tìm đường cục bộ, tìm đường toàn cục giải quyết đường đi cho robot khi ta
biết trước bản đồ của môi trường hoạt động, tức ngoài điểm khởi đầu và điểm đích ta còn
biết được vị trí và hình dạng của các vật cản. Tìm đường toàn cục tối ưu (quãng đường
ngắn nhất) đem lại những kết quả thú vị như ở hình dưới.
Hình 1.10. Đường đi ngắn nhất trong mê
cung xoắn
Có nhiều cách mô hình hóa môi trường làm việc của robot, ta xét một mô hình hay được
sử dụng là mô hình bản đồ không gian kết hợp (composite-space maps).
Trong bản đồ không gian kết hợp, môi trường làm việc của robot (2D) được chia làm các
hình vuông nhỏ bằng cách kẻ lưới (grid). Thông tin được lưu trữ ứng với mỗi ô là vật cản
có nằm trên ô hay không, thông tin này được cho bởi một mảng 2 chiều mà mỗi chiều
theo phương x hay phương y xác định vị trí mỗi ô vuông trên bản đồ. Để tăng hiệu quả
của bài toán, mô hình cần phải gần sát thực tế, tức ta phải thu nhỏ kích thước của ô vuông
lưới để nó đánh giá chính xác vị trí vật cản ở mức độ cho phép.
Biên của robot là đường tròn bảo vệ robot, tâm đường tròn là trung điểm của 2 bánh chủ
động. Tâm đường tròn, bán kính đường tròn được coi là tâm và bán kính robot.Yêu cầu
đường tròn này không được giao với vùng vật cản. Khác bài toán cục bộ (khi mà ta
không có thông tin nào trước về vật cản), vật cản ở đây đã được xác định, tức là có thể xử
lý thông tin vật cản trước khi cho robot chạy. Nhằm đơn giản hóa bài toán, các vật cản
được kéo giãn (expanded) theo mọi phía một lượng bằng đúng bán kính của robot, đồng
thời robot được rút lại còn đúng một điểm, điểm này chính là tâm robot. Như vậy thay vì
tìm đường cho robot tránh vật cản ta chỉ cần tìm đường cho điểm tâm robot tránh các vật
cản đã được kéo giãn. Vật cản được kéo giãn sẽ được mô hình hóa bằng các ô lưới như
đã nói ở trên.
Robot tự hành
Nguyễn Vũ Quang - Đoàn Nam Thái 14
Hình 1.11. Vật cản bên trong được “giãn ra” một khoảng bằng bán kính robot, các
ô lưới màu trắng là các ô lưới không chứa vật cản (đã được kéo giãn)
Mỗi ô lưới có 8 ô liền kề. Chuyển động của điểm tâm robot được thực hiện giữa các ô
lưới. Điểm tâm robot được xác định là ở tâm ô vuông lưới. Điểm tâm có thể chuyển động
theo 8 hướng để đến được tâm của các ô liền kề.
Hình 1.12. Chuyển động của tâm robot giữa các ô lưới
Nhiệm vụ dẫn đường cho robot do bộ xác định đường đi (path planner) đảm nhiệm. Công
việc của bộ xác định bao gồm:
+ Sử dụng một thuật toán nhằm mã hóa một cấu trúc dữ liệu tương ứng với các ô lưới
vuông (thường dưới dạng mảng 2 chiều).
+ Từ kết quả mã hóa, thực hiện thuật toán lập đường đi cho robot.
Ta sử dụng một thuật toán mã hóa rất hiệu quả dựa trên phương pháp biến đổi khoảng
cách (distance transform method) của Kang và Jarvis (1986). Mục đích của thuật toán là
tạo ra 1 mảng 2 chiều lưu giữ giá trị quãng đường ngắn nhất để tới đích của mỗi ô lưới.
Bằng cách này, ta sẽ giải được bài toán yêu cầu quãng đường di chuyển từ điểm xuất phất
đến điểm đích là ngắn nhất. Trong phương pháp của Kang và Jarvis, bộ xác định khởi
đầu ở ô đích và lan truyền (propagate) các khoảng cách (hay quãng đường) qua không
gian trống. Một cách hình tượng giống như khi ta ném một hòn đá xuống ao, sóng nước
lan ra, chúng bị triệt tiêu khi gặp vật cản, chỗ nào sóng nước loang càng thưa thì quãng
đường tới đích (vị trí ném) càng lớn (hình 1.13).
Robot tự hành
Nguyễn Vũ Quang - Đoàn Nam Thái 15
Hình 1.13. Hiện tượng lan truyền sóng nước
Quãng đường đi được của sóng tương đương với độ thưa của sóng
Thuật toán sử dụng một mảng hai chiều đại diện cho mỗi ô lưới, giá trị của mảng là
khoảng cách ngắn nhất mà ô lưới đó đến ô đích.
Ta khởi đầu cho mảng các giá trị khoảng cách tương đối lớn ứng với mỗi ô lưới, cụ thể
bằng maxmax .yx trong đó maxx là số ô lưới trong một hàng, maxy là số ô lưới trong một cột,
ngoại trừ ô đích được đặt bằng 0 (vì 0 là khoảng cách từ ô đích đến chính nó). Thuật toán
sẽ kiểm tra sự tồn tại của vật cản, và không tính toán cho các phần tử mảng ứng với ô
lưới có vật cản. Vì vậy thuật toán lập đường đi sau này không cần phải kiểm tra ô vuông
lưới có vật cản hay không, vật cản được đặt giá trị khoảng cách lớn nên đường đi tự nhiên
sẽ không qua chúng.
Thuật toán lan truyền
1. Bản đồ môi trường được kẻ lưới thành một ma trận 1.. maxx ,1.. maxy
2. Cấp phát một mảng 2 chiều 0... maxx +1, 0.. maxy +1 để lưu giữ các giá trị khoảng cách.
Các hàng và cột ngoài cùng tạo thành một đường chữ nhật bao (gọi là hình chữ nhật canh
giữ) nhằm đơn giản tính toán không phải xét các trường hợp đặc biệt khi ô lưới ở biên
không có đủ 8 ô kề.
3. Khởi tạo cho mảng khoảng cách bằng cách đặt ô đích =0 và tất cả các ô khác một giá
trị khá lớn= ( maxmax .yx )
4. Tính toán khoảng cách bằng phép lặp repeat , thực hiện quét thuận và quét ngược qua
mảng.
Repeat { quét thuận}
// quét thuận từ trên xuống dưới
For các hàng của bản đồ (1.. maxy ) do
For các cột của bản đồ (1.. maxx ) do
If ô lưới không có vật cản Then
{Bắt đầu tính toán khoảng cách}
For mỗi ô trong 8 ô liền kề ô đang xét
Tính khoảng cách=giá trị khoảng cách mỗi ô kề + khoảng cách ô kề tới ô
đang xét.
Robot tự hành
Nguyễn Vũ Quang - Đoàn Nam Thái 16
If khoảng cách này < giá trị khoảng cách hiện tại của ô đang xét Then
Gán giá trị khoảng cách của ô đang xét bằng khoảng cách mới
// quét thuận từ dưới lên trên
For các hàng của bản đồ ( maxy ..1) do
For các cột của bản đồ (1.. maxx ) do
{Làm tương tự trên}
{Quét ngược}
// quét ngược từ dưới lên trên
For các hàng của bản đồ ( maxy ..1) do
For các cột của bản đồ ( maxx ..1) do
{Làm tương tự trên}
// quét ngược từ trên xuống dưới
For các hàng của bản đồ (1.. maxy ) do
For các cột của bản đồ ( maxx ..1) do
{Làm tương tự trên}
Until Mảng khoảng cách hội tụ
Sử dụng phương pháp quét thuận và ngược (hình 1.15) giúp giá trị khoảng cách của các ô
lưới đạt nhỏ nhất, mỗi lẫn quét (duyệt) một ô, giá trị của khoảng cách hiện tại của ô đó
được so sánh với tổng giá trị khoảng cách mỗi ô liền kề + khoảng cách ô liền kề tới nó
(khoảng cách giữa 2 ô nằm ngang hoặc dọc so với nhau là 1, giữa 2 ô chéo nhau là
2 (hình 1.14)). Giá trị khoảng cách nào nhỏ nhất sẽ được gán lại cho ô đang xét. Quá
trình quét sẽ hoàn tất (hội tụ) khi mảng không thay đổi giá trị khoảng cách nữa.
2+ 1+ 2+
+1 +1
2+
+1 2+
Hình 1.14. Khoảng cách của mỗi ô kề đối với ô đang xét (ô đen)
Hình 1.15. Quét thuận (3,1) và quét ngược (4,2)
Robot tự hành
Nguyễn Vũ Quang - Đoàn Nam Thái 17
55 55 55 55 55 55 55 55 55 55 55
55 55 55 55 55 55 55 55 55 0 55
55 55 55 55 55 55 55 55 55 55 55
55 55 55 55 55 55 55 55 55 55 55
55 55 55 55 55 55 55 55 55 55 55
a) Khởi tạo
55 55 55 55 55 55 55 55 1.4 1 1.4
55 55 55 55 55 55 55 55 1 0 1
55 55 55 55 55 55 55 2.4 1.4 1 1.4
55 55 55 55 55 55 3.8 2.8 2.4 2 2.4
55 55 55 55 55 5.2 4.2 3.8 3.4 3 3.4
b) Quét thuận 1
55 55 55 8 6.2 5.2 3.4 2.4 1.4 1 1.4
55 55 55 55 6.6 4.8 3.8 2 1 0 1
55 55 9 55 6.2 5.2 3.4 2.4 1.4 1 1.4
55 55 55 7.6 6.6 4.8 3.8 2.8 2.4 2 2.4
55 55 55 55 6.2 5.2 4.2 3.8 3.4 3 3.4
c) Quét thuận 2
9.4 8.4 7.4 6.4 5.4 4.4 3.4 2.4 1.4 1 1.4
10.6 55 55 55 5 4 3 2 1 0 1
10.2 9.2 8.2 55 5.4 4.4 3.4 2.4 1.4 1 1.4
9.8 8.8 7.8 6.8 5.8 4.8 3.8 2.8 2.4 2 2.4
10.2 9.2 8.2 7.2 6.2 5.2 4.2 3.8 3.4 3 3.4
d)Quét ngược 1
9.4 8.4 7.4 6.4 5.4 4.4 3.4 2.4 1.4 1 1.4
9.8 55 55 55 5 4 3 2 1 0 1
10.2 9.2 8.2 55 5.4 4.4 3.4 2.4 1.4 1 1.4
9.8 8.8 7.8 6.8 5.8 4.8 3.8 2.8 2.4 2 2.4
10.2 9.2 8.2 7.2 6.2 5.2 4.2 3.8 3.4 3 3.4
e) Quét ngược 2 (đã hội tụ)
9.4 8.4 7.4 6.4 5.4 4.4 3.4 2.4 1.4 1 1.4
9.8 55 55 55 5 4 3 2 1 0 1
10.2 9.2 8.2 55 5.4 4.4 3.4 2.4 1.4 1 1.4
9.8 8.8 7.8 6.8 5.8 4.8 3.8 2.8 2.4 2 2.4
10.2 9.2 8.2 7.2 6.2 5.2 4.2 3.8 3.4 3 3.4
f) Đường đi
Hình 1.16. Thuật toán lan truyền khoảng cách cho bản đồ 5×11
Robot tự hành
Nguyễn Vũ Quang - Đoàn Nam Thái 18
Hình 1.16 mô tả một ví dụ tìm đường đi cho một bản đô 5×11. Các ô gạch đen là các ô có
vật cản. Chỉ sau một lần lặp repeat, các giá trị khoảng cách đã hội tụ. Sau khi tạo giá trị
khoảng cách cho mỗi ô, đường đi được xác định bằng thuật toán đơn giản sau.
Thuật toán lập đường đi
Bắt đầu ở ô xuất phát
Xét các ô liền kề xem ô nào có giá trị khoảng cách < giá trị khoảng cách của ô xuất phát
hay không.
If không có Then kết thúc, không tìm được đường đi
Else {Có đường đi}
Đưa ô xuất phát vào đường đi
Repeat
Xét các ô liền kề để tìm ô có giá trị khoảng cách thấp nhất
Chuyển tới ô liền kề
Đưa ô đó vào đường đi
Until tới ô đích
End
Hình 1.16f) cho thấy một đường đi từ ô tọa độ (1, 3) để tới đích có tọa độ (10,2).
Dưới đây là hình ảnh mô phỏng robot tìm đường toàn cục.
Hình 1.17. Mô phỏng robot tìm đường toàn cục
Hỏi: Phương pháp lan truyền khoảng cách luôn tìm được đường ngắn nhất?
Trả lời: Phương pháp trên là phương pháp tìm đường ngắn nhất, tuy vậy hiệu
quả của phương pháp chỉ tốt khi các ô lưới có kích thước đủ nhỏ để xác định
đúng biên của vật cản. Nếu kích thước ô lưới quá lớn, phương pháp trên sẽ
không còn ý nghĩa tối ưu.
Hỏi: Ưu điểm và nhược điểm của phương pháp này?
Trả lời: Ưu điểm là thuật toán lan truyền đơn giản và hội tụ nhanh, tạo ra đường
đi ngắn nhất cho robot tới đích mà không chạm vật cản.
Nhược điểm của phương pháp là đường đi tạo ra gãy khúc, không trơn. Vì vậy
cần áp dụng 1 thuật toán khác để làm trơn đường đi.
Robot tự hành
Nguyễn Vũ Quang - Đoàn Nam Thái 19
PHẦN 2
CẤU TẠO PHẦN CỨNG VÀ CÁC
PHƯƠNG PHÁP ĐIỀU KHIỂN
TRONG ROBOT TỰ HÀNH
¾ Một số sensor thường dùng trong robot tự hành
¾ Mạch điều khiển robot
9 Khối nguồn
9 Khối điều khiển
9 Khối sensor
9 Khối công suất
9 Khối hiển thị
¾ Phương pháp điều khiển Robot
9 Phương pháp làm encoder từ chuột máy
tính
9 Phương pháp quét đèn Led 7 thanh
9 Phương pháp PWM điều khiển tốc độ cho
Robot
¾ Xây dựng một bài toán đơn giản cho Robot
¾ Hạn chế của Robot và biện pháp khắc phục
Robot tự hành
Nguyễn Vũ Quang - Đoàn Nam Thái 20
I. Các loại cảm biến
1. Sensor quang (Optical Sensor)
Hình 2.1. Sensor quang
• Nguyên tắc hoạt động:
Gồm 2 đèn: một đèn thu (dectector) và một đèn phát (emitting diode). Khi ánh sáng đèn
phát chiếu vào vật cản thì ánh sáng phản xạ sẽ được nhận biết ở đèn thu.
• Ứng dụng:
Nhận biết vật cản trong robot tự hành
2. Đĩa encoder
Hình 2.2. Đĩa Encoder
• Nguyên tắc hoạt động
Gồm bộ phát, bộ thu và đĩa tròn (bị xẻ rãnh hoặc được mã hoá), nguyên lý
hoạt động gần giống trường hợp trên.
Robot tự hành
Nguyễn Vũ Quang - Đoàn Nam Thái 21
• Ứng dụng
Đo chuyển động quay
3. Công tắc hành trình
Hình 2.3. Công tắc hành trình
• Nguyên tắc hoạt động
Cấu tạo là 1 cặp tiếp điểm, bình thường hai tiếp điểm không nối với nhau, khi
bị ấn chúng chạm vào nhau.
• Ứng dụng
Tránh cho robot va đập vào những vật cứng
II. Mạch điều khiển Robot
1. Khối nguồn
9 Nguồn động lực lấy từ ắc qui 12V, 5A
9 Nguồn điều khiển lấy từ ắc qui qua IC ổn áp 7805
Sơ đồ nguồn cung cấp cho khối điều khiển:
U20
LM7805
1
2
3
VI
G
N
D
VO
D22
LED
C5
CAP
C4
CAP
NGUON DIEU KHIEN
C9
CAP NP
C8
CAP NP
R2
R
NGUON AC QUI
Hình 2.4. Mạch nguồn
Robot tự hành
Nguyễn Vũ Quang - Đoàn Nam Thái 22
2. Khối điều khiển
Vi điều khiển họ 8051- AT89C51
9 Sơ đồ chân linh kiện
Hình 2.5. Vi điều khiển AT89C51
Vi điều khiển 89C51 có 4 port có thể làm nhiệm vụ vào và ra. Các port 1,2,3 có điện trở
trong kéo lên nên khi dùng làm đầu vào và đâu ra không cần điện trở kéo lên, riêng port 0
phải dùng điện trở ngoài kéo lên. Do đó port 0 thường dùng làm đầu vào các công tắc
hành trình, các cảm biến.
9 Thông số của vi điều khiển 8051
Đặc tính Số lượng
ROM 4K
RAM 128 byte
Bộ định thời 2
Chân vào/ra 32
Cổng nối tiếp 1
Nguồn ngắt 6
9 Bộ định thời
8051 có hai bộ định thời là timer 0 và timer 1. Cả hai bộ định thời đều có độ dài là 16
bit. 8051 có cấu trúc 8 bit nên mỗi bộ định thời được truy nhập dưới dạng hai thanh
ghi độc lập là byte thấp và byte cao.
Timer 0: TH0 (byte cao) và TL0 (byte thấp)
Timer 1: TH1 (byte cao) và TL1 (byte thấp)
Hai bộ định thời có 4 chế độ hoạt động
Robot tự hành
Nguyễn Vũ Quang - Đoàn Nam Thái 23
9 Chế độ định thời 13 bit: Bộ định thời 8 bit, định tỉ lệ trước 5 bit.
9 Chế độ định thời 16 bit, không định tỉ lệ trước.
9 Chế độ tự nạp lại 8 bit. THx lưu giữ giá trị sẽ tự nạp vào TLx khi có tràn.
9 Chế độ định thời chia tách.
Trong giới hạn bài toán robot tự hành ta chỉ tập trung phân tích chế độ 2 của bộ định
thời (chế độ nạp lại 8 bit).
Chế độ nạp lại 8 bit:
9 Đó là bộ định thời 8 bit nên chỉ cho phép các giá trị từ 00 đến FFH được nạp
vào thanh ghi TH của bộ định thời.
9 Sau khi TH được nạp giá trị 8 bit thì 8051 sao nội dung đó vào TL và bộ đinh
thời được khởi động.
9 Bộ định thời sau khi được khởi động thì bắt đầu đếm tăng bằng cách tăng
thanh ghi TL. Bộ định thời đếm cho đến khi đạt giá trị tới hạn là FFH. Khi
quay vòng từ FFH về 00 thì cờ bộ định thời TF được thiết lập.
9 Khi thanh ghi TL quay từ FFH về 00, cờ TF được bật 1lên thì thanh ghi TL tự
động nạp lại giá trị ban đầu được giữ trong thanh ghi TH.
9 Cờ TF được tự xoá và bộ định thời lại bắt đầu một chu trình mới mà không
cần bất kì một sự can thiệp nào của lập trình viên.
Minh hoạ cho chế độ tự nạp lại 8 bit:
Hình 8.6. Chế độ nạp lại 8 bits
Robot tự hành
Nguyễn Vũ Quang - Đoàn Nam Thái 24
Sơ đồ mạch điều khiển
P1_4
0VVDK
P3_6
5V
P2_1
P1_3
P3_3
P0_3
C9
TXD
U5
AT89C51
9
18
19
20
29
30
31
40
1
2
3
4
5
6
7
8
21
22
23
24
25
26
27
28
10
11
12
13
14
15
16
17
39
38
37
36
35
34
33
32
RST
XTAL2
XTAL1
G
N
D
PSEN
ALE/PROG
EA/VPP
VC
C
P1.0
P1.1
P1.2
P1.3
P1.4
P1.5
P1.6
P1.7
P2.0/A8
P2.1/A9
P2.2/A10
P2.3/A11
P2.4/A12
P2.5/A13
P2.6/A14
P2.7/A15
P3.0/RXD
P3.1/TXD
P3.2/INT0
P3.3/INT1
P3.4/T0
P3.5/T1
P3.6/WR
P3.7/RD
P0.0/AD0
P0.1/AD1
P0.2/AD2
P0.3/AD3
P0.4/AD4
P0.5/AD5
P0.6/AD6
P0.7/AD7
C8
D15
LED
P1_1
EA
R4
100
TXD
P0_5
RXD
0V
P2_3
RN3
RESISTOR DIP 4
2
3
4
5 1
1
1
1
P3_7
P1_5
P0_6
EA
P0_4
SW2
P1_0
SW3
P2_1
C4
10U
Y1
D17
LED
P3_4
RN1
1
1
1
1
1
1
1
1
1
2
3
4
5
6
7
8
9
10
P2_0
P3_5
5VVDK
P3_6
RXDP0_0
5VVDK
R13
R
P3_5
5VVDK
P2_3
START
P1_6
R14
R
START
J5
CON2
1
2
P2_0
J8
CON5
1
2
3
4
5
P3_4
J7
CON2
1
2
RN4
RESISTOR DIP 4
1
1
1
1 5
4
3
2
P3_3
P1_2
P1_7
R29
R
P2_2
D16
LED
D18
LED
P3_7
R3
8.2K
P0_2
5VVDK
P0_7
P2_2
5VVDK
P0_1
SW1
SW DIP-4
Hình 2.6 Sơ đồ mạch điều khiển
3. Khối sensor
9 Nhiệm vụ
Phát hiện vật cản, nếu có vật cản thì phát ra tín hiệu báo cho IC biết
9 Thành phần
• Dùng cặp LED thu phát hồng ngoại
• Bộ khuếch đại thuật toán (so sánh với tín hiệu từ sensor, tạo ra tín hiệu
báo cho vi điều khiển biết)
9 Nguyên lý hoạt động
LED thu bình thường có điện trở rất lớn cỡ 10K, nhưng khi có ánh sáng LED
phát chiếu vào thì điện trở giảm xuống cỡ 100 Ohm. Nhờ nguyên lý này ta thiết
kế mạch phát hiện vật như sau:
Hình 2.7. Cặp thu phát
Tín hiệu từ 2 đèn thu được đưa vào các bộ khuếch đại thuật toán. Các đầu còn
lại của bộ khuếch đại được đưa các điện áp chuẩn vào để so sánh. Khi không có
Robot tự hành
Nguyễn Vũ Quang - Đoàn Nam Thái 25
vật cản (nghĩa là không có ánh sáng đến đèn thu) thì ở đầu ra P0.0 và P0.1 nhận
được tín hiệu 0, ngược lại khi có vật cản thì đầu ra P0.0 và P0.1 nhận được tín
hiệu 1.
sensor1
P0_0
sensor2
P0_1
5VSS
5VSS
GND
-
+
U51A
LM324
3
2
1
4
11
-
+
U51B
LM324
5
6
7
4
11
R16
RESISTOR VAR
R18
RESISTOR VAR
Hình 2.8. Mạch sensor
Hỏi:
Có thể chỉnh được khoảng cách phát hiện vật không?
Trả lời:
Có bằng cách điều chỉnh các biến trở để đặt các ngưỡng so sánh, tuy nhiên khoảng cách
chỉnh được không lớn (cõ khoảng 1mm).
4. Khối hiển thị
9 Mạch giải mã sử dụng IC 74138: 3 đầu vào và 8 đầu ra thực hiện nhiệm vụ quét
đèn
Sơ đồ chân linh kiện:
Hình 2.9. IC74138
Robot tự hành
Nguyễn Vũ Quang - Đoàn Nam Thái 26
Hình 2.10. Bảng giá trị của IC 74138
3 tín hiệu đầu vào mạch giải mã được nối với các chân của vi điều khiển. Bằng việc thay
đổi các giá trị đưa ra 3 tín hiệu điều khiển ta sẽ chọn đuợc các đèn khác nhau.
Minh hoạ: Khi 3 tín hiệu điều khiển bằng 000 thì đèn 1 (nối với !Y0) sẽ được chọn, 001
thì đèn 2 được chọn.
9 Mạch dữ liệu
Sử dụng bộ đệm ULN 2803
Hình 2.11. ULN2803
Tín hiệu đầu vào IC là 8 tín hiệu nối từ vi điều khiển. Bằng việc thay đổi giá trị đưa ra ta
sẽ hiển thị các số khác nhau trên led_7 nét.
Hỏi:
Khả năng của phương pháp điều khiển là gì?
Trả lời:
Có thể điều khiển nhiều nhất là 8 đèn Led 7 nét, và sử dụng hết 11 chân vào ra của vi
điều khiển.
Robot tự hành
Nguyễn Vũ Quang - Đoàn Nam Thái 27
5. Khối công suất điều khiển động cơ
9 Sử dụng IC L298
9 Đặc tính IC
• Điện áp 40V, dòng 5A
• Tích hợp trong IC là 2 mạch cầu H do đó có khả năng điều khiển 2 chiều 2
động cơ DC
9 Sơ đồ mạch công suất điều khiển 2 động cơ DC
DC22
24V
Motor Left
P1_3
0V
U7
L298
3
4
11
10
15
2
7
9
12
13
6
1
8
5
14
1A1
1A2
2A1
2A2
1Y1
1Y2
2Y1
2Y2
G
N
D
1EN
2EN
1E
2E
VCC1
VCC2
12V
J3
CON2
1
Signal
Control D22DIODE
P1_0
C5
DC12
P1_2
0VVDK
DC11
D23
C6
D27
DIODE
D26
DIODE
P1_0
U3A
7432
1
2
3
14
7 0V
P1_1
P1_3
5VVDK
P1_1
D21
DIODE
J2
CON2
Motor Right
D25
DIODE
D28
DIODE
U3B
7432
4
5
6
14
7
5VVDK
D24
5VVDK
0VVDK
DC2P1_2
Hình 2.12. Mạch công suất
Hỏi:
Ưu điểm của L298 là gì?
Trả lời:
L298 có ưu điểm:
• Khả năng điều khiển dễ dàng (4chân điều khiển 2 động cơ)
• Không xảy ra hiện tượng ngắn mạch trong mạch cầu H như trong các mạch
cầu thông thường do có thêm IC logic 7432 ở mạch ngoài
• Mạch gọn,tin cậy
Hỏi:
Nhược điểm L298 là gì?
Trả lời:
Nhược điểm duy nhất là giá thành cao.
Robot tự hành
Nguyễn Vũ Quang - Đoàn Nam Thái 28
III. Các phương pháp điều khiển trong Robot tự hành
1. Phương pháp tạo encoder từ chuột máy tính
Hình 2.13. Cấu tạo bên trong chuột máy tính
Ta chú ý tới 2 bộ phận của chuột:
9 2 đĩa tròn bị xẻ rãnh
9 2 đèn phát và 4 đèn thu (2 đèn thu tích hợp trong một đèn thu màu đen- xem ảnh)
Khi ta kết hợp 2 bộ phận này của chuột ta sẽ nhận được 2 encoder. Điểm mạnh của cặp
encoder này là chúng vuông góc với nhau gần như tuyệt đối (do công nghệ chế tạo chuột
đã đạt đến độ chính xác rất cao). Như vậy ta hoàn toàn có thể sử dụng chúng để đo 2
chuyển động vuông góc với nhau.
Hỏi:
Tại sao trong mỗi một đèn thu của chuột sao tích hợp 2 đèn thu bên trong?
Trả lời:
Để nhận biết chiều quay của đĩa tròn.
Sơ đồ mạch sử dụng chuột làm encoder:
Robot tự hành
Nguyễn Vũ Quang - Đoàn Nam Thái 29
R2
R
5V
OUT 1R1
R
OUT 20
X2
0
-
+
U2A
LM339
7
6
1X1
R4
RESISTOR VAR
0
U1
DEN THU
1
3
2
V
IN
VO
U
T
GND
R5
RESISTOR VAR
R3
R
5V
D1
DEN PHAT
5V
-
+
U3A
LM339
7
6
1
0
Hình 2.14. Mạch nhận biết chiều quay
Chiều quay của đĩa tròn nhận biêt thông qua chuỗi xung nhận được ở hai tín hiệu ra :
OUT 1 và OUT 2.
Chiều quay thuận (theo qui ước của người sử dụng): ..11..01..10..11..01..10..11
Chiều quay ngược: ..11..10..01..11..10..01..11
Từ đó ta xây dựng được thuật toán nhận chiều quay của chuột:
Robot tự hành
Nguyễn Vũ Quang - Đoàn Nam Thái 30
2. Phương pháp quét đèn led 7 thanh
Trong họ vi điều khiển 8051 (chíp AT89C51), có hai bộ timer 0 và bộ timer 1. Ta dùng
một bộ để thực hiện việc quét đèn.
Ta dùng một biến t để thực hiện việc chọn đèn:
Lưu đồ thuật toán chọn đèn:
Bắt đầu
so sánh
(1,1)
so sánh
(1,0)
Chiều ngược
Chiều thuận
so sánh
(1,0)
so sánh
(0,1)
Chiều ngược
Chiều thuận
so sánh
(0,1)
so sánh
(1,1)
Chiều ngược
Chiều thuận
Y Y
N
N
Y Y
N
N
Y Y
N
Kết thúc
Hình 2.15. Lưu đồ nhận biết chiều quay
Robot tự hành
Nguyễn Vũ Quang - Đoàn Nam Thái 31
Interrupt 3 ( ngắt cho timer 1)
Ngắt thứ nhất xảy ra:
Khi ngắt thứ 2 xảy ra:
Dừng Timer 1
t=1?
chọn đèn 2;
giá trị đèn 2 đưa ra port 3 ;
t=2 ;
Chạy Timer 1
Dừng Timer 1
t=0?
chọn đèn 1;
giá trị đèn 1 đưa ra port 3 ;
t=1 ;
Chạy Timer 1
Robot tự hành
Nguyễn Vũ Quang - Đoàn Nam Thái 32
Khi ngắt thứ 3 xảy ra:
Khi ngắt thứ 4 xảy ra:
Giá trị của biến chọn đèn quay lại ban đầu. Khi có ngắt tiếp theo xảy ra thì đèn thứ nhất
được chọn, quá trình lai lặp lại theo chu trình trên. Do tốc độ quét xảy ra rất nhanh, mắt
Dừng Timer 1
t=3?
chọn đèn 4;
giá trị đèn 4 đưa ra port 3 ;
t=0 ;
Chạy Timer 1
Dừng Timer 1
t=2?
chọn đèn 3;
giá trị đèn 3 đưa ra port 3 ;
t=3 ;
Chạy Timer 1
Robot tự hành
Nguyễn Vũ Quang - Đoàn Nam Thái 33
người lại có sự lưu ảnh trên võng mạc nên có cảm giác số hiển thị trên đèn không bị gián
đoạn.
Hỏi: Phương pháp quét đèn có ưu điểm gì?
Trả lời:
Nhờ phương pháp quét đèn ta “tiết kiệm được số chân sử dụng của vi điều khiển
để thực hiện nhiệm vụ quét đèn, nhờ đó mà ta có khả năng thực hiện nhiều nhiệm
vụ khác.
Minh hoạ cho điều này ta xét trường hợp khi không sử dụng phương pháp quét đèn.
Mỗi một đèn led 7 thanh nếu dùng giải mã led 7 thanh thì chúng ta cần 4 tín hiệu
điều khiển để quản lý giá trị trên các đèn. Như vậy trong bài toán của chúng ta có 4
đèn thì sẽ phải mất ít nhất 16 chân của vi điều khiển. Khi chúng ta tăng số đèn sử
dụng lên thỉ số chân ta sử dụng cũng tăng. Đây là nhược điểm lớn nhất của phương
pháp không quét đèn. Trong khí đó, nếu sử dụng phương pháp quét đèn thì chỉ với
8 chân vi điều khiển ta có thể điều khiển với số lượng đèn không hạn chế. Khi tăng
đèn ta chi việc tăng thêm một giá trị cho biến quét đèn t.
Hỏi:
Nhược điểm của phương pháp quét đèn là gì?
Trả lời:
Nhược điểm duy nhất của phương pháp quét đèn là phương pháp lập trình khó.
3. Phương pháp tạo xung PWM để điều khiển tốc độ cho robot
Sử dụng Timer 0 của vi điều khiển để tạo ra xung PWM. Timer 0 dùng trong chế độ
nạp lại 8 bit.
Ta định nghĩa bít pwm chứa giá trị điều khiển. Khởi động timer 0, bít pwm=1. Khi
xảy ra ngắt thứ nhất:
Hình dạng xung PWM:
Dừng Timer 0
Giá trị nạp lại mới = 255-giá trị nạp lại mới;
Đảo pwm;
Khởi động lại Timer;
Robot tự hành
Nguyễn Vũ Quang - Đoàn Nam Thái 34
IV. Xây dựng một bài toán cho Robot tự hành
Bài toán: Robot tìm đường đến đích, khi trên đường đi có 2 vật cản. Robot tự tránh vật
cản và tìm đến đích. Do hạn chế về vấn đề kỹ thuật, robot chưa sử dụng được các phương
pháp ở Phần 1, thay vào đó chúng tôi chỉ dùng một thuật toán đơn giản để điều khiển
robot.
Hình 2.16. Một số hình ảnh của Robot
255
TH0 ban đầu
Robot tự hành
Nguyễn Vũ Quang - Đoàn Nam Thái 35
Y
Y
Y
đi thẳng;
Begin
gặp
vật?
dừng:
đi lùi:
quay
đi thẳng;
gặp
vật?
dừng:
đi lùi:
quay trái:
đếm
đủ
đi thẳng;
N
N
N
End
Hình 2.17. Lưu đồ hoạt động của robot
Robot tự hành
Nguyễn Vũ Quang - Đoàn Nam Thái 36
V. Hạn chế Robot và phương pháp khắc phục
9 Chỉ tránh được vật có màu tối hoặc màu sáng (do sensor chỉ chỉnh được một
ngưỡng)
Khắc phục
Bố trí một dãy sensor xen kẽ thành từng cặp, một sensor nhận vật sáng đứng
cạnh một sensor nhận vật tối.
9 Chưa có khăng nhận đích rõ ràng, mới chỉ dưng lại ở việc tính quãng đường
robot đi được.
Khắc phục
Gắn thêm các cảm biến lên robot ví dụ như các cảm biến nhiệt (đối với đích là
nguồn nhiệt), bộ thu sóng siêu âm (đối với đích là các bộ phát sóng siêu âm),..
9 Khả năng đi thẳng còn hạn chể
Khắc phục
• Sử dụng chip linh hoạt hơn vi điều khiển AT 89C51 ví dụ PIC,AVR,..
• Kết cấu cơ khí vững chắc và chính xác.
Robot tự hành
Nguyễn Vũ Quang - Đoàn Nam Thái 37
Tài liệu tham khảo
[1] Giải bài toán cục bộ tránh vật cản cho robot tự hành- Báo cáo Hội nghị Cơ-Điện tử
lần thứ I
[2] Đồ án tốt nghiệp: Thiết kế kết cấu cơ khí và hệ thống điều khiển Robot tự hành –
ATPRO (K45-KSTN-ĐHBKHN)
[3] Họ vi điều khiển 8051- Tống Văn On
[4] Datasheetarchive.com
Các file đính kèm theo tài liệu này:
- robot_tu_hanh_5635.pdf