一、编程接口
提供C++、Python、GUI、命令行等接口
move_group节点
Python和C++接口示例
MoveIt关注更多的是plan工作,后面的execute需要控制器执行,MoveIt只是监控功能。
编程步骤
连接控制需要的规划组
左臂右臂
设置目标位姿
关节空间、笛卡尔空间
设置运动约束
可选,比如末端的水不能撒出来
使用MoveIt!规划一条到达目标的轨迹
修改轨迹
如果对plan不满意可以修改,比如速度等参数
二、关节空间运动
每个关节独立规划,不关注末端的笛卡尔轨迹
import rospy, sys
import moveit_commander
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('manipulator')
# 设置机械臂运动的允许误差值
arm.set_goal_joint_tolerance(0.001)
# 设置允许的最大速度和加速度
arm.set_max_acceleration_scaling_factor(0.5)
arm.set_max_velocity_scaling_factor(0.5)
# 控制机械臂先回到初始化位置
arm.set_named_target('home')
arm.go()
rospy.sleep(1)