MATLAB - 选择机械臂路径规划、轨迹规划方式(上)

简介: MATLAB - 选择机械臂路径规划、轨迹规划方式

系列文章目录

 


前言

本示例概述了机器人系统工具箱™中可用的轨迹类型。在机械手运动、规划和控制应用中,必须为机器人选择轨迹。本示例有三个主要部分。第一部分展示了机械手使用的轨迹类型,第二部分演示了生成轨迹的功能,最后一部分则展示了更多轨迹规划工具。


 

一、机械手的轨迹类型

在机械手中使用轨迹时,目标是在某些约束条件下提供可行的结果。例如,您通常希望轨迹具有平滑和连续的导数,如不需要瞬时速度或加速度的轨迹。轨迹还可能受位置、速度或加速度约束。在关节空间和任务空间中使用轨迹一般有两种方法。

1.1 关节空间轨迹

关节空间轨迹通常包含一组通过平滑运动连接的多个机器人配置的航点。本示例使用梯形速度曲线生成轨迹,每个关节逐渐加速到最大速度,并在接近下一个航点时减速。更多信息,请参阅梯形速度曲线轨迹。

为 Franka Emika Panda™ 机器人生成连接航点的梯形速度曲线轨迹。首先,定义轨迹的时间矢量并加载机器人模型。

tpts = 0:4;
sampleRate = 20;
tvec = tpts(1):1/sampleRate:tpts(end);
numSamples = length(tvec);
robot = loadrobot("frankaEmikaPanda",DataFormat="column");

定义关节空间轨迹。对于该轨迹,航点是模型的原点配置和两个随机配置。

rng default
frankaWaypoints = [robot.homeConfiguration robot.randomConfiguration robot.randomConfiguration];
frankaTimepoints = linspace(tvec(1),tvec(end),3);
[q,qd] = trapveltraj(frankaWaypoints,numSamples);

通过迭代生成的轨迹点 q,可视化机器人执行轨迹。

figure
set(gcf,"Visible","on");
rc = rateControl(sampleRate);
for i = 1:numSamples
    show(robot,q(:,i),FastUpdate=true,PreservePlot=false);
    waitfor(rc);
end

要检查不同的关节位置和速度,请绘制所有维度与时间的对比图。使用 helperPlotJointSpaceTraj 辅助函数绘制关节空间轨迹及其航点。

helperPlotJointSpaceTraj("Joint-Space Trajectory and Waypoints", ...
    tvec,q,qd,frankaWaypoints,frankaTimepoints);

1.2 任务空间轨迹

任务空间轨迹包含代表三维空间中末端执行器运动的航点。生成最小抖动轨迹来连接自由空间中的航点。该轨迹轮廓的目的是创建一个平滑的轨迹,尽量减少生涩的运动。更多信息,请参阅 "最小抖动轨迹"。然后使用逆运动学生成弗兰卡-艾米卡熊猫机器人的关节配置。

首先,创建一组航点,然后使用 minjerkpolytraj 创建最小抖动轨迹。

frankaSpaceWaypoints = [0.5 0.25 0.25; 0.75 0 0.35; 0.5 -0.25 0.25; 0.5 0.25 0.25]';
frankaTimepoints = linspace(tvec(1),tvec(end),4);
[pos,vel] = minjerkpolytraj(frankaSpaceWaypoints,frankaTimepoints,numSamples);

使用 inverseKinematics(逆运动学)函数创建一个逆运动学求解器,并求解在轨迹上达到所需末端执行器位置的配置。

