Có hai bước đặc biệt chính đối với kỹ thuật được sử dụng bởi hầu hết các bộ điều khiển máy in 3d nguồn mở:
- Chia mỗi phân đoạn mã tuyến tính thành nhiều phân đoạn rất nhỏ ("Phân đoạn")
- Sử dụng một số lượng giác cơ bản hoặc định lý pythagore để buộc vị trí máy đùn với chiều cao vận chuyển cho mỗi ba tháp ("Động học nghịch đảo") để tìm vị trí mục tiêu cho từng phân đoạn nhỏ
Các động học nghịch đảo là đơn giản đáng ngạc nhiên. Một tam giác 90 độ ảo được xây dựng từ hai độ dài đã biết để giải quyết cho độ dài thứ ba chưa biết:
- Chiều dài cánh tay delta cố định là cạnh huyền của tam giác
- Khoảng cách ngang giữa các khớp cột và khớp đầu cuối được tính từ tọa độ XY của vòi phun và vị trí cố định của cột, để xác định chiều dài của cạnh dưới của tam giác
- Độ dài của cạnh trên của tam giác được tính từ hai trước đó thông qua định lý pythagore
- Chiều dài của mặt trên được thêm vào chiều cao Z của vòi phun để có được chiều cao vận chuyển cần thiết
Tôi nghĩ rằng tài liệu tham khảo mã nguồn mở tốt nhất ở đây là tài liệu Rostock Kinographics của Steve Grave, rev3 có sẵn để tải xuống tại đây: https://groups.google.com/d/msg/deltabot/V6ATBdT43eU/jEORG_l3dTEJ
Một số hình ảnh liên quan:
Các tính toán động học nghịch đảo này được thực hiện cho từng cỗ xe để có được vị trí mục tiêu "không gian vận chuyển" và điều này được thực hiện cho mọi phân đoạn đường dẫn.
Kết quả từ các bước này sau đó có thể được đưa trở lại vào các kỹ thuật nội suy đường thẳng tuyến tính tiêu chuẩn cho máy in, trong đó nó thực hiện các bước theo tỷ lệ cần thiết và ở tốc độ cần thiết để tạo ra cấu hình chuyển động và gia tốc / vận tốc đường thẳng mong muốn. (Làm thế nào THAT được thực hiện là một câu hỏi khác nhau.)
Hiệu quả thực tế là máy in sẽ di chuyển qua một loạt các chuyển động vận chuyển "tuyến tính" nhỏ (tốc độ không đổi có nghĩa là tuyến tính * tốc độ theo thời gian), gần đúng với các chuyển động cong cần thiết (vị trí bậc hai theo thời gian) cần thiết để tạo ra một chuyển động vận chuyển cần thiết để tạo ra một đường thẳng kết thúc di chuyển.
* ( Tốc độ không đổi trước khi giảm tốc độ được áp dụng để tuân theo các ràng buộc động lực, dù sao đi nữa. Một lần nữa, đó là chủ đề của một câu hỏi khác.)
Phân đoạn rất giống với quá trình sử dụng đa giác để xấp xỉ một vòng tròn. Nếu các khía cạnh đủ nhỏ, đa giác là một xấp xỉ tốt. Tỷ lệ phân đoạn cao hơn tạo ra ít lỗi theo đường dẫn hơn. Sự khác biệt về khái niệm chính giữa vẽ vòng cung vòng tròn và đường chuyển động Delta là cái gọi là "cung tròn mặt" với Phân đoạn Delta được xây dựng theo tọa độ chiều cao so với thời gian thay vì tọa độ X-vs-Y mà bạn sử dụng để vẽ vòng tròn trên màn hình máy tính.
Hệ thống này được sử dụng phần lớn vì hỗ trợ cho máy in kiểu Delta ban đầu được bắt vít vào các nhà hoạch định chuyển động dựa trên GRBL được viết riêng cho các đường chuyển động thẳng trong máy in Cartesian. Đó là một sửa đổi tương đối tối thiểu đối với cơ sở mã hiện tại so với việc thực hiện nội suy đường dẫn bậc hai đầy đủ.
Kỹ thuật đã phát triển qua nhiều năm. Và các cách tiếp cận thay thế thường được sử dụng: ví dụ: ngã ba dc42 của RepRapFirmware thực hiện theo đường dẫn chính xác mà không cần phân đoạn, bằng cách tính lại thời gian thích hợp cho bước tiếp theo sau mỗi bước . Điều này tương đương về mặt chức năng với xấp xỉ một vòng tròn có số mặt đa giác cao đến mức mọi pixel trên màn hình đều có khía cạnh riêng . Vì vậy, nó chính xác là chính xác như độ phân giải định vị của động cơ cho phép. Nhược điểm là kỹ thuật không phân đoạn này khá chuyên sâu về bộ xử lý, do đó, nó chỉ hoạt động trên các bộ điều khiển tương đối nhanh, chứ không phải Atmega AVR 8 bit cũ, cung cấp năng lượng cho hầu hết các máy in tiêu dùng / sở thích hiện nay.
Các kỹ thuật khác là có thể. Tài liệu điều khiển robot song song hàn lâm là cả một thế giới khác về kỹ thuật toán học và độ phức tạp để tạo ra các thuật toán điều khiển tổng quát hoạt động cho một loạt các cơ chế robot. Phiên bản chúng tôi sử dụng trong máy in 3d mã nguồn mở khá đơn giản và dành riêng cho ứng dụng.