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