Ansteuerung einer Linearachse über EGM via ROS

  • Hallo zusammen,


    mein Ziel ist es eine Linearachse mit dem darauf montiertem IRB 4600 (IRC5, Robotware 6) über die EGM Schnittstelle via ROS anzusteuern. Auf der Steuerung sind das StateMachine Add-Inn 1.1 und die damit automatisch erstellten EMG RAPID Programme installiert.


    Mir ist es möglich die Joint Velocity aller 6 Roboterachsen über ROS festzulegen. Leider bewegt sich die Linearachse nicht, es erscheint allerdings auch keine Fehlermeldung (weder auf dem Teach Pendant noch in ROS). Die Linearachse lässt sich manuell joggen und ist beim Start der Steuerung automatisch aktiv.


    Über ROS lassen sich mithilfe der topic /rws/state zwei mechanische EInheiten identifizieren (Roboter und Linearachse).

    Code
    mechanical_units:
    -
    name: "M7DM1"
    activated: True
    -
    name: "ROB_1"
    activated: True

    Die topic /egm/joint_states ermöglicht das Auslesen aller Joint Positionen und Geschwindigkeiten inklusive die der Linearachse. Dies funktioniert alles problemlos und in Echtzeit per EGM auch während der Bewegung. Der ROS controller nimmt ein Array mit 7 Einträgen als Input für eine Geschwindigkeitsvorgabe (Joint Group Velocity). Mithilfe der ersten 6 Einträge kann ich die Roboterachsen manipulieren, der 7. Eintrag gilt der Linearachse.


    Ich habe mich da an das offizielle Beispiel von ABB für einen 6-Achs Industrieroboter mit einem EGM Channel gehalten.

    Den entsprechenden ROS controller starte ich bei erfolgreich laufender EGM Verbindung mit

    Code
    rosservice call /egm/controller_manager/switch_controller "start_controllers: [joint_group_velocity_controller]
    stop_controllers: ['']
    strictness: 1
    start_asap: false
    timeout: 0.0"

    Die Vorgabe der Geschwindigkeiten erfolgt über folgende topic (hier sind alle Geschwindigkeiten 0)

    Code
    rostopic pub /egm/joint_group_velocity_controller/command std_msgs/Float64MultiArray "data: [0,0,0,0,0,0,0]"

    Hat wer eine Ahnung, an welchen Einstellungen ich ggf. rumspielen kann, um auch eine Steuerung der Linearachse zu ermöglichen? Screenshots der aktuellen EInstellungen usw. kann ich gerne morgen bei Bedarf nachreichen.


    Reicht ein EGM Channel für diese Aufgabe aus oder muss ich ggf. doch zwei nutzen. Ich verstehe das Konzept aktuell so, dass eine mechanische Gruppe mit zwei mechanischen Einheiten vorliegt. Das wird aktuell auch per ROS inklusive aller 7 vorliegenden Achsen erkannt. Dementsprechend müsste meiner Meinung nach ein EGM Channel ausreichen.

    Bei dem Versuch 2 Channel zu nutzen (einen für den Roboter, einen für die Linearachse) bekomme ich folgende Fehlermeldung im ROS Terminal.

    Code
    ROS parameters contain more than one EGM channel, but the MultiMove option seems to be missing in the robot controller system
  • AD
  • SJX

    Approved the thread.
  • Quote from ABB Support

    Es ist leider nicht vorgesehen Roboter und Linearachse durch EGM zu betreiben.

    Leider ist das Betreiben einer zusätzlichen Linearachse nicht möglich. Ich hatte das ursprünglich auch im Handbuch gelesen, dachte aber, dass das ggf. nicht mehr aktuell ist, weil in dem offiziellen Beispiel des abb_robot_driver package auch ein Yuumi mit 2x7 Achsen per EGM gesteuert werden kann.

Hilfe und Support für ABB Roboter Programmierung, Konfiguration, Inbetriebnahme finden Sie hier im ABB Roboter Forum. ABB Rapid Programmierung ist einfach, die Roboterforum Community hilft sehr gerne.

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account
Sign up for a new account in our community. It's easy!
Register a new account
Sign in
Already have an account? Sign in here.
Sign in Now