基于Orion的正运动学matlab仿真及轨迹(附代码)

建立机器人模型

%定义机器人关节连杆参数,默认为标准DH L1 = Link('d', 0, 'a', 75, 'alpha', pi/2); L2 = Link('d', 0, 'a', 1101.48, 'alpha', 0); L3 = Link('d', 0, 'a', 155.77, 'alpha', pi/2,'offset',pi/2); L4 = Link('d', 483, 'a', 0, 'alpha',-pi/2); L5 = Link('d', 0, 'a', 0, 'alpha', pi/2); L6 = Link('d', 445.5, 'a', 0, 'alpha',0); robot=SerialLink([L1,L2,L3,L4,L5,L6]); %用定义好的关节建立机器人 robot.display(); %显示建立的机器人的DH参数 robot.name = 'little M'; q0=[0 0 0 0 0 0]; %6个关节的角度变量值都设为0,可以更改 robot.plot(q0); %显示机器人的图像 title('原始位置');

基于Orion的正运动学matlab仿真及轨迹(附代码)
文章图片

画出机器人运动的动态图
q1=[pi/3,pi/2,pi/6,pi*3/4,pi/2,pi]; %终了位置6个关节点的参数 t=[0:0.1:2]'; %整个运动发生在10秒内、采样周期是50ms disp('转动过程中的关节点参数:'); [q,qd,qdd]=jtraj(q0,q1,t); %返回末端位移、速度、加速度 T= fkine(robot,q); %前向运动学、返回末端变换矩阵%画动态图 figure robot.plot(q) %显示运动动态轨迹 title('机械臂运动动态图');

基于Orion的正运动学matlab仿真及轨迹(附代码)
文章图片

这里生成的矩阵T,是一个三维特殊格式矩阵,(不同时间的 机器人位姿)暂时不知道如何提取其内容
但是通过这个代码可以得到 末端执行器的三维坐标,P
about T

T [SE3] : 1x21 (2.8 kB)
p = transl(T); %轨迹的位移部分 about p

【基于Orion的正运动学matlab仿真及轨迹(附代码)】p [double] : 21x3 (504 bytes)
末端执行器轨迹
p = transl(T); %轨迹的位移部分 x=p(:,1); y=p(:,2); z=p(:,3); figure('name','末端执行器轨迹图') plot3(x,y,z); grid on

基于Orion的正运动学matlab仿真及轨迹(附代码)
文章图片

    推荐阅读