Using universal_robot pkg and moveIt to control real UR5 robot.UR5 can move but can't move to the desired pose.It saied "time exceeded and current robot state not at goal, last point required"
When I use Universal_robot pkg and moveIt to control real UR5. The UR5 can't move to the desired pose.It stopped at a pose which is belong to the trajectory.My steps of operation are as follows
1."roslaunch urbringup urbringup.launch robot_ip:=192.168.1.160"which appears the connection is correct."The action server for this driver has been started"
2.Launch my moveit config file"roslaunch ur5moveitconfigmyself movegroup.launch".The config file is generated by moveitsetupassistant.and I add controller.yaml and ur5moveitcontroller_manager.launch.xml
3."rosrun rviz rviz"
4."rosrun lenode moveitikdemo.py" The file moveitik_demo.py is shown below.
After I run the moceitikdemo.py. The UR5 begins to move toward the desired pose.But it came to a sudden stop in the journey .and can't attach to the desired pose. In the first terminal(launching the ur_bringup.launch),it appead that
"[WARN] [WallTime: 1482755354.085866] Trajectory time exceeded and current robot state not at goal, last point required [WARN] [WallTime: 1482755354.086135] Current trajectory time: 1.92857694626, last point time: 1.913815417 [WARN] [WallTime: 1482755354.086456] Desired: [1.5887987717921845, -0.0001816342668607831, 0.0009067557118833066, -0.0009527113572694361, -0.0007133560068905353, -4.268342442810536e-05] actual: [1.6035473346710205, -0.6335380713092249, 0.2663407325744629, -0.233499828969137, -0.04164582887758428, -0.24181014696230108] velocity: [-0.003962783608585596, 0.1539221853017807, -0.06261198222637177, 0.06792659312486649, 0.009731191210448742, 0.060160811990499496] [2016-12-26 20:29:15.983806] Out: Braking"
Maybe the reason is the time of the trajectory is limited. and I tried many times with the same peogram (the desired pose is different).The trajectory time is no more than 3 seconds. But I don't konw how to modify the limit of trajectory time.
The moveitikdemo.py is as follows
import rospy, sys import moveitcommander from moveitmsgs.msg import RobotTrajectory from trajectory_msgs.msg import JointTrajectoryPoint
from geometrymsgs.msg import PoseStamped, Pose from tf.transformations import eulerfromquaternion, quaternionfrom_euler
class MoveItDemo:
def __init__(self):
# Initialize the move_group API
moveit_commander.roscpp_initialize(sys.argv)
rospy.init_node('moveit_demo')
# Initialize the move group for the right arm
right_arm = moveit_commander.MoveGroupCommander('right_arm')
# Get the name of the end-effector link
end_effector_link = right_arm.get_end_effector_link()
# Set the reference frame for pose targets
reference_frame = 'desk '
# Set the right arm reference frame accordingly
right_arm.set_pose_reference_frame(reference_frame)
# Allow replanning to increase the odds of a solution
right_arm.allow_replanning(True)
# Allow some leeway in position (meters) and orientation (radians)
right_arm.set_goal_position_tolerance(0.01)
right_arm.set_goal_orientation_tolerance(0.05)
# Start the arm in the "resting" pose stored in the SRDF file
right_arm.set_named_target('pose_2')
right_arm.go()
rospy.sleep(2)
target_pose = PoseStamped()
target_pose.header.frame_id = reference_frame
target_pose.header.stamp = rospy.Time.now()
target_pose.pose.position.x = 0.5
target_pose.pose.position.y = -0.5
target_pose.pose.position.z = 0.500
target_pose.pose.orientation.x = 0.0
target_pose.pose.orientation.y = 0.0
target_pose.pose.orientation.z = 0.0
target_pose.pose.orientation.w = -1.0
# Set the start state to the current state
right_arm.set_start_state_to_current_state()
# Set the goal pose of the end effector to the stored pose
right_arm.set_pose_target(target_pose, end_effector_link)
# Plan the trajectory to the goal
traj = right_arm.plan()
# Execute the planned trajectory
right_arm.execute(traj)
# Pause for a second
rospy.sleep(100)
# Exit MoveIt
moveit_commander.os._exit(0)
if name == "main": MoveItDemo()
enter code here
Asked by Lileping on 2016-12-27 02:20:40 UTC
Comments
Do you have a maximal speed set in the teach pendant?
Asked by NEngelhard on 2016-12-27 05:12:42 UTC
Yes, the teach pendant had a maximal speed limit.But when I use ur_bringup.launch,The teaching box does not work well.
Asked by Lileping on 2017-01-05 21:43:01 UTC