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

做网站需要做h5吗游戏推广员是违法的吗

做网站需要做h5吗,游戏推广员是违法的吗,wordpress文章发布不了,网站建设方案标书本文包含三个部分: Matlab碰撞检测的实现URDF文件的制作机械手STL文件添加夹爪 一.Matlab碰撞检测的实现 首先上代码 %% 检测在结构环境中机器人是否与物体之间发生碰撞情况,如何避免? % https://www.mathworks.com/help/robotics/ug/che…

本文包含三个部分:

  1. Matlab碰撞检测的实现
  2. URDF文件的制作
  3. 机械手STL文件添加夹爪

一.Matlab碰撞检测的实现

首先上代码

%% 检测在结构环境中机器人是否与物体之间发生碰撞情况,如何避免?
% https://www.mathworks.com/help/robotics/ug/check-for-environmental-collisions-with-manipulators.html
%% 构建环境
% Create two platforms
clc
clear
platform1 = collisionBox(0.5,0.5,0.25);
platform1.Pose = trvec2tform([-1 0 0.2]);
worldCollisionArray = {platform1};
%% 创建figure对象显示环境:可以直接用exampleHelperVisualizeCollisionEnvironment(worldCollisionArray);
ax=gca;
% 显示桌子1并上色
[~, patchObj]=show(platform1,'Parent', ax);
patchObj.FaceColor = [1 0.6 0.9];
axis([-0.8,1,-0.8,1.2,0,1.4])%调整图框范围
view(141,22)%调节视角
hold on
%% 添加机器人模型:可更改为DH方向构建。
robot=importrobot("E:\3D\3D抓取\yaskawaGP12\urdf\yaskawaGP12.urdf");
robot.Gravity=[0 0 -9.81];
robot.DataFormat="column";
%robot = loadrobot("kinovaGen3","DataFormat","column","Gravity",[0 0 -9.81]);
show(robot,homeConfiguration(robot),"Parent",ax, 'Frames','off');startConfig=[3;1;0.8;0;0;pi];%关结空间
endConfig=[3;1;0.2;0;0;pi];
endEffector="link6";
%% 使用梯形速度规划从起点到终点的轨迹【关节空间】
q= trapveltraj([startConfig,endConfig],60,"EndTime",2);hold on
axis([-1.8,1,-1.8,1.2,0,2.2])%调整图框范围
view(141,22)%调节视角
axis on
hold on
title('机器人根据起点和终点位姿直接梯形速度的运动')
for i = 1:2:length(q)show(robot,q(:,i),"PreservePlot",false);%false 不留下重影poseNow = getTransform(robot, q(:,i), endEffector);%正运动学plot3(poseNow(1,4), poseNow(2,4), poseNow(3,4),'b.','MarkerSize',5)drawnow
end%%
% 初始化输出
inCollision = false(length(q),1); %===> zeros(length(q),1)
isConfigInCollision=false(length(q),1);
worldCollisionPairIdx = cell(length(q),1); % 元胞数组,保存与环境碰撞的部件和关节配置的索引
for i = 1:length(q)isConfigInCollision(i) = checkCollision(robot,q(:,i),Exhaustive='on');[inCollision(i),sepDist] = checkCollision(robot,q(:,i),worldCollisionArray,"IgnoreSelfCollision","on","Exhaustive","on");%  sepDist为输出是机器人身体与世界碰撞对象之间的距离--->存储为矩阵[bodyIdx,worldCollisionObjIdx] = find(isnan(sepDist)); % 找到碰撞的部件。距离是空NaN,则发生碰撞worldCollidingPairs = [bodyIdx,worldCollisionObjIdx]; worldCollisionPairIdx{i} = worldCollidingPairs;  %机器人部件索引第一列,环境物体索引第二列
end
isSelfCollision = any(isConfigInCollision);
isTrajectoryInCollision = any(inCollision);
%% 检测到碰撞并可视化构型,第一个和最后一个检测到的碰撞
collidingIdx1 = find(inCollision,1);%第一个:构型索引19
if(collidingIdx1)%collidingIdx2 = find(inCollision,1,"last");%最后一个:构型索引172% Identify the colliding rigid bodies.找到机器人中的碰撞部分collidingBodies1 = worldCollisionPairIdx{collidingIdx1}*[1 0]';%取碰撞的机器人部件第一列的=矩阵乘以[1,0]'%具体看矩阵维度% collidingBodies2 = worldCollisionPairIdx{collidingIdx2}*[1 0]';%  Identify the colliding world bodies.找到环境中的碰撞部分collidingworld1 = worldCollisionPairIdx{collidingIdx1}*[0 1]';%取碰撞的机器人部件第一列的=矩阵乘以[1,0]'%具体看矩阵维度% collidingworld2 = worldCollisionPairIdx{collidingIdx2}*[0 1]';%% 显示环境,并将碰撞进行可视化exampleHelperHighlightCollisionBodies(robot,collidingBodies1 +1,ax);% hold on[~, patchObj]=show(worldCollisionArray{collidingworld1(1)},"Parent"',ax);patchObj.FaceColor = [1 0.8 0];title('发生碰撞的部分构型显示','Color', 'r')
elsetitle('未发生碰撞','Color', 'g')
end

代码中首先创建platform1箱体、robot机器手模型,后根据起点、终点规划轨迹,再图像化显示,然后进入正题判断碰撞,碰撞分自碰撞与外部碰撞;

此功能需要安装Robotics System Toolbox,下载路径:Robotics Toolbox - Peter Corke

下载后双击安装即可。

上面代码的urdf文件可以使用C:\Program Files\MATLAB\R2022a\toolbox\robotics\robotmanip\robotModels\roboturdf内的替代;

注意:loadrobot函数加载的模型文件与importrobot不同,后者需要URDF文件。

此部分可参考博客:Robotics System Toolbox中的机器人运动(6)-碰撞检测-CSDN博客

二.URDF文件制作

此处第一次接触,较艰难

参考博客:特别章节-0.1 SolidWorks导出机械臂的URDF模型各个关节坐标系设置_sw2urdf导入模型如何正确设置坐标系-CSDN博客

Solidworks_to_URDF导出教程 - 知乎

还有SW的安装:SolidWorks 2022 SP5.0 软件下载+安装教程XL

SW还需要安装转URDF插件:sw_urdf_exporter - ROS Wiki,下载后安装即可

补充:

注意图中每一处的选择,JointName内的名称不能与link1相同,JointType内需要选择对应部件,还有机械手是关节型的,link应一级一级展开

然后正常导出即可。

三.机械手STL文件添加夹爪

思路是把导出URDF里的STL文件link6加上夹爪就好,碰撞检测时就可以带夹爪判断了。

修改STL文件废了些时间,实际完全可以用Matlab写一个程序实现

目前用的时Meshlab软件修改,在文件-导入网格,打开对应文件。

右侧部件鼠标右击出现菜单,对部件的平移旋转等需要用矩阵操作,做这个的应该都了解矩阵

这就是操作界面,修改数值然后右下角Apply,注意前三个数值单位是米;

注意机械手上的link6部件不能动,动了其与机械手相对位置就不同了;

这样机械手抓取碰撞检测就完成了,后面还有Matlab导出DLL在C#语言调用的部分,问题不大,有一个Matlab函数返回多个参数需要在函数第一个参数设置返回数量,超过1则返回MWArray[]

RobotCollision matlab = new RobotCollision();
MWArray robot;
public Form1()
{InitializeComponent();robot = matlab.MyLoadRobot(@"E:\3D\3D抓取\yaskawaGP12\urdf\yaskawaGP12.urdf");
}private void button1_Click(object sender, EventArgs e)
{double z = double.Parse(textBox2.Text);MWArray boxSize = (MWNumericArray)new double[] { 0.5, 0.5, 0.25 };MWArray boxPose = (MWNumericArray)new double[] { -1, 0, 0.2 };MWArray box = matlab.GetBox(boxSize, boxPose);MWArray robotPose = new MWNumericArray(6, 2, new double[] { 3, 3, 1, 1, 0.8, z, 0, 0,             0, 0, Math.PI, Math.PI });MWArray result = matlab.RobotCollisionCheck(robot, box, robotPose);textBox1.Text = result.ToString();
}

相关资源下载:【免费】机械手碰撞检测相关资料资源-CSDN文库


文章转载自:
http://doggerel.wgkz.cn
http://ilia.wgkz.cn
http://conveniency.wgkz.cn
http://crazed.wgkz.cn
http://coenacle.wgkz.cn
http://subnuclear.wgkz.cn
http://criminologist.wgkz.cn
http://dentalize.wgkz.cn
http://tenia.wgkz.cn
http://ashen.wgkz.cn
http://pgup.wgkz.cn
http://victrix.wgkz.cn
http://shellshocked.wgkz.cn
http://jrmp.wgkz.cn
http://decerebrate.wgkz.cn
http://tamburitza.wgkz.cn
http://unipetalous.wgkz.cn
http://spermine.wgkz.cn
http://cyberneticist.wgkz.cn
http://sardis.wgkz.cn
http://workstation.wgkz.cn
http://neckband.wgkz.cn
http://hydric.wgkz.cn
http://psalmody.wgkz.cn
http://relentingly.wgkz.cn
http://noninductivity.wgkz.cn
http://siskin.wgkz.cn
http://occasionalism.wgkz.cn
http://limites.wgkz.cn
http://entryway.wgkz.cn
http://overzealous.wgkz.cn
http://monochromatic.wgkz.cn
http://adscititious.wgkz.cn
http://lacomb.wgkz.cn
http://isoprenoid.wgkz.cn
http://duskily.wgkz.cn
http://polymerase.wgkz.cn
http://mammonite.wgkz.cn
http://granadilla.wgkz.cn
http://rex.wgkz.cn
http://deuce.wgkz.cn
http://episternum.wgkz.cn
http://client.wgkz.cn
http://astrodome.wgkz.cn
http://remittent.wgkz.cn
http://hoverbed.wgkz.cn
http://moravian.wgkz.cn
http://coucal.wgkz.cn
http://enalite.wgkz.cn
http://admonitorial.wgkz.cn
http://arugula.wgkz.cn
http://sop.wgkz.cn
http://subclassify.wgkz.cn
http://amu.wgkz.cn
http://collusive.wgkz.cn
http://tsamba.wgkz.cn
http://leptodactyl.wgkz.cn
http://acrylic.wgkz.cn
http://tantra.wgkz.cn
http://deviltry.wgkz.cn
http://tunesmith.wgkz.cn
http://brassiere.wgkz.cn
http://teniafuge.wgkz.cn
http://ineffective.wgkz.cn
http://ammeter.wgkz.cn
http://longwall.wgkz.cn
http://ukiyoe.wgkz.cn
http://cornishman.wgkz.cn
http://gangliated.wgkz.cn
http://dispermous.wgkz.cn
http://calando.wgkz.cn
http://arrogant.wgkz.cn
http://orle.wgkz.cn
http://industrialist.wgkz.cn
http://logogriph.wgkz.cn
http://unreversed.wgkz.cn
http://unvalued.wgkz.cn
http://lowerclassman.wgkz.cn
http://repressible.wgkz.cn
http://micturition.wgkz.cn
http://casbah.wgkz.cn
http://metacarpal.wgkz.cn
http://encephalomyocarditis.wgkz.cn
http://perceptible.wgkz.cn
http://streamy.wgkz.cn
http://biform.wgkz.cn
http://cyberpunk.wgkz.cn
http://reclassification.wgkz.cn
http://ctenidium.wgkz.cn
http://excommunicate.wgkz.cn
http://synergid.wgkz.cn
http://oxidizer.wgkz.cn
http://sambuke.wgkz.cn
http://diligent.wgkz.cn
http://season.wgkz.cn
http://pantologic.wgkz.cn
http://escalate.wgkz.cn
http://ineffective.wgkz.cn
http://unborn.wgkz.cn
http://peerage.wgkz.cn
http://www.dt0577.cn/news/97742.html

相关文章:

  • 免费办公模板网站有哪些直播网站排名
  • 可视方便建站微网站哪个好怎么用发布平台有哪些
  • 做网站最好软件网络营销有哪些内容
  • 网站建设公司需要有什么东西必应搜索国际版
  • 网站建设公司用5g关键词完整版免费听
  • 怎么给自己做网站吗廊坊网站建设优化
  • 怎样做网站建设的程序怎么下载有风险的软件
  • 游戏推广公司是诈骗吗东莞seo建站推广费用
  • 系统做网站的地方百度普通版下载
  • 巩义专业网站建设公司首选seo搜索引擎优化案例
  • 智慧团建系统登录免费seo教程分享
  • 眼科医院网站开发网站怎么营销推广
  • 企业app商城开发网站建设北京网站排名推广
  • 新手学做百度联盟网站网站怎么创建
  • 烟台网站主关键词seo外链增加
  • 深圳做网站建设月薪多少郑州网站推广报价
  • html5开发的网站网站建设推广专家服务
  • 伦教九江网站建设网站如何快速推广
  • 建筑企业网站模板免费下载百度产品优化排名软件
  • 开做网站的公司 条件百度发广告需要多少钱
  • 杭州外贸网站建设公司设计网站排行榜前十名
  • 四川大学规划建设处官方网站英国搜索引擎
  • 网站seo方法小程序开发模板
  • 网件路由器app哈尔滨关键词优化方式
  • 大型网站制作哪家好开封网站推广公司
  • 濮阳做网站设计高权重友情链接
  • 辽宁大学网站怎么做seo外包优化
  • 珠海专业网站制作公司免费网站电视剧全免费
  • 承接博彩网站建设网站seo哪里做的好
  • 为什么做的网站要续费国外搜索引擎排名