Camera xử lí hình ảnh

Một phần của tài liệu Nghiên cứu, thiết kế robot dò đường đi bằng sóng siêu âm (Trang 38)

Robot sẽ đượng trang bị trước những “kiến thức” về môi trường (các hình ảnh của môi trường được chụp, mã hóa thành các đường, điểm và hình khối). Camera quay lại hình ảnh của môi trường, truyền dữ liệu của môi trường cho hệ thống xử lí

hình ảnh để xác định khoảng cách tới các hình khối của môi trường. Phương pháp này tuy nhận được các hình ảnh cụ thể của môi trường nhưng việc tính toán, xử lí hình ảnh, lọc nhiễu rất tốn thời gian và phức tạp.

2.1.4.Lựa chọn phƣơng án định vị và nhận diện vật cản

Để đạt được mục đích định vị và nhận diện vật cản một cách hiệu quả cần áp dụng nhiều phương pháp như sau:

Sử dụng phương pháp dead-reckoning để xác định quãng đường và góc quay của robot sau các quãng thời gian nhất định.

Sử dụng cảm biến siêu âm gắn trên robot để xác định khoảng cách từ robot đến các vật cản quanh nó.

Sau một thời gian nhất định, các vật cản sẽ đóng vai trò như các cột mốc để robot điều chỉnh lại tọa độ tuyệt đối của mình so với gốc.

Mê cung và các thuật toán tìm đƣờng trong mê cung 2.2.

Hiện nay, từ một số loại mê cung cơ bản, người ta đã phát triển nhiều loại mê cung với độ phức tạp khác nhau như block maze, logic maze, planair maze, weave maze… Trong luận văn này chỉ tập trung vào hai loại mê cung cơ bản là mê cung đơn kết nối (simply connected maze) và mê cung đa kết nối (multiply connected maze).

Mê cung đơn kết nối (simply connected maze): tất cả các bức tường kết nối với nhau hoặc kết nối với đường bao mê cung. Do cấu tạo của mê cung khá đơn giản nên ta có thể dùng giải thuật “ bám tường”, người đi sẽ tìm được lối ra trên tường bao, nếu mê cung là mê cung kín thì sẽ trở về điểm xuất phát, người đi sẽ không bỏ sót bất cứ đường nào trong mê cung.

Mê cung đa kết nối (multiply connected maze): mê cung loại này bao gồm nhiều mảng, mỗi mảng là các tường kết nối nhau nhưng hoàn toàn không kết nối với đường bao hoặc với các tường khác. Với loại mê cung này nếu áp dụng giải thuật “bám tường” sẽ khiến cho robot lặp đi lặp lại các bước di chuyển trước mà không thể thoát ra khỏi mê cung.

Hình 2.2. Mê cung đa kết nối

Do vậy các thuật toán tìm đường trong mê cung được phát triển để giải quyết bài toán này.

Các thuật toán tìm đường đi trong mê cung là những phương pháp được tự động hóa để giải một mê cung. Các thuật toán chọn đường ngẫu nhiên, bám theo tường, Pledge, và Trémaux được xây dựng để cung cấp cho robot hướng đi trong mê cung mà hoàn toàn không biết trước về mê cung, còn các thuật toán lấp kín đường cụt và đường đi ngắn nhất được thiết kế để sử dụng khi đã biết trước toàn bộ mê cung.

Thuật toán tìm đƣờng ngẫu nhiên 2.3.

Đây là giải thuật đơn giản nhất, giải thuật này chỉ đơn giản là chạy theo một đường thẳng cho đến khi gặp một đường giao nhau thì đưa ra quyết định ngẫu nhiên về hướng tiếp theo để chạy. Mặc dù phương pháp này cuối cùng cũng thoát ra dược khỏi mê cung, nhưng thuật toán này có thể phải thực hiện trong khoảng thời gian rất lâu, thời gian thực thi không thể biết trước, robot thường xuyên lặp lại những ô đã đi trước đó. Sau khi kết thúc quá trình, robot không thu về được thông tin của mê cung đã đi qua.

Thuật toán bám theo tƣờng 2.4.

Thuật toán bám theo tường (wall follower) là một quy tắc nổi tiếng nhất để vượt qua mê cung, còn được gọi là quy tắc tay trái hoặc quy tắc tay phải. Nếu là mê cung đơn kết nối nghĩa là tất cả các bức tường của nó được kết nối với nhau hoặc kết nối với

đường bao quanh mê cung, thì bằng cách dò một tay lên một bức tường của mê cung người đi đảm bảo không bị lạc và tìm được lối ra nếu có một lối ra trên đường bao; hoặc nếu không có lối ra thì sẽ quay trở lại lối vào và sẽ đi qua tất cả các đường của mê cung ít nhất 1 lần.

