FreeCAD Logo FreeCAD 1.0
  • Engelska Afrikaans Arabiska Belarusian Katalanska Tjeckiska Tyska Grekiska Spanska Spanska Baskisk Finska Filippinska Franska Galiciska Kroatiska Ungerska Indonesiska Italienska Japanska Kabyliska Koreansk Litauiska Nederländska Norwegian Bokmal Polska Portugisiska Portugisiska Rumänska Ryska Slovakiska Slovenska Serbiska Svenska Turkiska Ukrainska Valencianska Vietnamesiska Kinesiska Kinesiska
  • Funktioner
  • Hämta
  • Blogg
  • Dokumentation
    Documentation index Kom igång Användardokumentation FreeCAD-manualen Dokumentation för arbetsytor Python coding documentation C++ coding documentation Övningar Frequently asked questions Privacy policy Om FreeCAD
  • Bidra
    Hur hjälper du till Sponsor Report a bug Make a pull request Jobs and funding Contribution guidelines Developers handbook Översättningar
  • Gemenskap
    Code of conduct Forum The FPA GitHub GitLab Codeberg Mastodon Matrix IRC IRC via Webchat Gitter Discord Reddit Twitter Facebook LinkedIn Calendar
  • ♥ Donate

Donate

$
SEPA Information
Ställ in din SEPA-banköverföring till:
Beneficiary: The FreeCAD project association
IBAN: BE04 0019 2896 4531
BIC/SWIFT: GEBABEBBXXX
Bankombud: BNP Paribas Fortis
Adress: Rue de la Station 64, 1360 Perwez, Belgium

While Stripe doesn't support monthly donations, you can still become a sponsor! Simply make a one-time donation equivalent to 12 months of support, and you'll gain access to the corresponding sponsoring tier. It's an easy and flexible way to contribute.

If you are not sure or not able to commit to a regular donation, but still want to help the project, you can do a one-time donation, of any amount.

Choose freely the amount you wish to donate one time only.

You can support FreeCAD by sponsoring it as an individual or organization through various platforms. Sponsorship provides a steady income for developers, allowing the FPA to plan ahead and enabling greater investment in FreeCAD. To encourage sponsorship, we offer different tiers, and unless you choose to remain anonymous, your name or company logo will be featured on our website accordingly.

from 1 USD / 1 EUR per month. You will not have your name displayed here, but you will have helped the project a lot anyway. Together, normal sponsors maintain the project on its feet as much as the bigger sponsors.

from 25 USD / 25 EUR per month. Your name or company name is displayed on this page.

from 100 USD / 100 EUR per month. Your name or company name is displayed on this page, with a link to your website, and a one-line description text.

from 200 USD / 200 EUR per month. Your name or company name and logo displayed on this page, with a link to your website and a custom description text. Companies that have helped FreeCAD early on also appear under Gold sponsors.

Instead of donating each month, you might find it more comfortable to make a one-time donation that, when divided by twelve, would give you right to enter a sponsoring tier. Don't hesitate to do so!

Choose freely the amount you wish to donate each month.

Please inform your forum name or twitter handle as a notein your transfer, or reach to us, so we can give you proper credits!

Tutorial
Topic
Robot Workbench
Level
Intermediate
Time to complete
Unknown
Authors
FreeCAD version
Example files
See also
None

Overview

Denna artikel handlar om hur man hämtar in en standard 6-Axlig industrirobot till FreeCAD för simulering

Beskrivningen följer Denavit-Hartenberg Parameter systemet, som även beskrivs i John J. Craigs bok "Introduction to Robotics".

Exempel Kuka

Kuka KR-16

Kinematik

3D applikationer
Segment Parameter Beskrivning

Basens konfiguration

θ1=q1

d1=675mm

a1=260mm

α1=−90°

Segment 1

θ2=q2−90°

d2=0mm

a2=680mm

α2=0°

Segment 2

θ3=q3

d3=0mm

a3=0mm

α3=90°

