Giải thuật thực tế.

Một phần của tài liệu Ứng dụng kỹ thuật NeuralFuzzy trong vấn đề robot tự hành (Trang 36 - 39)

(n) w( ) n( )( )n xn

3.4.3Giải thuật thực tế.

Chương trình mạng neural được viết trong Microsoft Visual C++ trong môi

trường Windows. Để mạng học hỏi và kiểm tra, ta dùng chương trình NeuroSolution

(Neurodimensio 2000). Chương trình này đảm bảo việc quan sát không gian và sự

chuyển động của robot.

Việc học hỏi của các mạng neural được thực hiện độc lập từ dữ liệu dò tìm trong môi trường. Ởđây, ta dùng môi trường cho robot học hỏi như hình (3.5).

Hình 3.5 Môi trường dùng cho robot học hỏi.

Môi trường có thểđược sắp xếp để có nhiều trạng thái khác nhau khi cho robot chuyển động.

Môi trường thử nghiệm ở đây là phòng thí nghiệm, môi trường này được dò tìm bởi dãy sóng siêu âm. Dữ liệu dò tìm có thể được diễn tả như sau: môi trường và các vật cản được dò tìm thể hiện thành các bit map. Các sóng siêu âm được phát ra từ robot để dò tìm môi trường được thể hiện như hình (3.6). Nếu tia sóng siêu âm gặp phải vật cản (giá trị bit là 0-màu đen), chúng ta sẽ tính khoảng cách di. Khoảng cách di, sau đó, sẽ được dùng như tín hiệu input cho mạng neural.

Việc dò tìm môi trường được thực hiện theo 29 hướng khác nhau, con số 29 hướng được chọn thông qua quá trình thử nghiệm thực tế. Từđây, khoảng cách diđược dùng làm tín hiệu input cho mạng neural PCA.

Tín hiệu output từ mạng neural này là hướng đi an toàn trong môi trường, việc học hỏi hướng đi an toàn sẽ giúp tạo ra các ảnh bit map an toàn. Robot vừa di chuyển, vừa dò tìm trong không gian học hỏi kinh nghiệm, robot sẽ so sánh di với ảnh map dò tìm an toàn. Từđó robot sẽ xác định được hướng đi an toàn tiếp theo.

Hình 3.6. Dãy 29 sóng siêu âm dò tìm.

Với 29 khoảng cách di có được và thông tin về 29 hướng an toàn Vi, robot sẽ lưu chúng thành file. File này sẽ tạo thành kho dữ liệu huấn luyện cho mạng PCA ở thời kỳ thứ hai.

Mạng neural thứ hai được huấn luyện với giải thuật hồi tiếp. Việc học hỏi của mạng MLP có giám sát dùng bảng trạng thái kết hợp. Bảng này chứa tất cả các kết hợp có thể giữa hướng không gian Vi và hướng tới điểm đích Sj. Các thông số Vi, Sj có hai giá trị. Nếu Vi = 1 (hướng không gian Vi không chứa vật cản) thì di chuyển theo hướng này là có thể. Nếu Vi = 0 thì hướng Vi bị cản trở và việc di chuyển theo hướng này là không thể. Giá trị Sj =1 thì trong hướng đi đến điểm đích, tọa độ điểm đích sẽ nằm trên hướng này. Ngược lại, nếu Sj = 0 thì trong hướng đi đến điểm đích này sẽ không có tọa độ điểm đích cần tới. Việc giám sát sẽđược đảm bảo tín hiệu ra cần thiết khi có sự kết hợp giữa Vi, Sj, mạng neural sẽ học lấy những trạng thái này. Với việc lựa chọn có giám sát các giá trị Vi và Sj việc chuyển động của robot sẽ được thực hiện trong hướng đi an toàn tới điểm đích. Mạng neural, ởđây, có 18 neural input (9 giá trị Vi, và 9 giá trị Sj), 20 neural ẩn và 9 neural output (xác định góc phương vị Oj).

Tín hiệu, output Ojcủa mạng neural thứ hai này được đưa đến bộ phận điều khiển. Từ đây, bộ phận này sẽ điều khiển robot chuyển động. Ở đây robot phân biệt năm lệnh chuyển động. Đó là: đi tới, quẹo phải, đi hướng bên phải, quẹo trái, đi hướng bên trái. Lệnh “quẹo trái/phải” là thay đổi một góc 450 theo hướng bên trái/phải, lệnh “đi hướng trái/phải” là thay đổi một góc 900 theo hướng bên trái/phải.

Trong quá trình kiểm nghiệm, robot có vài vị trí chết. Tại vị trí đó, robot không biết nên đi theo hướng nào. Đó là vị trí cửa ra vào và vị trí gần hành lang của phòng thí nghiệm. Vì thế robot cần được thêm vào hai mạng neural nhiều lớp. Đó là mạng neural

H và mạng neural D. Mạng neural H dùng để nhận biết tình trạng nguy hiểm cho

robot. Nghĩa là, lúc này robot ở gần các vị trí chết. Nếu tình trạng này xảy ra, mạng neural D sẽ thực hiện việc chuyển động an toàn xuyên qua các vị trí chết này như hình (3.7)

Hình 3.7 Robot chuyển động gần của ra vào.

Mạng neural H vận hành như một công tắc để quyết định sẽ dùng mạng neural D hay vẫn dùng mạng MLP.

Một phần của tài liệu Ứng dụng kỹ thuật NeuralFuzzy trong vấn đề robot tự hành (Trang 36 - 39)