Hình 2.3. Thuật toán bám theo tường

Robot thực hiện giải thuật bám tường như sau: luôn có một bên ( trái hoặc phải) của robot bám vào tường của mê cung trong suốt quá trình di chuyển.

Nếu mê cung có điểm ra nằm ở giữa thì sẽ có trường hợp robot lặp lại lộ trình quanh mê cung liên tục mà không đến được điểm ra.

Thuật toán Pledge 2.5.

Nếu mê cung có các tường rời nhau, đồng thời lối ra của mê cung nằm trên tường bao của mê cung, thì thuật toán bám tường vẫn có thể tìm được đường ra. Tuy nhiên, nếu điểm vào nằm trong mê cung và tách rời khỏi lối ra, thì bám theo tường sẽ chỉ có thể đi thành một vòng cục bộ và không tìm được lối ra.

Giải thuật Pledge được thiết kế để vượt qua vật cản, bằng cách chọn một hướng đi bất kì. Khi gặp vật cản thì chuyển sang di chuyển bám theo tường dọc theo vật cản, kết hợp với đếm góc quay. Sau khi bám tường và quay mà trở về lại đúng hướng đi ban đầu đồng thời tổng tổng góc quay bằng zero thì tức là đã vượt qua khỏi vật cản, thì không cần bám tường nữa và tiếp tục di chuyển theo hướng ban đầu đã chọn.

Chỉ thoát khỏi bám tường khi thỏa mãn hai điều kiện: “ hướng hiện tại trùng với hướng ban đầu” và “tổng số góc đã quay bằng 0”.

Thuật toán giúp cho robot từ bất cứ điểm nào trong mê cung cũng có thể tìm được lối ra nằm rìa ngoài mê cung.

Hình 2.4. Thuật toán Pledge Thuật toán Trémaux

2.6.

Thuật toán Trémaux sử dụng phương pháp ghi nhớ đường đi trong mê cung, một đường trong mê cung sẽ được ghi nhớ bằng cách đánh dấu bởi một trong ba trọng thái: chưa qua, đã qua một lần hoặc hai lần. Một ô trong mê cung đã đi qua sẽ được đánh dấu. Tại điểm bắt đầu có thể chọn một hướng bất kì ( nếu có nhiều hơn một hướng ). Khi đến một ngã giao, nếu các đường rẽ đều chưa đi qua, thì chọn ngẫu nhiên một ô để đi và đánh dấu ô ấy đã đi qua một lần. Khi gặp một ngã giao mà đường trước mặt theo hướng đi hiện tại đã có một dấu, và đường đang đi hiện tại mới chỉ đánh dấu một lần, thì quay trở lại và đánh dấu đường ấy lần hai. Nếu đến một ngã giao mà không rơi và hai trường hợp trên thì chọn đường đi có số lần ít đánh dấu nhất, và nhớ đánh dấu đường ấy luôn. Khi đến đích thì những con đường chỉ đánh dấu một lần là đường dẫn trở về điểm xuất phát.

Nếu không có điểm đích robot sẽ di chuyển về điểm ban đầu và đường đi sẽ là các ô được đánh dấu hai lần. Giải thuật này có ưu điểm ở bước chọn ngã rẽ cho robot, bước này không còn ngẫu nhiên mà được quyết định từ các hướng đi cũ và các ô lân cận.

Theo các thuật toán ở trên và yêu cầu về mê cung cũng như thiết kế robot, ta sẽ chọn lựa giải thuật chọn đường, bám tường và Trémaux để tiến hành mô phỏng ở phần sau.

Hình 2.5. Thuật toán Tremaux

Sau khi có được thông tin về mê cung, các tường đã được xác định, ta sẽ dùng giải thuật khác để tìm đường đi ngắn nhất cho robot từ một điểm bất kì đến điểm đích. Có hai thuật toán cơ bản giúp tìm đường đi ngắn nhất.

Thuật toán lấp kín đƣờng cụt 2.7.

Lấp kín đường cụt (dead – end filling) là một thuật toán để giải mê cung bằng cách lấp kín tất cả các ngã cụt, chỉ để lại một đường chính xác không bị lấp. Nó có thể được sử dụng để giải các mê cung trên giấy hoặc với một phần mềm máy tính, nhưng nó không giải quyết được những mê cung chưa biết bởi vì phương pháp này phải biết trước toàn bộ mê cung.

Giải thuật được thực hiện lặp đi lặp lại theo quy trình như sau:

Hình 2.6. Bước 1 giải thuật lấp đường cụt

 Bước 2: lấp đường đi từ các ô này đến ngã rẽ gần nhất

