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

MoveIt and the arm are using different frames #1225

Open
1 task done
bodkal opened this issue Jan 7, 2025 · 1 comment
Open
1 task done

MoveIt and the arm are using different frames #1225

bodkal opened this issue Jan 7, 2025 · 1 comment
Labels
question Further information is requested

Comments

@bodkal
Copy link

bodkal commented Jan 7, 2025

Affected ROS2 Driver version(s)

humble

Used ROS distribution.

Humble

Which combination of platform is the ROS driver running on.

Ubuntu Linux with standard kernel

How is the UR ROS2 Driver installed.

From binary packets

Which robot platform is the driver connected to.

URSim in docker

Robot SW / URSim version(s)

ros2 run ur_client_library start_ursim.sh -m ur10e

How is the ROS driver used.

Headless without using the teach pendant

Issue details

Hi all,
As described in the user guide, the arm/controllers use the base frame.

WhatsApp Image 2025-01-06 at 17 41 59

If I look at the moveit_config it seems that MoveIt uses the base_link frame.

from the ur_macro.srdf.xacro:

   <group name="ur_manipulator">
      <chain base_link="base_link" tip_link="tool0" />

If I use the base frame, the arm and the TCP controller work correctly, but MoveIt sends the arm to the same position as it was in the base_link frame (with everything transformed by 180 degrees).
If I use the base_link frame as my main frame, the arm and the TCP controller are in the wrong orientation.

What did I do wrong?

Relevant log output

No response

Accept Public visibility

  • I agree to make this context public
@urfeex
Copy link
Member

urfeex commented Jan 8, 2025

I think I don't understand the issue here. Yes, these are different frames, but as long as you do not pretend that an information is given in base that is actually given in base_link it shouldn't matter. The ROS TF system will handle all transformation necessary.

As described in the user guide, the arm/controllers use the base frame.

arm/controllers is not the same thing. The arm uses base internally. That means that base is equivalent to the teach pendant's base frame. base_link follows rep 199.

If I use the base_link frame as my main frame, the arm and the TCP controller are in the wrong orientation.

What did I do wrong?

How are you sending a target to MoveIt? As said above, if you make a lookup in base_link and send that as coordinates for a stamped pose using base as a frame, the information is obviously wrong. Without knowing exactly how you interact with the robot / MoveIt it's hard to say what is going wrong.

@urfeex urfeex added the question Further information is requested label Jan 8, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
question Further information is requested
Projects
None yet
Development

No branches or pull requests

2 participants