问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

六足机器人3PRR关节构型的运动控制:基于Matlab的实现

创作时间:
作者:
@小白创作中心

六足机器人3PRR关节构型的运动控制:基于Matlab的实现

引用
CSDN
1.
https://m.blog.csdn.net/qq_46009436/article/details/140809566

本文介绍了一种六足机器人的运动控制方法,通过将其建模为3PRR构型,并使用Matlab实现了运动学控制。文章详细描述了六足机器人的结构、关键部件及其运动学控制方法,适合相关领域的研究人员和工程师阅读。

六足机器人概述

本工作中分析的系统是由Quanser公司生产的称为六足机器人的六自由度(DOF)并联平台操纵器。

六足机器人作为一项合作研发项目,由纽约州立大学布法罗分校(SUNY-Buffalo)的ARM实验室(由Venkat Krovi教授领导)和Quanser Inc.公司共同开发。该装置能够在紧凑的工作空间内以高加速度移动重载荷。它是一个带有刚性平台的六自由度并联操纵器。平台通过三个点与刚性固定长度的臂相连,这三个点构成一个等边三角形。这些臂成对连接到平台上,每对臂的一端汇聚在一起,随后通过球面关节连接到操纵器上。六条臂的自由端通过万向节与基座相连,该万向节可在基座上滑动。臂的基座沿棱柱关节排列。在平台上相聚的同一对连杆占据了一条直线轴,因此平台上共有三条水平直槽,每条槽中有两个链接底座在其内滑动。这三条槽在刚性基座上相互对齐,使得它们与等边三角形的每条臂都共线。

六足机器人中按其特征尺寸降序排列的关键部件如下:

本项目部分完成于“机器人操作与移动”(MAE 513)课程的要求。当前项目旨在作为学习理解关节多体系统(该课程重点强调的内容)的实践基地。六足机器人系统,通过多种关节将其多个部件耦合在一起,这些关节可以分类为6个螺旋关节(SJ)、6个万向节(UJ)和3个球面关节(SJ),提供了足够复杂的一个实例,用以阐明复杂多体系统中的力学与控制。同时,系统的复杂性要求使用不同的分析技术、数值仿真工具、软件环境以及计算机-硬件接口,从而为实践和磨练课程中学到的技能提供了充分的机会。

优势

平行平台操纵器(PPM)的一个重要优势在于其卓越的结构刚性,使其在搬运重物和高精度加工任务方面比串联链式操纵器(SCM)更为优选。其优势可总结如下[1]:

  • 非常高的精度
  • 更佳的刚度比
  • 强大的运动学性能:更大的载荷能力
  • 详细文档见第4部分。

运行结果

主函数代码:

