article-6-pss 并联六自由度机构轨迹规划

news2024/9/22 13:30:51
  1. 建模

**

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-djltxj90-1687070335773)(data:image/svg+xml;utf8, )]

**

程序如下:
% clc
% clear all
%
function []=PSS1(XP,YP,ZP)
tic
%%%%%鍒濆浣嶇疆鐨勪綅濮?%%%%%
% XP = 0; %鍔ㄥ钩鍙扮浉瀵归潤骞冲彴鐨勫垵濮嬩綅缃潗鏍?
% YP = 0;
% ZP = 900;%
% 鍔ㄥ钩鍙扮殑浣嶅Э
X = 0; %鐩稿鍒濆浣嶇疆杩愬姩鐨勫潗鏍?
Y = 0;
Z = 0;
%鏉嗛暱/mm
L = 750;
roll = 0; %鐩稿闈欏钩鍙扮殑濮挎??
pitch = 0;
yaw = 0;
P = [ X+XP; Y+YP; Z+ZP ]; %鍔ㄥ钩鍙板渾蹇冪偣 鐩稿 闈欏钩鍙? 鐨勫潗鏍?
% 骞冲彴鐨勫熀鏈昂瀵?
R = 200; %鍔ㄥ钩鍙伴摪鐐圭殑澶栨帴鍦嗗崐寰?
r = 500; %闈欏钩鍙伴摪鐐圭殑澶栨帴鍦嗗崐寰?
d0 = -133.5; %鍔ㄥ钩鍙伴摪鐐圭殑瀹夎瑙掑害
d1 = -46.5;
d2 = -13.5;
d3 = 73.5;
d4 = 106.5;
d5 = 193.5;
j0 = -110.0; %闈欏钩鍙伴摪鐐圭殑瀹夎瑙掑害
j1 = -70.0;
j2 = 10.0;
j3 = 50.0;
j4 = 130.0;
j5 = 170.0;
% 鍔ㄥ钩鍙扮殑6涓摪鐐癸紝 鍦ㄥ姩骞冲彴鍧愭爣绯讳腑鐨勪綅缃煝閲?
bR1 = [ R*cosd( d0 ); R*sind( d0 ); 0 ];
bR2 = [ R*cosd( d1 ); R*sind( d1 ); 0 ];
bR3 = [ R*cosd( d2 ); R*sind( d2 ); 0 ];
bR4 = [ R*cosd( d3 ); R*sind( d3 ); 0 ];
bR5 = [ R*cosd( d4 ); R*sind( d4 ); 0 ];
bR6 = [ R*cosd( d5 ); R*sind( d5 ); 0 ];
% 闈欏钩鍙扮殑6涓摪鐐癸紝鍦ㄩ潤骞冲彴鍧愭爣绯讳腑鐨勪綅缃煝閲?
Br1 = [ r*cosd( j0 ) ; r*sind( j0 ); 0];
Br2 = [ r*cosd( j1 ) ; r*sind( j1 ); 0];
Br3 = [ r*cosd( j2 ) ; r*sind( j2 ); 0];
Br4 = [ r*cosd( j3 ) ; r*sind( j3 ); 0];
Br5 = [ r*cosd( j4 ) ; r*sind( j4 ); 0];
Br6 = [ r*cosd( j5 ) ; r*sind( j5 ); 0];
TransM = rotz(yaw) * roty(pitch) * rotx(roll); %XYZ鏃嬭浆鐭╅樀
% 鍔ㄥ钩鍙扮殑6涓摪鐐癸紝鍦ㄩ潤骞冲彴鍧愭爣绯讳腑鐨勪綅缃煝閲?
br1 = TransM * bR1 + P;
br2 = TransM * bR2 + P;
br3 = TransM * bR3 + P;
br4 = TransM * bR4 + P;
br5 = TransM * bR5 + P;
br6 = TransM * bR6 + P;
%婊戝潡Z鏂瑰悜鍧愭爣
h1 = -sqrt((L2-(Br1(1)-br1(1))2-(Br1(2)-br1(2))^2))+br1(3);
h2 = -sqrt((L2-(Br2(1)-br2(1))2-(Br2(2)-br2(2))^2))+br2(3);
h3 = -sqrt((L2-(Br3(1)-br3(1))2-(Br3(2)-br3(2))^2))+br3(3);
h4 = -sqrt((L2-(Br4(1)-br4(1))2-(Br4(2)-br4(2))^2))+br4(3);
h5 = -sqrt((L2-(Br5(1)-br5(1))2-(Br5(2)-br5(2))^2))+br5(3);
h6 = -sqrt((L2-(Br6(1)-br6(1))2-(Br6(2)-br6(2))^2))+br6(3);
% 寤虹珛婊戝潡绉诲姩閾扮偣
ar1 = [ r*cosd( j0 ) ; r*sind( j0 ); h1];
ar2 = [ r*cosd( j1 ) ; r*sind( j1 ); h2];
ar3 = [ r*cosd( j2 ) ; r*sind( j2 ); h3];
ar4 = [ r*cosd( j3 ) ; r*sind( j3 ); h4];
ar5 = [ r*cosd( j4 ) ; r*sind( j4 ); h5];
ar6 = [ r*cosd( j5 ) ; r*sind( j5 ); h6];
%鏉嗛暱鐭㈤噺
L1 = br1 - ar1;
L2 = br2 - ar2;
L3 = br3 - ar3;
L4 = br4 - ar4;
L5 = br5 - ar5;
L6 = br6 - ar6;
%姹傚嚭鏉嗛暱
%G1 = norm(L1);
%G2 = norm(L2);
%G3 = norm(L3);
%G4 = norm(L4);
%G5 = norm(L5);
%G6 = norm(L6);
toc
% 鐢?3D鍥?
h=gca;
delete(h);
% 鎶? hold on 寮?鍚?
figure(1);
hold on;
grid on
title(‘6-PSS’);
view([2,2,2]); % 璁惧畾3D鍥剧殑瑙傚療瑙嗚
axis equal; % XYZ杞存樉绀烘瘮渚嬬浉绛?
plot3( [0,100], [0,0], [0,0], ‘-b’,‘LineWidth’, 1.5 );% 鐢诲嚭X杞?
plot3( 100, 0, 0, ‘>b’ );
plot3( [0,0], [0,100], [0,0], ‘-r’,‘LineWidth’, 1.5 );% 鐢诲嚭Y杞?
plot3( 0, 100, 0, ‘>r’ );
plot3( [0,0], [0,0], [0,100], ‘-k’,‘LineWidth’, 1.5 );% 鐢诲嚭Z杞?
plot3( 0, 0, 100, ‘>k’ );
PBx0 = TransM * [ 0; 0; 0 ] + P;
PBx1 = TransM * [ 0+100; 0; 0 ] + P;
PBy0 = TransM * [ 0; 0; 0 ] + P;
PBy1 = TransM * [ 0; 0+100;0 ] + P;
PBz0 = TransM * [ 0; 0; 0 ] + P;
PBz1 = TransM * [ 0; 0; 0+100] + P;
plot3( [PBx0(1),PBx1(1)], [PBx0(2),PBx1(2)], [PBx0(3),PBx1(3)], ‘-g’, ‘LineWidth’, 1);
plot3( [PBy0(1),PBy1(1)], [PBy0(2),PBy1(2)], [PBy0(3),PBy1(3)], ‘-r’, ‘LineWidth’, 1);
plot3( [PBz0(1),PBz1(1)], [PBz0(2),PBz1(2)], [PBz0(3),PBz1(3)], ‘-k’, ‘LineWidth’, 1);
patch( [Br1(1),Br2(1),Br3(1),Br4(1),Br5(1),Br6(1)], [Br1(2),Br2(2),Br3(2),Br4(2),Br5(2),Br6(2)],[Br1(3),Br2(3),Br3(3),Br4(3),Br5(3),Br6(3)], ‘c’ );
patch( [br1(1),br2(1),br3(1),br4(1),br5(1),br6(1)], [br1(2),br2(2),br3(2),br4(2),br5(2),br6(2)], [br1(3),br2(3),br3(3),br4(3),br5(3),br6(3)], ‘c’ );
plot3( ar1(1),ar1(2),ar1(3), ‘.m’, ‘MarkerSize’, 25); % 鐢诲嚭绉诲姩閾扮偣
plot3( ar2(1),ar2(2),ar2(3), ‘.m’, ‘MarkerSize’, 25);
plot3( ar3(1),ar3(2),ar3(3), ‘.m’, ‘MarkerSize’, 25);
plot3( ar4(1),ar4(2),ar4(3), ‘.m’, ‘MarkerSize’, 25);
plot3( ar5(1),ar5(2),ar5(3), ‘.m’, ‘MarkerSize’, 25);
plot3( ar6(1),ar6(2),ar6(3), ‘.m’, ‘MarkerSize’, 25);
plot3( br1(1),br1(2),br1(3), ‘.m’, ‘MarkerSize’, 25); % 鐢诲嚭鍔ㄥ钩鍙颁笂鐨?6涓摪鐐?
plot3( br2(1),br2(2),br2(3), ‘.m’, ‘MarkerSize’, 25);
plot3( br3(1),br3(2),br3(3), ‘.m’, ‘MarkerSize’, 25);
plot3( br4(1),br4(2),br4(3), ‘.m’, ‘MarkerSize’, 25);
plot3( br5(1),br5(2),br5(3), ‘.m’, ‘MarkerSize’, 25);
plot3( br6(1),br6(2),br6(3), ‘.m’, ‘MarkerSize’, 25);
plot3( P(1),P(2),P(3), ‘.k’, ‘MarkerSize’, 10); % 鐢诲嚭鍔ㄩ潤骞冲彴鐨勫渾蹇?
plot3( 0, 0, 0, ‘.k’, ‘MarkerSize’, 10);
% 鐢诲嚭瀵艰建
plot3( [Br1(1),Br1(1)], [Br1(2),Br1(2)], [Br1(3)+300,Br1(3)], ‘-b’, ‘LineWidth’, 2.5);
plot3( [Br2(1),Br2(1)], [Br2(2),Br2(2)], [Br2(3)+300,Br2(3)], ‘-b’, ‘LineWidth’, 2.5);
plot3( [Br3(1),Br3(1)], [Br3(2),Br3(2)], [Br3(3)+300,Br3(3)], ‘-b’, ‘LineWidth’, 2.5);
plot3( [Br4(1),Br4(1)], [Br4(2),Br4(2)], [Br4(3)+300,Br4(3)], ‘-b’, ‘LineWidth’, 2.5);
plot3( [Br5(1),Br5(1)], [Br5(2),Br5(2)], [Br5(3)+300,Br5(3)], ‘-b’, ‘LineWidth’, 2.5);
plot3( [Br6(1),Br6(1)], [Br6(2),Br6(2)], [Br6(3)+300,Br6(3)], ‘-b’, ‘LineWidth’, 2.5);
% 鍔ㄥ钩鍙颁笌婊戝姩閾扮偣閾炬帴
plot3( [br1(1),ar1(1)], [br1(2),ar1(2)], [br1(3),ar1(3)], ‘-k’, ‘LineWidth’, 2);
plot3( [br2(1),ar2(1)], [br2(2),ar2(2)], [br2(3),ar2(3)], ‘-k’, ‘LineWidth’, 2);
plot3( [br3(1),ar3(1)], [br3(2),ar3(2)], [br3(3),ar3(3)], ‘-k’, ‘LineWidth’, 2);
plot3( [br4(1),ar4(1)], [br4(2),ar4(2)], [br4(3),ar4(3)], ‘-k’, ‘LineWidth’, 2);
plot3( [br5(1),ar5(1)], [br5(2),ar5(2)], [br5(3),ar5(3)], ‘-k’, ‘LineWidth’, 2);
plot3( [br6(1),ar6(1)], [br6(2),ar6(2)], [br6(3),ar6(3)], ‘-k’, ‘LineWidth’, 2);
% 璁剧疆3D鍥剧殑鏍煎紡
% xlim([ -500,600 ]); %鍥哄畾鏄剧ず鑼冨洿
% ylim([ -500,500 ]);
% zlim([ 0,900 ]);
xlabel(‘X-axis / mm’); % XYZ杞存爣璇?
ylabel(‘Y-axis / mm’);
zlabel(‘Z-axis / mm’);
text( Br1(1), Br1(2)-50, ‘1’ ); %鍦ㄩ潤骞冲彴鐨勯摪鐐规梺锛屾樉绀鸿繛鏉嗗簭鍙?
text( Br2(1)+50, Br2(2)-50, ‘2’ );
text( Br3(1)+50, Br3(2)-50, ‘3’ );
text( Br4(1)+50, Br4(2)+50, ‘4’ );
text( Br5(1)+50, Br5(2)+50, ‘5’ );
text( Br6(1)+50, Br6(2)-50, ‘6’ );
end

  1. 轨迹仿真

