Mục lục:

Hawking Bot: 5 bước
Hawking Bot: 5 bước

Video: Hawking Bot: 5 bước

Video: Hawking Bot: 5 bước
Video: Khoa học vũ trụ Stephen Hawking và Thuyết Vạn Vật P1 Thuyết minh 2024, Tháng mười một
Anonim
Image
Image
Xây dựng Hawking Bot của bạn
Xây dựng Hawking Bot của bạn

Hawking Bot là một Dự án Lego MINDSTORMS EV3 lấy cảm hứng từ Stephen Hawking quá cố. Stephen Hawking có khiếu hài hước nên tôi chắc chắn rằng ông ấy sẽ chấp thuận dự án này. Hawking Bot có thể điều hướng theo cách của mình xung quanh các chướng ngại vật và phản ứng với các chuyển động, sau đó thốt ra một trong những câu nói nổi tiếng của Stephen Hawking và di chuyển theo hướng của vật thể đang chuyển động. Nó sử dụng cảm biến siêu âm đang quét môi trường của nó với chuyển động đầu quét.

Bước 1: Xây dựng Hawking Bot của bạn

Tất cả các mảnh bắt buộc đều nằm trong bộ Lego MINDSTORMS EV3 cơ bản, ngoại trừ cảm biến siêu âm (mắt của anh ấy) phải mua riêng.

Bước 2:

Hình ảnh
Hình ảnh

Mã của Hawking Bot đều được viết bằng python 3. Bạn có thể tải xuống tệp hình ảnh có thể khởi động để chạy python trong môi trường Debian Linux trên Hawking Bot từ trang web ev3dev. Có thể tải xuống mã để chạy Hawking Bot từ đây. Tất cả mã được chứa trong một tệp lớp để bạn có thể sử dụng các phương thức hiện có hoặc thậm chí sửa đổi chúng nếu bạn muốn.

Vui lòng xem video này với hướng dẫn chi tiết về cách thiết lập Debian Linux và Python3 trên rô bốt của bạn. Mặc dù điều này dành riêng cho thiết lập Mac, nhưng sẽ vẫn hữu ích nếu bạn hiểu chung về quy trình. Đây là công việc đang được tiến hành. Cảm biến siêu âm đôi khi không đáng tin cậy và điều này đòi hỏi mã thông minh hơn để phát hiện 'các điểm ngoại lai'. Tôi muốn xem đóng góp từ những người khác để làm cho mã hiệu quả hơn và ít lỗi hơn.

Bước 3: Tạo bản ghi âm Hawking của riêng bạn

Được rồi, bây giờ bạn muốn có một số câu danh ngôn nổi tiếng hoặc một số câu nói đơn giản của Giáo sư Hawking. Có rất nhiều video mà bạn có thể nghe anh ấy nói và sau đó là những bài giảng của anh ấy, là một kho tàng trí tuệ và những âm thanh hữu ích.

Bạn cần một chương trình như Audacity hoạt động trên nhiều nền tảng để chọn và cắt các đoạn soundbit yêu thích của bạn.

Lưu soundbite của bạn dưới dạng tệp đơn âm wav dưới dạng SH6, SH7,… SH11, SH12, v.v.

Dưới đây bạn tìm thấy một vài mẫu mà tôi đã tạo theo phương pháp trên.

Bước 4: Mẹo và thủ thuật

Các mẹo và thủ thuật
Các mẹo và thủ thuật
Các mẹo và thủ thuật
Các mẹo và thủ thuật

Hawking Bot đi kèm với một mô-đun tự kiểm tra để đảm bảo tất cả các dây cáp được kết nối và nguồn pin đủ. Các kết nối lỏng lẻo, thiếu hoặc thậm chí bị hỏng có thể xảy ra dễ dàng. Vì vậy, mô-đun này rất hữu ích. Phương thức 'checkConnection' chỉ kiểm tra xem có kết nối điện hay không. Bạn vẫn phải đảm bảo các động cơ được kết nối với đúng cổng.

Chuyển động vuốt đầu là điều cần thiết để Hawking Bot có thể quét địa hình của nó và tìm ra con đường dài nhất không bị cản trở phía trước. Các dây cáp cần có đủ không gian để chứa các chuyển động của đầu; do đó, bạn nên buộc chúng lại với nhau như thể hiện trên ảnh.

Hawking Bot hoạt động tốt nhất với các chướng ngại vật lớn và trên bề mặt phẳng và nhẵn. Thảm có nhiều thách thức hơn đối với động cơ và bạn có thể phải điều chỉnh cài đặt để điều chỉnh hành vi cho các bề mặt khác nhau.

Hawking Bot không có nghĩa là hoàn hảo và đây là một nguyên mẫu sẽ được hưởng lợi từ những cải tiến hơn nữa. Mã được nhận xét đầy đủ và bạn sẽ dễ dàng tìm ra những gì các phương pháp khác nhau làm. Nhiều bit khác nhau đã được nhận xét bằng #, nếu bạn xóa dấu # ở phía trước 'print', chương trình đang chạy sẽ hiển thị cho bạn các phép tính và đọc cảm biến khác nhau.

Bước 5: Các cải tiến, cập nhật và ý tưởng tương lai được đề xuất

Bây giờ bạn đã chế tạo thành công rô bốt của mình, bạn muốn đưa nó lên cấp độ tiếp theo. Bạn có thể cải thiện phương pháp MotionDetector. Ngay bây giờ nó thường bị đọc sai. Bạn có thể xem các số đọc thực tế bằng cách bỏ ghi chú disA và disB (ở cuối khối phương thức). Việc đọc sai thường nổi bật so với các lần đọc khác, vì vậy bạn có thể viết một thuật toán để ngăn robot phản hồi khi đọc sai.

Có lẽ bạn muốn toàn quyền điều khiển robot và chỉ cần điều khiển từ xa các chức năng khác nhau của nó. Bạn có thể làm điều này qua Bluetooth và viết một chương trình Android để giao tiếp với robot. Tuy nhiên, một cách tiếp cận dễ dàng hơn nhiều sẽ là tìm một vị trí để cảm biến hồng ngoại kiểm soát Hawking Bot.

Điều gì về việc để robot tìm hiểu về môi trường của nó? Điều này có thể được thực hiện bằng cách tiếp cận k-láng giềng gần nhất hoặc có thể là mạng nơ-ron. Gạch EV3 có sức mạnh xử lý hạn chế mặc dù nó hỗ trợ Numpy. Một giải pháp thay thế sẽ là BrickPi cho phép bạn chạy thư viện AI như Tensorflow nhưng mục đích của hướng dẫn này là sử dụng bộ Lego EV3 MINDSTORMS mà không cần phải mua nhiều phần bổ sung đắt tiền khác ngoài cảm biến siêu âm.

Tuy nhiên, cách tiếp cận học tập thông tin lại k-hàng xóm gần nhất sẽ hoạt động trên gạch EV3 và đây là thuật toán được đề xuất. Tôi giao nó cho bạn để tìm một triển khai hoạt động hoặc phát hiện bất kỳ vấn đề nào:

Học tập củng cố cho Hawkings Bot

Ý tưởng là 7 lần đọc USS được mã hóa thành một vectơ và 10 lần quét đầu cuối cùng được sử dụng để tạo ra một vectơ tuần tự gồm 70 mục nhập. Các bài đọc đầu tiên không đầy đủ vì vậy sẽ được lấp đầy bởi các số không. Mỗi mục nhập chứa giá trị khoảng cách từ USS. Đây là vector trạng thái s. Hệ thống cho phép 1000 mục nhập. Sau đó, mục nhập cũ nhất sẽ được thay thế và mục nhập tuổi cho mỗi cặp s-r sẽ giảm đi một.

Bot không được đến gần vật thể quá 10 cm. Điều này tạo ra một phần thưởng tiêu cực. Vì đơn giản; hành động tốt được thưởng bằng 1 và hành động xấu được thưởng bằng 0. Về mặt hiệu quả, điều này tạo ra xác suất cho phần thưởng cho mỗi kết hợp trạng thái hành động. Chúng tôi sẽ sử dụng phần thưởng chiết khấu và chính sách tham lam của epsilon.

Điều này tạo ra 3 bảng trạng thái lớn – hướng tới (s-r) cho cả ba hành động sang phải, thẳng về phía trước và sang trái - có thể có tốc độ nhanh và chậm cho mỗi hành động. Sau đó, chúng ta sẽ có 6 hành động và 6 bảng s-r tra cứu.

Mỗi khi một trạng thái mới được ghi lại, nó được so sánh với các bảng, khoảng cách Euclide (hoặc thước đo tương tự) được sử dụng để tìm người hàng xóm gần nhất. Điều này sẽ không được xếp hạng mà là một ngưỡng t được đặt để chấp nhận trạng thái rất giống nhau, ghi đè trạng thái hiện có và cập nhật để có phần thưởng cao nhất và thực hiện hành động liên quan a. Nếu nó không tương tự (d> t), hãy nhập một cặp s-r mới cho mỗi hành động a. Nếu có sự ràng buộc giữa các hành động đối với s-r (tất cả chúng đều có phần thưởng giống nhau), hãy chọn ngẫu nhiên nhưng điều này không phổ biến và có thể bị bỏ qua.

t sẽ phải được xác định bằng thực nghiệm, nếu t quá nhỏ thì các trạng thái tương tự sẽ bị bỏ qua và mỗi trạng thái được coi là duy nhất. T quá lớn có nghĩa là các trạng thái thậm chí không giống nhau được gộp lại với nhau có thể ảnh hưởng đến khả năng lựa chọn hành động tốt. Có thể sử dụng phương pháp thống kê để xác định t tốt nhất.

Bảng trông giống như sau: Mục nhập Không - Vectơ trạng thái - phần thưởng cho hành động 1 - phần thưởng cho hành động 2 - phần thưởng cho hành động 3.

Tôi đoán việc triển khai thực tế sẽ phức tạp nhưng cần được nỗ lực xứng đáng. Chúc may mắn!

Đề xuất: