Planning with path constraints

asked 2019-08-02 09:03:04 -0500

Hamed gravatar image

updated 2019-08-03 03:54:15 -0500

Dear all,

It's been quite sometime that I've been dealing with the issue of planning a path for a manipulator while keeping its gripper parallel to the ground using Moveit!. As I set some path constraints to fix the orientation of the gripper, Moveit would no longer be able to generate the right trajectory and it spits out "Fail: ABORTED: No motion plan found. No execution attempted."

I went through lots of googling and tried whatever I found but none of them worked. It seems there are also other people dealing with the same problem but no one has mentioned a solution for it yet. I was wondering if anybody could help me over this. Is there any way to achieve this using Moveit? The manipulator that I'm working with is Franka Emika.

Thanks in advance.


Update:

The only way which came to my mind for fixing the gripper's orientation while moving was using

geometry_msgs::PoseStamped target_pose;
moveit_msgs::OrientationConstraint ocm;
ocm.link_name = "gripper";
ocm.header.frame_id = "base_link";
ocm.orientation.x = -0.0000;
ocm.orientation.y = -0.0000;
ocm.orientation.z = 0.718;
ocm.orientation.w = 0.696;
moveit_msgs::Constraints test_constraints;
test_constraints.orientation_constraints.push_back(ocm);
group.setPathConstraints(test_constraints);
moveit::planning_interface::MoveGroupInterface::Plan move_plan;
group.setPoseTarget(target_pose0);
success = group.plan(move_plan
group.move();

However, this results in no plan being generated. Everything works fine without setting constraints, but Moveit! would stop generating motion plans as soon as I set any constraints.

The same problem has been mentioned in this post as well: https://answers.ros.org/question/2714...

I was reading through this google forum also, but it didn't help. https://groups.google.com/forum/#!top...

I also tried increasing the planning time and changing the values for the constraints as well, since I thought that I might put wrong values for the constraints which would result in no plan to be found, but none of them worked.

I appreciate if any anybody has any solution for this. Thanks

edit retag flag offensive close merge delete

Comments

1

through lots of googling and tried whatever I found

What have you found? Can you please post links to these questions?

none of them worked

What does this mean?

there are also other people dealing with the same problem

Again, please post links. All of this will help people with answering your question and avoid suggesting things that you've already tried.

jayess gravatar image jayess  ( 2019-08-02 12:22:37 -0500 )edit

Thanks for the reply @jayess! The only way which came to my mind for fixing the gripper's orientation while moving was using

geometry_msgs::PoseStamped target_pose;
moveit_msgs::OrientationConstraint ocm;
ocm.link_name = "gripper";
ocm.header.frame_id = "base_link";
ocm.orientation.x = -0.0000;
ocm.orientation.y = -0.0000;
ocm.orientation.z = 0.718;
ocm.orientation.w = 0.696;
moveit_msgs::Constraints test_constraints;
test_constraints.orientation_constraints.push_back(ocm);
group.setPathConstraints(test_constraints);
moveit::planning_interface::MoveGroupInterface::Plan move_plan;
group.setPoseTarget(target_pose0);
success = group.plan(move_plan
group.move();

However, this results in no plan being generated. Everything works fine without setting constraints, but Moveit! would stop generating motion plans as soon as I set any constraints.

The same problem has been mentioned in this post as well: https://answers.ros.org/ques

Hamed gravatar image Hamed  ( 2019-08-02 14:14:35 -0500 )edit

Which constraints are you trying? What are the errors you receive? Please give more detail than "none of them worked".

fvd gravatar image fvd  ( 2020-03-02 06:25:49 -0500 )edit

the orientation quaternion is not normalized to 1. if you square x,y,z,w and add them its equal to 0.99994. i was having similar issue. to validate your rest of code try setting either x,y,z,w to 1 and remaining values to 0. if your code works then it means you need to put exact quaternion value and not rounded off ones.

mat_bil gravatar image mat_bil  ( 2020-09-25 16:01:02 -0500 )edit