Coder Social home page Coder Social logo

Comments (10)

duburcqa avatar duburcqa commented on July 26, 2024

Indeed there is an issue. I think it comes from the contact model that is based by default on collision geometries instead of frames. The former is supposed to be more realistic but untested for now and numerically unstable model. I'm going to rework internally this part of the engine in a near future to handle generic collisions (collisions of all bodies with the ground plus auto-collisions).

For now, here is a PR fixing your issue ! Basically it is sufficient to overwrite the default options, so there is no need to fix jiminy itself. But it you want, I could make a new release of Jiminy that includes these changes.

By the way, I would advice you to use the environment with low-level PID controllers: ANYmalPDControlJiminyEnv

from jiminy.

duburcqa avatar duburcqa commented on July 26, 2024

I see you did some work based on jiminy here. If you have any question or want me to give you some advice / code review, do not hesitate. The documentation of jiminy is quite poor and providing a comprehensive tutorial would be amazing !

from jiminy.

Le5tes avatar Le5tes commented on July 26, 2024

Thanks!
Yes, it's an assignment for a Master's. Once we're finished I'm happy to make a tutorial from it. :)

from jiminy.

duburcqa avatar duburcqa commented on July 26, 2024

So, in the end do you need me to release a new version fixing the issue or you are planning to overwrite the base configuration manually?

from jiminy.

Le5tes avatar Le5tes commented on July 26, 2024

I overwrote the base configuration in my downloaded version of the package, so no worries!

from jiminy.

duburcqa avatar duburcqa commented on July 26, 2024

Perfect !

from jiminy.

SDJoeKing avatar SDJoeKing commented on July 26, 2024

Hello,
I am on the same team working on the ANYmal RL project. I managed to train it to stand for 20 seconds but it really struggles to move (maybe a few tiny steps forward only). I am thinking to use the ANYmalPDControlJiminyEnv as you recommended, but when I checked the action space for this environment, I got:

Dict(Q:Box([-0.72 -9.42477796 -9.42477796 -0.49 -9.42477796 -9.42477796 -0.72 -9.42477796 -9.42477796 -0.49 -9.42477796 -9.42477796], [0.49 9.42477796 9.42477796 0.72 9.42477796 9.42477796 0.49 9.42477796 9.42477796 0.72 9.42477796 9.42477796], (12,), float64), V:Box(-7.5, 7.5, (12,), float64))

Would it be okay if you could give us a brief explanation as what do they mean? I know they are upper and lower limits, but why separately to Q and V? Sorry for asking as I am not familiar with PID controls.

Thank you so much for your help in advance!

from jiminy.

duburcqa avatar duburcqa commented on July 26, 2024

There is one PID controller per motor. Each of them are responsible for the sending actual torque based on the error between the current and target state for the motors. More details are available here. In this case, the action is no longer the torque directly, but the target state of each motor. These low-level PID controllers are supposed to update the current torque at a higher rate than the action. More information about why doing this is important can be found in the sub-section about the action space of my preprint available on arxiv.

For simplicity, I advice you to only ignore completely the target velocity and set it to zero systematically, so that the policy only output the desired position of the motors and not the combination of both position and velocity.

from jiminy.

SDJoeKing avatar SDJoeKing commented on July 26, 2024

from jiminy.

duburcqa avatar duburcqa commented on July 26, 2024

No problem ! Feel free to ask if you need more details or you have any additional question :)

from jiminy.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.