Segment 3

θ4=q4

d4=−670mm

a4=0mm

α4=−90°

Segment 4

θ5=q5

d5=0mm

a5=0mm

α5=90°

Segment 5

θ6=q6

d6=0mm

a6=−158mm

α6=180°

Segment 6

Detta leder till följande tabell:

Kinematik tabell

i θ d a α
1 q1 675 mm 260 mm -90°
2 q2 - 90° 0 mm 680 mm 0°
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°

Eftersom Kuka robotarna inte har alla axlar i 0 i den ritade L-Positionen, så behöver vi ändra axel 2 & 3 med 90°.


Kinematik tabell

i θ d a α
1 q1 675 mm 260 mm -90°
2 q2 0 mm 680 mm 0°
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°

I databladet så hittar vi ytterligare information om axlarna:

Vilket leder till den kompletta tabellen:

Kinematik tabell

i θ d a α θmin θmax 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

Visuell representation

FreeCAD kan generera en grov bild ur kinematiktabellen. Men om du vill komma närmare verkligheten så kan du använda en VRML fil med robotens utseende för simuleringen. T.ex. Kuka handhar VRML filer för sina modeller. VRML filen laddas under skapandet av den specifika roboten i FreeCAD. För att FreeCAD ska kunna röra axlarna så måste vi redigera VRML filen och sätta in speciella omvandlingsnoder som FreeCAD kan hitta och manipulera.

Detta visas återigen med exemplet Kuka KR 16. med start från rad 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
              [
...

Du ser att denna fil är exporterad med en robotsimuleringsmjukvara som kallas för Tecnomatix. Ta bort denna notis och skriv in en URL var du fick denna fil ifrån, därför att Tecnomatix har ingen upphovsrätt på filinnehållet. Det är endast en omvandlare! Först av allt så tar vi bort Background noden. Ta sedan bort rotation och scale noden för att få modellen i mm och uppåtpekande Z.

Aldeles vid slutet:

  ] }
  ] }
  ] }
  ]
}
#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
#}

Kommentera bort TimeSensor och de 6 rutterna. Dessa 6 rader ger dig ett tips på var robotens axlar är någonstans! Sök först efter "AXIS_04_OBJ" som tar dig till den platsen:

...
    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
              [
...

Du måste precis innan definitionen av denna nod sätta in raden "DEF FREECAD_AXIS1 Transform { rotation 0 1 0 0 children [" vilket är FreeCADs ankare för att förflytta axeln.

Gör nu detsamma för FREECAD_AXIS2,FREECAD_AXIS3,FREECAD_AXIS4,FREECAD_AXIS5 och FREECAD_AXIS6. Glöm inte de stängande parenteserna vid slutet av filen, och du är färdig!

Du kan ladda VRML:en genom att exemplifiera roboten:

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

vilket ska ge dig detta resultat:

KR 210

Data sheet

Kinematik tabell

i θ d a α θmin θmax 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

Kinematik tabell

i θ d a α θmin θmax 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

Links

  • Springer Handbook of Robotics, section Kinematics, p 9-33.
  • Denavit-Hartenberg Parameter 3D Video Tutorial Denavit-Hartenberg Parameter 3D Video Tutorial for a KUKA industry robot on YouTube (german).
  • Denavit-Hartenberg Reference Frame Layout Denavit-Hartenberg Reference Frame Layout on YouTube.
  • RoboAnalyzer RoboAnalyzer is a 3D model based software that can be used to teach and learn the Robotics concepts.


Denna sida hämtas från https://wiki.freecad.org/Robot_6-Axis

Kontakta oss!
Forum GitHub Mastodon Matrix IRC Gitter.im Discord Reddit Twitter Facebook LinkedIn

© The FreeCAD Team. Homepage image credits (top to bottom): ppemawm, r-frank, epileftric, regis, rider_mortagnais, bejant.

This project is supported by: , KiCad Services Corp. och andra sponsorer

GitHubImprove this page on GitHub