google-deepmind / google-deepmind/mujoco

[<Actuator>] Custom Control Range Mapping for Actuators in MJCF XML

Open
#1,697 3 comments 0 reactions 0 assignees View on GitHub
enhancement
Dominant language
C++
Stars
15.2k
Forks
1.8k
Avg merge
10d 16h
Merged PRs (30d)
25

Description

**Summary**
I am suggesting a feature to map the inherited joint control range to a custom range for the **_position controller_** within the tag in the XML configuration file. This feature would be particularly useful for scenarios where the joints are procedurally generated, and each joint starts in a random position within its respective movement range.

As an example, this joint is initiated with random position hence the range is between -1.5 and -0.2
``

The new feature could be implemented by adding a new attribute to the tag that specify the desired control range. For example:
``

**Problem Description**
In many simulations, especially those involving procedurally generated robots, joints initialize at random positions within their respective movement ranges. These ranges vary for each joint, with some joints having negative minimum range aswell. As a result, each actuator ends up with a unique control range. Currently, there is no built-in functionality to standardize or map these control ranges to a consistent scale. This leads to a high number of actuators, each requiring manual adjustment to set their control ranges appropriately in python or c++.

**Benefits**
- Standardizing control ranges simplifies the setup and management of multiple actuators, also desired for learning applications.

- Allows for convenience in simulations where the random initial joint positions does not affect the actuator configurations.

Thank you for your attention and for your continuous efforts in improving MuJoCo.

Here is a procedurally generated truss robot model from my research.

![image](https://github.com/google-deepmind/mujoco/assets/38794995/79165e26-ca69-49fe-9e1d-6f718e0f83de)

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.