rng(0) % Seed the RNG so the inverse kinematics solution is consistent
ik = inverseKinematics(RigidBodyTree=robot);
ik.SolverParameters.AllowRandomRestart = false;
q = zeros(9,numSamples);
weights = [0.2 0.2 0.2 1 1 1]; % Prioritize position over orientation
initialGuess = [0, 0, 0, -pi/2, 0, 0, 0, 0.01, 0.01]'; % Choose an initial guess within the robot joint limits
for i = 1:size(pos,2)
    targetPose = trvec2tform(pos(:,i)')*eul2tform([0, 0, pi]);
    q(:,i) = ik("panda_hand",targetPose,weights,initialGuess);
    initialGuess = q(:,i); % Use the last result as the next initial guess
end

使用机器人模型展示结果。

figure
set(gcf,"Visible","on")
show(robot);

rc = rateControl(sampleRate);
for i = 1:numSamples
    show(robot, q(:,i),FastUpdate=true,PreservePlot=false);
    waitfor(rc);
end

要检查不同的关节位置和速度,可以通过绘制所有维度与时间的对比图来直观地显示这些结果。使用 helperPlotTaskSpaceTraj 辅助函数绘制任务空间轨迹及其航点。

helperPlotTaskSpaceTraj("Task-Space Trajectory and Waypoints", ...
    tvec,pos,vel,frankaSpaceWaypoints,frankaTimepoints);

二、比较各种轨迹剖面图

使用不同工具生成轨迹,然后使用任务空间和关节空间可视化对它们进行比较。

wpts = [0 45 15 90 45; 90 45 -45 15 90];
tpts = 0:(size(wpts,2)-1);
% Derived quantities.
sampleRate = 20;
tvec = tpts(1):1/sampleRate:tpts(end);
numSamples = length(tvec);

2.1 最小运行轨迹

minjerkpolytraj 函数使用平滑、连续的运动来连接航点。在默认边界条件下,轨迹的初速度和最终速度均为零,但以连续的速度通过所有中间航点。

最小力矩轨迹之所以被命名为最小力矩轨迹,是因为它能最大限度地减小力矩(即运动的三次时间导数),从而产生平滑的轮廓,便于机械系统使用。基本的最小颠簸轨迹是一种在指定时间点到达航点的解析解。

[q,qd,~,~,~,~,tvec] = minjerkpolytraj(wpts,tpts,numSamples);
helperPlotTaskSpaceTraj("Minimum-Jerk Trajectory",tvec,q,qd,wpts,tpts);

MATLAB - 选择机械臂路径规划、轨迹规划方式(下)+https://developer.aliyun.com/article/1585256

目录
相关文章
|
2月前
|
数据可视化 机器人
MATLAB - 双连杆机械臂逆运动学的推导及应用
MATLAB - 双连杆机械臂逆运动学的推导及应用
31 1
|
2月前
|
机器学习/深度学习 数据可视化 Ubuntu
MATLAB - Gazebo 联合仿真 —— 使用 UR10 机械臂检测和采摘水果
MATLAB - Gazebo 联合仿真 —— 使用 UR10 机械臂检测和采摘水果
88 2
|
2月前
MATLAB - 选择机械臂路径规划、轨迹规划方式(下)
MATLAB - 选择机械臂路径规划、轨迹规划方式
89 0
|
2月前
|
数据可视化 安全 机器人
MATLAB - 使用运动学 DH 参数构建机械臂
MATLAB - 使用运动学 DH 参数构建机械臂
44 0
|
2月前
|
机器人
MATLAB - 计算机械臂关节扭矩以平衡末端力和力矩
MATLAB - 计算机械臂关节扭矩以平衡末端力和力矩
33 0
|
2月前
|
数据可视化 机器人 计算机视觉
MATLAB - 机械臂逆运动学进行轨迹控制建模
MATLAB - 机械臂逆运动学进行轨迹控制建模
58 0
|
2月前
|
机器学习/深度学习 算法 数据可视化
基于强化学习的路径规划matlab仿真,对比QLearning和SARSA
本仿真展示了使用MATLAB 2022a实现的Q-Learning路径规划算法。通过与环境交互,智能体学习从起点至终点的最佳路径。Q-Learning采用off-policy学习方式,直接学习最优策略;而SARSA为on-policy方法,依据当前策略选择动作。仿真结果显示智能体逐步优化路径并减少步数,最终实现高效导航。核心代码片段实现了Q表更新、奖励计算及路径可视化等功能。
62 0
|
4月前
|
算法 JavaScript 决策智能
基于禁忌搜索算法的TSP路径规划matlab仿真
**摘要:** 使用禁忌搜索算法解决旅行商问题(TSP),在MATLAB2022a中实现路径规划,显示优化曲线与路线图。TSP寻找最短城市访问路径,算法通过避免局部最优,利用禁忌列表不断调整顺序。关键步骤包括初始路径选择、邻域搜索、解评估、选择及禁忌列表更新。过程示意图展示搜索效果。
|
5月前
|
机器学习/深度学习 算法 安全
m基于Qlearning强化学习工具箱的网格地图路径规划和避障matlab仿真
MATLAB 2022a中实现了Q-Learning算法的仿真,展示了一种在动态环境中进行路线规划和避障的策略。Q-Learning是强化学习的无模型方法,通过学习动作价值函数Q(s,a)来优化智能体的行为。在路线问题中,状态表示智能体位置,动作包括移动方向。通过正负奖励机制,智能体学会避开障碍物并趋向目标。MATLAB代码创建了Q表,设置了学习率和ε-贪心策略,并训练智能体直至达到特定平均奖励阈值。
92 15
|
12月前
|
机器学习/深度学习 算法 自动驾驶
基于Qlearning强化学习的路径规划算法matlab仿真
基于Qlearning强化学习的路径规划算法matlab仿真

热门文章

最新文章

下一篇
无影云桌面