Hi,
I am a new-comer in this forum. And I started to work with Kuka robot just several days ago. The work I want to do is to integrate a laser scanner, which is connected to a PC, with Kuka robot to accomplish 3D scanning. I met problems about getting the robot’s position at real time and synchronizing the scanner and the robot. Following are some of my tests and thoughts. Hope some one can help me to figure out. Thanks in advance.
(1) At beginning, I wish to develop based on OPC. After test, I am disappointed in its performance. First, it seems that the OPC server do not update the variable more frequently than 5 Hz, which is declared in the Kuka OPC manual. If I use SyncIO to read the $POS_ACT more frequently than 5 Hz, I got several same robot positions, though the robot keeps moving. Then I tried to implement scanning function in the callback function, which is called when OPC detects variable change event. But it seems the interval between the time when the robot’s position changes and the time when OPC detects the change and calls the callback function is not little and also not constant. So, my conclusion is that OPC is not fit for this application. Is it right?
(2) I find a paper in ICRA 2003 which claims that through Ethernet, the real-time robot position can be gotten within 15ms. It seems that TCP or UDP protocol could be used to transmit the robot position when timers triggered in KRL. But I am not sure if it can work, for I have not an idea of the delay of the network transmission. And also, I could not find installation CD for Ethernet-KRL module and the code examples cited in KUKA.Ethernet KRL User Guide. Is it a standard configuration of Kuka robot or optional? I will be appreciated if anyone has the experience can share that with me?
(3) Also, I am thinking about hardware trigger method. That means as the scanner take a measurement, at the same time it generates a 24V plus to the robot. The robot controller responses to that plus through interrupt to record its position ($POS_INT), and then send the data through serial communication port or Ethernet. In the Kuka Expert Programming Manual, it says that 4 special inputs (named $MEAS_PULSE) on the peripheral connector X11 could interrupt the controller with reaction time of 125us. But I can not figure out which pins are the special ones after referring to manual “Operating Handbook Connection / Periphery”. Does anyone know that? And about the serial communication, I also could not find in manuals the detail introduction of the corresponding instructions in KRL (CREAD, CWRITE etc). Can anyone share a manual with me?
(4) Finally, I think maybe another hardware trigger method is valuable. With that method, robot controller will record its position in an interrupt procedure which is triggered by a timer, then it send a 24V output signal to the external equipment, say the scanner, to trigger the measurement. Then robot position is sent to the PC for 3D reconstruction. But from my experience on ABB robot, it seems sometimes there is a delay of about one control cycle of robot existing between the position recorded and the digital output sent. Is there someone have the similar experience on Kuka robot?
It is a quite long question list. I hope it is not bothersome. And I will appreciate your experts’ responses (in English please). Thanks a lot. (My email: wushuihua@eyou.com)