轨迹要求:动平台中心画一个圆轨迹

**

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-oaxRTJmn-1687070335774)(data:image/svg+xml;utf8, )]

**
3、 运动空间分析
根据连杆的活动范围,得到动平台得活动范围,如下图:
在这里插入图片描述

(下载咨询链接:matlab正逆运动学分析与轨迹规划])

word+仿真源代码下载链接

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/659297.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

存储笔记6 SAN

SAN(Storage Area Networks) SAN 优势 benefitsSAN 组件 componentsSAN连接选项 connective optionsFC协议 FC寻址 protocol addressing\FC拓扑 topologie SAN优缺点 光纤通道 fibre channel SAN组件 FC三种互联 FC端口类型 fabric 企业需要和科技…

RFID期末复习总结

一.概念部分 1.基础概念 射频识别无线电频率识别RFID 应答器:存放识别信息的电子数据载体 阅读器:将识别信息从应答器中读出(还可以写入数据) 应答器是统称,在各种专业场合有专业名字,比如射频卡&#…

pikachu靶场-PHP反序列化

在理解这个漏洞前,你需要先搞清楚php中serialize(),unserialize()这两个函数。 序列化serialize() 序列化说通俗点就是把一个对象变成可以传输的字符串,比如下面是一个对象: class S{public $test"pikachu";}$snew S(); //创建一个对象serialize($s); //…

