ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange
Ask Your Question
0

Could not initialize ethercat driver Robotiq 3-Finger Gripper

asked 2017-11-20 07:47:56 -0600

CharlieMAC gravatar image

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 ...
(more)
edit retag flag offensive close merge delete

1 Answer

Sort by ยป oldest newest most voted
0

answered 2017-11-27 09:30:07 -0600

CharlieMAC gravatar image

I have solved the problem by executing the roslaunch command with root privileges, using the following commands:

$sudo su --preserve-environment
#roslaunch robotiq_s_model_control s_model_ethercat.launch

This makes it possible to launch the ethercat driver and SOEM.

edit flag offensive delete link more

Question Tools

2 followers

Stats

Asked: 2017-11-20 07:47:56 -0600

Seen: 959 times

Last updated: Nov 27 '17