Giter Site home page Giter Site logo

Comments (9)

christophfroehlich avatar christophfroehlich commented on June 16, 2024 1

There were quite a lot of changes to 0.4.4, I don't have a glue now where this could come from. Could you try to compile it from source, and use git bisect to find the commit introducing your issue?

from gazebo_ros2_control.

mr337 avatar mr337 commented on June 16, 2024 1

@christophfroehlich Here is an example using the above meshes in the original post of this issue https://github.com/mr337/control_mre Instructions and such on how to produce in ROS2 Humble.

from gazebo_ros2_control.

christophfroehlich avatar christophfroehlich commented on June 16, 2024 1

OK, your model sometimes also explodes with the version before the commit, after it has already been standing stable on the ground. By increasing physics/solver/iterations to 500 make the simulation stable, even with the latest version of the HEAD.

This is an indication that your model or the physics solver is not well configured.

A good starting point is always to have a look at the inertia, masses, and contact points (visualize them from the view menu).

  • Having a look at the inertias: None has a infeasible high magnitude, but it does not really coincide with your meshes. Pay also attention that every link being in the kinematic chain with non-fixed joints has reasonable high mass+inertia. (setting inertia of any link to zero -> your model explodes).
  • The contact points are flickering. This is a well-documented issue of gazebo classic ODE solver, but there are some solver options to play around with.

default_gzclient_camera(1)-2023-12-30T21_37_11 615738

I hope I could help with this. I'm pretty sure now that this is not a problem with gazebo_ros2_control, the new version just reveals the problem immediately. I close this issue now, feel free to reopen if you don't agree.

from gazebo_ros2_control.

mr337 avatar mr337 commented on June 16, 2024

No problem, after working git bisect what appears to be the offending commit is d18a887#diff-e14963d1c2ba3a31138bda99525946c355191fe361859b5fb7247fddad6c3a2a

I believe some of this control code is a little over my head. What is odd is I compared the full ROS log line for line with version 0.4.2 and 0.4.4 expecting some kind of error or something crashing/segfaulting. I did not get any warning as defined here https://github.com/ros-controls/gazebo_ros2_control/pull/177/files#diff-e14963d1c2ba3a31138bda99525946c355191fe361859b5fb7247fddad6c3a2aR138

Looking at the code I don't see much difference since the larger if else blocks seem to cover Position controllers just like I am using. The only difference is they have an additional true. Still splunking around in the codebase.

from gazebo_ros2_control.

christophfroehlich avatar christophfroehlich commented on June 16, 2024

I don't see what #208 should change with your setup. Could you provide a full example of your robot including the meshes? I'm curious..

from gazebo_ros2_control.

mr337 avatar mr337 commented on June 16, 2024

That is what I keep thinking 😆

Let me provide a Minimal Reproducible Example of the robot

from gazebo_ros2_control.

christophfroehlich avatar christophfroehlich commented on June 16, 2024

Sorry, I haven't had time earlier to dig into this.

The problem is not a broken joint-state, but your gazebo model explodes after touching the ground.

The reason why this didn't happen before is that now as a fallback every joint velocity is set to zero (this happens always at the first write until the controllers get activated)

} else if (this->dataPtr->is_joint_actuated_[j]) {
// Fallback case is a velocity command of zero (only for actuated joints)
this->dataPtr->sim_joints_[j]->SetVelocity(0, 0.0);
}

Without forcing it to zero they are "not actuated"/compliant and the impact is solved stable.

I have to try if this is a problem of your specific robot (falling down, four wheels might not get stable contact points..) or happens also with others.

from gazebo_ros2_control.

mr337 avatar mr337 commented on June 16, 2024

Just wanted to add that our issue was related to the mass of the wheels. We also did some further work on masses and inertias to get a model that is happy.

Thanks again for pointing us in the right direction @christophfroehlich

from gazebo_ros2_control.

christophfroehlich avatar christophfroehlich commented on June 16, 2024

you're very welcome, glad you fixed it!

from gazebo_ros2_control.

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.