Errors when roslaunching pr2_etherCAT

Error: Can't Communicate [exit code -5]

  •   [prdemo1-0]: [pr2_etherCAT-1] process has died [exit code -5]

Solution: Check the following things:

  • Is the power board on?
  • Still not working?
    • This may be a deeper hardware issue, try running these on the realtime machine (the machine that the launch file launches pr2-ethercat on):
         $ roscd ethercat_hardware
         $ sudo bash
         $ ./motorconf -i eth0

      If this does not show a list of all the MCBs then you have ethercat_hardware problems.

  • Still not working?
    • Contact Rob W.

Error: Assert Failing [exit code -6]

  • This indicates that an assertion in your code has probably failed. Check the std_err log for pr2_etherCAT.
      roscd log
      less pr2_etherCAT-1-stderr.log

Error: Seg Fault [exit code -11]

  •  [prdemo1-0]: [pr2_etherCAT-1] process has died [exit code -11]

Solution:

  • Look for a core file in $ROS_ROOT on the realtime machine

Error: Duplicate pr2_etherCAT Process [exit code 255]

  •  [localhost-0]: [pr2_etherCAT-1] process has died [exit code 255]
     prdemo1:~/ros/ros/log$ cat pr2_etherCAT-1-stdout.log
     rv = -1
     prdemo1:~/ros/ros/log$ cat pr2_etherCAT-1-stderr.log
     [FATAL] Another instance of pr2_etherCAT is already running with pid: 10963

Solution:

  • If you have a defunct process...
      sudo rm /var/run/pr2_etherCAT.pid

Errors when running the pr2_etherCAT binary

Cannot allocate memory

  • mlockall: Cannot allocate memory

Problem: The mlockall system call needs special privileges.

Solution:

  • Run pr2_etherCAT as root.
  • There is some fancy way of launching PR2 without root privleges. Talk to Rob W.

Interface ethX is not RUNNING.

  • [FATAL] [1272004437.882394471]: Interface eth0 is not RUNNING. Is cable plugged in and device powered?
    [FATAL] [1272004438.882895063]: BREAKPOINT HIT
            file = /u/dking/wg_latest/stacks/pr2_ethercat_drivers/ethercat_hardware/src/ethercat_hardware.cpp
            line=111

Problem: The Ethernet interface does not have a "link" to any other device.

Solution:

  • Make sure the Ethernet cable fully plugged into the computer and the first EtherCAT device. Sometimes the cable looks connected but did not fully engage. Try unplugging and replugging cables to make sure.
  • Make sure the EtherCAT device is powered. Most devices have a couple LEDs, if none of them are ON, there may be no power.
  • Sometimes network drivers lock up, or cable go bad. Try plugging you computer jack into a network switch. Most switches and network card have a "link" LED that will should light up when there is a connection.

Interface ethX is not up

  • [FATAL] [1272004896.222845830]: Interface eth0 is not UP. Try : ifup eth0
    [FATAL] [1272004897.223210529]: BREAKPOINT HIT
            file = /u/dking/wg_latest/stacks/pr2_ethercat_drivers/ethercat_hardware/src/ethercat_hardware.cpp
            line=106

Problem The Ethernet interface is not enabled.

Solution:

  • ifconfig ethX up

Or:

  • ifup ethX

Error: Unable to locate slaves

  • low_level_txandrx: failed 10 times: Giving up
    Error sending counter frame
    Something went wrong while scanning network
    EtherCAT_AL:: Can't init network
    [FATAL] 1235360244.238315000: Unable to locate any slaves
    [FATAL] 1235360244.279594000: BREAKPOINT HIT
            file = /u/gerkey/code/nrt/ethercat_hardware/src/ethercat_hardware.cpp
            line=104

The pr2_etherCAT program cannot locate any devices. Make sure you are using the correct Ethernet port.

Error: Unsupported Firmware

  •  root@tc1:/ros/ros-pkg/drivers/motor/ethercat_hardware# ./motorconf -i rteth0
     Socket created: socket id: 896
     Got interface: index: 0
     [ INFO] Device #00: WG05 (0x67d60d) Firmware Revision 1.02, PCB Revision B.02
     [FATAL] Unsupported firmware revision 1.02
     [FATAL] BREAKPOINT HIT
            file = /ros/ros-pkg/drivers/motor/ethercat_hardware/src/wg0x.cpp
            line=205
     Trace/breakpoint trap

Solution:

Error: Unable to initialize interface

  •  Cannot get interface index: No such device
     [FATAL] Unable to initialize interface: eth0
     [FATAL] BREAKPOINT HIT
            file = /u/wgdemo/ros/ros-realtime/drivers/motor/ethercat_hardware/src/ethercat_hardware.cpp
            line=78

Solution:

  • sudo ifconfig eth0 up

Error: Invalid actuator info

  •  [FATAL] Device #00: Invalid CRC32 in actuator_info_
     [FATAL] BREAKPOINT HIT
            file = /u/wgdemo/ros/ros-realtime/drivers/motor/ethercat_hardware/src/wg0x.cpp
            line=276

Solution:

Error: Unable to configure slave

  • Socket created: socket id: 12
    Got interface: index: 0
    Packet round-trip timeout has been set to 20000 usecs.
    [FATAL] 1235356450.031254000: Unable to configure slave #23, product
    code: 0, revision: 0
    [FATAL] 1235356450.031389000: BREAKPOINT HIT
          file = /u/gerkey/code/nrt/ethercat_hardware/src/ethercat_hardware.cpp
          line=149

One of the motor boards didn't boot properly. You need to reset them.

Solution: From a desktop / laptop, use the power board GUI:

roscd pr2_power_board
roslaunch gui_power.launch

For each of the three circuit breakers:

  • click disable
  • click reset disable
  • click run

Error: exit code 01

  • Make sure you are running it on the real-time machine

Wiki: pr2_etherCAT/Troubleshooting (last edited 2010-04-23 06:48:58 by dking)