ros平台下python腳本控制機械臂運動


 

在使用moveit_setup_assistant生成機械臂的配置文件后可以使用roslaunch demo.launch啟動demo,在rviz中可以通過拖動機械臂進行運動學正逆解/軌跡規划等仿真運動.而通過python腳本可以更加方便靈活的控制機械臂的運動.代碼及運行效果圖如下.

#!/usr/bin/env python # -*- coding: utf-8 -*- import rospy, sys import moveit_commander from control_msgs.msg import GripperCommand class MoveItFkDemo: def __init__(self): # 初始化move_group的API moveit_commander.roscpp_initialize(sys.argv) # 初始化ROS節點 rospy.init_node('moveit_fk_demo', anonymous=True) # 初始化需要使用move group控制的機械臂中的arm group arm = moveit_commander.MoveGroupCommander('arm') # 初始化需要使用move group控制的機械臂中的gripper group gripper = moveit_commander.MoveGroupCommander('gripper') # 設置機械臂和夾爪的允許誤差值 arm.set_goal_joint_tolerance(0.001) gripper.set_goal_joint_tolerance(0.001) # 控制機械臂先回到初始化位置 arm.set_named_target('arm_init_pose') arm.go() rospy.sleep(2) # 設置夾爪的目標位置,並控制夾爪運動 ''' gripper.set_joint_value_target([0.01]) gripper.go() rospy.sleep(1) ''' # 設置機械臂的目標位置,使用六軸的位置數據進行描述(單位:弧度) joint_positions = [1.5708,1.5708,1.5708,1.5708,1.5708,1.5708,1.5708] result=arm.set_joint_value_target(joint_positions) rospy.loginfo(str(result)) # 控制機械臂完成運動 arm.go() joint=arm.get_current_joint_values() print("final joint=",joint) pose=arm.get_current_pose('link7') print('pose=',pose) rospy.sleep(1) # 關閉並退出moveit moveit_commander.roscpp_shutdown() moveit_commander.os._exit(0) if __name__ == "__main__": try: MoveItFkDemo() except rospy.ROSInterruptException: pass 

歡迎光臨程序代寫小店https://item.taobao.com/item.htm?spm=a230r.1.14.59.255028c3ALNkZ0&id=586797758241&ns=1&abbucket=15#detail

可直接聯系客服QQ交代需求:953586085

歡迎點擊鏈接加入群聊【程序代寫-接單群】共同致富:https://jq.qq.com/?_wv=1027&k=5WxihsL 

群號:733065427

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM