You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I am a PhD student. This question is about using MuJoCo for model based control of legged robots using MuJoCo's contact model.
My setup
I am using MuJoCo in Python for prototyping the algorithm and then would use it in C/C++.
My question
Background:
I use high impratio = 10 to 100 in forward dynamic simulation so that the robot feet don't slip while standing still on inclined ground. But, if I use this high value of impratio during inverse dynamics control, the mjd_inverseFD output derivative DsDa where sensor is contact forces gives me impratio times large derivatives (change in contact force per unit change in joint acc) for tangential directions as compared to the normal direction. The minimizer (Steepest descent/CG) which solves for joint accelerations by minimizing the physics violation (first six elements of d.qfrc_inverse) then struggles to converge. But it converges quickly when impratio is 1.
Question:
I am implementing the controller using a callback function. I generally use RK4 integrator for simulation, set it temporarily within the controller callback function to Euler for mjd_inverseFD computations and switch it back to RK4 before leaving the controller function. But it seems that I cannot do the same for impratio. The changed setting does not seem to take effect.
Is the only way out for this is to define a new model instance (and hence a new data) specifically for inverse dynamics?
I already use a seperate data for inv dyn computations (get-set states from the main simulation data and propagate them as needed).
Minimal model and/or code that explain my question
reacted with thumbs up emoji reacted with thumbs down emoji reacted with laugh emoji reacted with hooray emoji reacted with confused emoji reacted with heart emoji reacted with rocket emoji reacted with eyes emoji
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
Intro
Hi!
I am a PhD student. This question is about using MuJoCo for model based control of legged robots using MuJoCo's contact model.
My setup
I am using MuJoCo in Python for prototyping the algorithm and then would use it in C/C++.
My question
Background:
I use high
impratio = 10 to 100in forward dynamic simulation so that the robot feet don't slip while standing still on inclined ground. But, if I use this high value ofimpratioduring inverse dynamics control, themjd_inverseFDoutput derivativeDsDawhere sensor is contact forces gives meimpratiotimes large derivatives (change in contact force per unit change in joint acc) for tangential directions as compared to the normal direction. The minimizer (Steepest descent/CG) which solves for joint accelerations by minimizing the physics violation (first six elements ofd.qfrc_inverse) then struggles to converge. But it converges quickly whenimpratiois 1.Question:
I am implementing the controller using a callback function. I generally use RK4 integrator for simulation, set it temporarily within the controller callback function to Euler for
mjd_inverseFDcomputations and switch it back to RK4 before leaving the controller function. But it seems that I cannot do the same forimpratio. The changed setting does not seem to take effect.Is the only way out for this is to define a new
modelinstance (and hence a newdata) specifically for inverse dynamics?I already use a seperate
datafor inv dyn computations (get-set states from the main simulationdataand propagate them as needed).Minimal model and/or code that explain my question
No response
Confirmations
Beta Was this translation helpful? Give feedback.
All reactions