ros_canopen dcf_overlay setting
Hi,
I'm using ros_canopen to control my robot.
The joint_position_controller works but I get stuck with joint_trajectory_controller. I set PDO mapping through dcf_overlay :
dcf_overlay:
"1600sub0": "2"
"1600sub1": "0x60400010" # map Control Word to RPDO1
"1600sub2": "0x60c10120" # map 60c1sub2(position for PVT mode) to RPDO1
"1601sub0": "2"
"1601sub1": "0x60400010" # map Control Word to RPDO2
"1601sub2": "0x60600008" # map 0x6060(mode of operation) to RPDO2
"60c0": "0x0000" # map Interpolation submode 0:Linear interpolation with constant time
The candump message confused me because:
$ candump can0 -dcex |grep 201 # candump RPDO1
can0 TX - - 201 [6] 04 00 AA 32 00 00
$ candump can0 -dcex |grep 301 # candump RPDO2
can0 TX - - 301 [3] 1F 01 07 # halt the drive?
can0 TX - - 301 [3] 1F 00 07
can0 TX - - 301 [3] 1F 01 07 # halt the drive?
can0 TX - - 301 [3] 1F 00 07
...
1.How come the first two bytes of the RPDO1 message differ with that of RPDO2 since they both are mapped to control word?
2.$ candump can0 -dcex |grep 201
showed that the position data were successfully sent to CAN bus. But the robot didn't move. Control word 1F 01 seems to be halting the drive and indicates the operation mode is profile position mode(see Copley Manual P58). Is it a problem?
Thank you in advance.