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?
roscd pr2_power_board roslaunch gui_power2.launch
- 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.
- This may be a deeper hardware issue, try running these on the realtime machine (the machine that the launch file launches pr2-ethercat on):
- 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:
- Power cycle system after MCB Firmware Update
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:
- Check your xml for errors or
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