I’m encountering an issue with my URScript where the servoj commands dont run for the expect amount of time. I’m sending the script via ncat <ip_address> 30002 < script.txt
and recording the output using RTDE. Here’s a snippet of the script followed by more servoj commands:
def move():
lookahead_time = 0.03
gain = 1000
servoj([0.0, -1.5707963267948966, -1.5707963267948966, 0.0, 1.5707963267948966, 0.0], 0, 0, 0.002, lookahead_time, gain)
servoj([1.7453292519943296e-06, -1.5707966095382355, -1.5707953755904542, 1.3386675362796506e-06, 1.5707946914213875, -6.178465552059926e-07], 0, 0, 0.002, lookahead_time, gain)
servoj([6.981317007977318e-06, -1.5707974542775933, -1.5707925237224565, 5.352924815866609e-06, 1.570789783555531, -2.4713862208239705e-06], 0, 0, 0.002, lookahead_time, gain)
servoj([1.5707963267948964e-05, -1.5707988662489583, -1.5707877711909033, 1.2044517168012869e-05, 1.570781604942656, -5.560618996853934e-06], 0, 0, 0.002, lookahead_time, gain)
In the output, the script_control_line at each timestamp shows that the iterations start off slow and then ramp up. This indicates the robot controller isn’t receiving a new joint angle setpoint every 2ms from the start. Instead, it looks like its waiting until it reaches the target setpoint before issuing the next servoj command. I’ve attached a plot showing this. The t parameter in the servoj command is set to 0.002 seconds and should block for this duration and then move on to the next line.
I don’t believe this is a communication issue because the iterations eventually become linear. Any help on why this is happening would be great.