Moveit planning methods failing issue
I am attempting to use moveit and a combined transform tree of the ur5 and a turtlebot3 to get the ur5 to point at the turtlebot. I am successfully getting a pose from a transform-listener and simply trying to "go" to the provided pose.
It should be said I manually move the turtlebot from it's default location when gazebo has finished loading. Besides that, I just wait for my transform-listener to provide a pose and my ur5 to point at the turtlebot.
My problem is the system keeps generating errors with the following message:
************************* Transform Data:
[INFO] [1552288526.050124, 50.519000]: position:
x: 2.58791854443
y: -0.00185791163182
z: -1.08378970973
orientation:
x: -0.00443260913598
y: -0.70704209307
z: -0.707119016242
w: 0.00738427190731
[ INFO] [1552288526.275924743, 50.537000000]: Planning request received for MoveGroup action. Forwarding to planning pipeline.
[ INFO] [1552288526.276778939, 50.537000000]: Planner configuration 'ur5_bot[BiTRRT]' will use planner 'geometric::BiTRRT'. Additional configuration parameters will be set when the planner is constructed.
[ INFO] [1552288526.276895269, 50.537000000]: ur5_bot[BiTRRT]: No optimization objective specified. Defaulting to mechanical work minimization.
[ INFO] [1552288531.283686986, 50.838000000]: No solution found after 5.006749 seconds
[ INFO] [1552288531.326009432, 50.840000000]: Unable to solve the planning problem
[ WARN] [1552288531.328551294, 50.840000000]: Fail: ABORTED: No motion plan found. No execution attempted.
[ INFO] [1552288531.331262062, 50.840000000]: Execution request received
[ INFO] [1552288531.399526480, 50.845000000]: Completed trajectory execution with status SUCCEEDED ...
[ INFO] [1552288531.399637453, 50.845000000]: Execution completed: SUCCEEDED
[ INFO] [1552288531.400561743, 50.845000000]: Combined planning and execution request received for MoveGroup action. Forwarding to planning and execution pipeline.
[ INFO] [1552288531.400684103, 50.845000000]: Planning attempt 1 of at most 1
[ INFO] [1552288531.401456830, 50.845000000]: Planner configuration 'ur5_bot[BiTRRT]' will use planner 'geometric::BiTRRT'. Additional configuration parameters will be set when the planner is constructed.
[ INFO] [1552288531.401593129, 50.845000000]: ur5_bot[BiTRRT]: No optimization objective specified. Defaulting to mechanical work minimization.
[ERROR] [1552288536.402383780, 51.163000000]: ur5_bot[BiTRRT]: Goal tree has no valid states!
[ INFO] [1552288536.402458409, 51.163000000]: No solution found after 5.000813 seconds
[ INFO] [1552288536.524856189, 51.170000000]: Unable to solve the planning problem
[ INFO] [1552288536.527825361, 51.171000000]: ABORTED: No motion plan found. No execution attempted.
So, I have tried changing the planning method. I have literally gone down the list as found in RVIZ, shown below:
But, I keep getting the same (or similar) message and my ur5 fails to indicate the new location of the turtlebot. Below is a code snippet showing how I'm changing the motion plan:
class TrackBot():
def __init__(self):
rospy.loginfo("======== init responding")
# declarations
self.robot = moveit_commander.RobotCommander()
self.scene = moveit_commander.PlanningSceneInterface()
self.manipulator = moveit_commander.MoveGroupCommander('ur5_bot')
# self.manipulator.set_planner_id("SBLkConfigDefault")
# self.manipulator.set_planner_id("OMPL")
# self.manipulator.set_planner_id("BFMT")
# self.manipulator.set_planner_id("BKPIECE")
# self.manipulator.set_planner_id("BiEST")
self.manipulator.set_planner_id("BiTRRT")
.
.
.
.
.
I need help please. Not sure how to resolve this.
UPDATE (adding some code):
def transform(self):
# -----------------------------------------------
tf_buffer = tf2_ros.Buffer()
self.tf_listener = tf2_ros.TransformListener(tf_buffer)
rospy.sleep(1) # wait for the buffer to populate otherwise the listener will error
try:
if tf_buffer.can_transform('wrist_1_link', 'base_footprint', rospy.Time()) :
transform_stamped = tf_buffer.lookup_transform('wrist_1_link', 'base_footprint', rospy.Time())
print("*" * 25 + " \nTransform Data: ")
pose = Pose()
pose.position = transform_stamped.transform.translation
pose.orientation = transform_stamped.transform.rotation
self.move_to_pose(pose)
rospy.loginfo(transform_stamped)
print("*" * 40)
except (tf2_ros.LookupException, tf2_ros.ConnectivityException, tf2_ros.ExtrapolationException) as e:
rospy.logerr(e)
rospy.logerr("*** UR5 repositioning failed ***")
# -----------------------------------------------
def move_to_pose(self, pose):
# rospy.loginfo(pose)
self.manipulator.set_goal_tolerance(0.5)
self.manipulator.set_pose_target(pose)
plan = self.manipulator.plan()
self.manipulator.execute(plan) # display the trajectory in rviz. Follow the already computed plan
self.manipulator.go(wait=True) # execute in real robot
self.manipulator.stop() # ensure there is no residual movement
self.manipulator.clear_pose_targets() # clear targets after planning with poses
Asked by sisko on 2019-03-11 02:38:13 UTC
Answers
[ INFO] [1552288531.401593129, 50.845000000]: ur5_bot[BiTRRT]: No optimization objective specified. Defaulting to mechanical work minimization. [ERROR] [1552288536.402383780, 51.163000000]: ur5_bot[BiTRRT]: Goal tree has no valid states!
I've never seen this error message, but it sounds like the goal is not set correctly. I'd like to see the part of your code where you set the goal pose and calculate the motion plan. Can you add it as an edit to your post?
Asked by fvd on 2019-03-13 03:04:54 UTC
Comments
Hi. Sorry for the deal in responding. I added code as you requested. All I'm doing in attempting to move to a pose. As for calculating the motion plan, I have no idea how to do that as I am a beginner. I wouldn't mind your input on that issue.
Asked by sisko on 2019-03-20 12:42:33 UTC
Comments