Robot 6-Axis/cs


Base ExampleCommandModel.png Tutorial

Topic
Robot Workbench
Level
Intermediate
Time to complete
Unknown
Author
FreeCAD version
Example File(s)


Tento článek je o zavedení standardů 6-ti osového průmyslového robota pro simulaci ve FreeCADu.

Popis vychází ze systému Denavit-Hartenberg Parameter, podobně jak popisuje John J. Craigs v knize "Introduction to Robotics".

Příklad Kuka

Kuka KR-16
KukaKR16.jpg KukaParts.jpg KukaAxisPosition.jpg

Kinematika

3D aplikace
Segment Parameter Popis
KukaBase.jpg Základní konfigurace
KukaSegment1.jpg

<math>\theta_{1} = q_{1}</math>

<math>d_{1} = 675 mm </math>

<math>a_{1} = 260 mm </math>

<math>\alpha_{1} = −90</math>°

Segment 1
KukaSegment2.jpg

<math>\theta_{2} = q_{2} - 90</math>°

<math>d_{2} = 0 mm </math>

<math>a_{2} = 680 mm </math>

<math>\alpha_{2} = 0</math>°

Segment 2
KukaSegment3.jpg

<math>\theta_{3} = q_{3} </math>

<math>d_{3} = 0 mm </math>

<math>a_{3} = 0 mm </math>

<math>\alpha_{3} = 90</math>°

Segment 3
KukaSegment4.jpg

<math>\theta_{4} = q_{4} </math>

<math>d_{4} = -670 mm </math>

<math>a_{4} = 0 mm </math>

<math>\alpha_{4} = -90</math>°

Segment 4
KukaSegment5.jpg

<math>\theta_{5} = q_{5} </math>

<math>d_{5} = 0 mm </math>

<math>a_{5} = 0 mm </math>

<math>\alpha_{5} = 90</math>°

Segment 5
KukaSegment6.jpg

<math>\theta_{6} = q_{6} </math>

<math>d_{6} = 0 mm </math>

<math>a_{6} = -158 mm </math>

<math>\alpha_{6} = 180</math>°

Segment 6

Řídí se následující tabulkou:

Kinematická tabulka
<math>i</math> <math>\theta</math> <math>d</math> <math>a</math> <math>\alpha</math>
1 q1 675 mm 260 mm -90°
2 q2 - 90° 0 mm 680 mm
3 q3 0 mm 0 mm 90°
4 q4 -670 mm 0 mm -90°
5 q5 0 mm 0 mm 90°
6 q6 -158 mm 0 mm 180°

Protože roboty Kuka nemají všechny osy do 0 v nakreslené L-pozici, musíme změnit osy 2 a 3 o 90°.


Kinematická tabulka
<math>i</math> <math>\theta</math> <math>d</math> <math>a</math> <math>\alpha</math>
1 q1 675 mm 260 mm -90°
2 q2 0 mm 680 mm
3 q3 - 90° 0 mm 0 mm 90°
4 q4 -670 mm 0 mm -90°
5 q5 0 mm 0 mm 90°
6 q6 -158 mm 0 mm 180°

V popisu robota jsou navíc i informace o ose:

KukaAxisData.jpg

Výsledkem je kompletní tabulka:

Kinematická tabulka
<math>i</math> <math>\theta</math> <math>d</math> <math>a</math> <math>\alpha</math> <math>\theta_{min}</math> <math>\theta_{max}</math> Axis Speed
1 0 675 260 -90 -185 185 156
2 0 0 680 0 -155 35 156
3 - 90 0 0 90 -130 154 156
4 0 -670 0 -90 -350 350 330
5 0 0 0 90 -130 130 330
6 0 -158 0 180 -350 350 615

Vizuální reprezentace

FreeCAD může generovat neupravený vizuální výstup kinematické taulky. Ale pokud se chcete dostat blíž k realitě, můžete pro simulaci použít VRML soubor s tvary robota. Např. dodávané Kuka soubory pro jejich model. Při vytváření specifického robota ve FreeCADu je natahován soubor VRML. Pokud je FreeCADu umožněno posunovat osy, musí být upraven VRML soubor a vloženy speciální transformační uzly, které FreeCAD může nalézt a manipulovat s nimi.

Ještě jednou ukážeme příklad Kuka KR 16. Začínáme od řádku 1:

