当前位置: 首页 > news >正文

六轴机械臂码垛货物堆叠仿真

六轴机械臂码垛货物堆叠仿真
在这里插入图片描述

1、建立模型与仿真

clear,clc,close all
addpath(genpath('.'))
%建立模型参数如下:
L(1) = Link(  'd',     0.122,  'a' , 0 , 'alpha',  pi/2,'offset',0);
L(2) = Link(  'd',    0.019 ,  'a' ,0.408 , 'alpha', 0,'offset',pi/2);
L(3) = Link(  'd',  0 ,  'a' , 0.3759 , 'alpha',0,'offset',0);
L(4) = Link( 'd',  0.1023,  'a' , 0 , 'alpha', -pi/2 ,'offset',pi/2);
L(5) = Link( 'd', -0.1023 ,  'a' , 0 , 'alpha',pi/2,'offset',pi);
L(6) = Link( 'd',  -0.25281 ,  'a' , 0 , 'alpha',0,'offset',0);
robot = SerialLink(L,'name','六轴机械臂'); %建立连杆机器
% robot.display;
% robot.teach; 
%%%建立工作平台和货物
q0=[0 0 0 0 0 0];%初始位置
T0=robot.fkine(q0);%正运动学得到旋转矩阵hold onaxis([-1.2 1.2 -1.2 1.2 -0.4 1.5] )%定义坐标系范围%显示机械臂初始位置robot.plot3d(q0,'tilesize',0.1,'view',[120,20],'path',...'E:\Project tasks_unfinished2\六月份\6-23 400 机械臂码垛货物堆叠\2023t5')%第一个参数是长方体的原点,第二个参数是长宽高,输入命令:
gx=0.5;gy=0.5;gz=0.2;
PlotCuboid([-1,-1,-0.3],[2,2,0.4],0.2)%定义工作台
plot3Cube([gx,gy,gz],0.1,'black');%第一个货物
plot3Cube([gx,-gy,gz],0.1,'black');%第二个货物      
plot3Cube([-gx,gy,gz],0.1,'black'); %第三个货物           
plot3Cube([-gx,-gy,gz],0.1,'black'); %第四个货物         %%
%搬运第二个货物
T1=transl(gx,-gy,gz)*trotx(0);%转化为旋转矩阵
q1=robot.ikunc(T1);%求逆
[qt1,qt2,qt3]=jtraj(q0,q1,30);%利用五次多项式函数轨迹规划
%显示机械臂动画robot.plot3d(qt1,'tilesize',0.1,'view',[120,20])T2=transl(gx,gy,gz+0.1)*trotx(0);%转化为旋转矩阵
q2=robot.ikunc(T2);%求逆
[qt1,qt2,qt3]=jtraj(q1,q2,30);%利用五次多项式函数轨迹规划
TR1=transl(robot.fkine(qt1));
%循环显示动画
for i=1:length(qt1)
clf
robot.plot3d(qt1(i,:),'tilesize',0.1,'view',[120,20],'delay',0)
hold on
PlotCuboid([-1,-1,-0.3],[2,2,0.4],0.2)%定义工作台
plot3Cube([gx,gy,gz],0.1,'black');%第一个货物
plot3Cube([TR1(i,1),TR1(i,2),TR1(i,3)],0.1,'black');%第二个货物      
plot3Cube([-gx,gy,gz],0.1,'black'); %第三个货物           
plot3Cube([-gx,-gy,gz],0.1,'black'); %第四个货物
pause(0)
end
%%
%搬运第三个货物
T3=transl(-gx,gy,gz)*trotx(0);%转化为旋转矩阵
Tc1=ctraj(T2, T3,30);%直线轨迹规划
q31=robot.ikunc(Tc1);%求逆得关节角度robot.plot3d(q31,'tilesize',0.1,'view',[120,20])T4=transl(gx,gy,gz+0.2)*trotx(0);%转化为旋转矩阵
q4=robot.ikunc(T4);%求逆得到关节角度
Tc1=ctraj(T3, T4,30);%直线轨迹规划
q41=robot.ikunc(Tc1);%求逆得关节角度
TR2=transl(Tc1);%提取空间坐标点
%循环显示动画
for i=1:length(q41)
clf
robot.plot3d(q41(i,:),'tilesize',0.1,'view',[120,20],'delay',0)
hold on
PlotCuboid([-1,-1,-0.3],[2,2,0.4],0.2)%定义工作台
plot3Cube([gx,gy,gz],0.1,'black');%第一个货物
plot3Cube([TR1(end,1),TR1(end,2),TR1(end,3)],0.1,'black');%第二个货物      
plot3Cube([TR2(i,1),TR2(i,2),TR2(i,3)],0.1,'black'); %第三个货物           
plot3Cube([-gx,-gy,gz],0.1,'black'); %第四个货物
pause(0)
end%%
%搬运第四个货物
T5=transl(-gx,-gy,gz)*trotx(0);%转化为旋转矩阵
q5=robot.ikunc(T5);%求逆
[qt1,qt2,qt3]=jtraj(q4,q5,30);%利用五次多项式函数轨迹规划robot.plot3d(qt1,'tilesize',0.1,'view',[120,20])T5=transl(-gx,-gy,gz)*trotx(0);%转化为旋转矩阵
q5=robot.ikunc(T5);%求逆
q51=q5;
q51(1)=q51(1)+pi/2;
T=robot.fkine(q51);
T51=[T.n(1),T.o(1),T.a(1),T.t(1);%%得到旋转矩阵T.n(2),T.o(2),T.a(2),T.t(2);T.n(3),T.o(3),T.a(3),T.t(3);0 0 0 1];
[qt1,qt2,qt3]=jtraj(q5,q51,30);%利用五次多项式函数轨迹规划
TR31=transl(robot.fkine(qt1));%得到空间坐标点T6=transl(gx,gy,gz+0.3)*trotx(0);%转化为旋转矩阵
% q6=robot.ikunc(T6);%求逆
Tc1=ctraj(T51, T6,30);%直线轨迹规划
q61=robot.ikunc(Tc1);%求逆得到关节角度
qtd=[qt1;q61];%合并关节角度
TR32=transl(Tc1);%提取空间坐标点
TR3=[TR31;TR32];%得到空间坐标点
%循环显示动画
for i=1:length(qtd)
clf
robot.plot3d(qtd(i,:),'tilesize',0.1,'view',[120,20],'delay',0)
hold on
PlotCuboid([-1,-1,-0.3],[2,2,0.4],0.2)%定义工作台
plot3Cube([gx,gy,gz],0.1,'black');%第一个货物
plot3Cube([TR1(end,1),TR1(end,2),TR1(end,3)],0.1,'black');%第二个货物      
plot3Cube([TR2(end,1),TR2(end,2),TR2(end,3)],0.1,'black'); %第三个货物           
plot3Cube([TR3(i,1),TR3(i,2),TR3(i,3)],0.1,'black'); %第四个货物
pause(0)
end

