+ Nhúng giải thuật AI tìm đường tối ưu và giải thuật xử lý sự kiện cho Robot ,để có được đường đi tốt nhất trên sân thi đấu khi di chuyển từ điểm này đến điểm kia và xử lý các tình huống
Trang 1Part 2 : Thiết kế mô hình Robot NT
Part 2 : Thiết kế mô hình Robot NT
1.Giải pháp thiết kế NT :
+) Xem Robot như là một đối tượng lập trình bao gồm :
- Dữ liệu : là trạng thái trên sân thi đấu ,giá trị của sensor ,encoder
- Tác vụ : là tập hợp các hành động cơ bản mà Robot có thể làm được như : chạy tới ,chạy lui ,rẽ trái ,rẽ phải ,đí thẳng ,…
+) Mô hình hóa sân thi đấu thập giác thành một ma trận 20 x 6 các node (hay điểm)
+) Đối tượng Robot sẽ di chuyển và xử lý tác vụ trên sân thi đấu này ,cùng với việc xử lý dữ liệu là trạng thái trên sân
+) Nhúng giải thuật AI tìm đường tối ưu và giải thuật xử lý sự kiện cho Robot ,để có được đường đi tốt nhất trên sân thi đấu khi di chuyển từ điểm này đến điểm kia và xử lý các tình huống ngoại lệ (ví dụ như va chạm) +) Phân chia và Module hóa các khối trên Robot ,để hạn chế sự phụ thuộc vào phần cứng ,có thể dùng lại hay thiết kế sữa lỗi nhanh chóng Do đó có thể lựa chọn bất cứ vi điều khiển MCU hay Chip nào ,miễn là có thể đáp ứng được các Module kết nối với nó Các thành viên sẽ tự do trong việc chọn môi trường lập trình
+) Sự can thiệp của con người vào Robot tự động chỉ có tính chiến lược ,còn lại Robot sẽ tự quyết định đường đi ,lựa chọn tác vụ ,… để hoàn tất yêu cầu
+) Quá trình xây dựng các thành phần Robot : lập trình ,mạch phần cứng ,cơ cấu cơ khí phải triển khai đồng bộ với nhau và chúng có tác động rất lớn với nhau Sự hoàn thiện của phần này là tiến đề để xây dụng cho phần khác
+) Có cơ chế hiển thị và Debug lỗi qua các giao tiếp Led/LCD hay với PC
2.Ý tưởng đối tượng hóa Robot :
+) Trước khi thiết kế Robot NT xem như ta đã có một con Robot có thể thực hiện được các tác vụ cơ bản :
- Dò line
- Đi thẳng
- Đi lui
- Rẽ trái
- Rẽ phải
- Lấy quà
- Giữ quà
- Bỏ quà
+) Các tác vụ trên có thể được xây dựng bằng những thừa kế từ các năm trước Do đó vấn đề hiện thực các tác
vụ này không phải là vấn đề quá quan trọng
+) Các bộ phận cảm biến gắng trên Robot như : Sensor ,Encoder cho phép nó tham khảo trạng thái bên
Trang 2ngoài ,và nó sẽ cập nhật trạng thái đó cho phần dữ liệu sẽ được xử lý Yêu cầu tính chính xác cao ,và phải có cơ chế lọc và loại nhiễu có thể bằng phần cứng hay phần mềm
+) Giải thuật xử lý mang yếu tố quyết định đến tính “thông minh” và hiệu quả làm việc của Robot Bao gồm giải thuật tìm đường đi tối ưu ,tránh vùng cấm và giải thuật xử lý sự kiện
3.Mô hình hóa sân thi đấu thành ma trận :
+) Sân thi đấu Robocon 2007 là một hình thập giác đều ,có thêm 10 cạnh xen kẽ Do đó ta hoàn toàn có thể biễu điễn sân thi đấu này thành một cấu trúc dữ liện là một ma trận các node (hay điểm) 20 x 6
+) Việc đánh tọa độ cho các node được quy ước là tọa độ xuất phát của Robot là gốc ,xoay theo chiều ngược kim đồng hồ là chiều dương của X ,di chuyển về tâm của sân là chiều dương của Y
+) Với đặc điểm của sân nên dẫn đến các node có sự khác biệt về khoảng cách giữa 2 node liên tiếp với nhau theo chiều X ,khoảng cách này ngắn dần khi gần về tâm Nhưng giữa 2 node kế tiếp cùng theo chiều X hay Y thì vẫn bằng nhau
+) Cấu trúc dữ liệu của một node bao gồm 4 thành phần : mã của node (thay cho 2 tọa độ x,y để ít tốn bộ nhớ) ,kiểu của node để biết đó là loại node gì (của mình,của đối phương hay vật cản),xw chiều dài cạnh khi di chuyển đến node kế tiếp theo chiều X,yw chiều dài cạnh khi di chuyển đến node kế tiếp theo chiều Y
+)Dưới đây là mô tả cấu trúc của sân thi đầu với C :
Trang 3+) Việc xác định kiểu của một node (hay điểm) trên sân có thể thiết lập ngay từ ban đầu ,và Robot có thể cập nhật thêm các node có vật cản khi Robot đụng phải nó
+) Giải thuật tìm đường đi và chiến thuật của Robot phụ thuộc nhiều vào các node này ,bởi vì Robot phải tránh
đi ngang qua các node này ,và phải có tác vụ xử lý cho từng loại node mà nó “biết”
+) Khi gặp một vật cản chưa biết khi di chuyến trên sân Robot sẽ cập nhật node hiện tại có vật cản ,đồng thời chạy lại giải thuật tìm đường để di chuyển theo hương khác tránh vật cản
4.Kiến trúc và quan hệ giữa các Module :
+) Phân lớp hướng tới độc lập Vi điều khiển ;
- Lớp chương trình giải thuật chỉ gọi và truy xuất Vi điều khiển thông qua lớp trung gian
- Lớp chương trình giải thuật sinh ra chuổi điều khiển Robot cũng theo quy tắc trên
- Lớp Vi điều khiển là hiện thực của lớp trung gian trên một Vi điều khiển và mạch Robot cụ thể
- Hai lớp trên cùng viết bằng Ansi C để đảm bảo tính tương thích với nhiều thư việc biên dịch C
+) Lưu đồ giải thuật hoạt động:
Trang 4+) Đối tượng Robot thiết kế bao gồm nhiều thành phần dữ liệu và tác vụ ,giữa chúng có mối quan hệ lẫn nhau :
- Action Table : chính là tập các tác vụ cơ bản mà Robot có thể thực hiện được
- Game Field : là cấu trúc sân thi đấu ,với các node trân sân
- Robot : là “đối tượng” mà ta đang hiện thực
- Goal Node : là danh sách chứa các node mà ta cần tới để thực hiện một tác vụ nào đó (như gắp quà ,bỏ quà ,cản phá ,…)
- Action List : là danh sách tuần tự các tác vụ mà Robot sẽ thực hiện ,danh sách này được tao ra do giải thuật tìm đường sinh ra Đó chính là các tác vụ thực hiện để hoàn tất từ Goal node này tới Goal node tiếp theo
- Searching : là giải thuật tìm đường ,cho Robot từ 2 Goal node trong danh sách Goal node của Robot Quá trình tìm kiếm sẽ lặp lại khi Robot gặp vật cản
- Processing : Quá trình xử lý dữ liệu và tác vụ cho Robot
- LED/LCD : để hiển thị kết quả v2 debug
- Sensor : quản lý và đọc Sensor
- Motor : điều khiển động cơ
Quan hệ giữa các Module
5.Quy ước hướng :
+) Để thuận tiện cho lập trình các hướng của Robot được quy ước thống nhất Có 2 loại hướng cần quan tâm :
- Hướng di chuyển : để xác định Robot đang đi theo chiều X hay Y, và hướng âm hay dương Dựa vào hướng này để Robot cập nhật tọa độ mà nó đang đứng
- Hướng của tác vụ : cho biết thong tin về tác vụ Robot đang thực hiện Thông tin này sẽ giúp quá trình di
Trang 5chuyển của Robot được chính xác
+) Vì sân có tính vòng và đối xứng nên các giải thuật phải giải quyết vấn đề đó Ví dụ đi từ (0,0) tới (18,2) tương đương quảng đường đi từ (0,0) tới (2,2)
6.Giải quyết bài toán tìm đường đi trên sân:
+) Tác vụ này của Robot được thực hiện khi cần tìm đường di chuyển từ node này đến node kia trên sân và khi Robot gặp vật cản trên sân khi thi đấu giúp Robot tìm ra đường khác để đi
+) Giải thuật AI tìm đường phải đàm bảo các yếu tố :
- Ít tốn bộ nhớ ,vì bộ nhớ của vi điều khiển rất hạn chế
- Thời gian chạy ngắn vì tốc độ vi điều khiển và khả năng đáp ứng nhanh với sự kiện trên sân
- Tránh được các node cấm đi ngang mà vẫn đảm bảo đường đi là ngắn nhất
- Chỉ được các tác vụ cho Robot khi đi qua các node trong kết quả tìm kiếm (như đi thẳng hay rẽ trái ,rẽ phải ,
…)
+) Giải pháp tìm đường bằng node trung gian hướng về tâm có thể đáp ứng bài toán này
Trang 6+) Việc sử dụng giải thuật nào phụ thuộc rất nhiều vào khả năng bộ nhớ mà Vi điều khiển có thể đáp ứng Giải thuật cáng tốt ,robot càng thong minh thì bộ nhớ Ram yêu cầu càng nhiều Do đó bạn phải cân bằng được 2 yếu
tố này để có kết quả tốt nhất
Kết quả tìm kiếm sinh ra danh sách các Node trung gian và
Tác vụ kèm theo
Trang 7Lược đồ của quá trình di chuyển từ Node bắt đầu cho tới Node đích
Can thiệp đường đi cũa Robot
7.Giải quyết bài toán suy luận tìm mục tiêu mới:
Trang 8+) Đối với mỗi đội thì các tập này sẽ khác nhau ,nhưng nó thường cố định nên ta có thể lưu trước vào chương trình
+) Trong quá trình hoạt động trên sân Robot NT sẽ cập nhật thêm một số điểm “có vấn đề ” ,do đó giải thuật phải bỏ qua các điểm này để tăng xác suất thành công cho kết quả
8.Phân tích tọa độ di chuyển của Robot:
+) Với phương pháp đối tượng hóa Robot và tọa độ hóa sân thi đấu thì tọa độ hiện tại của Robot là dữ liệu quyết định sự vận hành đúng đắn của Robot
+) Với hướng di chuyển như đã quy ước ở phần trên thì khi Robot đứng tại một điểm nào đó trên sân ,dự vào vector chỉ hướng của Robot ta có thể dễ dàng cập nhật tọa độ mới cho Robot
+) Ta có 4 hướng di chuyển chính khi Robot đứng tại một điểm trên sân
Các hướng di chuyển của Robot tại một điểm
9.Thực hiện tác vụ tại đích đến :
+) Mục đích của Robot khi di chuyển từ Goal node này đến Goal node khác là để thực hiện một tác vụ nào đó tại node đến Chúng ta có thể không cần quan tâm làm thế nào và đường đi nào để Robot tới đích ,Robot sẽ tự tìm đường và xử lý chuyện đó.Điều chúng ta quan tâm là khi tới đích Robot sẽ phải hoàn tất một nhiệm vụ nào đó
Trang 9+) Trong quá trình di chuyển tới node đích Robot sẽ đi ngang qua các node trung gian trên đường đi ,nó cũng sẽ thực hiện một số tác vụ nào đó do giải thuật tim kiếm sinh ra ,đảm bảo cho Robot di chuyển đến đúng tọa độ đích
+) Cơ chế xác định một tác vụ không thành công có thể sử dụng Time out hay Công tắc ,…
10.Lựa chọn Vi điều khiển :
+) Các chip và vi điều khiển đáp ứng được giao liếp với các Module đã thiết kế đều có thể sử dụng được +) Yêu cầu bộ nhớ Ram của MCU đủ lớn (tối thiểu 1KB) để xử lý các giải thuật
+) Lựa chọn vi điều khiển,thư viện và môi trường lập trình tùy vào từng Robot và thế mạnh lập trình của các thành viên để lựa chọn
+) Các dòng vi điều khiển thông dụng là MC51,AVR và PIC đều có thể đáp ứng được yêu cầu này
11.Giao tiếp máy tính :
+) Tùy vào Vi điều khiển để chọn lựa giao tiếp COM hay USB
+) Bạn phải hiện thực module sử dụng EEPROM của Vi điều khiển nếu muốn sử dụng khả năng cấu hình từ PC +) Hiện thực một Module đồ họa vẽ lại sân thi đấu ,hỗ trợ khả năng kéo thả đối tượng Robot NT như thiết kế ở trên Vớ mỗi mục tiêu chúng ta cần lưu lại thong tin vào một danh sách ,sau đó gởi yêu cầu ra giao tiếp để lưu vào Vi điều khiển