In current codes, jog_joint_node and jog_frame_node subscribe joint_states. The reason is 'jog' should be commanded by the differential displacement from current position. And it is used to calculate target joint angle with jog command continuously.
However, joint_states keeps changing while moving. So if we command by five jog messages by 1mm, it doesn't guarantee 5mm motion. In addition, some robot is controlled by low gained position control like Baxter, so it is easily flowed from desired cartesian trajectory.
The problem is the nodes shape control loop from joint_states to joint command. We can define 'jog session', which is started and ended by the jog commands to avoid the control loop.
In current codes,
jog_joint_node
andjog_frame_node
subscribejoint_states
. The reason is 'jog' should be commanded by the differential displacement from current position. And it is used to calculate target joint angle with jog command continuously.However,
joint_states
keeps changing while moving. So if we command by five jog messages by 1mm, it doesn't guarantee 5mm motion. In addition, some robot is controlled by low gained position control like Baxter, so it is easily flowed from desired cartesian trajectory.The problem is the nodes shape control loop from
joint_states
to joint command. We can define 'jog session', which is started and ended by the jog commands to avoid the control loop.