请添加图片描述
请添加图片描述请添加图片描述
请添加图片描述
仿真视频如下:

六轴机械臂码垛货物堆叠仿真

相关文章:

六轴机械臂码垛货物堆叠仿真

六轴机械臂码垛货物堆叠仿真 1、建立模型与仿真 clear,clc,close all addpath(genpath(.)) %建立模型参数如下: L(1) Link( d, 0.122, a , 0 , alpha, pi/2,offset,0); L(2) Link( d, 0.019 , a ,0.408 , alpha, 0,offset,pi/2); L(3) Link( d, …...

text-decoration 使用

text-decoration text-decoration 用于设置文本上的装饰性线条的外观。 它是 text-decoration-line、text-decoration-style、text-decoration-color 和text-decoration-thickness的缩写。 text-decoration: underline wavy red;text-decoration-line 设置文本装饰类型 可以…...

linux shell快速入门

linux shell快速入门 0 、前置1、简单使用 0 、前置 一安装linux的虚拟环境 1、简单使用 1、新建/usr/shell目录 2、新建hello.sh 文件 3、编写脚本文件# !/bin/bashecho "hello world"查看是否具备执行权限 新增执行权限 chomd x hello.sh执行hello.sh文件 /b…...

【Spring源码】小白速通解析Spring源码,从0到1,持续更新!

Spring源码 参考资料 https://www.bilibili.com/video/BV1Tz4y1a7FM https://www.bilibili.com/video/BV1iz4y1b75q bean的生命周期 bean–>推断构造方法(默认是无参构造,或指定的构造方法)–>实例化成普通对象(相当于ne…...

Unity 鼠标实现对物体的移动、缩放、旋转

文章目录 1. 代码2. 测试场景 1. 代码 using UnityEngine;public class ObjectManipulation : MonoBehaviour {// 缩放比例限制public float MinScale 0.2f;public float MaxScale 3.0f;// 缩放速率private float scaleRate 1f;// 新尺寸private float newScale;// 射线pri…...

67Class 的基本语法

Class 的基本语法 类的由来[constructor() 方法](https://es6.ruanyifeng.com/#docs/class#constructor() 方法)类的实例实例属性的新写法取值函数(getter)和存值函数(setter)属性表达式[Class 表达式](https://es6.ruanyifeng.c…...

企业数字化转型:无形资产占比测算(2007-2021年)

在本次数据中,参考张永珅老师的做法,利用无形资产占比测算数字化转型程度。 一、数据介绍 数据名称:企业数字化转型:无形资产占比 数据年份:2007-2021年 样本数量:32960条 数据说明:包括数…...

[centos]设置主机名

1、设置 hostnamectl set-hostname 名字 2、查看是否生效 hostnamectl status 3、打开一个新链接就可以了...

华为OD真题--新学习选址--带答案

2023华为OD统一考试(AB卷)题库清单-带答案(持续更新)or2023年华为OD真题机考题库大全-带答案(持续更新) 为了解新学期学生暴涨的问题,小乐村要建立所新学校 考虑到学生上学安全问题,需要所有学生家到学校的…...

Qt自定义对话框

介绍 自定义框主要通过对现有对话框QDialog类的派生,根据需求编写成员函数、重载信号函数、槽函数,进而实现在主QWidget中点击某个按钮后,一个对话框的弹出 流程 简化创建派生类 最后点击完成即可。 自定义ui界面,编写成员函数…...

Python 程序设计入门(018)—— format() 函数的用法详解

Python 程序设计入门(018)—— format() 函数的用法详解 目录 Python 程序设计入门(018)—— format() 函数的用法详解一、format() 函数的基本格式二、不提供 format_spec 参数三、设置字符串的对齐方式(align&#x…...

演进式架构

演进能力是一种元特征和保护其他所有架构特征的架构封装器IEEE 的软件架构定义中的41 视图模型。它关注不同角色的不同视角,将整个系统划分成了逻辑视图、开发视图、进程视图和物理视图架构师确定了可审计性、数据、安全性、性能、合法性和伸缩性是该应用的关键架构…...

OCP China Day 2023:五大社区齐聚,加速开源开放创新与落地

8月10日,2023年开放计算中国社区技术峰会(OCP China Day 2023)在北京举行。智慧时代,计算多元化、应用多样化、技术复杂化正驱动数据中心新一轮变革,开源开放社区已成为推动数据中心持续创新的重要力量,通过…...

【Linux】进程间通信之管道

【Linux】进程间通信之管道 进程间通信进程间通信目的进程间通信的方式 管道(内核维护的缓冲区)匿名管道(用于父子间进程间通信)简单使用阻塞状态读写特征非阻塞状态读写特征 匿名管道特点命名管道 匿名管道与命名管道的区别 进程…...

记录一个正则表达式

正则表达式要求如下: 至少 8 个字符; 至少包含一个小写英文字母; 至少包含一个大写英文字母; 至少包含一个数字; 至少包含一个特殊字符,特殊字符为:“!#$%^&*()-” 中的一个; 不包含2个连续…...

用于全局复根和极点查找算法的自适应网格生成器(Matlab代码实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…...

修改Linux中SSH的端口

文章目录 修改Linux中SSH的端口Linux中默认的ssh端口关闭SELinux测试新端口 修改Linux中SSH的端口 Linux中默认的ssh端口 使用root用户操作 修改前先备份ssh_config cp /etc/ssh/sshd_config /etc/ssh/sshd_config_date "%Y%m%d%H%M%S"修改配置文件,找…...

Ansible从入门到精通【六】

大家好,我是早九晚十二,目前是做运维相关的工作。写博客是为了积累,希望大家一起进步! 我的主页:早九晚十二 专栏名称:Ansible从入门到精通 立志成为ansible大佬 ansible templates 模板(templa…...

国企的大数据岗位方向的分析

现如今大数据已无所不在,并且正被越来越广泛的被应用到历史、政治、科学、经济、商业甚至渗透到我们生活的方方面面中,获取的渠道也越来越便利。 今天我们就来聊一聊“大屏应用”,说到大屏就一定要聊到数据可视化,现如今&#xf…...

【MySQL--->数据类型】

文章目录 [TOC](文章目录) 一、数据类型分类二、整型类型三、bit(位)类型四、float类型五、decimal类型六、char和varchar类型1.char类型2.varchar3.char与varchar的区别 七、日期与时间类型八、enum和set 一、数据类型分类 二、整型类型 数值类型有数据存储上限,而且每个类型都…...

OpenLayers 可视化之热力图

注:当前使用的是 ol 5.3.0 版本,天地图使用的key请到天地图官网申请,并替换为自己的key 热力图(Heatmap)又叫热点图,是一种通过特殊高亮显示事物密度分布、变化趋势的数据可视化技术。采用颜色的深浅来显示…...

C++初阶-list的底层

目录 1.std::list实现的所有代码 2.list的简单介绍 2.1实现list的类 2.2_list_iterator的实现 2.2.1_list_iterator实现的原因和好处 2.2.2_list_iterator实现 2.3_list_node的实现 2.3.1. 避免递归的模板依赖 2.3.2. 内存布局一致性 2.3.3. 类型安全的替代方案 2.3.…...

.Net框架,除了EF还有很多很多......

文章目录 1. 引言2. Dapper2.1 概述与设计原理2.2 核心功能与代码示例基本查询多映射查询存储过程调用 2.3 性能优化原理2.4 适用场景 3. NHibernate3.1 概述与架构设计3.2 映射配置示例Fluent映射XML映射 3.3 查询示例HQL查询Criteria APILINQ提供程序 3.4 高级特性3.5 适用场…...

学校招生小程序源码介绍

基于ThinkPHPFastAdminUniApp开发的学校招生小程序源码,专为学校招生场景量身打造,功能实用且操作便捷。 从技术架构来看,ThinkPHP提供稳定可靠的后台服务,FastAdmin加速开发流程,UniApp则保障小程序在多端有良好的兼…...

屋顶变身“发电站” ,中天合创屋面分布式光伏发电项目顺利并网!

5月28日,中天合创屋面分布式光伏发电项目顺利并网发电,该项目位于内蒙古自治区鄂尔多斯市乌审旗,项目利用中天合创聚乙烯、聚丙烯仓库屋面作为场地建设光伏电站,总装机容量为9.96MWp。 项目投运后,每年可节约标煤3670…...

Java 加密常用的各种算法及其选择

在数字化时代,数据安全至关重要,Java 作为广泛应用的编程语言,提供了丰富的加密算法来保障数据的保密性、完整性和真实性。了解这些常用加密算法及其适用场景,有助于开发者在不同的业务需求中做出正确的选择。​ 一、对称加密算法…...

在QWebEngineView上实现鼠标、触摸等事件捕获的解决方案

这个问题我看其他博主也写了,要么要会员、要么写的乱七八糟。这里我整理一下,把问题说清楚并且给出代码,拿去用就行,照着葫芦画瓢。 问题 在继承QWebEngineView后,重写mousePressEvent或event函数无法捕获鼠标按下事…...

LOOI机器人的技术实现解析:从手势识别到边缘检测

LOOI机器人作为一款创新的AI硬件产品,通过将智能手机转变为具有情感交互能力的桌面机器人,展示了前沿AI技术与传统硬件设计的完美结合。作为AI与玩具领域的专家,我将全面解析LOOI的技术实现架构,特别是其手势识别、物体识别和环境…...

Cilium动手实验室: 精通之旅---13.Cilium LoadBalancer IPAM and L2 Service Announcement

Cilium动手实验室: 精通之旅---13.Cilium LoadBalancer IPAM and L2 Service Announcement 1. LAB环境2. L2公告策略2.1 部署Death Star2.2 访问服务2.3 部署L2公告策略2.4 服务宣告 3. 可视化 ARP 流量3.1 部署新服务3.2 准备可视化3.3 再次请求 4. 自动IPAM4.1 IPAM Pool4.2 …...

MySQL的pymysql操作

本章是MySQL的最后一章,MySQL到此完结,下一站Hadoop!!! 这章很简单,完整代码在最后,详细讲解之前python课程里面也有,感兴趣的可以往前找一下 一、查询操作 我们需要打开pycharm …...