-
Notifications
You must be signed in to change notification settings - Fork 15
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
🔧 Fixed the Torque Input Issue for Torque Mode #231
base: develop
Are you sure you want to change the base?
Conversation
hi @behradkhadem , great that you investigated that. If the robot is falling, that is because there is no gravity compensation. That makes totally sense. We could try to turn off gravity, but then obstacles also don't fall down. The other thing, we can move the line you added to a more central place in the reset, so that it is not called in every time step. |
By the way, there is already a method for disable the velocity control, like you did it. It is called |
Maybe we can solve #15 in this PR as well. |
I think this is a bad idea. In that pick and place becomes impossible.
My bad! I didn't see it, sorry.
Would you elaborate on this matter please? |
You propose that we have a singular friction for all joints (like the one you've implemented |
Just use the function
Could you use a default float value 0.1, and pass an optional argument somewhere, probably through a dedicated function
What is the alternative though? |
I'll work on it.
I'm not in the position to suggest anything. Gravity compensation is a special and complicated matter for itself and there are papers that argue its importance in RL (like this for example). So, I don't know what to do. PS: Sorry for the delay in answering. Over the past few weeks, I've been dealing with serious health issues and wasn't able to focus on the project. I hope that I be able to cooperate on the project and make it better from now on. Thanks. |
According to the paper, it is important that the RL agent should not learn the gravity compensation part. Could you try to use the inverse dynamics only for the gravity part and then add the action-torque to it? |
I asked a few of my professors about this in past week and they either said they didn't know, or they said that in real life robots, also, we should deal with gravity compensation. So, the agent itself should learn to compensate the gravity. Although we can implement the compensator separately for simple robots, in complicated ones we will face challenges. So, to my limited understanding so far, it's better if the agent learns the gravity compensation part alongside with pick-and-place stuff. But the robot now responds to understandable amount of torque, correctly and we're good in that regard. |
I also added the friction torque input to the Is there anything I forgot to add? |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@behradkhadem thanks for this fix. There are minor issues and that it is ready to go
I surfed the web and turns out the link you sent in #230 (comment) had the correct solution. Now robots (I tested point and panda) react to torque input, but it seems that (at least in the case of panda arm) robot falls. By falling I mean that robot can't preserve the initial posture and the links kinda fall to the ground. It reacts to the input torque but with a disfigured position. Is it natural? We don't have this behavior in velocity mode.
I'd be happy if you test it.