#VRML V2.0 utf8
#
# This VRML97 file was exported using eM-Workplace
# (c) Tecnomatix Technologies GmbH & Co. KG
#     Heisenberg-Bogen 1
#     D-85609 Aschheim-Dornach
#     GERMANY
#
#Background
#{
#   skyColor   [0.752941 0.752941 0.752941]
#}
Transform
{
   #rotation 1 0 0 -1.5707963
   #scale .001 .001 .001
   children
   [
           DEF AOBJ_0001_000_TRAFO Transform
           {
              children
              [
...

Vidíte, že tento soubor je dodáván se simulačním software robota zvaným Tecnomatix. Odstraňte poznámku a vložte tam URL, ze které jste tento soubor získali, protože Tecnomatix nemá žádný copyright na obsah souboru. Je to pouze konvertor! Nejdřív odstraňte uzel Background. Potom odstraňte uzly rotation a scale abyste dostali model v mm a kolmou Z.

A teď na konci:

  ] }
  ] }
  ] }
  ]
}
#ROUTE SENS_04_OBJ.rotation_changed TO AXIS_04_OBJ.rotation
#ROUTE SENS_27_OBJ.rotation_changed TO AXIS_27_OBJ.rotation
#ROUTE SENS_32_OBJ.rotation_changed TO AXIS_32_OBJ.rotation
#ROUTE SENS_44_OBJ.rotation_changed TO AXIS_44_OBJ.rotation
#ROUTE SENS_46_OBJ.rotation_changed TO AXIS_46_OBJ.rotation
#ROUTE SENS_49_OBJ.rotation_changed TO AXIS_49_OBJ.rotation
#DEF AnySIMTimer TimeSensor
#{
#   cycleInterval 1.000000
#   loop          TRUE
#}

Odkomentujte TimeSensor a 6 routes. Těch 6 řádků určuje kde jsou aktuální osy robota! Nejdříve se podívejte po "AXIS_04_OBJ" což Vás přivede na následující místo:

...
    Transform { rotation 1 0 0 1.570796 children [
        DEF SENS_04_OBJ-0001 CylinderSensor
        {
           diskAngle 1.570796
           minAngle  -3.228859
           maxAngle  3.228859
           offset    0.000000
        }
      DEF FREECAD_AXIS1 Transform { rotation 0 1 0 0 children [
      DEF AXIS_04_OBJ-0001 Transform
     {
        children
        [
        Transform { rotation 1 0 0 -1.570796 children [
           DEF AOBJ_0001_003_TRAFO Transform
           {
              rotation 1.000000 0.000000 0.000000 3.141593
              translation -600.000000 500.000000 300.000000
              children
              [
...

Přesně nad definici tohoto uzlu musíte vložit řádek "DEF FREECAD_AXIS1 Transform { rotation 0 1 0 0 children [" což je odkaz pro FreeCAD aby se přesunul na osy.

A teď to samé pro FREECAD_AXIS2,FREECAD_AXIS3,FREECAD_AXIS4,FREECAD_AXIS5 a FREECAD_AXIS6. Nezapomeňte na uzavírací závorky na konci souboru a pak jste hotovi!

Při konkretizaci robota můžete natáhnout VRML:

App.activeDocument().addObject("Robot::RobotObject","Robot")
App.activeDocument().Robot.RobotVrmlFile = "C:/_Projekte/FreeCAD0.9_build/mod/Robot/Lib/Kuka/kr16.wrl"

což by mělo dát tento výsledek: KukaKR16FreeCAD.jpg

KR 210

Data sheet

Kinematická tabulka
<math>i</math> <math>\theta</math> <math>d</math> <math>a</math> <math>\alpha</math> <math>\theta_{min}</math> <math>\theta_{max}</math> Axis Speed
1 0 750 350 -90 -185 185 156
2 0 0 1250 0 -155 35 156
3 - 90 0 0 90 -130 154 156
4 0 -1100 0 -90 -350 350 330
5 0 0 0 90 -130 130 330
6 0 -230 0 180 -350 350 615


KR 500

Data sheet

Kinematická tabulka
<math>i</math> <math>\theta</math> <math>d</math> <math>a</math> <math>\alpha</math> <math>\theta_{min}</math> <math>\theta_{max}</math> Axis Speed
1 0 1045 500 -90 -185 185 156
2 0 0 1300 0 -155 35 156
3 - 90 0 0 90 -130 154 156
4 0 -1025 0 -90 -350 350 330
5 0 0 0 90 -130 130 330
6 0 -250 0 180 -350 350 615
Online version: "http://www.freecadweb.org/wiki/index.php?title=Robot_6-Axis/cs&oldid=177584"

Navigation menu