【MATLAB】将机械臂运动轨迹输出为avi视频或是gif动图 |
您所在的位置:网站首页 › 如何显示轨迹图 › 【MATLAB】将机械臂运动轨迹输出为avi视频或是gif动图 |
输出轨迹视频文件
figure
%将轨迹创建生成视频
out=VideoWriter('直线轨迹.avi');
out.FrameRate=10;
open(out);
robot0.plot([17,15,15,15,15,15]./180*pi)
plot3(squeeze(Tc(1,4,:)),squeeze(Tc(2,4,:)),squeeze(Tc(3,4,:)));
hold on
for K=1:50
robot0.plot(q(K,:))%The trajectory outputs have one row per time step, and one column per axis.每一行为每个时间点的六轴角度
F=getframe(gcf);
writeVideo(out,F);
end
![]() 使用 VideoWriter 函数创建一个名为“直线轨迹.avi”的视频文件,并设置视频的帧率为 10 帧每秒。 使用 robot0.plot 函数绘制初始关节角度为 [17, 15, 15, 15, 15, 15] 的机器人,并使用 plot3 函数绘制机器人的轨迹。 在绘制轨迹时,需要使用 squeeze 函数将机器人末端执行器的位姿矩阵 Tc 中的 x、y、z 轴轨迹提取出来,并分别作为 plot3 函数的输入参数。 然后,循环 50 次,使用 robot0.plot 函数绘制每个时间点上机器人的关节角度,并使用 getframe 函数获取当前图像的帧数据。 最后,使用 writeVideo 函数将每个时间点上的图像帧写入到视频文件中。这样,就可以将机器人的轨迹动态展示,并将其保存为一个视频文件,以便后续查看和分析。 输出轨迹动图 %% gif制图原理:每次画图,只画一张,截取下来,组合成为gif。 %轨迹规划方法,根据关节角位姿进行调整 [q,qd,qdd] = jtraj(init_ang,targ_ang,step); for n = 1:1:50 figure(1); grid on T=robot0.fkine(q);%根据插值,得到末端执行器位姿T nT=T.T; plot3(squeeze(nT(1,4,:)),squeeze(nT(2,4,:)),squeeze(nT(3,4,:)));%输出末端轨迹 robot0.plot(q(n,:)); view(15,27);%view([Azimuth,Elevation]) drawnow; % Capture the plot as an image F=getframe(gcf); I=frame2im(F); [I,map]=rgb2ind(I,256); % Write to the GIF File if n == 1 imwrite(I,map,'五次多项式轨迹.gif','gif', 'Loopcount',inf,'DelayTime',0.2); else imwrite(I,map,'五次多项式轨迹.gif','gif','WriteMode','append','DelayTime',0.2); end end 使用关节空间插值方法生成机器人末端执行器的轨迹,并将生成的轨迹动态地绘制在三维坐标系中,同时将每一帧绘制的结果保存下来,最终生成一个 GIF 动画。其中,变量 q 存储了关节空间插值后的机器人关节角位姿,变量 qd 和 qdd 分别存储了关节角的速度和加速度。 在每一次循环中,使用 fkine 函数计算机器人末端执行器的位姿,并将得到的位姿数据存储在 T 变量中。 由于 T 是一个机器人位姿矩阵,包含了机器人末端执行器的位置和姿态信息,因此使用 T.T 将其转换为一个 4x4 的矩阵 nT ![]() ![]() nT(1:3,4,:) 存储了机器人末端执行器的轨迹 然后使用 plot3 函数将机器人末端执行器的轨迹绘制在三维坐标系中。 使用 plot 函数将机器人的关节角位姿绘制在一个机器人模型上, 使用 view 函数设置视角,将绘制结果实时显示在屏幕上。 同时,使用 getframe 函数捕获当前图形窗口的画面,并将它转换成一个图像。然后,使用 rgb2ind 函数将图像转换成 GIF 动画需要的格式,并使用 imwrite 函数将这个图像加入到 GIF 动画中。 最后,这个循环会执行 50 次,每一次都会生成一个新的图像,并将其添加到 GIF 动画中。 最终生成的 GIF 动画中,每一帧都包含了机器人末端执行器的轨迹以及机器人的运动状态。 ![]() ![]() |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |