# end-effector pose constrained planning

Hello: I am looking for end-effector pose constrained planning for the manipulator. I know that such functionalities have been provided in "MoveIt!" where you set your kinematics constraints and then give command to plan a path.

I believe that this type of end-effector constrained planning (in MoveIt!) is done in end-effector cartesian degree of freedom using Inverse Kinematics.

Can anyone please point me to: where this task-constrained code sits in OMPL (as MoveIt uses OMPL), or any pointer to the research paper of this implementation in MoveIt!

I want to understand how it is done and what are the steps involved in ROS implementation.

Thanks.

Originally posted by Victor22 on ROS Answers with karma: 51 on 2014-06-19

Post score: 5

Comment by Rob.Chen on 2019-01-08:
Hello! I am also very interested in manipulator constraint motion planning, and have some problem about how moveit sent constraint information to ompl, and how ompl deal with it, if you have solve it, please help me, any help is very greatful!

Comment by JohnDoe on 2023-07-18:
@Rob.Chen Hi! Did you make progress on your question? I have the same confusion as you.

Here is an example of how to use path constraints (here orientation constraints) with Moveit in Python:

from moveit_msgs.msg import RobotState, Constraints, OrientationConstraint

def init_upright_path_constraints(self,pose):

self.upright_constraints = Constraints()
self.upright_constraints.name = "upright"
orientation_constraint = OrientationConstraint()
orientation_constraint.orientation = pose.pose.orientation
orientation_constraint.absolute_x_axis_tolerance = 0.4
orientation_constraint.absolute_y_axis_tolerance = 0.4
orientation_constraint.absolute_z_axis_tolerance = 0.4
#orientation_constraint.absolute_z_axis_tolerance = 3.14 #ignore this axis
orientation_constraint.weight = 1

self.upright_constraints.orientation_constraints.append(orientation_constraint)

def enable_upright_path_constraints(self):
self.arm.set_path_constraints(self.upright_constraints)

def disable_upright_path_constraints(self):
self.arm.set_path_constraints(None)


Originally posted by fivef with karma: 2756 on 2015-05-28

This answer was ACCEPTED on the original site

Post score: 3

from moveit_msgs.msg import RobotState, Constraints, OrientationConstraint is import line