Hello everybody,
after OpenSim takes quite a long time when I use for example the InverseKinematiks-Tool, I was wondering if there is a way to speed it up, since I have a quite fast computer whose resources OpenSim rarely uses so far.
Are there any possibilities?
Thank you very much.
Best regards
Lisa Jonas
PS:
My computer has the following hardware:
CPU: Intel(R) Xeon(R) Gold 6254 CPU @ 3.10GHz with 36 cores
GPU: NVIDIA Quadro RTX 4000 with 8 GB dedicated GPU memory and 256 GB shared GPU memory
RAM: 512 GB
OpenSim4.3 speed up possible?
- Lisa Jonas
- Posts: 3
- Joined: Thu Jul 22, 2021 12:01 am
- Jacob J. Banks
- Posts: 97
- Joined: Tue Jul 15, 2014 5:17 am
Re: OpenSim4.3 speed up possible?
How long is "quite a long time"? What model are you using? Have you made any modifications to it (e.g., welding a joint?).
Reason I am asking, is that I've noticed IK can take up to 10x longer if you lock certain joints. Marker weighting can also have some impact on solve time, but it doesn't seem to be as dramatic and your options are limitless. To remedy an instance where I would like a locked joint, I drastically reduced the RoM (to maybe a degree) of a joint instead and then add a torque actuator so it isn't impacted as much with SOpt (so it is essentially welded, but has a little wiggle room to move... seems to do the trick).
Another solution we use is to setup a Matlab API for IK and use parfor loops so you can run multiple trials in parallel (up to 36 in your case).
For our full-body thoracolumbar model, it is typical to track a ~250 frame trial with ~100 markers and some coupling constraints on the trunk bodies in ~120 seconds via a Matlab API with a fairly decent PC (not quite as fast as yours though). With parfors, we run >1 trial in parallel in ~the same amount of time. We are running version 4.3.
Hope this helps, otherwise I'd be interested to know what you consider a taking to long.
Jake Banks
Reason I am asking, is that I've noticed IK can take up to 10x longer if you lock certain joints. Marker weighting can also have some impact on solve time, but it doesn't seem to be as dramatic and your options are limitless. To remedy an instance where I would like a locked joint, I drastically reduced the RoM (to maybe a degree) of a joint instead and then add a torque actuator so it isn't impacted as much with SOpt (so it is essentially welded, but has a little wiggle room to move... seems to do the trick).
Another solution we use is to setup a Matlab API for IK and use parfor loops so you can run multiple trials in parallel (up to 36 in your case).
For our full-body thoracolumbar model, it is typical to track a ~250 frame trial with ~100 markers and some coupling constraints on the trunk bodies in ~120 seconds via a Matlab API with a fairly decent PC (not quite as fast as yours though). With parfors, we run >1 trial in parallel in ~the same amount of time. We are running version 4.3.
Hope this helps, otherwise I'd be interested to know what you consider a taking to long.
Jake Banks