Hello,
my application consists on teleoperating and industrial robot. We are currently working with an ABB 2400/16 SC4+ equipped with Robotware 4.0. The step where I have been working recently consists on sending target joints values through the serial port RS422 as strings with a PC running Labview. The robot controller sends back the current joints values via the same serial port. This communication should be done as fast as possible to get a smooth movement, ideally 1 Khz. We know it is very difficult to achieve that speed due the hardware limitations but something close to 100 Hz would have a great value.
Using the Digital Outputs and a oscilloscope was possible to measure the time invested by the controller in doing several operations and in general we found they take too long. For example:
-Transforming a joint value to a string and send it to the PC takes 6 ms.
-Read the 6 joints values from the serial channel takes 40 ms.
-StopMove instruction followed by Clear Path takes 320 ms.
-Move with /Sync takes between 1 and 4 ms (which would be good if we did not need the previous StopMove and Clear Path)
The teleoperated control mentioned above can be approached with several strategies under a point of view of the robot programming. Basically what we are doing is a while loop, reading and writing strings values combined with a movement instruction based on the received joint values. This loop should be executed every time as fast as possible. If we use the /Sync modificator to be able to update the end point before it is being reached we also need the StopMove and Clear Path instructions which slow the process up to getting 5 Hz for the whole cycle. If we do not use neither the /Sync modificator nor the Stop and Clear and we order the robot to move waiting for it to finish the cycle time is still slow because we have to wait for the robot to reach the end point before send a new target position. It seems that varying the /zone modificator does not help a lot into increasing the speed. What we get with those cycle times it is a very jumpy movement that should be as smooth as possible.
I have been told that in several robots there is like a Real Time thread that is able to update the movement target quickly but I can not find this option in the ABB.
Other option can be to command joint speeds, which is the same than the joystick does. This would create a smoother movement since the robot would not stop at any point. It seems that this option is not available.
We would need some technical support in order to find out which are the best methods to implement our objective. Maybe you consider that our application would considerably improve if we buy the MultiTasking option or any other option to increase the communication speed. Perhaps an advice t about how to program the robot more effectively to achieve our teleoperation would be enough or maybe we need to update the controller. Many thanks in advance.