高等教育机械臂仿真与控制的机器人学框架外文翻译资料
2022-08-23 15:27:10
英语原文共 65 页,剩余内容已隐藏,支付完成后下载完整资料
南方基督复临会大学
南方知识交易所
计算机科学项目报告理学硕士 计算机学院
2017年8月5日冬季
高等教育机械臂仿真与控制的机器人学框架
克雷格·克里斯滕森
南方基督复临会大学,craigc@Southern.edu
高等教育机械臂仿真与控制的机器人学框架
通过克雷格·克里斯滕森论文答辩
提交给学院
南方基督复临会大学计算机学院
部分满足要求
科学硕士学位
主修:计算机科学-嵌入式系统
在泰森霍尔的监督下
田纳西大学
2017年5月
高等教育机械臂仿真与控制的机器人学框架
克雷格·克里斯滕森(Craig Christensen),M.S.
南方基督复临大学,2017年
顾问:泰森霍尔博士。
几十年来,从制造业和工业用途到爱好项目和游乐场游乐设施,机器人手臂在许多领域都有着广泛的用途。然而,很少有人尝试制作一种廉价的机器人手臂,并将其与软件堆栈一起用于高等教育。本文将概述一个建立在机器人操作系统(ROS)上的控制和接口软件栈,以及一个5自由度(DoF)机械臂的仿真。
目录
数字表
表格列表
1简介
1.1目标和要求
1.2动机
2背景
2.1教育
2.2 3D打印
2.3仿真与控制软件
3实施:南方军控
3.1机器人操作系统(ROS)
3.2信息
3.3结构
3.3.1控制器
3.3.1.1河内塔
3.3.1.2 API控制器
3.3.1.3自定义控制器
3.3.2翻译人员
3.3.2.1斯科博特IK
3.3.3司机
3.3.3.1底座、肩部、肘部、俯仰和侧滚驱动器
3.3.3.2 USB驱动程序
3.4模拟
3.5硬件
3.6源头控制
3.7文件
3.8安装
3.9教育用途
3.10材料清单
3.11任务和里程碑
4结果31
4.1 ROS节点
4.2硬件
4.3安装
4.4文件
5结论
5.1未来工作
A要求
- 1软件
A、 1.1覆盆子Pi软件
A、 1.2仿真和远程控制软件
A、 2安装
A、 3运行
A、 4修改
参考文献
数字表
1.1 ROS系统概述
3.1在ROS上实现的SAC系统的拓扑结构
3.2 ROS系统上控制器的拓扑结构
3.3 ROS系统上翻译人员的拓扑结构
3.4带有反向运动学变量的手臂侧视图
3.5带有反向运动学变量的手臂俯视图
3.6 ROS系统驱动程序的拓扑结构
表格列表
3.1项目中使用的第三方软件包
3.2项目中使用的自定义包
3.3项目中使用的自定义消息
3.4电机驱动器的输入和输出摘要
3.5项目任务清单
第一章 介绍
机器人可以用来教授许多课程和概念,包括基本编程、并行编程、动力学和控制、机电一体化、工程、电子学、正向和反向运动学、计算机视觉和路径规划[1、2、3、4]。目前,很少有甚至没有标准化的机械臂平台和现成的软件堆栈,能够使用物理和模拟机器人在高等教育教学。本文介绍的平台将允许学生通过模拟环境在自己的计算机上实现和测试软件的添加和修改,然后在物理机器人上测试他们的代码,而无需翻译或修改他们的代码以使其在现实世界中工作。实践证明,使用实例有助于学习,尤其有助于激发学生对该学科的兴趣,并有助于自主学习。
- (b)
(c)
图1.1:(a)当ROS系统首次启动时,每个节点连接到ROS主机,并向其发送节点在[5]上发布和接收的消息。(b) 然后,每个接收节点将直接连接到发送节点以进行消息传递[5]。(c) 该系统将在运行Ubuntu 16.04的计算机上实现,并从某些来源获取输入来控制机器人手臂[5]。
1.1目标和要求
该项目的软件控制栈是建立在机器人操作系统(ROS)上的。ROS已经成为一个流行的机器人平台,用于许多类型的机器人[5]。ROS平台如图1.1所示。系统由两部分组成:第一部分是图1.1a和1.1b所示的系统节点。节点是系统的程序,实现硬件集成、服务和与外部的交互。节点可以为应用程序定制,也可以来自ROS社区,允许更快地完成硬件集成和其他非焦点项目。系统的第二部分是消息传递,每个节点都可以发布和接收消息。ROS控制节点间的消息传递,并设置节点间的交互,如图1.1a所示。初始设置通信后,消息直接从一个节点传递到下一个节点,如图1.1b中的蓝色图表所示,节点和消息系统使在ROS上创建的任何软件堆栈成为一个分布式系统,允许实现灵活性。该项目的功能是在一个三维仿真和物理5自由度SCORBOT-ER III机械臂的控制中实现的。学生可以通过添加或重新创建一个节点来实现或重新实现系统的功能,使系统的其余部分完全正常工作。机器人的功能和移动显示了一些预先编程的任务,例如执行河内的塔楼,它还能够根据来自API的输入执行实时移动。
1.2动机
该项目将允许科学、技术、数学和工程(STEM)学生在课堂上使用模拟和物理机器人。最终产品将通过提供一个机器人和一个软件堆栈,使机器人学学习和研究变得更容易,而不是从零开始的每一所大学和每一个班级都可以立即使用和修改。这使得课堂时间和项目能够集中在学习目标上,而不是具体系统的细节上。
第二章 背景
2.1教育
机器人可以在教育领域发挥巨大的作用,近年来,由于对科学、技术、工程和数学(STEM)的关注,尤其是在低年级教育领域,机器人的研究受到了更大的重视[1]。将机器人技术引入课堂的计划非常普遍。不幸的是,大多数只使用模拟环境或物理机器人,但很少使用两者。纯粹的模拟方法可能会让学生不满意,因为看到最终完成的实物产品会给体验带来很大的动力和有形性,从而使课堂变得富有吸引力和吸引力[6,1]。纯物理系统也可能处于不利地位,因为学生可能只能在实验室物理操作机器人。物理教学工具对学习过程有很大影响,如果与虚拟系统一起使用,它们都可以提供一个实验室环境,让学生参与学习过程[7,8,3、9、10页]。机械臂专门用于基础编程、并行编程、动力学和控制、机电一体化、工程、电子、正向和反向运动学、计算机视觉和路径规划等领域的教学[1、2、3、4]。许多设计用于课堂环境的机器人的例子已经被提出用于低教育教学。一些最基本的机器人已经被用于早期教育领域[9,11,12]。这些机器人多次使用图形编程语言,就像鲁宾斯坦等人设计的AERobot一样[9]。这个机器人被设计得足够复杂,可以完成有趣的任务,比如障碍物检测和线路跟踪,但是价格便宜,任何群体都可以大量购买[9]。另一个为低级教育设计的机器人例子是在第一届乐高联盟比赛中使用的乐高NXT机器人[11,12]。这些机器人用于从小学到高中的孩子们的比赛,并允许他们设计和编程机器人来完成比赛中的任务[11,12]。尽管这些机器人对于入门级编程的教学和引入机器人编程的概念很有用,但它们并没有太多地关注机器人的算法或机器人的实际功能,只关注更高级别的功能。第二个使用机器人的领域是大学、学院和其他高等教育形式。这种人口学通常更关注机器人构造、控制算法、如正向和反向运动学以及传感器处理的复杂性。CHARM是一门机器人学课程,正是为此目的由Singh等人开发的[2]。本课程教学生如何设计和编程一个用于硬币分类的机器人,并在此过程中通过硬币分类项目教授运动学、路径规划和机器人视觉[2]。虽然这个机器人很适合教授一些概念,但它只使用一个三自由度(DoF)的SCARA机器人手臂。这使得机器人有利于二维教学,但不允许三维教学。在实验室环境中,机器人也可能受到阻碍,因为它没有提出学生可以建立的框架,要求学生每次都编写整个控制系统,而不是一次只关注系统的算法,因此必须使用自下而上的方法,而且机器人只对一个类有用,而不是用于一系列的课程。
2.2 3D打印
近年来,3D打印已迅速成为快速成型的常用方法[13]。这有助于推进3D打印技术和标准化,使更广泛的使用成为可能[13]。3D打印机现在在大学里普遍用于研究和产品设计。这使得该方法非常适合于以分布式方式生产用于教育的产品。3D打印已经被用于大学的机器人研究,正如Mukhtar等人的3D打印手稿一样[14]。Poppy是Lampeyre等人为教育设计的另一个3D打印平台[15]。罂粟自设计以来,已在多所大学的多个研究项目中使用[16,17]。一些机械臂设计可从各种来源和制造商免费获得,其中许多是开源的,可修改以满足用户的需求。有许多简单的机器人设计,但这些设计有严重的自由度限制[18,19,20]。有几种机器人设计的程度更高,更适合一般用途的机器人。其中一个机器人是安吉尔的五轴雷神机器人,不幸的是五轴机器人可能不适合更高级的课程[21]。另一个先进的设计是Zortrax机器人,这个机器人看起来很好,是一个简单的圆滑的设计,不幸的是,不是所有的关节都是电动的,使其无法用于控制类[22]。BNC3D设计的Moveo手臂是一个很好的可行的选择,作为一个六轴的完全设计的机器人手臂,这将使一个很好的机器人在类环境中使用[23,24]。最后一个3D打印机器人设计是由Andreas Huml;olldorfer完成的,他是一个更先进的6自由度手臂[25,26]。
2.3仿真与控制软件
仿真软件在各种不同的机器人中非常普遍。有几种流行的机器人模拟器[27]。这些系统包括虚拟机器人工具包、机器人虚拟世界、RoboDK、微软机器人开发工作室、Webots和Gazebo[27]。虚拟机器人工具包和机器人虚拟世界模拟器均设计用于乐高Mindstorms、Vex机器人和其他基于乐高的系统,主要针对早期STEM教育[27]。由于目标受众有限,这些系统不如其他系统灵活,尽管它们已经在高等教育中使用过,但该平台面向的是第一次编程人员[28、11、29、30、31、32]。系统的局限性迫使对编程和控制的任何修改都要围绕使用外部控制器的方法来完成[31]。RoboDK,该软件设计用于工业机器人,不允许外部控制或开放平台机器人[27]。Microsoft Robotics Developer Studio支持多种平台,并由一家大公司提供支持[27]。尽管这是一个广受欢迎的平台,但对该软件的支持已被取消,这意味着,随着学生们继续进行未来的项目,使用该平台获得的任何知识都将毫无用处。Webots和露台都支持ROS平台,可用于模拟任何机器人设计[27]。Webots是一个封闭源码的付费平台,因此系统不能被修改为专门用途[27,33]。相比之下,Gazebo是一个免费的开源平台,已经广泛用于开发交互式机器人[27]。Gazebo也可以在Linux、OSX或Windows上编译和运行[34]。可用的最终模拟器是RViz[35]。在完整的桌面安装中,RViz与ROS一起打包[35]。RViz只在Ubuntu Linux上运行,不支持其他操作系统[35]。有几个不同的软件堆栈可用于机器人控制。许多软件栈都是为单个机器人定制和设计的。这就是Rivas等人的BRACON等系统的情况[36]。如果该软件作为一个开源软件还不够广泛,或者是专有的,它可能不是教育中使用的最佳工具,因为它不允许对新系统进行修改。其中许多系统只提供有限的交互方法,例如通过gCode,这只是一种通信格式,不允许动态移动或反馈。机器人操作系统(ROS)是一种很有前途的新的开源机器人框架,可用于各种机器人。ROS已经在以前的教育机器人项目中使用过,比如Nelson[37]。其他项目则专注于扩展ROS以供在MATLAB中使用,比如ros4mat[38]。ROS带有控制软件和一个可以同时控制的仿真环境。软件是模块化的,如图1.1所示,可以跨设备分布[5]。
第三章
实施:机械臂控制
机械臂控制(SAC)项目包括七个ROS包,以及一个安装ROS-Kinetic、其组件和SAC系统的安装项目。
3.1机器人操作系统(ROS)
ROS允许一个开源的,易于分发的系统,可以免费提供给学生。ROS项目的基础是一个工作区,它充当项目包的容器[39]。ROS包是项目中保存节点、消息、描述和ROS系统所有其他部分的代码的子容器[39,5]。对于节点间的消息传递,ROS有两种SAC项目使用的类型:
bull;信息–从发布者到订阅者[40]使用新的发布信息。
表3.1:SAC系统中使用的软件包。动起来!软件包当前未在SAC系统中使用。[43,44,45,46,47,48]
bull;服务–用于向服务传递信息和接收服务的响应[41]。
第三方软件包也可以分发并安装到ROS中,在这种情况下,它们将驻留在ROS安装目录中。SAC系统建立在ROS平台上。系统使用六个外部ROS包(如图3.1所示)、十个自定义包(如图3.2所示)和一个用于设置ROS和SAC系统的设置项目。详见第3.8节[42]。
3.2信息
lt;
剩余内容已隐藏,支付完成后下载完整资料
资料编号:[237523],资料为PDF文档或Word文档,PDF文档可免费转换为Word