Π˜Π½Π²Π΅Ρ€ΡΠ½Π°Ρ ΠΊΠΈΠ½Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠ°: простой ΠΈ быстрый Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ. FABRIK - Π½ΠΎΠ²ΠΎΠ΅ эвристичСскоС Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ Π·Π°Π΄Π°Ρ‡ΠΈ IK

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Β«Π˜Π½Π²Π΅Ρ€ΡΠ½Π°Ρ ΠΊΠΈΠ½Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠ°Β»?

Π—Π°Π΄Π°Ρ‡Π΅ΠΉ инвСрсной ΠΊΠΈΠ½Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠΈ являСтся поиск Ρ‚Π°ΠΊΠΎΠ³ΠΎ Π½Π°Π±ΠΎΡ€Π° ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΉ сочлСнСний, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ обСспСчил Π±Ρ‹ максимально мягкоС, быстроС ΠΈ Ρ‚ΠΎΡ‡Π½ΠΎΠ΅ Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΠ΅ ΠΊ Π·Π°Π΄Π°Π½Π½Ρ‹ΠΌ Ρ‚ΠΎΡ‡ΠΊΠ°ΠΌ. Однако, мноТСство ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… Π½Ρ‹Π½Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² ΡΡ‚Ρ€Π°Π΄Π°ΡŽΡ‚ ΠΎΡ‚ Ρ‚Π°ΠΊΠΈΡ… нСдостатков ΠΊΠ°ΠΊ высокая Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚Π΅Π»ΡŒΠ½Π°Ρ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΈ Π½Π΅Π΅ΡΡ‚Π΅ΡΡ‚Π²Π΅Π½Π½ΠΎΡΡ‚ΡŒ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚ΠΈΡ€ΡƒΡŽΡ‰ΠΈΡ… ΠΏΠΎΠ·. Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ описан Π½ΠΎΠ²Ρ‹ΠΉ (вСроятно, Π½Π° ΠΌΠΎΠΌΠ΅Π½Ρ‚ написания ΡΡ‚Π°Ρ‚ΡŒΠΈ - 2010 Π³. ) эвристичСский ΠΌΠ΅Ρ‚ΠΎΠ΄ ΠΏΠΎΠ΄ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ Β«ΠœΠ΅Ρ‚ΠΎΠ΄ прямого ΠΈ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠ³ΠΎ слСдования» (Forward and Backward Reaching Inverse Kinematics , Π΄Π°Π»Π΅Π΅ просто FABRIK),
FABRIK ΠΈΠ·Π±Π΅Π³Π°Π΅Ρ‚ использования Π²Ρ€Π°Ρ‰Π΅Π½ΠΈΠΉ ΠΈ ΠΌΠ°Ρ‚Ρ€ΠΈΡ† Π² ΠΏΠΎΠ»ΡŒΠ·Ρƒ нСпосрСдствСнного получСния Ρ‚ΠΎΡ‡ΠΊΠΈ Π½Π° прямой. Благораря этому, Π΄Π΅Π»ΠΎ обходится всСго нСсколькими итСрациями, ΠΈΠΌΠ΅Π΅Ρ‚ Π½ΠΈΠ·ΠΊΡƒΡŽ ΡΡ‚ΠΎΠΈΠΌΠΎΡΡ‚ΡŒ вычислСний ΠΈ Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½ΠΎ Π΅ΡΡ‚Π΅ΡΡ‚Π²Π΅Π½Π½ΡƒΡŽ ΠΏΠΎΠ·Ρƒ Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅. FABRIK Ρ‚Π°ΠΊ-ΠΆΠ΅ Π±Π΅Π· ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ справляСтся с Π½Π°Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠΉ Π° Ρ‚Π°ΠΊ-ΠΆΠ΅ использованиСм Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… Ρ†Π΅ΠΏΠ΅ΠΉ ΠΈ/ΠΈΠ»ΠΈ ΠΊΠΎΠ½Π΅Ρ‡Π½Ρ‹Ρ… Ρ‚ΠΎΡ‡Π΅ΠΊ. ИмСнно ΠΎΠ± этом ΠΌΠ΅Ρ‚ΠΎΠ΄Π΅ этот пост.

ΠŸΡ€ΠΎΡˆΡƒ ΠΎΡ‚Π½Π΅ΡΡ‚ΠΈΡΡŒ с ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ΠΌ ΠΊ этой Π²Ρ‹ΠΆΠΈΠΌΠΊΠ΅, ΠΏΠΎΡ‚ΠΎΠΌΡƒ-Ρ‡Ρ‚ΠΎ ΠΎΡ€ΠΈΠ³ΠΈΠ½Π°Π» довольно большой, ΠΈΠΌΠ΅Π΅Ρ‚ ΠΌΠ½ΠΎΠ³ΠΎ Π²ΠΎΠ΄Ρ‹, умСстных ΠΈ нСумСстных ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π΅Π½ΠΈΠΉ ΠΈ отстранСний ΠΎΡ‚ Ρ‚Π΅ΠΌΡ‹, Π° Ρ‚Π°ΠΊ-ΠΆΠ΅ сравнСний с Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ°ΠΌΠΈ. Π­Ρ‚ΠΈΠΌ я Ρ€Π΅ΡˆΠΈΠ» всС-Ρ‚Π°ΠΊΠΈ ΠΏΡ€Π΅Π½Π΅Π±Ρ€Π΅Ρ‡ΡŒ, поэтому, Ρ‚ΡƒΡ‚ содСрТится лишь малая Ρ‡Π°ΡΡ‚ΡŒ тСкста, которая, ΠΎΠ΄Π½Π°ΠΊΠΎ, ΠΎΡ‚Ρ€Π°ΠΆΠ°Π΅Ρ‚ ΡΡƒΡ‚ΡŒ - ΠΏΡ€ΠΈΠΌ. ΠΏΠ΅Ρ€Π΅Π².

1. Π˜ΡΠΊΡƒΡΡΡ‚Π²Π΅Π½Π½Π°Ρ модСль Ρ‚Π΅Π»Π°

БистСма ΠΈΠ· мноТСства Ρ‚Π²Ρ‘Ρ€Π΄Ρ‹Ρ… Ρ‚Π΅Π» состоит ΠΈΠ· Π½Π°Π±ΠΎΡ€Π° Ρ‚Π²Ρ‘Ρ€Π΄Ρ‹Ρ… Ρ‚Π΅Π», Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΡ‹Ρ… ΡƒΠ·Π»Π°ΠΌΠΈ, соСдинёнными вмСстС Ρ€Ρ‘Π±Ρ€Π°ΠΌΠΈ. ВсС Ρ€Ρ‘Π±Ρ€Π° ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°ΠΌΠΈ concerned с Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΠ΅ΠΌ: ΠΎΠ½ΠΈ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΠ²Π°ΡŽΡ‚ пСрСмСщСния Π² ΠΏΡ€Π΅Π΄Π΅Π»Π°Ρ… Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ ΡƒΠ³Π»Π° ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ сосСдних Ρ€Ρ‘Π±Π΅Ρ€. ΠœΠΎΠ΄Π΅Π»ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ Ρ‚Π΅Π»Π° Π²Π°ΠΆΠ½ΠΎ для вычислСния ΠΏΠΎΠ·Ρ‹ Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊΠ°. МодСль с ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ расставлСнными ограничСниями ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Π½Π°Π±ΠΎΡ€ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹Ρ… ΠΏΠΎΠ·, Ρ‡Ρ‚ΠΎ даст Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Π±ΠΎΠ»Π΅Π΅ рСалистичноС Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΠ΅. Π‘ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ ΠΏΠΎΠ΄Ρ€Π°Π·ΡƒΠΌΠ΅Π²Π°ΡŽΡ‚ Ρ‚Π²Ρ‘Ρ€Π΄ΠΎΡΡ‚ΡŒ частСй Ρ‚Π΅Π»Π°, хотя это просто ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎΠ΅ ΠΏΡ€ΠΈΠ±Π»ΠΈΠΆΠ΅Π½ΠΈΠ΅ ΠΊ Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ.
Π‘ΠΊΠ΅Π»Π΅Ρ‚ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ смодСлирован Π² Π²ΠΈΠ΄Π΅ ΠΈΠ΅Ρ€Π°Ρ€Ρ…ΠΈΠΈ Ρ‚Π²Ρ‘Ρ€Π΄Ρ‹Ρ… сСгмСнтов соСдинённых Ρ€Ρ‘Π±Ρ€Π°ΠΌΠΈ, ΠΊΠ°ΠΆΠ΄ΠΎΠ΅ ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π·Π°Π΄Π°Π½ΠΎ Ρ‚Π°ΠΊΠΈΠΌΠΈ свойствами ΠΊΠ°ΠΊ Π΄Π»ΠΈΠ½Π½Π°, Ρ„ΠΎΡ€ΠΌΠ°, ΠΎΠ±ΡŒΡ‘ΠΌ ΠΈ масса. ΠœΠ°Π½ΠΈΠΏΡƒΠ»ΡΡ‚ΠΎΡ€, Π½Π° ΠΌΠ°Π½Π΅Ρ€ Ρ€ΠΎΠ±ΠΎ-Ρ€ΡƒΠΊΠΈ ΠΈΠ»ΠΈ Π°Π½ΠΈΠΌΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ пСрсонаТа, смодСлиован ΠΊΠ°ΠΊ Ρ†Π΅ΠΏΡŒ, собранная ΠΈΠ· Ρ‚Π²Ρ‘Ρ€Π΄Ρ‹Ρ… ΡƒΠ·Π»ΠΎΠ², сопряТСнных Π΄Ρ€ΡƒΠ³ с Π΄Ρ€ΡƒΠ³ΠΎΠΌ Ρ€Ρ‘Π±Ρ€Π°ΠΌΠΈ. КаТдоС ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π΅Π½ΠΈΠ΅ ΠΈ/ΠΈΠ»ΠΈ Π²Ρ€Π°Ρ‰Π΅Π½ΠΈΠ΅ кости с индСксом i влияСт Π½Π° всС ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ элСмСнты Ρ†Π΅ΠΏΠΈ. ЦСпь ΠΌΠΎΠΆΠ½ΠΎ Ρ„ΠΎΡ€ΠΌΠ°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ: всякий ΡƒΠ·Π΅Π» Π±Π΅Π· Π΄ΠΎΡ‡Π΅Ρ€Π½ΠΈΡ… элСмСнтов слСдуСт Π²Π΅Π»ΠΈΡ‡Π°Ρ‚ΡŒ ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΠΉ Ρ‚ΠΎΡ‡ΠΊΠΎΠΉ; для ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΠΉ Ρ‚ΠΎΡ‡ΠΊΠΈ Ρ†Π΅ΠΏΡŒ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ сформирована Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΠ΅ΠΌ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ ΠΏΠΎ скСлСту, ΠΎΡ‚ родитСля ΠΊ Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŽ Π΄ΠΎ Ρ‚Π΅Ρ… ΠΏΠΎΡ€, ΠΏΠΎΠΊΠ° Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ встрСчСн ΠΊΠΎΡ€Π½Π΅Π²ΠΎΠΉ ΡƒΠ·Π΅Π» Ρ†Π΅ΠΏΠΈ (Π½Π°Ρ‡Π°Π»ΠΎ Ρ†Π΅ΠΏΠΈ). По ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΡŽ, Π² Π·Π°Π΄Π°Ρ‡Π΅ IK прСдполагаСтся ΡΡ‚Π°Ρ‚ΠΈΡ‡Π½ΠΎΡΡ‚ΡŒ ΠΊΠΎΡ€Π½Π΅Π²ΠΎΠ³ΠΎ ΡƒΠ·Π»Π°. Однако, ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΡΠΏΡ€Π°Π²Π»ΡΡŽΡ‚ΡΡ с ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π΅Π½ΠΈΠ΅ΠΌ корня.

Алгоритм ΠΏΠΎΠ»Π½ΠΎΠ³ΠΎ Ρ†ΠΈΠΊΠ»Π° Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° FABRIK (псСвдокод, ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ элСмСнт массива ΠΏΠΎΠ΄ индСксом 1)

Π˜ΡΡ…ΠΎΠ΄Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅: массив ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΉ ΡƒΠ·Π»ΠΎΠ² p[i] с i = 1...n, цСлСвая позиция t ΠΈ значСния дистанций ΠΌΠ΅ΠΆΠ΄Ρƒ сопряТёнными ΡƒΠ·Π»Π°ΠΌΠΈ. d[i] = | p -t | for i = 1, ... , n-1 Π’Ρ‹Ρ…ΠΎΠ΄Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅: НовыС ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ p[i], i = 1...n //Дистанция ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΊΠΎΡ€Π½Π΅ΠΌ ΠΈ Ρ†Π΅Π»ΡŒΡŽ dist = | p - t | //ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡΠ΅ΠΌ Π΄ΠΎΡΡ‚ΠΈΠΆΠΈΠΌΠΎΡΡ‚ΡŒ Ρ†Π΅Π»ΠΈ if dist > d + d + ... + d { //Ρ†Π΅Π»ΡŒ нСдостиТима for i = 1, ..., n-1 do { //НайдСм Π΄ΠΈΡΡ‚Π°Π½Ρ†ΠΈΡŽ r[i] ΠΌΠ΅ΠΆΠ΄Ρƒ Ρ†Π΅Π»ΡŒΡŽ t ΠΈ ΡƒΠ·Π»ΠΎΠΌ p[i] r[i] = | t - p[i] | lambda[i] = d[i] / r[i] //Находим Π½ΠΎΠ²ΡƒΡŽ ΠΏΠΎΠ·ΠΈΡ†ΠΈΡŽ ΡƒΠ·Π»Π° p[i] p = (1 - lambda[i]) * p[i] + lambda[i] * t } } else { //Π”Π΅Π»ΡŒ достиТима; Ρ‚.ΠΎ. b Π±ΡƒΠ΄Π΅Ρ‚ Π½ΠΎΠ²ΠΎΠΉ ΠΏΠΎΠ·ΠΈΡ†ΠΈΠ΅ΠΉ ΡƒΠ·Π»Π° p b = p //ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡΠ΅ΠΌ, Π½Π΅ Π²Ρ‹ΡˆΠ΅ Π»ΠΈ дистанция ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΊΠΎΠ½Π΅Ρ‡Π½Ρ‹ΠΌ ΡƒΠ·Π»ΠΎΠΌ p[n] ΠΈ //Ρ†Π΅Π»Π΅Π²ΠΎΠΉ ΠΏΠΎΠ·ΠΈΡ†ΠΈΠ΅ΠΉ t значСния тСрпимости (tolerance) DIFa = | p[n] - t | while DIFa > tol do { //Π­Ρ‚Π°ΠΏ 1: прямоС слСдованиС //УстанавливаСм ΠΊΠΎΠ½Π΅Ρ‡Π½Ρ‹ΠΉ ΡƒΠ·Π΅Π» p[n] Π² качСствС Ρ†Π΅Π»ΠΈ (вСроятно, имСлось Π²Π²ΠΈΠ΄Ρƒ "ставим Π½Π° ΠΏΠΎΠ·ΠΈΡ†ΠΈΡŽ Ρ†Π΅Π»ΠΈ" - ΠΏΡ€ΠΈΠΌ. ΠΏΠ΅Ρ€Π΅Π².) p[n] = t for i=n -1 , ..., 1 do { //ΠŸΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌ расстояниС r[i] ΠΌΠ΅ΠΆΠ΄Ρƒ ΡƒΠ·Π»ΠΎΠΌ p[i] ΠΈ Π½ΠΎΠ²ΠΎΠΉ ΠΏΠΎΠ·ΠΈΡ†ΠΈΠ΅ΠΉ p r[i] = | p - p[i] | lambda[i] = d[i] / r[i] //ВычисляСм Π½ΠΎΠ²ΡƒΡŽ ΠΏΠΎΠ·ΠΈΡ†ΠΈΡŽ ΡƒΠ·Π»Π° p[i] p[i] = (1 - lambda[i]) * p + lambda[i] * p[i] } //Π­Ρ‚Π°ΠΏ 2: ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠ΅ слСдованиС //УстанавливаСм ΠΊΠΎΡ€Π½Π΅Π²ΠΎΠΌΡƒ элСмСнту p Π½Π°Ρ‡Π°Π»ΡŒΠ½ΡƒΡŽ ΠΏΠΎΠ·ΠΈΡ†ΠΈΡŽ p[i] = b for i=1 ,..., n - 1 do { //ΠŸΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌ Π΄ΠΈΡΡ‚Π°Π½Ρ†ΠΈΡŽ r[i] ΠΌΠ΅ΠΆΠ΄Ρƒ ΡƒΠ·Π»ΠΎΠΌ p ΠΈ ΠΏΠΎΠ·ΠΈΡ†ΠΈΠ΅ΠΉ p[i] r[i] = | p - p[i] | lambda[i] = d[i] / r[i] //ΠŸΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌ Π½ΠΎΠ²ΡƒΡŽ ΠΏΠΎΠ·ΠΈΡ†ΠΈΡŽ p[i] p = (1-lambda[i]) * p[i] + lambda[i] * p } DIFa = | p[n] - t | } }

2.FABRIK - Π½ΠΎΠ²ΠΎΠ΅ эвристичСскоС Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ Π·Π°Π΄Π°Ρ‡ΠΈ IK

Π’ этой части прСдоставляСтся ΡΡƒΡ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° FABRIK. Он ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ, ΡƒΠΆΠ΅ рассчитанныС Π² Ρ€Π΅ΠΆΠΈΠΌΠ°Ρ… прямого ΠΈ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠ³ΠΎ слСдования. FABRIK достигаСт ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ ошибки ΠΏΡƒΡ‚Ρ‘ΠΌ Π΅Π΄ΠΈΠ½ΠΎΡ€Π°Π·ΠΎΠ²ΠΎΠΉ подстройки ΡƒΠ³Π»Π° ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΡƒΠ·Π»Π°. Π’.Π΅. происходит ΠΎΠ±Ρ…ΠΎΠ΄ всСй Ρ†Π΅ΠΏΠΈ, начиная с послСднСго ΡƒΠ·Π»Π°, с подстройкой ΡƒΠ³Π»Π° ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΎΠ±ΠΎΠΉΠ΄Ρ‘Π½Π½ΠΎΠ³ΠΎ ΡƒΠ·Π»Π°, послС Ρ‡Π΅Π³ΠΎ, происходит ΠΎΠ±Ρ…ΠΎΠ΄ Ρ†Π΅ΠΏΠΈ ΡƒΠΆΠ΅ Π² ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠΌ Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠΈ. Π­Ρ‚ΠΎΡ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄, Π² ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ прСобразования Π²Ρ€Π°Ρ‰Π΅Π½ΠΈΠΉ, ΠΎΠ±Ρ€Π°Ρ‰Π°Π΅Ρ‚ Π·Π°Π΄Π°Ρ‡Ρƒ поиска ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ ΡƒΠ·Π»Π° Π² Π·Π°Π΄Π°Ρ‡Ρƒ поиска Ρ‚ΠΎΡ‡ΠΊΠΈ Π½Π° прямой; ΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, ΠΌΠΎΠΆΠ½ΠΎ ΡΡΠΊΠΎΠ½ΠΎΠΌΠΈΡ‚ΡŒ врСмя ΠΈ ΡƒΠΌΠ΅Π½ΡŒΡˆΠΈΡ‚ΡŒ количСство вычислСний. ΠŸΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ Ρ‡Ρ‚ΠΎ мноТСство p,…, p[n] являСтся мноТСством ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΉ ΡƒΠ·Π»ΠΎΠ² манипулятора. Π’Π°ΠΊΠΆΠ΅, ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ Ρ‡Ρ‚ΠΎ p являСтся ΠΊΠΎΡ€Π½Π΅Π²Ρ‹ΠΌ ΡƒΠ·Π»ΠΎΠΌ ΠΈ p[n] являСтся ΠΊΠΎΠ½Π΅Ρ‡Π½Ρ‹ΠΌ ΡƒΠ·Π»ΠΎΠΌ, Ρ‚.ΠΎ. для простоты оставим ΠΎΠ΄ΠΈΠ½ ΠΊΠΎΠ½Π΅Ρ‡Π½Ρ‹ΠΉ ΡƒΠ·Π΅Π». ЦСль прСдставлСна ΠΏΠΎΠ·ΠΈΡ†ΠΈΠ΅ΠΉ t ΠΈ Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠΉ Π±Π°Π·ΠΎΠ²ΠΎΠΉ ΠΏΠΎΠ·ΠΈΡ†ΠΈΠ΅ΠΉ b . ΠœΠ΅Ρ‚ΠΎΠ΄ FABRIK прСдставлСн Π² листингС Π²Ρ‹ΡˆΠ΅ ΠΈ графичСской ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ†ΠΈΠΈ ΠΏΠΎΠ»Π½ΠΎΠ³ΠΎ Ρ†ΠΈΠΊΠ»Π° Π½Π° рисункС слСва, с ΠΎΠ΄Π½ΠΎΠΉ Ρ†Π΅Π»Π΅Π²ΠΎΠΉ Ρ‚ΠΎΡ‡ΠΊΠΎΠΉ ΠΈ Ρ‡Π΅Ρ‚Ρ‹Ρ€ΡŒΠΌΡ ΡƒΠ·Π»Π°ΠΌΠΈ Π² Ρ†Π΅ΠΏΠΈ. Рассмотрим ΠΏΠΎΠ»Π½Ρ‹ΠΉ Ρ†ΠΈΠΊΠ» Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° Π½Π° рисункС:

  • a - ΠΠ°Ρ‡Π°Π»ΡŒΠ½Ρ‹Π΅ ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ манипулятора ΠΈ Ρ†Π΅Π»ΠΈ.
  • b - Π”Π²ΠΈΠ³Π°Π΅ΠΌ ΠΊΠΎΠ½Π΅Ρ‡Π½Ρ‹ΠΉ ΡƒΠ·Π΅Π» p ΠΊ Ρ†Π΅Π»ΠΈ.
  • c - ΠžΠ±Π½Π°Ρ€ΡƒΠΆΠΈΠ²Π°Π΅ΠΌ ΠΏΠΎΠ·ΠΈΡ†ΠΈΡŽ p" p" ΠΈ p , Π½Π° дистанции d ΠΎΡ‚ Ρ‚ΠΎΡ‡ΠΊΠΈ p" .
  • d - ΠŸΠΎΠ²Ρ‚ΠΎΡ€ΡΠ΅ΠΌ для всСх ΡƒΠ·Π»ΠΎΠ².
  • e - Вторая стадия Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ°: ΠΏΠ΅Ρ€Π΅Π΄Π²ΠΈΠ³Π°Π΅ΠΌ ΠΊΡ€Π½Π΅Π²ΠΎΠΉ элСмСнт с ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ p" Π½Π° Π΅Π³ΠΎ Π½Π°Ρ‡Π°Π»ΡŒΠ½ΡƒΡŽ ΠΏΠΎΠ·ΠΈΡ†ΠΈΡŽ.
  • f - ΠŸΠΎΠ²Ρ‚ΠΎΡ€ΡΠ΅ΠΌ для всСх ΡƒΠ·Π»ΠΎΠ², Π½ΠΎ Π½Π° этот Ρ€Π°Π· Π½Π°Ρ‡ΠΈΠ½Π°Π΅ΠΌ с Π±Π°Π·Ρ‹ ΠΈ двигаСмся ΠΊ ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΠΌΡƒ ΡƒΠ·Π»Ρƒ. Алгоритм повторяСтся Π΄ΠΎ Ρ‚Π΅Ρ… ΠΏΠΎΡ€, ΠΏΠΎΠΊΠ° позиция ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΠ³ΠΎ элСмСнта Π½Π΅ приблизится ΠΊ Ρ†Π΅Π»ΠΈ Π½Π° достаточноС расстояниС.

