Ask Your Question

profile position mode + ros canopen

asked 2017-12-26 14:36:22 -0500

JadTawil gravatar image

updated 2017-12-26 14:50:05 -0500


I want to use profile postion mode with ros canopen, but i want the bits in the control word to be set in a certain way, for example:

Bit 5: If this bit is set to "1", a travel order triggered by bit 4 is immediately carried out. If it is set to "0", the travel order just being carried out is completed and only then is the next travel order started. Bit 6: If "0", the target position (607Ah) is absolute and if "1", the target position is relative to the actual position. The reference position is depending on the Bits 0 and 1 of the object 60F2

How do i get ros canopen to set those bits in the control word so that the position value i am writing to the controller is interpreted correctly?

Is the DCF overlay configuration option in for the canopen_chain_mode the correct place to do this (i dont think it is..)?

I see line 232 in canopen_402/include/canopen_402/motor.h: cw.set(CW_Immediate)

Would i replace this with cw.set(CW_Blending) to use the different setpoint options for profile position mode?


edit retag flag offensive close merge delete

1 Answer

Sort by » oldest newest most voted

answered 2017-12-27 03:04:26 -0500

Mathias Lüdtke gravatar image

The default implementation (absolute, immediate, no blending) made the most sense for generic use with ros_control.

If you want to change the PP mode behavior, you need to write your own MotorBase (e.g. subclass Motor402) plugin that registers a custom mode handler.

edit flag offensive delete link more

Your Answer

Please start posting anonymously - your entry will be published after you log in or create a new account.

Add Answer

Question Tools

1 follower


Asked: 2017-12-26 14:36:22 -0500

Seen: 126 times

Last updated: Dec 27 '17