Aktuelle Position des Roboters bestimmen in Karel

  • Hallo!
    Sollte in Karel die aktuelle Position des Roboters bestimmen. Und zwar brauche ich die Position im aktuell eingestellten Userframe und Usertool:


    PROGRAM actpos
    %NOLOCKGROUP


    VAR
    cur_pos:XYZWPR
    status: INTEGER
    BEGIN
    cur_pos=CURPOS(0,0,1)
    WRITE('cur_pos.x ',cur_pos.x,CR)
    WRITE('cur_pos.y ',cur_pos.y,CR)
    WRITE('cur_pos.z ',cur_pos.z,CR)
    WRITE('cur_pos.w ',cur_pos.w,CR)
    WRITE('cur_pos.p ',cur_pos.p,CR)
    WRITE('cur_pos.r ',cur_pos.r,CR)


    END actpos


    Der Befehl CURPOS gibt aber immer den aktuellen Wert im World-Koordinatensystem...
    Was muss man machen um den aktuellen Wert im Usertoolframe und Userframe zu kriegen??

    Einmal editiert, zuletzt von bodabie ()

  • ANZEIGE
  • Hi, es könnte evtl. daran liegen, dass die Frames von TPE und Karel in verschiedenen Variablen hinterlegt sind.
    Du musst also sicherstellen, daß die Variablen für die Karel-Frames den gleichen Inhalt haben wie die TPE-Frames und zusätzlich muß das Karel Tool- und Userframe auch noch entsprechend aktiviert sein.


    Gruß Chris

  • Habs rausgefunden, Mann muss $UTOOL und $UFRAME vor CURPOS sezten. CURPOS schaut offenbar nur auf diese beiden Variablen:


    PROGRAM getlpos
    %COMMENT = 'get LPOS>PR[3]'
    %NOLOCKGROUP


    VAR
    cur_pos:XYZWPR
    STATUS: INTEGER
    group_no: INTEGER
    BEGIN
    group_no = 1
    --Setze $UTOOL $UFRAME mit aktuell im TP eingestellten UT und UF
    $GROUP[group_no].$UFRAME = $MNUFRAME[group_no, $MNUFRAMENUM[group_no]]
    $GROUP[group_no].$UTOOL = $MNUTOOL[group_no, $MNUTOOLNUM[group_no]]


    cur_pos=CURPOS(0,0,1)
    WRITE('cur_pos.x ',cur_pos.x,CR)
    WRITE('cur_pos.y ',cur_pos.y,CR)
    WRITE('cur_pos.z ',cur_pos.z,CR)
    WRITE('cur_pos.w ',cur_pos.w,CR)
    WRITE('cur_pos.p ',cur_pos.p,CR)
    WRITE('cur_pos.r ',cur_pos.r,CR)
    --WRITE('$UTOOL',$UTOOL,CR)
    --WRITE('$UFRAME',$UFRAME,CR)
    END getlpos




    Danke für die Tips von Euch!

Erstelle ein Benutzerkonto oder melde dich an um zu kommentieren

Du musst ein Benutzerkonto haben um einen Kommentar hinterlassen zu können

Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Geht einfach!
Neues Benutzerkonto erstellen
Anmelden
Du hast bereits ein Benutzerkonto? Melde dich hier an.
Jetzt anmelden