Error in using CMC and ForwardTool in Upper limb model

Provide easy-to-use, extensible software for modeling, simulating, controlling, and analyzing the neuromusculoskeletal system.
POST REPLY
User avatar
Alex Priamikov
Posts: 14
Joined: Fri Jan 11, 2013 9:11 am

Error in using CMC and ForwardTool in Upper limb model

Post by Alex Priamikov » Sat Jun 08, 2013 6:43 am

Good day,

I'm trying to use CMC and Forward tool for UpperLowerBodySimple model.

But I got an error java.lang.RuntimeException: SimTK Exception thrown at SmallMatrixMixed.h:878:
Error detected by Simbody method lapackInverse(Mat<>): Matrix is singular so can't be inverted (Lapack getrf info=3).
(Required condition 'info==0' was not met.)

at org.opensim.modeling.opensimModelJNI.OpenSimContext_getActivation(Native Method)
at org.opensim.modeling.OpenSimContext.getActivation(OpenSimContext.java:173)
at org.opensim.view.MuscleColorByActivationFunction.getColor(MuscleColorByActivationFunction.java:23)
at org.opensim.view.LineSegmentMuscleDisplayer.updateGeometry(LineSegmentMuscleDisplayer.java:180)
at org.opensim.view.LineSegmentMuscleDisplayer.setApplyColoringFunction(LineSegmentMuscleDisplayer.java:80)
at org.opensim.view.SingleModelVisuals.setApplyMuscleColors(SingleModelVisuals.java:345)
at org.opensim.view.motions.MotionDisplayer.setupMotionDisplay(MotionDisplayer.java:277)
at org.opensim.view.motions.MotionDisplayer.<init>(MotionDisplayer.java:229)
at org.opensim.view.motions.JavaMotionDisplayerCallback.<init>(JavaMotionDisplayerCallback.java:113)
at org.opensim.tracking.ForwardToolModel$ForwardToolWorker.<init>(ForwardToolModel.java:107)
at org.opensim.tracking.ForwardToolModel.execute(ForwardToolModel.java:375)
at org.opensim.tracking.AnalyzeAndForwardToolPanel.pressedApply(AnalyzeAndForwardToolPanel.java:619)
at org.opensim.tracking.BaseToolPanel.actionPerformed(BaseToolPanel.java:130)
at org.netbeans.core.windows.services.NbPresenter$ButtonListener.actionPerformed(NbPresenter.java:1327)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2318)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236)
at java.awt.Component.processMouseEvent(Component.java:6288)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3267)
at java.awt.Component.processEvent(Component.java:6053)
at java.awt.Container.processEvent(Container.java:2041)
at java.awt.Component.dispatchEventImpl(Component.java:4651)
at java.awt.Container.dispatchEventImpl(Container.java:2099)
at java.awt.Component.dispatchEvent(Component.java:4481)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4577)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4238)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4168)
at java.awt.Container.dispatchEventImpl(Container.java:2085)
at java.awt.Window.dispatchEventImpl(Window.java:2478)
at java.awt.Component.dispatchEvent(Component.java:4481)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:643)
at java.awt.EventQueue.access$000(EventQueue.java:84)
at java.awt.EventQueue$1.run(EventQueue.java:602)
at java.awt.EventQueue$1.run(EventQueue.java:600)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87)
at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:98)
at java.awt.EventQueue$2.run(EventQueue.java:616)
at java.awt.EventQueue$2.run(EventQueue.java:614)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:613)
at org.netbeans.core.TimableEventQueue.dispatchEvent(TimableEventQueue.java:148)
[catch] at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)

How can I fix it, or also maybe could you provide some data and settings files(if I'm not using the right one)?

Best,
Alex

User avatar
Ayman Habib
Posts: 2252
Joined: Fri Apr 01, 2005 12:24 pm

Re: Error in using CMC and ForwardTool in Upper limb model

Post by Ayman Habib » Tue Jun 11, 2013 11:08 am

Hi Alex,

As the stacktrace indicates, the exception you ran into occurs trying to color the muscles using Activations. Reason you get this singularity could be that the muscles are not initialized properly, or external loads not applied correctly leading to very large forces and infinite accelerations. Other possible culprit would be missing mass properties which you need to full specify if you're running CMC and/or ForwardTool.

Hope this helps,
-Ayman

User avatar
Alex Priamikov
Posts: 14
Joined: Fri Jan 11, 2013 9:11 am

Re: Error in using CMC and ForwardTool in Upper limb model

Post by Alex Priamikov » Fri Jun 14, 2013 1:59 am

Hi Ayman

Can it also occur, because I disabled some muscles and blocked some angles?
Also can you provide example configuration for this model?

Best regards,
Alex

User avatar
Alex Priamikov
Posts: 14
Joined: Fri Jan 11, 2013 9:11 am

Re: Error in using CMC and ForwardTool in Upper limb model

Post by Alex Priamikov » Tue Jun 18, 2013 12:18 pm

I figure out that I don't have mass properties for my bodies, think the problem comes from this side.

POST REPLY