コード例 #1
0
def move_circ(pose_center,
              frame_id,
              start_angle,
              end_angle,
              radius,
              profile,
              rotate_only=False):
    client = actionlib.SimpleActionClient('cartesian_trajectory_action',
                                          CartesianControllerAction)
    rospy.logwarn("Waiting for ActionServer...")
    success = client.wait_for_server(rospy.Duration(2.0))
    if (not success):
        return (success, "ActionServer not available within timeout")

    goal = CartesianControllerGoal()
    goal.move_type = CartesianControllerGoal.CIRC
    goal.move_circ.pose_center = pose_center
    goal.move_circ.frame_id = frame_id
    goal.move_circ.rotate_only = rotate_only
    goal.move_circ.start_angle = start_angle
    goal.move_circ.end_angle = end_angle
    goal.move_circ.radius = radius
    goal.move_circ.profile = profile
    print goal

    client.send_goal(goal)
    print "goal sent"
    state = client.get_state()
    print state
    client.wait_for_result()
    print "result received"
    result = client.get_result()
    return (result.success, result.message)
コード例 #2
0
def move_circ(pose_center, frame_id, start_angle, end_angle, radius, profile):
    action_name = rospy.get_namespace()+'cartesian_trajectory_action'
    client = actionlib.SimpleActionClient(action_name, CartesianControllerAction)
    rospy.logwarn("Waiting for ActionServer: %s", action_name)
    success = client.wait_for_server(rospy.Duration(2.0))
    if(not success):
        return (success, "ActionServer not available within timeout")

    goal = CartesianControllerGoal()
    goal.move_type = CartesianControllerGoal.CIRC
    goal.move_circ.pose_center = pose_center
    goal.move_circ.frame_id = frame_id
    goal.move_circ.start_angle = start_angle
    goal.move_circ.end_angle = end_angle
    goal.move_circ.radius = radius
    goal.profile = profile
    # print goal

    client.send_goal(goal)
    print "goal sent"
    state = client.get_state()
    # print state
    client.wait_for_result()
    print "result received"
    result = client.get_result()
    return (result.success, result.message)
コード例 #3
0
def move_lin(pose_goal, frame_id, profile):
    action_name = rospy.get_namespace()+'cartesian_trajectory_action'
    client = actionlib.SimpleActionClient(action_name, CartesianControllerAction)
    rospy.logwarn("Waiting for ActionServer: %s", action_name)
    success = client.wait_for_server(rospy.Duration(2.0))
    if(not success):
        return (success, "ActionServer not available within timeout")

    goal = CartesianControllerGoal()
    goal.move_type = CartesianControllerGoal.LIN
    goal.move_lin.pose_goal = pose_goal
    goal.move_lin.frame_id = frame_id
    goal.profile = profile
    # print goal

    client.send_goal(goal)
    print("goal sent")
    state = client.get_state()
    # print state
    client.wait_for_result()
    print("result received")
    result = client.get_result()
    return (result.success, result.message)
コード例 #4
0
import actionlib

from cob_cartesian_controller.msg import CartesianControllerAction, CartesianControllerGoal
from cob_cartesian_controller.msg import Profile

if __name__ == '__main__':
    rospy.init_node('test_move_circ')
    action_name = rospy.get_namespace() + 'cartesian_trajectory_action'
    client = actionlib.SimpleActionClient(action_name,
                                          CartesianControllerAction)
    rospy.logwarn("Waiting for ActionServer: %s", action_name)
    client.wait_for_server()
    rospy.logwarn("...done")

    # Fill in the goal here
    goal = CartesianControllerGoal()

    goal.move_type = CartesianControllerGoal.CIRC
    goal.move_circ.pose_center.position.x = 0.0
    goal.move_circ.pose_center.position.y = 0.7
    goal.move_circ.pose_center.position.z = 1.0
    goal.move_circ.pose_center.orientation.x = 0.0
    goal.move_circ.pose_center.orientation.y = 0.0
    goal.move_circ.pose_center.orientation.z = 0.0
    goal.move_circ.pose_center.orientation.w = 1.0
    goal.move_circ.frame_id = 'world'

    goal.move_circ.start_angle = 0 * math.pi / 180.0
    goal.move_circ.end_angle = 90 * math.pi / 180.0
    goal.move_circ.radius = 0.3
コード例 #5
0
import rospy
import actionlib

from cob_cartesian_controller.msg import CartesianControllerAction, CartesianControllerGoal
from cob_cartesian_controller.msg import Profile

if __name__ == '__main__':
    rospy.init_node('test_move_lin')
    action_name = rospy.get_namespace()+'cartesian_trajectory_action'
    client = actionlib.SimpleActionClient(action_name, CartesianControllerAction)
    rospy.logwarn("Waiting for ActionServer: %s", action_name)
    client.wait_for_server()
    rospy.logwarn("...done")

    # Fill in the goal here
    goal = CartesianControllerGoal()

    goal.move_type = CartesianControllerGoal.LIN
    goal.move_lin.pose_goal.position.x = -0.9
    goal.move_lin.pose_goal.position.y = 0.0
    goal.move_lin.pose_goal.position.z = 0.0
    goal.move_lin.pose_goal.orientation.x = 0.0
    goal.move_lin.pose_goal.orientation.y = 0.0
    goal.move_lin.pose_goal.orientation.z = 0.0
    goal.move_lin.pose_goal.orientation.w = 1.0
    goal.move_lin.frame_id = 'world'

    goal.profile.vel = 0.2
    goal.profile.accl = 0.1
    goal.profile.profile_type = Profile.SINOID