09-22-2022, 02:14 PM
Hello,
I am experiencing problems with controlling a KUKA KR 700 PA with RoboDK. My setup and issues are listed below.
My setup:
It seems like the RoboDK model of this robot is not set up correctly. Reasons for this assumption:
尽管这个机器人只有4轴,6关节lues are received from and sent to the controller (two of those are passive and cannot be controlled directly). Axis 4 and 5 are passive, 6 is the flange. It seems like RoboDK sets the value of axis 4 as the flange when receiving data, and the flange's value for axis 4 when sending data. To get to this conclusion, I checked the network traffic between RoboDK and the controller with WireShark.
The following behaviour could be recorded:
To avoid sending joint values to the controller, I tried to send linear move instructions. These seem to not be processed at all, since theCOM_ACTION 3signal for triggering a linear move is never sent by RoboDK to the controller (also recorded with WireShark).
To find a solution to my issues, I tried to use the KUKA driver as console tool. After copying the missing Qt5Network.dll (taken from "RoboDK\bin") to "RoboDK\api\Robot", the program gives the following error: "The application was unable to start correctly (0xc000007b)."
Unfortunately, the combination of issues 1-3 pose a severe problem for using RoboDK in this setup. I explored possible errors on my side, but was unable to find a solution. Help is very much appreciated.
I am experiencing problems with controlling a KUKA KR 700 PA with RoboDK. My setup and issues are listed below.
My setup:
- OS: Windows 10
- Version: RoboDK 5.5.1 (Professional license)
- Robot:KUKA KR 700 PA(4-axis industrial palletizer)
- Controller: KRC5
- RoboDK driver: downloaded via thispost, but had to fix RoboDKsync542.src (declarations were missing, see attachment "RoboDKsync542_MODIFIED.src")
- Station: contains only the manipulator from RoboDK library, no external axis or tool (see attachment "example.rdk")
- Base and tool frame are set to [0, 0, 0, 0, 0, 0], both in RoboDK and the controller
- The robot will be controlled in real-time by the Windows-PC and RoboDK (no offline programming)
It seems like the RoboDK model of this robot is not set up correctly. Reasons for this assumption:
- When using "Get Position", the coordinates of the simulated robot differ from the actual coordinates (see attachment "get_position.jpg"). The joint angles are the same, but the position does not look the same. I am certain that our actual robot is installed correctly.
- When manually setting the actual coordinates in the simulation, the position matches the real robot, but the 3rd joint angle (A3) is different (see attachment "corrected_position.jpg").
- Sending a position from RoboDK to the robot causes either a coordinate mismatch or, in some cases, valid coordinates set in the simulation cannot be reached by the real robot. I assume this is because not the coordinates, but the joint values (containing the invalid A3 joint) from the simulation are transferred to the controller.
尽管这个机器人只有4轴,6关节lues are received from and sent to the controller (two of those are passive and cannot be controlled directly). Axis 4 and 5 are passive, 6 is the flange. It seems like RoboDK sets the value of axis 4 as the flange when receiving data, and the flange's value for axis 4 when sending data. To get to this conclusion, I checked the network traffic between RoboDK and the controller with WireShark.
The following behaviour could be recorded:
- Get Position:
- RoboDK: requests position
- Controller: sends "{E6AXIS: A1 3.93568277, A2 -112.663696, A3 103.796738, A4 -2.35408331E-31, A5 98.8669586, A6 3.93568277, E1 0.0, E2 0.0, E3 0.0, E4 0.0, E5 0.0, E6 0.0}"
- RoboDK: sets joint values as "1: 3.93568277, 2: -112.663696, 3: 103.796738,4: -2.35408331E-31", whereas 4 should have the value of A6 (similiar results can be seen in attachment "get_position.jpg")
- Move Joints:
- RoboDK: move joints to HOME-position (coordinates: [2020, 0, 1900, -180, 0, -189]; angles: [0, -90, 90, 0]
- RoboDK: sends MOVEJ instruction with "COM_E6AXISI{A1 0.00000,A2 -90.00000,A3 90.00000,A4 0.00000,A5 2020.00000,A6 0.00000}", where it seems like A4 has been set to joint 4, and A5 and A6 have been set to X and Y of the targetcoordinates(maybe previously allocated memory is used?)
- 控制器:移动机器人在原位置despite some invalid values (other positions might not be reachable by the robot and others will have mismatched coordinates, I haven't found the exact cause for this)
To avoid sending joint values to the controller, I tried to send linear move instructions. These seem to not be processed at all, since theCOM_ACTION 3signal for triggering a linear move is never sent by RoboDK to the controller (also recorded with WireShark).
- RoboDK: run program on robot containing only linear move to HOME-position (see program "MOVEL" in .rdk-file)
- RoboDK: doesnotsend any instruction to controller
- RoboDK: program is finished (simulated robot did not move either, but path is shown)
To find a solution to my issues, I tried to use the KUKA driver as console tool. After copying the missing Qt5Network.dll (taken from "RoboDK\bin") to "RoboDK\api\Robot", the program gives the following error: "The application was unable to start correctly (0xc000007b)."
Unfortunately, the combination of issues 1-3 pose a severe problem for using RoboDK in this setup. I explored possible errors on my side, but was unable to find a solution. Help is very much appreciated.