Bí quyết cần thiết để viết thư viện hoạt hình (IK & FK) là gì? [đóng cửa]


9

Tôi không thể tìm thấy bất kỳ thư viện tốt nào cho hoạt hình, những thư viện mà tôi tìm thấy thực sự cũ và đã ngừng hoạt động, nhưng tôi nhận thấy rằng các thư viện tương đối nhỏ, vì vậy tôi đang suy nghĩ về việc tự mình viết mã: tôi nên bắt đầu từ đâu ? Những điều cơ bản cho việc này là gì? Có một cuốn sách về điều này?

Một số lưu ý thêm về một định dạng tệp tốt cho hoạt hình cũng được đánh giá cao.

Tôi đang sử dụng C ++.

Câu trả lời:



7

Động học chuyển tiếp chỉ là một điều kiện tiên quyết cho động học nghịch đảo, nói chung.

Đối với động học chuyển tiếp, bạn phải có một số kiến ​​thức về chuỗi biến đổi (ví dụ biểu đồ cảnh có nghĩa là gì). Ví dụ, một điểm tốt để bắt đầu là quy ước Denavit-Hartenberg. Đối với động học nghịch đảo, nghiên cứu Giải pháp tọa độ theo chu kỳ (CCD), nghịch đảo Jacobian, chuyển vị Jacobian và các giải pháp nghịch đảo giả . Những khái niệm và thuật toán này cung cấp cho bạn một cái nhìn tổng quan về toán học và một phần vật lý của lĩnh vực này. Thư viện, ngôn ngữ lập trình hoặc định dạng tệp không bao giờ là yếu tố chính nếu bạn cũng muốn hiểu những gì xảy ra đằng sau phép thuật.

Nếu bạn cần một giải pháp nhanh chóng hoặc một thành phần cho một số ứng dụng mà bạn đang làm việc, thì hãy xem một số thư viện được cung cấp trong (các) câu trả lời khác tại đây. Nếu bạn là người máy, thì OpenRAVE là một con quái vật đáng được nhắc đến. Ngoài ra, còn có Hộp công cụ Robot Matlab (miễn là bạn thuộc loại kỹ thuật đó của vấn đề).

Tất cả các khái niệm mang lại một khối lượng kết quả có liên quan trên công cụ tìm kiếm yêu thích của bạn, rất tiếc vì không đăng nhiều liên kết đến các tài liệu hay.


1

Bài viết gốc: Tôi cần biết gì về Động học nghịch đảo?

Bạn có thể đã nghe nói về Inverse Kinatures. IK là một công cụ phổ biến trong Unity và đồ họa máy tính, nhưng nếu đây là lần đầu tiên bạn thử tạo hoặc sử dụng hệ thống Inverse Kinographics thì bạn có thể muốn biết thêm chi tiết. Tôi sẽ giải thích IK là gì, xác định từ vựng và xem lại cách sử dụng. Từ vựng cần thiết để hiểu IK là gì?

Trước khi chúng ta đi vào trung tâm của IK, chúng ta cần xác định một số từ vựng liên quan đến IK. IK là một phương pháp được áp dụng cho một cơ thể có khớp nối. Một cơ thể khớp nối là gì?

Cơ thể có khớp nối

Một cơ thể có khớp nối có thể đại diện cho hầu hết các cơ thể hoạt hình như con người và động vật với bộ xương. Nói một cách đơn giản, một cơ thể có khớp nối là một cây của các chuỗi liên kết. Các chuỗi liên kết được tạo thành từ các khớp và liên kết, trong đó một liên kết là một hình trụ cứng.

nhập mô tả hình ảnh ở đây

Các loại khớp

Đối với khớp, có hai loại. Loại khớp đầu tiên là khớp quay vòng. Nó được kết nối với một liên kết xoay quanh nó.

Một khớp quay vòng giống như chân giữa của đồng hồ - với kim đồng hồ làm liên kết.

nhập mô tả hình ảnh ở đây

Khớp hình lăng trụ là khớp nối sao cho liên kết được kết nối dịch từ khớp để mở rộng / rút ngắn liên kết.

nhập mô tả hình ảnh ở đây

Một khớp hình lăng trụ hoạt động giống như kéo dài / rút lại chiều dài của tay cầm có thể thu vào hành lý của bạn. Nếu bạn nhìn kỹ, một tay cầm hành lý có thể thu vào có 4 khớp hình lăng trụ. 2 khớp hình lăng trụ nằm ở giữa tay cầm và 2 khớp hình lăng trụ khác nằm dọc xuống tay cầm ở phía trên cùng của hành lý.

Nếu bạn bối rối bởi các khớp hình lăng trụ, đừng lo lắng. Chúng không được sử dụng thường xuyên trong Chuyển động nghịch đảo, và như bạn có thể nói, không có con người nào có khớp hình lăng trụ - chỉ có khớp xoay tròn.

Cấu trúc phân cấp

Một cơ thể khớp nối có một khớp gốc. Khớp gốc là cơ sở của cấu trúc. Khớp gốc cho một người hình người thường là trung tâm của hông. Cơ thể khớp nối được hình thành từ một cây khớp và liên kết, bắt đầu từ khớp gốc. Một khớp và liên kết mới tương tự như một nhánh mới trên cây. Liên kết / khớp trong là một liên kết / khớp gần với khớp gốc hơn trong hệ thống phân cấp cây của thân khớp nối, vì nó liên quan đến khớp / liên kết đã cho. Liên kết / khớp ngoài là một liên kết / khớp nằm cách xa khớp gốc trong hệ thống phân cấp cây của thân khớp nối.

Cố gắng cuối