Π‘ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ:
Π‘Π½Π°Ρ‡Π°Π»Π° ΡΡ‡ΠΈΡ‚Π°ΡŽΡ‚ΡΡ ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ ΠΌΠ΅ΠΆΠ΄Ρƒ ΡƒΠ·Π»Π°ΠΌΠΈ (массив d ), послС Ρ‡Π΅Π³ΠΎ ΠΈΠ΄Ρ‘Ρ‚ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ°, достиТима Π»ΠΈ цСлСвая Ρ‚ΠΎΡ‡ΠΊΠ°; считаСтся расстояниС ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΊΠΎΡ€Π½Π΅Π²Ρ‹ΠΌ ΡƒΠ·Π»ΠΎΠΌ ΠΈ Ρ†Π΅Π»ΡŒΡŽ (dist ), ΠΈ Ссли эта дистанция мСньшС ΠΎΠ±Ρ‰Π΅ΠΉ суммы дистанций ΠΌΠ΅ΠΆΠ΄Ρƒ ΡƒΠ·Π»Π°ΠΌΠΈ, Ρ‚ΠΎ Ρ†Π΅Π»ΡŒ достиТима, ΠΈΠ½Π°Ρ‡Π΅ Π½Π΅Ρ‚. Если Ρ†Π΅Π»ΡŒ достиТима, ΠΏΠΎΠ»Π½Ρ‹ΠΉ Ρ†ΠΈΠΊΠ» ограничиваСтся двумя этапами. На ΠΏΠ΅Ρ€Π²ΠΎΠΌ этапС, Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ ΠΎΡ†Π΅Π½ΠΈΠ²Π°Π΅Ρ‚ Π½Π°Ρ‡Π°Π»ΡŒΠ½ΡƒΡŽ ΠΏΠΎΠ·ΠΈΡ†ΠΈΡŽ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΡƒΠ·Π»Π°, начиная с ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΠ³ΠΎ элСмСнта p[n] двигаясь ΠΊ Π±Π°Π·Π΅ манипулятора p . Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΠΌ Ρ†Π΅Π»Π΅Π²ΠΎΠΉ ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ Π±Ρ‹Ρ‚ΡŒ ΠΏΠΎΠ·ΠΈΡ†ΠΈΠ΅ΠΉ ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΠ³ΠΎ ΡƒΠ·Π»Π°, p"[n] = t . ΠŸΠΎΠ»ΡƒΡ‡ΠΈΠΌ ΠΏΡ€ΡΠΌΡƒΡŽ l , Π»Π΅ΠΆΠ°Ρ‰ΡƒΡŽ Π½Π° Ρ‚ΠΎΡ‡ΠΊΠ°Ρ… p ΠΈ p"[n] . Новая позиция ΡƒΠ·Π»Π° с индСксом n-1 , p" , Π»Π΅ΠΆΠΈΡ‚ Π½Π° этой Π»ΠΈΠ½ΠΈΠΈ Π½Π° дистанции d ΠΎΡ‚ p"[n] . Аналогично, новая позиция ΡƒΠ·Π»Π° с индСксом n-2 , p" , ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ вычислСна ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΏΡ€ΡΠΌΡƒΡŽ l , Π»Π΅ΠΆΠ°Ρ‰ΡƒΡŽ Π½Π° Ρ‚ΠΎΡ‡ΠΊΠ°Ρ… p ΠΈ p" Π½Π° дистанции d ΠΎΡ‚ p" . Алгоритм повторяСтся Π΄ΠΎ Ρ‚Π΅Ρ… ΠΏΠΎΡ€, ΠΏΠΎΠΊΠ° всС Π½Π΅ Π±ΡƒΠ΄ΡƒΡ‚ посчитаны Π½ΠΎΠ²Ρ‹Π΅ ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ для всСх ΡƒΠ·Π»ΠΎΠ², Π²ΠΊΠ»ΡŽΡ‡Π°Ρ ΠΊΠΎΠ½Π΅Ρ‡Π½Ρ‹ΠΉ. Π’ случаях, ΠΊΠΎΠ³Π΄Π° ΠΊΠΎΡ€Π½Π΅Π²ΠΎΠΉ элСмСнт пСрСмСщаСтся Π½Π° Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡƒΡŽ ΠΏΠΎΠ·ΠΈΡ†ΠΈΡŽ, FABRIK срабатываСт ΠΊΠ°ΠΊ Π±Ρ‹Π»ΠΎ описано, Ρ‚Π΅ΠΌ лишь ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ΠΌ, Ρ‡Ρ‚ΠΎ новая позиция p"" ΠΊΠΎΡ€Π½Π΅Π²ΠΎΠ³ΠΎ ΡƒΠ·Π»Π° Π±ΡƒΠ΄Π΅Ρ‚ ΠΆΠ΅Π»Π°Π΅ΠΌΠΎΠΉ ΠΏΠΎΠ·ΠΈΡ†ΠΈΠ΅ΠΉ, Π° Π½Π΅ Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠΉ.
ПослС ΠΎΠ΄Π½ΠΎΠΉ ΠΏΠΎΠ»Π½ΠΎΠΉ ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠΈ, ΠΏΠΎΡ‡Ρ‚ΠΈ Π²ΠΎ всСх случаях (ΠΏΠΎ наблюдСниям) ΠΊΠΎΠ½Π΅Ρ‡Π½Ρ‹ΠΉ ΡƒΠ·Π΅Π» приблизится ΠΊ Ρ†Π΅Π»ΠΈ. ΠŸΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π° повторСтся Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΠ΅ количСство Ρ€Π°Π·, Π΄ΠΎ Ρ‚Π΅Ρ… ΠΏΠΎΡ€, ΠΏΠΎΠΊΠ° ΠΊΠΎΠ½Π΅Ρ‡Π½Ρ‹ΠΉ ΡƒΠ·Π΅Π» Π½Π΅ ляТСт Π½Π° ΠΏΠΎΠ·ΠΈΡ†ΠΈΡŽ Ρ†Π΅Π»ΠΈ ΠΈΠ»ΠΈ Π½Π΅ приблизится ΠΊ Π½Π΅ΠΉ Π½Π° Π΄ΠΎΠΏΡƒΡΡ‚ΠΈΠΌΡƒΡŽ Π΄ΠΈΡΡ‚Π°Π½Ρ†ΠΈΡŽ. РСализация ΠΌΠ΅Ρ‚ΠΎΠ΄Π° FABRIK Π±Π΅Π· ввСдСния ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΡ‚Π΅Π»Π΅ΠΉ сойдётся Π½Π° любой Ρ†Π΅Π»Π΅Π²ΠΎΠΉ Ρ‚ΠΎΡ‡ΠΊΠ΅/Ρ†Π΅ΠΏΠΈ, Ссли Ρ†Π΅Π»ΡŒ достиТима. Однако, Ссли Ρ†Π΅Π»ΡŒ находится дальшС достанции, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹Ρ‚ΡΠ½ΡƒΡ‚ΡŒΡΡ Ρ†Π΅ΠΏΡŒ, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€Π΅Ρ€Ρ‹Π²Π°ΡŽΡ‰Π΅Π΅ условиС, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ сравнит ΠΏΡ€ΠΎΡˆΠ»ΡƒΡŽ ΠΈ Ρ‚Π΅ΠΊΡƒΡ‰ΡƒΡŽ ΠΏΠΎΠ·ΠΈΡ†ΠΈΡŽ ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΠ³ΠΎ ΡƒΠ·Π»Π°, ΠΈ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΏΡ€Π΅ΠΊΡ€Π°Ρ‚ΠΈΡ‚ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° Ссли смСщСниС ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΠ³ΠΎ ΡƒΠ·Π»Π° Π±ΡƒΠ΄Π΅Ρ‚ мСньшС Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ значСния (эпсилона). Π’Π°ΠΊ-ΠΆΠ΅, Π² особых случаях, Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ прСрываСтся ΠΏΠΎ ΠΈΡΡ‚Π΅Ρ‡Π΅Π½ΠΈΡŽ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ числа ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠΉ (Π²ΠΏΡ€ΠΎΡ‡Π΅ΠΌ, ΠΏΠΎΠΊΠ°-Ρ‡Ρ‚ΠΎ такая ситуация Π½Π΅ Π±Ρ‹Π»Π° встрСчСна).
Для Π±ΠΎΠ»Π΅Π΅ быстрого Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π° ΠΈ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Π² нСсколько ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠΉ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Π° оптимизация с ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ΠΌ ΠšΠΎΠ½Ρ„ΠΎΡ€ΠΌΠ½ΠΎΠΉ ГСомСтричСской АлгСбры (Conformal Geometric Algebra, Π΄Π°Π»Π΅Π΅ CGA); CGA ΠΈΠΌΠ΅Π΅Ρ‚ прСимущСство Π½Π° Π±Π°Π·ΠΎΠ²Ρ‹Ρ… Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ…, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ сфСры, прямыС, плоскости ΠΈ окруТности, достаточно просто ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅ΠΌΡ‹Π΅ алгСбраичСскими ΠΎΠ±ΡŒΠ΅ΠΊΡ‚Π°ΠΌΠΈ. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ, поиск ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ ΡƒΠ·Π»Π°, находящСгося ΠΌΠ΅ΠΆΠ΄Ρƒ двумя извСстными ΡƒΠ·Π»Π°ΠΌΠΈ, ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ пСрСсСчСниСм Π΄Π²ΡƒΡ… сфСр с Ρ†Π΅Π½Ρ‚Ρ€Π°ΠΌΠΈ Π½Π° ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… этим ΡƒΠ·Π»Π°ΠΌ позициям, ΠΈ радиусом, Ρ€Π°Π²Π½Ρ‹ΠΌ Ρ€Π°ΡΡΡ‚ΠΎΡΠ½ΠΈΡŽ ΠΌΠ΅ΠΆΠ΄Ρƒ позициям искомого ΡƒΠ·Π»Π° ΠΈ ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΠΌΠΈΡΡ; новая позиция ΡƒΠ·Π»Π° Π±ΡƒΠ΄Π΅Ρ‚ Π»Π΅ΠΆΠ°Ρ‚ΡŒ Π½Π° блиТайшСй Ρ‚ΠΎΡ‡ΠΊΠ΅ окруТности, сформированной пСрСсСчСниСм Π΄Π²ΡƒΡ… сфСр. Другая простая оптимизация Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² прямом построСнии прямой Π² Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠΈ Ρ†Π΅Π»ΠΈ, ΠΊΠΎΠ³Π΄Π° послСдняя нСдоступна.

3. МодСль с мноТСством ΠΊΠΎΠ½Π΅Ρ‡Π½Ρ‹Ρ… ΡƒΠ·Π»ΠΎΠ²


Как ΠΈ Π² случаС с ΠΎΠ΄Π½ΠΈΠΌ ΠΊΠΎΠ½Π΅Ρ‡Π½Ρ‹ΠΌ ΡƒΠ·Π»ΠΎΠΌ, Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ разбиваСтся Π½Π° Π΄Π²Π° этапа:

  • ΠŸΠ΅Ρ€Π²Ρ‹ΠΉ этап Ρ‚ΠΎΡ‡Π½ΠΎ Ρ‚Π°ΠΊΠΎΠΉ-ΠΆΠ΅, Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π° этот Ρ€Π°Π· начинаСтся ΠΎΡ‚ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΠ³ΠΎ ΡƒΠ·Π»Π° с Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΠ΅ΠΌ Π²Π½ΡƒΡ‚Ρ€ΡŒ ΠΏΠΎ Ρ†Π΅ΠΏΠΈ ΠΎΡ‚ этого ΡƒΠ·Π»Π°, Π²ΠΏΠ»ΠΎΡ‚ΡŒ Π΄ΠΎ суб-Π±Π°Π·Ρ‹ (вСроятно, суб-Π±Π°Π·ΠΎΠΉ являСтся ΡƒΠ·Π΅Π» с нСсколькими ΠΏΡ€ΠΈΠΌΡ‹ΠΊΠ°ΡŽΡ‰ΠΈΠΌΠΈ ΠΊ Π½Π΅ΠΌΡƒ Ρ€Ρ‘Π±Ρ€Π°ΠΌΠΈ - ΠΏΡ€ΠΈΠΌ. ΠΏΠ΅Ρ€Π΅Π².). Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠΌ ΡΡ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ€Π°Π·Π½Ρ‹Ρ… ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΉ для суб-Π±Π°Π·Ρ‹, сколько соСдинённых с Π½Π΅ΠΉ ΠΊΠΎΠ½Π΅Ρ‡Π½Ρ‹Ρ… ΡƒΠ·Π»ΠΎΠ² Ρƒ нас имССтся. Π˜Ρ‚ΠΎΠ³ΠΎΠ²Π°Ρ ΠΆΠ΅ позиция ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ взята ΠΊΠ°ΠΊ Ρ†Π΅Π½Ρ‚Ρ€ΠΎΠΈΠ΄ (Ρ‚ΠΎΠ±ΠΈΡˆ, просто срСднСС арифмСтичСскоС - ΠΏΡ€ΠΈΠΌ. ΠΏΠ΅Ρ€Π΅Π².) ΠΈΠ· этих ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΉ. ПослС этого, Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° продолТаСтся Π² Π½ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎΠΌ Ρ€Π΅ΠΆΠΈΠΌΠ΅, двигаясь ΠΎΡ‚ суб-Π±Π°Π·Ρ‹ Π΄ΠΎ корня. Если суб-Π±Π°Π·Ρ‹ ΠΈΠΌΠ΅ΡŽΡ‚ собствСнныС суб-Π±Π°Π·Ρ‹, Ρ‚ΠΎ ΠΏΠΎ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΡŽ ΠΊ Π½ΠΈΠΌ производятся Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½Ρ‹Π΅ дСйствия - Ρ‚Π°ΠΊ-ΠΆΠ΅ составляСтся список Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Ρ… ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΉ, послС Ρ‡Π΅Π³ΠΎ эта суб-Π±Π°Π·Π° устанавливаСтся Π½Π° Ρ†Π΅Π½Ρ‚Ρ€ΠΎΠΈΠ΄ ΠΈΠ· всСго списка ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΉ.
  • На Π²Ρ‚ΠΎΡ€ΠΎΠΌ этапС, ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΉ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ примСняСтся ΠΊ ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡƒ ΡƒΠ·Π»Ρƒ, двигаясь всё дальшС ΠΎΡ‚ ΠΊΠΎΡ€Π½Π΅Π²ΠΎΠ³ΠΎ ΡƒΠ·Π»Π°. ΠŸΡ€ΠΈ этом, каТдая Ρ†Π΅ΠΏΡŒ Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Ρ‚ΡŒ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π°Π½Π° ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎ Π²ΠΏΠ»ΠΎΡ‚ΡŒ Π΄ΠΎ ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΠ³ΠΎ ΡƒΠ·Π»Π°: Ρ‡Π΅ΠΌ большС суб-Π±Π°Π·, Ρ‚Π΅ΠΌ большС ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π΅Π½ΠΈΠΉ для ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΈΠ· Π½ΠΈΡ…. ΠŸΡ€ΠΎΡ†Π΅ΡΡ повторяСтся Π΄ΠΎ Ρ‚Π΅Ρ… ΠΏΠΎΡ€, ΠΏΠΎΠΊΠ° ΠΊΠΎΠ½Π΅Ρ‡Π½Ρ‹Π΅ ΡƒΠ·Π»Ρ‹ Π½Π΅ достигнут своСй Ρ†Π΅Π»ΠΈ ΠΈΠ»ΠΈ ΠΏΠΎΠΊΠ° Π½Π΅ сработаСт условиС прСрывания.

4. ΠžΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΡ‚Π΅Π»ΠΈ

Ну ΠΈ Π½Π°ΠΊΠΎΠ½Π΅Ρ†, самая вкусная Ρ‡Π°ΡΡ‚ΡŒ этой ΡΡ‚Π°Ρ‚ΡŒΠΈ - рассчёты с ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ΠΌ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΡ‚Π΅Π»Π΅ΠΉ. НуТны ΠΎΠ½ΠΈ, ΠΊΠ°ΠΊ ΡƒΠΆΠ΅ стоило Π΄ΠΎΠ³Π°Π΄Π°Ρ‚ΡŒΡΡ, для большСго сходства с Ρ€Π΅Π°Π»ΡŒΠ½Ρ‹ΠΌΠΈ ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΌΠ°ΠΌΠΈ. Π‘Π°ΠΌ ΠΆΠ΅ ΡƒΠ·Π΅Π», ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ, характСризуСтся трСмя стСпСнями свободы. Π’Ρ€Π°Ρ‰Π΅Π½ΠΈΠ΅ ΡƒΠ·Π»Π° ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Ρ…Π°Ρ€Π°ΠΊΡ‚Π΅Ρ€ΠΈΠ·ΠΎΠ²Π°Π½ΠΎ ΠΊΠ°ΠΊ «простоС Π²Ρ€Π°Ρ‰Π΅Π½ΠΈΠ΅Β» (2 стСпСни свободы), ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΎΡ‚Ρ€Π°ΠΆΠ°Π΅Ρ‚ Π΅Π³ΠΎ ΠΊΠΎΠ½Π΅Ρ‡Π½ΡƒΡŽ ΠΏΠΎΠ·ΠΈΡ†ΠΈΡŽ, ΠΈ Π²Ρ€Π°Ρ‰Π΅Π½ΠΈΠ΅ Π²ΠΎΠΊΡ€ΡƒΠ³ собствСнной оси (1 ΡΡ‚Π΅ΠΏΠ΅Π½ΡŒ свободы). Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Ρ€Π°Π·Π΄Π΅Π»ΠΈΠ² ΠΏΠ΅Ρ€Π΅Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΠ΅ ΡƒΠ·Π»Π° Π½Π° Π΄Π²Π΅ Ρ‚Π°ΠΊΠΈΠ΅ Ρ„Π°Π·Ρ‹, ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΠ² ΠΊ Π½ΠΈΠΌ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΡ‚Π΅Π»ΠΈ, ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ ΡƒΠ·Π»Π°. Π‘Π°ΠΌΠΈ ΠΆΠ΅ ограничСния ΠΌΠΎΠΆΠ½ΠΎ Π½Π°Π»ΠΎΠΆΠΈΡ‚ΡŒ ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹ΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ: Ρ‚.ΠΊ. Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΠΈΠ²Π½Ρ‹ΠΉ, ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ ограничСния Π²Ρ€Π°Ρ‰Π΅Π½ΠΈΠΉ Π½Π° ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠΈ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ°. ΠžΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΡ‚Π΅Π»ΠΈ, ΠΏΡ€ΠΈ этом, Π½Π΅ ΠΏΠΎΠ²Π»ΠΈΡΡŽΡ‚ Π½Π° ΡΡ…ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ°. Основная ΠΆΠ΅ идСя примСнСния ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΡ‚Π΅Π»Π΅ΠΉ Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈΠΎΠ½ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ ΠΈ ΠΏΠ΅Ρ€Π΅ΠΎΡ€ΠΈΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ ΡƒΠ·Π»ΠΎΠ² Π² ΠΏΡ€Π΅Π΄Π΅Π»Π°Ρ… ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠΉ.

  • a - ΠΠ°Ρ‡Π°Π»ΡŒΠ½Ρ‹Π΅ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ манипулятора ΠΈ Ρ†Π΅Π»ΠΈ.
  • b - Π”Π²ΠΈΠ³Π°Π΅ΠΌ ΠΊΠΎΠ½Π΅Ρ‡Π½Ρ‹ΠΉ ΡƒΠ·Π΅Π» p ΠΊ Ρ†Π΅Π»ΠΈ ΠΈ ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΡƒΠ΅ΠΌ Π΅Π³ΠΎ Π½Π° Π½Π΅Ρ‘.
  • c - ΠžΠ±Π½Π°Ρ€ΡƒΠΆΠΈΠ²Π°Π΅ΠΌ ΠΏΠΎΠ·ΠΈΡ†ΠΈΡŽ p" , Π»Π΅ΠΆΠ°Ρ‰ΡƒΡŽ Π½Π° Π»ΠΈΠ½ΠΈΠΈ ΠΌΠ΅ΠΆΠ΄Ρƒ позициями p" ΠΈ p , Π½Π° дистанции d ΠΎΡ‚ Ρ‚ΠΎΡ‡ΠΊΠΈ p" .
  • d - ΠŸΠ΅Ρ€Π΅ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΡƒΠ΅ΠΌ ΡƒΠ·Π΅Π» Π½Π° ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ p" Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ½ смотрСл вдоль Ρ€Π΅Π±Ρ€Π°, ΡΠΎΠ΅Π΄ΠΈΠ½ΡΡŽΡ‰Π΅Π³ΠΎ p" ΠΈ p" .
  • e - ВычислСниС ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΠ²Π°ΡŽΡ‰Π΅Π³ΠΎ эллипса: Ρ€Π°Π·Ρ€Π΅ΡˆΡ‘Π½Π½Ρ‹Π΅ ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ находятся Π² Π·Π°Ρ‚Π΅Π½Ρ‘Π½Π½ΠΎΠΌ участкС. Ни ΠΎΠ΄Π½Π° ΠΈΠ· Π²Π΅Ρ€ΡˆΠΈΠ½ Π½Π° этом этапС Π½ΠΈΠΊΡƒΠ΄Π° Π½Π΅ двигаСтся.
  • f - Π£Π·Π΅Π» p пСрСмСщаСтся Π½Π° ΠΏΠΎΠ·ΠΈΡ†ΠΈΡŽ p^ , ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ являСтся блиТайшСй ΠΏΠΎΠ·ΠΈΡ†ΠΈΠ΅ΠΉ Π½Π° Π·Π°Ρ‚Π΅Π½Ρ‘Π½Π½ΠΎΠΌ эллипсС, ΡƒΠ΄ΠΎΡΡ‚ΠΎΠ²Π΅Ρ€ΡΡΡΡŒ Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ новая позиция p^ Π±ΡƒΠ΄Π΅Ρ‚ Π»Π΅ΠΆΠ°Ρ‚ΡŒ Π² допустимых ΠΏΡ€Π΅Π΄Π΅Π»Π°Ρ….
  • g - Π”Π²ΠΈΠ³Π°Π΅ΠΌ ΡƒΠ·Π΅Π» p^ Π½Π° Ρ‚ΠΎΡ‡ΠΊΡƒ p" , Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Π΄Π»ΠΈΠ½Π½Ρƒ Ρ€Π΅Π±Ρ€Π°.
  • h - ΠŸΠ΅Ρ€Π΅ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΡƒΠ΅ΠΌ p" , Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ΄ΠΎΠ²Π»Π΅Ρ‚Π²ΠΎΡ€ΠΈΡ‚ΡŒ ΠΎΠ³Ρ€Π°Π½ΠΈΠ΅Π½ΠΈΠ΅ ΠΎΡ€ΠΈΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ.

Π­Ρ‚Π° ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π° повторяСтся для всСх ΡƒΠ·Π»ΠΎΠ², Π² прямом ΠΈ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠΌ порядкС, Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½ΠΎ Ρ‚ΠΎΠΌΡƒ, ΠΊΠ°ΠΊ Π² Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π΅ Π±Π΅Π· ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠΉ ΠΎΡΡƒΡ‰Π΅ΡΡ‚Π²Π»ΡΠ»ΠΈΡΡŒ пСрСмСщСния. ΠŸΡ€ΠΈ этом, ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅ «эллипс», вСроятно, являСтся характСристикой Ρ€Π΅Π±Ρ€Π°, Π° Π½Π΅ ΡƒΠ·Π»Π°, Ρ‚.ΠΎ. Π½Π° Π²Ρ‚ΠΎΡ€ΠΎΠΉ Ρ„Π°Π·Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π°Ρ‚ΡŒΡΡ Π½Π° эллипс Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡƒΠ·Π΅Π» p - ΠΏΡ€ΠΈΠΌ. ΠΏΠ΅Ρ€Π΅Π².

Π“Ρ€Π°Π΄ΠΈΠ΅Π½Ρ‚Π½Ρ‹ΠΉ спуск

ΠŸΡ€ΠΎΡΡ‚Π΅ΠΉΡˆΠΈΠΉ способ Ρ€Π°Π·ΠΎΠ±Ρ€Π°Ρ‚ΡŒΡΡ Π² Ρ€Π°Π±ΠΎΡ‚Π΅ Π³Ρ€Π°Π΄ΠΈΠ΅Π½Ρ‚Π½ΠΎΠ³ΠΎ спуска - ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ холмистый Ρ€Π΅Π»ΡŒΠ΅Ρ„. ΠœΡ‹ находимся Π² случайном мСстС ΠΈ Ρ…ΠΎΡ‚ΠΈΠΌ Π΄ΠΎΡΡ‚ΠΈΠ³Π½ΡƒΡ‚ΡŒ самой Π½ΠΈΠ·ΠΊΠΎΠΉ Ρ‚ΠΎΡ‡ΠΊΠΈ. Назовём Π΅Ρ‘ ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌΠΎΠΌ Ρ€Π΅Π»ΡŒΠ΅Ρ„Π°. На ΠΊΠ°ΠΆΠ΄ΠΎΠΌ шагС Π³Ρ€Π°Π΄ΠΈΠ΅Π½Ρ‚Π½Ρ‹ΠΉ спуск Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ Π½Π°ΠΌ Π΄Π²ΠΈΠ³Π°Ρ‚ΡŒΡΡ Π² Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠΈ, ΡΠ½ΠΈΠΆΠ°ΡŽΡ‰Π΅ΠΌ Π½Π°ΡˆΡƒ высоту. Если гСомСтрия Ρ€Π΅Π»ΡŒΠ΅Ρ„Π° ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ проста , Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ ΠΏΡ€ΠΈΠ²Π΅Π΄Ρ‘Ρ‚ нас ΠΊ самому Π½ΠΈΠ·Ρƒ Π΄ΠΎΠ»ΠΈΠ½Ρ‹.

На Π³Ρ€Π°Ρ„ΠΈΠΊΠ΅ Π½ΠΈΠΆΠ΅ ΠΏΠΎΠΊΠ°Π·Π°Π½ стандартный случай, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Π³Ρ€Π°Π΄ΠΈΠ΅Π½Ρ‚Π½Ρ‹ΠΉ спуск Π±ΡƒΠ΄Π΅Ρ‚ ΡƒΡΠΏΠ΅ΡˆΠ½Ρ‹ΠΌ. Π’ этом ΠΏΡ€ΠΎΡΡ‚Π΅ΠΉΡˆΠ΅ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ Ρƒ нас Π΅ΡΡ‚ΡŒ функция. Она ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ ΠΎΠ΄ΠΈΠ½ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ (ось X) ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ошибки (ось Y). ΠœΡ‹ Π½Π°Ρ‡ΠΈΠ½Π°Π΅ΠΌ со случайной Ρ‚ΠΎΡ‡ΠΊΠΈ Π½Π° оси X (синяя ΠΈ зСлёная Ρ‚ΠΎΡ‡ΠΊΠΈ). Π“Ρ€Π°Π΄ΠΈΠ΅Π½Ρ‚Π½Ρ‹ΠΉ спуск Π΄ΠΎΠ»ΠΆΠ΅Π½ Π·Π°ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ нас Π΄Π²ΠΈΠ³Π°Ρ‚ΡŒΡΡ Π² Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠΈ ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌΠ° (синяя ΠΈ зСлёная стрСлки).

Если ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ ΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Π½Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ Π² Ρ†Π΅Π»ΠΎΠΌ, Ρ‚ΠΎ Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ двиТСния ΠΎΡ‡Π΅Π²ΠΈΠ΄Π½ΠΎ. К соТалСнию, Π³Ρ€Π°Π΄ΠΈΠ΅Π½Ρ‚Π½Ρ‹ΠΉ спуск Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ‚ Π·Π°Ρ€Π°Π½Π΅Π΅ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΎ Ρ‚ΠΎΠΌ, Π³Π΄Π΅ находится ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌ. Π›ΡƒΡ‡ΡˆΠ΅ΠΉ Π΄ΠΎΠ³Π°Π΄ΠΊΠΎΠΉ, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΌΠΎΠΆΠ΅Ρ‚ Π΄ΠΎΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ, станСт Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΠ΅ ΠΏΠΎ Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΡŽ ΠΊ склону, Ρ‚Π°ΠΊΠΆΠ΅ Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΠΎΠΌ Π³Ρ€Π°Π΄ΠΈΠ΅Π½Ρ‚ΠΎΠΌ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ. Если Π²Ρ‹ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚Π΅ΡΡŒ Π½Π° Π³ΠΎΡ€Π΅, отпуститС мяч, ΠΈ ΠΎΠ½ сам достигнСт Π΄ΠΎΠ»ΠΈΠ½Ρ‹. На Π³Ρ€Π°Ρ„ΠΈΠΊΠ΅ Π½ΠΈΠΆΠ΅ ΠΏΠΎΠΊΠ°Π·Π°Π½ Π³Ρ€Π°Π΄ΠΈΠ΅Π½Ρ‚ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ошибок Π² Π΄Π²ΡƒΡ… Ρ€Π°Π·Π½Ρ‹Ρ… Ρ‚ΠΎΡ‡ΠΊΠ°Ρ….

Насколько Ρ…ΠΎΡ€ΠΎΡˆΠΎ выглядит Ρ€Π΅Π»ΡŒΠ΅Ρ„?

Π§Ρ‚ΠΎΠ±Ρ‹ Π³Ρ€Π°Π΄ΠΈΠ΅Π½Ρ‚Π½Ρ‹ΠΉ спуск Π±Ρ‹Π» эффСктивным, минимизируСмая Π½Π°ΠΌΠΈ функция Π΄ΠΎΠ»ΠΆΠ½Π° ΡƒΠ΄ΠΎΠ²Π»Π΅Ρ‚Π²ΠΎΡ€ΡΡ‚ΡŒ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½Ρ‹ΠΌ трСбованиям. Если Ρ€Π΅Π»ΡŒΠ΅Ρ„ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΏΠ»Π°Π²Π½Ρ‹ΠΉ, Ρ‚ΠΎ Π²Π΅Ρ€ΠΎΡΡ‚Π½ΠΎΡΡ‚ΡŒ ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎΠ³ΠΎ примСнСния Π³Ρ€Π°Π΄ΠΈΠ΅Π½Ρ‚Π½ΠΎΠ³ΠΎ спуска Π²Ρ‹ΡˆΠ΅. Если Ρƒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π΅ΡΡ‚ΡŒ Ρ€Π°Π·Ρ€Ρ‹Π²Ρ‹ ΠΈΠ»ΠΈ мноТСство максимумов, Ρ‚ΠΎ это особСнно слоТно, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ для достиТСния Π΄Π½Π° Π΄ΠΎΠ»ΠΈΠ½Ρ‹ потрСбуСтся Π³ΠΎΡ€Π°Π·Π΄ΠΎ Π±ΠΎΠ»Π΅Π΅ Π΄ΠΎΠ»Π³ΠΎΠ΅ ΠΏΡƒΡ‚Π΅ΡˆΠ΅ΡΡ‚Π²ΠΈΠ΅.

Π’ΠΎΡ‚ ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ Ρ€Π΅Π»ΡŒΠ΅Ρ„ для Ρ€ΠΎΠ±ΠΎΡ‚Π°-манипулятора с двумя соСдинСниями (управляСмыми ΠΈ ):


ΠžΡ†Π΅Π½ΠΊΠ° Π³Ρ€Π°Π΄ΠΈΠ΅Π½Ρ‚Π°

Если Π²Ρ‹ ΠΈΠ·ΡƒΡ‡Π°Π»ΠΈ матСматичСский Π°Π½Π°Π»ΠΈΠ·, Ρ‚ΠΎ, Π½Π°Π²Π΅Ρ€Π½ΠΎ, Π·Π½Π°Π΅Ρ‚Π΅, Ρ‡Ρ‚ΠΎ Π³Ρ€Π°Π΄ΠΈΠ΅Π½Ρ‚ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ нСпосрСдствСнно связан с Π΅Ρ‘ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄Π½ΠΎΠΉ . Однако для вычислСния ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄Π½ΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ½Π° удовлСтворяла ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½Ρ‹ΠΌ матСматичСским свойствам, ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ этого трСбования для любой ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ Π² ΠΎΠ±Ρ‰Π΅ΠΌ случаС Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ. Π‘ΠΎΠ»Π΅Π΅ Ρ‚ΠΎΠ³ΠΎ, для аналитичСского взятия ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄Π½ΠΎΠΉ Π½ΡƒΠΆΠ½ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ функция ошибок Π±Ρ‹Π»Π° прСдставлСна Π² аналитичСском Π²ΠΈΠ΄Π΅. И Ρƒ нас Π½Π΅ всСгда Π΅ΡΡ‚ΡŒ аналитичСский Π²ΠΈΠ΄ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π½ΡƒΠΆΠ½ΠΎ ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ.

Π’ΠΎ всСх Ρ‚Π°ΠΊΠΈΡ… случаях Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ ΠΈΡΡ‚ΠΈΠ½Π½ΡƒΡŽ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄Π½ΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ. РСшСниСм являСтся ΠΏΡ€ΠΈΠ±Π»ΠΈΠ·ΠΈΡ‚Π΅Π»ΡŒΠ½Π°Ρ ΠΎΡ†Π΅Π½ΠΊΠ° Π΅Ρ‘ значСния. На Π³Ρ€Π°Ρ„ΠΈΠΊΠ΅ Π½ΠΈΠΆΠ΅ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ, ΠΊΠ°ΠΊ ΠΎΠ½Π° находится Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΈΠ·ΠΌΠ΅Ρ€Π΅Π½ΠΈΠΈ. ДискрСтной Π²Ρ‹Π±ΠΎΡ€ΠΊΠΎΠΉ Π±Π»ΠΈΠ·Π»Π΅ΠΆΠ°Ρ‰ΠΈΡ… Ρ‚ΠΎΡ‡Π΅ΠΊ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΈΠ±Π»ΠΈΠ·ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ Π³Ρ€Π°Π΄ΠΈΠ΅Π½Ρ‚ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ. Если функция ошибок мСньшС слСва, Ρ‚ΠΎ ΠΌΡ‹ двигаСмся Π²Π»Π΅Π²ΠΎ, Ссли справа - Ρ‚ΠΎ Π²ΠΏΡ€Π°Π²ΠΎ.

Π’ Ρ‡Ρ‘ΠΌ Ρ€Π°Π·Π½ΠΈΡ†Π° ΠΌΠ΅ΠΆΠ΄Ρƒ Π³Ρ€Π°Π΄ΠΈΠ΅Π½Ρ‚ΠΎΠΌ ΠΈ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄Π½ΠΎΠΉ?

ΠŸΠΎΠ½ΡΡ‚ΠΈΡ Π³Ρ€Π°Π΄ΠΈΠ΅Π½Ρ‚Π° ΠΈ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½ΠΎΠΉ тСсно связаны.

Π“Ρ€Π°Π΄ΠΈΠ΅Π½Ρ‚ ΠΈΠ»ΠΈ косая производная Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ - это Π²Π΅ΠΊΡ‚ΠΎΡ€, ΡƒΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‰ΠΈΠΉ Π² Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠΈ Π½Π°ΠΈΡΠΊΠΎΡ€Π΅ΠΉΡˆΠ΅Π³ΠΎ ΠΏΠΎΠ΄ΡŠΡ‘ΠΌΠ°. Π’ случаС ΠΎΠ΄Π½ΠΎΠΌΠ΅Ρ€Π½Ρ‹Ρ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ (ΠΊΠ°ΠΊ Π½Π° Π½Π°ΡˆΠΈΡ… Π³Ρ€Π°Ρ„ΠΈΠΊΠ°Ρ…) Π³Ρ€Π°Π΄ΠΈΠ΅Π½Ρ‚ Ρ€Π°Π²Π΅Π½ ΠΈΠ»ΠΈ , Ссли функция ΠΈΠ΄Ρ‘Ρ‚ Π²Π²Π΅Ρ€Ρ…, ΠΈΠ»ΠΈ , Ссли функция ΠΈΠ΄Ρ‘Ρ‚ Π²Π½ΠΈΠ·. Если функция ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π° Ρ‡Π΅Ρ€Π΅Π· Π΄Π²Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Ρ€ΠΎΠ±ΠΎΡ‚-манипулятор с двумя соСдинСниями), Ρ‚ΠΎ Π³Ρ€Π°Π΄ΠΈΠ΅Π½Ρ‚ являСтся «стрСлкой» (Π΅Π΄ΠΈΠ½ΠΈΡ‡Π½Ρ‹ΠΌ Π²Π΅ΠΊΡ‚ΠΎΡ€ΠΎΠΌ ) Π΄Π²ΡƒΡ… элСмСнтов, Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½Π½Ρ‹ΠΌ Π² сторону Π½Π°ΠΈΡΠΊΠΎΡ€Π΅ΠΉΡˆΠ΅Π³ΠΎ ΠΏΠΎΠ΄ΡŠΡ‘ΠΌΠ°.

ΠŸΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄Π½Π°Ρ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, Π² ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ Π³Ρ€Π°Π΄ΠΈΠ΅Π½Ρ‚Π° - это просто число, ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‰Π΅Π΅ ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ ΠΏΠΎΠ΄ΡŠΡ‘ΠΌΠ° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΏΡ€ΠΈ Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΠΈ Π² Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠΈ Π³Ρ€Π°Π΄ΠΈΠ΅Π½Ρ‚Π°.

Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΌΡ‹ Π½Π΅ Π±ΡƒΠ΄Π΅ΠΌ ΡΡ‚Ρ€Π΅ΠΌΠΈΡ‚ΡŒΡΡ Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚ΡŒ настоящий Π³Ρ€Π°Π΄ΠΈΠ΅Π½Ρ‚ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ. ВмСсто этого ΠΌΡ‹ создадим ΠΎΡ†Π΅Π½ΠΊΡƒ. Наш ΠΏΡ€ΠΈΠ±Π»ΠΈΠ·ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ Π³Ρ€Π°Π΄ΠΈΠ΅Π½Ρ‚ - это Π²Π΅ΠΊΡ‚ΠΎΡ€, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ, ΠΊΠ°ΠΊ ΠΌΡ‹ надССмся, ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π² Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠΈ Π½Π°ΠΈΡΠΊΠΎΡ€Π΅ΠΉΡˆΠ΅Π³ΠΎ ΠΏΠΎΠ΄ΡŠΡ‘ΠΌΠ°. Как ΠΌΡ‹ ΡƒΠ²ΠΈΠ΄ΠΈΠΌ, это Π½Π΅ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ Π΅Π΄ΠΈΠ½ΠΈΡ‡Π½Ρ‹ΠΉ Π²Π΅ΠΊΡ‚ΠΎΡ€.


Насколько Π²Π°ΠΆΠ½ΠΎ созданиС Π²Ρ‹Π±ΠΎΡ€ΠΊΠΈ?

Оно ΠΎΡ‡Π΅Π½ΡŒ Π²Π°ΠΆΠ½ΠΎ. Π’Ρ‹Π±ΠΎΡ€ΠΊΠ° Π±Π»ΠΈΠ·Π»Π΅ΠΆΠ°Ρ‰ΠΈΡ… Ρ‚ΠΎΡ‡Π΅ΠΊ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ ΠΎΡ†Π΅Π½ΠΊΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π½Π° ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½ΠΎΠΌ расстоянии ΠΎΡ‚ Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ полоТСния. Π­Ρ‚ΠΎ расстояниС критичСски Π²Π°ΠΆΠ½ΠΎ.

ΠŸΠΎΡΠΌΠΎΡ‚Ρ€ΠΈΡ‚Π΅ Π½Π° Π³Ρ€Π°Ρ„ΠΈΠΊ:

Π­Ρ‚ΠΎ расстояниС Π²Ρ‹Π±ΠΎΡ€ΠΊΠΈ, использованноС для ΠΎΡ†Π΅Π½ΠΊΠΈ Π³Ρ€Π°Π΄ΠΈΠ΅Π½Ρ‚Π°, слишком Π²Π΅Π»ΠΈΠΊΠΎ. Π“Ρ€Π°Π΄ΠΈΠ΅Π½Ρ‚Π½Ρ‹ΠΉ спуск ΠΎΡˆΠΈΠ±ΠΎΡ‡Π½ΠΎ Β«ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅Ρ‚Β», Ρ‡Ρ‚ΠΎ правая сторона Π²Ρ‹ΡˆΠ΅, Ρ‡Π΅ΠΌ лСвая. Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ Π±ΡƒΠ΄Π΅Ρ‚ Π΄Π²ΠΈΠ³Π°Ρ‚ΡŒΡΡ Π² Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠΌ Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠΈ.

Π‘Π½ΠΈΠΆΠ΅Π½ΠΈΠ΅ расстояния Π²Ρ‹Π±ΠΎΡ€ΠΊΠΈ позволяСт ΡƒΠΌΠ΅Π½ΡŒΡˆΠΈΡ‚ΡŒ эту ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ, Π½ΠΎ ΠΈΠ·Π±Π°Π²ΠΈΡ‚ΡŒΡΡ ΠΎΡ‚ Π½Π΅Ρ‘ Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ удастся. Π‘ΠΎΠ»Π΅Π΅ Ρ‚ΠΎΠ³ΠΎ, мСньшСС расстояниС Π²Ρ‹Π±ΠΎΡ€ΠΊΠΈ ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊΠΎ всё Π±ΠΎΠ»Π΅Π΅ ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎΠΌΡƒ ΠΏΡ€ΠΈΠ±Π»ΠΈΠΆΠ΅Π½ΠΈΡŽ ΠΊ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡŽ.

Π­Ρ‚Ρƒ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π΅ΡˆΠΈΡ‚ΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π±ΠΎΠ»Π΅Π΅ слоТных Π²Π°Ρ€ΠΈΠ°Ρ†ΠΈΠΉ Π³Ρ€Π°Π΄ΠΈΠ΅Π½Ρ‚Π½Ρ‹Ρ… спусков.


Π§Ρ‚ΠΎ Ссли Ρƒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π΅ΡΡ‚ΡŒ нСсколько Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹Ρ… ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌΠΎΠ²?

Π’ ΠΎΠ±Ρ‰Π΅ΠΌ случаС Ρ‚Π°ΠΊΠΎΠΉ Β«ΠΆΠ°Π΄Π½Ρ‹ΠΉΒ» ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ Π½Π΅ Π΄Π°Ρ‘Ρ‚ Π½Π°ΠΌ Π½ΠΈΠΊΠ°ΠΊΠΈΡ… Π³Π°Ρ€Π°Π½Ρ‚ΠΈΠΉ, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ Π½Π° самом Π΄Π΅Π»Π΅ достигнСм самой Π½ΠΈΠ·ΠΊΠΎΠΉ Ρ‚ΠΎΡ‡ΠΊΠΈ Π΄ΠΎΠ»ΠΈΠ½Ρ‹. Если Π΅ΡΡ‚ΡŒ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ Π΄ΠΎΠ»ΠΈΠ½Ρ‹, Ρ‚ΠΎ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Π·Π°ΡΡ‚Ρ€ΡΡ‚ΡŒ Π² ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ· Π½ΠΈΡ… ΠΈ Π½Π΅ смоТСм Π΄ΠΎΡΡ‚ΠΈΡ‡ΡŒ нашСй истинной Ρ†Π΅Π»ΠΈ.

Π‘ ΡƒΡ‡Ρ‘Ρ‚ΠΎΠΌ ΠΈΠ·Π»ΠΎΠΆΠ΅Π½Π½ΠΎΠ³ΠΎ Π²Ρ‹ΡˆΠ΅ Π½Π°ΠΈΠ²Π½ΠΎΠ³ΠΎ описания Π³Ρ€Π°Π΄ΠΈΠ΅Π½Ρ‚Π½ΠΎΠ³ΠΎ спуска ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Π·Π°ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΈΠΌΠ΅Π½Π½ΠΎ это ΠΏΡ€ΠΎΠΈΠ·ΠΎΠΉΠ΄Ρ‘Ρ‚ с Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ Π½Π° Π³Ρ€Π°Ρ„ΠΈΠΊΠ΅ Π²Ρ‹ΡˆΠ΅. Π£ этой Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π΅ΡΡ‚ΡŒ Ρ‚Ρ€ΠΈ Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹Ρ… ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌΠ° , ΡΠΎΠ·Π΄Π°ΡŽΡ‰ΠΈΡ… Ρ‚Ρ€ΠΈ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ Π΄ΠΎΠ»ΠΈΠ½Ρ‹. Если ΠΌΡ‹ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΡƒΠ΅ΠΌ Π³Ρ€Π°Π΄ΠΈΠ΅Π½Ρ‚Π½Ρ‹ΠΉ спуск Π² Ρ‚ΠΎΡ‡ΠΊΠ΅ ΠΈΠ· Π·Π΅Π»Ρ‘Π½ΠΎΠΉ области, Ρ‚ΠΎ ΠΎΠ½ закончится Π½Π° Π΄Π½Π΅ Π·Π΅Π»Ρ‘Π½ΠΎΠΉ Π΄ΠΎΠ»ΠΈΠ½Ρ‹. Π’ΠΎ ΠΆΠ΅ самоС относится ΠΊ красной ΠΈ синСй областям.

ВсС эти ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ Ρ‚ΠΎΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π΅ΡˆΠΈΡ‚ΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ услоТнённых Π²Π°Ρ€ΠΈΠ°Ρ†ΠΈΠΉ Π³Ρ€Π°Π΄ΠΈΠ΅Π½Ρ‚Π½ΠΎΠ³ΠΎ спуска.

ΠœΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠ°

Π’Π΅ΠΏΠ΅Ρ€ΡŒ, ΠΊΠΎΠ³Π΄Π° Ρƒ нас Π΅ΡΡ‚ΡŒ ΠΎΠ±Ρ‰Π΅Π΅ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ графичСской Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π³Ρ€Π°Π΄ΠΈΠ΅Π½Ρ‚Π½ΠΎΠ³ΠΎ спуска, Π΄Π°Π²Π°ΠΉΡ‚Π΅ посмотрим, ΠΊΠ°ΠΊ пСрСвСсти Π΅Π³ΠΎ Π½Π° язык ΠΌΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠΈ. ΠŸΠ΅Ρ€Π²Ρ‹ΠΉ этап - вычислСниС Π³Ρ€Π°Π΄ΠΈΠ΅Π½Ρ‚Π° нашСй Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ошибок Π² ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΉ Ρ‚ΠΎΡ‡ΠΊΠ΅ . Нам трСбуСтся Π½Π°ΠΉΡ‚ΠΈ Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ растёт функция. Π“Ρ€Π°Π΄ΠΈΠ΅Π½Ρ‚ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ тСсно связан с Π΅Ρ‘ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄Π½ΠΎΠΉ. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ Π½Π΅ΠΏΠ»ΠΎΡ…ΠΎ Π±Ρ‹ Π½Π°Ρ‡Π°Ρ‚ΡŒ созданиС нашСй ΠΎΡ†Π΅Π½ΠΊΠΈ с изучСния Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ вычисляСтся производная.

Π‘ матСматичСской Ρ‚ΠΎΡ‡ΠΊΠΈ зрСния производная Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ называСтся . Π•Ρ‘ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π² Ρ‚ΠΎΡ‡ΠΊΠ΅ Ρ€Π°Π²Π½ΠΎ , ΠΈ ΠΎΠ½ΠΎ ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚, насколько быстро растёт функция. Богласно Π΅ΠΉ:

ИдСя Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΡ†Π΅Π½ΠΊΡƒ для вычислСния Π³Ρ€Π°Π΄ΠΈΠ΅Π½Ρ‚Π°, ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π°Π΅ΠΌΠΎΠ³ΠΎ . ΠœΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΡ‡Π΅ΡΠΊΠΈ опрСдСляСтся ΠΊΠ°ΠΊ:

На Π³Ρ€Π°Ρ„ΠΈΠΊΠ΅ Π½ΠΈΠΆΠ΅ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ, Ρ‡Ρ‚ΠΎ это Π·Π½Π°Ρ‡ΠΈΡ‚:

Π’ нашСм случаС для ΠΎΡ†Π΅Π½ΠΊΠΈ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄Π½ΠΎΠΉ Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Π²Ρ‹Π±ΠΎΡ€ΠΊΡƒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ошибок Π² Π΄Π²ΡƒΡ… Ρ€Π°Π·Π½Ρ‹Ρ… Ρ‚ΠΎΡ‡ΠΊΠ°Ρ…. НСбольшоС расстояниС ΠΌΠ΅ΠΆΠ΄Ρƒ Π½ΠΈΠΌΠΈ - это расстояниС Π²Ρ‹Π±ΠΎΡ€ΠΊΠΈ , ΠΎ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΠΌΡ‹ Π³ΠΎΠ²ΠΎΡ€ΠΈΠ»ΠΈ Π² ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅ΠΌ Ρ€Π°Π·Π΄Π΅Π»Π΅.

ΠŸΠΎΠ΄Π²Π΅Π΄Ρ‘ΠΌ ΠΈΡ‚ΠΎΠ³. Для вычислСния истинной ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄Π½ΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€Π΅Π΄Π΅Π». Наш Π³Ρ€Π°Π΄ΠΈΠ΅Π½Ρ‚ являСтся ΠΏΡ€ΠΈΠ±Π»ΠΈΠ·ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΎΡ†Π΅Π½ΠΊΠΎΠΉ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄Π½ΠΎΠΉ, созданной с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ достаточно нСбольшого расстояния Π²Ρ‹Π±ΠΎΡ€ΠΊΠΈ:

Π’ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ Ρ€Π°Π·Π΄Π΅Π»Π΅ ΠΌΡ‹ ΡƒΠ²ΠΈΠ΄ΠΈΠΌ, Ρ‡Π΅ΠΌ эти Π΄Π²Π° понятия ΠΎΡ‚Π»ΠΈΡ‡Π°ΡŽΡ‚ΡΡ ΠΏΡ€ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ….

Найдя ΠΏΡ€ΠΈΠ±Π»ΠΈΠ·ΠΈΡ‚Π΅Π»ΡŒΠ½ΡƒΡŽ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄Π½ΡƒΡŽ, Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Π΄Π²ΠΈΠ³Π°Ρ‚ΡŒΡΡ Π² ΠΏΡ€ΠΎΡ‚ΠΈΠ²ΠΎΠΏΠΎΠ»ΠΎΠΆΠ½ΠΎΠΌ Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠΈ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒΡΡ ΠΏΠΎ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π²Π½ΠΈΠ·. Π­Ρ‚ΠΎ Π·Π½Π°Ρ‡ΠΈΡ‚, Ρ‡Ρ‚ΠΎ Π½ΡƒΠΆΠ½ΠΎ ΠΎΠ±Π½ΠΎΠ²ΠΈΡ‚ΡŒ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

ΠšΠΎΠ½ΡΡ‚Π°Π½Ρ‚Ρƒ часто Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ learning rate . Она опрСдСляСт, ΠΊΠ°ΠΊ быстро ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ Π΄Π²ΠΈΠ³Π°Ρ‚ΡŒΡΡ ΠΏΠΎ Π³Ρ€Π°Π΄ΠΈΠ΅Π½Ρ‚Ρƒ. Π§Π΅ΠΌ большС значСния, Ρ‚Π΅ΠΌ быстрСС найдётся Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅, Π½ΠΎ Ρ‚Π΅ΠΌ большС Π²Π΅Ρ€ΠΎΡΡ‚Π½ΠΎΡΡ‚ΡŒ ΠΏΡ€ΠΎΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ Π΅Π³ΠΎ.

lim?

Если Π²Ρ‹ Π½Π΅ ΠΈΠ·ΡƒΡ‡Π°Π»ΠΈ матСматичСский Π°Π½Π°Π»ΠΈΠ·, Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π±Ρ‹Ρ‚ΡŒ Π½Π΅ Π·Π½Π°ΠΊΠΎΠΌΡ‹ с понятиСм ΠΏΡ€Π΅Π΄Π΅Π»ΠΎΠ² . ΠŸΡ€Π΅Π΄Π΅Π»Ρ‹ - это матСматичСскоС срСдство, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰Π΅Π΅ Π½Π°ΠΌ Π΄ΠΎΡΡ‚ΠΈΡ‡ΡŒ бСсконСчности .

Рассмотрим наш условный ΠΏΡ€ΠΈΠΌΠ΅Ρ€. Π§Π΅ΠΌ мСньшС расстояниС Π²Ρ‹Π±ΠΎΡ€ΠΊΠΈ , Ρ‚Π΅ΠΌ Π»ΡƒΡ‡ΡˆΠ΅ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΎΡ†Π΅Π½ΠΈΡ‚ΡŒ истинный Π³Ρ€Π°Π΄ΠΈΠ΅Π½Ρ‚ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ. Однако ΠΌΡ‹ Π½Π΅ ΠΌΠΎΠΆΠ΅ΠΌ Π·Π°Π΄Π°Ρ‚ΡŒ , ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π½Π° ноль Π½Π΅ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΎ. ΠŸΡ€Π΅Π΄Π΅Π»Ρ‹ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ Π½Π°ΠΌ ΠΎΠ±ΠΎΠΉΡ‚ΠΈ эту ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ. ΠœΡ‹ Π½Π΅ ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π΅Π»ΠΈΡ‚ΡŒ Π½Π° ноль, Π½ΠΎ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΏΡ€Π΅Π΄Π΅Π»ΠΎΠ² ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Π·Π°Π΄Π°Ρ‚ΡŒ число, условно Π±Π»ΠΈΠ·ΠΊΠΎΠ΅ ΠΊ Π½ΡƒΠ»ΡŽ, Π½ΠΎ Π½Π° самом Π΄Π΅Π»Π΅ Π΅ΠΌΡƒ Π½Π΅ Ρ€Π°Π²Π½ΠΎΠ΅.

НСсколько ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…

НайдСнноС Π½Π°ΠΌΠΈ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΈΠ·ΠΌΠ΅Ρ€Π΅Π½ΠΈΠΈ. Π­Ρ‚ΠΎ Π·Π½Π°Ρ‡ΠΈΡ‚, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ Π΄Π°Π»ΠΈ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄Π½ΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π²ΠΈΠ΄Π° , Π³Π΄Π΅ - это ΠΎΠ΄Π½ΠΎ число. Π’ этом ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΌ случаС ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Π½Π°ΠΉΡ‚ΠΈ достаточно Ρ‚ΠΎΡ‡Π½ΠΎΠ΅ ΠΏΡ€ΠΈΠ±Π»ΠΈΠ·ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄Π½ΠΎΠΉ Π²Ρ‹Π±ΠΎΡ€ΠΊΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π² Π΄Π²ΡƒΡ… Ρ‚ΠΎΡ‡ΠΊΠ°Ρ…: ΠΈ . Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠΌ являСтся ΠΎΠ΄Π½ΠΎ число, ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‰Π΅Π΅ ΡƒΠ²Π΅Π»ΠΈΡ‡Π΅Π½ΠΈΠ΅ ΠΈΠ»ΠΈ ΡƒΠΌΠ΅Π½ΡŒΡˆΠ΅Π½ΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ. ΠœΡ‹ использовали это число Π² качСствС Π³Ρ€Π°Π΄ΠΈΠ΅Π½Ρ‚Π°.

Ѐункция с ΠΎΠ΄Π½ΠΈΠΌ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠΌ соотвСтствуСт Ρ€ΠΎΠ±ΠΎΡ‚Ρƒ-манипулятору с СдинствСнным сочлСнСниСм. Если ΠΌΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Π³Ρ€Π°Π΄ΠΈΠ΅Π½Ρ‚Π½Ρ‹ΠΉ спуск для Π±ΠΎΠ»Π΅Π΅ слоТных манипуляторов, Ρ‚ΠΎ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π·Π°Π΄Π°Ρ‚ΡŒ Π³Ρ€Π°Π΄ΠΈΠ΅Π½Ρ‚ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ с нСсколькими ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌΠΈ. НапримСр, Ссли Ρƒ нашСго Ρ€ΠΎΠ±ΠΎΡ‚Π°-манипулятора Π΅ΡΡ‚ΡŒ Ρ‚Ρ€ΠΈ сочлСнСния, Ρ‚ΠΎ функция Π±ΡƒΠ΄Π΅Ρ‚ большС ΠΏΠΎΡ…ΠΎΠΆΠ° Π½Π° . Π’ Ρ‚Π°ΠΊΠΎΠΌ случаС Π³Ρ€Π°Π΄ΠΈΠ΅Π½Ρ‚ - это Π²Π΅ΠΊΡ‚ΠΎΡ€, состоящий ΠΈΠ· Ρ‚Ρ€Ρ‘Ρ… чисСл, ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‰ΠΈΡ… локальноС ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Π² Ρ‚Ρ€Ρ‘Ρ…ΠΌΠ΅Ρ€Π½ΠΎΠΌ пространствС Π΅Π³ΠΎ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ².

ΠœΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ввСсти понятиС частных ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄Π½Ρ‹Ρ… , ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅, Π² сущности, ΡΠ²Π»ΡΡŽΡ‚ΡΡ Β«Ρ‚Ρ€Π°Π΄ΠΈΡ†ΠΈΠΎΠ½Π½Ρ‹ΠΌΠΈΒ» ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄Π½Ρ‹ΠΌΠΈ, вычисляСмыми для ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΈΠ· ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…:

Они ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‚ собой Ρ‚Ρ€ΠΈ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… скалярных числа, ΠΊΠ°ΠΆΠ΄ΠΎΠ΅ ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚, ΠΊΠ°ΠΊ растёт функция Π² ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½ΠΎΠΌ Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠΈ (ΠΈΠ»ΠΈ ΠΏΠΎ оси). Для вычислСния ΠΎΠ±Ρ‰Π΅Π³ΠΎ Π³Ρ€Π°Π΄ΠΈΠ΅Π½Ρ‚Π° ΠΌΡ‹ аппроксимируСм ΠΊΠ°ΠΆΠ΄ΡƒΡŽ Ρ‡Π°ΡΡ‚Π½ΡƒΡŽ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄Π½ΡƒΡŽ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΌ Π³Ρ€Π°Π΄ΠΈΠ΅Π½Ρ‚ΠΎΠΌ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ достаточно ΠΌΠ°Π»Ρ‹Ρ… расстояний Π²Ρ‹Π±ΠΎΡ€ΠΊΠΈ , ΠΈ :

Для нашСго Π³Ρ€Π°Π΄ΠΈΠ΅Π½Ρ‚Π½ΠΎΠ³ΠΎ спуска ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ Π² качСствС Π³Ρ€Π°Π΄ΠΈΠ΅Π½Ρ‚Π° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π²Π΅ΠΊΡ‚ΠΎΡ€, содСрТащий Π² сСбС всС Ρ‚Ρ€ΠΈ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π°:

Π­Ρ‚ΠΎ Π½Π΅ Π΅Π΄ΠΈΠ½ΠΈΡ‡Π½Ρ‹ΠΉ Π²Π΅ΠΊΡ‚ΠΎΡ€!

Косая производная Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ - это Π΅Π΄ΠΈΠ½ΠΈΡ‡Π½Ρ‹ΠΉ Π²Π΅ΠΊΡ‚ΠΎΡ€, ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‰ΠΈΠΉ Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π°ΠΈΡΠΊΠΎΡ€Π΅ΠΉΡˆΠ΅Π³ΠΎ ΠΏΠΎΠ΄ΡŠΡ‘ΠΌΠ°. НаправлСния - это Π²Π΅ΠΊΡ‚ΠΎΡ€Ρ‹ Π΅Π΄ΠΈΠ½ΠΈΡ‡Π½ΠΎΠΉ Π΄Π»ΠΈΠ½Ρ‹. Однако ΠΌΠΎΠΆΠ½ΠΎ Π»Π΅Π³ΠΊΠΎ Π·Π°ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ вычислСнный Π³Ρ€Π°Π΄ΠΈΠ΅Π½Ρ‚ Π½Π΅ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ являСтся Π΅Π΄ΠΈΠ½ΠΈΡ‡Π½Ρ‹ΠΌ Π²Π΅ΠΊΡ‚ΠΎΡ€ΠΎΠΌ.

