Failed to read from robot EKI server
Hello, I am trying to connect ROS melodic with KUKA robot KR6 r900 sixx
using kuka-experimental. However, after having done all things in README.md about configuring EKI on the controller, I am getting the error:
Failed to read from robot EKI server within alloted time of 5 seconds. Make sure eki_hw_interface is running on the robot controller and all configurations are correct.
At the side of KUKA controller I have done these things:
- setting IP, creating new port 54600 (for udp)
- copy EkiHwInterface into
C:\KRC\ROBOTER\Config\User\Common\EthernetKRL\
(with same IP as in the previous step) - copy
kuka_eki_hw_interface.dat
andkuka_eki_hw_interface.src
toKRC:\R1\Program
At the side of ROS I have done:
The
hardware_controllers.yaml
andcontroller_joint_names.yaml
I have not changed so the names of joints are as follows:#Publish all joint states joint_state_controller: type: joint_state_controller/JointStateController publish_rate: 50 # Joint trajectory controller position_trajectory_controller: type: "position_controllers/JointTrajectoryController" joints: - joint_a1 - joint_a2 - joint_a3 - joint_a4 - joint_a5 - joint_a6 state_publish_rate: 50 # Defaults to 50 action_monitor_rate: 20 # Defaults to 20
Is the fact that I have written here the wrong names of the joints why I cant read from EKI server?
The
test_params.yaml
file is as follows:
eki: robot_address: "192.168.100.2" robot_port: "54600" socket_timeout: 5
My launch file is as follows:
<?xml version="1.0" encoding="utf-8"?> <launch> <param name="robot_description" command="$(find xacro)/xacro.py '$(find kuka_kr6_support)/urdf/kr6r900sixx.xacro'"/> <rosparam file="$(find kuka_eki_hw_interface)/test/test_params.yaml" command="load" /> <!-- Start EKI interface --> <node name="kuka_eki_hardware_interface" pkg="kuka_eki_hw_interface" type="kuka_eki_hw_interface_node" respawn="false" output="screen" required="true"/> <!-- Load joint controller configurations from YAML file to parameter server --> <rosparam file="$(find kuka_eki_hw_interface)/config/hardware_controllers.yaml" command="load"/> <!-- Load standard kuka controller joint names from YAML file to parameter server --> <rosparam file="$(find kuka_eki_hw_interface)/config/controller_joint_names.yaml" command="load"/> <!-- Load controllers --> <node name="controller_spawner" pkg="controller_manager" type="spawner" respawn="false" output="screen" args="position_trajectory_controller joint_state_controller --shutdown-timeout 1"/> <!-- Load robot state publisher --> <node name="robot_state_publisher" pkg="robot_state_publisher" type="robot_state_publisher" /> </launch>
Does anyone see where the mistake might be?
Thank you all in advance
I'm not an expert with EKI, but some things to check:
ping
the robot's IP from your ROS PCeki/robot_address
is the IP of the robot controller. Not the IP of the ROS PC.play
, waiting, pressingplay
again and holding the deadman switch). In manual mode you cannot let go of the teach pendant.EkiHwInterface.xml
is address of KUKA controllerSo it is not the problem that I am using ROS Melodic, right?
Yes I select the program, holding deadman switch and pressing play. I am holding both buttons until I get message
Programmed path reached (BCO)
. After that I am holding both buttons again and launchingroslaunch kuka_eki_hw_interface test_hardware_interface.launch
which gives me this error after 5s:Failed to read from robot EKI server within alloted time of 5 seconds. Make sure eki_hw_interface is running on the robot controller and all configurations are correct.
If everything is running on the robot side, it should work, but again, I've not used EKI myself.
There is a small chance @BrettHemes_ could comment here.
Should I post it at kuka_experimental github?
I'm not sure whether @BrettHemes_ monitors that issue tracker. But it could be that some other user who is using EKI notices your issue there.
If you do post on
kuka_experimental
's tracker, please include a link to your post here on ROS Answers.And post a comment with a link to your
kuka_experimental
issue here, so we can keep things connected.https://github.com/ros-industrial/kuk...
I do get emails from that tracker it seems :)
Sorry you are having issues with getting the communication going; these types of problems can be tough. Have you tried using Wireshark to see what exactly is getting transferred (if anything)?
I think that I tested it utterly wrong (if yes I am sorry). I executed at one PC(Windows) Wireshark scan and also executed
kuka_eki_hw_interface
on kuka controller. Nothing at all is transferred. Was this wrong test? If it was, could you point me to the direction how to test it?Today I do not have another computer available so tomorrow I will test it with one PC with Wireshark and on the other PC I will launch that test.launch from ROS to see if it is sending something to KUKA or not.