Một effector cuối là một vị trí ở vị trí outboard nhất của liên kết outboard nhất. Nó là kết thúc miễn phí của chuỗi các khớp và liên kết xen kẽ. Hiệu ứng cuối không phải là khớp. Hiệu ứng cuối chỉ đơn thuần là vị trí ở cuối cơ thể có khớp nối. Một cơ thể khớp nối có thể có nhiều hiệu ứng đầu cuối, giống như một cây nhị phân có thể có nhiều lá.

nhập mô tả hình ảnh ở đây

End Effector được mô tả như một vòng tròn màu xanh lá cây ở đây.

Khớp nối và tư thế

Khớp nối là một vòng quay / dịch của khớp di chuyển một liên kết được kết nối. Mặt khác, một tư thế là một tập hợp các khớp nối dẫn đến việc định vị cơ thể khớp nối. Nói cách khác, tư thế là một giá trị vectơ thay vì giá trị vô hướng.

Chuyển động học là gì?

Trước khi chúng ta có thể hiểu được Chuyển động nghịch đảo là gì, chúng ta cần tìm hiểu Chuyển động chuyển tiếp là gì. Hàm / thuật toán Chuyển tiếp Chuyển động lấy tư thế làm đầu vào và tính toán vị trí của bộ lọc cuối làm đầu ra. Chuyển động chuyển tiếp là chức năng nghịch đảo của Động học nghịch đảo. Với Chuyển động chuyển tiếp, bạn cần xác định toàn bộ tư thế của một cơ thể có khớp nối để cung cấp chức năng / thuật toán với đầu vào tư thế. Điều này có nghĩa là bạn cần xác định khớp nối của từng khớp trong cơ thể khớp nối. Điều này có thể tốt nếu bạn có số lượng khớp ít, nhưng với số lượng khớp cao thì điều này có xu hướng tẻ nhạt.

Động học nghịch đảo là gì?

Bây giờ, hãy tưởng tượng nếu bạn muốn bộ phận cuối của cơ thể được khớp nối của bạn đạt được một vị trí mục tiêu cụ thể. Điều này có nghĩa là bạn biết vị trí của bộ phận kết thúc mà bạn muốn nhắm mục tiêu, nhưng bạn không biết tư thế của cơ thể được khớp nối cần là gì để bộ phận đầu cuối đạt được vị trí mục tiêu này. Đây là nơi Inverse Kinatures tỏa sáng!

nhập mô tả hình ảnh ở đây

Nghịch đảo nghịch đảo là hàm / thuật toán nghịch đảo của Chuyển động chuyển tiếp. Hàm / thuật toán Chuyển động chuyển tiếp lấy một vị trí đích làm đầu vào và tính toán tư thế cần thiết cho bộ lọc cuối để đạt đến vị trí đích - tư thế là đầu ra.

Như bạn có thể thấy, đầu vào và đầu ra được chuyển đổi giữa FK và IK. Với Inverse Kinographics, bạn không cần xác định toàn bộ tư thế của một cơ thể có khớp nối - điều này được tính toán cho bạn bằng thuật toán IK. Với IK, bạn chỉ cần xác định vị trí là đầu vào.

Inverse Kinatures thực hiện tất cả các công việc tính toán đầy thách thức để tính toán tư thế là gì. Ở trạng thái Before, có một cơ thể khớp nối với một số tư thế được biết đến. Nó xác định một vị trí mục tiêu cho hiệu ứng cuối để cố gắng đạt được. Khi thuật toán IK được áp dụng cho phần thân được khớp nối, chúng ta đã đạt đến Trạng thái sau. Trạng thái After cho thấy một tư thế mới đã được tính toán, sao cho hiệu ứng cuối cùng hiện đang ở vị trí mục tiêu.

Công dụng của IK là gì?

Tại thời điểm này, chúng ta biết rằng IK được áp dụng cho một cơ thể có khớp nối, chúng ta biết một cơ thể có khớp nối được tạo thành từ đâu và chúng ta biết sự khác biệt giữa IK và FK. Chúng tôi có một cái nhìn tổng quan về IK cho đến nay, nhưng chúng ta hãy làm tròn nó với một số trường hợp sử dụng tốt IK. IK có thể được sử dụng cho một cánh tay hình người để tiếp cận một đối tượng / mục tiêu, như chúng ta đã thấy. IK cũng có thể được sử dụng để bước chân, như vậy chúng ta sẽ nói cho bàn chân biết bước nào và IK tìm ra cách cấu hình các khớp chân. IK thường không được sử dụng như một hình ảnh động (tiếp cận một đối tượng), mà nhiều hơn là một công cụ hoạt hình. Vì vậy, nếu bạn đang thực hiện chu trình đi bộ, bạn có thể định vị một số khung chính bằng công cụ IK.

nhập mô tả hình ảnh ở đây

Một điểm quan trọng khác về IK là mục tiêu / mục tiêu của bạn không bị giới hạn ở vị trí một mình - mục tiêu của bạn có thể được xác định là xoay vòng. Ví dụ: nếu bàn chân của bạn cần xoay dựa trên địa hình không bằng phẳng, mục tiêu xoay IK của bạn có thể được xác định dựa trên mức bình thường của sàn nhà. Bằng cách này, bàn chân của bạn nghiêng dọc theo sàn nhà, chẳng hạn như khi bạn đang đi lên một độ nghiêng. Lưu ý rằng bạn cũng có thể sử dụng IK để đầu của bạn (hoặc thậm chí là mắt) nhìn theo một hướng nhất định. Nếu bạn muốn đầu của bạn đi theo một đối tượng, bạn có thể sử dụng IK để đầu đi theo đối tượng xung quanh.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.