Controlling a real robot with MoveIt
Hi!
I try to control a UR3 with MoveIt. If i set values for every joint or set a pose as a goal everything works great. But i try to move the tool of the robot to a coordinate (x,y,z + orientation) MoveIt calculates every time a new movement. Sometimes MoveIt don't find a solution, sometimes everything is great and sometimes the robot does some very senseless movement (but reaches to goal). For example: the robot just has to move one joint but MoveIt calculates a movement with 2 rotations on the base and every joint....
Is is maybe possible to simple up the movement or to save a movement? Thanks!
my code:
import sys
import copy
import rospy
import moveit_commander
import moveit_msgs.msg
import geometry_msgs.msg
moveit_commander.roscpp_initialize(sys.argv)
rospy.init_node('move_group_python_interface_tutorial', anonymous=True)
robot = moveit_commander.RobotCommander()
scene = moveit_commander.PlanningSceneInterface()
group = moveit_commander.MoveGroupCommander("arm")
display_trajectory_publisher = rospy.Publisher('/move_group/display_planned_path', moveit_msgs.msg.DisplayTrajectory, queue_size=1)
pose_target = geometry_msgs.msg.Pose()
pose_target.orientation.w = 1.0
pose_target.position.x = 0.96
pose_target.position.y = 0
pose_target.position.z = 1.18
group.set_pose_target(pose_target)
plan1 = group.plan()
rospy.sleep(5)
moveit_commander.roscpp_shutdown()
Have you tried setting all four elements of the orientation quaternion as well as just w? It's possible you have uninitialised values.
You also seem quite close to the edge of the working volume of a UR3, so I wouldn't be surprised if some orientation had no solution, and complex moves are required to reach others.