学生休息室

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

为机器人世界杯大联盟做准备

赛车休息室结束了圣诞假期。祝大家2018年事业成功,身体健康!
在今日的帖子里,塞巴斯蒂安·卡斯特罗讨论了他在泰国曼谷举办的亚太机器人世界杯(RCAP)上帮助举办的机器人研讨会的经验。

提醒一下,MathWorks是机器人世界杯的全球赞助商对学生团队有很多好处.在RCAP,我们有一个展示信息、赠品、软件演示等的摊位。东南亚的经销商也加入了我们,TechSource.下次你去机器人世界杯的时候,请顺便过来打个招呼。

MathWorks和TechSource在我们的展位

背景

机器人世界杯最大的挑战之一是从初级(大学预科)联赛跳到主要(大学水平)联赛。通常情况下,即使是最成功的青少年球队,一旦从高中进入大学,也会有一个重要的学习曲线阻止他们继续参加机器人世界杯。

许多机器人世界杯的组织者都意识到了这一问题,这促使他们针对克服这一学习曲线创造了中间挑战。不像大联盟比赛,主要是为学生追求高等学位的研究平台,这些挑战更适合教育本科生。一些例子是RoboCupRescue快速制造机器人“机器人足球世界杯”亚太CoSpace挑战。

RCAP的特别之处在于,它受到了Jeffrey Tan博士的邀请,帮助我们应对另一个类似的挑战。谭博士是RoboCup@Home在联盟工作了4年多,同时也是KameRider团队.我们决定为他举办一个联合讲习班RoboCup@Home教育联赛。这对我们来说是一个很好的机会,因为它让我们将MATLAB引入机器人设计和编程的各个方面,并在一场真实的、世界级的比赛中作为我们工具的一个很好的基准。

共有4支队伍参与:

  • 日本多摩川科学俱乐部-日本多玛川中学-高中
  • 那烂陀-印度创世纪全球学校-高中
  • KameRider EDU-中国南开大学/马来西亚科技大学-本科
  • Skuba小-泰国Kasetsart大学-本科

RoboCup@Home教育团队-由Kanjanapan Sukvichai博士(Skuba JR顾问)提供

第1-2天:研讨会

在最初的两天里,我们想出了一个雄心勃勃的主题课程,让学生们开始使用TurtleBot2,并从零开始,包括一个RGB +深度传感器和一个机器人手臂

我们事先要求的只是带一台Ubuntu 14.04的笔记本电脑。然后我们安装了机器人操作系统(ROS)MATLAB和一个从我们的网站免费许可

目标是开发一个典型的RoboCup@Home算法的各个部分。如果机器人有它周围环境的地图,并收到口头指令——例如,把厨房里的水瓶给我拿来下面的图表是完成该任务所需组件的示例。

A.语音识别与合成

完成了语音识别CMU PocketSphinx,而语音输入和合成是用audio_common堆栈.在研讨会中,我们展示了如何检测语音,在字典中查找关键字,并根据这些关键字采取行动。这些都是在MATLAB之外完成的。

一些学生询问MATLAB在语音识别方面的能力。现在,有两种方法可以让它工作:

  1. 使用上面的ROS工具发布在ROS主题上检测到的文本在MATLAB中订阅它
  2. 从MATLAB调用用户定义的Python语音模块

一旦文本是在MATLAB,你可以利用它字符和字符串的功能,甚至是新的文本分析工具箱

我个人已经有了解决这个问题的方法2Python SpeechRecognition包特别是谷歌云语音和CMU PocketSphinx。下图展示了我运行的一个简单示例,它使用文本分析工具箱将我的演讲分为两类——食物和饮料。像“going”、“have”和“some”这样的词不会给我们额外的信息。幸运的是,工具箱有预处理功能来解决这些问题。

B.测绘与导航

为了执行映射和导航任务,我们采用了以下工作流

  1. 控件生成环境的映射现有的TurtleBot gmapping例子驾驶机器人四处走动
  2. 在上面的示例中,最新的映射发布在ROS主题(/map)上。我们可以把地图读到MATLAB中占用网格然后保存到一个文件中。
  3. 一旦地图在MATLAB中,我们就可以对a进行采样概率路线图(人口、难民和移民事务局)并用它来找到两点之间的路径。
  4. 然后,我们可以编程让机器人沿着这条路径纯追求算法

下面你可以看到我在办公室附近生成的地图和路径示例。假设地图是静态的,可以根据需要对不同的起点和目标点重复步骤3和步骤4。

C.计算机视觉与控制

对于这个任务,我们只在MATLAB世界中操作。我们收到了许多关于使用图像制作原型比使用图像制作简单的评论OpenCV,主要是因为后者需要更有挑战性的语言(Python或c++)。

我们的愿景和控制流程是:

  1. 使用颜色阈值的应用定义跟踪感兴趣对象的阈值
  2. 执行blob分析来找到物体的位置
  3. 在被检测物体的位置使用深度图像估计距离物体
  4. 根据物体的位置和深度移动机器人。我们从线性和角速度的死带的简单开关控制器开始。

至此,学生们已经有了带ROS的闭环视觉控制器的参考MATLAB代码。在接下来的几天里,他们被鼓励修改这段代码,使他们的机器人更有力地跟踪物体。让我们记住,大多数学生从来没有接触过MATLAB !

d .操纵

机器人被安装TurtleBot武器.让这些武器工作有两个方面:硬件和软件。

在硬件方面,我们给学生们指出ROBOTIS Dynamixel伺服ROS教程.这里的目标是确保机器人手臂上每个电机的关节位置控制器都有一个ROS接口。这将允许我们用MATLAB中的控制器来控制手臂。

