Skip to content

Commit

Permalink
Example of constrained orientation planning
Browse files Browse the repository at this point in the history
  • Loading branch information
rhaschke committed May 15, 2024
1 parent edea20b commit af7d60d
Showing 1 changed file with 62 additions and 0 deletions.
62 changes: 62 additions & 0 deletions demo/scripts/constrained.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
#! /usr/bin/env python
# -*- coding: utf-8 -*-

from std_msgs.msg import Header
from geometry_msgs.msg import Vector3Stamped, Vector3, Pose
from moveit_msgs.msg import CollisionObject, Constraints, OrientationConstraint
from shape_msgs.msg import SolidPrimitive
from moveit.task_constructor import core, stages
import time

from py_binding_tools import roscpp_init

roscpp_init("mtc_tutorial")

group = "panda_arm"
planner = core.PipelinePlanner()

task = core.Task()
task.add(stages.CurrentState("current state"))

co = CollisionObject()
co.header.frame_id = "world"
co.id = "obstacle"
sphere = SolidPrimitive()
sphere.type = sphere.SPHERE
sphere.dimensions.insert(sphere.SPHERE_RADIUS, 0.1)

pose = Pose()
pose.position.x = 0.3
pose.position.y = 0.2
pose.position.z = 0.5
pose.orientation.w = 1.0
co.primitives.append(sphere)
co.primitive_poses.append(pose)
co.operation = co.ADD

mps = stages.ModifyPlanningScene("modify planning scene")
mps.addObject(co)
task.add(mps)

move = stages.MoveRelative("y +0.4", planner)
move.group = group
header = Header(frame_id="world")
move.setDirection(Vector3Stamped(header=header, vector=Vector3(0, 0.4, 0)))

constraints = Constraints()
oc = OrientationConstraint()
oc.header.frame_id = "world"
oc.link_name = "panda_hand"
oc.orientation.x = 1.0
oc.absolute_x_axis_tolerance = 0.01
oc.absolute_y_axis_tolerance = 0.01
oc.absolute_z_axis_tolerance = 0.01
oc.weight = 1.0
constraints.orientation_constraints.append(oc)
move.path_constraints = constraints

task.add(move)

if task.plan():
task.publish(task.solutions[0])
time.sleep(100)

0 comments on commit af7d60d

Please sign in to comment.