资源简介
本资源提供自己创作的机器人焊接轨迹规划matlab仿真相关代码,包括直线焊接、圆弧点焊、空间移动等功能,提供10余个m文件,可供直接建立功能调用使用
代码片段和文件信息
function [ p ] = calcCircleMotGlobalParameter( pmArcWelding )
%UNtitleD2 Summary of this function goes here
% Detailed explanation goes here
quatFstPoint = angle2quat(mArcWelding.axisposPointS(4)mArcWelding.axisposPointS(5)mArcWelding.axisposPointS(6));
quatMidPoint = angle2quat(mArcWelding.axisposPointM(4)mArcWelding.axisposPointM(5)mArcWelding.axisposPointM(6));
quatEndPoint = angle2quat(mArcWelding.axisposPointE(4)mArcWelding.axisposPointE(5)mArcWelding.axisposPointE(6));
%% 这里好像有问题,当画整圆时候就变成不画了
if abs(abs(mArcWelding.lrArcRotatedDegreeSigned) - 2*pi) < 0.0001
tmpDot = 0;
angle1st = 0;
angle2nd = 0;
circleOrientAngle = 0;
else
%% 计算前两个姿态间夹角
tmpDot = quatFstPoint(1)*quatMidPoint(1) + quatFstPoint(2)*quatMidPoint(2) + quatFstPoint(3)*quatMidPoint(3) + quatFstPoint(4)*quatMidPoint(4);
if tmpDot > 1
angle1st = 0;
elseif tmpDot < -1
angle1st = 360;
else
angle1st = 2 * acos(tmpDot) * 180/pi;
end
if abs(angle1st) < 0.0001
angle1st = 0;
end
%% 计算后两个姿态间的夹角
tmpDot = quatEndPoint(1)*quatMidPoint(1) + quatEndPoint(2)*quatMidPoint(2) + quatEndPoint(3)*quatMidPoint(3) + quatEndPoint(4)*quatMidPoint(4);
if tmpDot >= 1
angle2nd = 0;
else if tmpDot <= -1
angle2nd = 360;
else
angle2nd = 2*acos(tmpDot) *180/pi;
end
end
if abs(angle2nd) < 0.0001
angle2nd = 0;
end
circleOrientAngle = angle1st + angle2nd;
%% 将姿态角度赋给P变量
p.arrCirclePhyPara(15) = circleOrientAngle;
%% 分发加减速规划算法
p = IssueAccDecTime(pmArcWelding);
end
end
%% 速度加速度分发算法
function [ p ] = IssueAccDecTime( pmArcWelding )
if ~mArcWelding.bWelding
p= AccDecNormalTime(pmArcWelding);
else
switch mArcWelding.nWeldingMode
case 0
p = AccDecArcWeldingModeTime0(pmArcWelding);
case 1
p = AccDecArcWeldingModeTime1(pmArcWelding);
case 2
p = AccDecArcWeldingModeTime2(pmArcWelding);
case 3
p = AccDecArcWeldingModeTime3(pmArcWelding);
case 4
p = AccDecArcWeldingModeTime4(pmArcWelding);
otherwise
p = AccDecArcWeldingModeTime0(pmArcWelding);
end
end
end
%% 正常状态下
function [ p ] = AccDecNormalTime( pmArcWelding )
%% 2.1先计算圆弧位置运动所需时间
circleVConstPos = p.lrVelIn;
circleAccPos = p.lrAccIn;
circleDecPos = p.lrDecIn;
posTimeSpan = calculateNormalMoveTime(p.arrCirclePhyPara(5)circleAccPoscircleVConstPoscircleDecPos);
%% 2.2再计算直线姿态运动所需时间
circleVConstOrient = p.lrVelOri;
circleAccOrient = p.lrAccOri;
circleDecOrient = p.lrDecOri;
orientTimeSpan = calculateNormalMoveTime(p.arrCirclePhyPara(15)circleAccOrientcircleVConstOrientcircleDecOrient);
%% 2.3统筹位置和姿态运动各段时间
if (sum(posTimeSpan) >= sum(orientTimeSpan))
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 9687 2018-10-16 15:35 Arc\calcCircleMotGlobalParameter.m
文件 5683 2018-10-15 17:11 Arc\circleOrientInterp.m
文件 2269 2018-10-16 14:32 Arc\circlePosInterp.m
文件 13260 2018-10-16 08:30 Arc\GetSixAnglesIK.m
文件 11067 2018-10-23 15:52 Arc\InvArc.m
文件 2838 2018-10-16 14:33 Arc\IssueCalculateNextPos.m
文件 1217 2018-09-07 10:58 Arc\IssueVel.m
文件 436 2018-10-16 14:40 Arc\MoveArc.m
文件 4872 2018-10-22 16:54 Arc\m_CalcCirCenterRadius.m
文件 322 2018-10-22 17:43 Arc\test.m
文件 95 2018-10-22 17:38 Arc\try.m
目录 0 2019-08-27 20:03 Arc
----------- --------- ---------- ----- ----
51746 12
相关资源
- matlab 机器人避障程序
- matlab开发-基于遗传算法的机器人运动
- 机器人 matlab 程序
- matlab机器人工具箱使用手册.pdf
- Robotics Modelling Planning and Control
- 空间二连杆机器人的动力学建模及其
- 基于智能优化的机器人路径规划matl
-
机器人避障含simuli
nk仿真 - 自主移动机器人路径规划新方法含m
- 二自由度并联机器人的动力学建模与
- 六自由度涂胶机器人运动学仿真
- 机器人学导论课后习题MATLAB
- 多机器人路径规划-matlab
- 机器人学导论 课后习题参考
- 多机器人路径及避障规划——Matlab
- 基于蒙特卡洛法的模块化机器人工作
- 基于matlab的机器人最优路径规划仿真
- 六轴机器人逆运动的MATLAB程序
- 多种蚁群算法在机器人路径规划中的
- 机器人工具箱10.1
- 机器人控制系统的设计与MATLAB仿真刘
- 基于A-Star算法的机器人路径规划.rar
- 双足步行机器人仿真设计
- 移动机器人避障含CAD等仿真
- 基于MBD的六自由度协作机器人设计与
- 机器人控制系统设计与matlab仿真程序
- 机器人控制系统的设计与MATLAB仿真第
- 机器人控制系统的设计与MATLAB仿真
- matlab机器人工具箱10.3.1
- 机器人避障航路规划蚁群算法MATLAB仿
评论
共有 条评论