Describe the bug
Articulation velocity-only write paths do not invalidate the dependent cached body state buffers. In particular, calling write_joint_velocity_to_sim(...), write_root_com_velocity_to_sim(...) or write_root_link_velocity_to_sim(...) can leave body_link_vel_w, body_link_state_w, and body_com_state_w marked as fresh even though the articulation state has changed. This can cause downstream code to read stale body velocity or body state after a velocity-only update.
Steps to reproduce
- Create an articulation and access one of the derived body state properties so it gets cached.
- Call a velocity-only write path such as
write_joint_velocity_to_sim(...).
- Read the same derived body state again before a full refresh.
- Observe that the cached body buffers were not invalidated and may return stale data.
Expected behavior
After any velocity-only write, all dependent body state caches are invalidated, and subsequent reads reflect the updated simulation state.
Actual behavior
Caches remain marked as fresh, so subsequent reads may return stale body velocity/state.
Checklist
Acceptance Criteria
- Velocity-only write APIs must invalidate all derived body state caches.
- Have a more general way to make
articulation_data buffer stale anytime its needed
Describe the bug
Articulationvelocity-only write paths do not invalidate the dependent cached body state buffers. In particular, callingwrite_joint_velocity_to_sim(...),write_root_com_velocity_to_sim(...)orwrite_root_link_velocity_to_sim(...)can leavebody_link_vel_w,body_link_state_w, andbody_com_state_wmarked as fresh even though the articulation state has changed. This can cause downstream code to read stale body velocity or body state after a velocity-only update.Steps to reproduce
write_joint_velocity_to_sim(...).Expected behavior
After any velocity-only write, all dependent body state caches are invalidated, and subsequent reads reflect the updated simulation state.
Actual behavior
Caches remain marked as fresh, so subsequent reads may return stale body velocity/state.
Checklist
Acceptance Criteria
articulation_databuffer stale anytime its needed