FPGA时序约束--进阶篇(主时钟约束)

在FPGA设计中,时序约束的设置对于电路性能和可靠性都至关重要。在上一篇的文章中,已经详细介绍了FPGA时序约束的基础知识。 本文将重点讲解主时钟约束设置,给出详细的约束命令,并介绍了在Vivado中如何写入主时钟约束。 一、主时…

一文详解!接口测试(http与rpc)总结

目录 前言: 一、了解一下HTTP与RPC 二、HTTP接口测试 三、RPC接口测试 四、接口测试用例设计 五、测试思路总结 前言: 在接口测试方面,常见的接口类型有HTTP接口和RPC接口。这两者的测试方法略有不同,在测试前需要进行技术选…

[INFO] [copilotIgnore] inactive,github copilot没反应怎么解决

在使用github copilot的时候,插件不工作,后台出现了这种输出, 这种情况下就是它的激活出现了问题,如果账号的使用权没有问题的话,就将该插件disable之后再重新enable,重新观察输出,就会看到copi…

LAMP架构搭建实操

目录 一、LAMP架构概述 二、LAMP框架搭建 1.准备工作 2.部署apache 3.部署mysql 4.部署php 三、部署BBS论坛 一、LAMP架构概述 LAMP架构是目前成熟的企业网站应用模式之一,指的是协同工作的一整套系统和相关软件,能够提供动态Web站点服务及其应用…

