学生休息室

分享技术和现实生活中的例子,学生如何在他们的日常项目中使用MATLAB和Simulink # studentsuccess金宝app

剑桥大学计算机科学综合设计项目

弗朗西斯科·Ciriello博士在英国剑桥教育基于客户成功的工程师。

2021年1月和3月之间,我辅导两个从剑桥大学的学生团队IB组织设计项目的一部分。每个团队花了七个星期开发项目基于最初的简短概述。两支球队显示特殊技能、创造力和职业道德。很少有经验使用MathWorks软件,他们能够提供复杂的集成项目,结合MATLAB,仿真软件,Simscape多体,虚幻引擎4和一套工具箱。金宝app康奈尔大学和我渴望得到团队分享他们的经验。这是他们告诉我们的故事。

项目# 1:俄罗斯方块寄售

康纳雷德芬,马库斯·亚历山大·卡米9月安娜拉杜,维克托•Mirjanic穆罕默德Imtiyaz Miah,乔·奥康纳计算机科技、剑桥大学、英国剑桥大学(最令人印象深刻的技术成就的赢家]

3 d打印技术很酷,对吧?3 d打印机和一些知识,你可以让任何东西——人们艺术、微型城市,甚至分子模型和衣服! 然而,它也可以是昂贵的,所以有很多来帮你印刷的公司,这些公司面临一个问题:他们怎么能自动化包装过程当他们生产的东西没有标准形状或大小?这就是我们的项目,一个机器人决定一种有效的方式为运输包装物品进盒子里。

建立一个MATLAB机器人

一个自治系统大致可以分为四个子系统,这些操作在一个循环中:传感(输入),计划(决定要做什么)、控制(如何做你的计划)和动作(制定计划)。我们的模拟机器人也有类似的子系统:一个扫描图像处理器环境和输送机输出对象的位置和大小,流程优化,计算出对象应放置的地方,和一个处理机器人运动规划和控制模块。当然,我们还必须设置环境机器人将在输送机,运输箱、物品和机器人本身。

图表示数据流的项目

三角洲的机器人

δ机器人是一种相对常见的机器人设计用于“挑选和地方”操作:选择的东西,放到别处。加上其相对简单,这使它适合我们的项目。这设计本身由一个基地,三个手臂和一头:

底部有三个马达,使手臂独立活动。设计确保了“头”总是平行于基地,所以移动武器只会在3 d空间;不发生旋转, 

我们的机器人配备了一个真空的头小,吸水力应用于附近的对象——这就是用来接/放下对象。在真实的场景中,使用最好的头是由材料和打印的最大尺寸,但真空 成就了一个替身

虽然没有直接连接到三角洲机器人,我们的系统还包含两个传送带,由相同的系统控制机器人。输送机是一个输入输送机,物品装到,和其他拥有机器人然后包。 盒子

图像处理器

有各种各样的传感器在实际环境中,和各种各样的方式模拟仿真软件。金宝app我们去了一个相对简单的方法:利用Simscape多体转换传感器。改变传感器可以用来测量相结合的三维位置和旋转参考系之间。PS-金宝appSimulink块可用于传感器输出转换成信号。在下面的图中,您可以看到转换传感器设置的重要对象,然后将这些数据流由MATLAB函数块之前被送入其他子系统,如控制模块和流程优化器。

流程优化器

流程优化器子系统接收的所有对象的坐标目前在包装盒子,一起维度长方体的边界框。然后需要输出一个位置项目可以同时考虑未来的项目可能被放置的地方。要做到这一点,我们必须解决两个问题:我们怎么知道空间的包装盒子是空的?和这些空的空间最优将项目吗?

通过投影截面物品的包装盒子,我们得到一个2 d占据空间的影子在一个特定的高度。我们计算空间在二维平面上,这是一个3 d变体相比更易于管理的问题。这样在不同高度截面的包装盒子,我们得到一个空的空间的三维图像在整个包装盒子。

这导致一组交付盒子里的空地,我们把项目以最低的高度。如果有两种不同的候选人职位在相同的高度,我们试图将项目尽可能靠近角落。研究人员发现这是一个很好的启发,所以我们希望这个方法可以尽可能多的物品适合交付盒。

计划和控制

计划和控制模块是自治的核心系统。需要感觉输入的图像处理器,包含信息的下一个项目包装,和所需的结束位置项,这是优化器发送的过程。计划和控制模块,顾名思义,两个阶段:计划和控制。规划时,需要生成一个路径——一个序列的职位从当前位置到期望的位置。一旦路径被计算,然后进入控制阶段,计算精确的扭矩(部队)汽车需要应用沿着路径移动手臂顺利。

挑战

的一个关键问题我们面对整个项目是仿真速度。罪魁祸首是物品之间的接触力和航运盒子。这些部队已经无阻尼micro-oscillations大幅放慢我们的模拟。有时我们运行在500 x比实时慢。环境必须通过多个修正,直到成为可控的速度。这个问题影响了控制子系统。为了弥补缓慢的模拟,我们增加了一步我们解算器的大小限制。这确实加快速度,但现在δ机器人数值不稳定!看周围混乱的舞蹈是迷人的,但我们必须做点什么。最终,我们发现正确的路径,机器人运动是稳定的。 But, if it were to move just a few centimeters higher, everything would break.

结论

没有必要浪费时间弄清楚如何包装你的14个新3 d印刷恐龙。我们的系统数据,以及为你做使用机械手臂!我们开发这个系统,学到了很多,关于自治系统和工具MATLAB,仿真软件和Simscape帮助我们意识到这样的一个系统。金宝app我们的代码可以在GitHub,可以在自己的计算机上运行。