Π₯отя это ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ ΠΊΠ°ΠΊ насилиС Π½Π°Π΄ ΠΌΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠΎΠΉ (Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Ρ‚Π°ΠΊ ΠΎΠ½ΠΎ ΠΈ Π΅ΡΡ‚ΡŒ!), Π½ΠΎ ΠΏΡ€ΠΈ этом ΠΎΠ½ΠΎ Π½Π΅ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ станСт ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΎΠΉ для нашСго Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ°. Нам Π½ΡƒΠΆΠ΅Π½ Π²Π΅ΠΊΡ‚ΠΎΡ€, ΡƒΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‰ΠΈΠΉ Π² Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠΈ Π½Π°ΠΈΡΠΊΠΎΡ€Π΅ΠΉΡˆΠ΅Π³ΠΎ ΠΏΠΎΠ΄ΡŠΡ‘ΠΌΠ°. ИспользованиС ΠΏΡ€ΠΈΠ±Π»ΠΈΠ·ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ частных ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄Π½Ρ‹Ρ… Π² качСствС элСмСнтов Ρ‚Π°ΠΊΠΎΠ³ΠΎ Π²Π΅ΠΊΡ‚ΠΎΡ€Π° удовлСтворяСт нашим ограничСниям. Если Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ это Π±Ρ‹Π» Π΅Π΄ΠΈΠ½ΠΈΡ‡Π½Ρ‹ΠΉ Π²Π΅ΠΊΡ‚ΠΎΡ€, Ρ‚ΠΎ ΠΌΠΎΠΆΠ½ΠΎ просто Π½ΠΎΡ€ΠΌΠ°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π³ΠΎ, ΠΏΠΎΠ΄Π΅Π»ΠΈΠ² Π½Π° Π΅Π³ΠΎ Π΄Π»ΠΈΠ½Ρƒ.

ИспользованиС Π΅Π΄ΠΈΠ½ΠΈΡ‡Π½ΠΎΠ³ΠΎ Π²Π΅ΠΊΡ‚ΠΎΡ€Π° Π΄Π°Ρ‘Ρ‚ Π½Π°ΠΌ прСимущСство опрСдСлСния максимальной скорости, с ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΌΡ‹ двиТСмся ΠΏΠΎ повСрхности. Π­Ρ‚Π° ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ являСтся learning rate . ИспользованиС Π½Π΅Π½ΠΎΡ€ΠΌΠ°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ Π²Π΅ΠΊΡ‚ΠΎΡ€Π° ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ быстрСС ΠΈΠ»ΠΈ ΠΌΠ΅Π΄Π»Π΅Π½Π½Π΅Π΅, Π² зависимости ΠΎΡ‚ Π½Π°ΠΊΠ»ΠΎΠ½Π° . Π­Ρ‚ΠΎ Π½Π΅ Ρ…ΠΎΡ€ΠΎΡˆΠΎ ΠΈ Π½Π΅ ΠΏΠ»ΠΎΡ…ΠΎ, это просто Π΅Ρ‰Ρ‘ ΠΎΠ΄ΠΈΠ½ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ ΠΊ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡŽ нашСй ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹.

Π§Π°ΡΡ‚ΡŒ 5. Π˜Π½Π²Π΅Ρ€ΡΠ½Π°Ρ ΠΊΠΈΠ½Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠ° для Ρ€ΠΎΠ±ΠΎΡ‚Π°-манипулятора

ПослС Π΄ΠΎΠ»Π³ΠΎΠ³ΠΎ ΠΏΡƒΡ‚Π΅ΡˆΠ΅ΡΡ‚Π²ΠΈΡ Π² ΠΌΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΡƒ прямой ΠΊΠΈΠ½Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠΈ ΠΈ гСомСтричСского Ρ€Π°Π·Π±ΠΎΡ€Π° Π³Ρ€Π°Π΄ΠΈΠ΅Π½Ρ‚Π½ΠΎΠ³ΠΎ спуска ΠΌΡ‹ Π½Π°ΠΊΠΎΠ½Π΅Ρ† Π³ΠΎΡ‚ΠΎΠ²Ρ‹ ΠΏΡ€ΠΎΠ΄Π΅ΠΌΠΎΠ½ΡΡ‚Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰ΡƒΡŽ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ инвСрсной ΠΊΠΈΠ½Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠΈ. Π’ этой части ΠΌΡ‹ ΠΏΠΎΠΊΠ°ΠΆΠ΅ΠΌ, ΠΊΠ°ΠΊ Π΅Ρ‘ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΊ Ρ€ΠΎΠ±ΠΎΡ‚Ρƒ-манипулятору, ΠΏΠΎΡ…ΠΎΠΆΠ΅ΠΌΡƒ Π½Π° ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΡ‘Π½Π½Ρ‹ΠΉ Π½ΠΈΠΆΠ΅.

Π’Π²Π΅Π΄Π΅Π½ΠΈΠ΅

Π’ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅ΠΉ части ΠΈΠ·Π»ΠΎΠΆΠ΅Π½Ρ‹ матСматичСскиС основы Ρ‚Π΅Ρ…Π½ΠΈΠΊΠΈ ΠΏΠΎΠ΄ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ Π³Ρ€Π°Π΄ΠΈΠ΅Π½Ρ‚Π½Ρ‹ΠΉ спуск . Π£ нас Π΅ΡΡ‚ΡŒ функция , ΠΏΠΎΠ»ΡƒΡ‡Π°ΡŽΡ‰Π°Ρ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ сочлСнСния Ρ€ΠΎΠ±ΠΎΡ‚Π°-ΠΌΠ°Π½ΠΈΠΏΡƒΠ»Π°Ρ‚ΠΎΡ€Π°. Π­Ρ‚ΠΎΡ‚ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ являСтся Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΌ ΡƒΠ³Π»ΠΎΠΌ сочлСнСния. Для Π·Π°Π΄Π°Π½Π½ΠΎΠΉ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ сочлСнСний функция Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΠΎΠ΄Π½ΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‰Π΅Π΅, насколько Π΄Π°Π»Π΅ΠΊΠΎ ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΠ΅ Π·Π²Π΅Π½ΠΎ Ρ€ΠΎΠ±ΠΎΡ‚Π°-манипулятора находится ΠΎΡ‚ Ρ†Π΅Π»Π΅Π²ΠΎΠΉ Ρ‚ΠΎΡ‡ΠΊΠΈ . Наша Π·Π°Π΄Π°Ρ‡Π° - Π½Π°ΠΉΡ‚ΠΈ значСния , ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠ΅ .

Для этого ΠΌΡ‹ сначала вычислим Π³Ρ€Π°Π΄ΠΈΠ΅Π½Ρ‚ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΏΡ€ΠΈ Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΌ . Π“Ρ€Π°Π΄ΠΈΠ΅Π½Ρ‚ - это Π²Π΅ΠΊΡ‚ΠΎΡ€, ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‰ΠΈΠΉ Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π°ΠΈΡΠΊΠΎΡ€Π΅ΠΉΡˆΠ΅Π³ΠΎ ΠΏΠΎΠ΄ΡŠΡ‘ΠΌΠ°. ΠŸΡ€ΠΎΡ‰Π΅ говоря, это стрСлка, ΡƒΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‰Π°Ρ Π½Π°ΠΌ Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ растёт функция. ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ элСмСнт Π³Ρ€Π°Π΄ΠΈΠ΅Π½Ρ‚Π° - это ΠΏΡ€ΠΈΠ±Π»ΠΈΠ·ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ частной ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄Π½ΠΎΠΉ .

НапримСр, Ссли Ρƒ Ρ€ΠΎΠ±ΠΎΡ‚Π°-манипулятора Π΅ΡΡ‚ΡŒ Ρ‚Ρ€ΠΈ сочлСнСния, Ρ‚ΠΎ Ρƒ нас Π±ΡƒΠ΄Π΅Ρ‚ функция , ΠΏΠΎΠ»ΡƒΡ‡Π°ΡŽΡ‰Π°Ρ Ρ‚Ρ€ΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°: , ΠΈ . Π’ΠΎΠ³Π΄Π° наш Π³Ρ€Π°Π΄ΠΈΠ΅Π½Ρ‚ задаётся ΠΊΠ°ΠΊ:

А , ΠΈ - достаточно ΠΌΠ°Π»Ρ‹Π΅ значСния.

ΠœΡ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ»ΠΈ ΠΏΡ€ΠΈΠ±Π»ΠΈΠ·ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ Π³Ρ€Π°Π΄ΠΈΠ΅Π½Ρ‚ . Если ΠΌΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ , Ρ‚ΠΎ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π΄Π²ΠΈΠ³Π°Ρ‚ΡŒΡΡ Π² ΠΏΡ€ΠΎΡ‚ΠΈΠ²ΠΎΠΏΠΎΠ»ΠΎΠΆΠ½ΠΎΠΌ Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠΈ. Π­Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ , ΠΈ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

Π“Π΄Π΅ - это learning rate , ΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€, ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‰ΠΈΠΉ ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒΡŽ удалСния ΠΎΡ‚ ΠΏΠΎΠ΄Π½ΠΈΠΌΠ°ΡŽΡ‰Π΅Π³ΠΎΡΡ Π³Ρ€Π°Π΄ΠΈΠ΅Π½Ρ‚Π°.

РСализация

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Ρƒ нас Π΅ΡΡ‚ΡŒ всС знания, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ для Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ простого Π³Ρ€Π°Π΄ΠΈΠ΅Π½Ρ‚Π½ΠΎΠ³ΠΎ спуска Π½Π° C#. Π”Π°Π²Π°ΠΉΡ‚Π΅ Π½Π°Ρ‡Π½Ρ‘ΠΌ с Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, Π²Ρ‹Ρ‡ΠΈΡΠ»ΡΡŽΡ‰Π΅ΠΉ ΠΏΡ€ΠΈΠ±Π»ΠΈΠ·ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ частного Π³Ρ€Π°Π΄ΠΈΠ΅Π½Ρ‚Π° i -Ρ‚ΠΎΠ³ΠΎ сочлСнСния. Как Π³ΠΎΠ²ΠΎΡ€ΠΈΠ»ΠΎΡΡŒ Π²Ρ‹ΡˆΠ΅, для этого Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π²Ρ‹Π±ΠΎΡ€ΠΊΡƒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ (которая являСтся нашСй Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ ошибок DistanceFromTarget , описанной Π²ΠΎ Β«Π’Π²Π΅Π΄Π΅Π½ΠΈΠΈ Π² Π³Ρ€Π°Π΄ΠΈΠ΅Π½Ρ‚Π½Ρ‹ΠΉ спуск») Π² Π΄Π²ΡƒΡ… Ρ‚ΠΎΡ‡ΠΊΠ°Ρ…:

Public float PartialGradient (Vector3 target, float angles, int i) { // БохраняСт ΡƒΠ³ΠΎΠ», // ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±ΡƒΠ΄Π΅Ρ‚ восстановлСн ΠΏΠΎΠ·ΠΆΠ΅ float angle = angles[i]; // Π“Ρ€Π°Π΄ΠΈΠ΅Π½Ρ‚: / h float f_x = DistanceFromTarget(target, angles); angles[i] += SamplingDistance; float f_x_plus_d = DistanceFromTarget(target, angles); float gradient = (f_x_plus_d - f_x) / SamplingDistance; // ВосстановлСниС angles[i] = angle; return gradient; }
ΠŸΡ€ΠΈ Π²Ρ‹Π·ΠΎΠ²Π΅ этой Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΎΠ½Π° Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΠΎΠ΄Π½ΠΎ число, ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‰Π΅Π΅, ΠΊΠ°ΠΊ измСняСтся расстояниС ΠΎΡ‚ Ρ†Π΅Π»ΠΈ ΠΊΠ°ΠΊ функция ΠΎΡ‚ ΠΏΠΎΠ²ΠΎΡ€ΠΎΡ‚Π° сочлСнСния.

Нам Π½ΡƒΠΆΠ½ΠΎ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π² Ρ†ΠΈΠΊΠ»Π΅ всС сочлСнСния, вычисляя ΠΈΡ… влияниС Π½Π° Π³Ρ€Π°Π΄ΠΈΠ΅Π½Ρ‚.

Public void InverseKinematics (Vector3 target, float angles) { for (int i = 0; i < Joints.Length; i ++) { // Π“Ρ€Π°Π΄ΠΈΠ΅Π½Ρ‚Π½Ρ‹ΠΉ спуск // ОбновлСниС: Solution -= LearningRate * Gradient float gradient = PartialGradient(target, angles, i); angles[i] -= LearningRate * gradient; } }
ΠœΠ½ΠΎΠ³ΠΎΠΊΡ€Π°Ρ‚Π½Ρ‹ΠΉ Π²Ρ‹Π·ΠΎΠ² InverseKinematics ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π°Π΅Ρ‚ Ρ€ΠΎΠ±ΠΎΡ‚-манипулятор Π±Π»ΠΈΠΆΠ΅ ΠΊ Ρ†Π΅Π»Π΅Π²ΠΎΠΉ Ρ‚ΠΎΡ‡ΠΊΠ΅.

ΠŸΡ€Π΅ΠΆΠ΄Π΅Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠ΅ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΠ΅

Одна ΠΈΠ· основных ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ инвСрсной ΠΊΠΈΠ½Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠΈ, Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½ΠΎΠΉ этим Π½Π°ΠΈΠ²Π½Ρ‹ΠΌ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΎΠΌ - малая Π²Π΅Ρ€ΠΎΡΡ‚Π½ΠΎΡΡ‚ΡŒ ΠΎΠΊΠΎΠ½Ρ‡Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ схоТдСния Π³Ρ€Π°Π΄ΠΈΠ΅Π½Ρ‚Π°. Π’ зависимости ΠΎΡ‚ Π²Ρ‹Π±Ρ€Π°Π½Π½Ρ‹Ρ… для LearningRate ΠΈ SamplingDistance Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ ΠΎΡ‡Π΅Π½ΡŒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Ρ‡Ρ‚ΠΎ манипулятор Π±ΡƒΠ΄Π΅Ρ‚ Β«ΠΊΠ°Ρ‡Π°Ρ‚ΡŒΡΡΒ» рядом с истинным Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ΠΌ.

Π’Π°ΠΊ происходит ΠΏΠΎΡ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ обновляСм ΡƒΠ³Π»Ρ‹ слишком часто, ΠΈ это ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ Β«ΠΏΠ΅Ρ€Π΅Π»Ρ‘Ρ‚ΡƒΒ» Ρ‡Π΅Ρ€Π΅Π· ΠΈΡΡ‚ΠΈΠ½Π½ΡƒΡŽ Ρ‚ΠΎΡ‡ΠΊΡƒ. ΠŸΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹ΠΌ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ΠΌ этой ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ Π±ΡƒΠ΄Π΅Ρ‚ использованиС Π°Π΄Π°ΠΏΡ‚ΠΈΠ²Π½ΠΎΠ³ΠΎ learning rate, ΠΈΠ·ΠΌΠ΅Π½ΡΡŽΡ‰Π΅Π³ΠΎΡΡ Π² зависимости ΠΎΡ‚ близости ΠΊ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡŽ. Π‘ΠΎΠ»Π΅Π΅ Π΄Π΅ΡˆΡ‘Π²Π°Ρ Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π° - ΠΎΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°Ρ‚ΡŒ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ, Ссли ΠΌΡ‹ Π±Π»ΠΈΠΆΠ΅, Ρ‡Π΅ΠΌ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½ΠΎΠ΅ ΠΏΠΎΡ€ΠΎΠ³ΠΎΠ²ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅:

< DistanceThreshold) return; for (int i = Joints.Length -1; i >= 0; i --) { // Π“Ρ€Π°Π΄ΠΈΠ΅Π½Ρ‚Π½Ρ‹ΠΉ спуск // ОбновлСниС: Solution -= LearningRate * Gradient float gradient = PartialGradient(target, angles, i); angles[i] -= LearningRate * gradient; // ΠŸΡ€Π΅ΠΆΠ΄Π΅Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠ΅ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΠ΅ if (DistanceFromTarget(target, angles) < DistanceThreshold) return; } }
Если ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΡΡ‚ΡŒ эту ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΡƒ послС ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΏΠΎΠ²ΠΎΡ€ΠΎΡ‚Π° сочлСнСния, ΠΌΡ‹ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΠΌ минимальноС количСство Ρ‚Ρ€Π΅Π±ΡƒΠ΅ΠΌΡ‹Ρ… Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΠΉ.

Π§Ρ‚ΠΎΠ±Ρ‹ Π΅Ρ‰Ρ‘ большС ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΠ΅ манипулятора, ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π³Ρ€Π°Π΄ΠΈΠ΅Π½Ρ‚Π½Ρ‹ΠΉ спуск Π² ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠΌ порядкС. Если ΠΌΡ‹ Π½Π°Ρ‡Π½Ρ‘ΠΌ с ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΠ³ΠΎ Π·Π²Π΅Π½Π°, Π° Π½Π΅ с основания, Ρ‚ΠΎ это ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ Π½Π°ΠΌ ΡΠΎΠ²Π΅Ρ€ΡˆΠ°Ρ‚ΡŒ Π±ΠΎΠ»Π΅Π΅ ΠΊΠΎΡ€ΠΎΡ‚ΠΊΠΈΠ΅ двиТСния. Π’ Ρ†Π΅Π»ΠΎΠΌ, эти нСбольшиС хитрости ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ ΠΏΡ€ΠΈΠ±Π»ΠΈΠ·ΠΈΡ‚ΡŒΡΡ ΠΊ Π±ΠΎΠ»Π΅Π΅ СстСствСнному Ρ€Π΅ΡˆΠ΅Π½ΠΈΡŽ.

ΠžΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΡ

Одна ΠΈΠ· характСристик Ρ€Π΅Π°Π»ΡŒΠ½Ρ‹Ρ… сочлСнСний Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Ρƒ Π½ΠΈΡ… ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ Π΅ΡΡ‚ΡŒ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½Ρ‹ΠΉ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Ρ… ΡƒΠ³Π»ΠΎΠ² ΠΏΠΎΠ²ΠΎΡ€ΠΎΡ‚Π°. НС всС сочлСнСния ΠΌΠΎΠ³ΡƒΡ‚ Π²Ρ€Π°Ρ‰Π°Ρ‚ΡŒΡΡ Π½Π° 360 градусов Π²ΠΎΠΊΡ€ΡƒΠ³ своСй оси. Пока ΠΌΡ‹ Π½Π΅ Π½Π°Π»ΠΎΠΆΠΈΠ»ΠΈ Π½ΠΈΠΊΠ°ΠΊΠΈΡ… ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠΉ Π½Π° наш Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ. Π­Ρ‚ΠΎ Π·Π½Π°Ρ‡ΠΈΡ‚, Ρ‡Ρ‚ΠΎ ΠΌΡ‹, скорСС всСго, ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠΌ Π²ΠΎΡ‚ Ρ‚Π°ΠΊΠΎΠ΅ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅:

РСшСниС достаточно ΠΎΡ‡Π΅Π²ΠΈΠ΄Π½ΠΎ. ΠœΡ‹ Π΄ΠΎΠ±Π°Π²ΠΈΠΌ Π² класс RobotJoint ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΈ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹Π΅ ΡƒΠ³Π»Ρ‹:

Using UnityEngine; public class RobotJoint: MonoBehaviour { public Vector3 Axis; public Vector3 StartOffset; public float MinAngle; public float MaxAngle; void Awake () { StartOffset = transform.localPosition; } }
Π·Π°Ρ‚Π΅ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΡƒΠ±Π΅Π΄ΠΈΡ‚ΡŒΡΡ, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΠ²Π°Π΅ΠΌ ΡƒΠ³Π»Ρ‹ Π½ΡƒΠΆΠ½Ρ‹ΠΌ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ΠΎΠΌ:

Public void InverseKinematics (Vector3 target, float angles) { if (DistanceFromTarget(target, angles) < DistanceThreshold) return; for (int i = Joints.Length -1; i >= 0; i --) { // Π“Ρ€Π°Π΄ΠΈΠ΅Π½Ρ‚Π½Ρ‹ΠΉ спуск // ОбновлСниС: Solution -= LearningRate * Gradient float gradient = PartialGradient(target, angles, i); angles[i] -= LearningRate * gradient; // ΠžΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅ angles[i] = Mathf.Clamp(angles[i], Joints[i].MinAngle, Joints[i].MaxAngle); // ΠŸΡ€Π΅ΠΆΠ΄Π΅Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠ΅ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΠ΅ if (DistanceFromTarget(target, angles) < DistanceThreshold) return; } }

ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹

Π”Π°ΠΆΠ΅ ΠΏΡ€ΠΈ Π½Π°Π»ΠΈΡ‡ΠΈΠΈ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠΉ ΡƒΠ³Π»ΠΎΠ² ΠΈ ΠΏΡ€Π΅ΠΆΠ΄Π΅Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠ³ΠΎ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ Π½Π°ΠΌΠΈ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ ΠΎΡ‡Π΅Π½ΡŒ прост. Блишком прост. Π‘ этим Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ΠΌ ΠΌΠΎΠΆΠ΅Ρ‚ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΡƒΡ‚ΡŒ мноТСство ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ, ΠΈ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ ΠΈΠ· Π½ΠΈΡ… связано с Π³Ρ€Π°Π΄ΠΈΠ΅Π½Ρ‚Π½Ρ‹ΠΌ спуском. Как написано Π²ΠΎ Β«Π’Π²Π΅Π΄Π΅Π½ΠΈΠΈ Π² Π³Ρ€Π°Π΄ΠΈΠ΅Π½Ρ‚Π½Ρ‹ΠΉ спуск», Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ ΠΌΠΎΠΆΠ΅Ρ‚ Π·Π°ΡΡ‚Ρ€Π΅Π²Π°Ρ‚ΡŒ Π² Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹Ρ… ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌΠ°Ρ… . Они ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΡΡƒΠ±ΠΎΠΏΡ‚ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΌΠΈ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡΠΌΠΈ : нССстСствСнными ΠΈΠ»ΠΈ Π½Π΅ΠΆΠ΅Π»Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ способами достиТСния Ρ†Π΅Π»ΠΈ.

ΠŸΠΎΡΠΌΠΎΡ‚Ρ€ΠΈΡ‚Π΅ Π½Π° Π°Π½ΠΈΠΌΠ°Ρ†ΠΈΡŽ:


Π ΡƒΠΊΠ° манипулятора ΡƒΡˆΠ»Π° слишком Π΄Π°Π»Π΅ΠΊΠΎ, ΠΈ ΠΏΡ€ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‚Π΅ Π² исходноС ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΎΠ½Π° ΠΏΠ΅Ρ€Π΅Π²Π΅Ρ€Π½ΡƒΠ»Π°ΡΡŒ. ΠΠ°ΠΈΠ»ΡƒΡ‡ΡˆΠΈΠΌ способом ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ этого Π±ΡƒΠ΄Π΅Ρ‚ использованиС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΊΠΎΠΌΡ„ΠΎΡ€Ρ‚Π° . Если ΠΌΡ‹ достигли Ρ‚Ρ€Π΅Π±ΡƒΠ΅ΠΌΠΎΠΉ Ρ‚ΠΎΡ‡ΠΊΠΈ, Ρ‚ΠΎ Π½ΡƒΠΆΠ½ΠΎ ΠΏΠΎΠΏΡ‹Ρ‚Π°Ρ‚ΡŒΡΡ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΎΡ€ΠΈΠ΅Π½Ρ‚Π°Ρ†ΠΈΡŽ манипулятора Π½Π° Π±ΠΎΠ»Π΅Π΅ ΡƒΠ΄ΠΎΠ±Π½ΠΎΠ΅, СстСствСнноС ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. Π‘Π»Π΅Π΄ΡƒΠ΅Ρ‚ Π·Π°ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ это Π½Π΅ всСгда Π±Ρ‹Π²Π°Π΅Ρ‚ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ. ИзмСнСниС ΠΎΡ€ΠΈΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ манипулятора ΠΌΠΎΠΆΠ΅Ρ‚ Π·Π°ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΡ‚ΡŒ расстояниС Π΄ΠΎ Ρ†Π΅Π»ΠΈ, Ρ‡Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΎΡ‚ΠΈΠ²ΠΎΡ€Π΅Ρ‡ΠΈΡ‚ΡŒ Π΅Π³ΠΎ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°ΠΌ.

Π§Π°ΡΡ‚ΡŒ 6. Π˜Π½Π²Π΅Ρ€ΡΠ½Π°Ρ ΠΊΠΈΠ½Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠ° Ρ‰ΡƒΠΏΠ°Π»Π΅Ρ†

Π’Π²Π΅Π΄Π΅Π½ΠΈΠ΅

Π’ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅ΠΉ части ΠΌΡ‹ рассмотрСли использованиС Π³Ρ€Π°Π΄ΠΈΠ΅Π½Ρ‚Π½ΠΎΠ³ΠΎ спуска для Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ инвСрсной ΠΊΠΈΠ½Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠΈ Ρ€ΠΎΠ±ΠΎΡ‚Π°-манипулятора. ВыполняСмоС ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠ°ΠΌΠΈ Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΠ΅ достаточно просто, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ Ρƒ Π½ΠΈΡ… Π½Π΅Ρ‚ слоТности настоящих чСловСчСских частСй Ρ‚Π΅Π»Π°. КаТдоС сочлСнСниС Ρ€ΠΎΠ±ΠΎΡ‚Π°-манипулятора управляСтся Π΄Π²ΠΈΠ³Π°Ρ‚Π΅Π»Π΅ΠΌ. Π’ чСловСчСском Ρ‚Π΅Π»Π΅ каТдая ΠΌΡ‹ΡˆΡ†Π° Π΄Π΅-Ρ„Π°ΠΊΡ‚ΠΎ являСтся нСзависимым Π΄Π²ΠΈΠ³Π°Ρ‚Π΅Π»Π΅ΠΌ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠΆΠ΅Ρ‚ Ρ€Π°ΡΡ‚ΡΠ³ΠΈΠ²Π°Ρ‚ΡŒΡΡ ΠΈ ΡΠΎΠΊΡ€Π°Ρ‰Π°Ρ‚ΡŒΡΡ.

Π£ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… сущСств Π΅ΡΡ‚ΡŒ части Ρ‚Π΅Π»Π°, ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΠ΅ нСсколько стСпСнСй свободы. ΠŸΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠΌ ΠΌΠΎΠ³ΡƒΡ‚ ΡΠ»ΡƒΠΆΠΈΡ‚ΡŒ Ρ…ΠΎΠ±ΠΎΡ‚ слона ΠΈ Ρ‰ΡƒΠΏΠ°Π»ΡŒΡ†Π΅ осьминога. ΠœΠΎΠ΄Π΅Π»ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Ρ‚Π°ΠΊΠΈΡ… частСй Ρ‚Π΅Π»Π° - особо слоТная Π·Π°Π΄Π°Ρ‡Π°, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈΠ²Π΅Π΄Ρ‘Π½Π½Ρ‹Π΅ Π²Ρ‹ΡˆΠ΅ Ρ‚Ρ€Π°Π΄ΠΈΡ†ΠΈΠΎΠ½Π½Ρ‹Π΅ Ρ‚Π΅Ρ…Π½ΠΈΠΊΠΈ Π½Π΅ смогут ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ рСалистичных Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠ².

ΠœΡ‹ Π½Π°Ρ‡Π½Ρ‘ΠΌ с ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° ΠΈΠ· ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅ΠΉ части ΠΈ постСпСнно ΠΏΡ€ΠΈΠ΄Ρ‘ΠΌ ΠΊ повСдСнию, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ для Π½Π°ΡˆΠΈΡ… Ρ†Π΅Π»Π΅ΠΉ окаТСтся достаточно рСалистичным.

Π ΠΈΠ³Π³ΠΈΠ½Π³ Ρ‰ΡƒΠΏΠ°Π»ΡŒΡ†Π°

Π’ созданном Π½Π°ΠΌΠΈ Ρ€ΠΎΠ±ΠΎΡ‚Π΅-манипуляторС каТдая Ρ‡Π°ΡΡ‚ΡŒ двигалась нСзависимо ΠΎΡ‚ Π΄Ρ€ΡƒΠ³ΠΈΡ…. Π©ΡƒΠΏΠ°Π»ΡŒΡ†Π°, Π² ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ Ρ€ΠΎΠ±ΠΎΡ‚Π°, ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΠ·Π³ΠΈΠ±Π°Ρ‚ΡŒΡΡ. Π­Ρ‚ΠΎ нСобходимая ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΡŒ, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ нСльзя ΠΈΠ³Π½ΠΎΡ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ, Ссли ΠΌΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ Π½Π°Ρ†Π΅Π»Π΅Π½Ρ‹ Π½Π° Ρ€Π΅Π°Π»ΠΈΠ·ΠΌ. НашС Ρ‰ΡƒΠΏΠ°Π»ΡŒΡ†Π΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΡƒΠΌΠ΅Ρ‚ΡŒ ΠΈΠ·Π³ΠΈΠ±Π°Ρ‚ΡŒΡΡ.

ΠšΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ Unity, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΠΉ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ эту Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ, называСтся Skinned Mesh Renderer :


К соТалСнию, Unity Π½Π΅ прСдоставляСт возмоТности создания Ρ€Π΅Π½Π΄Π΅Ρ€Π΅Ρ€Π° сСток со скиннингом Π² Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π΅. НСобходим Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ 3D-ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Blender . На ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΈ Π½ΠΈΠΆΠ΅ ΠΏΠΎΠΊΠ°Π·Π°Π½Π° модСль Ρ‰ΡƒΠΏΠ°Π»ΡŒΡ†Π°, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π² этой части. Π’Π½ΡƒΡ‚Ρ€ΠΈ Π²ΠΈΠ΄Π½ΠΎ нСсколько костСй , соСдинённых Π΄Ρ€ΡƒΠ³ с Π΄Ρ€ΡƒΠ³ΠΎΠΌ. Π­Ρ‚ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΠ΅ Π½Π°ΠΌ ΠΈΠ·Π³ΠΈΠ±Π°Ρ‚ΡŒ модСль.


Π’ этом Ρ‚ΡƒΡ‚ΠΎΡ€ΠΈΠ°Π»Π΅ ΠΌΡ‹ Π½Π΅ Π±ΡƒΠ΄Π΅ΠΌ ΠΈΠ·ΡƒΡ‡Π°Ρ‚ΡŒ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ костСй ΠΊ модСлям, Ρ‚Π°ΠΊΠΆΠ΅ Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΠΎΠ΅ Ρ€ΠΈΠ³Π³ΠΈΠ½Π³ΠΎΠΌ . Π₯ΠΎΡ€ΠΎΡˆΠ΅Π΅ Π²Π²Π΅Π΄Π΅Π½ΠΈΠ΅ Π² ΠΏΡ€Π΅Π΄ΠΌΠ΅Ρ‚ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ Π² ΡΡ‚Π°Ρ‚ΡŒΠ΅ Blender 3D: Noob to Pro/Bones .

ΠšΠΎΡΡ‚ΠΈ ΠΈ сочлСнСния

Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ этап Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ инвСрсной ΠΊΠΈΠ½Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠΈ Ρ‰ΡƒΠΏΠ°Π»ΡŒΡ†Π° - ΠΏΡ€ΠΈΠΊΡ€Π΅ΠΏΠ»Π΅Π½ΠΈΠ΅ ΠΊ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ кости скрипта RobotJoint . Благодаря этому ΠΌΡ‹ Π΄Π°Ρ‘ΠΌ Π½Π°ΡˆΠ΅ΠΌΡƒ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΡƒ инвСрсной ΠΊΠΈΠ½Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΡΠ³ΠΈΠ±Π°Ρ‚ΡŒ Ρ‰ΡƒΠΏΠ°Π»ΡŒΡ†Π΅.

Π£ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎΠ³ΠΎ осьминога ΠΊΠ°ΠΆΠ΄ΠΎΠ΅ сочлСнСниС ΠΌΠΎΠΆΠ΅Ρ‚ свободно ΠΏΠΎΠ²ΠΎΡ€Π°Ρ‡ΠΈΠ²Π°Ρ‚ΡŒΡΡ ΠΏΠΎ всСм Ρ‚Ρ€Ρ‘ΠΌ осям. К соТалСнию, ΠΊΠΎΠ΄ написанный для Ρ€ΠΎΠ±ΠΎΡ‚Π°-манипулятора, позволяСт Π²Ρ€Π°Ρ‰Π°Ρ‚ΡŒ сочлСнСния Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΠΎ ΠΎΠ΄Π½ΠΎΠΉ оси. Если ΠΏΠΎΠΏΡ‹Ρ‚Π°Ρ‚ΡŒΡΡ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ это, Ρ‚ΠΎ ΠΌΡ‹ Π΄ΠΎΠ±Π°Π²ΠΈΠΌ Π½Π°ΡˆΠ΅ΠΌΡƒ ΠΊΠΎΠ΄Ρƒ Π½ΠΎΠ²Ρ‹ΠΉ ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ слоТности. ВмСсто этого ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Ρ†ΠΈΠΊΠ»ΠΈΡ‡Π½ΠΎ ΠΌΠ΅Π½ΡΡ‚ΡŒ ось сочлСнСний, Ρ‡Ρ‚ΠΎΠ±Ρ‹ сочлСнСниС 0 ΠΏΠΎΠ²ΠΎΡ€Π°Ρ‡ΠΈΠ²Π°Π»ΠΎΡΡŒ ΠΏΠΎ X, сочлСнСниС 1 - ΠΏΠΎ Y, сочлСнСниС 2 - ΠΏΠΎ Z, ΠΈ Ρ‚Π°ΠΊ Π΄Π°Π»Π΅Π΅. Π­Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ привСсти ΠΊ нССстСствСнному повСдСнию, Π½ΠΎ такая ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° Ρƒ вас ΠΌΠΎΠΆΠ΅Ρ‚ Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΡƒΡ‚ΡŒ, Ссли кости достаточно ΠΌΠ°Π»Ρ‹.

Π’ скачиваСмом ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅ Unity, ΠΏΡ€ΠΎΠ΄Π°Π²Π°Π΅ΠΌΠΎΠΌ с этим Ρ‚ΡƒΡ‚ΠΎΡ€ΠΈΠ°Π»ΠΎΠΌ, скрипт SetRobotJointWeights автоматичСски ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΡƒΠ΅Ρ‚ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ всСх сочлСнСний Ρ‰ΡƒΠΏΠ°Π»ΡŒΡ†Π°. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π΅Π»Π°Ρ‚ΡŒ это Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΠΌΠ΅Ρ‚ΡŒ Π±ΠΎΠ»Π΅Π΅ Ρ‚ΠΎΡ‡Π½Ρ‹ΠΉ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒ Π½Π°Π΄ Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΠ΅ΠΌ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ кости.

Ѐункция ΠΊΠΎΠΌΡ„ΠΎΡ€Ρ‚Π°

На прСдставлСнной Π½ΠΈΠΆΠ΅ Π°Π½ΠΈΠΌΠ°Ρ†ΠΈΠΈ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π΄Π²Π° Ρ‰ΡƒΠΏΠ°Π»ΡŒΡ†Π°. Π©ΡƒΠΏΠ°Π»ΡŒΡ†Π΅ слСва тянСтся ΠΊ красной сфСрС с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° ΠΈΠ· Β«Π˜Π½Π²Π΅Ρ€ΡΠ½ΠΎΠΉ ΠΊΠΈΠ½Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠΈ для Ρ€ΠΎΠ±ΠΎΡ‚Π°-манипулятора». ΠŸΡ€Π°Π²ΠΎΠ΅ Ρ‰ΡƒΠΏΠ°Π»ΡŒΡ†Π΅ добавляСт ΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½Π½ΠΎ Π½ΠΎΠ²Ρ‹ΠΉ ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ Ρ€Π΅Π°Π»ΠΈΠ·ΠΌΠ°, Π·Π°ΠΊΡ€ΡƒΡ‡ΠΈΠ²Π°ΡΡΡŒ ΡΠΏΠΈΡ€Π°Π»ΡŒΠ½ΠΎ, Π² Π±ΠΎΠ»Π΅Π΅ органичСском стилС. Π­Ρ‚ΠΎΠ³ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ достаточно, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ½ΡΡ‚ΡŒ, ΠΏΠΎΡ‡Π΅ΠΌΡƒ для Ρ‰ΡƒΠΏΠ°Π»Π΅Ρ† Π½ΡƒΠΆΠ΅Π½ свой собствСнный Ρ‚ΡƒΡ‚ΠΎΡ€ΠΈΠ°Π».


Для ΠΎΠ±ΠΎΠΈΡ… Ρ‰ΡƒΠΏΠ°Π»Π΅Ρ† ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π³Ρ€Π°Π΄ΠΈΠ΅Π½Ρ‚Π½Ρ‹ΠΉ спуск. Π Π°Π·Π½ΠΈΡ†Π° Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ошибок , ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΎΠ½ΠΈ стрСмятся ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ. ΠœΠ΅Ρ…Π°Π½ΠΈΡ‡Π΅ΡΠΊΠΎΠ΅ Ρ‰ΡƒΠΏΠ°Π»ΡŒΡ†Π΅ слСва просто стрСмится Π΄ΠΎΡΡ‚Π°Ρ‚ΡŒ Π΄ΠΎ мяча, Π΅Ρ‘ Π½Π΅ Π²ΠΎΠ»Π½ΡƒΡŽΡ‚ всС ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹. Как Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΠ΅ Π·Π²Π΅Π½ΠΎ касаСтся мяча, ΠΏΡ€ΠΈΠ±Π»ΠΈΠΆΠ΅Π½ΠΈΠ΅ считаСтся Π·Π°Π²Π΅Ρ€ΡˆΡ‘Π½Π½Ρ‹ΠΌ ΠΈ Ρ‰ΡƒΠΏΠ°Π»ΡŒΡ†Π΅ просто пСрСстаёт Π΄Π²ΠΈΠ³Π°Ρ‚ΡŒΡΡ.

Π©ΡƒΠΏΠ°Π»ΡŒΡ†Π΅ справа ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·ΠΈΡ€ΡƒΠ΅Ρ‚ Π΄Ρ€ΡƒΠ³ΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ. Ѐункция DistanceFromTarget , использованная для манипулятора, Π·Π°ΠΌΠ΅Π½Π΅Π½Π° Π½Π° Π½ΠΎΠ²ΡƒΡŽ, Π±ΠΎΠ»Π΅Π΅ ΡΠ»ΠΎΠΆΠ½ΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ. ΠœΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Π·Π°ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ эту Π½ΠΎΠ²ΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ ErrorFunction ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°Ρ‚ΡŒ ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π°ΠΌ Π²Π°ΠΆΠ½Ρ‹. ΠŸΠΎΠΊΠ°Π·Π°Π½Π½Ρ‹Π΅ Π² этом Ρ‚ΡƒΡ‚ΠΎΡ€ΠΈΠ°Π»Π΅ Ρ‰ΡƒΠΏΠ°Π»ΡŒΡ†Π° ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·ΠΈΡ€ΡƒΡŽΡ‚ Ρ‚Ρ€ΠΈ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ:

  • РасстояниС Π΄ΠΎ Ρ†Π΅Π»ΠΈ : ΡƒΠΆΠ΅ Π³ΠΎΡ‚ΠΎΠ²Π°
  • ΠŸΠΎΠ²ΠΎΡ€ΠΎΡ‚ ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΠ³ΠΎ Π·Π²Π΅Π½Π° : ΠΊΠΎΠ½Π΅Ρ† Ρ‰ΡƒΠΏΠ°Π»ΡŒΡ†Π° пытаСтся ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠΎΠ²ΠΎΡ€ΠΎΡ‚Ρƒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°, ΠΊ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌΡƒ ΠΌΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ ΠΏΡ€ΠΈΠ±Π»ΠΈΠ·ΠΈΡ‚ΡŒΡΡ. Π’Π°ΠΊΠΎΠ΅ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ Π² Π°Π½ΠΈΠΌΠ°Ρ†ΠΈΠΈ Π²Ρ‹ΡˆΠ΅, ΠΊΠΎΠ³Π΄Π° ΠΏΡ€Π°Π²ΠΎΠ΅ Ρ‰ΡƒΠΏΠ°Π»ΡŒΡ†Π΅ ΡΠΏΠΈΡ€Π°Π»ΡŒΠ½ΠΎ загибаСтся Π²ΠΎΠΊΡ€ΡƒΠ³ сфСры. ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΊΠ°ΠΆΠ΄ΠΎΠ΅ сочлСнСниС ΠΈΠΌΠ΅Π΅Ρ‚ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½Ρ‹ΠΉ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΠΉ, это создаёт ΠΏΡƒΠ»ΡŒΡΠ°Ρ†ΠΈΠΈ, Ρ€Π°ΡΠΏΡ€ΠΎΡΡ‚Ρ€Π°Π½ΡΡŽΡ‰ΠΈΠ΅ΡΡ Π²Π½ΠΈΠ· ΠΏΠΎ кинСтичСской Ρ†Π΅ΠΏΠΈ костСй. ΠœΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Π·Π°ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Ρ‰ΡƒΠΏΠ°Π»ΡŒΡ†Π΅ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠΎΠ²ΠΎΡ€ΠΎΡ‚Ρƒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°, ΠΊ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌΡƒ ΠΎΠ½Π° стрСмится. Для этого ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΠ·ΠΌΠ΅Ρ€ΠΈΡ‚ΡŒ ΡƒΠ³ΠΎΠ» ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΏΠΎΠ²ΠΎΡ€ΠΎΡ‚ΠΎΠΌ ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΠ³ΠΎ Π·Π²Π΅Π½Π° ΠΈ ΠΏΠΎΠ²ΠΎΡ€ΠΎΡ‚ΠΎΠΌ Ρ†Π΅Π»ΠΈ. Π’ Unity Π΅ΡΡ‚ΡŒ для этого удобная функция - Quaternion.Angle:

    Float rotationPenalty = Mathf.Abs (Quaternion.Angle(EndEffector.rotation, Destination.rotation) / 180f);
    Π’Π°ΠΊΠΎΠ΅ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΊ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΠΈΡŽ с Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΌ ΠΏΠΎΠ²ΠΎΡ€ΠΎΡ‚ΠΎΠΌ Π½Π΅ всСгда ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚. Π’ зависимости ΠΎΡ‚ ситуации ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹Ρ€Π°Π²Π½ΠΈΠ²Π°Ρ‚ΡŒ Ρ‰ΡƒΠΏΠ°Π»ΡŒΡ†Π΅ ΠΈΠ½Π°Ρ‡Π΅.

  • ΠšΡ€ΡƒΡ‡Π΅Π½ΠΈΠ΅ : Π΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ части Ρ‚Π΅Π»Π° нССстСствСнным ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ Π½Π΅ΠΊΠΎΠΌΡ„ΠΎΡ€Ρ‚Π½ΠΎ. Π­Ρ‚ΠΎΡ‚ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ Β«ΡˆΡ‚Ρ€Π°Ρ„ΡƒΠ΅Ρ‚Β» ΠΊΡ€ΠΈΠ²ΠΎΠ»ΠΈΠ½Π΅ΠΉΠ½Ρ‹Π΅ двиТСния, заставляя ΠΈΠ½Π²Π΅Ρ€ΡΠ½ΡƒΡŽ ΠΊΠΈΠ½Π΅ΠΌΠ°Ρ‚ΠΈΠΊΡƒ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ Π±ΠΎΠ»Π΅Π΅ Π»ΠΈΠ½Π΅ΠΉΠ½Ρ‹ΠΉ, простой ΠΏΠΎΠ²ΠΎΡ€ΠΎΡ‚. Для вычислСния ΡˆΡ‚Ρ€Π°Ρ„Π° Π·Π° ΠΊΡ€ΡƒΡ‡Π΅Π½ΠΈΠ΅ Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ сначала ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΆΠ΅ Ρ‚Π°ΠΊΠΎΠ΅ Β«ΠΊΡ€ΡƒΡ‡Π΅Π½ΠΈΠ΅Β» Π² Π΄Π°Π½Π½ΠΎΠΌ контСкстС. ΠŸΡ€ΠΎΡ‰Π΅ всСго ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ Π΅Π³ΠΎ ΠΊΠ°ΠΊ срСднСС ΡƒΠ³Π»ΠΎΠ² для всСх сочлСнСний. Π’Π°ΠΊΠΎΠΉ ΡˆΡ‚Ρ€Π°Ρ„ стрСмится ΠΊ Ρ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρ‰ΡƒΠΏΠ°Π»ΡŒΡ†Π΅ Π±Ρ‹Π»ΠΎ расслаблСнным, ΠΈ Β«Π½Π°ΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚Β» Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ, Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‰ΠΈΠ΅ большого количСства ΠΈΠ·Π³ΠΈΠ±ΠΎΠ².

    Float torsionPenalty = 0; for (int i = 0; i < solution.Length; i++) torsionPenalty += Mathf.Abs(solution[i]); torsionPenalty /= solution.Length;

Π­Ρ‚ΠΈ Ρ‚Ρ€ΠΈ ограничСния приводят ΠΊ Π±ΠΎΠ»Π΅Π΅ рСалистичному способу двиТСния Ρ‰ΡƒΠΏΠ°Π»Π΅Ρ†. Π‘ΠΎΠ»Π΅Π΅ слоТная вСрсия ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΡ‚ΡŒ колСбания, Π΄Π°ΠΆΠ΅ ΠΊΠΎΠ³Π΄Π° условия ΡƒΠ΄ΠΎΠ²Π»Π΅Ρ‚Π²ΠΎΡ€ΡΡŽΡ‚ всСм ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹ΠΌ ограничСниям.

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ Ρ€Π°Π·Π½Ρ‹Π΅ Π΅Π΄ΠΈΠ½ΠΈΡ†Ρ‹ измСрСния?

Π­Ρ‚ΠΈ Ρ‚Ρ€ΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°, скорСС всСго, Π±ΡƒΠ΄ΡƒΡ‚ Π²Ρ‹Ρ€Π°ΠΆΠ°Ρ‚ΡŒΡΡ Π² Ρ€Π°Π·Π½Ρ‹Ρ… Π΅Π΄ΠΈΠ½ΠΈΡ†Π°Ρ… измСрСния. РасстояниС Π΄ΠΎ Ρ†Π΅Π»ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒΡΡ Π² ΠΌΠ΅Ρ‚Ρ€Π°Ρ…, Π° ΠΏΠΎΠ²ΠΎΡ€ΠΎΡ‚ ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΠ³ΠΎ Π·Π²Π΅Π½Π° - Π² градусах. НуТно Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΈΠΌ вСса согласно ΠΈΡ… ваТности, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρ€Π°Π·Π½ΠΈΡ†Π° Π² Π΄Π΅ΡΡΡ‚ΡŒ градусов Π½Π΅ ΡΡ‡ΠΈΡ‚Π°Π»Π°ΡΡŒ Ρ‚Π°ΠΊΠΎΠΉ ΠΆΠ΅ ΠΏΠ»ΠΎΡ…ΠΎΠΉ, ΠΊΠ°ΠΊ расстояниС Π² Π΄Π΅ΡΡΡ‚ΡŒ ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² Π΄ΠΎ Ρ†Π΅Π»ΠΈ.

Π’ ΠΈΠ΄Π΅Π°Π»Π΅ ΠΈΡ… Π½ΡƒΠΆΠ½ΠΎ Π½ΠΎΡ€ΠΌΠ°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΈ . ПослС этого ΠΌΠΎΠΆΠ½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ коэффициСнты для указания ΠΈΡ… ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ваТности:

Public float ErrorFunction (Vector3 target, float angles) { return NormalisedDistance(target, angles) * DistanceWeight + NormalisedRotation(target, angles) * RotationWeight + NormalisedTorsion (target, angles) * TorsionWeight ; }
Π’Π°ΠΊΠΎΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ Π΅Ρ‰Ρ‘ ΠΈ обСспСчиваСт Π±ΠΎΠ»Π΅Π΅ Ρ‚ΠΎΡ‡Π½Ρ‹ΠΉ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒ Π·Π° ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ΠΌ Ρ‰ΡƒΠΏΠ°Π»ΡŒΡ†Π°. Π’ любой ΠΌΠΎΠΌΠ΅Π½Ρ‚ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ коэффициСнты, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΌΠ΅Π½ΡΡ‚ΡŒ способ двиТСния Π² зависимости ΠΎΡ‚ ситуации. НапримСр, ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΡ‚ΡŒ TorsionWeight , Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρ€Π°ΡΠΏΡƒΡ‚Ρ‹Π²Π°Ρ‚ΡŒ Π·Π°ΠΏΡƒΡ‚Π°Π²ΡˆΠΈΠ΅ΡΡ Ρ‰ΡƒΠΏΠ°Π»ΡŒΡ†Π°.


Π£ нас Π½Π΅Ρ‚ аналитичСского опрСдСлСния!

Π’Ρ€Π°Π΄ΠΈΡ†ΠΈΠΎΠ½Π½ΡƒΡŽ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ прямой ΠΊΠΈΠ½Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΌΠΎΠ΄Π΅Π»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ аналитичСски. Π­Ρ‚ΠΎ Π·Π½Π°Ρ‡ΠΈΡ‚, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ вывСсти ΡƒΡ€Π°Π²Π½Π΅Π½ΠΈΠ΅, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π΅Ρ‘ Ρ€Π΅ΡˆΠ°Π΅Ρ‚. ΠœΡ‹ ΡƒΠΆΠ΅ ΡƒΠΏΠΎΠΌΠΈΠ½Π°Π»ΠΈ ΠΎ сущСствовании аналитичСских ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ двойствСнной ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ инвСрсной ΠΊΠΈΠ½Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠΈ.

На Π΄Π°Π½Π½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ Ρƒ нас Π΅ΡΡ‚ΡŒ функция, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π½Π΅ получится ΠΎΠΏΠΈΡΠ°Ρ‚ΡŒ аналитичСски. Если Π±Ρ‹ ΠΌΡ‹ Π²Ρ‹Π±Ρ€Π°Π»ΠΈ Ρ‚Ρ€Π°Π΄ΠΈΡ†ΠΈΠΎΠ½Π½Ρ‹ΠΉ, аналитичСский ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ ΠΊ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡŽ инвСрсной ΠΊΠΈΠ½Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠΈ, Ρ‚ΠΎ Π½Π°ΠΌ Π½Π΅ ΡƒΠ΄Π°Π»ΠΎΡΡŒ Π±Ρ‹ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Ρ‚Π°ΠΊΠΈΠ΅ Π½ΡŽΠ°Π½ΡΡ‹ повСдСния Ρ‰ΡƒΠΏΠ°Π»ΡŒΡ†Π°. ИспользованиС Π³Ρ€Π°Π΄ΠΈΠ΅Π½Ρ‚Π½ΠΎΠ³ΠΎ спуска ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ (ΠΏΠΎΡ‡Ρ‚ΠΈ!) Π»ΡŽΠ±ΡƒΡŽ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½ΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ, Π΅ΡΡ‚ΡŒ Ρƒ Π½Π΅Ρ‘ ΡƒΡ€Π°Π²Π½Π΅Π½ΠΈΠ΅ ΠΈΠ»ΠΈ Π½Π΅Ρ‚.

Π£ΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½ΡΡ‚Π²ΠΎΠ²Π°Π½ΠΈΡ

ΠŸΡ€Π°ΠΊΡ‚ΠΈΡ‡Π΅ΡΠΊΠΈ Π½Π΅Ρ‚ Π½ΠΈΠΊΠ°ΠΊΠΈΡ… ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠΉ для внСсСния ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΠΉ Π² Π½Π°ΡˆΡƒ модСль. ΠŸΠΎΠ²Ρ‹ΡΠΈΡ‚ΡŒ Ρ€Π΅Π°Π»ΠΈΠ·ΠΌ Ρ‰ΡƒΠΏΠ°Π»Π΅Ρ† ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½ΠΎ ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ‚ функция замСдлСния. Π©ΡƒΠΏΠ°Π»ΡŒΡ†Π° Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π΄Π²ΠΈΠ³Π°Ρ‚ΡŒΡΡ ΠΌΠ΅Π΄Π»Π΅Π½Π½Π΅Π΅, ΠΊΠΎΠ³Π΄Π° ΠΏΡ€ΠΈΠ±Π»ΠΈΠΆΠ°ΡŽΡ‚ΡΡ ΠΊ Ρ†Π΅Π»ΠΈ.

ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, Ρ‰ΡƒΠΏΠ°Π»ΡŒΡ†Π° Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π²Π·Π°ΠΈΠΌΠ½ΠΎ ΠΏΠ΅Ρ€Π΅ΡΠ΅ΠΊΠ°Ρ‚ΡŒΡΡ. Π§Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ этого, слСдуСт ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠ»Π»Π°ΠΉΠ΄Π΅Ρ€Ρ‹ для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ сочлСнСния. Однако это ΠΌΠΎΠΆΠ΅Ρ‚ привСсти ΠΊ ΠΏΡ€ΠΈΡ‡ΡƒΠ΄Π»ΠΈΠ²ΠΎΠΌΡƒ повСдСнию. Π’ нашСм ΠΊΠΎΠ΄Π΅ ΠΊΠΎΠ»Π»ΠΈΠ·ΠΈΠΈ ΠΈΠ³Π½ΠΎΡ€ΠΈΡ€ΡƒΡŽΡ‚ΡΡ ΠΈ ΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΈΠ±Π»ΠΈΠ·ΠΈΡ‚ΡŒΡΡ ΠΊ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡŽ, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡŽΡ‚ самопСрСсСчСния. РСшСниС Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ пригодности, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ с самопСрСсСчСниСм ΠΈΠΌΠ΅Π»ΠΈ высокиС ΡˆΡ‚Ρ€Π°Ρ„Ρ‹.

[Π“ΠΎΡ‚ΠΎΠ²Ρ‹ΠΉ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ Unity со скриптами ΠΈ 3D-модСлями ΠΌΠΎΠΆΠ½ΠΎ приобрСсти Π·Π° 10 Π΄ΠΎΠ»Π»Π°Ρ€ΠΎΠ² Π½Π° страницС Patreon Π°Π²Ρ‚ΠΎΡ€Π° ΠΎΡ€ΠΈΠ³ΠΈΠ½Π°Π»Π° ΡΡ‚Π°Ρ‚ΡŒΠΈ.]

Π˜Π½Π²Π΅Ρ€ΡΠ½Π°Ρ ΠΊΠΈΠ½Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠ° (инвСрсная кинСматичСская анимация , Π°Π½Π³Π». inverse kinematics , IK) - процСсс опрСдСлСния ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² связанных Π³ΠΈΠ±ΠΊΠΈΡ… ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, кинСматичСская пара ΠΈΠ»ΠΈ ΠΊΠΈΠ½Π΅ΠΌΠ°Ρ‚ΠΈΡ‡Π΅ΡΠΊΠ°Ρβ€…Ρ†Π΅ΠΏΡŒ) для достиТСния Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΠΉ ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ, ΠΎΡ€ΠΈΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ ΠΈ располоТСния этих ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ². Π˜Π½Π²Π΅Ρ€ΡΠ½Π°Ρ ΠΊΠΈΠ½Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠ° являСтся Ρ‚ΠΈΠΏΠΎΠΌ планирования двиТСния (Π°Π½Π³Π». ) . Π˜Π½Π²Π΅Ρ€ΡΠ½Π°Ρ ΠΊΠΈΠ½Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠ° Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π² Ρ€ΠΎΠ±ΠΎΡ‚ΠΎΡ‚Π΅Ρ…Π½ΠΈΠΊΠ΅ , Ρ‚Ρ€Ρ‘Ρ…ΠΌΠ΅Ρ€Π½ΠΎΠΉ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π½ΠΎΠΉβ€…Π°Π½ΠΈΠΌΠ°Ρ†ΠΈΠΈ ΠΈ Π² Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅β€…ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π½Ρ‹Ρ…β€…ΠΈΠ³Ρ€ . Она ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π² основном Π² Ρ‚Π΅Ρ… ситуациях, ΠΊΠΎΠ³Π΄Π° Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Ρ‚ΠΎΡ‡Π½ΠΎΠ΅ ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΎΠ½ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π³ΠΈΠ±ΠΊΠΈΡ… сочлСнСний ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² ΠΎΠΊΡ€ΡƒΠΆΠ°ΡŽΡ‰Π΅ΠΉ срСды. Алгоритм инвСрсной ΠΊΠΈΠ½Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠΈ ΠΏΡ€ΠΎΡ‚ΠΈΠ²ΠΎΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΡƒ прямой кинСматики .

Π­Π½Ρ†ΠΈΠΊΠ»ΠΎΠΏΠ΅Π΄ΠΈΡ‡Π½Ρ‹ΠΉ YouTube

    1 / 3

    ΠŸΡ€ΡΠΌΠ°Ρ ΠΈ инвСрсная ΠΊΠΈΠ½Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠ° Π² 3DS Max

    Anime Studio Pro 10, 11(Moho Pro) - Как ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ ΠΈΠ½Π²Π΅Ρ€ΡΠ½ΡƒΡŽ ΠΊΠΈΠ½Π΅ΠΌΠ°Ρ‚ΠΈΠΊΡƒ Π½Π° костяного пСрсонаТа

    Полная костная инвСрсная ΠΊΠΈΠ½Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠ° Π² Anime Studio Pro (Moho Pro) / Full Inverse Kinematics

    Π‘ΡƒΠ±Ρ‚ΠΈΡ‚Ρ€Ρ‹

ОписаниС

Π˜Π½Π²Π΅Ρ€ΡΠ½Π°Ρ ΠΊΠΈΠ½Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠ°, ΠΊΠ°ΠΊ ΠΈ прямая , ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡŽΡ‚ΡΡ ΠΊ модСлям ΠΊΠ°ΠΊΠΈΡ…-Π»ΠΈΠ±ΠΎ пСрсонаТСй ΠΈΠ»ΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ созданы с использованиСм скСлСтной анимации . Π‘ΡƒΡ‚ΡŒ скСлСтной Π°Π½ΠΈΠΌΠ°Ρ†ΠΈΠΈ состоит Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ состоит ΠΈΠ· Π½Π°Π±ΠΎΡ€Π° Ρ‚Π²Ρ‘Ρ€Π΄Ρ‹Ρ… сСгмСнтов (ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ²), соСдинённых сочлСнСниями (Π°Π½Π³Π». joint ). ΠŸΡ€ΠΈ этом сСгмСнты ΠΌΠΎΠ³ΡƒΡ‚ ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΡΡ‚ΡŒΡΡ Π² кинСматичСскиС пары , ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π² свою ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΡΡŽΡ‚ΡΡ Π² кинСматичСскиС цСпи . Π”Π°Π½Π½Ρ‹Π΅ сСгмСнты ΠΎΠ±Ρ€Π°Π·ΡƒΡŽΡ‚ иСрархичСскиС Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΠΌΠ΅ΡŽΡ‚ Β«Π²Π΅Ρ€Ρ…Π½ΠΈΠΉΒ» ΠΈ Β«Π½ΠΈΠΆΠ½ΠΈΠΉΒ» ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ. Π‘Π΅Π³ΠΌΠ΅Π½Ρ‚Ρ‹ (ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹) Π²Π΅Ρ€Ρ…Π½ΠΈΡ… ΡƒΡ€ΠΎΠ²Π½Π΅ΠΉ Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°ΠΌΠΈ-ΠΏΡ€Π΅Π΄ΠΊΠ°ΠΌΠΈ (ΠΈΠ»ΠΈ Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΈΠΌΠΈ сСгмСнтами), Π° ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ Π½ΠΈΠΆΠ½ΠΈΡ… - ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°ΠΌΠΈ-ΠΏΠΎΡ‚ΠΎΠΌΠΊΠ°ΠΌΠΈ (ΠΈΠ»ΠΈ Π΄ΠΎΡ‡Π΅Ρ€Π½ΠΈΠΌΠΈ сСгмСнтами). НапримСр, Ссли Ρ€Π°ΡΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ€ΡƒΠΊΡƒ Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊΠ°, Ρ‚ΠΎ ΠΏΠ»Π΅Ρ‡Π΅Π²ΠΎΠΉ сустав Π±ΡƒΠ΄Π΅Ρ‚ самым Π²Π΅Ρ€Ρ…Π½ΠΈΠΌ ΡƒΡ€ΠΎΠ²Π½Π΅ΠΌ, Π° ΠΊΠΎΠ½Ρ‡ΠΈΠΊ ΠΏΠ°Π»ΡŒΡ†Π° - самым Π½ΠΈΠΆΠ½ΠΈΠΌ, Ρ‚. Π΅. ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠΌ-ΠΏΠΎΡ‚ΠΎΠΌΠΊΠΎΠΌ ΠΊ ΠΏΠ»Π΅Ρ‡Π΅Π²ΠΎΠΌΡƒ суставу. Π›ΠΎΠΊΡ‚Π΅Π²ΠΎΠΉ сустав находится Π²Π½ΡƒΡ‚Ρ€ΠΈ Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠΈ, ΠΎΠ½ Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ ΠΊΠ°ΠΊ Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΈΠ΅ (ΠΏΠ»Π΅Ρ‡ΠΎ), Ρ‚Π°ΠΊ ΠΈ Π΄ΠΎΡ‡Π΅Ρ€Π½ΠΈΠ΅ (Π·Π°ΠΏΡΡΡ‚ΡŒΠ΅, ΠΏΠ°Π»ΡŒΡ†Ρ‹) сСгмСнты.

ΠžΡΠ½ΠΎΠ²Π½Ρ‹ΠΌ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ΠΌ прямой ΠΊΠΈΠ½Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠΈ ΠΎΡ‚ инвСрсной ΠΊΠΈΠ½Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠΈ являСтся Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈ прямой любоС воздСйствиС пСрСдаСтся ΠΏΠΎ иСрархичСской Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠ΅ свСрху Π²Π½ΠΈΠ·. НапримСр, ΠΏΡ€ΠΈ Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΠΈ Ρ‚Π°Π·ΠΎΠ±Π΅Π΄Ρ€Π΅Π½Π½ΠΎΠ³ΠΎ сустава Π΄Π²ΠΈΠ³Π°ΡŽΡ‚ΡΡ всС ΠΏΠΎΡ‚ΠΎΠΌΠΊΠΈ, Ρ‚. Π΅. ΠΊΠΎΠ»Π΅Π½Π½Ρ‹ΠΉ сустав ΠΈ всС ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Π΅. Π˜Π½Π²Π΅Ρ€ΡΠ½Π°Ρ ΠΊΠΈΠ½Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠ° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏ, Π΄ΠΈΠ°ΠΌΠ΅Ρ‚Ρ€Π°Π»ΡŒΠ½ΠΎ ΠΏΡ€ΠΎΡ‚ΠΈΠ²ΠΎΠΏΠΎΠ»ΠΎΠΆΠ½Ρ‹ΠΉ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΡƒ прямой - ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π΅Π½ΠΈΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ²-ΠΏΠΎΡ‚ΠΎΠΌΠΊΠΎΠ² ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ измСнСнию полоТСния ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ²-ΠΏΡ€Π΅Π΄ΠΊΠΎΠ², Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ рассчитываСт ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΈ ΠΎΡ€ΠΈΠ΅Π½Ρ‚Π°Ρ†ΠΈΡŽ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ²-ΠΏΡ€Π΅Π΄ΠΊΠΎΠ², исходя ΠΈΠ· полоТСния ΠΈ ΠΎΡ€ΠΈΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ²-ΠΏΠΎΡ‚ΠΎΠΌΠΊΠΎΠ².

Π’ инвСрсной ΠΊΠΈΠ½Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠ΅ Π΄ΠΎΡ‡Π΅Ρ€Π½ΠΈΠΉ сСгмСнт (ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚-ΠΏΠΎΡ‚ΠΎΠΌΠΎΠΊ), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ полоТСния ΠΈ ΠΎΡ€ΠΈΠ΅Π½Ρ‚Π°Ρ†ΠΈΡŽ Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² ΠΈ располоТСн Π² сСрСдинС ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠΉ иСрархичСской Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠ΅ сСгмСнтов, называСтся эффСктором (Π°Π½Π³Π». effector ) . Если эффСктор являСтся ΠΊΠΎΠ½Π΅Ρ‡Π½Ρ‹ΠΌ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠΌ Π΄Π°Π½Π½ΠΎΠΉ иСрархичСской Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠΈ, Ρ‚ΠΎ ΠΎΠ½ называСтся ΠΊΠΎΠ½Π΅Ρ‡Π½Ρ‹ΠΌ эффСктором (Π°Π½Π³Π». end effector ). ИмСнно Ρ‡Π΅Ρ€Π΅Π· эффСктор осущСствляСтся ΠΌΠ°Π½ΠΈΠΏΡƒΠ»ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ всСй иСрархичСской Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠΎΠΉ. ИзмСнСниС полоТСния ΠΈ/ΠΈΠ»ΠΈ ΠΎΡ€ΠΈΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΠ³ΠΎ эффСктора ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ измСнСнию полоТСния ΠΈ/ΠΈΠ»ΠΈ ΠΎΡ€ΠΈΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ всСх сСгмСнтов иСрархичСской Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠΈ ΠΏΠΎ Π·Π°ΠΊΠΎΠ½Π°ΠΌ инвСрсной ΠΊΠΈΠ½Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠΈ. ИзмСнСниС полоТСния ΠΈ/ΠΈΠ»ΠΈ ΠΎΡ€ΠΈΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ простого (Π½Π΅ ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΠ³ΠΎ) эффСктора ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ Ρ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ², стоящих ΠΏΠΎ ΠΈΠ΅Ρ€Π°Ρ€Ρ…ΠΈΠΈ Π½ΠΈΠΆΠ΅ Π΅Π³ΠΎ, мСняСтся ΠΏΠΎ Π·Π°ΠΊΠΎΠ½Π°ΠΌ прямой ΠΊΠΈΠ½Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠΈ, Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² с Π±ΠΎΠ»Π΅Π΅ высокой ΠΈΠ΅Ρ€Π°Ρ€Ρ…ΠΈΠ΅ΠΉ - ΠΏΠΎ Π·Π°ΠΊΠΎΠ½Π°ΠΌ инвСрсной ΠΊΠΈΠ½Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠΈ.

ΠšΠ»ΡŽΡ‡ΠΎΠΌ ΠΊ ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎΠΉ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ инвСрсной ΠΊΠΈΠ½Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠΈ являСтся анимация Π² ΠΏΡ€Π΅Π΄Π΅Π»Π°Ρ… ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠΉ (Π°Π½Π³Π». constraints ): конСчности ΠΌΠΎΠ΄Π΅Π»ΠΈ пСрсонаТа Π΄ΠΎΠ»ΠΆΠ½Ρ‹ вСсти сСбя Π² Ρ€Π°Π·ΡƒΠΌΠ½Ρ‹Ρ… антропоморфичСских ΠΏΡ€Π΅Π΄Π΅Π»Π°Ρ…. Π’ΠΎΡ‡Π½ΠΎ такая ΠΆΠ΅ ситуация ΠΈ с робототСхничСскими устройствами, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΠΌΠ΅ΡŽΡ‚ физичСскиС ограничСния, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ срСда, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΎΠ½ΠΈ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚, ограничСния двиТСния ΠΈΡ… суставов ΠΈ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½Ρ‹Π΅ физичСскиС Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ ΠΈ скорости, с ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ ΠΎΠ½ΠΈ Π² состоянии Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ.

ИспользованиС ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹

Π˜Π½Π²Π΅Ρ€ΡΠ½Π°Ρ ΠΊΠΈΠ½Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠ° являСтся инструмСнтом, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ часто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ Ρ…ΡƒΠ΄ΠΎΠΆΠ½ΠΈΠΊΠΈ Ρ‚Ρ€Ρ‘Ρ…ΠΌΠ΅Ρ€Π½ΠΎΠΉβ€…Π³Ρ€Π°Ρ„ΠΈΠΊΠΈ . Для Ρ…ΡƒΠ΄ΠΎΠΆΠ½ΠΈΠΊΠ° ΠΏΡ€ΠΎΡ‰Π΅ Π²Ρ‹Ρ€Π°Π·ΠΈΡ‚ΡŒ ΠΆΠ΅Π»Π°Π΅ΠΌΠΎΠ΅ пространствСнноС дСйствиС, Ρ‡Π΅ΠΌ нСпосрСдствСнно ΠΌΠ°Π½ΠΈΠΏΡƒΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΡƒΠ³Π»Π°ΠΌΠΈ сочлСнСний. НапримСр, инвСрсная ΠΊΠΈΠ½Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠ° позволяСт Ρ…ΡƒΠ΄ΠΎΠΆΠ½ΠΈΠΊΡƒ Π΄Π²ΠΈΠ³Π°Ρ‚ΡŒ Ρ€ΡƒΠΊΠΎΠΉ ΠΌΠΎΠ΄Π΅Π»ΠΈ Ρ‚Ρ€Ρ‘Ρ…ΠΌΠ΅Ρ€Π½ΠΎΠ³ΠΎ Π³ΡƒΠΌΠ°Π½ΠΎΠΈΠ΄Π½ΠΎΠ³ΠΎ пСрсонаТа ΠΊ ΠΆΠ΅Π»Π°Π΅ΠΌΠΎΠΉ ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ ΠΈ ΠΎΡ€ΠΈΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ. ΠŸΡ€ΠΈ этом сам Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ, Π° Π½Π΅ Ρ…ΡƒΠ΄ΠΎΠΆΠ½ΠΈΠΊ, Π²Ρ‹Π±ΠΈΡ€Π°Π΅Ρ‚ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹Π΅ ΡƒΠ³Π»Ρ‹ Π·Π°ΠΏΡΡΡ‚ΡŒΡ, локтя ΠΈ ΠΏΠ»Π΅Ρ‡Π΅Π²ΠΎΠ³ΠΎ сустава.

НапримСр, Ссли Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊ Ρ…ΠΎΡ‡Π΅Ρ‚ ΡΡ…Π²Π°Ρ‚ΠΈΡ‚ΡŒ Π΄Π²Π΅Ρ€Π½ΡƒΡŽ Ρ€ΡƒΡ‡ΠΊΡƒ Ρ€ΡƒΠΊΠΎΠΉ, Ρ‚ΠΎ Π΅Π³ΠΎ ΠΌΠΎΠ·Π³ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ вычислСния для ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠ³ΠΎ позиционирования Ρ€ΡƒΠΊΠΈ ΠΈ Ρ‚ΡƒΠ»ΠΎΠ²ΠΈΡ‰Π° Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊΠ°. Основная Ρ†Π΅Π»ΡŒ состоит Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π΄Π²ΠΈΠ³Π°Ρ‚ΡŒ Ρ€ΡƒΠΊΠΎΠΉ, Π½ΠΎ Π½ΡƒΠΆΠ½ΠΎ Π·Π°Π΄Π΅ΠΉΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠ½ΠΎΠ³ΠΎ слоТных суставов с нСсколькими сочлСнСниями, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π΄ΠΎΠ±Ρ€Π°Ρ‚ΡŒΡΡ Ρ€ΡƒΠΊΠΎΠΉ ΠΊ ΠΆΠ΅Π»Π°Π΅ΠΌΠΎΠΌΡƒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρƒ. ΠŸΠΎΠ΄ΠΎΠ±Π½Ρ‹ΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ происходит процСсс Π² тСхнологичСских прилоТСниях - Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π΄ΠΎΡΡ‚ΠΈΡ‡ΡŒ ΠΆΠ΅Π»Π°Π΅ΠΌΠΎΠΉ Ρ†Π΅Π»ΠΈ, Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½Ρ‹ матСматичСскиС вычислСния инвСрсной ΠΊΠΈΠ½Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠΈ для располоТСния конСчностСй ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹ΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ. ΠŸΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠΌ, ΠΊΠΎΠ³Π΄Π° вычислСния инвСрсной ΠΊΠΈΠ½Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠΈ часто Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹, являСтся Ρ€ΠΎΠ±ΠΎΡ‚ΠΎΡ‚Π΅Ρ…Π½ΠΈΠΊΠ°. НапримСр, ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ Ρ€ΠΎΠ±ΠΎΡ‚Π° Ρ…ΠΎΡ‡Π΅Ρ‚ ΠΏΠΎΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ ΠΊΠ°ΠΊΠΎΠΉ-Π»ΠΈΠ±ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ манипулятора , ΠΎΠ΄Π½Π°ΠΊΠΎ, СстСствСнно, ΠΎΠ½ Π½Π΅ Ρ…ΠΎΡ‡Π΅Ρ‚ ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΌ сочлСнСниСм манипулятора ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎ.

Π”Ρ€ΡƒΠ³ΠΈΠΌΠΈ прилоТСниями, Π³Π΄Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ инвСрсная ΠΊΠΈΠ½Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠ°, ΡΠ²Π»ΡΡŽΡ‚ΡΡ прилоТСния ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π½ΠΎΠΉβ€…Π³Ρ€Π°Ρ„ΠΈΠΊΠΈ ΠΈ Π°Π½ΠΈΠΌΠ°Ρ†ΠΈΠΈ . НапримСр, Π°Π½ΠΈΠΌΠ°Ρ‚ΠΎΡ€Ρ‹ хотят ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ модСлью Π³ΡƒΠΌΠ°Π½ΠΎΠΈΠ΄Π½ΠΎΠ³ΠΎ пСрсонаТа, анимация ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ гСнСрируСтся ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€ΠΎΠΌ, ΠΎΠ΄Π½Π°ΠΊΠΎ ΠΎΡ‡Π΅Π½ΡŒ Ρ‚Ρ€ΡƒΠ΄Π½ΠΎ Π°Π½ΠΈΠΌΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΠ½Π΄ΠΈΠ²ΠΈΠ΄ΡƒΠ°Π»ΡŒΠ½Ρ‹Π΅ сочлСнСния. РСшСниС состоит Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠΌΠΎΠ΄Π΅Π»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Π΅ сочлСнСния Β«ΠΌΠ°Ρ€ΠΈΠΎΠ½Π΅Ρ‚ΠΎΡ‡Π½ΠΎΠΉ ΠΊΡƒΠΊΠ»Ρ‹Β» ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ΡŒ Π°Π½ΠΈΠΌΠ°Ρ‚ΠΎΡ€Ρƒ Π΄Π²ΠΈΠ³Π°Ρ‚ΡŒ Ρ€ΡƒΠΊΠ°ΠΌΠΈ, Π½ΠΎΠ³Π°ΠΌΠΈ ΠΈ Ρ‚ΡƒΠ»ΠΎΠ²ΠΈΡ‰Π΅ΠΌ ΠΊΡƒΠΊΠ»Ρ‹, Π° ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€ с использованиСм инвСрсной ΠΊΠΈΠ½Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠΈ автоматичСски сгСнСрируСт Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ конСчностСй для достиТСния Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π°.

Π˜Π½Π²Π΅Ρ€ΡΠ½Π°Ρ ΠΊΠΈΠ½Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠ° часто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π² ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π½Ρ‹Ρ…β€…ΠΈΠ³Ρ€Π°Ρ… для создания Π°Π½ΠΈΠΌΠ°Ρ†ΠΈΠΈ Π³ΡƒΠΌΠ°Π½ΠΎΠΈΠ΄Π½Ρ‹Ρ… пСрсонаТСй. Π’ основном инвСрсная ΠΊΠΈΠ½Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠ° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для создания Π°Π½ΠΈΠΌΠ°Ρ†ΠΈΠΈ Π½ΠΎΠ³ ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊΠΎΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠ³ΠΎ сущСства ΠΈΠ»ΠΈ Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊΠ°. НапримСр, довольно просто ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π°Π½ΠΈΠΌΠ°Ρ†ΠΈΡŽ пСрСдвиТСния (Ρ…ΠΎΠ΄ΡŒΠ±Π°, Π±Π΅Π³) Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊΠ° ΠΈΠ»ΠΈ Π½Π°Π·Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΆΠΈΠ²ΠΎΡ‚Π½ΠΎΠ³ΠΎ, Ссли ΠΎΠ½ двиТСтся ΠΏΠΎ Ρ€ΠΎΠ²Π½ΠΎΠΉ плоскости. Однако Ссли Π»Π°Π½Π΄ΡˆΠ°Ρ„Ρ‚ Π½Π΅Ρ€ΠΎΠ²Π½Ρ‹ΠΉ (бугристый, ухабистый, пСрСсСчённая ΠΈΠ»ΠΈ горная ΠΌΠ΅ΡΡ‚Π½ΠΎΡΡ‚ΡŒ), Ρ‚ΠΎ созданиС Ρ‚ΠΎΡ‡Π½ΠΎΠΉ Π°Π½ΠΈΠΌΠ°Ρ†ΠΈΠΈ Ρ…ΠΎΠ΄ΡŒΠ±Ρ‹ являСтся фактичСски Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΠΉ Π·Π°Π΄Π°Ρ‡Π΅ΠΉ. Анимация Π½ΠΎΠ³ Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ Ρ€Π΅Π»ΡŒΠ΅Ρ„Ρƒ повСрхности, Ρ‡Ρ‚ΠΎ проявится Π² Ρ‚Π°ΠΊΠΈΡ… эффСктах, ΠΊΠ°ΠΊ ΠΏΡ€ΠΎΡΠΊΠ°Π»ΡŒΠ·Ρ‹Π²Π°Π½ΠΈΠ΅ Π½ΠΎΠ³ ΠΏΠΎ повСрхности ΠΈ Π½Π΅Ρ‚ΠΎΡ‡Π½ΠΎΠΌ ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΎΠ½ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ Π½ΠΎΠ³ ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π΅Ρ‘ (ступня Π±ΡƒΠ΄Π΅Ρ‚ Β«ΡƒΡ‚ΠΎΠΏΠ°Ρ‚ΡŒΒ» Π² ΠΏΠΎΠ²Π΅Ρ€Ρ…Π½ΠΎΡΡ‚ΡŒ ΠΈΠ»ΠΈ Β«Π½Π΅ Π΄ΠΎΡΡ‚Π°Π²Π°Ρ‚ΡŒΒ» Π΄ΠΎ Π½Π΅Ρ‘). ИмСнно для качСствСнного ΠΈ эффСктивного Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ этих ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ инвСрсная ΠΊΠΈΠ½Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠ°.

К Π΄Ρ€ΡƒΠ³ΠΈΠΌ прилоТСниям, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ ΠΈΠ½Π²Π΅Ρ€ΡΠ½ΡƒΡŽ ΠΊΠΈΠ½Π΅ΠΌΠ°Ρ‚ΠΈΠΊΡƒ, относятся интСрактивная манипуляция, ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Π°Π½ΠΈΠΌΠ°Ρ†ΠΈΠ΅ΠΉ ΠΈ избСТаниС столкновСний .

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΡ

Π’Π½Π΅ΡˆΠ½ΠΈΠ΅ ссылки

АнглоязычныС источники

  • Hugo Elias. Inverseβ€…Kinematics Архивировано 13 августа 2011 Π³ΠΎΠ΄Π°.
  • Hugo Elias. Inverseβ€…Kinematicsβ€…-β€…Improvedβ€…Methods (Π°Π½Π³Π».) . freespace.virgin.net. ΠŸΡ€ΠΎΠ²Π΅Ρ€Π΅Π½ΠΎ 5 июня 2009. Архивировано 13 августа 2011 Π³ΠΎΠ΄Π°.
  • Robotβ€…Inverseβ€…Kinematics (Π°Π½Π³Π».) . www.learnaboutrobots.com. ΠŸΡ€ΠΎΠ²Π΅Ρ€Π΅Π½ΠΎ 5 июня 2009. Архивировано 13 августа 2011 Π³ΠΎΠ΄Π°.
  • Howβ€…doβ€…theβ€…charactersβ€…inβ€…videoβ€…gamesβ€…moveβ€…soβ€…fluidly? (Π°Π½Π³Π».) . ΠŸΡ€ΠΎΠ²Π΅Ρ€Π΅Π½ΠΎ 5 июня 2009. Архивировано 13 августа 2011 Π³ΠΎΠ΄Π°.
  • Martin John Baker. 3Dβ€…Theoryβ€…-β€…Kinematicsβ€…-β€…Jointsβ€… Inverseβ€…Kinematics (Π°Π½Π³Π».) . www.euclideanspace.com. ΠŸΡ€ΠΎΠ²Π΅Ρ€Π΅Π½ΠΎ 5 июня 2009. Архивировано 13 августа 2011 Π³ΠΎΠ΄Π°.
  • Lydia E. Kavraki. Proteinβ€…Inverseβ€…Kinematicsβ€…andβ€…theβ€…Loopβ€…Closureβ€…Problem (Π°Π½Π³Π».) . cnx.org. ΠŸΡ€ΠΎΠ²Π΅Ρ€Π΅Π½ΠΎ 5 июня 2009. Архивировано 13 августа 2011 Π³ΠΎΠ΄Π°.
  • Diego Park. Computerβ€…Graphics (Π°Π½Π³Π».) . diegopark.googlepages.com. ΠŸΡ€ΠΎΠ²Π΅Ρ€Π΅Π½ΠΎ 5 июня 2009. Архивировано 13 августа 2011 Π³ΠΎΠ΄Π°.
  • Bill Baxter.

Π—Π΄Π΅ΡΡŒ ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ Π°Π½ΠΈΠΌΠ°Ρ†ΠΈΡŽ для пСрсонаТа, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΌΡ‹ ΠΈΠ·Π³ΠΎΡ‚ΠΎΠ²ΠΈΠ»ΠΈ Π² Π“Π»Π°Π²Π΅ 4. На сСй Ρ€Π°Π· ΠΎΠ±ΠΎΠΉΡ‚ΠΈΡΡŒ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ сфСрами ΠΈ Ρ‡Π°ΠΉΠ½ΠΈΠΊΠ°ΠΌΠΈ Π½Π΅ удастся, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Π½Π°ΠΌ Π½ΡƒΠΆΠ΅Π½ Π½Π΅ ΠΏΠΎΠ΄ΠΎΠΏΡ‹Ρ‚Π½Ρ‹ΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚, Π° иСрархичСски-связанная систСма ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ².

ΠŸΡ€ΡΠΌΠ°Ρ ΠΊΠΈΠ½Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠ° (FK)

ΠŸΡ€ΡΠΌΠ°Ρ ΠΊΠΈΠ½Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠ° (FK - Forward Kinematics) прСдставляСт собой Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΠ΅ Π΄ΠΎΡ‡Π΅Ρ€Π½ΠΈΡ… ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΈΡ…. Π—Π΄Π΅ΡΡŒ Π½Π΅Ρ‚ Π½ΠΈΡ‡Π΅Π³ΠΎ Ρ…ΠΈΡ‚Ρ€ΠΎΠ³ΠΎ. Π‘ΠΎΠ·Π΄Π°Π΄ΠΈΠΌ ΠΏΡ€ΡΠΌΡƒΡŽ ΠΊΠΈΠ½Π΅ΠΌΠ°Ρ‚ΠΈΠΊΡƒ для Ρ€ΡƒΠΊ нашСго пСрсонаТа. Для этого ΠΎΡ‚ΠΊΡ€ΠΎΠ΅ΠΌ Ρ„Π°ΠΉΠ» с пСрсонаТСм. НаТмём ΠΊΠ½ΠΎΠΏΠΊΡƒ Auto Key.

ΠŸΡƒΡΠΊΠ°ΠΉ пСрсонаТ ΠΏΠΎΠΌΠ°ΡˆΠ΅Ρ‚ Π½Π°ΠΌ Ρ€ΡƒΠΊΠΎΠΉ.

БмСстим Π±Π΅Π³ΡƒΠ½ΠΎΠΊ Π² ΠΊΠ°ΠΊΠΎΠΉ-Π½ΠΈΠ±ΡƒΠ΄ΡŒ ΠΊΠ°Π΄Ρ€, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π² 10-ΠΉ, ΠΏΠΎΠ΄Π½ΠΈΠΌΠ΅ΠΌ Ρ€ΡƒΠΊΡƒ Π²Π²Π΅Ρ€Ρ…. Π”Π΅Π»Π°Ρ‚ΡŒ это ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ вращСния, ΠΏΡ€ΠΈΡ‡Ρ‘ΠΌ, для придания Π½ΡƒΠΆΠ½ΠΎΠ³ΠΎ полоТСния, скорСй всСго ΠΏΠΎΠ²Π΅Ρ€Π½ΡƒΡ‚ΡŒ придётся ΠΎΠ±Π΅ части Ρ€ΡƒΠΊΠΈ.

ВСрнёмся Π² Π½Π°Ρ‡Π°Π»ΠΎ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π° () ΠΈ ΠΏΡ€ΠΎΠΈΠ³Ρ€Π°Π΅ΠΌ Π°Π½ΠΈΠΌΠ°Ρ†ΠΈΡŽ. Если Π’Π°ΠΌ показалось, Ρ‡Ρ‚ΠΎ пСрсонаТ ΠΏΠΎΠ΄Π½ΠΈΠΌΠ°Π΅Ρ‚ Ρ€ΡƒΠΊΡƒ слишком быстро, сдСлайтС ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅: Π²Ρ‹Π΄Π΅Π»ΠΈΡ‚Π΅ ΠΎΠ±Π΅ части Ρ€ΡƒΠΊΠΈ (ΠΏΠ»Π΅Ρ‡ΠΎ ΠΈ ΠΏΡ€Π΅Π΄ΠΏΠ»Π΅Ρ‡ΠΈΠ΅), Π·Π°Ρ‚Π΅ΠΌ ΠΏΠ΅Ρ€Π΅ΠΉΠ΄ΠΈΡ‚Π΅ Π² строку отобраТСния Π½ΠΎΠΌΠ΅Ρ€ΠΎΠ² ΠΊΠ°Π΄Ρ€ΠΎΠ², Π²Ρ‹Π΄Π΅Π»ΠΈΡ‚Π΅ Π²Ρ‚ΠΎΡ€Ρ‹Π΅ ΠΊΠ»ΡŽΡ‡ΠΈ (Ρƒ нас Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΈΡ‚ΠΎΠΌ ΠΆΠ΅ мСстС находятся Π΄Π²Π° ΠΊΠ»ΡŽΡ‡Π° - для ΠΏΠ»Π΅Ρ‡Π° ΠΈ для прСдплСчия) Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²Ρ‹Π΄Π΅Π»ΠΈΠ»ΠΈΡΡŒ ΠΎΠ±Π°, натянитС Π²ΠΎΠΊΡ€ΡƒΠ³ Π½ΠΈΡ… ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΡƒΡŽ ΠΎΠ±Π»Π°ΡΡ‚ΡŒ. Π’Ρ‹Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ ΠΊΠ»ΡŽΡ‡ΠΈ станут Π±Π΅Π»Ρ‹ΠΌΠΈ. ΠŸΠ΅Ρ€Π΅Π΄Π²ΠΈΠ½ΡŒΡ‚Π΅ ΠΈΡ… Π² ΠΊΠ°ΠΊΠΎΠΉ-Π½ΠΈΠ±ΡƒΠ΄ΡŒ Π΄Ρ€ΡƒΠ³ΠΎΠΉ ΠΊΠ°Π΄Ρ€, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ 15-ΠΉ. ΠœΠΎΠΆΠ΅Ρ‚Π΅ Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒΡΡ Π½Π°Π·Π°Π΄ ΠΈ ΠΏΡ€ΠΎΠΈΠ³Ρ€Π°Ρ‚ΡŒ Π°Π½ΠΈΠΌΠ°Ρ†ΠΈΡŽ Π΅Ρ‰Ρ‘ Ρ€Π°Π·.

ΠŸΠΎΡΡ‚Π°Π²ΡŒΡ‚Π΅ Π±Π΅Π³ΡƒΠ½ΠΎΠΊ Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ ΠΏΠΎΠ·ΠΈΡ†ΠΈΡŽ (Ρ‡Π΅Ρ€Π΅Π· нСсколько ΠΊΠ°Π΄Ρ€ΠΎΠ² послС 15-Π³ΠΎ) ΠΈ ΠΏΠΎΠ²Π΅Ρ€Π½ΠΈΡ‚Π΅ ΠΏΠ»Π΅Ρ‡ΠΎ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ Π²Π»Π΅Π²ΠΎ. Π•Ρ‰Ρ‘ нСсколько Ρ€Π°Π· ΠΏΠΎΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π°ΠΉΡ‚Π΅ Π±Π΅Π³ΡƒΠ½ΠΎΠΊ ΠΈ ΠΏΠΎΠΏΠΎΠ²ΠΎΡ€Π°Ρ‡ΠΈΠ²Π°ΠΉΡ‚Π΅ ΠΏΠ»Π΅Ρ‡ΠΎ Ρ‚ΡƒΠ΄Π°-сюда. Π—Π°Ρ‚Π΅ΠΌ создайтС Π·Π°ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΊΠ°Π΄Ρ€, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Ρ€ΡƒΠΊΠ° Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠΏΡƒΡ‰Π΅Π½Π° ΠΈ Ρ‡ΡƒΡ‚ΡŒ согнута Π² Π»ΠΎΠΊΡ‚Π΅. Если Π²Ρ‹ запуститС Π°Π½ΠΈΠΌΠ°Ρ†ΠΈΡŽ, Ρ‚ΠΎ ΡƒΠ²ΠΈΠ΄ΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎ ΠΏΠ»Π΅Ρ‡ΠΎ двигаСтся Ρ‚Π°ΠΊ, ΠΊΠ°ΠΊ ΠΈ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π΄Π²ΠΈΠ³Π°Ρ‚ΡŒΡΡ ΠΊΠΎΠ³Π΄Π° Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊ ΠΌΠ°ΡˆΠ΅Ρ‚ Ρ€ΡƒΠΊΠΎΠΉ, Π° ΠΏΡ€Π΅Π΄ΠΏΠ»Π΅Ρ‡ΡŒΠ΅ ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎ наклоняСтся. Π­Ρ‚ΠΎ происходит ΠΏΠΎΡ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ для прСдплСчия ΠΌΡ‹ создали Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π΄Π²Π° ΠΊΠ»ΡŽΡ‡Π° с достаточно большим расстояниСм ΠΌΠ΅ΠΆΠ΄Ρƒ Π½ΠΈΠΌΠΈ.

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ·Π±Π°Π²ΠΈΡ‚ΡŒΡΡ ΠΎΡ‚ этого эффСкта, Π½Π°Π΄ΠΎ Π² послСднСм Π²Π·ΠΌΠ°Ρ…Π΅ Ρ€ΡƒΠΊΠΎΠΉ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΊΠ»ΡŽΡ‡, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΠΏΡ€Π΅Π΄ΠΏΠ»Π΅Ρ‡ΠΈΠ΅ находится Π² ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠΌ ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ. Π‘ΠΎΠ·Π΄Π°Ρ‚ΡŒ этот ΠΊΠ»ΡŽΡ‡ ΠΆΠ΅Π»Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ Π² Ρ‚ΠΎΠΌ ΠΆΠ΅ ΠΊΠ°Π΄Ρ€Π΅, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ стоит ΠΊΠ»ΡŽΡ‡ для послСднСго Π²Π·ΠΌΠ°Ρ…Π° ΠΏΠ»Π΅Ρ‡ΠΎΠΌ (прСдпослСдний ΠΊΠ»ΡŽΡ‡ для ΠΏΠ»Π΅Ρ‡Π°). Π’Ρ‹Π΄Π΅Π»ΠΈΡ‚Π΅ ΠΏΠ»Π΅Ρ‡ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π»ΠΈΡΡŒ Π΅Π³ΠΎ Π°Π½ΠΈΠΌΠ°Ρ†ΠΈΠΎΠ½Π½Ρ‹Π΅ ΠΊΠ»ΡŽΡ‡ΠΈ, ΠΈ пСрСмСститС Π±Π΅Π³ΡƒΠ½ΠΎΠΊ Π² ΠΊΠ°Π΄Ρ€, Π³Π΄Π΅ находится Π΅Π³ΠΎ прСдпослСдний ΠΊΠ»ΡŽΡ‡. Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π²Ρ‹Π΄Π΅Π»ΠΈΡ‚Π΅ ΠΏΡ€Π΅Π΄ΠΏΠ»Π΅Ρ‡ΠΈΠ΅ ΠΈ ΠΏΠΎΠ²Π΅Ρ€Π½ΠΈΡ‚Π΅ Π΅Π³ΠΎ Π² Π½ΡƒΠΆΠ½ΠΎΠ΅ ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. ΠŸΡ€ΠΎΠΈΠ³Ρ€Π°ΠΉΡ‚Π΅ Π°Π½ΠΈΠΌΠ°Ρ†ΠΈΡŽ снова. Π’Π΅ΠΏΠ΅Ρ€ΡŒ пСрсонаТ ΠΌΠ°ΡˆΠ΅Ρ‚ Ρ€ΡƒΠΊΠΎΠΉ Π±ΠΎΠ»Π΅Π΅ СстСствСнно. Π’Ρ‹ΠΊΠ»ΡŽΡ‡ΠΈΠΌ ΠΊΠ½ΠΎΠΏΠΊΡƒ Auto Key. Π­Ρ‚Ρƒ ΠΊΠ½ΠΎΠΏΠΊΡƒ Π²ΠΎΠΎΠ±Ρ‰Π΅ Π»ΡƒΡ‡ΡˆΠ΅ Π½Π΅ Π΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ зря Π²ΠΊΠ»ΡŽΡ‡Ρ‘Π½Π½ΠΎΠΉ, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Π² этом случаС ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π½Π΅ΠΆΠ΅Π»Π°Ρ‚Π΅Π»ΡŒΠ½ΡƒΡŽ Π°Π½ΠΈΠΌΠ°Ρ†ΠΈΡŽ Π²ΠΎ врСмя рСдактирования ΠΈ размСщСния ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ². ΠŸΡ€ΠΈ Π²Ρ‹ΠΊΠ»ΡŽΡ‡Π΅Π½Π½ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠ΅ Auto Key анимация ΠΏΠΎ-ΠΏΡ€Π΅ΠΆΠ½Π΅ΠΌΡƒ проигрываСтся, Π½ΠΎ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Π΅Ρ‘ нСльзя ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ. Врансформация ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ Ρ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ сдвигаСтся сама анимация. Если ΠΌΡ‹ сСйчас Π² Π½ΡƒΠ»Π΅Π²ΠΎΠΌ ΠΊΠ°Π΄Ρ€Π΅ ΠΏΠΎΠ²Π΅Ρ€Π½Ρ‘ΠΌ Ρ€ΡƒΠΊΡƒ пСрсонаТа Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ½Π° Π±Ρ‹Π»Π° вытянута Π²ΠΏΠ΅Ρ€Ρ‘Π΄ ΠΈ ΠΏΡ€ΠΎΠΈΠ³Ρ€Π°Π΅ΠΌ Π°Π½ΠΈΠΌΠ°Ρ†ΠΈΡŽ, Ρ‚ΠΎ ΡƒΠ²ΠΈΠ΄Π΅ΠΌ, Ρ‡Ρ‚ΠΎ Ρ€ΡƒΠΊΠ° двиТСтся Π² Π΄Ρ€ΡƒΠ³ΠΎΠΌ ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ. НаТмём Undo, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²ΠΎΡΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ ΠΏΠ΅Ρ€Π²ΠΎΠ½Π°Ρ‡Π°Π»ΡŒΠ½ΡƒΡŽ Π°Π½ΠΈΠΌΠ°Ρ†ΠΈΡŽ.

Подводим ΠΈΡ‚ΠΎΠ³ΠΈ: ΠΌΡ‹ создали ΠΌΠ½ΠΎΠ³ΠΎ Π°Π½ΠΈΠΌΠ°Ρ†ΠΈΠΎΠ½Π½Ρ‹Ρ… ΠΊΠ»ΡŽΡ‡Π΅ΠΉ для ΠΏΠ»Π΅Ρ‡Π° ΠΈ всСго Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅ ΠΊΠ»ΡŽΡ‡Π° для прСдплСчия. ΠœΠ΅ΠΆΠ΄Ρƒ Π²Ρ‚ΠΎΡ€Ρ‹ΠΌ ΠΈ Ρ‚Ρ€Π΅Ρ‚ΠΈΠΌ ΠΊΠ»ΡŽΡ‡Π°ΠΌΠΈ ΠΏΡ€Π΅Π΄ΠΏΠ»Π΅Ρ‡ΠΈΠ΅ Π½Π΅ΠΏΠΎΠ΄Π²ΠΈΠΆΠ½ΠΎ ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ своСго Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° - ΠΏΠ»Π΅Ρ‡Π°.

Π—Π΄Π΅ΡΡŒ Ρ„Π°ΠΉΠ» с Π°Π½ΠΈΠΌΠ°Ρ†ΠΈΠ΅ΠΉ Ρ€ΡƒΠΊΠΈ (Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ 3ds MAX 6).

Π˜Π½Π²Π΅Ρ€ΡΠ½Π°Ρ ΠΊΠΈΠ½Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠ° (IK)

Π˜Π½Π²Π΅Ρ€ΡΠ½Π°Ρ ΠΊΠΈΠ½Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠ° (Inverse Kinematics) примСняСтся Π² Ρ‚Π΅Ρ… случаях, ΠΊΠΎΠ³Π΄Π° Π½Π°ΠΌ Π½Π°Π΄ΠΎ ΠΏΠΎΠΏΠ°ΡΡ‚ΡŒ ΠΊΠ°ΠΊΠΈΠΌ-Π»ΠΈΠ±ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠΌ ΠΈΠ· нашСй ΠΈΠ΅Ρ€Π°Ρ€Ρ…ΠΈΠΈ Π² Π·Π°Π΄Π°Π½Π½ΠΎΠ΅ ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. К ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρƒ, Ссли ΠΌΡ‹ Π·Π°Ρ…ΠΎΡ‚ΠΈΠΌ Π°Π½ΠΈΠΌΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ…ΠΎΠ΄ΡŒΠ±Ρƒ пСрсонаТа, Π½ΠΎΠ³ΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π²ΡΡ‚Π°Π²Π°Ρ‚ΡŒ Π½Π° зСмлю ΠΈ Π½Π΅ ΠΏΡ€ΠΎΡΠΊΠ°Π»ΡŒΠ·Ρ‹Π²Π°Ρ‚ΡŒ Π²ΠΎ Π²Ρ€Π΅ΠΌΡ‹ двиТСния Ρ‚ΡƒΠ»ΠΎΠ²ΠΈΡ‰Π° ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π·Π΅ΠΌΠ»ΠΈ. Π”ΠΎΠ±ΠΈΡ‚ΡŒΡΡ этого ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΏΡ€ΡΠΌΡƒΡŽ ΠΊΠΈΠ½Π΅ΠΌΠ°Ρ‚ΠΈΠΊΡƒ ΠΊΡ€Π°ΠΉΠ½Π΅ Ρ‚Ρ€ΡƒΠ΄Π½ΠΎ, практичСски Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ. К ΡΡ‡Π°ΡΡ‚ΡŒΡŽ, сущСствуСт инвСрсная ΠΊΠΈΠ½Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠ°.

ΠœΡ‹ рассмотрим срСдства инвСрсной ΠΊΠΈΠ½Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π±Ρ‹Π»ΠΈ Π²Π²Π΅Π΄Π΅Π½Ρ‹ Π² 3ds МAX 4 ΠΈ ΡΠΎΡ…Ρ€Π°Π½ΠΈΠ»ΠΈΡΡŒ Π΄ΠΎ послСдних вСрсий (3ds MAX 7). Π’ Π±ΠΎΠ»Π΅Π΅ Ρ€Π°Π½Π½ΠΈΡ… вСрсиях инвСрсная ΠΊΠΈΠ½Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠ° Π±Ρ‹Π»Π° устроСна нСсколько ΠΈΠ½Π°Ρ‡Π΅.

Π˜Π½Π²Π΅Ρ€ΡΠ½Π°Ρ ΠΊΠΈΠ½Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠ° создаётся ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ Ρ‚Π°ΠΊ Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΡ‹Ρ… Ρ†Π΅ΠΏΠ΅ΠΉ инвСрсной ΠΊΠΈΠ½Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠΈ (IK Chain). ЦСпь создаётся ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ привязанными Π΄Ρ€ΡƒΠ³ ΠΊ Π΄Ρ€ΡƒΠ³Ρƒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ. Для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Ρ‚Π°ΠΊΡƒΡŽ Ρ†Π΅ΠΏΡŒ, иСрархичСская ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Π΄ΠΎΠ»ΠΆΠ½Π° ΠΎΠΊΠ°Π½Ρ‡ΠΈΠ²Π°Ρ‚ΡŒΡΡ Π½Π΅ΠΊΠΈΠΌ Π²ΡΠΏΠΎΠΌΠΎΠ³Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ Π΄ΠΎΡ‡Π΅Ρ€Π½ΠΈΠΌ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠΌ. ΠœΡ‹ прослСдим созданиС Ρ†Π΅ΠΏΠΈ инвСрсной ΠΊΠΈΠ½Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠΈ Π½Π° Π½ΠΎΠ³Π°Ρ… нашСго пСрсонаТа, ΠΏΡ€ΠΈ этом послСдним Π²ΡΠΏΠΎΠΌΠΎΠ³Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠΌ Ρ†Π΅ΠΏΠΈ Π±ΡƒΠ΄Π΅Ρ‚ ступня.

Π’Ρ‹Π΄Π΅Π»ΠΈΠΌ ΠΊΠΎΡ€Π½Π΅Π²ΠΎΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ нашСй Ρ†Π΅ΠΏΠΈ. Π˜ΠΌΠ΅ΠΉΡ‚Π΅ Π²Π²ΠΈΠ΄Ρƒ, Ρ‡Ρ‚ΠΎ ΠΊΠΎΡ€Π½Π΅Π²ΠΎΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Ρ†Π΅ΠΏΠΈ - это Π½Π΅ ΠΊΠΎΡ€Π½Π΅Π²ΠΎΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ всСй ΠΈΠ΅Ρ€Π°Ρ€Ρ…ΠΈΠΈ Π² Ρ†Π΅Π»ΠΎΠΌ, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ Π½Π΅ body, Π° Π±Π΅Π΄Ρ€ΠΎ (thigh). Π’Ρ‹Π΄Π΅Π»ΠΈΠΌ Π±Π΅Π΄Ρ€ΠΎ ΠΈ Π²ΠΎΠΉΠ΄Ρ‘ΠΌ Π² ΠΏΡƒΠ½ΠΊΡ‚ Π³Π»Π°Π²Π½ΠΎΠ³ΠΎ мСню Animation . ΠžΡ‚ΠΊΡ€ΠΎΠ΅ΠΌ Π² Animation ΠΏΡƒΠ½ΠΊΡ‚ IK Solver (Ρ€Π΅ΡˆΠ°Ρ‚Π΅Π»ΡŒ инвСрсной ΠΊΠΈΠ½Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠΈ). Π’Π°ΠΌ ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΈΠ΄Π΅Ρ‚ΡŒ:

HI Solver (History Independent Solver) - историчСски-нСзависимый Ρ€Π΅ΡˆΠ°Ρ‚Π΅Π»ΡŒ

HD Solver (History Dependent Solver) - историчСски-зависимый Ρ€Π΅ΡˆΠ°Ρ‚Π΅Π»ΡŒ (Π»ΡƒΡ‡ΡˆΠΈΠΉ Ρ€Π΅ΡˆΠ°Ρ‚Π΅Π»ΡŒ для ΠΊΠΎΡ€ΠΎΡ‚ΠΊΠΈΡ… Π°Π½ΠΈΠΌΠ°Ρ†ΠΈΠΎΠ½Π½Ρ‹Ρ… ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚Π΅ΠΉ, Π½ΠΎ Π΄Π°Ρ‘Ρ‚ ΠΏΠ»ΠΎΡ…ΠΈΠ΅ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ ΠΏΡ€ΠΈ Π΄Π»ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ Π°Π½ΠΈΠΌΠ°Ρ†ΠΈΠΈ)

IK Limb Solver - Ρ€Π΅ΡˆΠ°Ρ‚Π΅Π»ΡŒ для Π°Π½ΠΈΠΌΠ°Ρ†ΠΈΠΈ конСчностСй, расчитан Π½Π° Π΄Π²Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° иСрархичСской Ρ†Π΅ΠΏΠΈ

Spline IK Solver - сплайновый Ρ€Π΅ΡˆΠ°Ρ‚Π΅Π»ΡŒ

ΠœΡ‹ Π±ΡƒΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ HI Solver. IK Limb Solver хотя ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½ для Π°Π½ΠΈΠΌΠ°Ρ†ΠΈΠΈ конСчностСй Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊΠ°, Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΎΠ½ ΠΏΠ»ΠΎΡ…ΠΎ, ΠΏΡ€ΠΈ Π΅Π³ΠΎ использовании Ρƒ пСрсонаТа всСгда ΠΎΠ΄Π½ΠΎ ΠΊΠΎΠ»Π΅Π½ΠΎ выгибаСтся Π½Π°Π·Π°Π΄, Π° ΠΎΠ΄ΠΈΠ½ Π»ΠΎΠΊΠΎΡ‚ΡŒ - Π²ΠΏΠ΅Ρ€Ρ‘Π΄.

Если Π±Π΅Π΄Ρ€ΠΎ Ρƒ нас ΠΏΠΎ-ΠΏΡ€Π΅ΠΆΠ½Π΅ΠΌΡƒ Π²Ρ‹Π΄Π΅Π»Π΅Π½ΠΎ, Π²Ρ‹Π±Π΅Ρ€Π΅ΠΌ HI Solver ΠΈ ΠΊΠ»ΠΈΠΊΠ½Π΅ΠΌ ΠΌΡ‹ΡˆΡŒΡŽ Π½Π° ΡΡ‚ΡƒΠΏΠ½ΡŽ Ρ‚ΠΎΠΉ ΠΆΠ΅ самой Π½ΠΎΠ³ΠΈ, Π±Π΅Π΄Ρ€ΠΎ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π²Ρ‹Π΄Π΅Π»Π΅Π½ΠΎ. Π£ нас Π΄ΠΎΠ»ΠΆΠ½Π° ΠΏΠΎΡΠ²ΠΈΡ‚ΡŒΡΡ пСтля, ΡΠ²ΡΠ·Ρ‹Π²Π°ΡŽΡ‰Π°Ρ ΠΎΠ±Π΅ части Π½ΠΎΠ³ΠΈ, ΠΈ синий крСст Π² ΠΎΠΏΠΎΡ€Π½ΠΎΠΉ Ρ‚ΠΎΡ‡ΠΊΠ΅ ступни. ЦСпь инвСрсной ΠΊΠΈΠ½Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠΈ являСтся Π²ΡΠΏΠΎΠΌΠΎΠ³Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠΌ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΈΠΌΠ΅Π΅Ρ‚ Ρ†Π²Π΅Ρ‚ ΠΈ имя. ΠœΠΎΠΆΠ΅Ρ‚Π΅ для удобства ΠΏΠ΅Ρ€Π΅Π½Π°Π·Π²Π°Ρ‚ΡŒ ΡΠΎΠ·Π΄Π°Π½Π½ΡƒΡŽ Ρ†Π΅ΠΏΡŒ. Π‘ΠΎΠ·Π΄Π°Π΄ΠΈΠΌ Ρ‚ΠΎΡ‡Π½ΠΎ Ρ‚Π°ΠΊΡƒΡŽ ΠΆΠ΅ Ρ†Π΅ΠΏΡŒ для Π²Ρ‚ΠΎΡ€ΠΎΠΉ Π½ΠΎΠ³ΠΈ.

Π‘ΠΈΠ½ΠΈΠΉ крСстик - Ρ‚Π°ΠΊ Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΡ‹ΠΉ Ρ†Π΅Π»Π΅Π²ΠΎΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ (IK Goal ). Если ΠΌΡ‹ сСйчас ΠΏΠΎΠΏΡ€ΠΎΠ±ΡƒΠ΅ΠΌ Π΅Π³ΠΎ ΠΏΠΎΠ΄Π²ΠΈΠ³Π°Ρ‚ΡŒ, Ρ‚ΠΎ ΡƒΠ²ΠΈΠ΄Π΅ΠΌ, Ρ‡Ρ‚ΠΎ Π½ΠΎΠ³Π° сгибаСтся ΠΈ поворачиваСтся Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ опорная Ρ‚ΠΎΡ‡ΠΊΠ° ступни всСгда Π½Π°Ρ…ΠΎΠ΄ΠΈΠ»Π°ΡΡŒ Π² Ρ†Π΅Π½Ρ‚Ρ€Π΅ крСстика (ΠΏΡ€ΠΈ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ сама ступня Π½Π΅ пСрСмСщаСтся ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π³ΠΎΠ»Π΅Π½ΠΈ). Настройки для наслСдования вращСния, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΡ‹ сдСлали для ступни, Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Π½Π΅ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΎΠ½ΠΈ ΠΎΡΡƒΡ‰Π΅ΡΡ‚Π²Π»ΡΠ»ΠΈΡΡŒ для прямой ΠΊΠΈΠ½Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠΈ.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ стало понятно, Π·Π°Ρ‡Π΅ΠΌ Π½ΡƒΠΆΠ΅Π½ Π²ΡΠΏΠΎΠΌΠΎΠ³Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ Π΄ΠΎΡ‡Π΅Ρ€Π½ΠΈΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚: Π΅Π³ΠΎ опорная Ρ‚ΠΎΡ‡ΠΊΠ° являСтся ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠΌ для Ρ†Π΅ΠΏΠΈ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠΉ ΠΊΠΈΠ½Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠΈ. Π§Ρ‚ΠΎΠ±Ρ‹ ступня двигалась СстСствСнно, Π½Π°Π΄ΠΎ ΠΊ Π½Π΅ΠΉ ΠΏΡ€ΠΈΠ²ΡΠ·Π°Ρ‚ΡŒ Π΅Ρ‰Ρ‘ ΠΊΠ°ΠΊΠΎΠΉ-Π½ΠΈΠ±ΡƒΠ΄ΡŒ Π²ΡΠΏΠΎΠΌΠΎΠ³Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚, ΠΈ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Π΅Ρ‰Ρ‘ ΠΎΠ΄Π½Ρƒ Ρ†Π΅ΠΏΡŒ инвСрсной ΠΊΠΈΠ½Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠΈ, Π½ΠΎ ΠΌΡ‹ сСйчас этим Π·Π°Π½ΠΈΠΌΠ°Ρ‚ΡŒΡΡ Π½Π΅ Π±ΡƒΠ΄Π΅ΠΌ, Π° ΠΏΠΎΠΏΡ€ΠΎΠ±ΡƒΠ΅ΠΌ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π°Π½ΠΈΠΌΠ°Ρ†ΠΈΡŽ Ρ…ΠΎΠ΄ΡŒΠ±Ρ‹.

Если Π½Π΅ Π½Π°ΠΆΠ°Ρ‚Π° ΠΊΠ½ΠΎΠΏΠΊΠ° Auto Key, Π½Π°ΠΆΠΌΡ‘ΠΌ Π΅Ρ‘. ΠŸΠ΅Ρ€Π΅ΠΌΠ΅ΡΡ‚ΠΈΠΌ Π±Π΅Π³ΡƒΠ½ΠΎΠΊ Π² ΠΊΠ°ΠΊΠΎΠΉ-Π½ΠΈΠ±ΡƒΠ΄ΡŒ ΠΊΠ°Π΄Ρ€, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ 10. Начнём Ρ…ΠΎΠ΄ΡŒΠ±Ρƒ с ΠΏΡ€Π°Π²ΠΎΠΉ Π½ΠΎΠ³ΠΈ. ПоднимСм Π΅Ρ‘ (ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ IK Goal) ΠΈ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ занСсём. Π’ΡƒΠ»ΠΎΠ²ΠΈΡ‰Π΅ Ρ‚ΠΎΠΆΠ΅ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠ΄Π²ΠΈΠ½Π΅ΠΌ Π²ΠΏΠ΅Ρ€Ρ‘Π΄, Ρ‚Π°ΠΊ, ΠΊΠ°ΠΊ ΠΎΠ½ΠΎ подвинСтся Π½Π° ΠΏΠΎΠ»ΡƒΡˆΠ°Π³Π΅. ΠŸΠ΅Ρ€Π΅ΠΌΠ΅ΡΡ‚ΠΈΠΌ Π±Π΅Π³ΡƒΠ½ΠΎΠΊ снова. ΠŸΠΎΡΡ‚Π°Π²ΠΈΠΌ ΡΡ‚ΡƒΠΏΠ½ΡŽ Π½Π° зСмлю, Π° Ρ‚ΡƒΠ»ΠΎΠ²ΠΈΡ‰Π΅ Π΅Ρ‰Ρ‘ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠ΄ΠΎΠ΄Π²ΠΈΠ½Π΅ΠΌ. Π—Π°ΠΌΠ΅Ρ‚ΠΈΠΌ, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ создавали Π°Π½ΠΈΠΌΠ°Ρ†ΠΈΠΎΠ½Π½Ρ‹Π΅ ΠΊΠ»ΡŽΡ‡ΠΈ Π½Π΅ для вращСния Π±Π΅Π΄Ρ€Π° ΠΈ Π³ΠΎΠ»Π΅Π½ΠΈ, Π° для пСрСмСщСния IK Goal.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π½Π°Π΄ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π°Π½ΠΈΠΌΠ°Ρ†ΠΈΠΎΠ½Π½Ρ‹ΠΉ ΠΊΠ»ΡŽΡ‡ для IK Goal Π² Ρ‚ΠΎΠΌ ΠΆΠ΅ ΠΊΠ°Π΄Ρ€Π΅, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ правая ступня вновь ΠΊΠΎΡΠ½ΡƒΠ»Π°ΡΡŒ Π·Π΅ΠΌΠ»ΠΈ. Π’ΠΎΠΎΠ±Ρ‰Π΅, ΠΊΠ»ΡŽΡ‡ создастся ΠΏΠΎ ΠΌΠ°Π»Π΅ΠΉΡˆΠ΅ΠΌΡƒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π΅Π½ΠΈΡŽ нашСго IK Goal для Π»Π΅Π²ΠΎΠΉ Π½ΠΎΠ³ΠΈ, Π½ΠΎ Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΊΠ»ΡŽΡ‡ Π½Π΅ пСрСмСщая Π½ΠΎΠ³Ρƒ, Π½Π°Π΄ΠΎ Π½Π°ΠΆΠ°Ρ‚ΡŒ Π½Π° Π±ΠΎΠ»ΡŒΡˆΡƒΡŽ ΠΊΠ½ΠΎΠΏΠΊΡƒ с ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ΠΌ ΠΊΠ»ΡŽΡ‡Π° (Set Key - ΠΏΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ ΠΊΠ»ΡŽΡ‡). Π›ΠΈΠ±ΠΎ, ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΎΠΉΡ‚ΠΈ Π²ΠΎ Π²ΠΊΠ»Π°Π΄ΠΊΡƒ Motion ΠΈ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π°Π½ΠΈΠΌΠ°Ρ†ΠΈΠΎΠ½Π½Ρ‹ΠΉ ΠΊΠ»ΡŽΡ‡ ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ ΠΊΠ½ΠΎΠΏΠΊΠΈ Position Π² Π³Ρ€ΡƒΠΏΠΏΠ΅ Create Key.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΏΡ€ΠΎΠ΄Π΅Π»Π°Π΅ΠΌ Π°Π½ΠΈΠΌΠ°Ρ†ΠΈΡŽ Π»Π΅Π²ΠΎΠΉ Π½ΠΎΠ³ΠΈ Ρ‚ΠΎΡ‡Π½ΠΎ Ρ‚Π°ΠΊ ΠΆΠ΅, ΠΊΠ°ΠΊ ΠΌΡ‹ это Π΄Π΅Π»Π°Π»ΠΈ для ΠΏΡ€Π°Π²ΠΎΠΉ, Π½Π΅ забывая ΠΏΡ€ΠΈ этом ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π°Ρ‚ΡŒ Ρ‚ΡƒΠ»ΠΎΠ²ΠΈΡ‰Π΅. ΠžΡ‚ΠΌΠΎΡ‚Π°Π΅ΠΌ Π°Π½ΠΈΠΌΠ°Ρ†ΠΈΡŽ Π½Π°Π·Π°Π΄ ΠΈ ΠΏΡ€ΠΎΠΈΠ³Ρ€Π°Π΅ΠΌ. Если ΠΌΡ‹ всё сдСлали ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ, пСрсонаТ Π΄Π΅Π»Π°Π΅Ρ‚ Π΄Π²Π° шага, ΠΏΡ€ΠΈ Ρ‡Ρ‘ΠΌ ΠΏΠΎΠΊΠ° ΠΎΠ΄Π½Π° Π½ΠΎΠ³Π° ΡˆΠ°Π³Π°Π΅Ρ‚, вторая Π½Π΅ ΠΏΡ€ΠΎΡΠΊΠ°Π»ΡŒΠ·Ρ‹Π²Π°Π΅Ρ‚. На странноС Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΠ΅ ступнСй ΠΏΠΎΠΊΠ° Π½Π΅ Π±ΡƒΠ΄Π΅ΠΌ ΠΎΠ±Ρ€Π°Ρ‰Π°Ρ‚ΡŒ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Π² Π΄Π°Π½Π½ΠΎΠΌ случаС ΠΎΠ½ΠΈ Ρƒ нас ΠΈΠ³Ρ€Π°ΡŽΡ‚ Ρ€ΠΎΠ»ΡŒ Π²ΠΏΠΎΠΌΠΎΠ³Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ².

Π—Π΄Π΅ΡΡŒ готовая сцСна , Π³Π΄Π΅ пСрсонаТ Π΄Π΅Π»Π°Π΅Ρ‚ Π΄Π²Π° шага ΠΈ ΠΌΠ°ΡˆΠ΅Ρ‚ Ρ€ΡƒΠΊΠΎΠΉ.

Π˜Ρ‚Π°ΠΊ, ΠΌΡ‹ познакомились с прямой ΠΈ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠΉ ΠΊΠΈΠ½Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠΎΠΉ, Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΊ Π±ΠΎΠ»Π΅Π΅ ΡΠ΅Ρ€ΡŒΡ‘Π·Π½Ρ‹ΠΌ Π²Π΅Ρ‰Π°ΠΌ: знакомству с систСмами костСй ΠΈ созданию скСлСта для Π°Π½ΠΈΠΌΠ°Ρ†ΠΈΠΈ Π±ΠΎΠ»Π΅Π΅ слоТного ΠΈ Π΄Π΅Ρ‚Π°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ пСрсонаТа.

ΠœΡ‹ ΠΏΠΎΡ€Π°Π±ΠΎΡ‚Π°Π»ΠΈ с инструмСнтом Joint ΠΈ Ρ€Π°Π·ΠΎΠ±Ρ€Π°Π»ΠΈΡΡŒ, ΠΊΠ°ΠΊ ΠΎΠ½ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚. Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π΄Π°Π²Π°ΠΉΡ‚Π΅ посмотрим, ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ суставами Π±ΠΎΠ»Π΅Π΅ простым способом. Π’ этой Π³Π»Π°Π²Π΅ я расскаТу ΠΏΡ€ΠΎ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΠ· Ρ‚Π°ΠΊΠΈΡ… срСдств, ΠΈ Π·Π°Ρ‚Π΅ΠΌ ΠΌΡ‹ смоТСм ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΡ… Π΄Π°Π»Π΅Π΅ для Ρ€ΠΈΠ³Π³ΠΈΠ½Π³Π° нашСго пСрсонаТа. И ΠΏΠ΅Ρ€Π²Ρ‹ΠΌ инструмСнтом, с ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ я вас познакомлю, это ΠΎΠ΄ΠΈΠ½ ΠΈΠ· самых Π²Π°ΠΆΠ½Ρ‹Ρ… инструмСнтов, ΠΎ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π²Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΡƒΠ·Π½Π°Ρ‚ΡŒ – это инструмСнт IK Handle. Π― просто расскаТу, Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ инвСрсная ΠΊΠΈΠ½Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠ° (Inverse Kinematics), ΠΊΠ°ΠΊ ΠΎΠ½Π° Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΈ основы Ρ‚ΠΎΠ³ΠΎ ΠΊΠ°ΠΊ Π΅Π΅ Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ.

Π˜Π½Π²Π΅Ρ€ΡΠ½Π°Ρ ΠΊΠΈΠ½Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠ° - ΠΎΠ΄ΠΈΠ½ ΠΈΠ· Π΄Π²ΡƒΡ… способов ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ суставами скСлСта. ΠŸΠ΅Ρ€Π²Ρ‹ΠΉ способ называСтся Forward Kinematics (прямая ΠΊΠΈΠ½Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠ°), ΠΈ ΠΏΠΎ сути это Π²Ρ€Π°Ρ‰Π΅Π½ΠΈΠ΅. Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π½Π΅Π³ΠΎ Π²Ρ‹ ΠΏΠΎΠ²ΠΎΡ€Π°Ρ‡ΠΈΠ²Π°Π΅Ρ‚Π΅ ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚Π΅ суставы Π½Π° мСсто ΠΈ это, вСроятнСС всСго, Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ СстСствСнный способ манипулярования, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ наши суставы ΠΊΠ°ΠΊ Ρ€Π°Π· просто ΠΏΠΎΠ²ΠΎΡ€Π°Ρ‡ΠΈΠ²Π°ΡŽΡ‚ΡΡ Π² Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… направлСниях, Π° Ρ‚Π°ΠΊΠΆΠ΅ Π²ΠΎΠΊΡ€ΡƒΠ³ Π΄Ρ€ΡƒΠ³ Π΄Ρ€ΡƒΠ³Π°. Π’ΠΎ Π΅ΡΡ‚ΡŒ ΠΊΠ°ΠΆΠ΄ΠΎΠ΅ Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΠ΅ нашСго Ρ‚Π΅Π»Π° - это ΠΏΠΎΠ²ΠΎΡ€ΠΎΡ‚ ΠΊΠ°ΠΊΠΎΠ³ΠΎ-Ρ‚ΠΎ сустава.

Π˜Π½Π²Π΅Ρ€ΡΠ½Π°Ρ ΠΊΠΈΠ½Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠ° основана Π½Π° понятии Goal - Ρ†Π΅Π»ΡŒ, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ мСста, ΠΊΡƒΠ΄Π° Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΏΠΎΠ²Π΅Ρ€Π½ΡƒΡ‚ΡŒΡΡ сустав. Π­Ρ‚ΠΎ позволяСт Π½Π°ΠΌ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ ΠΊΠΎΠ½Π΅Ρ‡Π½ΡƒΡŽ ΠΏΠΎΠ·ΠΈΡ†ΠΈΡŽ сустава ΠΏΡ€ΠΈ ΠΏΠΎΠ²ΠΎΡ€ΠΎΡ‚Π΅. Π‘Π°ΠΌΡ‹ΠΉ простой способ Π·Π°ΠΏΠΎΠΌΠ½ΠΈΡ‚ΡŒ это – ΠΏΠΎΠ½ΡΡ‚ΡŒ Ρ‡Ρ‚ΠΎ, прямая ΠΊΠΈΠ½Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠ° основана Π½Π° Π²Ρ€Π°Ρ‰Π΅Π½ΠΈΠΈ сустава, Π° инвСрсная ΠΊΠΈΠ½Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠ° основана Π½Π° ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ сустава, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΎΠ½ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΎΠΊΠ°Π·Π°Ρ‚ΡŒΡΡ Π² пространствС, ΠΊΠΎΠ³Π΄Π° ΠΌΡ‹ Π²Ρ€Π°Ρ‰Π°Π΅ΠΌ Π΅Π³ΠΎ.

Π”Π°Π²Π°ΠΉΡ‚Π΅ я Π²Π°ΠΌ быстро ΠΏΠΎΠΊΠ°ΠΆΡƒ ΠΏΡ€ΠΈΠΌΠ΅Ρ€. Π£ мСня здСсь Π΄Π²Π΅ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹Π΅ Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠΈ суставов. ΠŸΠ΅Ρ€Π²Π°Ρ Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠ° суставов Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ‚ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠΉ ΠΊΠΈΠ½Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠΈ, поэтому ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Сю происходит Ρ‡Π΅Ρ€Π΅Π· Forward kinematics, Π° Π½Π° нашСй ΠΏΡ€Π°Π²ΠΎΠΉ Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠ΅ Ρƒ нас установлСн IK Handle, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΠΉ ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ суставами с использованиСм Inverse Kinematics. Π― ΠΏΠ΅Ρ€Π΅ΠΉΠ΄Ρƒ ΠΊ ΠΎΠΊΠ½Ρƒ ΠΏΡ€ΠΎΠ΅ΠΊΡ†ΠΈΠΈ Π²ΠΈΠ΄ сбоку. И я Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΡ€ΠΈΠ±Π»ΠΈΠΆΡƒ модСль Π² ΠΎΠΊΠ½Π΅ ΠΏΡ€ΠΎΠ΅ΠΊΡ†ΠΈΠΈ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π»ΡƒΡ‡ΡˆΠ΅ Π²ΠΈΠ΄Π΅Ρ‚ΡŒ.

Π•Ρ‰Π΅ Ρ€Π°Π·, Forward Kinematics - это ΠΏΠΎΠ²ΠΎΡ€ΠΎΡ‚. Π― Ρ…ΠΎΡ‡Ρƒ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ ΠΊΠΎΠ½Π΅Ρ† этой Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠΈ суставов ΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ Π²ΠΎΡ‚ этот сустав Π² Ρ†Π΅Π½Ρ‚Ρ€ ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚. Π― Π±ΡƒΠ΄Ρƒ Π²Ρ€Π°Ρ‰Π°Ρ‚ΡŒ всС эти суставы Π²ΠΎΠΊΡ€ΡƒΠ³ ΠΎΠ΄Π½ΠΎΠΉ Ρ‚ΠΎΡ‡ΠΊΠΈ. Π”Π°Π²Π°ΠΉΡ‚Π΅ сразу Π½Π°Ρ‡Π½Π΅ΠΌ это Π΄Π΅Π»Π°Ρ‚ΡŒ. Π― Π½Π°ΠΆΠΌΡƒ ΠΊΠ»Π°Π²ΠΈΡˆΡƒ E, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ инструмСнт Rotate, ΠΈ ΠΊΠ°ΠΊ Π²ΠΈΠ΄ΠΈΡ‚Π΅, ΠΊΠΎΠ³Π΄Π° ΠΌΡ‹ Π½Π°Ρ‡ΠΈΠ½Π°Π΅ΠΌ Π΅Π³ΠΎ Π²Ρ€Π°Ρ‰Π°Ρ‚ΡŒ, Ρ‚ΠΎ довольно нСпросто Π΄ΠΎΡΡ‚ΠΈΡ‡ΡŒ Ρ†Π΅Π»ΠΈ ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ ΠΎΠ΄Π½ΠΈΡ… Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΠΎΠ²ΠΎΡ€ΠΎΡ‚ΠΎΠ². Π’Π°ΠΊ Ρ‡Ρ‚ΠΎ я ΠΏΠΎΠ²Π΅Ρ€Π½Ρƒ этот сустав Π²ΠΎΡ‚ Ρ‚Π°ΠΊ, Π° этот Ρ‚Π°ΠΊ, Π° этот снова ΠΏΠΎΠ²Π΅Ρ€Π½Ρƒ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ Π½Π°Π·Π°Π΄, ΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Π½ΡƒΠΆΠ½ΠΎ ΠΎΠΏΡΡ‚ΡŒ ΠΏΠΎΠ²Π΅Ρ€Π½ΡƒΡ‚ΡŒ этот. Π― сСйчас дСлаю всС Π½Π° Π³Π»Π°Π·, ΠΈ Π½Π΅ дСлаю слишком Π°ΠΊΠΊΡƒΡ€Π°Ρ‚Π½ΠΎ ΠΏΡ€ΠΈ располоТСнии этих суставов, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ Π²Ρ€Π°Ρ‰Π΅Π½ΠΈΠ΅ ΠΈ ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ суставов Π½Π΅ слишком ΡΠΎΠ²ΠΏΠ°Π΄Π°ΡŽΡ‚ Π΄Ρ€ΡƒΠ³ с Π΄Ρ€ΡƒΠ³ΠΎΠΌ.

Inverse kinematics Π΄Π΅Π»Π°Π΅Ρ‚ этот процСсс Π³ΠΎΡ€Π°Π·Π΄ΠΎ Π±ΠΎΠ»Π΅Π΅ простым. Если ΠΌΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ Ρ‚ΠΎΡ‡Π½ΠΎ ΠΊΡƒΠ΄Π°-Ρ‚ΠΎ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ эту Ρ†Π΅ΠΏΠΎΡ‡ΠΊΡƒ с инвСрсной ΠΊΠΈΠ½Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠΎΠΉ, всС, Ρ‡Ρ‚ΠΎ ΠΌΠ½Π΅ Π½ΡƒΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ, Ρ‰Π΅Π»ΠΊΠ½ΡƒΡ‚ΡŒ ΠΏΠΎ этому крСстику Π²Π½ΠΈΠ·Ρƒ, ΠΎΠ½ называСтся IK Handle1. Π’Π΅ΠΏΠ΅Ρ€ΡŒ я ΠΌΠΎΠ³Ρƒ Π½Π°ΠΆΠ°Ρ‚ΡŒ W, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ ΠΊ инструмСнту Move, ΠΈ просто ΠΏΠ΅Ρ€Π΅ΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ ΠΌΠΎΠΉ сустав Π² Ρ†Π΅Π»ΡŒ.

Π’ΠΎΡ‚ Ρ‚Π°ΠΊ просто. ΠœΠ°ΡƒΠ° автоматичСски ΠΏΠΎΠ²ΠΎΡ€Π°Ρ‡ΠΈΠ²Π°Π΅Ρ‚ всС суставы Ρ€Π°Π²Π½ΠΎΠΌΠ΅Ρ€Π½ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π΄ΠΎΡΡ‚ΠΈΡ‡ΡŒ Ρ†Π΅Π»ΠΈ. Но Ссли ΠΆΠ΅ я Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π²Ρ‹Π²Π΅Π΄Ρƒ сустав Π·Π° ΠΏΡ€Π΅Π΄Π΅Π»Ρ‹ этой Ρ†Π΅Π»ΠΈ, Ρƒ нас ΠΏΠΎΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ ΠΌΡ‹ Π½Π΅ ΠΌΠΎΠΆΠ΅ΠΌ Π΄ΠΎΡΡ‚ΠΈΡ‡ΡŒ любой Ρ‚ΠΎΡ‡ΠΊΠΈ, ΠΊΠ°ΠΊΠΎΠΉ Ρ…ΠΎΡ‚ΠΈΠΌ, Π½ΠΎ Ссли Π²Ρ‹Π±ΠΈΡ€Π°Ρ‚ΡŒ Ρ‚ΠΎΡ‡ΠΊΠΈ ΠΏΠΎΠ±Π»ΠΈΠΆΠ΅, всС получится. Как Π²Ρ‹ ΠΌΠΎΠ³Π»ΠΈ Π·Π°ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ, эти Π΄Π²Π° ΠΌΠ΅Ρ‚ΠΎΠ΄Π° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Π² Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… ситуациях.

ΠžΠ±Ρ‹Ρ‡Π½ΠΎ Forward Kinematics Π΄Π°Π΅Ρ‚ Π½Π°ΠΌ Π±ΠΎΠ»Π΅Π΅ СстСствСнноС ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π΅Π½ΠΈΠ΅, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΎΠ½ΠΎ основано Π½Π° ΠΏΠΎΠ²ΠΎΡ€ΠΎΡ‚Π°Ρ…, Ρ‡Ρ‚ΠΎ ΠΎΡ‡Π΅Π½ΡŒ Π½Π°Ρ‚ΡƒΡ€Π°Π»ΡŒΠ½ΠΎ выглядит Π² Π°Π½ΠΈΠΌΠ°Ρ†ΠΈΠΈ пСрсонаТСй. Но ΠΎΠ±Π° ΠΌΠ΅Ρ‚ΠΎΠ΄Π° ΠΈΠΌΠ΅ΡŽΡ‚ мСсто Π±Ρ‹Ρ‚ΡŒ. Π― ΠΏΠΎΠΊΠ°Π·Π°Π» Π²Π°ΠΌ, ΠΊΠ°ΠΊ это Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚, Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Π΄Π°Π²Π°ΠΉΡ‚Π΅ я ΠΏΠΎΠΊΠ°ΠΆΡƒ Π²Π°ΠΌ, ΠΊΠ°ΠΊ быстро ΠΈΡ… Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ. Π”Π°Π²Π°ΠΉΡ‚Π΅ создадим Π½ΠΎΠ²ΡƒΡŽ сцСну File / New Scene ΠΈ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠΌ пустоС пространство. И ΠΏΠ΅Ρ€Π΅ΠΉΠ΄Π΅ΠΌ ΠΊ ΠΎΠΊΠ½Ρƒ ΠΏΡ€ΠΎΠ΅ΠΊΡ†ΠΈΠΈ Π²ΠΈΠ΄ сбоку. Π― Π²Ρ‹Π±Π΅Ρ€Ρƒ Skeleton / Joint tool.

Π”Π°Π²Π°ΠΉΡ‚Π΅ сдСлаСм ΠΎΡ‡Π΅Π½ΡŒ ΠΏΡ€ΠΎΡΡ‚ΡƒΡŽ Ρ†Π΅ΠΏΡŒ суставов, ΡΠΎΡΡ‚ΠΎΡΡ‰ΡƒΡŽ ΠΈΠ· Π΄Π²ΡƒΡ… костСй. Π― Ρ‰Π΅Π»ΠΊΠ°ΡŽ Π»Π΅Π²ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ здСсь ΠΈ создам сустав. Π― Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΡΠΌΠ΅Ρ‰ΡƒΡΡŒ сюда ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Ρ†Π΅Π½Ρ‚Ρ€Π°Π»ΡŒΠ½ΠΎΠΉ оси, ΠΈ создам Π΅Ρ‰Π΅ ΠΎΠ΄ΠΈΠ½ сустав здСсь. ΠœΡ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ»ΠΈ нСбольшой ΡƒΠ³ΠΎΠ» здСсь, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΡƒΠΊΠ°ΠΆΠ΅Ρ‚ Inverse kinematics, Π² ΠΊΠ°ΠΊΡƒΡŽ сторону ΠΌΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ ΠΏΠΎΠ²ΠΎΡ€Π°Ρ‡ΠΈΠ²Π°Ρ‚ΡŒ сустав. ΠœΡ‹ Π΄Π΅Π»Π°Π»ΠΈ это Ρ€Π°Π½ΡŒΡˆΠ΅, Π² ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅ΠΉ Π³Π»Π°Π²Π΅, ΠΈ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ я ΠΏΠΎΠΊΠ°ΠΆΡƒ Π²Π°ΠΌ, Π·Π°Ρ‡Π΅ΠΌ ΠΌΡ‹ это Π΄Π΅Π»Π°Π΅ΠΌ. БСйчас Ρƒ нас Π΅ΡΡ‚ΡŒ Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠ° суставов, поэтому Π΄Π°Π²Π°ΠΉΡ‚Π΅ установим Inverse kinematics Π½Π° эту Ρ†Π΅ΠΏΡŒ.

ΠœΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ Π² Skeleton, IK handle tool, ΠΈΠ»ΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π²ΠΎΡ‚ этот Π·Π½Π°Ρ‡ΠΎΠΊ, ΠΎΠ½ΠΈ ΠΎΠ±Π° Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΠΎ. Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ сустав, ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ Π±ΡƒΠ΄Π΅ΠΌ Π΄Π΅Π»Π°Ρ‚ΡŒ IK Ρ†Π΅ΠΏΠΎΡ‡ΠΊΡƒ, ΠΏΡƒΡΡ‚ΡŒ ΠΎΠ½ Π±ΡƒΠ΄Π΅Ρ‚ Π²Π΅Ρ€Ρ…Π½ΠΈΠΌ. И Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ послСдний сустав, ΠΎΠ½ Π±ΡƒΠ΄Π΅Ρ‚ Π½ΠΈΠΆΠ½ΠΈΠΌ. Π£ нас Π΅ΡΡ‚ΡŒ ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΎΡ‡Π½Ρ‹Π΅ суставы, Π½ΠΎ это Π²Π°ΠΆΠ½ΠΎ, Ρ‡Ρ‚ΠΎ я ΠΈΠΌΠ΅Π½Π½ΠΎ Π²Ρ‹Π±ΠΈΡ€Π°ΡŽ сразу послСдний.

И Ρƒ нас появился IKHandle1. ΠœΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ Π΅Π³ΠΎ, Π½Π°ΠΆΠ°Ρ‚ΡŒ W, ΠΈ ΠΊΠ°ΠΊ Π²ΠΈΠ΄ΠΈΡ‚Π΅, ΠΌΠΎΠΉ сустав посСрСдинС сгибаСтся Π² этом Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠΈ. Если Π±Ρ‹ я сдСлал мою Ρ†Π΅ΠΏΡŒ прямой, IKHandle Π±Ρ‹ Π½Π΅ сработал, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Π½Π΅ понял Π±Ρ‹, Π² ΠΊΠ°ΠΊΠΎΠΌ Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠΈ ΡΠ³ΠΈΠ±Π°Ρ‚ΡŒ сустав, поэтому ΠΌΡ‹ ΠΈ сдСлали Ρ‚ΡƒΡ‚ нСбольшой ΠΈΠ·Π³ΠΈΠ±. Π”Π°Π²Π°ΠΉΡ‚Π΅ заглянСм Π² АутлайнСр. Π’ΠΈΠ΄ΠΈΡ‚Π΅, Π²ΠΎΡ‚ наши суставы.

А IKHandle - это ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ ΠΈ ΠΎΠ½ Π½Π΅ находится Π½Π° Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠ΅ суставов. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π°Ρ‚ΡŒ Π΅Π³ΠΎ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎ ΠΈ ΠΌΠ΅Π½ΡΡ‚ΡŒ ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ суставов. Π’ΠΎΡ‚ основы Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с IK Handles ΠΈ инвСрсной ΠΊΠΈΠ½Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠΎΠΉ Π² ΠœΠ°ΡƒΠ°.

ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ Π½ΡƒΠΆΠ½ΠΎ Π·Π°ΠΏΠΎΠΌΠ½ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ Ρƒ нас Π΅ΡΡ‚ΡŒ Π΄Π²Π° способа ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ суставами, прямая ΠΊΠΈΠ½Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠ° ΠΈ инвСрсная ΠΊΠΈΠ½Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠ°, ΠΈ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΈΠΌΠ΅Π΅Ρ‚ свои прСимущСства