-
Notifications
You must be signed in to change notification settings - Fork 46
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
PSMs don't reach commanded set-points #64
Comments
Hi @adnanmunawar and @kschwan , I have also found out the same issue with the latest repository. Last year I designed a customized recorder directly recording the self._ik_solution (psm_arm.py, line#167) therefore I manage to avoid this problem. This year, I attempt to use rosbag for recording and the problem starts to come out. In addition to the description of @kschwan, I print out the joint positions directly from servo_jp and measured_jp simultaneously. You may check the following screenshot for the information. And we can see that all the joints have minor differences between servo_jp and measured_jp. Would you mind giving some hints about how to solve this problem? Thank you! |
Hi Kim and Jack, You guys are correct, there is indeed a steady state error in arm's joint controller loops. This is due to the default controller gains for each joint (https://github.com/collaborative-robotics/surgical_robotics_challenge/blob/master/ADF/psm1.yaml#L697), since we don't specify the PID gains, they default to Lastly, if you disable gravity by pressing the |
Thanks Adnan, sounds good, I'll pass on the information! |
Hi Guys, Please pull the latest version of ambf and build it. Then one can set zero gravity at the model level scope of the psm1, psm2, psm3 files and the position control should be accurate. |
…curacy Please pull the latest version of AMBF and build before running the SRC
Please checkout the commit above. Don't forget to pull the latest ambf commit and build it before trying out the SRC. |
Hi Adnan, Hope all is well! Thank you for the update! Unfortunately, I have attempted the latest version with latest AMBF. It seems that the problem has not been resolved yet. I also print out the joint positions directly from servo_jp and measured_jp simultaneously. You may check the following screenshot for the information. And we can see that all the joints still have minor differences between servo_jp and measured_jp. It may involve fine tuning the PID parameters for accurate control. Or would you mind giving some other hints which may be helpful? Thank you! |
Hi Jack, Thanks. A fews things to make sure. Did you pull and rebuild AMBF? Then did you pull the latest version of SRC? When you load the SRC, you should see messages in the console saying something like "INFO! Setting OBJECT's gravity to ...". Finally, are you sure that the commanded joint positions are not resulting in collision of the PSMs with the environment? Finally, just to make sure, have you set the joint errors to 0.0? |
Hi Adnan, Thank you for the instruction! For most of the points, I am in the same page with you, except that didn't correctly source the latest built AMBF, therefore it doesn't run as expected. In the previous running, the message "INFO! Setting OBJECT's gravity to ..." didn't show up. After fixing this problem, I tested again, and the result seems good. It has very slight errors which can be ignored in most times: One more point to bring for replaying: If somebody record the topic "/ambf/env/psm1(2)/baselink/State", when they want to replay, they may need to divide the third joint (the prismatic joint) value by 10 before feeding to |
Hi Jack, thanks for this info. I would suggest that if you are recording the state (joint space or Cartesian space) of the PSMs, you should record them from the |
Closing this as resolved |
Hi @adnanmunawar,
I'm revisiting Task 2 (needle grasping and driving) as we have some students wanting to use the simulated environment in a project. I'm experiencing some issues however:
It doesn't seem like the PSM's are able to reach the commanded joint space set-points. Are they not supposed to, can it be improved, or is it an error on my part?
I attach an example where I command the robot to move to a
Needle/Grasp
frame. The joint space set-point is computed throughsurgical_robotics_challenge.kinematics.psmIK.compute_IK
and published on the/CRTK/psm2/servo_jp
topic (interpolating a trajectory in joint space).The images below show the simulator view, and the commanded
Needle/Grasp
frame and current/CRTK/psm2/measured_cp
pose.psm2.txt has rostopic output corresponding to the state shown in the images.
I interface with the simulator via
launch_crtk_interface.py
and I have setadd_joint_errors=False
.I use 314a4ba and WPI-AIM/ambf@18637b4.
PS. I have the same issue using velocity control.
The text was updated successfully, but these errors were encountered: