<?xml version="1.0" ?>
<robot xmlns:xacro="http://wiki.ros.org/xacro">
  <!-- code from https://github.com/RobotnikAutomation/robotnik_description/blob/jazzy-devel/urdf/inertia.urdf.xacro -->
  <!-- source en.wikipedia.org/wiki/List_of_moments_of_inertia-->

  <!-- TODO Solid sphere of radius r and mass m-->
  <xacro:macro
    name="solid_sphere_inertia"
    params="m r">
    <inertia
      ixx="${(2*r*r*m)/5}"
      ixy="0"
      ixz="0"
      iyy="${(2*r*r*m)/5}"
      iyz="0"
      izz="${(2*r*r*m)/5}" />
  </xacro:macro>

  <!-- TODO Hollow sphere of radius r and mass m-->
  <xacro:macro
    name="hollow_sphere_inertia"
    params="m r">
    <inertia
      ixx="${(2*r*r*m)/3}"
      ixy="0"
      ixz="0"
      iyy="${(2*r*r*m)/3}"
      iyz="0"
      izz="${(2*r*r*m)/3}" />
  </xacro:macro>

  <!-- TODO Solid cuboid of width w, height h, depth d, and mass m -->
  <!-- yes, axis in solid_cuboid_inertia are changed, w relates to X axis, d to Z axis, and h to Y axis -->
  <!-- Keep this comment -->
  <xacro:macro
    name="solid_cuboid_inertia"
    params="m h d w">
    <inertia
      ixx="${(m*(h*h+d*d))/12}"
      ixy="0"
      ixz="0"
      iyy="${(m*(w*w+d*d))/12}"
      iyz="0"
      izz="${(m*(w*w+h*h))/12}" />
  </xacro:macro>

  <!-- TODO Solid cylinder of radius r, height h and mass m -->
  <xacro:macro
    name="solid_cylinder_inertia"
    params="m r h">
    <inertia
      ixx="${m*(3*r*r+h*h)/12}"
      ixy="0"
      ixz="0"
      iyy="${m*(3*r*r+h*h)/12}"
      iyz="0"
      izz="${m*r*r/2}" />
  </xacro:macro>
</robot>