|
@@ -36,7 +36,7 @@ class MoveIt_Control:
|
|
|
self.home_pose=[]
|
|
|
self.hf_num=0#焊缝计数 从0开始
|
|
|
self.hf_fail=[]
|
|
|
- # Init ros config
|
|
|
+ # Init ros configs
|
|
|
moveit_commander.roscpp_initialize(sys.argv)
|
|
|
self.robot = moveit_commander.RobotCommander()
|
|
|
|
|
@@ -141,6 +141,7 @@ class MoveIt_Control:
|
|
|
#self.hf_num=self.hf_num+1#焊缝计数
|
|
|
return waypoints,trajectory,trajectory_with_type
|
|
|
|
|
|
+ #TODO retime_plan
|
|
|
def retime_plan(self,traj):
|
|
|
current_state = self.arm.get_current_state()
|
|
|
|
|
@@ -170,7 +171,7 @@ class MoveIt_Control:
|
|
|
return pose
|
|
|
|
|
|
#TODO move_p_path_constraints
|
|
|
- def create_path_constraints2(self,start_point,end_point,r):#创建路径约束
|
|
|
+ def create_path_constraints(self,start_point,end_point,r):#创建路径约束
|
|
|
#计算起点指向终点的向量
|
|
|
vector = np.array([end_point[0]- start_point[0], end_point[1]- start_point[1], end_point[2]- start_point[2]])
|
|
|
height = np.linalg.norm(vector)+0.16 #高度延长16cm
|
|
@@ -222,13 +223,13 @@ class MoveIt_Control:
|
|
|
#起点位置设置为规划组最后一个点
|
|
|
state = self.arm.get_current_state()
|
|
|
state.joint_state.position = trajectory[-1].joint_trajectory.points[-1].positions
|
|
|
- path_constraints = self.create_path_constraints2(points[-1],point,rrr)#将当前的点和输入的点(焊缝的起始点)做圆柱轨迹约束
|
|
|
+ path_constraints = self.create_path_constraints(points[-1],point,rrr)#将当前的点和输入的点(焊缝的起始点)做圆柱轨迹约束
|
|
|
else:
|
|
|
#刚开始规划 起点位置设定为当前状态 按理来说是home点
|
|
|
self.go_home()
|
|
|
self.home_pose=self.get_now_pose()
|
|
|
state = self.arm.get_current_state()
|
|
|
- path_constraints = self.create_path_constraints2(self.home_pose,point,rrr)#将当前的点和输入的点(焊缝的起始点)做圆柱轨迹约束
|
|
|
+ path_constraints = self.create_path_constraints(self.home_pose,point,rrr)#将当前的点和输入的点(焊缝的起始点)做圆柱轨迹约束
|
|
|
|
|
|
self.arm.set_path_constraints(path_constraints)#设定约束
|
|
|
self.arm.set_pose_target(point, self.end_effector_link)#设定目标点为传入的点
|
|
@@ -260,9 +261,9 @@ class MoveIt_Control:
|
|
|
rrr=rrr+0.2#每次增加20厘米半径
|
|
|
rospy.loginfo("R值:{}".format(rrr))
|
|
|
if trajectory:
|
|
|
- path_constraints = self.create_path_constraints2(points[-1],point,rrr)#将最后一个点和输入的点(焊缝的起始点)做圆柱轨迹约束
|
|
|
+ path_constraints = self.create_path_constraints(points[-1],point,rrr)#将最后一个点和输入的点(焊缝的起始点)做圆柱轨迹约束
|
|
|
else:
|
|
|
- path_constraints = self.create_path_constraints2(self.home_pose,point,rrr)#将最后一个点和起点(焊缝的起始点)做圆柱轨迹约束
|
|
|
+ path_constraints = self.create_path_constraints(self.home_pose,point,rrr)#将最后一个点和起点(焊缝的起始点)做圆柱轨迹约束
|
|
|
self.arm.set_path_constraints(path_constraints)#设定约束
|
|
|
if(i>=(b-2)):
|
|
|
rospy.loginfo("所有移动规划尝试失败 取消路径约束")
|
|
@@ -289,6 +290,7 @@ class MoveIt_Control:
|
|
|
rospy.loginfo("go_home end")
|
|
|
# rospy.sleep(1)
|
|
|
|
|
|
+ #TODO go_ready
|
|
|
def go_ready(self,a=1,v=1):
|
|
|
rospy.loginfo("go_ready start")
|
|
|
self.arm.set_max_acceleration_scaling_factor(a)
|
|
@@ -339,7 +341,7 @@ class MoveIt_Control:
|
|
|
rospy.loginfo("*******************")
|
|
|
|
|
|
#向上移动末端执行器
|
|
|
- if i<len(all_data)-1:
|
|
|
+ if i<len(all_data):
|
|
|
up_value=0.1
|
|
|
point_up=[point22[0], point22[1], point22[2]-up_value, point22[3], point22[4],point22[5],point22[6]]
|
|
|
way_points, trajectory, trajectory_with_type = self.plan_cartesian_path_LLL(point22,point_up,way_points,trajectory,trajectory_with_type,v=speed_v)
|