Кіріспе
Кинематикалық тізбектің біртұтас мәндерін белгілі бір соңғы позициядан есептеу. Компьютерлік анимация және робототехникада кері кинематика – бұл кинематикалық тізбектің соңғы нүктесін, мысалы, робот манипуляторы немесе анимациялық кейіпкердің қаңқасын, тізбектің бастапқы нүктесіне қатысты белгілі бір позицияда және бағдарда орналастыру үшін қажетті өзгермелі буын параметрлерін есептеудің математикалық процесі. Буын параметрлері берілген жағдайда, тізбектің соңғы нүктесінің – мысалы, кейіпкердің немесе роботтың қолының – позициясы мен бағдары тригонометриялық формулаларды бірнеше рет қолдану арқылы тікелей есептелуі мүмкін, бұл процесс алдыңғы кинематика деп аталады. Дегенмен, кері операция, әдетте, әлдеқайда қиын. Кері кинематика басқа деректерден, мысалы, қозғалыстардың видеожазбасы немесе қозғалыстарды жасап жатқан камера көрісінен алынған әлемдегі нысанның қозғалысын қалпына келтіру үшін де қолданылады. Мысалы, адам актерінің түсірілген қозғалыстарын анимациялық кейіпкерге көшіру үшін бұл қолданылады.
In computer animation and robotics, inverse kinematics is the mathematical process of calculating the variable joint parameters needed to place the end of a kinematic chain, such as a robot manipulator or animation character's skeleton, in a given position and orientation relative to the start of the chain. Given joint parameters, the position and orientation of the chain's end, e. g. the hand of the character or robot, can typically be calculated directly using multiple applications of trigonometric formulas, a process known as forward kinematics. However, the reverse operation is, in general, much more challenging. Inverse kinematics is also used to recover the movements of an object in the world from some other data, such as a film of those movements, or a film of the world as seen by a camera which is itself making those movements. This occurs, for example, where a human actor's filmed movements are to be duplicated by an animated character.
Робототехника
Робототехникада кері кинематика роботтың әрбір соңғы атқарушы механизмі үшін қажетті конфигурацияны (орналасу және бұрылыс) қамтамасыз ететін буындардың параметрлерін анықтау үшін кинематикалық теңдеулерді қолданады. Бұл маңызды, себебі роботтың жұмыстары соңғы атқарушы механизмдермен орындалады, ал басқару әрекеті буындарға қолданылады. Роботтың соңғы атқарушы механизмдерін бастапқы конфигурациядан қажетті конфигурацияға жылжыту үшін оның қозғалысын анықтау – қозғалыс жоспарлау деп аталады. Кері кинематика қозғалыс жоспарын роботтың буындық жетек траекторияларына түрлендіреді.
Кинематикалық талдау
Кинематикалық талдау – көптеген өнеркәсіптік роботтарды жобалаудың бастапқы қадамдарының бірі. Кинематикалық талдау жобалаушыға механикалық жүйедегі әрбір компоненттің орналасуы туралы мәліметтер алуға мүмкіндік береді. Бұл мәліметтер кейінгі динамикалық талдау және басқару жолдары үшін қажет. Кері кинематика – қатты денелердің немесе кинематикалық тізбектің шектелген жүйесінің кинематикалық талдауының мысалы. Роботтың кинематикалық теңдеулері күрделі буындармен жабдықталған жүйенің циклдық теңдеулерін анықтау үшін қолданылуы мүмкін. Бұл циклдық теңдеулер жүйенің конфигурациялық параметрлеріне қатысты сызықтық емес шектеулер болып табылады. Бұл теңдеулердегі тәуелсіз параметрлер жүйенің еркіндік дәрежесі деп аталады. Кері кинематикалық мәселенің аналитикалық шешімдері кинематикалық тізбектердің кең ауқымы үшін болғанымен, компьютерлік модельдеу және анимация құралдары көбінесе Ньютон әдісін сызықтық емес кинематикалық теңдеулерді шешу үшін пайдаланады. Кері кинематикалық алгоритмдердің басқа да қолданылуларына интерактивті манипуляция, анимациялық басқару және соқтығыстардан сақтану жатады.
Инверс кинематика және 3D анимация
Инверс кинематика ойын бағдарламалау және 3D анимация үшін маңызды, онда ол ойын кейіпкерлерін физикалық түрде әлеммен байланыстыру үшін қолданылады, мысалы, жер бетіне берік орналасқан аяқтар (Компьютерлік графикадағы инверс кинематика техникасы туралы толық шолу үшін қараңыз). Анимациялық фигураның моделі – буындармен байланысқан қатты сегменттерден тұратын қаңқа, ол қимыл-қозғалыс тізбегі деп аталады. Фигураның кинематикалық теңдеулері фигураның буындарының бұрыштары мен оның позасы немесе конфигурациясы арасындағы қатынасты анықтайды. Алға бағытталған кинематикалық анимация мәселесі буындардың бұрыштары бойынша алынған позаны анықтау үшін кинематикалық теңдеулерді қолданады. Кері кинематика мәселесі фигураның қажетті позасы үшін буындардың бұрыштарын есептейді. Компьютерлік дизайнерлерге, суретшілерге және аниматорларға құрастырманың немесе фигураның кеңістіктік конфигурациясын тікелей буындарды манипуляциялаудың орнына жылжымалы бөліктермен, мысалы қолдар мен аяқтармен анықтау оңайырақ. Сондықтан кері кинематика компьютерлік дизайн жүйелерінде жинақтарды жандандыру үшін, ал компьютерлік суретшілер мен аниматорлар фигуралар мен кейіпкерлерді орналастыру үшін қолданады. Жинақ, буындармен байланысқан қатты сілтемелер ретінде модельденеді, олар түйіндер немесе геометриялық шектеулер ретінде анықталады. Бір элементтің қозғалысы, буын шектеулерін сақтау үшін басқа элементтердің буындарының бұрыштарын есептеуді қажет етеді. Мысалы, кері кинематика суретшіге 3D адам моделінің қолын қажетті орынға және бағытқа жылжытуға мүмкіндік береді, ал алгоритм білезік, шынтақ және иық буындарының дұрыс бұрыштарын таңдайды. Компьютерлік анимацияның сәтті іске асырылуы көбінесе фигураның ақылға қонымды антропоморфтық шектеулерде қозғалуын талап етеді. Кейіпкерді анимациялау үшін алға және кері кинематиканы салыстыру әдісін әрқайсысының артықшылықтарымен анықтауға болады. Мысалы, үлкен қозғалыс доғаларын пайдаланатын блоктау анимациясы көбінесе алға бағытталған кинематикада тиімді. Дегенмен, мақсатты соңғы эффектінің басқа модельдерге қатысты нәзік анимациясы мен орналасуы кері кинематиканы пайдалану арқылы оңайырақ болуы мүмкін. Қазіргі заманғы цифрлық құру пакеттері (DCC) модельдерге алға және кері кинематиканы қолдану әдістерін ұсынады.
Кері кинематиканың аналитикалық шешімдері
Кейбір жағдайларда, бірақ барлық жағдайларда емес, кері кинематикалық мәселелерге талдау шешімдері болады. Мұндай мысалдың бірі – 3D кеңістікте қозғалатын 6 DoF робот (мысалы, 6 айналу буыны) (3 позициялық және 3 айналу еркіндік дәрежесі). Егер роботтың еркіндік дәрежесі соңғы эффектінің еркіндік дәрежесінен жоғары болса, мысалы, 7 айналу буыны бар 7 DoF роботы болса, онда ИК мәселесіне шексіз көп шешімдер бар, ал талдамалық шешім жоқ. Бұл мысалды одан әрі кеңейте келе, бір буынды бекітіп, қалған буындарды талдау арқылы шешуге болады, бірақ сандық әдістер (келесі бөлім) арқылы жақсырақ шешім алуға болады, олар қосымша талаптарға (оптимизациялау мәселесіндегі бағаларға) сәйкес шешімді оңтайландыруға мүмкіндік береді. Кері кинематика мәселесінің талдамалық шешімі – бұл соңғы эффекттің күйін кіріс ретінде қабылдап, буындардың позицияларын шығару ретінде беретін жабық түрдегі өрнек. Талдамалық кері кинематика шешушілері сандық шешушілерге қарағанда әлдеқайда жылдам болуы мүмкін және берілген соңғы эффектінің күйі үшін бірнеше шешімді, бірақ шектеулі сандағы шешімдерді ғана ұсынады. Көптеген бағдарламалар (FOSS бағдарламалары IKFast және Inverse Kinematics Library сияқты) FABRIK шешуші сияқты әртүрлі алгоритмдерді қолдана отырып, осы мәселелерді жылдам және тиімді шеше алады. Бұл шешушілердің бір мәселесі – олар екі жақын конфигурация арасында жергілікті тегіс шешімдерді әрқашан бермейді, бұл кері кинематикаға итерациялық шешімдер қажет болған жағдайда, мысалы, жоғары жылдамдықты басқару циклы ішінде ИК шешілгенде, тұрақсыздыққа алып келуі мүмкін.
ИК мәселелерін сандық шешу
Инверс кинематика мәселелерін модельдеу және шешудің көптеген әдістері бар. Бұл әдістердің ең икемдісі, көбінесе, алдыңғы кинематика теңдеуін кері қайтарудың қиындығы мен шешімнің болмауы мүмкін болғандықтан, шамамен шешім табу үшін итеративті оңтайландыруға негізделген. Осы әдістердің негізгі идеясы – алдыңғы кинематика теңдеуін Тейлор қатары арқылы модельдеу, оны бастапқы жүйеге қарағанда кері қайтару және шешу оңайырақ болуы мүмкін.
Эвристикалық әдістер
Кері кинематика мәселесін эвристикалық әдістермен жуықтауға да болады. Бұл әдістер қарапайым, итеративті операцияларды орындау арқылы шешімге жақындастырады. Эвристикалық алгоритмдердің есептеу шығындары төмен (қорытынды позаны өте жылдам анықтайды) және көбінесе буындық шектеулерді қолдайды. Ең көп таралған эвристикалық алгоритмдер – циклдық координаталық түсу (CCD) және алға және артқа созу инверсті кинематикасы (FABRIK).