Mô hình thiết kế Robot NT

Đây là dòng Robot mới được thiết kế dành riêng cho thi đấu Robocon . Mà sắp tới là cuộc thi Robocon Việt Nam 2007 .Đây là dòng Robot mới với khả năng hoạt động gần như tự động và xem như là “thông minh” nhờ các giải thuật AI được nhúng vào .Cũng như khả năng tái sử dụng ,chạy được trên nhiều loại Vi điều khiển .Hỗ trợ cấu hình ,xây dựng chiến thuật bằng phần mềm trên PC.

doc16 trang | Chia sẻ: vietpd | Lượt xem: 1587 | Lượt tải: 0download
Bạn đang xem nội dung tài liệu Mô hình thiết kế Robot NT, để tải tài liệu về máy bạn click vào nút DOWNLOAD ở trên
Mô hình thiết kế Robot NT . [Giới thiệu] Đây là dòng Robot mới được thiết kế dành riêng cho thi đấu Robocon . Mà sắp tới là cuộc thi Robocon Việt Nam 2007 .Đây là dòng Robot mới với khả năng hoạt động gần như tự động và xem như là “thông minh” nhờ các giải thuật AI được nhúng vào .Cũng như khả năng tái sử dụng ,chạy được trên nhiều loại Vi điều khiển .Hỗ trợ cấu hình ,xây dựng chiến thuật bằng phần mềm trên PC. [Tính năng Robot NT] : - Khả năng dò tìm đường đi đến mục tiêu tự động ,khác với cách truyền thống là phải lập trình trước lộ trình di chuyển đến mục tiêu ,quá mất công ,nhất là khi thay đổi chiến thuật . - Ở cấp sử dụng mình chỉ quan tâm việc lập danh sách thứ tự các mục tiêu để yêu cầu cho Robot thực hiện.Sau đó Robot NT sẽ tự động biết phân giải các yêu cầu trên và lần lượt thực hiện chúng một cách tự động . - Xây dựng chiến thuật được hỗ trợ bởi phần mềm Với giao diện "kéo thả" chuột trên 1 giao diện đồ họa mô phỏng sân thi đấu .Sau khi thao tác và nhấp OK ,Robot NT sẽ thực thi trên sân thi đấu thật giống y như bạn vừa làm trên màn hình của phần mềm . - Khả năng tránh vật cản nếu trong quá trình di chuyển Robot đụng phải .Sử dụng cơ chế Time out hoặc Encoder để nhận biết vật cản ,sau đó chạy lại Giải thuật tìm đường để đi con đường khác . - Trường hợp tất cả các đường đến mục tiêu đều bị đối phương chặn ,khi đó Robot NT phải có khả năng tìm một mục tiêu khác để thay thế nhờ khả năng suy diễn và tìm kiếm mục tiêu mới hợp lý để thay thế . - Tương tự với trường hợp trên ,khi Robot NT đã tìm được đến mục tiêu nhưng không thể thực hiện được yêu cầu (ví dụ đến lấy quà mà ở vị trí đó không có quà) ,thì nó cũng phải biết cách tìm đến mục tiêu khác để thực hiện . - Khả năng triển khai trên nhiều loại Vi điều khiển ,chỉ phụ thuộc vào các giải thuật yêu cầu bao nhiêu Ram và độ phức tạp của giải thuật để chọn lựa phần cứng đủ đáp ứng hay không.Phiên bản hiện tại phát triển hỗ trợ biên dịch cho 3 loại Vi điều khiển : PIC , P89 và H8 .Các VĐK khác cũng có thể triển khai miễn là hỗ trợ Ansi C . - Khả năng kết nối với PC để cấu hình và điều khiển (COM hoặc USb tùy VĐK bạn đang dùng) .Điều này cho phép thay đổi thông số (như tốc độ,bộ so sánh adc,encoder,...) Robot NT cũng như thay đổi chiến thuật rất dễ dàng trước lúc thi đấu mà không cần mất công "sửa code - biên dịch - nạp ". Đồng thời mở ra khả năng dùng các ngôn ngữ cấp cao C++,Java,C#,VB,… để điều khiển Robot NT . [Yêu cầu phần cứng] - Bạn không cần quan tâm quá nhiều về phần cứng của mình ,Robot NT có thể triển khai trên nhiều VĐK mà không cần sữa đổi nhiều (mã giải thuật chính viết bằng Ansi C) .Yêu cầu quan trọng nhất là Ram của VĐK tối thiểu 1KB ,nếu là 512B thì bạn phải chấp nhận khai báo Disable một số giải thuật và tính năng ,như vậy chấp nhận Robot NT sẽ bớt "thông minh" . - Đồng thời trước khi biên dịch mã nguồn yêu cầu tối thiểu bạn phải khai báo loại VĐK đang sử dụng và và cấu hình chân kết nối . - Do đó bạn có thể tự do chọn lựa và thiết kế mạch ,quan trọng là khai báo trước khi biên dịch là OK .Khỏi mất công tranh cải nhau về cách thiết kế cũng như sử dụng chip như một số bài post trong diễn đàn . [Thông tin phát triển] Phiên bản hiện tại đã biên dịch và chạy OK trên PIC với sân thi đấu thực ,còn P89 đang trong giai đoạn kiểm tra tương thích mã . Không biết nhóm nào làm trên AVR hay VĐK khác sẵn lòng cho bọn mình test không nhỉ ,hi hi... [Hỗ trợ kỹ thuật và Mã nguồn] - Đây là dòng Robot thiết kế Open for Every one .Bạn có thể liên hệ trang web BKPRO www.bkpro.info để có thông tin về mã nguồn cũng như các kỹ thuật cần thiết để xây dựng một Robot NT . - Khi có bản hoàn chỉnh Full chúng tôi mới chính thức Public lên web .Còn bây giờ vẫn đang test .Nếu các bạn muốn khám phá và xậy dựng dòng Robot NT này thì liên hệ và cùng phát triền cùng chúng tôi . (*) Robot NT đã đăng bài về mô tả cách hiện thực giải thuật trên báo Tự động hóa ngày nay ,số tháng 12-2006 Phần 1 : Thiết kế ý niệm . Phần 2 : Hiện thực code cho VĐK . (đang tổng hợp) Phần 3 : Thiết kế phần mềm điều khiển trên PC . (đang tổng hợp) More info about Robot NT at : www.bkpro.info Email support : cumgar@gmail.com Phần 1 : Thiết kế ý niệm . 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 . Ý tưởng đối tượng hóa Robot : +) Trước khi thiết kế Robot BKIT 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 ngoà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 . 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 : +) 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 . 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: +) Đố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 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 chuyể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) . 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 . +) 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 . Lượ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 . Giải quyết bài toán suy luận tìm mục tiêu mới: +) Đố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ả . 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 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 đó . +) 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 ,… 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 . 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 .
Tài liệu liên quan