Hello there !
I am quite new to OpenSim, as I am only using it for a month now. I went through nearly all examples and tutorials provided in the documentation which, by the way, are excellent to self-train on the tool. One of them particularly sounds interesting to me, as I aim to use OpenSim to do some metabolic rate analysis with and without an assistive device (https://simtk-confluence.stanford.edu:8 ... bolic+Cost). Following this example, I have been able to perform my first metabolic analysis, but I am now wondering how to adapt it to the case I am working on.
I am currently studying the effect of adding a rotary actuator to assist hip articulation during swing and stance phases. The actuator is supposed to be aligned with the hip articulation axis in the sagittal plane, and it is torque controlled. We already have a functionnal prototype, and the goal of this work is to evaluate the impact of changes in the controller software on the metabolic rate.
I am wondering what kind of actuator in OpenSim is the most adapted to reproduce such an assistive torque, and how to implement it on one of the model provided by OpenSim (i.e: Gait10dof18musc) ? (Based on measurements performed on the existing prototype, I could easily control the actuator torque from experimental data)
Thank you in advance for your help !
PS: I've also found this project, which is really near to what I am trying to achieve, but which is a bit different as it is cable driven, so it is using PathActuator: https://simtk-confluence.stanford.edu:8 ... th+OpenSim
Metabolic analysis with addition of a hip assist actuator
- Romain DUPIRE
- Posts: 2
- Joined: Fri Apr 28, 2023 4:16 am
- Thomas Uchida
- Posts: 1793
- Joined: Wed May 16, 2012 11:40 am
Re: Metabolic analysis with addition of a hip assist actuator
You could apply torques at the joints using CoordinateActuators (https://simtk.org/api_docs/opensim/api_ ... ml#details) and define the control signals for these actuators as functions of time based on your experiments. The following paper used a similar strategy but the control signals were generated by CMC: Dembia et al. (2017) "Simulating ideal assistive devices to reduce the metabolic cost of walking with heavy loads", https://doi.org/10.1371/journal.pone.0180320. The models, simulations, and Python scripts for this paper are available here: https://simtk.org/projects/assistloadwalk.
- Romain DUPIRE
- Posts: 2
- Joined: Fri Apr 28, 2023 4:16 am
Re: Metabolic analysis with addition of a hip assist actuator
Hello Thomas ! Thanks a lot for your help.
I have been able to customize provided models (Gait10dof18musc as well as Gait2392) to add hip assist actuators as you suggested, using CoordinateActuators (by editing model files manually first, and then using the Python API).
I am now trying to make the model more 'realistic', in the sense that with the exoskeleton, the torque is not directly applied on the hip but it is transfered to the thigh as shown below:
So far, I have been able to "build" the exoskeleton model (either by manually editing osim files, but also using Python API) by using WeldJoint and PinJoint (for the actuator itself), but now I feel a bit stuck for the connection between the pad (in pink on the image above) and the thigh itself.
In fact, I'd like to be able to transfer force to the thigh when the actuator is assisting. But when the actuator is 'passive', it should be set in motion by the hip joint.
My intuition tells me that I should use a constraint connection (not a joint one), but I couldn't find any similar case, neither in the provided examples, nor on the forum.
Any help would be greatly appreciated !
I have been able to customize provided models (Gait10dof18musc as well as Gait2392) to add hip assist actuators as you suggested, using CoordinateActuators (by editing model files manually first, and then using the Python API).
I am now trying to make the model more 'realistic', in the sense that with the exoskeleton, the torque is not directly applied on the hip but it is transfered to the thigh as shown below:
So far, I have been able to "build" the exoskeleton model (either by manually editing osim files, but also using Python API) by using WeldJoint and PinJoint (for the actuator itself), but now I feel a bit stuck for the connection between the pad (in pink on the image above) and the thigh itself.
In fact, I'd like to be able to transfer force to the thigh when the actuator is assisting. But when the actuator is 'passive', it should be set in motion by the hip joint.
My intuition tells me that I should use a constraint connection (not a joint one), but I couldn't find any similar case, neither in the provided examples, nor on the forum.
Any help would be greatly appreciated !