昆明中小企业网站建设上海中风险地区清零

web/2025/10/8 5:48:54/文章来源:
昆明中小企业网站建设,上海中风险地区清零,长沙房价,公众号如何开通全世界只有3.14 % 的人关注了爆炸吧知识如果说机器人是一粒种子#xff0c;那么《机器人大擂台》这档节目就是那个播种人。节目中#xff0c;不同选手操纵着机器人#xff0c;在擂台上各显神威 —— 冲撞、翻滚、撬杠、喷火等各种技能#xff0c;总能令人眼花缭乱#xff… 全世界只有3.14 % 的人关注了爆炸吧知识如果说机器人是一粒种子那么《机器人大擂台》这档节目就是那个播种人。节目中不同选手操纵着机器人在擂台上各显神威 —— 冲撞、翻滚、撬杠、喷火等各种技能总能令人眼花缭乱同时点燃心中关于机器人的各种幻想。图片来自 https://giphy.com/gifs/‍如今的机器人应用广泛机器人技术也开始源源不断地向人类活动的各个领域渗透机器人分拣系统和随处可见的无人机。例如机器人分拣系统显著地提升了物流公司货物配送的效率另一个例子是无人机。如果说分拣机器人还属于各大物流公司的核心机密如下凡天仙一般平日里难得一睹芳容那无人机早已化身邻家女孩平易近人地装点着我们的生活机器人的发展不会止步于此。2020年以来新基建概念大热其三大方向更是与机器人产业密切相关。教育机器人、送餐机器人、情感机器人及自动驾驶技术都是机器人及自动化技术的下一个重要落地目标动图来自《美国国家地理》银河补习班里有句经典台词“我的孩子上的是全世界最好的补习班银河补习班。”今天MATLAB就为你带来宇宙最强机器人补习班手把手教你如何建造属于自己的机器人 许多人认为 MATLAB 是数学或教育软件。事实上MATLAB 最初被广泛采用是在控制工程领域随后开发了多种技术领先的算法包和工具箱并被全球各大高校广泛采纳为数学教育软件 [1]。即将进入机器人补习班的你准备好了吗第一步安装机器人工具箱工欲善其事必先利其器我们首先需要安装 MATLAB 的机器人工具箱Robotics System Toolbox。我们既可以上MathWorks 官网 [2] 下载又可以通过打开 MATLAB 主界面单击“添加项”Add-Ons 选项进行操作。然后在搜索栏中输入 “Robotics System Toolbox”进入第一个搜索结果即可安装目前软件已更新至最新版本R2020a增加更多功能小伙伴可以尝试康康操作完成后打开 MATLAB 并输入 ver 如果能找到如下信息Robotics System Toolbox Version 2.x (Rxxxxx) 那么恭喜机器人工具箱已安装成功第二步你想要什么样的机器人建模是关键我们要设计的第一个机器人是一条可以自由转动的机械手臂。在 MATLAB 中机械手臂由不同的连杆Link通过关节Joint拼接而成。依活动状态分关节又可分为旋转型和平移型其意义顾名思义 [2]旋转型与平移型连杆为简单起见我们先创建一个三连杆的机械臂%设置 DH 参数dhparams [0 pi/2 0 0; 0.4318 0 0 0; ]; robot  rigidBodyTree; % 初始化机械臂body1  rigidBody( body1 ); % 定义第一个连杆jnt1 rigidBodyJoint( jnt1 , revolute ); % 定义第一个关节setFixedTransform(jnt1,dhparams(1,:), dh ); body1.Joint  jnt1; % 给底座加上关节addBody(robot,body1, base ) % 定义机械臂为机器人的底座 % 添加第二、三只连杆body2 rigidBody( body2 ); jnt2 rigidBodyJoint( jnt2 , revolute );body3 rigidBody( body3 );jnt3  rigidBodyJoint( jnt3 , revolute );setFixedTransform(jnt2,dhparams(2,:), dh );setFixedTransform(jnt3,dhparams(3,:), dh );body2.Joint jnt2;body3.Joint  jnt3; 上面的 dhparams 是一个 n*4 矩阵n 是机械臂的个数被称为 DH 参数Denavit–Hartenberg parameters。dhparams 的每一行由 [a alpha d theta] 四个变量组成它们分别表示a: 关节垂直连杆方向的偏移量alpha: 关节扭曲角度垂直于两个连杆构成的平面的角度d: 关节朝着连杆方向的伸长量theta: 关节起始旋转角度平行于两个连杆构成的平面的角度如果不小心忘了我们搭建的机器人长啥样那么下面的命令 showdetails(robot) 可以帮助我们回忆起它的基本特征而输入下面的命令我们即可一睹该机械手臂的庐山真面目addBody(robot,body2, body1 )addBody(robot,body3, body2 )show(robot); % 画图 因为我们只搭建了最基本的连杆和关节所以这个机械手臂难免有些瘦骨嶙峋。不过如果我们把上面的图片放大就可以看到每个连杆、关节的名字、序号和类型具体信息此外我们还可以给连杆和关节赋予诸如质量、转动惯量、惯性矩阵之类的参数此处限于篇幅故略去之有兴趣的小伙伴可以参考链接 [1] 或 [2]。实践出真知理解以上概念最好的方式就是逐个调整代码中的参数观测结果变化。第三步看它左手右手一个慢动作我们已经知道如何用 MATLAB 搭建一个简单的机器人了。然而这样搭建的机器人和小朋友用积木搭建的玩具并无二致 —— 既然是用软件做成的机器人我们自然希望它能动起来。我们以加拿大机器人公司 Kinova 的第三代机械臂为例来看看 MATLAB 如何让这支麒麟臂动起来。图片来自 https://www.kinovarobotics.com/en/products/gen3-robot在 MATLAB 界面中输入 robot loadrobot(kinovaGen3); showdetails(robot) 我们可以看到输出如下 不难看出第三代 Kinova 是由 8 根连杆和 8 个关节拼接而成。如果我们要想知道某个具体连杆的信息例如名叫 “Shoulder_Link” 的连杆 依次输入 robot.getBody( Shoulder_Link ).Joint robot.getBody( Shoulder_Link ).Joint.JointToParentTransform robot.getBody( Shoulder_Link ).Joint.ChildToJointTransform 即可分别查询属于该连杆的关节以及关节到母连杆和子连杆的转移矩阵。如此一来我们就可以从这种方法重建出第三代 Kinova 机械臂了现在我们有两种方法可以让让机械臂动起来。第一种方法是通过变换关节旋转角度的方式这种方法叫正运动学Forward kinematics第二种方法是通过给定每个连杆末端位置这种方法叫逆运动学Inverse kinematics。正运动学可以很方便地对机械臂进行直接操控而逆运动学则更有利于直接指定机械臂完成任务例如抓取处于某位置的快递等等。这两种方法各有千秋。有几何背景的读者知道n 维欧式空间中的刚体形变可分为平移Translation、旋转Rotation和镜像Reflection三种这三种变化可以用群作用或者矩阵来表示。由这三种作用组成的群叫做欧几里得群Euclidean Group记作 E(n)因为 E(n) 中的元素都可以用矩阵表示所以 E(n) n1 阶矩阵群的子群具体解释见下图。群 E(n) 中只由平移和旋转不含镜像构成的子群叫做特殊欧几里得群记作 SE(n)。下面我们 MATLAB 中的逆运动学函数 inverseKinematics 来让机械臂动起来。我们只需要定义出机械臂所要经过的几个路径点的位置、速度以及加速度MATLAB 即可通过对特殊欧几里得群求逆来计算出整个机械臂所经过的路径以及每个时刻的速度以及加速度等信息。% 关节起始旋转角及初始位置positions [2*pi, 0.2619, pi, 4.0142, 2*pi, 0.9598, pi/2];config homeConfiguration(robot);for k 1:length(positions) config(k).JointPosition positions(k);end % 定义机械臂需要通过的路径点以及对应速度、加速度信息waypoints [0.5639 0.0013 0.4336] [-0.1 0.2 0.4 ; -0.2 0 0.1 ; -0.1 -0.2 0.4 ;] ;waypointTimes 0:4:8;ts 0.2;trajTimes 0:ts:waypointTimes(end);waypointVels 0.1 *[ 0 1 0; -1 0 0; 0 -1 0;] ;waypointAccels zeros(size(waypointVels));waypointAccelTimes diff(waypointTimes)/4;[q,qd,qdd] trapveltraj(waypoints,numel(trajTimes), ... AccelTime ,repmat(waypointAccelTimes,[3 1]), ...              EndTime ,repmat(diff(waypointTimes),[3 1])); % 画出初始状态%% 画图--机械臂show(gen3,config, Frames , off , PreservePlot ,false);hold on%% 画图--路径初始化hTraj  plot3(waypoints(1,1),waypoints(2,1),waypoints(3,1), b.- );set(hTraj, xdata , q(1,:), ydata , q(2,:), zdata , q(3,:));%% 画图--路径点plot3(waypoints(1,:),waypoints(2,:),waypoints(3,:), ro , LineWidth ,2);set(gca, Position , [-.2, -.2, 1.5, 1.5]);xlim([-1 1]), ylim([-1 1]), zlim([0 1.2]); 机械臂的初始位置。红色点表示机械臂所要经过的路径点% 初始化机械臂的逆运动学方程ik inverseKinematics( RigidBodyTree ,robot);ikWeights [1 1 1 1 1 1];ikInitGuess  robot.homeConfiguration; % 随机设置一个初始状态 % 让机器人动起来for idx 1:numel(trajTimes) % 解逆运动学方程 tgtPose trvec2tform(q(:,idx) );    [config,info]  ik( EndEffector_Link , tgtPose,ikWeights,ikInitGuess);    ikInitGuess  config; % 以上一时刻的状态作为下一时刻的初始值% 画出机器人的动态    show(robot,config, Frames , off , PreservePlot ,false);    title([ Trajectory at t    num2str(trajTimes(idx))]) drawnow end 最后得到的轨迹图如下有兴趣的读者可以修改上面代码中的参数例如路径点的位置、机械臂的速度加速度等来看看结果会出现怎样的变化。更高级的智能在实际使用中除了要让机器人会动外还需要赋予它们自主性。在本节中我们希望机器人拥有路径规划以及障碍躲避的能力让我们来一起见证什么是更高级的智能。我们以即时定位与地图构建算法Simultaneous localization and mappingSLAM作为例子。该算法可以通过著名的卡曼滤波Kalman Filter来得以实现。在如雷达、声呐、天气预报、火箭发射、计算机视觉、控制理论等诸多工程应用中都离不开卡曼滤波的身影。从抽象角度看来卡曼滤波无非就是传感器不断根据外部环境调控机器状态的一种装置。记机器状态 x 位置、速度等传感器测量的外部环境变量为 z温度、气压等可调控的变量为 u 电磁波发射频率、前进方向等v 和 w 分别表示机器和传感器误差那么卡曼滤波可以表达为一个数学模型k 表示离散的时刻。如果 f 和 h 都是线性矩阵那直接让上面两式对 x, z 分别求偏导数然后再更新 x 和 z 的值即可F_a, H_a 分别表示 f 和 h 对变量 a 的偏导数向量如果 f 和 h 并非线性由于误差项的累计直接简单粗暴地线性化势必会带来更大的误差。为此人们采用预测-更新Predict-Update两阶段算法来解决非线性的卡曼滤波问题 —— 在预测阶段我们不仅要预测机器的状态 x还要预测卡曼滤波的矩阵 P。这种算法叫扩展卡曼滤波Extended Kalman FilterEKF是 SLAM 的灵魂所在有兴趣的读者可参考文献 [2]。Pk 是卡曼滤波在时刻 k 的协方差矩阵该矩阵在更新变量 x 时会起到作用推导过程令人头秃那我们来看一看代码及实现过程吧% 初始化机器人及起始点、终点% 我们的目的是希望机器人能顺利躲过障碍物并到达终点map  LandmarkMap(20, 10); % 10*10 地图20 个障碍物V  diag([0.005, 0.5*pi/180].^2); % 机器每个步长的误差矩阵robot Bicycle( covar , V); % 初始化机器人robot.add_driver( RandomPath(10)); % 定义终点% 定义传感器% angle传感器扫射角度范围% range传感器扫射距离W  diag([0.1, 1*pi/180].^2); % 传感器每个步长的误差矩阵sensor  RangeBearingSensor(robot, map,  covar , W, ...    animate ,  angle , [-pi/2 pi/2],  range , 5); % 初始化 EKF 并运行 150 个步长P0 diag([0.005, 0.005, 0.001].^2); % 卡曼滤波初始时刻的协方差矩阵ekf  EKF(robot, V, P0, sensor, W, []);ekf.run(150); 上图中蓝色三角形表示机器人红色菱形表示目标粉红色扇形表示传感器扫查范围造机器人就是如此简单读到这里相信大家对 MATLAB 的机器人工具包已经有了充足的认识。身边无人陪伴倍感孤独—— MATLAB 帮你打造属于你自己的机器人 机器人行业快速发展的同时要面临各种各样的机遇和挑战。MATLAB 的机器人工具包也一样仍需不断的革新和研发在以下方面得以改善工具包没有覆盖机器视觉方面的内容因此机器人的传感器只能处理非图像环境信息。要想给机器人加一双眼睛需要下载计算机视觉工具箱Computer Vision Toolbox或图像处理工具箱Image Processing Toolbox工具包无法利用大数据这在高度信息化的今天对机器人的成长是不利的。要想让机器人拥有大数据处理技能需要统计及机器学习工具箱Statistics and Machine Learning Toolbox或深度学习工具箱Deep Learning Toolbox。 小时候在看《终结者》、《黑客帝国》等科幻电影时总认为像“机器人三定律”这样的元素离真实世界还很遥远。然而随着计算机视觉、机器学习、深度学习等人工智能相关领域的迅速发展这些科幻电影里的元素会离现实越来越近。小编希望这篇文章能对大家有所启发真正的学习要从兴趣开始而总有一天你我会圆梦在今朝 号外5月28日北京时间13:30线上技术研讨会机器人与人工智能专题加速智能化融合提高产品开发效率开播感兴趣的小伙伴可以扫描二维码或点击阅读原文报名参与哟参考文献[1]https://ww2.mathworks.cn/campaigns/products/trials.html?prodcodeROs_eidPEP_23398[2] https://ww2.mathworks.cn/products/robotics.html?s_eidPEP_23398[3] 蔡自兴, 谢斌. 《机器人学》. 清华大学出版社; 2000.[4]https://www.mathworks.com/matlabcentral/fileexchange/71130-trajectory-planning-for-robot-manipulators

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

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