% function [j_vars] = parallel1()
clear all
close all
clc
%% global variables
global l lengths radiusx radiusy ell_angle
global l1a l2a L angles phidot
%% trajectory information
d2r=pi/180;
radiusx=1; radiusy=3; ell_angle=30; % ellipse data
x=radiusx*cos(ell_angle*d2r); % initial starting x for platform center
y=radiusx*sin(ell_angle*d2r); % initial starting y for platform center
phi=30*d2r; phidot=0*d2r; % initial angle of platform and its change rate
%% system parameters
l=3; % length of side of center platform
angles=[pi/3 2*pi/3 0]; % angles of the base triangle in absolute frame
L(1)=5; % base triangle side1
L(2)=5; % base triangle side2
l1a=5; % link length for first rotating link
basepoint=[-L(1)/2 -L(1)/2*tan(pi/6)]; % the base point for the first prismatic joint
Sim_Angle=2*pi; % angle along ellipse
%% system calculation
bases(1,:)=basepoint;
bases(2,:)=bases(1,:)+[L(1)*cos(angles(1)) L(1)*sin(angles(1))];
bases(3,:)=bases(2,:)+[L(2)*cos(angles(2)) L(2)*sin(angles(2))];
angles(3)=atan2(bases(1,2)-bases(3,2),bases(1,1)-bases(3,1));
L(3)=sqrt((bases(1,1)-bases(3,1))^2+(bases(1,2)-bases(3,2))^2);
bases(4,:)=bases(1,:); % calculate the bases of the prismatic joints
l2a=l/2/cos(pi/6); % link lengths for second rotating link
lengths=[l1a l2a;l1a l2a;l1a l2a]; % only two link lengths for 2R
%% initialization for startup
j_vars=zeros(1,9); % 3*3=9 joints
options=odeset; % for use in ode45/ode4
feasible=1; % set feasibility crieteria default value
ends=myfunc(x,y,phi); % calculate the ends of the platform link
for i=1:3
j_vars(1,i*3-2:i*3-1)=myrevkin1(bases(i:i+1,:),ends(1:2,i),lengths(i,1)); % inverse kinematics routine
if(j_vars(1,i*3-1)==10) % if found infeasible
j_vars(1,i*3)=10;
feasible=0;
else
j_vars(1,i*3)=(i-1)*2*pi/3+pi/6+phi*d2r;
end
end
%% Final ODE routines and simulation
if(feasible~=1)
disp('no feasible soln in parallel');
pause
else
% [T Y]=ode45(@Mydiff,0:0.05:Sim_Angle,j_vars(1,:),options); % variable time step
Y=ode4(@Mydiff,0:0.05:Sim_Angle,j_vars(1,:)); T=0:0.05:Sim_Angle; % fixed time step
span=length(T);
x=zeros(span,3);
y=zeros(span,3);
% aviobj = avifile('trial.avi','compression','Cinepak'); % Step 1: Declare an avi object
for i=1:length(T)
for i2=1:3
x(i,i2)=bases(i2,1)+L(i2)*Y(i,i2*3-2)*cos(angles(i2))+lengths(i2,1)*cos(Y(i,i2*3-1))+lengths(i2,2)*cos(Y(i,i2*3));
y(i,i2)=bases(i2,2)+L(i2)*Y(i,i2*3-2)*sin(angles(i2))+lengths(i2,1)*sin(Y(i,i2*3-1))+lengths(i2,2)*sin(Y(i,i2*3));
end
plot(x(1:i,2),y(1:i,2),'color','k','linewidth',2);
hold on;
plot(bases(:,1),bases(:,2),'o--k');
parallelplot1(Y(i,:),bases,lengths);
% frame= getframe(gcf); %Step 2: Grab the frame
% aviobj = addframe(aviobj,frame); % Step 3: Add frame to avi object
hold off;
end
% aviobj = close(aviobj); % Step 4: Close the avi object
end

参考文献

文章中一些内容引自网络,会注明出处或引用为参考文献,难免有未尽之处,如有不妥,请随时联系删除。

  1. L.T. Wang and K. Oen, “Local rolling and tilting capability analysis of fully parallel linear actuated platform type manipulators”, Advanced Robotics, vol. 21, no. 8, pp. 931-960, 2007.
  2. K. Oen and L.T. Wang, “Optimal dynamic trajectory planning for linearly actuated platform type parallel manipulators having task space redundant degree of freedom”, Mechanism and Machine Theory, vol. 42, pp. 727-750, 2007.
  3. J. P. Merlet, “Jacobian, Manipulability, Condition Number, and Accuracy of Parallel Robots”, Journal of Mechanical Design, vol. 28, pp. 199-206, Jan 2006.
  4. J.P. Merlet, “Solid mechanics and its application: Parallel Robots”, Kluwer Academic Publishers, Dordrecht, The Netherlands, 2000.
  5. F. Xi and R. Sinatra, “Inverse dynamics of hexapods using the natural orthogonal complement method”, Journal of Manufacturing Systems, vol. 21, no. 2, pp. 73-82, 2002.
  6. P. Ngoc et al.,“Development of a new 6-dof parallel-kinematic motion simulator”, International Conference on Control, Automation and Systems, pp. 2370-2373, Oct. 2008.

Matlab代码、详细文档

资料获取,更多粉丝福利,MATLAB|Simulink|Python资源获取

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号