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ó q) ,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" .
CuuDuongThanCong.com
/>
- Đồ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 hồ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
:
CuuDuongThanCong.com
/>
Phần 1 : Thiết kế ý niệm .
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ụ ,… để hồn tất u cầu .
+) Q 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 :
CuuDuongThanCong.com
/>
+) 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 ngồi ,và nó sẽ cập nhật trạng thái đó cho phần dữ liệu
sẽ được xử lý .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 .
CuuDuongThanCong.com
/>
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 hồn tồ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 :
CuuDuongThanCong.com
/>
+) 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 .
CuuDuongThanCong.com
/>
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:
-
CuuDuongThanCong.com
/>
+) Đố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ơ .
CuuDuongThanCong.com
/>
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 q 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) .
CuuDuongThanCong.com
/>
6. Giải quyết bài tố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 .
CuuDuongThanCong.com
/>
+) 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 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 .
CuuDuongThanCong.com
/>
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
CuuDuongThanCong.com
/>
Can thiệp đường đi cũa Robot .
7. Giải quyết bài tốn suy luận tìm mục tiêu mới:
CuuDuongThanCong.com
/>
+) Đố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
CuuDuongThanCong.com
/>
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 hồn tất một nhiệm vụ nào
đó .
+) Trong q 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 .
CuuDuongThanCong.com
/>
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 .
CuuDuongThanCong.com
/>