0
$\begingroup$

Rosanswers logo

Hi,

Edit: I also opened issue 276 in ros_canopen github.

I am trying to use a schunk_lwa4d arm with an esd CAN-USB/2 in ROS but I have issues initializing it. I am using this launch file in the shunck_lwa4p package from schunk_robots.

First I do:

sudo modprobe esd_usb2
sudo ip link set can0 up type can bitrate 500000
sudo ip link set can0 txqueuelen 20

and then I run the above launch file and try to initialise with rosservice call /arm/driver/init. In the terminal I executed the rosservice I get:

success: False
message: "could not reset node '3'"

In the terminal I executed the ros launch I get:

[ INFO] [1524494867.079043073]: Using fixed control period: 0.010000000
[ INFO] [1524494871.222930279]: Initializing XXX
[ INFO] [1524494871.223441822]: Current state: 1 device error: system:0 internal_error: 0 (OK)
[ INFO] [1524494871.223800403]: Current state: 2 device error: system:0 internal_error: 0 (OK) error: 136
[ INFO] [1524494871.224968675]: Current state: 2 device error: system:0 internal_error: 136 (protocol violations;)
[ INFO] [1524494871.225023587]: Current state: 1 device error: system:0 internal_error: 136 (protocol violations;) ID: 136
[ERROR] [1524494871.234310747]: CAN not ready
[ INFO] [1524494871.899096913]: waitForService: Service [/arm/controller_manager/load_controller] has not been advertised, waiting...
[ INFO] [1524494876.910831528]: waitForService: Service [/arm/controller_manager/load_controller] has not been advertised, waiting...
[ INFO] [1524494881.225471058]: Current state: 1 device error: system:125 internal_error: 136 (protocol violations;)
[ INFO] [1524494881.225579044]: Current state: 0 device error: system:125 internal_error: 136 (protocol violations;)
[ INFO] [1524494881.225706891]: Current state: 0 device error: system:0 internal_error: 136 (protocol violations;)
[ INFO] [1524494881.225850755]: Current state: 0 device error: system:0 internal_error: 136 (protocol violations;)
[ INFO] [1524494881.917377871]: waitForService: Service [/arm/controller_manager/load_controller] has not been 
advertised, waiting...

Any ideas?


Edit: thanks for you reply Mathias,

The problem was solved. The modules were not in CANopen. Using the widows tools from Schunk I had to reset the arm back to Canopen. Now it works in ROS.


Originally posted by Manolis Chiou on ROS Answers with karma: 70 on 2018-04-23

Post score: 0


Original comments

Comment by Mathias Lüdtke on 2018-04-30:
If you can move/manage the modules with the Schunk tool, then they are not in CANopen 402 mode. You have to solve this python issue and set the modules to the proper mode.

Comment by k5519995 on 2019-03-25:
Hello, Mr. Chiou. I am using the same configurations. I am getting exactly the same problem. Can you give me some advice how to solve that please ?

Comment by Manolis Chiou on 2019-05-07:
Hi,

As I say above the modules were not in CANopen. Using the widows tools from Schunk I had to reset the arm back to Canopen.

Comment by sridharsidhu0801 on 2021-04-13:
Hi Manolis Chiou, I have the same issue and read your comment, but I didn't understand what you are saying. Could you elaborate a bit more and explain it. Also if you have any reference or steps required in controlling the Schunk LWA 4d hardware using esd CAN-USB/2, please provide it.

Thank you

Comment by stann on 2021-04-25:
I get the problem:

 Initializing failed: Transition timeout; Could not enable motor

using the esd CAN-USB2 card, does anyone know how to solve this problem?

$\endgroup$

1 Answer 1

0
$\begingroup$

Rosanswers logo

The schunk_lwa4d package reflects the (special?) configuration that was used with Care-O-bot 4. As the init service error implies node 3 could not be reached.

This might have several reasons:

  • There is no node 3. Module IDs can be set freely. The Care-O-bot convention for LWA4d is 3-9.
  • Your bitrate is not correct. (Not sure if 500k or 1M is the default)
  • Your modules are not in CANopen 402 mode.

You can check/set these things with the software tools provided by Schunk.

The node IDs can also read with candump: Just start candump can0 before powering on. While boot-up the devices should send messages with IDs 0x700 + node ID (hex!)


Originally posted by Mathias Lüdtke with karma: 1596 on 2018-04-25

This answer was ACCEPTED on the original site

Post score: 2


Original comments

Comment by Manolis Chiou on 2018-04-30:
Indeed the problem was that the modules were not in CANopen.

Comment by sridharsidhu0801 on 2021-04-13:
I am not an expert in using driver packages and CAN USB. I am having the same issue and stuck with this problem. I read various material, and sources to figure it out but having difficulty in solving this issue. Could you explain how to solve it or provide some reference which explains how to solve it and control the hardware?

$\endgroup$

Your Answer

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