在软件方面,步骤如下:

  1. 导入URDF (robot arm description)文件在MATLAB中刚体树表示
  2. 熟悉逆运动学(反向)功能在机器人系统工具箱
  3. 在几个点上使用IK跟随一条路径——首先在模拟中,然后在真正的机器人手臂上

下图显示了在点之间线性插值的路径。然而,更平滑的轨迹也可以通过更多的数学运算,或使用工具,如曲线拟合工具箱

第3-5天:竞争

研讨会的目的是提高人们对在竞赛中获得成功所需的软件工具的认识。有了一堆ROS教程,示例MATLAB文件,和其他有用的链接,学生们现在的任务是采取我们的参考应用程序,并使用他们在相同的挑战作为主要联盟。

这些挑战如下。这要归功于谭秦东的KameRider团队为YouTube提供的样本视频。

  1. 语音与人的识别:演示基本的语言和视觉功能。比如问机器人"你前面有多少人? ",并得到正确答案。[人视频] [演讲视频
  2. 帮我拿:跟着一个人并帮助他们搬运物体。[帮我拿视频
  3. 餐厅:确定准备下订单的人员,正确地听取订单,并检索已订购的对象[餐厅的视频] [操作视频
  4. 决赛:团队可以自由选择演示什么,并根据新颖性、科学贡献、演示和表现等标准进行评估

在这段时间里,学生们花了数小时消化研讨会材料,测试他们的代码,并慢慢构建算法来解决挑战。

多玛川科学俱乐部机器人在比赛-由Jeffrey Tan博士提供

以下是一些最突出的结果:

  • 团队亲身体验了如何将执行不同任务的代码片段集成到一个工作系统中。
  • 所有团队都有完整的计算机视觉和控制算法与MATLAB,但不是所有团队都有功能的语音检测/合成和机械手控制。他们发现MATLAB代码比其他一些基于ROS的包更容易设置和修改,这需要Python、c++和/或柔荑花序构建系统使用和修改
  • 两个高中团队成功地生成了环境地图,并实现了导航算法。
  • 那烂陀团队能够通过使用向量场直方图机器人系统工具箱中的功能。
  • 一些团队能够调整一些预先训练过的级联对象探测器人探测器例如他们的个人认可和最后的挑战。

KameRider EDU在人物识别挑战中-由Jeffrey Tan博士提供

结论

这个活动很有趣,作为奖励,我享受了几个星期逃离波士顿寒冷的冬天。看到学生们在如此短的时间内取得了如此多的成绩,以及我们的对话是如何发展的,我感到很满足。

  • 一开始,主要是关于安装、错误消息、基本的MATLAB和ROS问题,以及“我要如何完成所有这些?”
  • 最后,学生们对基本的ROS结构(主题、消息、启动文件、Catkin等)、通用编程工具(条件语句、循环、函数、断点等)有了相当好的理解,最重要的是,他们已经在问“下一步是什么?”

行动工作坊-纳烂陀团队提供

普遍的共识是,MATLAB和ROS都需要使这个研讨会发生。MATLAB可以实现算法的实现和测试,而现有ROS软件包的安装有助于实现一些必要的低水平传感和驱动以及绘图功能。

  • 许多ROS包很容易设置,并且可以立即交付强大的结果。然而,对于初学者来说,理解底层代码并构建系统来修改或扩展这些包并非易事。这可能是因为ROS是为适应严格的软件开发过程的用户设计的。
  • 另一方面,MATLAB在开始时需要一个单独的安装,不需要重新编译,并且示例代码(我们的研讨会文件和文档示例)很容易理解、调试和修改。

Heramb Modugula (Nalanda团队)评论道:“我们有足够的时间来修改机器人和示例代码,最终,我们可以自己编写代码。”他的教练和父亲Srikant Modugula强调软件组件的集成是最关键的任务。“虽然MATLAB提供了一个强大的框架来完成机器人视觉、运动和手臂相关的任务,但我们期待有一种更简单的方式将它与启用ROS的TurtleBot连接起来,并无缝地编译/运行多个程序。”

计算机视觉和操作工作坊-由Jeffrey Tan博士提供

综上所述,MATLAB及其相关工具箱是一个完整的设计工具。这包括编程语言、交互式桌面环境(IDE)、图形化编程环境等金宝appStateflow,帮助算法设计和优化的应用程序,以及独立代码生成工具

我们推荐的方法是使用MATLAB和Simulink进行原型化算法,这可能是整个系统的子集,然金宝app后使用自动代码生成将这些算法部署为独立的ROS节点.这样,机器人在比赛时就不依赖于MATLAB环境(及其相关的开销)。欲了解更多信息,请参考我们的入门MATLAB, Simulink和ROS博客文章金宝app或者联系我们

找到MathWorks徽标!

我们的目标是,这样的挑战将降低来自世界各地的新球队加入机器人世界杯大联盟的门槛,并在第一年表现得有竞争力。这将为新手创造机会,让他们适应机器人编程,并最终转变为“真正的”大联盟球队——也就是说,将最先进的算法带到机器人世界杯,并推动全球机器人研究的边界。

出于这个原因,我们将努力在未来的活动中提供这个研讨会,并将我们的材料开源并发布到网上。如果你有兴趣使用这些材料来学习或教学,或有任何想法要分享,请给我们留下评论。我们希望看到更多的人报名参加未来的RoboCup@Home教育挑战赛。直到下次!

|
  • 打印
  • 发送电子邮件

评论

要留下评论,请点击在这里登录到您的MathWorks帐户或创建一个新帐户。