Hình 2.7. Bước 2 giải thuật lấp đường cụt

 Bước 3: lặp lại bước 1 đến khi không còn đường cụt, sẽ thu được 1 số đường đi đến đích.

Thuật toán tìm đƣờng đi ngắn nhất (floodfill) 2.8.

Giải thuật floodfill thực tế thường được dùng để tìm đường đi từ ngoài vào trung tâm mê cung khi chưa biết thông tin về mê cung. Tuy nhiên tác giả sẽ ứng dụng logic của giải thuật này để tìm đường đi ngắn nhất từ vị trí vào đến vị trí ra của mê cung khi biết được vị trí các tường chắn.

Giải thuật thực thi như sau:

• Bước 1: tạo 1 mảng dữ liệu hai chiều kích thước 8x8 (kích thước của mê cung) để lưu giá trị khoảng cách, tạm gọi là val(i, j) của ô (i, j). Đặt giá trị val của ô đích đến là 0.

Hình 2.8. Bước 1 của giải thuật floodfill

Bước 2: xét 4 ô lân cận của ô đích, ô nào không ngăn cách với ô đích thì sẽ đặt giá trị là 1, ô nào bị ngăn cách thì không đặt giá trị.

Hình 2.9. Bước 2 của giải thuật Floodfill

Bước 3: tiếp tục xét 4 ô lân cận của mỗi ô được đặt giá trị ở bước 2, nếu không bị tường ngăn cách thì đặt val(i, j) = 2.

Hình 2.10. Bước 3 của giải thuật Floodfill

Hình 2.11. Mảng val sau khi hoàn thành giải thuật

Bước cuối: dò ngược lại từ ô bắt đầu đến các ô lân cận, theo giá trị val tăng dần sẽ có đường đi tới ô đích.

Hình 2.12. Đường đi ngắn nhất tìm được từ giải thuật Floodfill

Giải thuật lấp kín đường cụt đơn giản hơn giải thuật floodfill, tuy nhiên nó có một số khuyết điểm:

Đối với mỗi điểm đến khác nhau, tác giả phải làm lại toàn bộ thao tác lấp đường của giải thuật.

Với một mê cung kết nối đơn giản, giải thuật lấp đường cụt sẽ để lại con đường tối ưu nhất đến đích. Nhưng với một mê cung có chứa vòng lặp, giải thuật lấp đường cụt sẽ không giải quyết được các vòng lặp này và sẽ cho một số đường đi khả thi, không xếp thứ tự tối ưu.

Khi sử dụng giải thuật floodfill các khuyết điểm của giải thuật lấp kín đường cụt hoàn toàn được giải quyết. Vì thế tác giả sẽ chọn giải thuật floodfill cho quá trình tìm đường đi ngắn nhất.

Chƣơng 3: THIẾT KẾ MÔ HÌNH XE DÒ MÊ CUNG Cơ sở lý thuyết

3.1.

3.1.1.Sơ lƣợc các loại động cơ phổ biến

Có ba loại động cơ phổ biến là động cơ DC thường, động cơ DC servo, động cơ bước.

3.1.2. Động cơ DC thƣờng

Cấu tạo của động cơ DC gồm có hai bộ phận chính Rotor và Stator. Stator của động cơ điện một chiều thường là một hay nhiều cặp nam châm vĩnh cửu, hay nam châm điện, rotor có các cuộn dây quấn và được nối với nguồn điện một chiều, một phần quan trọng khác của động cơ điện một chiều là bộ phận chỉnh lưu, nó có nhiệm vụ đổi chiều dòng điện trong khi chuyển động quay của rotor liên tục. Thông thường bộ phận này gồm có một bộ cổ góp và một bộ chổi than tiếp xúc với cổ góp.

Hình 3.1. Cấu tạo động cơ DC Hình 3.2. Động cơ DC

Động cơ DC thường quay rất nhanh, trong một số trường hợp hộp giảm tốc được sử dụng để làm tăng momen quay của động cơ, tuy nhiên điều này sẽ khiến động cơ rất cồng kềnh. Một động cơ DC sẽ được điều khiển thông qua một mạch cầu H (H- bridge), hoặc sử dụng một IC điều khiển động cơ chuyên dụng.

3.1.2.1 Động cơ DC servo

Ngoài ra để kiểm soát tốc độ quay của động cơ và vị trí góc quay người ra sử dụng động cơ DC servo, động cơ servo được thiết kế cho những hệ thống hồi tiếp vòng kín. Tín hiệu ra của động cơ được nối với một mạch điều khiển. Khi động cơ quay, vận tốc và vị trí sẽ được hồi tiếp về mạch điều khiển này. Nếu có bầt kỳ lý do nào

