You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: docs/paper/paper.bib
+3-17
Original file line number
Diff line number
Diff line change
@@ -10,7 +10,6 @@ @article{lobato-rios:2022
10
10
urldate = {2022-09-21},
11
11
journal = {Nature Methods},
12
12
author = {Lobato-Rios, Victor and Ramalingasetty, Shravan Tata and Özdil, Pembe Gizem and Arreguit, Jonathan and Ijspeert, Auke Jan and Ramdya, Pavan},
13
-
month = may,
14
13
year = {2022},
15
14
pages = {620--627}
16
15
}
@@ -20,6 +19,9 @@ @software{Manceron_IKPy
20
19
doi = {10.5281/zenodo.6551105},
21
20
license = {GPL-2.0},
22
21
title = {{IKPy}},
22
+
year = {2016},
23
+
publisher = {GitHub},
24
+
journal = {GitHub repository},
23
25
url = {https://github.com/Phylliade/ikpy}
24
26
}
25
27
@@ -54,22 +56,6 @@ @article{karashchuk:2021
54
56
pages = {109730}
55
57
}
56
58
57
-
@article{mathis_deeplabcut_2018,
58
-
title = {{DeepLabCut}: markerless pose estimation of user-defined body parts with deep learning},
59
-
volume = {21},
60
-
issn = {1097-6256, 1546-1726},
61
-
shorttitle = {{DeepLabCut}},
62
-
doi = {10.1038/s41593-018-0209-y},
63
-
language = {en},
64
-
number = {9},
65
-
urldate = {2022-09-09},
66
-
journal = {Nature Neuroscience},
67
-
author = {Mathis, Alexander and Mamidanna, Pranav and Cury, Kevin M. and Abe, Taiga and Murthy, Venkatesh N. and Mathis, Mackenzie Weygandt and Bethge, Matthias},
68
-
month = sep,
69
-
year = {2018},
70
-
pages = {1281--1289}
71
-
}
72
-
73
59
@article{pereira:2020,
74
60
title = {Quantifying behavior to understand the brain},
75
61
author = {Pereira, Talmo D and Shaevitz, Joshua W and Murthy, Mala},
Copy file name to clipboardExpand all lines: docs/paper/paper.md
+12-10
Original file line number
Diff line number
Diff line change
@@ -20,7 +20,6 @@ authors:
20
20
affiliations:
21
21
- name: Neuroengineering Laboratory, Brain Mind Institute, EPFL, Lausanne, Switzerland
22
22
index: 1
23
-
ror: 00hx57361
24
23
- name: Biorobotics Laboratory, Institute of Bioengineering, EPFL, Lausanne, Switzerland
25
24
index: 2
26
25
date: 21 January 2025
@@ -31,15 +30,16 @@ bibliography: paper.bib
31
30
`SeqIKPy` is a Python package for inverse kinematics (IK) calculation in animal bodies with complex joint configurations. The name stands for Sequential Inverse Kinematics in Python, as our method computes joint angles sequentially by performing IK for each joint along a kinematic chain.
32
31
33
32
Our framework contains:
34
-
- Pose alignment: map tracked key point locations in 3D onto an animal body template.
35
-
- Inverse kinematics: calculate joint angles sequentially from 3D poses.
36
-
- Visualization: plot and animate the results in 3D.
33
+
34
+
* Pose alignment: map tracked key point locations in 3D onto an animal body template.
35
+
* Inverse kinematics: calculate joint angles sequentially from 3D poses.
36
+
* Visualization: plot and animate the results in 3D.
37
37
38
38
`SeqIKPy` is aimed at researchers studying detailed joint motion in animals with complex, multiple degrees-of-freedom body appendages. We provide examples for the fruit fly, *Drosophila melanogaster*. However, each module can easily be extended to be used with another model organism; the only requirements are the 3D kinematics of the target animal and its corresponding kinematic chain. Our package requires minimal Python knowledge and we provide extensive tutorials at [https://nely-epfl.github.io/sequential-inverse-kinematics](https://nely-epfl.github.io/sequential-inverse-kinematics).
39
39
40
40
# Statement of need
41
41
42
-
Over the past decade, deep-learning based computer vision algorithms have transformed the analysis of behaviors in laboratory animals [@pereira:2020], including for the widely-used model organism, *Drosophila melanogaster*. Recently, researchers have developed deep learning-based 3D pose estimation tools [@gunel:2019; @karashchuk:2021] and detailed biomechanical models [@lobato-rios:2022; ; @vaxenburg:2024], creating a growing need for tools to obtain more detailed descriptions of how body parts move in joint space. These computed joint angles can be replayed in physics-based simulations to estimate unmeasured physical quantities like joint torques [@lobato-rios:2022].
42
+
Over the past decade, deep-learning based computer vision algorithms have transformed the analysis of behaviors in laboratory animals [@pereira:2020], including for the widely-used model organism, *Drosophila melanogaster*. Recently, researchers have developed deep learning-based 3D pose estimation tools [@gunel:2019; @karashchuk:2021] and detailed biomechanical models [@lobato-rios:2022; @wang:2024 ; @vaxenburg:2024], creating a growing need for tools to obtain more detailed descriptions of how body parts move in joint space. These computed joint angles can be replayed in physics-based simulations to estimate unmeasured physical quantities like joint torques [@lobato-rios:2022].
43
43
44
44
Inverse Kinematics (IK) spans multiple domains including robotics, biomechanics, and character animation [@aristidou:2018]. In robotics, IK typically computes joint angles to achieve a desired end-effector position while respecting joint constraints. By contrast, in biomechanics, IK algorithms calculate joint angles to track all marker positions rather than only a single end-effector. This process is also known as multi-body kinematics optimization and is a well-established area in human biomechanics research [@delp:2007; @begon:2018; @pagnon:2022; @werling:2023].
45
45
@@ -50,13 +50,15 @@ To address this gap, we have developed `SeqIKPy`, a fast and lightweight Python
50
50
# Overview
51
51
52
52
`SeqIKPy` assumes that the 3D pose estimation has the following orientation (\autoref{fig:pipeline}, left):
53
-
- x-axis: anterioposterior axis
54
-
- y-axis: mediolateral axis
55
-
- z-axis: dorsoventral axis
53
+
54
+
* x-axis: anterioposterior axis
55
+
* y-axis: mediolateral axis
56
+
* z-axis: dorsoventral axis
56
57
57
58
After setting this orientation, users can use the `AlignPose` class to map body keypoints to a template body model (\autoref{fig:pipeline}, middle). Despite being optional for inverse kinematics, this step has two benefits:
58
-
- It aligns measured kinematics to a standardized body template, facilitating replay of behaviors in body models (\autoref{fig:pipeline}, right).
59
-
- It reduces noise and variation in kinematics by standardizing body lengths.
59
+
60
+
* It aligns measured kinematics to a standardized body template, facilitating replay of behaviors in body models (\autoref{fig:pipeline}, right).
61
+
* It reduces noise and variation in kinematics by standardizing body lengths.
60
62
61
63
We provide a default body template based on a CT scan of the fly [@lobato-rios:2022]. Users can also define custom templates manually or by importing SDF files. Utility functions are included to convert data into the required formats.
0 commit comments