CHƯƠNG 2 : CƠ SỞ LÝ THUYẾT
2.6. THUẬT TỐN DẪN HƯỚNG THÍCH NGHI (ADAPTIVE NAVIGATION)
2.6.2. Cách tránh vật cản
Robot sử dụng 3 cảm biến khoảng cách để đo khoảng cách từ nó đến vật cản. Gọi dc, dl và dr là các khoảng cách theo các hướng ở giữa (center), trái (left), phải (right) [5]. Hướng cảm biến trái và phải lệch so với cảm biến giữa một góc . Các giả thiết sau được đặt ra cho cảm biến và vật cản:
(A4) : Khoảng đo được lớn nhất là dmax, nếu cảm biến không phát hiện vật cản hoặc khoảng cách lớn hơn dmax thi ngõ ra cảm biến là -1. (A5) : Các vật cản được mơ hình là các đa giác lồi với các góc ở đỉnh
phải lớn hơn .
(A6) : Khoảng cách giữa các vật cản thì lớn hơn dmax
Giả định (A4) thể hiện tình huống thực tế. Mục đích của giả định (A5) là đảm bảo việc phát hiện vật cản bởi cả ba cảm biến. Giả định (A6) cần thiết cho việc tránh vật cản sẽ được giải thích sau.
a. Trường hợp 3 cảm biến đều phát hiện vật cản :
Hình (2.10) mơ tả các trường hợp phát hiện vật cản có thể xảy ra. Khi vật cản được phát hiện ở cả 3 hướng và dldr như hình (a), Khoảng cách đến vật cản bên trái lớn hơn bên phải nên robot nên rẽ trái. Đặt là góc trong hình vẽ (a), robot nên rẽ một góc
2
để tránh vật cản và tương tự cho trường hợp dl dr. Đem phản ứng này vào luật dẫn hướng, ta được:
* ( ) ( ) sgn( )( ) 2 a t t dl dr (2.40) với 1
tan (( cosd dc) /dsin )
( ) 2 (2.41) d = max(d dl, r) (2.42) sgn(x) = 1 1 ( 0) ( 0) x x (2.43)
35
Hình 2.17. Các trường hợp phát hiện vật cản của robot[5]
b. Trường hợp 2 cảm biến phát hiện vật cản :
Trong hình b và c, một vật cản được phát hiện phía trước robot (dc 0). Trong trường hợp đầu dc drcos và dl 0(tương tự trường hợp dc dlcos vàdr 0
). Điều này có nghĩa rằng một khoảng trống khơng vật cản đang mở ra phía bên trái và luật dẫn hướng được cho bởi:
*
( ) ( ) sgn( )( ) sgn(( )
2
a t t dl dr dl dr
(2.44)
Trong trường hợp sau, dcdlcos và dr 0, phần khơng gian bên phải có vẻ thống hơn bên trái. Tuy nhiên có thể có một vật cản bên phải mà hiện tại robot chưa phát hiện được. Để đảm bảo việc tránh vật cản, robot nên rẽ trái một góc
2
36
Khi dc < 0 (hình d) việc chuyển hướng là khơng cần thiết vì khơng có vật cản trên đường di chuyển của robot. Do đó *
( )
a t
.
c. Trường hợp một cảm biến phát hiện vật cản :
Có hai trường hợp được xét đến trong hình e và hình f. Trong trường hợp đầu việc chuyển hướng là không cần thiết do dc 0, nên *
( )
a t
.
Trong trường hợp sau, do dc 0 nên robot phải chuyển hướng. Tuy nhiên do
l
d và dr đều âm nên việc rẽ trái hay rẽ phải là như nhau. Ta quyết định rẽ trái 90 độ: *
( ) ( ) 2
a t t
(2.45)
Trong tất cả các trường hợp từ a đến f thông tin từ 3 cảm biến không thể bao quát đầy đủ sơ đổ các vật cản trong không gian. Tuy nhiên, do dc,dl và dr được cập nhật theo thời gian thực và thêm giả định A5, robot có thể tránh được vật cản trong hầu hết các trường hợp.
2.6.3. Xây dựng thuật tốn dẫn hướng thích nghi
Một yêu cầu cơ bản là, khi vật cản được phát hiện thì việc tránh vật cản phải được đặt lên trên việc đến đích[5]. Tuy nhiên, nếu việc đến đích bao qt ln cả việc tránh vật cản thì robot vẫn thực hiện việc đến đích theo cơng thức (2.39). Bây giờ ta xem xét khả năng robot vẫn đến đích ngay cả khi phát hiện vật cản. Trên hình 2.17
a, b, c, và f, việc chuyển hướng là cần thiết để tránh vật cản. Nếu các bất đẳng thức
này được duy trì:
* * ( ) ( ) ( ) t t a t t (2.46) hoặc * * ( ) ( ) ( ) t t a t t (2.47)
thì việc chuyển hướng đến đích đủ để tránh vật cản. Do đó góc điều khiển là:
* *
( )t t( )t
Trong hình 2.17e, chuyển hướng là không cần thiết. *( )t tiếp tục được gán bằng *
( )
t t
nếu điều kiện này xảy ra :
* ( ) t t > ( )t , dl 0, dr 0 (2.48) hoặc * ( ) t t < ( )t , dl 0, dr 0 (2.49) Trong hình 2.17d, việc lái cũng khơng cần thiết. Khơng giống hình e, vật cản được phát hiện ở cả hai hướng trái và phải nhưng không phát hiện ở giữa nên robot vẫn giữ nguyên hướng.
37
Tổng hợp lại, một thuật tóan để tính tóan góc điều khiển *( )t như sau :
begin if and d dl, r 0 then * * ( )t a( )t else if dc 0 then if * * ( ) ( ) ( ) t t a t t or * * ( ) ( ) ( ) t t a t t then * * ( )t t ( )t else * * ( )t a( )t end if else if dl 0 and * ( ) t t > ( )t , or dr 0 and * ( ) t t < ( )t , then * * ( )t t ( )t else * * ( )t a( )t end if end.
38
2.7. Tổng kết các phương pháp tránh vật cản
Các phương pháp trên đều có những ưu nhược điểm và phạm vi áp dụng khác nhau. Phương pháp điều khiển bám biên giải quyết được vấn đề sai số của cảm biến siêu âm bằng cách đưa ra khái niệm nhận thức tổng quát và giải thuật mờ, nhưng robot chỉ di chuyển theo quỹ đạo nhất định, không áp dụng được cho môi trường phức tạp. Với phương pháp phát hiện cạnh, đòi hỏi cảm biến siêu âm phải quét hết mơi trường làm việc sau đó tính tốn để thiết lập quỹ đạo cho robot, do đáp đáp ứng của robot khá chậm. Phương pháp biểu diễn vật cản bằng sơ đồ lưới đòi hỏi số lượng cảm biến lớn để có thể bao qt tồn bộ khu vực hoạt động, tuy nhiên lại khắc phục nhược điểm góc mở lớn của cảm biến siêu âm với việc biểủ diễn dữ liệu bằng hàm xác suất. Phương pháp trường thế địi hỏi tọa độ của đích đến phải được biết trước, khơng thích hợp với các mục tiêu di chuyển như là trong đề tài.
Phương pháp dùng Optical Flow có ưu điểm là chỉ sử dụng một camera để phát hiện vật cản. Tuy nhiên phương pháp này lại địi hỏi việc lập trình tính tốn khá phức tạp do phải tính các gradient cho các điểm trên hình, do đó thời gian xử lý sẽ lâu.
Đối với phương pháp dẫn hướng thích nghi, ta chỉ cần có ba cảm biến siêu âm và giải thuật tương đối đơn giản. Phương pháp này thích hợp cho các môi trường không phức tạp với các vật cản tĩnh và có kích thước đủ lớn. Dù trong thuật tốn gốc thì tọa độ của đích đến được xác định trước nhưng ta cũng có thể cải tiến cho các mục tiêu di động.
39
CHƯƠNG 3: XÂY DỰNG MƠ HÌNH ROBOT TỰ HÀNH HÀNH
Nội dung của chương này bào gồm :
Sơ đồ khối của Mobile robot.
Nghiên cứu xây dựng khối điện tử:
Mạch động lực điều khiển động cơ.
Mạch Vi điều khiển.
Cảm biến.
Xây dựng mơ hình cơ khí.
Xây dựng bộ điều khiển PID cho robot.
Xây dựng thuật toán tránh vật cản dựa trên cơ sở lý thuyết.
3.1. Xây dựng sơ đồ khối hoạt động của robot
Ở đây, ta sử dụng mơ hình Mobile robot 4 bánh. Bài tốn đặt ra là làm sao để nó di chuyển được hết không gian cho trước và tránh được vật cản khi bắt gặp. Robot khơng có bản đồ hay bất cứ thơng tin nào về mơi trường làm việc, do đó robot sẽ được điều hướng theo phương pháp phản ứng.
Sơ đồ thuật toán của Mobile robot như trong sơ đồ 3.1. Thực tế, hai thơng số về sai số góc định hướng, khoảng cách so với tường sẽ được đo bằng hai cảm biến siêu âm SRF05. Khi di chuyển, ban đầu nếu Mobile robot có hướng đi và vị trí là như u cầu (góc θ = 0, X= Xd) thì nó sẽ được điều khiển tiếp tục đi thẳng và duy trì khoảng cách tới tường.
40
41
3.2. Xây dựng khối điều khiển cho robot tự hành
VI ĐIỀU KHIỂN ATMEGA2560 NGUỒN CẢM BIẾN CỔNG I/O KHỐI CÔNG SUẤT MẠCH NẠP THIẾT BỊ HIỂN THỊ
Sơ đồ 3.2. Sơ đồ khối của robot
3.2.1. Khối điều khiển
Khối xử lý của robot tự hành sử dụng vi điều khiển ATMEGA2560 được tích hợp trên bộ Arduino Mega2560. Có thể nói đây là trung tâm của một con robot. Nó có nhiệm vụ lưu trữ chương trình, xử lý tín hiệu vào/ra.
42
Arduino Megas có sơ đồ linh kiện như các hình sau:
Hình 3.2. Cấu tạo Arduino Mega2560
43
Arduino Mega 2560 là một bo mạch thiết kế với bộ xử lý trung tâm là vi điều khiển AVR Atmega2560. Cấu tạo chính của Arduino Mega 2560 bao gồm các phần sau:
Cổng USB: đây là loại cổng giao tiếp để ta upload code từ PC lên vi điều khiển. Đồng thời nó cũng là giao tiếp serial để truyền dữ liệu giữa vi điều khiển và máy tính.
Jack nguồn: để chạy Arduino thì có thể lấy nguồn từ cổng USB ở trên, nhưng không phải lúc nào cũng cắm với máy tính được. Lúc đó ta cần nguồn từ 9v đến 12v cấm vào jack nguồn.
Có 54 chân ra/vào số đánh số thứ tự từ 0 đến 13, ngồi ra có một chân nối đất (GND) và một chân điện áp tham chiếu (AREF).
Vi điều khiển AVR: đây là bộ xử lý trung tâm của bo mạch. Với mỗi mẫu Arduino khác nhau thì chip khác nhau. Ở con Arduino Mega 2560 này thì sử dụng ATMega2560.
Có một nút nhấn reset và một đầu ICSP
Các thông số chi tiết của Arduino Mega 2560: • Vi xử lý: 5V
• Điện áp hoạt động: 7-12V • Điện áp đầu vào: 6-20V
• Chân vào/ra (I/O) số: 54 chân (15 chân là đầu ra PWM) • Chân vào tương tự: 16
• Dịng điện trong mỗi chân I/O: 40mA • Dịng điện chân nguồn 3.3V: 50mA • Bộ nhớ trong: 256KB
• SRAM: 8 KB • EEPROM: 4 KB • Xung nhịp: 16 MHz
44
3.2.2. Khối cảm biến
a. Module cảm biến siêu âm SRF05
SRF05 là module cảm biến siêu âm dùng để đo khoảng cách bằng sóng siêu âm. Sóng siêu âm là sóng âm thanh thuộc nhóm sóng cơ học với tốc độ lan truyền trong khơng khí khơng cao, lợi dụng điều này mà người ta có thể đo đạc khoảng cách dựa trên sóng này
Hình 3.3. Cảm biến siêu âm SRF 05
Robot tự hành sử dụng 3 cảm biến siêu âm SRF 05 (hình 3.5). Nó có các đặc điểm sau:
+ Điện áp sử dụng: 5V + Dòng thấp: 4mA + Tần số: 40Khz
+ Phạm vi sử dụng: 1cm-4m
+ Đầu vào kích bởi xung: min 10us + Kích thước 43x20x17mm
+ Góc hoạt động: :<150 + Độ phân giải: 0,3cm
45
Hoạt động của module:
Module hoạt động rất đơn giản, chỉ cần một chân IO với chứa năng output (Trigger) để kích hoạt module mà một chân input (Echo) để đo thời gian xung nhận về đại diện cho khoảng cách.
Các bước kích hoạt và đo như sau:
Đầu tiên ở chân Trigger phát một xung mức cao có độ rộng tối thiểu là 10us cho module.
Sau đó SRF05 sẽ phát ra một chuỗi tám xung với tốc độ 40KHz, tiếp theo nó sẽ chờ xung phản xạ về trên chân echo. Sau khi có được độ rộng xung ở chân Echo, dùng công thức được cho trong datasheet của module để tính khoảng cách (cơng thức này có thể hiệu chỉnh lại tùy mơi trường):
Kết quả đo tính theo lý thuyết của nhà sản xuất:
- Khoảng cách = Thời gian(us)/58 (cm) - Khoảng cách = Thời gian(us)/148 (inch)
Trường hợp vật ở xa hơn so với khoảng cách đo lường của cảm biến, cảm biến sẽ tự động tạo xung cạnh xuống sau 30ms kể từ lúc tạo xung cạnh lên. Trong tính tốn ta phải chú ý trường hợp này để tránh lỗi cho kết quả sai khi vật nằm ngồi tầm đo lường của cảm biến.
Hình 3.5. Sơ đồ tính khoảng cách của SRF05
Hình 3.6. Biểu đồ thời gian của cảm biến siêu âm SRF05
SRF05
46
Lưu ý khi sử dụng cảm biến siêu âm[1]:
Nguyên lý TOF: (Time of Flight)
Hình 3.7. Ngun lý TOF[1]
Sóng siêu âm được truyền đi trong khơng khí với vận tốc khoảng 343m/s. Nếu một cảm biến phát ra sóng siêu âm và thu về các sóng phản xạ đồng thời, đo được khoảng thời gian từ lúc phát đi tới lúc thu về, thì máy tính có thể xác định được qng đường mà sóng đã di chuyển trong khơng gian. Qng đường di chuyển của sóng sẽ bằng 2 lần khoảng cách từ cảm biến tới chướng ngoại vật, theo hướng phát của sóng siêu âm. Hay khoảng cách từ cảm biến tới chướng ngại vật sẽ được tính theo nguyên lý TOF:
2
t
d v (3.1)
Hiện tượng đọc chéo
Hiện tượng đọc chéo là hiện tượng mà cảm biến siêu âm này ghi nhận tín hiệu phản xạ hoặc trực tiếp từ cảm biến siêu âm khác, hoặc sau q trình sóng siêu âm truyền đi và phản xạ qua các bề mặt quay lại cảm biến một cách không mong muốn.
47
Khi sử dụng cùng lúc nhiều cảm biến, các SRF05 có thể được kích hoạt nhanh mỗi lần 50ms, hoặc 20 lần mỗi giây. Sau đó nên chờ 50ms trước khi kích hoạt tiếp theo, ngay cả khi SRF05 phát hiện đối tượng gần và xung echo ngắn hơn. Điều này là để đảm bảo các siêu âm "beep" đã biến mất và sẽ không gây ra một tiếng vang sai lệch của nhiều cảm biến bên cạnh nhau. Để nâng cao độ chính xác ta có thể đo nhiều lần (20 lần) sau đó lấy giá trị trung bình.
Hiện tượng Forecasting
Hiện tượng Forecasting là hiện tượng phản xạ góc sai lệch của cảm biến. Do nguyên lý TOF, để có khoảng cách đúng, cảm biến siêu âm phải hướng vng góc với bề mặt chướng ngại vật cần đo. Tuy nhiên, các chướng ngại vật không bao giờ là phẳng, mịn, nên tia phản xạ có thể khơng tương ứng với góc tới. Các chùm tia phản xạ này có năng lượng phản xạ thấp hơn. Tuy vậy, ở một khoảng cách nào đó, cảm biến siêu âm vẫn có thể ghi nhận được những tín hiệu phản xạ này. Kết quả, thông số đọc về của cảm biến siêu âm bị lệch do góc mở của cảm biến siêu âm lớn.
Hình ảnh về hiện tượng Forecasting như sau:
Hình 3.9. Sự phản xạ của sóng siêu âm[1]
Hình 3.10. Hiện tượng Forescasting[1]
Ngồi ra, vì góc mở rộng, nên khơng chỉ sai về nhận dạng vị trí chướng ngại vật, mà khoảng cách ghi nhận cũng bị sai lệch. Tuy vậy, sai số này không đáng kể như sai số do hiện tượng đọc chéo gây ra. Vì sai số này là sai số có thể quản lý được, trong khi đó, sai số do hiện tượng đọc chéo không thể quản lý được.
48
b. Module Cảm biến la bàn số HMC5883L
Cảm biến la bàn HMC5883L do hãng Honeywell sản xuất, cảm biến la bàn số 3 trục này được sử dụng trong môi trường có từ tính thấp, cảm biến có đủ dải ±8 Guass và độ phân dải lên đến 5 milli-Gauss.
Cảm biến la bàn số được dùng để đo từ trường của trái đất nhằm xác định phương hướng của vị trí hiện tại với độ chính xác lên 1 hoặc 2 độ. Nó cung cấp các cách đo riêng biệt cho từng trục và có thể kết hợp lại đề tính tốn 3D.
Có thể dùng để đo từ trường thơ hoặc các nguồn từ trường mạnh hơn gần nó. Mạch có thể cảm nhận được nguồn từ từ trường xung quanh nó như của một nam châm hoặc điện trường. Khi phát hiện được từ trường từ bên ngồi, nó có thể xác định được khoảng cách tương đối hoặc chiều đến vật phát ra từ trường đó.
La bàn số kết hợp với encoder có thể xác định được vị trí của robot trên bản đồ.
Thơng số kỹ thuật:
Điện áp cung cấp: 3 – 5VDC. Chuẩn giao tiếp: I2C ( 3 – 5TTL). Kích thước: 14x13mm.
49
3.2.3. Khối công suất
a. Mạch điều khiển động cơ L298
Module L298 có thể điều khiển 2 động cơ DC hoặc 1 động cơ bước