Skip to content
Discussion options

You must be logged in to vote

Yes—the split you are making is real, and for an unloaded hinge with implicitfast it is a sound way to separate “force that participated in this substep” from “force evaluated at the post-step state.”

In the pipeline docs, mj_step1 runs through the position/velocity stages and stops before forces are finished; mj_step2 runs actuation → acceleration → constraints → integration. Actuator outputs are written in mj_fwdActuation into mjData.actuator_force (and assembled into mjData.qfrc_actuator). So the value you read immediately after mj_step2, before another forward pass, is the force that belonged to that completed step.

Calling mj_forward on the updated qpos/qvel (your observation copy) r…

Replies: 1 comment 1 reply

Comment options

You must be logged in to vote
1 reply
@Slagathore
Comment options

Answer selected by Slagathore
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
2 participants