Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5

Target coordinates using the KUKA KRC4 driver

#1
Hello everyone

I joined my robot cell with an external cell.

Right now, when i generate the program and it works fine with the external axis with a slight modification, and it is does perfectly the job on the robot.

Now, i want to do it online (with kuka var proxy) but with my external axis. I modified the robosync.src.  It does not do the job.

When lloking at the variable COMM_E6POS, i have not the right position on my robot. There is an offset in the position X is Y and etc....

I haven't got acess to apikuka that i am using.

Is there any hint to have the right position

Thank you for your help

Cyril

PS: Now, i am with a linux version of robodk.


Attached Files
.rdk   cellule_topsolid_vireur_windows.rdk (Size: 2.41 MB / Downloads: 53)
#2
When you have a turntable synchronized with your robot you should attach your coordinate system to the turntable as shown in the attached project.

Also, RoboDK will provide the target coordinates with respect to the root of your turntable by default. If you prefer providing the target coordinates with respect to the coordinate system you should activate the option Provide Cartesian coordinates with respect to the reference from the Drivers section. You can find more information here:
https://robodk.com/doc/en/Robots-KUKA.ht...ADriverExt


Attached Files
.rdk   cellule_topsolid_vireur_windows-v2.rdk (Size: 2.41 MB / Downloads: 67)
#3
Thank you Albert.
I have seen the link. When i use a generated program with the post-processor kuka KRC4, the src file do the job and it is doing exactly as the simulation, so i believe that i have done as you said.

Now, i am trying to do it online. I use Kukavarproxy and apikuka: it works fine for me (better than cbridge).

My program is the file test. When i send my target, the variable COMM_E6POS received on the robot (seen on the pendant), looks like this[ X: 7.27 Y -83.160220, Z -34.759886, A 355.715310, B -92.911364, C -13.684723, E1 7.27 ] you see the same value for X and E1. Value in Y is normally the value at X...

so i believe i make a mistake somewhere or there is a bug in sending information. Unfortunately i can't control what is sent from my computer to the robot controller.

Thank you for help.

Cyril
#4
RoboDK send the target coordinates with respect to the robot base. You may have a different definition of the robot base on your robot controller. Maybe the base is rotated 90 deg which would explain swapping axes X and Y.
#5
Thank you albert.

Unfortunately, i verified the frame and it is not a problem of rotation. As i told you when i generate the file src, all is correct: Simulation and the src file on the robot are doing exactly the same.
The problem is online. The right position is the one in test.src (see that there is E1 and E2).
The position send online is on the image.

Could you please give an hint about that or a source code to find where is my problem?

Thank you for your help.

Cyril


Attached Files Thumbnail(s)
   

.src   test.src (Size: 1.52 KB / Downloads: 69)
#6
I would review the coordinate system in RoboDK and make sure it matches your BASE frame in the KUKA controller. If you use the option to provide the coordinates with respect to the coordinate system they should both match.
#7
Thank you Albert.
As i told you it works for src file generated by the post KUKA_KRC4. Of course i put the right frame: number 2 (on my cell) inside the src file and in robodksyn.src.

I believe apikuka does not send the right thing because when i use c3bridge and kukabridge i have the same result.

Once again, thank you for your help.

Cyril
#8
I understand what you mean, but the driver does not alter the coordinate systems. With the driver you should specify the coordinate system you want to use. You can modify the BASE definition and properly use the desired coordinate system as the active coordinate system in RoboDK.
#9
Hi Albert
I tried to sniff what is going out of my ethernet port to my robot.
The last image seen (see last post) on the pendant is what is going outside my computer.
Now there is two possibilities:
- I made a mistake in the definition of my station but as i told you when i set the right frame inside my program ($BASE=BASE_DATA[2]) once it is generated by the post processor.
- there is a bug in writing the E6POS inside the code but i can't see it (Bad number of axis for example).

Now, i hope someone could help me. Thank you

Cyril
#10
Are you using the modified project I sent you? The coordinate system should be attached to the turntable.

Also, you need to change the $BASE definition of the driver to what you provided:
Code:
$BASE=BASE_DATA[2]
  




Users browsing this thread:
1 Guest(s)