ngăn cản chuyển động quay của động cơ, cơ cấu hồi tiếp sẽ nhận thấy tín hiệu ra chưa đạt được vị trí mong muốn. Mạch điều khiển tiếp tục chỉnh sai lệch cho động cơ đạt được điểm chính xác. Động cơ servo gồm 1 động cơ điện, 1 chuỗi bánh răng giảm tốc, 1 mạch điều khiển.

Hình 3.3. Động cơ DC Servo 3.1.2.2 Động cơ bƣớc

Động cơ bước là động cơ điện không đồng bộ dùng để biến đổi các tín hiệu điều khiển dưới dạng các xung rời rạc kế tiếp nhau thành các chuyển động góc quay. Bằng việc đóng cắt điện áp theo thứ tự cho trước, các stator sẽ tạo nên các từ trường thay đổi kéo rotor quay theo từng bước. Số lần đóng cắt tín hiệu sẽ bằng tổng số góc quay của rotor, chiều quay và tốc độ phụ thuộc vào thứ tự chuyển đổi và tần số chuyển đổi của tín hiệu.

Về cấu tạo, động cơ bước có thể được coi là tổng hợp của hai loại động cơ: động cơ một chiều không tiếp xúc và động cơ đồng bộ giảm tốc công suất nhỏ.

3.1.3.Các phƣơng pháp điều khiển động cơ DC cho Robot tự hành

Bản chất của việc điều khiển Mobile robot thực ra là điều khiển các động cơ của robot đó. Mobile robot được xây dựng bao gồm 2 động cơ dẫn động 2 bánh sau. Hướng đi của robot sẽ do tốc độ của 2 bánh này quyết định, do vậy nó yêu cầu phải thay đổi chiều quay liên tục, đảo chiều quay.

Hình 3.5. Mô hình Mobile Robot

Động cơ sử dụng ở đây là động cơ một chiều, kích từ độc lập. Có 3 cách để điều khiển tốc độ động cơ là :

+ Thay đổi từ thông động cơ

+ Thay đổi điện áp đặt lên phần ứng động cơ + Thay đổi trở phụ vào phần ứng động cơ

Động cơ sử dụng là loại nam châm vĩnh cửu nên từ thông là không đổi. Do đó chỉ có thể điều chỉnh tốc độ động cơ bằng cách là thêm trở phụ vào phần ứng hoặc thay đổi điện áp đặt lên phần ứng động cơ. Họ đặc tính cơ của hai phương pháp điều chỉnh tốc độ trên là như sau:

Hình 3.6. bên trái là họ đặc tính cơ động cơ điện một chiều khi thay đổi điện trở phụ mắc vào phần ứng, trong đó: Rf1> Rf2>Rf3>Rf = 0 . Hình 3.6. bên phải là họ đặc tính cơ động cơ điện một chiều khi thay đổi điện áp đặt vào phần ứng, trong đó : U1< U2 < U3 < U= Uđm.

Hình 3.6. Họ đặc tính cơ của động cơ điện một chiều

Trong hai phương pháp trên, rõ ràng phương pháp điều chỉnh điện áp là có nhiều ưu điểm hơn vì :

- Thứ nhất: khi thay đổi tốc độ động cơ bằng cách thay đổi điện áp thì độ cứng đặc tính cơ không đổi, còn khi thay đổi tốc độ bằng thay đổi điện trở phụ thì đặc tính cơ là thay đổi (nhỏ hơn).

- Thứ hai: thay đổi điện áp đặt lên phần ứng động cơ không gây ra tổn hao năng lượng, còn khi sử dụng điện trở phụ sẽ gây ra tổn hao trên trở phụ.

- Thứ ba: thay đổi trở phụ mắc vào phần ứng động cơ làm cho hằng số thời gian động cơ thay đổi dẫn đến các đặc tính quá độ thay đổi, điều này là không tốt, cần tránh.

Từ những điểm trên, ta lựa chọn phương pháp điều chỉnh tốc độ bằng cách thay đổi điện áp đặt lên phần ứng động cơ. Một phương pháp thường sử dụng ở đây để thay đổi điện áp vào động cơ là phương pháp băm xung ( điều chế độ rộng xung PWM ).

Thiết kế cơ khí 3.2.

3.2.1.Thiết kế xe dò mê cung

Các thành phần cơ khí của robot bao gồm:

Động cơ tác giả sử dụng trong luận văn là động cơ DC servo NF5475E có điện áp hoạt động là 24V, tốc độ không tải là 3800 vòng/phút, có encoder hai pha 200 xung,

Một phần của tài liệu Nghiên cứu, thiết kế robot dò đường đi bằng sóng siêu âm (Trang 38)

Tải bản đầy đủ (PDF)

(85 trang)