1、前记:

在MATLAB机器人可视化中提到过可以将含有URDF的机器人文件和对应stl格式部件导入到matlab并做运动控制。这一方面的资料真心少,从例子和帮助文档中学习太幸苦了。一些函数用法(https://www.mathworks.com/help/robotics/referencelist.html?type=function&s_cid=doc_ftr)不太熟悉。正逆运动学,正逆动力学控制都有现成的simulink模块,只需要将开始生成的变量已经存储在仿真模型工作区中,连接起来就可以做到相应的控制。这一块感觉还要一段时间才可以整理。

 

2、以下进入主题,可视化后的机器人如何让他动起来。虽然代码看起来有些愚蠢,也无所谓了,一步步来吧。

代码:

 


robot = importrobot('iiwa14.urdf');%导入机器人描述格式

robot.DataFormat='column';%数据格式为列,row为行;为‘row'时q0要转置-->q0’

robot.Gravity = [0 0 -9.80];%重力方向设置

for i=1:0.02:1.5

q0 = [0; 0; 0; 0; 0; 0; 0];%位置-->各关节为弧度值,7个单独关节运动.

q1=q0+i;

%hold on %去掉此注释机器人留下重影

drawnow

show(robot,q1,'PreservePlot',false);%以变化q1显示机器人运动——>类似正运动

view([150 6]);%figure大小设置

axis([-0.6 0.6 -0.6 0.6 0 1.35]);%坐标范围

camva('auto');%设置相机视角

daspect([1 1 1]);%控制沿每个轴的数据单位长度,要在所有方向上采用相同的数据单位长度,使用 [1 1 1] 

end

 

图示:

 

 

以下是去掉hold on前面的注释符号,show中false改为ture吓得重影的运动:

 

 

3、后记:

路在脚下,自己去闯!正逆运动学,正逆动力学控制,轨迹规划,ROS机制。。。

 

参考:

 

(1)https://ww2.mathworks.cn/help/robotics/examples/plan-a-reaching-trajectory-with-kinematic-constraints.html?searchHighlight=Plan%20a%20Reaching%20Trajectory%20With%20Multiple%20Kinematic%20Constraints&s_tid=doc_srchtitle

(2)https://www.mathworks.com/help/robotics/examples/perform-safe-trajectory-tracking.html

(3)https://www.mathworks.com/help/robotics/examples/control-lbr-manipulator-motion-through-joint-torque.html

(4)https://www.mathworks.com/help/robotics/examples/trajectory-control-modeling-with-inverse-kinematics.html(2018b)