Related Question: Here
Hi everyone! I'm trying to control a Robotiq 3 Finger Gripper using ROS kinetic, but when execute roslaunch, it gives me an error saying that the EtherCAT driver couldn't be initialized (additionally, SOEM won't start). I have followed all the steps that appear in the related question above, as well as all the necessary steps in order to install the EtherCAT driver from EtherLab (Manual: Here).
I have some sort of communication with the gripper, but ROS isn't able to bring the driver on. Here is an output of the command ethercat master
:
Every 0,5s: ./ethercat master Mon Nov 20 14:31:53 2017
Master0
Phase: Idle
Active: no
Slaves: 1
Ethernet devices:
Main: 78:d0:04:24:7e:33 (attached)
Link: UP
Tx frames: 1027480
Tx bytes: 63272028
Rx frames: 1027480
Rx bytes: 63272028
Tx errors: 0
Tx frame rate [1/s]: 125 124 125
Tx rate [KByte/s]: 7.3 7.3 7.3
Rx frame rate [1/s]: 125 124 125
Rx rate [KByte/s]: 7.3 7.3 7.3
Common:
Tx frames: 1027480
Tx bytes: 63272028
Rx frames: 1027480
Rx bytes: 63272028
Lost frames: 0
Tx frame rate [1/s]: 125 124 125
Tx rate [KByte/s]: 7.3 7.3 7.3
Rx frame rate [1/s]: 125 124 125
Rx rate [KByte/s]: 7.3 7.3 7.3
Loss rate [1/s]: 0 -0 0
Frame loss [%]: 0.0 -0.0 0.0
Distributed clocks:
Reference clock: Slave 0
Application time: 0
2000-01-01 00:00:00.000000000
Which says to me that there is some sort of communication between the gripper and the computer. Here is the output of the ethercatctl status
command:
Checking for EtherCAT master 1.5.2
Master0 running
Here is my s_model_ethercat.launch file:
<launch>
<arg name="gripper_name" default="gripper" />
<arg name="slave_number" default="1" />
<arg name="activate" default="True" />
<arg name="ifname" default="eoe0s0" />
<node pkg="robotiq_s_model_control" type="s_model_ethercat_node" name="gripper_server" output="screen">
<param name="ifname" type="str" value="$(arg ifname)" />
<param name="activate" type="bool" value="$(arg activate)" />
<param name="slave_number" type="int" value="$(arg slave_number)"/>
<remap from="output" to="/$(arg gripper_name)/output" />
<remap from="input" to="/$(arg gripper_name)/input" />
</node>
</launch>
I must recall that the EtherCAT driver won't be initialized no matter which network interface I use (eoe0s0 is created when I load the ethercat module, but the phyisical one is enp4s0). I suspect that ROS can't initialize the driver because it doesn't know where it is. Here is a reduced output of roslaunch robotiq_s_model_control s_model_ethercat.launch
verobse:
[ INFO] [1511182084.984832728]: Initializing etherCAT master
[ERROR] [1511182084.984891375]: Could not initialize ethercat driver
terminate called after throwing an instance of 'robotiq_ethercat::EtherCatError'
what(): Could not initialize SOEM
[gripper_server-1] process has died [pid 31098, exit code -6, cmd /home/spluser/catkin_ws/devel/lib/robotiq_s_model_control/s_model_ethercat_node output:=/gripper/output input:=/gripper/input __name:=gripper_server __log:=/home/spluser/.ros/log/2284fc32-cddc-11e7-b70a-78d004247e32/gripper_server-1.log].
log file: /home/spluser/.ros/log/2284fc32-cddc-11e7-b70a-78d004247e32/gripper_server-1*.log
The error points out to a log file that actually doesn't exist (I don't know the reason), the folder does exist, but not the log file. It doesn't matter either, whether I launch the s_model or the c_model. The error is the same.
What am I doing wrong here? Does this problem have to do with ethercat_grant
?
Thanks!
C.
Originally posted by CharlieMAC on ROS Answers with karma: 28 on 2017-11-20
Post score: 0