6.使用ROS API开发机械臂¶
6.1.关节空间空间规划¶
#!/usr/bin/env python
import roslib
# roslib.load_manifest('actionlib_test')
import rospy
import actionlib
from gauss_msgs.msg import RobotMoveAction
from gauss_msgs.msg import RobotMoveGoal
from gauss_msgs.msg import RobotMoveResult
from gauss_commander.command_type import CommandType as MoveCommandType
if __name__ == '__main__':
rospy.init_node('robot_action_client')
client = actionlib.SimpleActionClient('/gauss/commander/robot_action', RobotMoveAction)
if not client.wait_for_server(rospy.Duration(5.0)):
exit
goal = RobotMoveGoal()
goal.cmd.cmd_type = MoveCommandType.JOINTS
goal.cmd.joints = [0,0,0,0,0,0]
client.send_goal(goal)
client.wait_for_result(rospy.Duration.from_sec(10.0))
result = client.get_result()
6.2.笛卡尔空间规划¶
#!/usr/bin/env python
import roslib
# roslib.load_manifest('actionlib_test')
import rospy
import actionlib
from gauss_msgs.msg import RobotMoveAction
from gauss_msgs.msg import RobotMoveGoal
from gauss_msgs.msg import RobotMoveResult
from gauss_commander.command_type import CommandType as MoveCommandType
if __name__ == '__main__':
rospy.init_node('robot_action_client')
client = actionlib.SimpleActionClient('/gauss/commander/robot_action', RobotMoveAction)
if not client.wait_for_server(rospy.Duration(5.0)):
exit
goal = RobotMoveGoal()
goal.cmd.cmd_type = MoveCommandType.POSE
goal.cmd.position.x = 0.3005
goal.cmd.position.y = 0.0004
goal.cmd.position.z = 0.3383
goal.cmd.rpy.roll = 0
goal.cmd.rpy.pitch = 0
goal.cmd.rpy.yaw = 0
client.send_goal(goal)
client.wait_for_result(rospy.Duration.from_sec(10.0))
result = client.get_result()