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

Revision history [back]

click to hide/show revision 1
initial version

Solution:

(History:)Originally I was unable to spawn the controllers after initializing the canopen driver. A lot was discussed here and i was really struggling with my setup, but here are the solutions that made it work finally:

First problem was identified by @Mathias Lüdtke. Namely, the original EDS file had a wrong object description, the right one is DataType=0x0007.

The second problem was again around the EDS file, namely, the correct PDO mapping was the issue. For me its still not 100% clear why the PDO mapping from the working Schunk package did not allow to successfully spawn the position controller and control the motor,

however the following PDO mapping allows both to measure the shaft position (through joint_states topic) and control the shaft position (through the /joint_1_position_contller/command topic):

[1600sub0]
ParameterName=number of mapped application objects in PDO
ObjectType=0x7
DataType=0x0005
LowLimit=
HighLimit=
AccessType=rw
DefaultValue=1
PDOMapping=0
ObjFlags=0x0
ParameterValue=2

[1600sub1]
ParameterName=PDO mapping 1
ObjectType=0x7
DataType=0x0007
LowLimit=
HighLimit=
AccessType=rw
DefaultValue=0x60400010
PDOMapping=0
ObjFlags=0x0
ParameterValue=0x60400010

[1600sub2]
ParameterName=PDO mapping 2
ObjectType=0x7
DataType=0x0007
LowLimit=
HighLimit=
AccessType=rw
DefaultValue=0
PDOMapping=0
ObjFlags=0x0
ParameterValue=0x607a0020

[1601sub0]
ParameterName=number of mapped application objects in PDO
ObjectType=0x7
DataType=0x0005
LowLimit=
HighLimit=
AccessType=rw
DefaultValue=2
PDOMapping=0
ObjFlags=0x0
ParameterValue=0

[1602sub0]
ParameterName=number of mapped application objects in PDO
ObjectType=0x7
DataType=0x0005
LowLimit=
HighLimit=
AccessType=rw
DefaultValue=2
PDOMapping=0
ObjFlags=0x0
ParameterValue=0

[1603sub0]
ParameterName=number of mapped application objects in PDO
ObjectType=0x7
DataType=0x0005
LowLimit=
HighLimit=
AccessType=rw
DefaultValue=0
PDOMapping=0
ObjFlags=0x0

[1A00sub0]
ParameterName=number of mapped application objects in PDO
ObjectType=0x7
DataType=0x0005
LowLimit=
HighLimit=
AccessType=rw
DefaultValue=1
PDOMapping=0
ObjFlags=0x0
ParameterValue=3

[1A00sub1]
ParameterName=PDO mapping 1
ObjectType=0x7
DataType=0x0007
LowLimit=
HighLimit=
AccessType=rw
DefaultValue=0x60410010
PDOMapping=0
ObjFlags=0x0
ParameterValue=0x60410010

[1A00sub2]
ParameterName=PDO mapping 2
ObjectType=0x7
DataType=0x0007
LowLimit=
HighLimit=
AccessType=rw
DefaultValue=0
PDOMapping=0
ObjFlags=0x0
ParameterValue=0x60610008

[1A00sub3]
ParameterName=PDO mapping 3
ObjectType=0x7
DataType=0x0007
LowLimit=
HighLimit=
AccessType=rw
DefaultValue=0
PDOMapping=0
ObjFlags=0x0
ParameterValue=0x60640020

[1A01sub0]
ParameterName=number of mapped application objects in PDO
ObjectType=0x7
DataType=0x0005
LowLimit=
HighLimit=
AccessType=rw
DefaultValue=2
PDOMapping=0
ObjFlags=0x0
ParameterValue=0

[1A02sub0]
ParameterName=number of mapped application objects in PDO
ObjectType=0x7
DataType=0x0005
LowLimit=
HighLimit=
AccessType=rw
DefaultValue=2
PDOMapping=0
ObjFlags=0x0
ParameterValue=0

[1A03sub0]
ParameterName=number of mapped application objects in PDO
ObjectType=0x7
DataType=0x0005
LowLimit=
HighLimit=
AccessType=rw
DefaultValue=0
PDOMapping=0
ObjFlags=0x0

I hope this solution can help others to save some time.

I would also like to thank Mathias for the constant help!