Robotics System Toolbox中的机器人运动(2)---圆的轨迹跟踪

       1、前记:在继Robotics System Toolbox中的机器人运动(1),和具有逆运动学的2维轨迹跟踪(翻译--个人学习记录)这俩篇博客后,细细的研究了Robotics System Toolbox工具箱中的逆运动求解函数,发现必须要有足够的信息才能够将机器臂的各关节很好的控制起来,而足够的信息就是各关节的角度变化信息是怎样形成的。如Robotics System Toolbox中的机器人运动(1),是从初始Home位的各关节的角度配置,以相同的幅度递增迭代而成的运动控制,是从正运动的角度去实现运动控制的。那么这里试着用逆运动的角度来实现到达空间点位各关节的角度如何配置,这里模拟具有逆运动学的2维轨迹跟踪(翻译--个人学习记录)中的例子实现。

       2、代码:

%导入机器人
clear
clc
robot=importrobot('irb_140.urdf');
show(robot);
axes.CameraPositionMode = 'auto';
%定义轨迹为半径为0.15的圆
t = (0:0.5:10)'; 
count = length(t);
center = [0.45 0 0.5];
radius = 0.15;
theta = t*(2*pi/t(end));
points =(center + radius*[cos(theta) sin(theta) zeros(size(theta))])';
%%
hold on
plot3(points(1,:),points(2,:),points(3,:),'r')%画出定义的轨迹
%逆运动学解:使用InverseKinematics对象找到机器人配置的解决方案, 以实现沿轨迹给定的最终末端位置
eeOffset = 0.01;
eeBody = robotics.RigidBody('end_effector');
setFixedTransform(eeBody.Joint,trvec2tform([eeOffset 0 0]));
addBody(robot,eeBody,'link_6');
ik = robotics.InverseKinematics('RigidBodyTree',robot);
weights = [0.1 0.1 0 1 1 1];
qInitial = robot.homeConfiguration;
%%
%通过点的轨迹循环来跟踪圆。调用每个点的ik对象以生成实现末端位置的关节配置,存储要稍后使用的配置。
for i = 1:size(points,2)
    % Solve for the configuration satisfying the desired end effector
    tform = trvec2tform(points(:,i)');
    qSol(i,:) = ik('end_effector',tform,weights,qInitial);
    % Start from prior solution
    qInitial = qSol(i,:);
end
%%
title('robot move follow the trajectory')
hold on
axis([-0.6 0.8 -0.6 0.65 0 1.3]);
for i = 1:size(points,2)
    show(robot,qSol(i,:)','PreservePlot',false);%false改为true时,留下重影。
    pause(0.3)
end
hold off

效果:

动画(1)

动画(2)

因为邮箱回复比较麻烦,需要irb140.urdf的请移步:https://download.csdn.net/download/weixin_39090239/12252376

                                                       ——2020年3月17日

  • 11
    点赞
  • 97
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 16
    评论
评论 16
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

JianRobSim

嘤嘤其名,求其友声!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值