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

How to use cartesian_compliance_controller with MoveIt2 and real UR10e robot? #219

Open
Adrian2702 opened this issue Jan 14, 2025 · 1 comment

Comments

@Adrian2702
Copy link

Problem description

I use the ur_robot_driver to control a real UR10e robot. The robot gets new poses from a C++ script. Everything works fine with the scaled_joint_trajectory_controller from ur_controllers. But for the application (sanding over an object) it is necessary to consider the contact forces with the object and not to use pure position control as before. So I tried the cartesian_compliance_controller. As far as I have implemented it, it is possible to activate the controller and send pose data like:

ros2 topic pub --once /target_frame geometry_msgs/msg/PoseStamped '{'header': {'stamp': 'now', 'frame_id': 'base_link'}, 'pose': {'position':{x: 0.5, y: 0.5, z: 0.5}, 'orientation':{x: 0, y: 0, z: 0, w: 1}}}'

to the robot. So far I use MoveIt2 to plan the trajectory. However, when I now send my poses via C++ script with cartesian_compliance_controller enabled, the move_group.moveit.moveit.plugins.simple_controller_manager throws an error because it only recognizes 2 controllers (scaled_joint_trajectory_controller and joint_trajectory_controller) as configured in the moveit_controllers.yaml file in the ur_moveit_config package. My question is, how can I continue to use MoveIt2 as my planner but in combination with the cartesian_compliance_controller? There was some kind of workaround for ROS1, but is there still a good solution for ROS2?

Software versions

  • Commit: f8aad77
  • OS: Linux 6.8.0-45-generic
  • ROS version: ROS2 Jazzy
@edtriccorp
Copy link

edtriccorp commented Jan 21, 2025

Hi @Adrian2702,

Were you able to get the Cartesian controllers to work/launch with Jazzy? I ran into issues when trying to launch them with Jazzy. I have them working in Humble. I also recently started investigating how to get MoveIt2 integrated with the Cartesian Controllers.

The MoveIt2 move_group_interface_tutorial.cpp has basic examples of Cartesian Path Planning but I am unclear on how to connect MoveIt2 to the Cartesian Controller /targetframe topics. We are also interested in constraining the joint configuration of the eoat ... for example parallel to a surface ....etc... I am unclear if this can be achieved by Cartesian Path planning or if it needs to be hybrid. Similar to the example section "Enforce Planning in Joint Space".

I am gathering so far that it appears that using MoveIt2 would result in IK solving which kind of defeats the strength of these controllers but I am hoping my understanding is wrong?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants