Π‘ΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅
πPyRoki: ΠΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° ΠΊΠΈΠ½Π΅ΠΌΠ°ΡΠΈΠΊΠΈ ΡΠΎΠ±ΠΎΡΠΎΠ² Π½Π° Python. PyRoki (Python Robot Kinematics) - ΡΡΠΎ ΠΌΠΎΠ΄ΡΠ»ΡΠ½ΡΠΉ, ΡΠ°ΡΡΠΈΡΡΠ΅ΠΌΡΠΉ ΠΈ ΠΊΡΠΎΡΡΠΏΠ»Π°ΡΡΠΎΡΠΌΠ΅Π½Π½ΡΠΉ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΉ, Π·Π°ΡΠΎΡΠ΅Π½Π½ΡΠΉ ΠΏΠΎΠ΄ Π·Π°Π΄Π°ΡΠΈ ΠΊΠΈΠ½Π΅ΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠΉ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ ΠΈ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½ΡΠΉ ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ Π½Π° Python. Π€ΠΈΡΠΊΠ° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ - Π² ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»Π΅Π½ΠΈΠΈ Π΄ΠΈΡΡΠ΅ΡΠ΅Π½ΡΠΈΡΡΠ΅ΠΌΠΎΠΉ ΠΌΠΎΠ΄Π΅Π»ΠΈ ΠΏΡΡΠΌΠΎΠΉ ΠΊΠΈΠ½Π΅ΠΌΠ°ΡΠΈΠΊΠΈ ΡΠΎΠ±ΠΎΡΠ°, ΠΊΠΎΡΠΎΡΠ°Ρ ΡΡΡΠΎΠΈΡΡΡ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ URDF-ΡΠ°ΠΉΠ»ΠΎΠ², ΡΠ΅ΠΌ ΡΠ°ΠΌΡΠΌ ΠΈΠ·Π±Π°Π²Π»ΡΡ ΠΈΠ½ΠΆΠ΅Π½Π΅ΡΠ° ΠΎΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ Π²ΡΡΡΠ½ΡΡ ΠΏΡΠΎΠΏΠΈΡΡΠ²Π°ΡΡ ΠΊΠΈΠ½Π΅ΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΡΠ΅ΠΏΠΈ: ΡΠΈΡΡΠ΅ΠΌΠ° Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΠ°ΡΡΠΈΡ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΡΠΎΠ±ΠΎΡΠ°, Π½ΠΎ ΠΈ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ Π³Π΅Π½Π΅ΡΠΈΡΡΠ΅Ρ ΠΏΡΠΈΠΌΠΈΡΠΈΠ²Ρ ΠΊΠΎΠ»Π»ΠΈΠ·ΠΈΠΉ. Π‘ ΡΠΎΡΠΊΠΈ Π·ΡΠ΅Π½ΠΈΡ ΠΌΠ°ΡΠ΅ΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ Π°ΠΏΠΏΠ°ΡΠ°ΡΠ°, PyRoki ΠΈΠ½ΡΠ΅Π³ΡΠΈΡΡΠ΅ΡΡΡ Ρ ΡΠ΅ΡΠ°ΡΠ΅Π»Π΅ΠΌ Levenberg-Marquardt (ΡΠ΅ΡΠ΅Π· jaxls). ΠΡΠΎ Π΄Π°Π΅Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΏΡΠΎΠ²ΠΎΠ΄ΠΈΡΡ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡ Π½Π° ΠΌΠ½ΠΎΠ³ΠΎΠΎΠ±ΡΠ°Π·ΠΈΡΡ , Π° ΡΠ°ΠΊΠΆΠ΅ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ ΠΆΠ΅ΡΡΠΊΠΈΠ΅ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠ΅ΡΠ°ΡΠ΅Π»Ρ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΠΌΠΎΠ΄ΠΈΡΠΈΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΠ°Π³ΡΠ°Π½ΠΆΠ°. ΠΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° ΠΏΡΠ΅Π΄Π»Π°Π³Π°Π΅Ρ Π³ΠΎΡΠΎΠ²ΡΠ΅ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ cost-ΡΡΠ½ΠΊΡΠΈΠΉ: ΠΏΠΎΠ·Π° ΡΠ°Π±ΠΎΡΠ΅Π³ΠΎ ΠΎΡΠ³Π°Π½Π°, ΠΊΠΎΠ»Π»ΠΈΠ·ΠΈΠΈ Ρ ΡΠ°ΠΌΠΈΠΌ ΡΠΎΠ±ΠΎΠΉ ΠΈΠ»ΠΈ ΠΎΠ±ΡΠ΅ΠΊΡΠ°ΠΌΠΈ ΠΌΠΈΡΠ° ΠΈ ΠΌΠ΅ΡΡΠΈΠΊΠΈ ΠΌΠ°Π½ΠΈΠΏΡΠ»ΠΈΡΡΠ΅ΠΌΠΎΡΡΠΈ. ΠΡΠ»ΠΈ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΎΠ³ΠΎ Π½Π°Π±ΠΎΡΠ° Π½Π΅Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ, Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ° ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π·Π°Π΄Π°Π²Π°ΡΡ ΡΠ²ΠΎΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ Π·Π°ΡΡΠ°Ρ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΠΊΠ°ΠΊ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ Π΄ΠΈΡΡΠ΅ΡΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅, ΡΠ°ΠΊ ΠΈ Π°Π½Π°Π»ΠΈΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΡΠΊΠΎΠ±ΠΈΠ°Π½Ρ. ΠΠ»Π°Π³ΠΎΠ΄Π°ΡΡ Π±Π°Π·Π΅ JAX, Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° ΠΊΡΠΎΡΡΠΏΠ»Π°ΡΡΠΎΡΠΌΠ΅Π½Π½Π°: Π΅Π΅ ΡΠ°Π±ΠΎΡΠ° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Π° Π½Π° CPU, GPU ΠΈ TPU. π‘ΠΡΠΈ Π²Π½Π΅Π΄ΡΠ΅Π½ΠΈΠΈ PyRoki Π² ΠΏΠ°ΠΉΠΏΠ»Π°ΠΉΠ½ Π²Π°ΠΆΠ½ΠΎ ΡΡΠΈΡΡΠ²Π°ΡΡ ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΡ JIT-ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ Π² JAX. ΠΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΡ ΡΡΠΈΠ³Π³Π΅ΡΠΈΡΡΡ ΠΏΡΠΈ ΠΏΠ΅ΡΠ²ΠΎΠΌ Π·Π°ΠΏΡΡΠΊΠ΅, Π° ΡΠ°ΠΊΠΆΠ΅ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΠ°Π·, ΠΊΠΎΠ³Π΄Π° ΠΌΠ΅Π½ΡΡΡΡΡ ΡΠΎΡΠΌΡ Π²Ρ ΠΎΠ΄Π½ΡΡ Π΄Π°Π½Π½ΡΡ : Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΠ΅Π»Π΅ΠΉ ΠΈΠ»ΠΈ ΠΏΡΠ΅ΠΏΡΡΡΡΠ²ΠΈΠΉ. Π§ΡΠΎΠ±Ρ ΠΈΠ·Π±Π΅ΠΆΠ°ΡΡ ΡΠ°ΡΡ ΠΎΠ΄ΠΎΠ² Π½Π° ΠΏΠ΅ΡΠ΅ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΡ, ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΏΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»ΡΠ½ΡΠΉ ΠΏΠ°Π΄Π΄ΠΈΠ½Π³ ΠΌΠ°ΡΡΠΈΠ²ΠΎΠ², ΡΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π²Π΅ΠΊΡΠΎΡΠΈΠ·ΠΎΠ²Π°ΡΡ Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΡ Π΄Π»Ρ Π²Ρ ΠΎΠ΄ΠΎΠ² Ρ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠΌΠΈ ΡΠ΅ΠΉΠΏΠ°ΠΌΠΈ. Π’Π°ΠΊΠΆΠ΅ ΡΡΠΎΠΈΡ ΡΡΠΈΡΡΠ²Π°ΡΡ, ΡΡΠΎ Π² Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ΅ ΠΎΡΡΡΡΡΡΠ²ΡΡΡ ΠΏΠ»Π°Π½ΠΈΡΠΎΠ²ΡΠΈΠΊΠΈ, ΠΎΡΠ½ΠΎΠ²Π°Π½Π½ΡΠ΅ Π½Π° ΡΡΠΌΠΏΠ»ΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ (Π³ΡΠ°ΡΡ, Π΄Π΅ΡΠ΅Π²ΡΡ), ΠΏΠΎΡΡΠΎΠΌΡ Π·Π°Π΄Π°ΡΠΈ Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΠΎΠ³ΠΎ ΠΏΠ»Π°Π½ΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΏΡΡΠΈ ΠΏΡΠΈΠ΄Π΅ΡΡΡ ΡΠ΅ΡΠ°ΡΡ Π²Π½Π΅ΡΠ½ΠΈΠΌΠΈ ΡΡΠ΅Π΄ΡΡΠ²Π°ΠΌΠΈ. π‘Π’ΠΈΠΏΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΠΌΡΡ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠΉ ΠΈ Π³Π΅ΠΎΠΌΠ΅ΡΡΠΈΡ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½Ρ. ΠΠ° Π΄Π°Π½Π½ΡΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ PyRoki ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΠΈΡΠΊΠ»ΡΡΠΈΡΠ΅Π»ΡΠ½ΠΎ Ρ ΠΊΠΈΠ½Π΅ΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΌΠΈ Π΄Π΅ΡΠ΅Π²ΡΡΠΌΠΈ; Π·Π°ΠΌΠΊΠ½ΡΡΡΠ΅ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΡ ΠΈΠ»ΠΈ ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½ΡΠ΅ ΠΌΠ°Π½ΠΈΠΏΡΠ»ΡΡΠΎΡΡ Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡΡΡ. Π‘ΠΏΠΈΡΠΎΠΊ Π΄ΠΎΡΡΡΠΏΠ½ΡΡ ΡΠΈΠΏΠΎΠ² Π΄ΠΆΠΎΠΈΠ½ΡΠΎΠ² ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ 4 ΠΏΠΎΠ·ΠΈΡΠΈΡΠΌΠΈ: Π²ΡΠ°ΡΠ°ΡΠ΅Π»ΡΠ½ΡΠ΅, Π½Π΅ΠΏΡΠ΅ΡΡΠ²Π½ΡΠ΅, ΠΏΡΠΈΠ·ΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΈ ΡΠΈΠΊΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅. ΠΡΠ±ΡΠ΅ Π΄ΡΡΠ³ΠΈΠ΅ ΡΠΈΠΏΡ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠΉ, Π²ΡΡΡΠ΅ΡΠ΅Π½Π½ΡΠ΅ Π² URDF, Π±ΡΠ΄ΡΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠΈΡΠΎΠ²Π°ΡΡΡΡ ΡΠΈΡΡΠ΅ΠΌΠΎΠΉ ΠΊΠ°ΠΊ ΡΠΈΠΊΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅. ΠΠ»Ρ Π³Π΅ΠΎΠΌΠ΅ΡΡΠΈΠΈ ΠΊΠΎΠ»Π»ΠΈΠ·ΠΈΠΉ Π½Π°Π±ΠΎΡ ΠΏΡΠΈΠΌΠΈΡΠΈΠ²ΠΎΠ² ΡΠ°ΠΊΠΆΠ΅ ΡΠΈΠΊΡΠΈΡΠΎΠ²Π°Π½: ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡΡΡ ΡΡΠ΅ΡΡ, ΠΊΠ°ΠΏΡΡΠ»Ρ, ΠΏΠΎΠ»ΡΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π° ΠΈ ΠΊΠ°ΡΡΡ Π²ΡΡΠΎΡ. ΠΡΠ»ΠΈ Π²Π°ΡΠ° ΠΌΠΎΠ΄Π΅Π»Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΡΠ»ΠΎΠΆΠ½ΡΠ΅ ΠΌΠ΅ΡΠΈ, ΠΊΠΎΠ»Π»ΠΈΠ·ΠΈΠΈ Π΄Π»Ρ Π½ΠΈΡ Π±ΡΠ΄ΡΡ Π°ΠΏΠΏΡΠΎΠΊΡΠΈΠΌΠΈΡΠΎΠ²Π°ΡΡΡΡ ΠΊΠ°ΠΏΡΡΠ»Π°ΠΌΠΈ. Π Π²ΠΎΠΏΡΠΎΡΠ°Ρ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ, ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎ Π² ΡΡΠ΅Π½Π°ΡΠΈΡΡ Ρ ΠΈΠ½ΡΠ΅Π½ΡΠΈΠ²Π½ΡΠΌΠΈ ΠΏΡΠΎΠ²Π΅ΡΠΊΠ°ΠΌΠΈ ΠΊΠΎΠ»Π»ΠΈΠ·ΠΈΠΉ, PyRoki, Π²Π΅ΡΠΎΡΡΠ½ΠΎ, ΡΡΡΡΠΏΠ°Π΅Ρ CuRobo, Ρ ΠΎΡΡ, ΠΊΠ°ΠΊ Π³ΠΎΠ²ΠΎΡΠΈΡΡΡ Π² Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ - ΡΡΠ°Π²Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΡΠ΅ΡΡΡ ΡΠΊΠΎΡΠΎΡΡΠΈ ΠΈ ΡΠΎΡΠ½ΠΎΡΡΠΈ Π°Π²ΡΠΎΡΠ°ΠΌΠΈ ΠΏΠΎΠΊΠ° Π½Π΅ ΠΏΡΠΎΠ²ΠΎΠ΄ΠΈΠ»ΠΈΡΡ. πΠΠΈΡΠ΅Π½Π·ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅: MIT License. π‘Π‘ΡΡΠ°Π½ΠΈΡΠ° ΠΏΡΠΎΠ΅ΠΊΡΠ° π‘Arxiv π‘ΠΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ π₯GitHub @ai_machinelearning_big_data #AI#ML#Robotics#Pyroki#Python