Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Real Arm is shaking, real time servoing tutorial #645

Closed
lorepieri8 opened this issue Aug 27, 2021 · 6 comments
Closed

Real Arm is shaking, real time servoing tutorial #645

lorepieri8 opened this issue Aug 27, 2021 · 6 comments
Labels
bug Something isn't working

Comments

@lorepieri8
Copy link
Contributor

Description

I've adapted the real time servoing tutorial to work with the Xarm6, using a PS3 joystick to control joints and cartesian movements. All good in simulation, but when working with the real arm, the arm starts shaking and it hardly moves.

What is causing the shaking? Do I have to tune any PID values? Or perhaps should I set a lower/higher frequency for the controllers?

Has the tutorial been used to control real arms, or perhaps it only works for simulated arms? If so, what's missing to make it work for a real arm?

I've also opened an issue here: xArm-Developer/xarm_ros2#2 . At the moment I'm not sure if this is an issue with the Xarm codebase or with Moveit Servo.

Your environment

  • ROS Distro: Foxy
  • OS Version: Ubuntu 20.04
  • Source or Binary build? Source
  • If source, which branch? foxy

Expected behaviour

The arm moves smoothly according to the joystick commands, as seen in simulation (Gazebo).

Actual behaviour

The arm is shaking a lot, apparently unable to be still after a command. It moves in the correct directions though, meaning that it is correctly receiving the inputs.

@lorepieri8 lorepieri8 added the bug Something isn't working label Aug 27, 2021
@tylerjw
Copy link
Member

tylerjw commented Aug 27, 2021

@AndyZe might have some suggestions for this. We've sometimes seen similar behavior but I don't remember exactly what we've done to make it smooth.

@AndyZe
Copy link
Member

AndyZe commented Aug 27, 2021

It depends a lot on the low-level servo controllers of the arm. If the low-level controllers offer a velocity control mode, you should use that.

If you're stuck using position control mode, you can (probably) reduce the jerkiness by using a larger publish_period in the Servo yaml config. More time between waypoints -> smoother motion.

There has been one type of robot so far (out of 5 or so) where we just couldn't get Servo to work because the low-level controllers just weren't capable.

@lorepieri8
Copy link
Contributor Author

Thanks for the comments.

They do offer velocity control, but when I try to use it the (real) arm doesn't move at all. With position control at least the command go trough.

Increasing publish_period did smooth the motion a bit, but the arm keeps moving erratically rapidly (movements of few centimeters).

This arm model has been teleoperated in the past (see here), so I guess the servos should be good enough. Not sure if they were using moveit servo though.

@henningkayser
Copy link
Member

@AndyZe do we have any progress on this so far? I think we have seen similar issues on the UR's and were able to somewhat resolve this. Maybe @destogl has some insights as well?

@AndyZe
Copy link
Member

AndyZe commented Oct 19, 2021

There never really was an issue on the UR AFAIK. They work quite well. Video below.

Are you using a direct network connection to the robot? I mean, ethernet cable straight from the PC to the robot, no switches or routers in-between? That should help minimize latency.

That's about all that comes to mind, for now. It could be that the Xarm6's low-level controllers just aren't well-suited to this type of control.

VID_20210927_132552973.mp4

@AndyZe
Copy link
Member

AndyZe commented Oct 19, 2021

It looks like a solution was suggested here: xArm-Developer/xarm_ros2#2

@lorepiere8 please feel free to re-open this issue if there's something we can do to help.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

4 participants