Mục lục:

Roomba Scout Explorer: 8 bước
Roomba Scout Explorer: 8 bước

Video: Roomba Scout Explorer: 8 bước

Video: Roomba Scout Explorer: 8 bước
Video: Is iRobot really superior??? #shorts #short #youtubeshorts 2024, Tháng bảy
Anonim
Roomba Scout Explorer
Roomba Scout Explorer

Là một trong những dự án được người Mỹ mong đợi và nghiên cứu nhiều nhất, dự án tàu thám hiểm sao Hỏa đã trở thành thành tựu của con người trong việc sản xuất ngày càng tiến bộ các hệ thống tự hành công nghệ cao cho mục đích duy nhất là điều tra và giải thích các vùng đất và bề mặt của hành tinh đỏ phía sau Trái đất. Là một phần của dự án cá nhân hơn để tôn kính các sứ mệnh trên sao Hỏa, mục tiêu của chúng tôi là tạo ra một robot roomba có thể hoạt động tự động trong một khung thời gian nhất định và phản ứng phù hợp với các tiêu chí nhất định trong vùng lân cận của nó.

Đối với tính độc đáo, chúng tôi tập trung vào việc tạo ra một sơ đồ cho thấy mỗi con đường mà robot đi từ nguồn gốc của nó. Ngoài ra, robot sẽ có thể đếm số lượng các đối tượng trong vùng lân cận của nó theo phong cách toàn cảnh.

Bước 1: Thiết bị

-Roomba w / Máy ảnh có thể gắn được (với tên cụ thể đã biết)

-Máy chủ được kết nối

-Windows 10 / Mac có kết nối Internet

-Nền tảng sáng

- Tầng tối

-Bất kỳ vật thể lạc hướng nào có thiết kế đơn sắc

Bước 2: Thiết lập MATLAB

Thiết lập MATLAB
Thiết lập MATLAB

Để tạo các tác vụ và chức năng cho roomba của bạn, bạn phải có các mã và bộ công cụ cụ thể chứa các lệnh roomba.

Với MATLAB 2016a được tải xuống trở đi, hãy tạo một thư mục để chứa các tệp robot này và chèn tệp MATLAB sau vào thư mục và chạy nó để cài đặt các tệp roomba cần thiết còn lại.

Sau đó, nhấp chuột phải vào cửa sổ Thư mục Hiện tại, di chuột qua "Thêm đường dẫn" và nhấp vào "Thư mục hiện tại". Bây giờ, một đường dẫn sẽ được thiết lập sao cho mỗi tệp này sẽ được sử dụng để kích hoạt roomba.

Bây giờ, sử dụng lệnh bên dưới trong cửa sổ lệnh để thiết lập roomba:

