Unable to exert demanded torque with actuator #3023
Unanswered
ajoardar007
asked this question in
Asking for Help
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
Hello!
I am a graduate student at the University of Waterloo, and I am using MuJoCo in a course demonstration.
Background:
I am trying to model a position PID controller using a mobile manipulator. You can find the Colab Notebook with the associated link STL-files here. It was based of of Mujoco's tutorial notebook (Link). All you need to do is just run it and give it permissions to read the STL-files.
The joint is able to move to the set-point (1 rad) using the provided position controller using the only the PD-gains (second-last code-block) (actuator
position name="wam/J1/P"). Exerted torque starts at 900 Nm, and gradually tappers to 0 Nm, as it should. However, due to the lack of support for an I-gain, I decided to implement a PID-controller using an effort actuator.download.1.mp4
My setup
MuJoCo version: 3.4.0,
API: Python,
Architecture: Google Colab (Link)
My question
The effort actuator (
motor name='wam/J1/F') is only able to move the joint to 0.589 rad, regardless of whether the set-point is 1 or 2 rads (the joint-limits are +/- 2.6 rads). Looking at the commanded and exerted joint torque (after x42 gearbox), the command is 19k Nm while the exerted is 0 Nm. it had tappered off from 500 Nm to 0 Nm very quickly. Next, I tried to exert a constant torque of 42 Nm.download.mp4
Upon replacing the PID-inputs to the joint controller with a 0Nm input, the command and exerted joint torques is the same. However, when the commanded output is 42 Nm, the exerted torque quickly tappers from 42 Nm to 0 Nm.
I tried moving the MB (actuator
motor name="smt/pose/x") with an output of 100N and the sensors reported 100N at all sample times.There are 4 test cases:
The commands to exert them are located in the section between two lines of
#####, labelled as# Actuator.The print-statement to check if they are being exerted and the change to the corresponding joint are located in the section between two lines of
#####, labelled as# Print statements.Enable each of them in turn to check their effects.
Question: Why can't I exert a constant joint torque using
motor name='wam/J1/F'? Maybe that will help answer why my PID controller isn't working as it should.Cheers,
Minimal model and/or code that explain my question
If you encountered the issue in a complex model, please simplify it as much as possible (while still reproducing the issue).
Model:
minimal XML
Code:
Notes:
Please change the location of STL files in the XML file to where ever you are keeping it.
WAM STL Files.zip
Confirmations
Beta Was this translation helpful? Give feedback.
All reactions