win11系统提示msvcp140.dll丢失的三个解决方法,简单实用

Win11系统在运行photoshop或其他软件,游戏的时候,电脑提示“找不到msvcp140.dll”,“msvcp140.dll丢失”,“无法定位输入点msvcp140.dll”等问题,都是由于Windows11系统中的msvcp140.dll文件丢失或者损坏了。 问题场景…

数据结构 串

串 术语概念 在数据结构中,串(String)是由零个或多个字符组成的有限序列。它是一种常见的数据类型,常用于表示文本、字符串和符号序列等信息。串可以包含任意字符,包括字母、数字、符号以及空格等。 主串&#xff08…

CANDENCE : 如何绘制元器件

如何绘制元器件 绘制元器件之前先新建一个原理图库。 step1:打开某一个原理图工程 step2:在该工程系下新建一个库文件,如下图: 新建完成,如下图: 右键点击保存:save。 命名并保存,保存的位置自己决定 …

AI - stable-diffusion 艺术化二维码

系列文章: 《AI - stable-diffusion(AI 绘画)的搭建与使用》《AI - AI 绘画的精准控图(ControlNet)》 一、介绍 近日,AI 绘画(stable-diffusion)用来艺术化二维码算是比较火热的事了,这个 idea 是由国人用 Checkpoi…

Spring Security 实战篇

文章目录 前言内存版(memory)数据库库版(jdbc)自定义登录 - 单体(custom-login-single)自定义登录 - 前后分离会话一致性方案方案一方案二方案三为什么不用JWT 登录改json方式登录(custom-login-json)认证密码加密登录&#xff08…

【欧瑞博智能家居】ZigBee Mini网关、超静音智能开合帘电机 添加操作流程

目录 一、添加ZigBee Mini网关 二、添加超静音智能开合帘电机 参考资料 一、添加ZigBee Mini网关 1. 下载《智家365》APP 2. 网关通电,用网线连接路由器的网线接口 3. 再次扫描产品手册里面的二维码添加ZigBee Mini网关,注意手机wifi要在同一个网络…

Nucleo-F411RE (STM32F411)LL库体验 10 - RT-Thread nano finsh的移植

Nucleo-F411RE (STM32F411)LL库体验 10 - RT-Thread nano finsh的移植 1、Makefile中添加finsh的编译 编译报错如下: 在rtconfig.h添加#include “finsh_config.h” 继续编译,继续报错: 这里是个WEAK函数&#xff…

【python中对点云PCL库的下载安装与配置】

需要的资料: python_pcl-0.3.1-cp36-cp36m-win_amd64.whl 压缩包:pcl-1.12.1-pdb-msvc2019-win64 pcl程序:PCL-1.12.1-AllInOne-msvc2019-win64 网盘链接:https://pan.baidu.com/s/184yY7fc5rqwwd9F4cMncDw 提取码&#xff1a…

SpringSecurity(一):权限管理设计与实现(官文英解+源码调试+基本环境搭建)

权限管理设计与实现 前言权限管理认证授权安全管理框架 整体架构认证AuthenticationManagerAuthenticationSecurityContextHolder 授权AccessDecisionManagerAccessDecisionVoterConfigAttribute 环境搭建技术栈创建项目整合Spring Security 实现原理官方文档解读A Review of F…

Jmeter多接口测试之参数传递

目录 前言: 接口示例 正则表达式提取器 正则表达式提取实例 Json提取器 Json提取器实例 前言: 在进行多接口测试时,有些情况下需要将前一个接口返回数据作为后一个接口的参数,以模拟实际场景。JMeter作为一款常用的性能测试…

【百问百答】可靠性基础知识第六期

1.跌落试验需要确认哪些试验条件? 试验条件包括:释放高度,释放方法和试验表面。 2.什么是跌落试验的试验表面? 试验表面应该是混凝土或者是钢制的平滑坚硬的刚性表面,必要时,可按照相关规范规定其他表面。 3.什么是跌落高度? 指…

云安全技术(二)之云计算参考架构

云计算参考架构 1.1 描述云计算参考架构 Describe Cloud Reference Architecture 多个主要组件组合在一起形成云架构(Cloud Architecture)和云实现的全貌。涉及的组件包括管理和运营云环境的活动(Activity)、角色(Role)和能力(Capability),以及基于云托管和服务交…

CSDN如何快速获得粉丝和高质量铁粉

✅作者简介:人工智能专业本科在读,喜欢计算机与编程,写博客记录自己的学习历程。 🍎个人主页:小嗷犬的个人主页 🍊个人网站:小嗷犬的技术小站 🥭个人信条:为天地立心&…