-
Notifications
You must be signed in to change notification settings - Fork 118
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
Random Jerk/trembling during execution with cartesian_motion_controller #208
Comments
Thank you @shrutichakraborty for taking the time and giving thorough feedback! I appreciate your insights and will try to work that into future improvements. Some of which are also on the documentation side. 1. Random Jerk/trembling during execution with cartesian_motion_controller
Yes, that is correct. All controllers do interpolate towards the targets by themselves, but depending on the parameters, this can result anywhere from fast jumps to a smooth motion. The first steps towards a fresh target are always the most jerky ones, because the controllers reduce the error iteratively. That being said, you can obtain a fast and smooth behavior at the same time. It's all determined via the target frame itself. Instead of publishing individual, distant target frames, publish your target frame as a function of time with a velocity profile of your choice and at a rate of e.g. 100 Hz. Then parameterize the
I completely agree. This should not be the case. However, can you prove that it's not some artifact coming from the image processing pipeline causing this jerky motion?
This should also not be the case. Does that happen sometimes or always? Does it happen also with other non- 3. Precision error with cartesian_compliance_controller
It depends. The
I think it's more intuitive to teleoperate the robot with the |
Hi @stefanscherzinger ,
My pipeline works like this:
I notice the random jerks during the step 2, these are also more noticable when the robot has been running for longer hours. During this step I have verified that no target_frames are being published to the robot during this time.
This happens all the time if I stop the launch file of the robot, either without deactivating the controller or stopping external control. No this only happens with the cartesian_controllers especially the force and motion controller. Thanks! |
Problem description
Hi authors,
I have been using the all the controllers, tested both on ros1 noetic with UR10E and on ROS2 humble version with a different UR10E robot, for a while now for different use cases and have experienced some issues that I wanted to raise that might help make future improvements to the controllers.
I am wondering if this has been noticed by others before and if there is any advice to avoid this behaviour? I am also wondering if there is a possibility to allow users to control the velocity of the motion which might be like a scale factor to avoid big jerky motions?
Another issue I have faced is, often during the image processing part of my pipeline, the cartesian_motion_controller is still active and the external control on the robot is active too butthe robot is still. In this case with increased duration of running, I see the robot make sudden random jerks (even when no commands are being sent ).. I am not sure why this occurs and a fix would be greatly helpful as currently this tends to affect my image processing pipeline as the camera images come out blurry due to the robot having randomly moved.
Finally, with the cartesian_motion_controller, if I stop the robot launch file, without first stopping external control , I notice that the robot starts moving randomly. I have been taking care to properly switch the cartesian_controller off and cutting of extrenal control to the UR before stopping the launch file on the PC but still this is a strange issue and a fix would be really helpful.
I tested commanding a set of known positions to the robot in compliant mode to check its precision. On comparing the position reached by the robot vs the position commanded I have noticed an error in precision of about 4-7 mm in the 3 axes. Is this something to be expected?
Additionally, I also tried using the controller for teleoperating in compliance mode. I am sending a wrench (computed from positions and velocity of my teleop device) and the current robot position at each timestep for the teleop. However, in certain cases the robot tries to come back to its original starting position. This was also the case with the example teleop scripts with the space_nav mouse, as soon as we let go the robot returns to the center to its original start position. Whereas, what I would like is for the robot to remain where it was teleoperated to.. Anny suggestions how I could ensure this behaviour?
I had also tried to teleop by only sending positions and that did not work as mentioned in my previous posts #194
Here is my config for the controllers :
for the cartesian_compliance_controller I am using the base config given in the example with UR robot except the
error_scale
is at 0.25 as my robot vibrates at anything higher.Thanks a lot!
The text was updated successfully, but these errors were encountered: