Pierwszy robot URDF

Pierwsze kroki w opisywaniu robotów za pomocą plików URDF:

Uruchamiamy aplikację (stronę internetową): mymodelrobot.appspot.com

Aplikacja pozwala na budowanie robota i sprawdzanie jego działania bezpośrednio w przeglądarce.

Robota będziemy budowali w polu Robot’s URDF.

Wpiszmy tam dla przykładu:

<?xml version="1.0"?>
<robot name="myrob">
  <link name="podstawa">
    <visual>
      <geometry>
        <box size="0.7 0.7 0.2"/>
      </geometry>
    </visual>
  </link>
</robot>

Po naciśnięciu Load robot URDF powinno to skutkować robotem sytuacją z obrazka poniżej

Efekt kodu powyżej

Właśnie powstał twój pierwszy robot. Ma nazwę “myrob”, ma jeden element o nazwie podstawa, który przedstawiany jest jako pudełko o wymiarach 70 cm x 70 cm x 20 cm.

Kolejne części robota

Najczęściej roboty zbudowane są z więcej niż jednego elementu. Żeby dodać kolejny, dodajemy kod przed ostatnią linijką

 <link name="podstawa_cylinder">
  <visual>
    <geometry>
      <cylinder length="0.4" radius="0.35"/>
    </geometry>
  </visual>
</link>
  
<joint name="polacz_podstawy" type="fixed">
  <parent link="podstawa"/>
  <child link="podstawa_cylinder"/>
  <origin xyz="0 0 0.2"/>
</joint>

Robot z podstawą

Kod dodaje element podstawa_cyliner, tym razem o geometrii cylindra.

Łączymy elementy podstawa i podstawa_cyliner w jednego robota tagiem joint. Jest to połączenie typu sztywnego (fixed). W układzie rodzica - podstawy, złącze znajduje się na wysokości 20 cm po osi z.

Pierwszy ruchomy element

Dołączmy teraz ruszający się element.

Przed ostatnią linijką, dopisujemy kod:

 <link name="ruchomy_1">
    <visual>
      <geometry>
        <box size="0.3 0.2 0.4"/>
      </geometry>
    <origin rpy="0.3 0 0" xyz="0 0 0.2"/>
<material name="czerwony">
        <color rgba="1 0 0 1"/>
      </material>
  
  
</visual>
</link>
  
<joint name="obrotowy_1" type="revolute">
  <parent link="podstawa_cylinder"/>
  <child link="ruchomy_1"/>
  <origin xyz="0 0 0.2" />
  <axis xyz="0 0 1"/>
  <limit effort="1000.0" lower="-0.548" upper="0.548" velocity="0.5"/>
</joint>

Co skutkuje dołączeniem do modelu czerwonego elementu.

czerwony_element

Wykorzystując (czarne) menu Joint_values można pokręcić elementem.

Do elemenu link dołączyłem tag origin, pozwalający mi podnieść sześcian o 20cm i obrócić o 0.2 rad. Zwróć uwagę, że obrót sześcianu nastąpił wokół osi przebiegającej przez jego środek.

Złącze (joint) ma charakter revolute, to znaczy obraca się ale tylko pomiędzy kątami określonymi parametrami lower i upper tagu limit.

Osią obrotu jest oś z.