Giter Club home page Giter Club logo

ros-urdf's Introduction

ROS-URDF

Robot Creation: URDF for Robot Modeling course from Robot Ignite Academy

The course covers:-

  • How to build a visual robot model with URDF
  • How to add physical properties to a URDF Model (Collision, Frictions…)
  • How to use XACRO to clean up URDF files.
  • How to use URDF in Gazebo-ROS ecosystem.

My Key Take Aways:-

  • to check the model in the world : rosservice call /gazebo/get_world_properties "{}"

  • to delete the model (eg: Mira) in the world : rosservice call /gazebo/delete_model "model_name: 'mira'"

  • Unit 2: Adapt URDF for Gazebo Simulator

To make a model appear in Gazebo you need to add the following:

Inertias: The inertias and mass of the model is important if you want it to have physics applied
Gazebo Physical Properties: Here you specify the frictions and material properties like colour or softness.
Collisions: Without collisions the Robot models would just go through the floor.
Visual Properties: We add colour to the visual, which only will affect the URDF in RVIZ, the colour in the simulation is defined in the Gazebo Physical Properties.
Gazebo Sensors: Here is when you add cameras, motor controllers and all the robots systems.
  • Inertia : rosrun my_mira_description inertia_calculator.py to return the inertia by providing the mass and the dimension of the object and include the inertia in the urdf file.

  • Gazebo Physical Properties: The "gazebo" tag that refers to the link that is setting the physical properties for.

Here the main physical properties of the link are defined:

mu1: The static friction coefficient. In simple terms, it would be how much friction there is until the object starts moving.
mu2: The dynamic friction coefficient. In simple terms, it would be how much friction there is when the object is moving.

Here we have the same issue. These values should be calculated through friction tests with elements with the same mass as the links you are setting these values to. You should also bear in mind the materials they are made of, and so on. But in reality, it's setting them with the values that makes the robot behave correctly, not necessarily the real ones.

kp: This coefficient sets the static contact stiffness. This determines if the link material is closer to marble (very rigid, bigger values) or more like rubber (soft material, lower values).
kd: This coefficient sets the dynamic contact stiffness. This determines if the link material is closer to marble (very rigid, bigger values) or more like rubber (soft material, lower values). It's essentially how much it deforms over a long period of time, exerting its pressure.

And then we have the material, that is not more than the colour of the geometric visual shape. If its a dae, then it serves no purpose because the colours are enmbeded in the 3Dfile.

Add the following tag in URDF file.
<gazebo reference="base_link">
<kp>100000.0</kp>
<kd>100000.0</kd>
<mu1>10.0</mu1>
<mu2>10.0</mu2>
<material>Gazebo/Grey</material>
</gazebo>

ros-urdf's People

Contributors

ok-kewei avatar

Watchers

 avatar  avatar

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.