V-rep软件仿真UR5机器人第二篇

xiaoxiao2021-02-28  11

matlab部分: r1=[]; r2=[]; r3=[]; r4=[]; r5=[]; r6=[];

建立6个数组,装信息。

[res,handle_rigArmjoint1] = vrep.simxGetObjectHandle(clientID,'UR5_joint1',vrep.simx_opmode_oneshot_wait); [res,handle_rigArmjoint2] = vrep.simxGetObjectHandle(clientID,'UR5_joint2',vrep.simx_opmode_oneshot_wait); [res,handle_rigArmjoint3] = vrep.simxGetObjectHandle(clientID,'UR5_joint3',vrep.simx_opmode_oneshot_wait); [res,handle_rigArmjoint4] = vrep.simxGetObjectHandle(clientID,'UR5_joint4',vrep.simx_opmode_oneshot_wait); [res,handle_rigArmjoint5] = vrep.simxGetObjectHandle(clientID,'UR5_joint5',vrep.simx_opmode_oneshot_wait); [res,handle_rigArmjoint6] = vrep.simxGetObjectHandle(clientID,'UR5_joint6',vrep.simx_opmode_oneshot_wait); [res,handle_rigArmjoint7] = vrep.simxGetObjectHandle(clientID,'UR5_joint7',vrep.simx_opmode_oneshot_wait); if (res~=vrep.simx_return_ok) disp(res); fid1=fopen('err.txt','wt'); fprintf(fid1,'The error1 is: %d\n',res)

采集各个轴角度,(程序就不全给了,需要的在联系我,下面介绍参数)

clientID 是TCP 客户端ID; UR5_joint1 是 V-rep 软件里定义的轴名称,你定义什么,写什么。 simx_opmode_oneshot_wait 阻塞模式,采集速度慢

采集位置信息

[res,pos1]=vrep.simxGetObjectPosition(clientID,handle_rigArmjoint1,-1,vrep.simx_opmode_oneshot_wait); [res,pos2]=vrep.simxGetObjectPosition(clientID,handle_rigArmjoint2,-1,vrep.simx_opmode_oneshot_wait); [res,pos3]=vrep.simxGetObjectPosition(clientID,handle_rigArmjoint3,-1,vrep.simx_opmode_oneshot_wait); [res,pos4]=vrep.simxGetObjectPosition(clientID,handle_rigArmjoint4,-1,vrep.simx_opmode_oneshot_wait); [res,pos5]=vrep.simxGetObjectPosition(clientID,handle_rigArmjoint5,-1,vrep.simx_opmode_oneshot_wait); [res,pos6]=vrep.simxGetObjectPosition(clientID,handle_rigArmjoint6,-1,vrep.simx_opmode_oneshot_wait);参数同上,等我把这些函数整理成笔记,在发。 r1= [res,pos1]; r2= [res,pos2]; r3= [res,pos3]; r4= [res,pos4]; r5= [res,pos5]; r6= [res,pos6];

把想要的信息装进去,res是返回值,正常是-1.

r=[r1' r2' r3' r4' r5' r6']; fid=fopen('xyz.txt','a+'); disp('fid=') disp(fid) [m,n]=size(r); for i=1:1:m for j=1:1:n if j==n fprintf(fid,'%g\n ',r(i,j)); else fprintf(fid,'%g ',r(i,j)); end end end fclose(fid); end ' 这个符号是让数 竖向往下排,方便看 fid=fopen('xyz.txt','a+'); fopen是打开xyz的文档;a+是追加数据,如果w的话,新数会覆盖旧数 [m,n]=size(r); size 是求出数组的行、列 2个for循环 是起始值是1每次加1一直到m结束,是把每行数据打印,逻辑清楚

下一篇是robotics toolbox插件使用,在正解、反解验证里提供了算法,也可以在这2篇采集的数据用插件仿真验证。

我学的不多,欢迎指教。

转载请注明原文地址: https://www.6miu.com/read-2650094.html

最新回复(0)