moveit / moveit2_tutorials

A sphinx-based centralized documentation repo for MoveIt 2
https://moveit.picknik.ai
BSD 3-Clause "New" or "Revised" License
150 stars 194 forks source link

Issue with move group interface planning to pose-goal with ur10e #897

Open FrancisoFarrell opened 5 months ago

FrancisoFarrell commented 5 months ago

Description

Overview of your issue here.

Your environment

Hi All, I am using ROS2 humble on ubuntu 22.04 and UR10e real robot. I cloned ur_robot_driver and ur_description (https://github.com/UniversalRobots/Universal_Robots_ROS2_Description) and launching moveit config as below _ros2 launch ur_robot_driver ur_control.launch.py ur_type:=ur10e robot_ip:=yyy.yyy.y.yy launch_rviz:=false ros2 launch ur_moveit_config ur_moveit.launch.py ur_type:=ur10e launch_rviz:=true_

Now when I am trying to move the robot using rviz its working fine. But when I am trying to give the goal pose through move group c++ code using move group interface tutorial to plan the pose goal (https://github.com/ros-planning/moveit2_tutorials/blob/humble/doc/examples/move_group_interface/src/move_group_interface_tutorial.cpp). I am using geometry msgs Pose to pass cartesian pose

// Planning to a Pose goal

geometry_msgs::msg::Pose target_pose1; target_pose1.orientation.w = 1.0; target_pose1.position.x = 0.28; target_pose1.position.y = -0.2; target_pose1.position.z = 0.5; move_group.setPoseTarget(target_pose1);

// Now, we call the planner to compute the plan and visualize it. moveit::planning_interface::MoveGroupInterface::Plan my_plan; bool success = (move_group.plan(my_plan) == moveit::core::MoveItErrorCode::SUCCESS); RCLCPP_INFO(LOGGER, "Visualizing plan 1 (pose goal) %s", success ? "" : "FAILED");

However, while planning and executing the movement, I noticed weird movements where the robot didn't seem to move as expected. I noticed that getPlanningFrame returns world. I think the real ur10e robot is passing in base frame so I tried to pass the target pose in world frame as I am unable to set the planning frame to base. So I checked the pose in world frame using _ros2 run tf2_ros tf2echo world tool0

and now passing this pose in the geometry pose. Even after sending the pose goal in world frame the robot is still moving weirdly.

I checked the collision object pose by passing the collision object pose same as target pose to see the frame, that works fine just the robot is not moving correctly. Even after giving the current pose of the robot in world frame the robot does random movement.

Is there any way to set the planning frame in a MoveIt 2 setup? or why robot is moving in different directions? Any help would be highly appreciated.

Thank you.

sumit280188 commented 1 week ago

Hi @FrancisoFarrell

I am following exactly all the steps you mentioned above, still if I define geometry_msgs::msg::Pose msg; msg.orientation.w = 1.0; msg.position.x = 0.300; msg.position.y = 0.300; msg.position.z = 0.300;

It is going to (-0.3,-0.3,0.05) with tcp RX= 0 RY = 0 and RZ= 3.143

Also getting this warning

Error: Semantic description is not specified for the same robot as the URDF at line 664 in ./src/model.cpp [INFO] [1726832308.485516353] [moveit_rdf_loader.rdf_loader]: Loaded robot model in 2.95336 seconds [INFO] [1726832308.486186709] [moveit_robot_model.robot_model]: Loading robot model ‘ur5e’… [INFO] [1726832308.486495040] [moveit_robot_model.robot_model]: No root/virtual joint specified in SRDF. Assuming fixed joint [WARN] [1726832308.649051192] [moveit_ros.robot_model_loader]: No kinematics plugins defined. Fill and load

Also tried rotating the quaternions ms.orientation.x = 0.0; msg.orientation.y = 0.0; msg.orientation.z = 0.0;

Still not going to the desired TCP location.

I even inspected the launch.py everything seems correct. It would be great if you can suggest some means for correction. Did you solve this?