Setting Cartesian Positions

The Armer interface contains a ROS action server which listens for requests to set a Cartesian position.

The user can use a ROS action client to set the Cartesian position of the end effector.

Via Python

Requests to the ROS action server can be made by creating a ROS action client in Python. This client is used to send requests to the action server.

This example shows a request to the action server to move the arm so the end effector will be located at 0.300 meters in the x direction, 0.200 meters in the y direction and 0.290 in the z direction with a orientation of -1.00 in the x axis in the world frame.

import rospy
import actionlib
from armer_msgs.msg import MoveToPoseAction, MoveToPoseGoal
from geometry_msgs.msg import PoseStamped
import rospy

rospy.init_node('armer_example', disable_signals=True)
pose_cli = actionlib.SimpleActionClient('/arm/cartesian/pose', MoveToPoseAction)
pose_cli.wait_for_server()

target = PoseStamped()
target.pose.position.x = 0.300
target.pose.position.y = 0.200
target.pose.position.z = 0.290
target.pose.orientation.x = -1.00
target.pose.orientation.y =  0.00
target.pose.orientation.z =  0.00
target.pose.orientation.w =  0.00

goal = MoveToPoseGoal()
goal.pose_stamped=target
pose_cli.send_goal(goal)
pose_cli.wait_for_result()

The frame of the cartesian pose can be set via target.header.frame_id. If it is not set, it defaults to world.