r = roomba (#).

Ký hiệu # là 'số' của roomba được chỉ định; tuy nhiên, nếu bạn chỉ muốn một trình mô phỏng của roomba, chỉ cần gõ lệnh sau:

r = roomba (0).

Mô phỏng sẽ được đề xuất để kiểm tra các mẫu chuyển động.

Nếu bạn tò mò về những lệnh nào mà roomba có thể tuân theo, hãy nhập nội dung sau vào cửa sổ lệnh:

doc phongba.

Để biết thêm chi tiết, hãy truy cập trang web sau:

ef.engr.utk.edu/ef230-2017-08/projects/roomba-s/setup-roomba-instructable.php

Bước 3: Chức năng: Chuyển động

Chức năng: Phong trào
Chức năng: Phong trào
Chức năng: Phong trào
Chức năng: Phong trào

Liên quan đến chuyển động, roomba phải tự động di chuyển trong một khoảng thời gian nhất định trong các đầu vào. Mục tiêu chuyển động của robot là phản ứng chính xác khi các cảm biến của nó (cản va chạm, cản sáng và cảm biến vách đá) thay đổi khi có nhiều chướng ngại vật khác nhau. Phần này sẽ hoạt động như cơ sở cho tất cả các lệnh của roomba khi nhiều tính năng hơn cho mã được thêm vào sau này. Một số đặc điểm kỹ thuật là cần thiết:

-Để giảm thiệt hại, rô bốt phải giảm tốc độ xuống vận tốc thấp hơn.

-Khi đến gần vách đá hoặc bức tường, robot sẽ di chuyển ngược lại và thay đổi góc tùy thuộc vào điểm va chạm

-Sau một thời gian lái xe, cuối cùng roomba sẽ dừng lại và chụp ảnh khu vực xung quanh

Lưu ý rằng các giá trị được sử dụng liên quan đến trình mô phỏng; Các giá trị như góc rẽ, vận tốc quay và các giá trị đặt trước của cảm biến rô bốt phải được sửa đổi khi sử dụng rô bốt thực tế để đảm bảo độ ổn định và khả năng giải quyết lỗi thiết bị.

Bước 4: Chức năng: Xử lý hình ảnh

Chức năng: Xử lý hình ảnh
Chức năng: Xử lý hình ảnh

Theo yêu cầu, chúng tôi được giao nhiệm vụ sửa đổi dữ liệu của một hình ảnh (hoặc một số hình ảnh) mà camera của robot nhận được, chúng tôi quyết định đặt roomba "đếm" số lượng đối tượng mà nó nhìn thấy trong hình ảnh.

Chúng tôi đã làm theo kỹ thuật để MATLAB vẽ ranh giới xung quanh các đối tượng được bôi đen tương phản với nền trắng. Tuy nhiên, chức năng này dễ gặp khó khăn trong một khu vực mở vì các hình dạng và màu sắc khác nhau được máy ảnh cảm nhận, dẫn đến số lượng cao bất thường.

Lưu ý rằng chức năng này không thể hoạt động trong trình mô phỏng vì máy ảnh không được cung cấp; nếu cố gắng, sẽ xảy ra lỗi khi khai báo chỉ có thể sử dụng ma trận (:,:, 3).

Bước 5: Chức năng: Lập bản đồ

Chức năng: Lập bản đồ
Chức năng: Lập bản đồ
Chức năng: Lập bản đồ
Chức năng: Lập bản đồ
Chức năng: Lập bản đồ
Chức năng: Lập bản đồ
Chức năng: Lập bản đồ
Chức năng: Lập bản đồ

Một tính năng bổ sung mà chúng tôi muốn robot có là vạch ra các vị trí của nó khi nó tương tác trực tiếp với môi trường. Do đó, đoạn mã dưới đây tìm cách mở bản đồ và thiết lập hệ thống tọa độ chi tiết từng vị trí mà các cảm biến cản của robot được nhấn. Đây được chứng minh là phần dài nhất trong ba phần để kiểm tra riêng lẻ, nhưng nó tỏ ra đơn giản hơn nhiều khi áp dụng cho tập lệnh cuối cùng.

Vì lợi ích của việc thêm giới hạn cho độ dài thời gian chạy của hàm, giới hạn n <20 trên vòng lặp while được sử dụng cho mục đích thử nghiệm.

Hãy nhớ rằng mặc dù vì độ phức tạp của mã, nhiều lỗi hơn xảy ra khi đoạn mã chạy trong một thời gian dài; từ các bài kiểm tra trước đó, mười điểm va chạm dường như là số điểm trước khi xảy ra các lỗi nghiêm trọng.

Bước 6: Vị trí kết hợp

Juxtaposition
Juxtaposition
Juxtaposition
Juxtaposition
Juxtaposition
Juxtaposition
Juxtaposition
Juxtaposition

Vì tất cả những điều này sẽ được đặt trong một tệp duy nhất, chúng tôi đã tạo một hàm bằng cách sử dụng từng bước trong hai bước trước đó làm hàm con của nó. Bản nháp cuối cùng đã được thực hiện với sửa đổi sau đây đối với hàm redux được gọi là "trinh sát". Để tránh nhầm lẫn cho MATLAB, các tập lệnh "counter" và "rombplot3" đã được đổi tên tương ứng thành các hàm nhúng "CountR" và "plotr".

Một số thay đổi đã được thực hiện trong phiên bản cuối cùng trái ngược với các tập lệnh trước đó:

-Nguồn gốc sẽ luôn được đánh dấu bằng một vòng tròn màu đỏ

-Mỗi khi roomba dừng lại khỏi phần đệm của nó, vị trí được đánh dấu bằng một vòng tròn màu đen

-Mỗi khi roomba dừng lại khỏi cảm biến vách đá, vị trí được đánh dấu bằng một vòng tròn màu xanh lam

-Mỗi khi roomba ngừng điều tra khu vực, vị trí được đánh dấu bằng một vòng tròn màu xanh lá cây

-Hình ảnh được sửa đổi để loại bỏ phần trên cùng do dấu thời gian có thể ảnh hưởng đến kết quả

- Biên giới sẽ không được tính là một đối tượng do số lượng thu được khá cao

- Một số biến đã được thay đổi, vì vậy để tránh nhầm lẫn, hãy sử dụng các phiên bản trên để tham khảo.

Bước 7: Kiểm tra

Thử nghiệm
Thử nghiệm

Các thử nghiệm đối với từng thành phần riêng lẻ đôi khi được chứng minh là khá hỗn hợp, đó là lý do tại sao việc sửa đổi các giá trị đặt trước nhất định là cần thiết. Nền chuyên đề mà chúng tôi muốn kiểm tra khả năng của robot trong một khu vực khép kín chỉ đơn giản là một tấm bảng trắng được đặt trên một sàn tối hơn nhiều. Bạn có thể phân tán các đối tượng xung quanh khu vực; khiến chúng hoạt động như những vật thể bị va chạm hoặc những vật thể ở xa khu vực di chuyển của robot.

Sau khi thiết lập thời gian quy định và vận tốc cơ bản, roomba đã thể hiện hành vi chuyển động thích hợp, dừng lại và lùi lại khỏi từng "vách đá" hoặc vật thể mà nó đâm vào cũng như giảm tốc độ khi phát hiện thứ gì đó ở gần. Khi đạt được khoảng cách di chuyển ba mét mong muốn, rô bốt sẽ tiến hành dừng lại và đánh giá khu vực, chụp ảnh của từng khu vực 45 độ và tiếp tục đi tiếp nếu thời gian cho phép. Tuy nhiên, số lượt của nó xuất hiện lớn hơn yêu cầu, có nghĩa là dữ liệu tọa độ sẽ bị che khuất.

Mỗi khi nó dừng lại, một điểm mới được đặt trong vùng gần đúng của vị trí của nó trên hệ tọa độ; tuy nhiên, cần lưu ý rằng hướng ban đầu mà roomba bắt đầu đóng một vai trò quan trọng trong việc thiết kế bản đồ. Nếu tính năng la bàn có thể được triển khai, nó sẽ được sử dụng như một phần quan trọng của thiết kế bản đồ.

Thời gian thực tế mà hàm cần để chạy hoàn toàn luôn cao hơn thời gian được yêu cầu, điều này có ý nghĩa khi xem xét nó không thể dừng lại giữa một trong các lần khôi phục. Thật không may, phiên bản đếm hình ảnh này có các vấn đề của nó, đặc biệt là ở các khu vực chủ yếu là đơn sắc hoặc độ sáng khác nhau; bởi vì nó cố gắng phân biệt giữa hai sắc thái, nó có xu hướng nhận thức được các đối tượng không mong muốn, do đó nó luôn được tính đến những con số cực kỳ cao.

Bước 8: Kết luận

Phần kết luận
Phần kết luận

Mặc dù nhiệm vụ này là một công việc rất mạo hiểm và sáng tạo mang lại niềm vui nhẹ nhõm, nhưng từ quan sát cá nhân của tôi, tôi có thể thấy rất nhiều lỗi có thể gây ra vấn đề, cả về mã và hành vi của robot.

Hạn chế của việc sử dụng đặc tả thời gian trong vòng lặp while làm cho tổng lượng thời gian dài hơn mong muốn; Trên thực tế, quy trình của kỹ thuật toàn cảnh và xử lý hình ảnh có thể mất nhiều thời gian hơn nếu chạy bằng máy tính chậm hoặc không được sử dụng trước đó. Ngoài ra, roomba được sử dụng trong bản trình bày của chúng tôi đã hoạt động với một số lỗi lớn, đặc biệt là về chuyển động, so với trình mô phỏng. Thật không may, robot được sử dụng có xu hướng hơi nghiêng về bên trái khi nó lái thẳng và thực hiện các vòng quay lớn hơn mong muốn. Vì lý do này và nhiều lý do khác, chúng tôi khuyến nghị rằng để bù cho những lỗi này, cần phải thực hiện các thay đổi đối với các góc quay của nó.

Tuy nhiên, đây là một dự án dài nhưng kích thích trí tuệ đã hoạt động như một trải nghiệm học tập thú vị để áp dụng các mã và lệnh để ảnh hưởng trực tiếp đến hành vi của một robot thực tế.

Đề xuất: