RobotStudio event

Same robttarget, same tool, same wobj, but different motion in Virtual and Actual robot. WHAT GIVES?

samatsimt
samatsimt
edited July 2016 in RobotStudio
See screenshots in link below. Notice that everything in the program variables are the same, but robot motion and joint values are quite different (first point is quite alright, but the subsequent ones are just off!). What's happening here?

The virtual robot's motion is actually larger than 90degrees in joint 6 but its not complaining about configuration errors. But the actual robot's motion is lesser than 90degrees (from the points defined, it should be about 70degrees), but the error keeps popping up in between each point (only those from motion point 1 to 2 is shown, but it happens from 2 to 3 as well). I have set confl and confj to \on at the beginning of both programs, which are essentially the same code.

CONST robtarget Point_1:=[[-204.999900925,-300.000092197,0],[0,0.95371695,0.300705801,0],[-1,0,1,0],[9E9,9E9,9E9,9E9,9E9,9E9]];
CONST robtarget Point_2:=[[-204.999901242,-0.000092197,0],[0,0.976296007,-0.216439612,0],[-1,0,-2,0],[9E9,9E9,9E9,9E9,9E9,9E9]];
CONST robtarget Point_3:=[[0.000098758,-0.00009198,0],[0,-0.382683432,0.923879533,0],[-1,0,-1,0],[9E9,9E9,9E9,9E9,9E9,9E9]];

ActiveTool:=[TRUE,[[0.604872,1.12396,321.879],[1,0,0,0]],[7.2112,[-1.82963,0.306721,39.8541],[1,0,0,0],0,0,0]];
ActiveWobj:=[FALSE,TRUE,"",[[1580.89,-594.379,664.257],[0.886834,0.00201708,0.0010253,-0.462083]],[[0,0,0],[1,0,0,0]]];

https://drive.google.com/file/d/0B7Vnxp5syz18WV9vMkkydGlrYnM/view?usp=sharing

Comments

  • Pavel Riabichev
    edited July 2016
    Hello
    Is the Robot in RobotStudio world 0 or is it moved/rotated?
    Is the task frame in RobotStudio zero or is it moved/rotated?
    Basically, the task frame in RS should be at the RS Robot baseframe, if the real robots world frame is at the baseframe.
    /Pavel
  • samatsimt
    samatsimt
    edited July 2016
    Hi Pavel, nothing has been moved, so they should be in the default state. The physical robot moved to the points with correct pose, just that the joint values are bewildering me.
  • Hello
    You should confirm this. Rightclick the robot in RobotStudio and select Set position. Check so everything there is 0 for coordinate system: World. Go to controller tab, select correct controller and click the Task Frame button, confirm that everything there is 0 for coordinate system: World.
    If both frames are 0 in RobotStudio, it is possible that you have a faulty calibration of the robot. You should maybe redo the fine calibration.
    /Pavel

  • Oh I also tried to bring both robots to home first, before executing the 3 points, same erroneous behavior.
  • I have checked that those frames have 0 values everywhere. Do you mean to update the rev counters in the calibration menu (I did this just a week ago)? There are 3 other options.
  • I ment fine calibration, where you place each robot joint to the markers. In robotstudio the robots are in the "perfect world" with perfect calibration. If you get different results for the targets you created in RobotStudio at the real robot, you need to confirm that the real robot is properly calibrated (not only fine calibration).
    /Pavel
  • kioog
    kioog ✭✭
    hello,

    it looks like you are using the wrong configuration, if you add the virtual position axis6 and physical position axis  you get 360°, so in real life you are reaching the same point, but with axis 6 turned 360°, this is exactly the same position.
    when your simulation gives axis 6 = -116 and real life = 243.6, the difference = 360
    when your simulation gives axis = -11 and real life = 349.2, the difference = 360

    it is giving you the configuration error because the robot cannot execute the movement to the config that is stored in the robtarget.
    I guess you are using MOVEL movements , because then the robot can give you these configuration errors if an axis 1 or axis 4 of axis 6 is turned more then 180°

    if you look at the configuration of your P1=-1,0,1,0 and P2=-1,0,-2,0
    the 3th number is the configuration of axis 6 it goes from 1 (between 90 and 180°) in P1 to -2 (between -180 and -270°) in P2, this gives you a difference of more then 180° on axis 6 and this is not allowed, it gives you the configuration error

    how did you test the program in robotstudio?
    try to run it also from teachpendant and see if you get the same error.
  • I managed to avoid the previous issue by using another configuration, but it doesn't end there. I would have done the fine calibration but according to page 277 of 3HAC050941-en.pdf it seems some special sauce is needed for it and so its not user serviceable?

    Now I have a series of points moving in a rectangular pattern (spaced 5-15mm apart) in the same orientation/configuration, and it's still giving me the Error message 50080 on the actual robot when everything was fine in the simulation. I even checked that all the joint limits are the same in both VC and IRC. This is really frustrating!

    https://drive.google.com/file/d/0B7Vnxp5syz18MzJmUkE1U29Sdlk/view?usp=sharing


  • Hello
    I think i ment that you have to update revolution counters and not fine calibration. You jog the reobot to its 0 markers and update each axis.
    /Pavel
  • Hi Pavel. Ok, i have done that a week before I even posted the first question, should I have to do it again?
  • Hello samatsimt

    If you used the exact same code from your simulation and your coordinate systems are the same at the real controller but the robot is behaving differently, then it can be some calibration that is incorrect or different from the virtual robot.

    Have you tested to jog the robot to a 0 position, is the robot moved to the 0 markers for each axis?
     PERS jointtarget zeroJoint:=[[0,0,0,0,0,0],[9E9,9E9,9E9,9E9,9E9,9E9]];
     MoveAbsJ zeroJoint\NoEOffs,v1000,z50,tool0\WObj:=wobj0;
    Do the same on the virtual robot and compare with the real.

    Have you reorient jogged the robot around the TCP to make sure that it is where you expect it to be?

    /Pavel
  • Hi Pavel,

    Yes the robot goes to the same position with the MoveAbsJ command, and the TCP reorient is fine with maybe around 1mm displacement with the reference tip (error when defining TCP is 0.3, 0.08, 0.2 respectively)

    Did another update rev counters last week and it didn't improve.

    Now I realized that the same robtargets can be reached when using "go to position" but when used in a MoveL/MoveJ command it doesn't work (out of reach error), even if it is ALREADY at the instructed position.
  • It is very hard to determine what is causing this remotely - but there must be a difference between you RobotStudio station and the real controller.

    Please try creating a new virtual controller and station in RobotStudio using the go offline feature in the controller tab.

    This will create a copy of your real robot - then transfer your code including tools, workobjects, etc from the real robot into the virtual controller using the relation feature (or take a backup on the real controller and restore it into the virtual controller).

    Then both the real robot and RobotStudio should give you the same results.

  • Thank you graemepaulin. I have tried to use the go offline feature again following your suggestion and as expected, it wasn't successful as with many previous attempts long ago. The feature is buggy and almost works! Crashes all the time.
  • Another thing to check is that the calibration offsets in the cfg are in accordance with the sign on the robot.
    Otherwise im out of ideas.
    /Pavel
  • Thank you Pavel, I've already checked that and yes, all values are the same as the label on the robot. If you're out of ideas then I'm out of luck!

    You mentioned fine calibration some time back. Is it actually something that the end user (novice or expert) can do on their end, or is service from ABB actually required?
  • It seems the calibration of the real robot is OK - which leaves the station.

    How did you create this? Using system builder with the real key/license file?

    Did you restore a backup from the real robot into the newly created station?