💥1 概述
针对目前空间机械臂避障路径规划算法计算量大难以达到在线实时规划的缺点,对空间机械臂的在线实时避障路径规划问题进行了研究和探讨。采用规则体的包络对障碍物进行建模,并借助C空间法的思想,把障碍物和机械臂映射到两个相互垂直的平面内,将机械臂工作空间的三维问题转化为二维问题,并结合二岔树逆向寻优的方法进行路径搜索,从而大大减少了计算量,达到了在线实时规划的要求。最后在空间机器人仿真系统上对其进行了仿真研究,验证了该方法的可行性。
本代码目的:对放置在传送带中间的UR10e机械手进行路径规划。
增加了一个2D机械手的路径规划来挑选和放置物体。
📚2 运行结果
🎉3 参考文献
[1]贾庆轩,陈钢,孙汉旭,郑双奇.基于A~*算法的空间机械臂避障路径规划[J].机械工程学报,2010,46(13):109-115.
👨💻4 Matlab代码
主函数部分代码:
r0 = [0,0]; rf = [3,2]; vc = [2,3]; [x1,y1,vx1,vy1,ax1,ay1,fx1,fy1] = start_to_const(0.2,r0,vc); [x2,y2,vx2,vy2,ax2,ay2,fx2,fy2] = const(0.2,0.8,fx1,fy1,vc); [x3,y3,vx3,vy3,ax3,ay3] = const_to_stop(0.8,1,fx2,fy2,vc,rf); t1 = linspace(0,0.2,500); t2 = linspace(0.2,0.8,500); t3 = linspace(0.8,1,500); figure(1); subplot(2,1,1) plot(t1,x1,t2,x2,t3,x3); xlabel("Time"); ylabel("X"); title("Distance x vs Time"); subplot(2,1,2) plot(t1,y1,t2,y2,t3,y3); xlabel("Time"); ylabel("Y"); title("Distance y vs Time"); figure(2); subplot(2,1,1) plot(t1,vx1,t2,vx2,t3,vx3); xlabel("Time"); ylabel("vx"); title("Velocity x vs Time"); subplot(2,1,2) plot(t1,vy1,t2,vy2,t3,vy3); xlabel("Time"); ylabel("vy"); title("Velocity y vs Time"); figure(3); subplot(2,1,1) plot(t1,ax1,t2,ax2,t3,ax3); xlabel("Time"); ylabel("ax"); title("Acceleration x vs Time"); subplot(2,1,2) plot(t1,ay1,t2,ay2,t3,ay3); xlabel("Time"); ylabel("ay"); title("Acceleration y vs Time");