Tôi đang xây dựng một bộ giải mê cung mê cung tự động và sử dụng webcam để điều khiển mê cung của mình.
Dựa trên các đề xuất trong các diễn đàn khác, tôi đang cố gắng kiểm soát chuyển động bóng của mê cung ít nhất theo một hướng vào lúc này. Vì vậy, tôi đang cố gắng kiểm soát chuyển động bóng của mình giữa hai tọa độ 466,288 và 466,52. Đầu vào của bảng điều khiển động cơ bước là thời gian, không có bước nào để xoay cho mỗi trục tức là x và y.
Bảng điều khiển động cơ bước mà tôi đang sử dụng là bảng điều khiển động cơ bước bot bot: http://www.sparkfun.com/products/10025
Vì vậy, để di chuyển giữa hai điểm, tôi có nên tạo một số điểm cách giữa hai điểm là 288 và 152 (giả sử 260 240 230 ... 150) và điều chỉnh chuyển động bóng của tôi không?
Thuật toán xử lý hình ảnh của tôi không đủ nhanh để theo dõi quả bóng mà quả bóng sẽ chỉ quay và rơi vào một lỗ.
Một số gợi ý rằng tôi sử dụng một mẫu tiêu chuẩn như trong video sau đây và sửa các chuyển động bóng của tôi cho độ lệch trong đường dẫn:
http://www.youtube.com/watch?v=Prq78ctJ2Rk&feature=player_embedded
Tôi cũng đã bắt gặp một công cụ xử lý hình ảnh nơi họ giải quyết vấn đề tương tự bằng cách sử dụng các điểm cho chuyển động bóng. Nhìn thấy quá nhiều giải pháp cho cùng một vấn đề, tôi hoàn toàn bối rối trong việc giải quyết vấn đề. Tôi biết rằng tôi nên thực hiện một bộ điều khiển PID. Nhưng làm thế nào tôi nên đi giải quyết các vấn đề trong các giai đoạn? Tôi bế tắc và thất vọng trong việc tìm kiếm một sự khởi đầu trong việc giải quyết vấn đề.
Thiết lập của tôi trông như thế này:
... và đây là ảnh chụp màn hình phần mềm của tôi:
Bản sửa đổi 2: Bây giờ tôi cũng đang phải đối mặt với một vấn đề mới: Trước đó tôi đã điều khiển các động cơ bước thông qua applet Java cổng nối tiếp Arduino. Tôi có thể lái các stepper bằng applet.
Tôi phải đặt lại bảng mỗi lần tôi cố gắng giao tiếp qua cổng nối tiếp. Ngoài ra, động cơ bước tạo năng lượng cho chính nó trong những khoảng thời gian nhỏ khi không có lệnh nào được gửi đến nó. Khi động cơ bước vào chế độ này, tôi không thể điều khiển bảng của mình mà không đặt lại bảng. Bất kỳ trợ giúp sẽ được đánh giá cao.
Sửa đổi 3:
Tôi đã thực hiện một số tiến bộ trong đó tôi đã thực hiện thuật toán PID. Vui lòng tìm video dưới đây: http://www.youtube.com/watch?v=MEfp7RqPmqY
Bây giờ tôi có một vấn đề với tốc độ thực hiện thuật toán PID. Trên thực tế, quá trình xử lý ảnh của tôi kết thúc một chu kỳ trong 200 ms, xác định một quả bóng và gửi các lệnh đến bảng điều khiển động cơ bước. Mặc dù cổng nối tiếp của tôi được gửi lệnh để chuyển hướng, bước của tôi vẫn tiếp tục quay theo cùng hướng. Bạn có thể tìm thấy hành vi kỳ lạ trong video trên.
Tôi nghĩ rằng tôi nên hạn chế các giá trị PID với mức trần trong đó nếu giá trị PID được tính lớn hơn 100, tôi chỉ nên gửi 100. Tôi mong muốn được nghe suy nghĩ của bạn về điều này.
Cách tôi triển khai bộ điều khiển PID là tôi đã xác định điểm bắt đầu của mẫu bằng thuật toán khớp mẫu và xác định bóng bằng thuật toán khớp mẫu khác. Bây giờ, tôi đã làm cho quả bóng di chuyển đến tâm của mẫu điểm bắt đầu. Làm thế nào để tôi làm cho nó đi theo đường thẳng với thuật toán PID?
Sửa đổi 4:
Tôi đã cách ly quỹ đạo nhưng tôi không thể tìm thấy hàm chính xác để in tọa độ pixel chính xác từ điểm bắt đầu. Có suy nghĩ gì không?