Duh! I just realized what your problem is and why you are not seeing any backlash compensation applied to the motors. It is an obvious mistake in your hal file that we should have caught straight off when you posted your hal file. I kind of feel bad for not seeing this before.
You are using the pin axis.N.joint-pos-cmd as the source for your command to your drives. This is WRONG. You need to use axis.N.motor-pos-cmd. The reason is right here in the man page for
Motion
axis.N.joint-pos-cmd OUT FLOAT
The joint (as opposed to motor) commanded position. There may be several offsets between the joint and motor coordinates: backlash compensation, screw error compensation, and home offsets.
The simplest fix would be to change these 3 lines in your hal file from this:
Code:
net pos0_float axis.0.joint-pos-cmd => lcec.0.1.poscommand
net pos1_float axis.1.joint-pos-cmd => lcec.0.0.poscommand
net pos2_float axis.2.joint-pos-cmd => lcec.0.2.poscommand
to this:
Code:
net Xpos => lcec.0.1.poscommand
net Ypos => lcec.0.0.poscommand
net Zpos => lcec.0.2.poscommand