cartesian compliance controller does not seem to behave the way expected
shrutichakraborty opened this issue · 4 comments
Hi @fmauch, I am using the catesian compliance controller with UR10e robot on ROS2 Humble. I have previously used the cartesian motiona nd cartesian force controllers as well. With the cartesian compliance ocntroller, I am testing with different stiffnesses in XYZ translation direction and I am expecting that this will add "compliance" to the robot in these axes, and expect that the robot will be less stiff in these directions. For instance, reducing stiffness in Z, would mean I should be able to push the robot up (physically) and it should restabilize (like if it had a spring damper attached to the end effector). But this is not what happens in my tests. After reducing stiffness in XYZ, I command the robot to move vertically down to a position which has an obstacle, but instead of stopping on contact and stabalizing, the robot continue to move down.
Can someone help me out? I have reduced the stiffness to about 90 in X,Y,Z translation for the tests. Are there any recommended stiffness values for UR10e from your experience/tests?
My guess is that you're force torque sensor topic is not mapped correctly to the controller's /<controller_name>/ft_sensor_wrench
.
One way to do this is to remap the cartesian ft sensor topic (subscriber) to your ft sensor topic (publisher) :
<remap from="/my_compliance_controller/ft_sensor_wrench" to="/<your_sensor_wrench_topic>" />
My guess is that you're force torque sensor topic is not mapped correctly to the controller's
/<controller_name>/ft_sensor_wrench
.One way to do this is to remap the cartesian ft sensor topic (subscriber) to your ft sensor topic (publisher) :
<remap from="/my_compliance_controller/ft_sensor_wrench" to="/<your_sensor_wrench_topic>" />
Thanks a lot, this worked!
Thanks @captain-yoshi for answering this.
Here's an additional example how to remap the controller topics in a ROS2 python launch file:
remappings=[
("motion_control_handle/target_frame", "target_frame"),
("cartesian_motion_controller/target_frame", "target_frame"),
("cartesian_compliance_controller/target_frame", "target_frame"),
("cartesian_force_controller/target_wrench", "target_wrench"),
("cartesian_compliance_controller/target_wrench", "target_wrench"),
("cartesian_force_controller/ft_sensor_wrench", "ft_sensor_wrench"),
("cartesian_compliance_controller/ft_sensor_wrench", "ft_sensor_wrench"),
],
Thanks @captain-yoshi for answering this.
Here's an additional example how to remap the controller topics in a ROS2 python launch file:
remappings=[ ("motion_control_handle/target_frame", "target_frame"), ("cartesian_motion_controller/target_frame", "target_frame"), ("cartesian_compliance_controller/target_frame", "target_frame"), ("cartesian_force_controller/target_wrench", "target_wrench"), ("cartesian_compliance_controller/target_wrench", "target_wrench"), ("cartesian_force_controller/ft_sensor_wrench", "ft_sensor_wrench"), ("cartesian_compliance_controller/ft_sensor_wrench", "ft_sensor_wrench"), ],
Thanks a lot @stefanscherzinger, and @captain-yoshi , I am redoing the setup for ros1 as well and faced some issues despite remapping correctly. I have put an issue in #15 as I am facing the same errors :
Failed to load /cartesian_compliance_controller/gravity from parameter server
, Failed to load /cartesian_compliance_controller/target_frame_topic from parameter server. Will default to: /cartesian_compliance_controller/target_frame
and Failed to load /cartesian_compliance_controller/tool from parameter server
. Would you have any ideas why this could be happening? Thanks