0
$\begingroup$

Rosanswers logo

Hello,

I try to set up a Schunk Lwa4d with PG70 gripper, using:

H/W:

  • Schunk Lwa4d
  • Schunk Pg70 gripper
  • Peak CAN-USB interface device

S/W:

  • Ubuntu 14.04 (Kernel 4.4.0-31-generic)
  • ROS Indigo
  • schunk_modular_robotics , schunk_robots packages
  • ros_canopen

I manage to initialize the arm driver successfully. After launching the dashboard, I try to execute one of the available actions (home, wave etc), but I get a jitter-like noise from my motors, followed by a "Node has emergency error" error.

schunk@schunk-CS-B:~$ roslaunch schunk_lwa4d robot.launch 
... logging to /home/schunk/.ros/log/987657f0-162c-11e7-bac4-40167ea4b96c/roslaunch-schunk-CS-B-30697.log
Checking log directory for disk usage. This may take awhile.
Press Ctrl-C to interrupt
Done checking log file disk usage. Usage is <1GB.

started roslaunch server http://schunk-CS-B:43046/

SUMMARY
========

CLEAR PARAMETERS
 * /arm/driver/


PARAMETERS

 * /arm/arm_1_joint_position_controller/joint: arm_1_joint
 * /arm/arm_1_joint_position_controller/required_drive_mode: 1
 * /arm/arm_1_joint_position_controller/type: position_control...
 * /arm/arm_1_joint_velocity_controller/joint: arm_1_joint
  * /arm/arm_1_joint_velocity_controller/required_drive_mode: 2
  * /arm/arm_1_joint_velocity_controller/type: velocity_control...
  * /arm/arm_2_joint_position_controller/joint: arm_2_joint
  * /arm/arm_2_joint_position_controller/required_drive_mode: 1
  * /arm/arm_2_joint_position_controller/type: position_controll...
  * /arm/arm_2_joint_velocity_controller/joint: arm_2_joint
  * /arm/arm_2_joint_velocity_controller/required_drive_mode: 2
  * /arm/arm_2_joint_velocity_controller/type: velocity_controll...
  * /arm/arm_3_joint_position_controller/joint: arm_3_joint
  * /arm/arm_3_joint_position_controller/required_drive_mode: 1
  * /arm/arm_3_joint_position_controller/type: position_controll...
  * /arm/arm_3_joint_velocity_controller/joint: arm_3_joint
  * /arm/arm_3_joint_velocity_controller/required_drive_mode: 2
  * /arm/arm_3_joint_velocity_controller/type: velocity_controll...
  * /arm/arm_4_joint_position_controller/joint: arm_4_joint
  * /arm/arm_4_joint_position_controller/required_drive_mode: 1
  * /arm/arm_4_joint_position_controller/type: position_controll...
  * /arm/arm_4_joint_velocity_controller/joint: arm_4_joint
  * /arm/arm_4_joint_velocity_controller/required_drive_mode: 2
  * /arm/arm_4_joint_velocity_controller/type: velocity_controll...
  * /arm/arm_5_joint_position_controller/joint: arm_5_joint
  * /arm/arm_5_joint_position_controller/required_drive_mode: 1
  * /arm/arm_5_joint_position_controller/type: position_controll...
  * /arm/arm_5_joint_velocity_controller/joint: arm_5_joint
  * /arm/arm_5_joint_velocity_controller/required_drive_mode: 2
  * /arm/arm_5_joint_velocity_controller/type: velocity_controll...
  * /arm/arm_6_joint_position_controller/joint: arm_6_joint
  * /arm/arm_6_joint_position_controller/required_drive_mode: 1
  * /arm/arm_6_joint_position_controller/type: position_controll...
  * /arm/arm_6_joint_velocity_controller/joint: arm_6_joint
  * /arm/arm_6_joint_velocity_controller/required_drive_mode: 2
  * /arm/arm_6_joint_velocity_controller/type: velocity_controll...
  * /arm/arm_7_joint_position_controller/joint: arm_7_joint
  * /arm/arm_7_joint_position_controller/required_drive_mode: 1
  * /arm/arm_7_joint_position_controller/type: position_controll...
  * /arm/arm_7_joint_velocity_controller/joint: arm_7_joint
  * /arm/arm_7_joint_velocity_controller/required_drive_mode: 2
  * /arm/arm_7_joint_velocity_controller/type: velocity_controll...
  * /arm/driver/bus/device: can0
  * /arm/driver/defaults/eds_file: config/Schunk_0_6...
  * /arm/driver/defaults/eds_pkg: schunk_lwa4d
  * /arm/driver/defaults/vel_to_device: rad2deg(vel)*250
  * /arm/driver/name: arm
  * /arm/driver/nodes/arm_1_joint/id: 3
  * /arm/driver/nodes/arm_2_joint/id: 4
  * /arm/driver/nodes/arm_3_joint/id: 5
  * /arm/driver/nodes/arm_4_joint/id: 6
  * /arm/driver/nodes/arm_5_joint/id: 7
  * /arm/driver/nodes/arm_6_joint/id: 8
  * /arm/driver/nodes/arm_7_joint/id: 9
  * /arm/driver/sync/interval_ms: 10
  * /arm/driver/sync/overflow: 0
  * /arm/joint_group_interpol_position_controller/joints: ['arm_1_joint', '...
  * /arm/joint_group_interpol_position_controller/required_drive_mode: 7
  * /arm/joint_group_interpol_position_controller/type: position_controll...
  * /arm/joint_group_position_controller/joints: ['arm_1_joint', '...
  * /arm/joint_group_position_controller/required_drive_mode: 1
  * /arm/joint_group_position_controller/type: position_controll...
  * /arm/joint_group_velocity_controller/joints: ['arm_1_joint', '...
  * /arm/joint_group_velocity_controller/required_drive_mode: 2
  * /arm/joint_group_velocity_controller/type: velocity_controll...
  * /arm/joint_limits/arm_1_joint/has_acceleration_limits: False
  * /arm/joint_limits/arm_1_joint/has_effort_limits: False
  * /arm/joint_limits/arm_1_joint/has_jerk_limits: False
  * /arm/joint_limits/arm_1_joint/has_velocity_limits: False
  * /arm/joint_limits/arm_1_joint/max_acceleration: 0.4
  * /arm/joint_limits/arm_1_joint/max_effort: 5.0
  * /arm/joint_limits/arm_1_joint/max_jerk: 100.0
  * /arm/joint_limits/arm_1_joint/max_velocity: 0.4
  * /arm/joint_limits/arm_2_joint/has_acceleration_limits: False
  * /arm/joint_limits/arm_2_joint/has_effort_limits: False
  * /arm/joint_limits/arm_2_joint/has_jerk_limits: False
  * /arm/joint_limits/arm_2_joint/has_velocity_limits: False
  * /arm/joint_limits/arm_2_joint/max_acceleration: 0.4
  * /arm/joint_limits/arm_2_joint/max_effort: 5.0
  * /arm/joint_limits/arm_2_joint/max_jerk: 100.0
  * /arm/joint_limits/arm_2_joint/max_velocity: 0.4
  * /arm/joint_limits/arm_3_joint/has_acceleration_limits: False
  * /arm/joint_limits/arm_3_joint/has_effort_limits: False
  * /arm/joint_limits/arm_3_joint/has_jerk_limits: False
  * /arm/joint_limits/arm_3_joint/has_velocity_limits: False
  * /arm/joint_limits/arm_3_joint/max_acceleration: 0.4
  * /arm/joint_limits/arm_3_joint/max_effort: 5.0
  * /arm/joint_limits/arm_3_joint/max_jerk: 100.0
  * /arm/joint_limits/arm_3_joint/max_velocity: 0.4
  * /arm/joint_limits/arm_4_joint/has_acceleration_limits: False
  * /arm/joint_limits/arm_4_joint/has_effort_limits: False
  * /arm/joint_limits/arm_4_joint/has_jerk_limits: False
  * /arm/joint_limits/arm_4_joint/has_velocity_limits: False
  * /arm/joint_limits/arm_4_joint/max_acceleration: 0.4
  * /arm/joint_limits/arm_4_joint/max_effort: 5.0
  * /arm/joint_limits/arm_4_joint/max_jerk: 100.0
  * /arm/joint_limits/arm_4_joint/max_velocity: 0.4
  * /arm/joint_limits/arm_5_joint/has_acceleration_limits: False
  * /arm/joint_limits/arm_5_joint/has_effort_limits: False
  * /arm/joint_limits/arm_5_joint/has_jerk_limits: False
  * /arm/joint_limits/arm_5_joint/has_velocity_limits: False
  * /arm/joint_limits/arm_5_joint/max_acceleration: 0.4
  * /arm/joint_limits/arm_5_joint/max_effort: 5.0
  * /arm/joint_limits/arm_5_joint/max_jerk: 100.0
  * /arm/joint_limits/arm_5_joint/max_velocity: 0.4
  * /arm/joint_limits/arm_6_joint/has_acceleration_limits: False
  * /arm/joint_limits/arm_6_joint/has_effort_limits: False
  * /arm/joint_limits/arm_6_joint/has_jerk_limits: False
  * /arm/joint_limits/arm_6_joint/has_velocity_limits: False
  * /arm/joint_limits/arm_6_joint/max_acceleration: 1.0
  * /arm/joint_limits/arm_6_joint/max_effort: 5.0
  * /arm/joint_limits/arm_6_joint/max_jerk: 100.0
  * /arm/joint_limits/arm_6_joint/max_velocity: 1.0
  * /arm/joint_limits/arm_7_joint/has_acceleration_limits: False
  * /arm/joint_limits/arm_7_joint/has_effort_limits: False
  * /arm/joint_limits/arm_7_joint/has_jerk_limits: False
  * /arm/joint_limits/arm_7_joint/has_velocity_limits: False
  * /arm/joint_limits/arm_7_joint/max_acceleration: 1.0
  * /arm/joint_limits/arm_7_joint/max_effort: 5.0
  * /arm/joint_limits/arm_7_joint/max_jerk: 100.0
  * /arm/joint_limits/arm_7_joint/max_velocity: 1.0
  * /arm/joint_names: ['arm_1_joint', '...
  * /arm/joint_state_controller/publish_rate: 50
  * /arm/joint_state_controller/type: joint_state_contr...
  * /arm/joint_trajectory_controller/action_monitor_rate: 10
  * /arm/joint_trajectory_controller/constraints/arm_1_joint/goal: 0.1
  * /arm/joint_trajectory_controller/constraints/arm_1_joint/trajectory: 0.1
  * /arm/joint_trajectory_controller/constraints/arm_2_joint/goal: 0.1
  * /arm/joint_trajectory_controller/constraints/arm_2_joint/trajectory: 0.1
  * /arm/joint_trajectory_controller/constraints/arm_3_joint/goal: 0.1
  * /arm/joint_trajectory_controller/constraints/arm_3_joint/trajectory: 0.1
  * /arm/joint_trajectory_controller/constraints/arm_4_joint/goal: 0.1
  * /arm/joint_trajectory_controller/constraints/arm_4_joint/trajectory: 0.1
  * /arm/joint_trajectory_controller/constraints/arm_5_joint/goal: 0.1
  * /arm/joint_trajectory_controller/constraints/arm_5_joint/trajectory: 0.1
  * /arm/joint_trajectory_controller/constraints/arm_6_joint/goal: 0.1
  * /arm/joint_trajectory_controller/constraints/arm_6_joint/trajectory: 0.1
  * /arm/joint_trajectory_controller/constraints/arm_7_joint/goal: 0.1
  * /arm/joint_trajectory_controller/constraints/arm_7_joint/trajectory: 0.1
  * /arm/joint_trajectory_controller/constraints/goal_time: 0.6
  * /arm/joint_trajectory_controller/constraints/stopped_velocity_tolerance: 0.05
  * /arm/joint_trajectory_controller/joints: ['arm_1_joint', '...
  * /arm/joint_trajectory_controller/required_drive_mode: 7
  * /arm/joint_trajectory_controller/state_publish_rate: 25
  * /arm/joint_trajectory_controller/stop_trajectory_duration: 0.5
  * /arm/joint_trajectory_controller/type: position_controll...
  * /arm/max_command_silence: 0.5
  * /arm/robot_state_publisher/publish_frequency: 50.0
  * /arm/robot_state_publisher/tf_prefix: 
  * /robot_description: <?xml version="1....
  * /rosdistro: indigo
  * /rosversion: 1.11.20
  * /script_server/arm/action_name: /arm/joint_trajec...
  * /script_server/arm/default_vel: 0.3
  * /script_server/arm/folded: [[0.0, -0.7462504...
  * /script_server/arm/home: [[0, 0, 0, 0, 0, ...
  * /script_server/arm/joint_names: ['arm_1_joint', '...
  * /script_server/arm/service_ns: /arm/driver
  * /script_server/arm/wave: ['waveleft', 'wav...
  * /script_server/arm/waveleft: [[0.0, 0.32103388...
  * /script_server/arm/waveright: [[0.0, 0.47410626...
 
 NODES
   /arm/
  arm_controller_spawner (controller_manager/controller_manager)
cob_control_mode_adapter_node (cob_control_mode_adapter/cob_control_mode_adapter_node)
driver (canopen_motor_node/canopen_motor_node)
joint_states_relay (topic_tools/relay)
robot_state_publisher (robot_state_publisher/robot_state_publisher)

 auto-starting new master
 process[master]: started with pid [30712]
 ROS_MASTER_URI=http://localhost:11311

 setting /run_id to 987657f0-162c-11e7-bac4-40167ea4b96c
 process[rosout-1]: started with pid [30725]
 started core service [/rosout]
 process[arm/robot_state_publisher-2]: started with pid [30743]
 process[arm/driver-3]: started with pid [30744]
 process[arm/arm_controller_spawner-4]: started with pid [30745]
 process[arm/cob_control_mode_adapter_node-5]: started with pid [30746]
 process[arm/joint_states_relay-6]: started with pid [30756]
 [ INFO] [1490976645.569315452]: waitForService: Service [/arm/controller_manager/load_controller] has not been     advertised, waiting...
 [ INFO] [1490976645.717129775]: Using fixed control period: 0.010000000
 [ INFO] [1490976650.576247797]: waitForService: Service [/arm/controller_manager/load_controller] has not been advertised, waiting...
 [ INFO] [1490976655.590050833]: waitForService: Service [/arm/controller_manager/load_controller] has not been advertised, waiting...
 [ INFO] [1490976660.605895930]: waitForService: Service [/arm/controller_manager/load_controller] has not been advertised, waiting...
 [ INFO] [1490976665.422933909]: Initializing XXX
 [ INFO] [1490976665.423034254]: Current state: 1 device error: system:0 internal_error: 0 (OK)
 [ INFO] [1490976665.423094791]: Current state: 2 device error: system:0 internal_error: 0 (OK)
 [ INFO] [1490976665.620630748]: waitForService: Service [/arm/controller_manager/load_controller] has not been advertised, waiting...
 [ INFO] [1490976670.631275907]: waitForService: Service [/arm/controller_manager/load_controller] has not been advertised, waiting...
 [ INFO] [1490976675.641053073]: waitForService: Service [/arm/controller_manager/load_controller] has not been advertised, waiting...
 [ INFO] [1490976680.549316006]: waitForService: Service [/arm/controller_manager/load_controller] is now available.
 [ INFO] [1490976680.598453095]: joint_trajectory_controller loaded
 [ INFO] [1490976680.618489424]: joint_group_position_controller loaded
 [ INFO] [1490976680.648534018]: joint_group_velocity_controller loaded
 [ INFO] [1490976680.728516225]: Switched Controllers. From no_stop_controller_defined to joint_trajectory_controller
 Loaded joint_state_controller
 Started ['joint_state_controller'] successfully
 [arm/arm_controller_spawner-4] process has finished cleanly
 log file: /home/schunk/.ros/log/987657f0-162c-11e7-bac4-40167ea4b96c/arm-arm_controller_spawner-4*.log
 [ INFO] [1490976681.019571538]: advertised as /joint_states

 [ERROR] [1490976689.433259160]: Node has emergency error; Node has emergency error; Node has emergency error

I used to get the same error with the PG70 gripper, but I solved it using the config files shown here. My gripper can now execute dashboard commands. I tried to change the config files for the arm, but the problem remains.

My PEAK CAN-USB is set to NETDEV mode (I have tried pretty much every available linux driver), and I have tried using SocketCAN as well. The can0 port has txquelen 20 and bitrate of 500k.

Any help appreciated, it has been bugging me for quite some time. Thank you in advance!

Nikos


Originally posted by NikMavr on ROS Answers with karma: 26 on 2017-03-31

Post score: 0


Original comments

Comment by Mathias Lüdtke on 2017-04-01:
The actual errrors should be listed in /diagnostics. If you launch with --screen you should get the errors printed to stdout as well. (requires v0.6.6 or newer). Instead of using the dashboard, you should try the contoller manager plugin for rqt.

$\endgroup$

1 Answer 1

0
$\begingroup$

Rosanswers logo

I was finally able to solve my problem. After taking a look at the /diagnostics topic and executing candump can0, I realized that the robot was outputting CANopen EMCY codes that indicated an issue with the motor current. Even though the wiring I initially used to connect the robot to the power supply complied with the LWA4D voltage and current specifications, I changed it and used thicker wires, and now the robot moves normally.


Originally posted by NikMavr with karma: 26 on 2017-05-11

This answer was ACCEPTED on the original site

Post score: 1


Original comments

Comment by ReedHedges on 2017-05-15:
Thanks for finding this! Do you remember what the specific error code was, and if there was any other info in the emcy message?

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.