Teleoperation using ROS drivers

I am trying to teleoperate an UR5 robot through ROS.
I have been using the RosActionClient follow_joint_trajectory which has a server in this code: universal_robot/ur_driver at kinetic-devel · fmauch/universal_robot · GitHub.

Unfortunately the commands have a huge delay between commands making the approach pretty useless. What am I doing wrong?
How should I proceed?

That’s branch of an old community driver, recommend you try the official UR ROS driver instead:

For doing teleoperation, please also see this ROS answers post

1 Like

Aren’t they the same? I have already the repo you have given to me, but in the readme script for installation, there is an instruction to clone the repo I provided.

This is ultra-useful, I didn’t know there was a chance to get an actual simulated robot. At least I won’t have to risk breaking the robot for doing tests.

They’re not the same. Looks like the official driver is just referencing some configurations from that other repository until they are merged into the official one. That actual communication interface in that other repository is a very old version that doesn’t use RTDE, so you should definitely be using the official.

Oh ok, my mistake. I thought I was using the old interface, but in reality, I am already using the official driver.
In fact, I am just sending messages through the Action server with my desired final positions, velocities and the requested time intervals. The action is listening on the /scaled_pos_joint_traj_controller/follow_joint_trajectory topic.

If I set the time interval too short the movements are chunky and the robot moves very fast in very small intervals. If I reduce it, It becomes smoother but very unresponsive, especially between different calls.

The problem stays still there (even if with a new perspective). I think that the FollowTrajectoryContol is not adapted for continuous streams of requests. I wonder if I should be using a different approach.

Is there reference documentation on how to interface with other controllers? or directly with a servoj/movej calls?

Hi @claudiocoppola90 , the ROS answers post linked by @mauch above mentions this beta branch with new cartesian control functionality, you could try that: