-
Notifications
You must be signed in to change notification settings - Fork 223
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
EKI instead of RSI #77
Comments
RSI allows for 250 Hz real-time joint position control by the hw interface component. Apart from FRI (which is meant for different use-cases / controllers), I don't think you'll find a more performant external motion interface for KUKA KR* controllers.
can you elaborate a bit on why you feel this is the case? |
Btw: EKI might be a nice way to implement some other interfaces to KUKA controllers from ROS nodes, but I'm specifically thinking of the motion interface here, as you asked why RSI is used in the hw interface. |
I remember @simonschmeisser mentioning EKI some time ago as well. |
One more question to clarify before we continue: From my previous experience with ROS-I driver it was always stream trajectory first and then execute (ABB, Motoman for example) . I thought that the role of ROS-I driver is to allow performing plan&execute approach. Why real-time control in case of KUKA? |
The initial use case for the RSI hw interface was a force control application. That is the reason for RSI over EKI. Unfortunately, we (NTNU) have not any EKI licenses on our robots, so we are not in a position to develop or test such an interface at this time. However, we are in contact with KUKA regarding upgrading our controllers with EKI. |
Yes? Both downloading and streaming would seem to support that.
Because it covers both the use-cases that more 'traditional' ros-i drivers support, as well as more high-fidelity (high-bw) and real-time use-cases (such as visual servoing). We use Btw: there is no requirement for ROS-I drivers to use the common infrastructure and messaging system provided by the |
@tingelst wrote:
and I'm glad the hw interface uses RSI.
At least for external motion control purposes I don't think EKI would be considered an upgrade, right? |
@gavanderhoorn Yes you're right, we used a EKI based interface (EthernetXML) with a customn protocoll for our demo during Automatica 2016 (at the IPR booth). It definitely has some up-sides as well
on the down-side:
generally speaking I like the dead-simple nature of trajectory uploading based control. @durovsky are you at photoneo using ros-I itself or are you just looking for some general info? |
@gavanderhoorn thanks for clarification about downloading and streaming, I wasn't sure about the streaming part. Learned something new again. |
@durovsky wrote:
I feel I didn't completely make this clear: RSI does not support down- or uploading or trajectories: it allows us to close the (feedback) loop on a low-level joint space or Cartesian position controller over a high-bandwidth, low-latency interface. That is not something that most other For all intents and purposes, high-bw, low-latency seem like a good thing to me. By layering So at the ROS API level, the hw interface is compatible with
I'm curious what you found "much simpler". In my experience setting up the RSI component is a matter of following the readme, starting the small controller side program and the hw interface. At that point it becomes "just another" ROS enabled robot. |
@durovsky, @simonschmeisser: I can definitely see the value of an EKI based driver though, if only because it is a cheaper option compared to RSI. Would either of you be interested in working on that? @durovsky: do you think photoneo would be interested in opening up your work? |
I made a driver using a C++ library inspired by JOpenShowVar. It uses KUKAVARPROXY on the controller side. I'll clean up the code, and you can see if it replaces the need for EKI as a cheap driver option. |
@ivareri: interesting. That could be another approach, yes. |
@ivareri sounds cool, is it going to be actually "open" as in "there is code available and has a suiteable licence" or is just another wrapper for some obscure kukavarproxy.exe file? |
@simonschmeisser It uses kukavarproxy.exe on the controller. According to aauc-mechlab/JOpenShowVar/issues/4 the source code for kukavarproxy.exe cannot be released yet. |
@durovsky, @simonschmeisser: I'd actually be interested in adding a driver node that could use EKI like discussed in this thread. Would either of you be in a position to contribute something like that? @simonschmeisser: you mentioned that you internally have already used something? |
@gavanderhoorn we have one implemented that follows the idea of the default ros industrial driver but uses a xml protocol instead of the simplemessage one (I did not manage to get scanf/text parsing to run at that time as the order of arguments is switched compared to default c ...). I can send it to you privately and we can than discuss about what needs to be changed before publishing/integrating it |
See #110 for a ros_control / streaming approach using Kuka.EthernetKRL (EKI). Testing, feedback, comments are welcome :) |
In addition to Robot Sensor Interface, there is also Ethernet KUKA Interface available. Is there any particular reason why RSI is preferred? From product description EKI seems to be more suitable for the purposes of ROS-I driver.
The text was updated successfully, but these errors were encountered: