[Feature]: Implement a `set_base_links_vel` `set_base_links_ang`method in the `RigidEntity` class
What feature or enhancement are you proposing?
Implementation of a set_base_links_vel() method in the RigidEntity class that allows direct setting of both linear velocity (vel) and angular velocity (ang) for the base link of rigid entities in a single method call.
Motivation
As a robotics researcher using Genesis for simulation environments, I need to directly set and reset the base velocities of my robot entities to initialize scenarios with specific starting conditions and reset environments between episodes.
Potential Benefit
This feature enables efficient environment resets, precise initial velocity setup for external force experiments, and significantly improves training workflows and experimental reproducibility in Genesis simulations.
What is the expected outcome of the implementation work?
- [ ] set_base_links_vel() method implemented in RigidEntity class
Additional information
No response
I want this too. I don't see a way to do this in genesis
I don't think this method while be implemented anytime soon because it is ill-defined. An entity may have multiple root joints (we support kinematic forest for entities, not just kinematic tree). Because of this, what are you supposed to do for the velocity? Setting the same velocity for all of them? This seems wrong. Another approach could be to raise an exception for entities not having exact one free root joint, otherwise set the velocity of this specific joint.
@duburcqa I'd like to at least have a set_links_lin_vel() so that I can randomly set the velocity of 1 or more links at random intervals. This purpose is for reinforcement learning for robust locomotion.