Skip to content

full adhesion timeconst feature update#3162

Open
mar-yan24 wants to merge 1 commit intogoogle-deepmind:mainfrom
mar-yan24:mark-adhesionTimeconst
Open

full adhesion timeconst feature update#3162
mar-yan24 wants to merge 1 commit intogoogle-deepmind:mainfrom
mar-yan24:mark-adhesionTimeconst

Conversation

@mar-yan24
Copy link
Copy Markdown
Contributor

Summary

This pull request covers a basic implementation of enhancement suggestion #2145, the addition of a timeconst for adhesion actuation. This addition should allow for easy control over the control signal for "sticky forces".

The basic reason why this feature is helpful is because the introduction of a time constant adds a simple low-pass filter between control signal and actual force, as @yuvaltassa and @vaxenburg alluded to earlier.

Main Changes

I added the timeconst parameter for mjs_setToAdhesion(). If its positive, the actuator gets a filter, dyntype=mjDYN_FILTER, if its 0, behavior is unchanged. This was the main change, all others following this are supporting changes.

I changed the XML schema and parser to add timeconst to the list of allowed attributes so you can write it within the model file. I also added python and wasm bindings to expose the parameter so python users can call actuator.set_to_adhesion(gain=100, timeconst=0.03). This should keep the api in sync with xml.

I also described the change in the documentation and added some basic tests.

This change also follows the same existing schema within <cylinder> and <position> actuators that have the timeconst attribute, so this was an existing feature, just extended it to one more actuator type.

Let me know if anything looks awry and I'll take a look.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants