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
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.
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.
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?
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.
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.
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) 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).