相关文章

重庆网站seo技术做h5免费软件有哪些

一,查阅数据手册,找到对应的IO口和外设总线并配置好外设源文件 想了解USART的具体原理的小伙伴请进传送门:(总结)STM32中USART原理及应用(PC、BLE、ESP8266通信实现)-CSDN博客 二,打…

四川住房城乡建设厅网站电话好看的wordpress博客主题

分类预测 | Matlab实现SSA-CNN-SVM麻雀算法优化卷积支持向量机分类预测 目录 分类预测 | Matlab实现SSA-CNN-SVM麻雀算法优化卷积支持向量机分类预测分类效果基本描述程序设计参考资料 分类效果 基本描述 1.Matlab实现SSA-CNN-SVM麻雀算法优化卷积支持向量机分类预测&#xff0…

深圳英文网站推广wordpress汉化自适应主题

赋值操作符 在变量创建的时候给⼀个初始值叫初始化,在变量创建好后,再给⼀个值,这叫赋值。 int a 100; // 初始化 a 200; // 赋值,这⾥使⽤的就是赋值操作符赋值操作符 是⼀个随时可以给变量赋值的操作符&#x…

天津网站优化怎么样建设网站手机版

java虚拟机是一款可以运行Java代码的虚拟计算机软件。java虚拟机是根据规格描述将java解释器移植到指定计算机上,就能保证经过用户编译的任何Java代码能够在虚拟系统上完美运行。java虚拟机功能介绍java虚拟机一种用于计算机设备的规范,可用不同的方式(软…

网站seo优化有哪些免费推广网手机版

1.2.3 嵌套案例 学习目标 这一节,我们从 基础知识、简单实践、小结 三个方面来学习。 基础知识 简介 这里的嵌套实践,与选择语句的嵌套实践基本一致,只不过组合的方式发生了一些变化。常见的组合样式如下:while嵌套while语句…

沈阳快速网站建设网站开发营销团队名称

ibdump用于捕获和转储InfiniBand网络的流量。 这种工具通常用于调试和分析InfiniBand网络问题,包括性能瓶颈和配置错误。ibdump工具在Mellanox InfiniBand环境中较为常用,现由NVIDIA提供支持。 使用ibdump的基本步骤 请注意,您需要在安装了…

学校网站模板 红色信息发布型网站建设的特点

〇、背景 开发者大比例习惯都是Windows下编辑代码,比如使用Windows的Visual Studio Code进行代码的开发。但不管是AOSP还是鸿蒙开发,目前都不支持windows本地环境编译的,建议使用Ubuntu操作系统环境对源码进行编译。 因此,没有U…

龙岗网站推广大连甘井子区房价

我们经常在实际开发中会用到一些转换类,比如在金融界中,我们需要将1转换为“壹”,2转换成“贰”。还有类似这样的需求,食堂在一周内每天的菜单都是不一样的,周一为鱼香肉丝鸡腿,周二为爆炒土豆丝鲅鱼&#…

1150网站建设服务器主板wordpress您找的页面不存在

信源/信道编码的目的和种类? 这个图是每个人在学习通信原理的时候,都会遇到的图。包含了三要素:信源、信道和信宿。这个图直接可以回答最开始的问题,所谓信源编码就是针对信源编码,所谓信道编码就是针对信道编码。 有…

建网站的服务器平面广告设计培训班费用

html {height:100%; } body {padding:0;margin:0;background:url(images/Starry.jpg) no-repeat;background-size:100% 100%;position:absolute; } https://blog.csdn.net/annaluo/article/details/78280251

网站购买流程wordpress副标题函数

先上图片 一实现逻辑 我们知道element颜色默认为灰色,首先便签名称是唯一的,我的实现逻辑是后端传给前端 含有颜色,名称的数组,然后vue记录一个对象{名称 > 颜色},当用户选择标签之后,触发 点击事件&…

做游戏门户网站要注意什么意思公司网站优化推广

先拍个脑袋 市面上对于kubernetes集群的管理平台其实不算少,但常用的就那么几个,比如厚重的rancher,比如老而弥坚的kube-dashboard,以及集成了很多其他功能的kubeSphere等,但和其他开源项目一样,为了满足大…

新乡网站关键词优化网站服务器异常是什么意思

博主介绍: ✌我是阿龙,一名专注于Java技术领域的程序员,全网拥有10W粉丝。作为CSDN特邀作者、博客专家、新星计划导师,我在计算机毕业设计开发方面积累了丰富的经验。同时,我也是掘金、华为云、阿里云、InfoQ等平台…

湟中县公司网站建设如何快速建一个网站

linux内核中存在一个信号SIGIO,这个信号就是用于实现信号驱动IO的。当应用程序中想要以信号驱动IO的模型读写硬件数据时,首先注册一个SIGIO信号的信号处理函数,当硬件数据就绪,硬件会发起一个中断,在硬件的中断处理函数中向当前进…

吉林门户网站建设深圳市勘察设计

首先点击试用版本,进入软件,再依次进行一下操作 一、在idea的Plugins配置中添加Z大的插件市场 上图中加载出来的插件是默认的,大家不用在意,直接点击“Manage Plugin Repositoryies…”打开配置弹窗 点击号,添加一行…

绍兴做团购的网站广州设计公司前十名

ubuntu24.04安装Kubernetes1.30.0(kubernetes1.30.0)高可用集群 一、总体概览 目前最新版的K8S版本应该是1.31.0,我们安装的是第二新的版本1.30.0,因为有大神XiaoHH Superme指路,所以基本上没踩坑,很顺利就搭建完成了。所有的机器都采用的最新版Ubuntu-Server-24.04长期支…

专业手机网站建设企业自己做影视网站怎么找代理商

一.tensor创建 1.张量的定义 张量在形式上就是多维数组,例如标量就是0维张量,向量就是一维张量,矩阵就是二维张量,而三维张量就可以想象RGB图片,每个channel是一个二维的矩阵,共有三个channel&#xff0…

泰安网站建设哪里有安阳手机网站制作

Android 为了让我们能够更加方便的管理数据库,特意提供了一个SQLiteOpenHelper帮助类,通过借助这个类就可以非常简单的对数据库进行创建和升级。 SQLiteOpenHelper是一个抽象类,我们要创建一个自己的帮助类去继承它。SQLiteOpenHelper有两个抽…

北京的电商平台网站不用域名访问网站

四:异常的处理 (2)try-catch捕获并处理 throws 对异常并没有处理,而是将异常报告给抛出异常方法的调用者,由调用者处理。如果真正要对异常进行处理,就需要try-catch 语法格式: 语法格式&#…

盱眙网站制作如何建造自己的网站

目录 Spring-Boot配置文件 注意: YAML简介 YAML基础语法 YAML:数据格式 YAML文件读取配置内容 逐个注入 批量注入 ConfigurationProperties 和value的区别 Spring-Boot配置文件 Spring-Boot中不用编写.xml文件,但是spring-Boot中还是存在.prope…