Collect synchronized EMG and GRFs

New project for OpenCap, which is a new software package to estimate 3D human movement dynamics from smartphone videos. OpenCap strongly relies on OpenSim.
POST REPLY
User avatar
Arian Vistamehr
Posts: 2
Joined: Thu May 31, 2012 11:06 am

Collect synchronized EMG and GRFs

Post by Arian Vistamehr » Mon Nov 20, 2023 12:56 pm

Is there a way to collect synchronized experimental EMGs and GRFs? What hardware/software is needed to synchronize the data with OpenCap videos?

User avatar
Scott Uhlrich
Posts: 124
Joined: Tue Jan 20, 2015 4:29 pm

Re: Collect synchronized EMG and GRFs

Post by Scott Uhlrich » Mon Nov 20, 2023 2:12 pm

There is no way to hardware sync with OpenCap, as everything is done over internet.

We do have an example of using common signals to synchronize a force plate (https://github.com/stanfordnmbl/opencap ... ntegration). Keep in mind, however, the time sync'ing method is specific to the task (jumping in this example). If you have marker-based mocap, you could also time synchronize using marker data (e.g. put a marker on the pelvis or hand).

Another approach some people use is to have an LED that signifies when the analog data (GRFs, EMG) start and stop collecting, and visualize the light in the sync'd opencap videos.

User avatar
Arian Vistamehr
Posts: 2
Joined: Thu May 31, 2012 11:06 am

Re: Collect synchronized EMG and GRFs

Post by Arian Vistamehr » Tue Nov 21, 2023 12:50 pm

Thanks, Scott. Could you please re-send the link again? It does not work.

Is there a way to save the GRFs and video-based marker data in a c3d file for further analysis? Otherwise, how would you suggest integrating GRF data for inverse dynamics analysis? Do you recommend using OpenCap solely for kinematics analysis at this point?

User avatar
Scott Uhlrich
Posts: 124
Joined: Tue Jan 20, 2015 4:29 pm

Re: Collect synchronized EMG and GRFs

Post by Scott Uhlrich » Tue Nov 21, 2023 3:15 pm

https://github.com/stanfordnmbl/opencap ... ntegration

We do not currently write out to c3d. You can see how we do inverse dynamics in this example. It is possible to do inverse dynamics, but the synchronization part is non-trivial.

POST REPLY