Forward Dynamics Correction Controller - How to disable an actuator?

Provide easy-to-use, extensible software for modeling, simulating, controlling, and analyzing the neuromusculoskeletal system.
POST REPLY
User avatar
Levi Schilder
Posts: 3
Joined: Fri Feb 26, 2021 4:10 am

Forward Dynamics Correction Controller - How to disable an actuator?

Post by Levi Schilder » Wed Jun 09, 2021 2:10 am

Hi team,

Currently, I am developing a plugin using the OpenSim API that creates a new custom joint. This joint is simply a spring with non-linear stiffness. This plugin is used in the ankle of a prosthetic leg. The plugin takes the ankle angle, and applies a torque that should return the foot to the zero position.

To take a better look at the behavior of the plugin, I tried to run forward dynamics simulations without a reserve actuator in the ankle. This causes the model to be unstable. Luckily, I found this discussion which suggests using a Correction Controller when an actuator is omitted in the forward dynamics: viewtopicPhpbb.php?f=91&t=10627&p=29478&start=0&view=

This indeed gives a stable simulation. However, I found that the excitation of the corrector in the ankle is still too high. I tried disabling the correction controller for this ankle only.

In the forward dynamics setup file (.xml), under the 'correction controller', there is a tag named 'actuator list' (see image below). It says that you can specify here the actuators that will be tracked by the Correction Controller. However, no matter what actuator name(s) I put here, I still get the same high ankle corrector force.

So my questions are:

-How do I disable a specific actuator from being corrected by the Correction Controller in FD simulations?

-What is the correct syntax when using the 'actuator_list' tag in the FD setup file?

-Could the correction controller be bugged? Or have I overlooked anything?

Thank you in advance,
Levi

Image of the Correction Controller (actuator chosen arbitrarily)
Image

Tags:

User avatar
Carmichael Ong
Posts: 401
Joined: Fri Feb 24, 2012 11:50 am

Re: Forward Dynamics Correction Controller - How to disable an actuator?

Post by Carmichael Ong » Mon Jun 14, 2021 4:00 pm

I wonder if the CorrectionController just pulls in all of the CoordinateActuators of the model. If that's the case, you might have to work around the problem rather than fix it in the Controller itself.

You could try limiting the max_control and min_control values of the specific CoordinateActuator that you want to be disabled. I'm hoping this workaround could work, but I'm not sure what will happen if the CorrectionController tries to assign a control value outside of the max and min range.

POST REPLY