项目的视频

GitHub库

项目# 2:西方剑桥空运

爱德华•Weatherley Naunidh Dua,汤姆·帕特森托比Adelena,安东尼娅博卡和尼古拉·吉奥吉夫,计算机科学系,剑桥大学,英国剑桥(亚军最令人印象深刻的职业成就)

问题描述

我们负责自主无人机的发展输送系统为轻量级的剑桥包在西部交通网站。

实现

我们提出这个项目作为一个适应现有MathWorks示例项目,(无人机包裹递送]。这个项目最初支持一个无人机飞行根据特定的指示作金宝app为QGroundControl中转地点,以及避障在两点之间的路径。我们设定一个逼真街区模式来自芝加哥。

这个系统包括几个部分:

  • 一个用户界面允许皮卡和下车地点的规范
  • 剑桥西方网站的3 d模型
  • 一个路由算法计算建筑之间的一个有效的路径跟随
  • 一个调度算法决定的顺序交付任务
  • MAVLink接口通过地面控制模块可以与无人机通信

用户界面

我们使用MATLAB的应用程序UI设计师创建新的地面控制无人机的输入新任务所必需的。我们发现MATLAB的geoaxes适合绘制的地图西剑桥,无人机和不同的路线。我们的用户界面是配备一组命名为皮卡和交付地点可供选择。它还允许用户指定他们自己的位置的纬度/经度坐标,可以读出 坐标轴

作为主要面向用户层,UI已正确地采取用户的输入和它与其他组件进行通信。我们创建回调函数当无人机土地以及更新无人机的UI所触发的逻辑地位StateFlow块模型。金宝appc++的一个包装器调度算法(编译成一个墨西哥人)使调度任务点的UI和缓存和数据。收到预定的交付,中间任务添加到交付之间的无人驾驶飞机,飞然后UI使用MAVLink接口发送一个坐标数组。

西方剑桥模型

西剑桥模型是搅拌机使用GIS数据插件导入地面纹理,轮廓和基本模型。然后添加一些阴影和烤建筑纹理图像到一个完全可以出口到虚幻。不真实的项目可以被打包并插入块的场景在现有仿真软件模型,用于仿真。金宝app

路由算法

我们选择使用RRT *算法来计算建筑物之间的路线。我们可以指示无人机直接建筑,然而显示,我们可以以这种方式直接周围的无人机为无人机导航提供了一个概念验证更多的城市环境中,与建筑高多了。我们背后的原因选择RRT * A *算法计算时间太长路线交货由于它产生一个绝对最优路线。这使得无人机显得反应迟钝,因为它需要很长的暂停运行的任务。另一方面,RRT *提供了一个更快速的计算和不显著增加无人机需要旅行的距离足以 失去获得快速计算的时间

我们还需要提供一个路由算法在入住率地图,显示建筑物的地方。这是获得在搅拌机使用Python API,允许我们提取建筑物的顶点,以及样品的高度地面使用投影的每一点。

调度算法

的另一个重要部分项目是设计一个有效的算法来调度多个任务。有很多事情要考虑,如无人驾驶飞机的电池寿命或我们是否能够设计一种算法对多个 无人机

经过调查后,我们发现存在一些有趣的库,解决车辆路径问题,允许开发者添加个性化的约束(一个例子是谷歌的或工具库)。然而,原来在我们的MATLAB集成这些项目是不可行的,所以我们专注于找到一个高效的算法,输出好近似 路线

调度算法的基本思想是使用上面提到的距离计算的路由算法为每个可能的上升点和交付点对的给用户的界面。当然,这样做在每个调用调度程序是低效的,所以我们使用缓存来保存这些路线,以防它们 重用

接下来,该算法试图固定数量的随机排列的任务的列表并选择最好的安排。我们定义最好的安排是一个最小化的欧氏距离计算路线。试验的数量是一个常数,可以修改,我们持续到100(小规模的项目),但当然,这可以为更大的任务集, 

决定在c++代码的这部分项目主要是为了方便,和部分的速度。数据结构如c++标准库向量是易于使用的洗牌任务的顺序。

MAVLink接口

无人机和地面控制站之间的通信是使用MAVLink协议进行的。在每个任务的开始,地面控制发送一个指令序列包含的无人驾驶飞机的路线是由路由算法和分配给无人机通过调度算法。当无人机接收到这些任务指令,它使用PID控制器调整偏航、俯仰和滚为了搬到所需的路标。

无人驾驶飞机到达目的地时,土地信号发送回的地面控制站触发调度算法来获取下一个路线和寄给无人机。

测试

对于任何项目,必须确保所有的单位工作,以及集成。我们使用MATLAB的单元测试功能来完成这个。这让我们学习太慢,A *算法允许我们压力测试RRT *算法,这样我们可以调整参数,并获得路线的复杂性的增加可以找到,以及记忆常用的路线的速度增加。我们同样的测试和压力测试项目的其他部分,如调度算法和 UI

为什么模金宝app型?

金宝app仿真软件是我们项目的一个重要工具。它使我们迅速改变无人机的行为使用提供的工具箱。此外,我们可以迭代设计过程而不用担心真正的无人驾驶飞机飞行将引入的风险,如在测试我们的路由算法。金宝app模型还包含了各种各样的工具,我们用来调试设计,如数据检查员。

我们使用线检查员分析的数据信号在无人机以确保无人机总是处于有效状态。

项目的视频

GitHub库

|
  • 打印
  • 发送电子邮件

评论

留下你的评论,请点击在这里MathWorks账户登录或创建一个新的。